OSDN Git Service

7cee62a1a4ca6a43d44483cf3481deb6f2b3ed98
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2003-04-25  Phil Edwards  <pme@gcc.gnu.org>
2
3         * configure.in (make_compare_target):  Test for GNU cmp and set this
4         variable appropriately.
5         * Makefile.in (compare, compare3, compare4, compare-lean, compare3-lean,
6         compare4-lean): Rename actual targets to slowcompare*.  New compare*
7         targets depend on names based on make_compare_target.
8         * configure:  Regenerated.
9
10 2003-04-25  Richard Henderson  <rth@redhat.com>
11
12         * config/ia64/ia64.c (ia64_compute_frame_size): Allow inline asm
13         to clobber ar.pfs and ar.unat.
14         (ia64_expand_prologue): Force alloc instruction if ar.pfs saved;
15         fix test for spilling ar.pfs to the stack.
16
17 2003-04-25  Richard Henderson  <rth@redhat.com>
18
19         PR opt/10315 
20         * config/rs6000/rs6000.c (rs6000_emit_move): Only elide proper
21         checks during reload; use validize_mem instead of adjust_address.
22
23 2003-04-26  Ben Elliston  <bje@wasabisystems.com>
24
25         * config/arm/arm.c (arm_adjust_cost): Correct logic that tests the
26         return values from recog_memoized().
27
28 2003-04-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
29
30         PR opt/8705
31         * gcse.c (try_replace_reg): On a successful substitution of a constant
32         into a single set, try to simplify the source of the set.
33         * loop.c (scan_loop): Don't try to optimize a MODE_CC set with a
34         constant source.
35
36 2003-04-24  Neil Booth  <neil@daikokuya.co.uk>
37
38         * cpplex.c (cpp_token_len): Tighten up.
39         (cpp_token_as_text): Need extra byte now.
40         * cpplib.c (glue_header_name): Need extra 2 bytes.
41         * cppmacro.c (cpp_macro_definition): Need extra byte.
42
43 2003-04-24  Alexander Kabaev <kan@FreeBSD.ORG>
44
45         * config/sparc/sparc.md (umulsidi3, mulsidi3): Avoid using
46         const_umulsidi3_sp32 and const_mulsidi3_sp32 on 64bit targets 
47         where they might be not present. Use their _sp64 equivalent
48         instead.
49
50 Thu Apr 24 20:42:12 CEST 2003  Jan Hubicka  <jh@suse.cz>
51
52         * i386.md (cvtsi2sdq): Fix typo in previous patch.
53         
54 2003-04-24  Krister Walfridsson  <cato@df.lth.se>
55
56         * configure.in: Check whether mbstowcs works.
57         * configure, config.in: Regenerate.
58         * intl.c: Use HAVE_WORKING_MBSTOWCS.
59
60 2003-04-24  H.J. Lu <hjl@gnu.org>
61
62         * config/ia64/ia64.c (ia64_init_builtins): Add si_ftype_pdi_di_di
63         for __sync_bool_compare_and_swap_di for int return type.
64
65         * config/ia64/ia64intrin.h (__sync_bool_compare_and_swap_di):
66         Change return type to int.
67         (__sync_bool_compare_and_swap): Likewise.
68
69 Thu Apr 24 16:55:26 CEST 2003  Jan Hubicka  <jh@suse.cz>
70
71         * cfgbuild.c (make_edges):  Do not use next_nonnote_insn when
72         looking for fallthru edge.
73
74         * athlon.md (athlon-agu, athlon-store, athlon-fany, athlon-faddmul):
75         Fix.
76         (athlon-load2, athlon-store2, athlon-fpsched, athlon-fpload,
77         athlon-fvector): New.
78         (athlon_*): Revisit to match new optimization guide.
79         * i386.c (ix86_adjust_cost):  Fix memory operand costs on Athlon/k8
80         * i386.md (cvt??2?? patterns): Fix modes.
81         (fistp patterns): Set modes.
82
83         Accidentaly commited with my earlier reload patch:
84         PR c/10308
85         * reload.c (find_reloads_address_1): Reload plus at the place of
86         index register.
87         
88 2003-04-24  Nathan Sidwell  <nathan@codesourcery.com>
89
90         New GCOV_TAG_FUNCTION layout
91         * coverage.c (struct function_list): Replace name with ident.
92         (struct counts_entry): Likewise.
93         (fn_ident): New.
94         (htab_counts_entry_hash, htab_counts_entry_eq,
95         htab_counts_entry_del): Adjust.
96         (reads_count_file, get_coverage_counts,
97         coverage_begin_output, coverage_end_function): Adjust.
98         (build_fn_info_type, build_fn_info_value): Likewise.
99         * gcov-dump.c (tag_function): Adjust.
100         * gcov-io.c (gcov_write_string, gcov_read_string): Not in LIBGCOV.
101         * gcov-io.h (gcov_write_string, gcov_read_string): Not in LIBGCOV.
102         * gcov.c (struct function_info): Add ident.
103         (read_graph_file, read_count_file): Adjust.
104         * libgcov.c (gcov_exit): Adjust.
105
106 2003-04-23  Richard Henderson  <rth@redhat.com>
107
108         PR opt/8300
109         * toplev.c (rest_of_compilation): Delay no_new_pseudos until
110         after initialize_uninitialized_subregs; update reg info assuming
111         new pseudos were created.
112
113 2003-04-23  Neil Booth  <neil@daikokuya.co.uk>
114
115         * Makefile.in (c-lex.o, LIBCPP_OBJS, cpplex.o): Update.
116         * c-lex.c (MULTIBYTE_CHARS): Remove conditionals.
117         (lex_string): Take cpp_string with full spelling.
118         (cb_ident): Update.
119         (c_lex): Update diagnostics.
120         * cpplex.c (SPELL_NUMBER, SPELL_STRING): Combine into SPELL_LITERAL.
121         (create_literal): New.
122         (lex_string): Unterminated literals have type CPP_OTHER.
123         (_cpp_lex_direct): Update calls to lex_string.  Use create_literal
124         for CPP_OTHER.
125         (cpp_token_len, cpp_spell_token, cpp_output_token): Simplify.
126         (_cpp_equiv_tokens, cpp_interpret_charconst): Update.
127         * cpplib.c (parse_include, do_line, do_linemarker,
128         destringize_and_run): Update for token storing full spelling.
129         * cpplib.h: Update token spelling types.
130         * cppmacro.c (stringify_arg, check_trad_stringification):
131         Update for token storing full spelling.
132
133 2003-04-23  Ulrich Weigand  <uweigand@de.ibm.com>
134
135         * config/s390/s390.c (s390_expand_cmpstr): Disable CLC loop.
136
137 2003-04-23  Richard Earnshaw  <rearnsha@arm.com>
138
139         * arm.h (TARGET_OPTIONS): Add value field.
140
141 2003-04-23  Mark Mitchell  <mark@codesourcery.com>
142
143         * doc/extend.texi: Remove duplicate 2003 copyright date.
144
145 2003-04-23  Nathan Sidwell  <nathan@codesourcery.com>
146
147         * Makefile.in (LIBGCC_DEPS): Add gcov headers.
148         (libgcov.a): Depends on LIBGCC_DEPS.
149         * basic-block.h (profile_info): Moved here from coverage.h. Made
150         a pointer.
151         * coverage.c (struct function_list): Fixed array of counter types.
152         (struct counts_entry): Keyed by counter type, contains summary.
153         (profile_info): Moved to profile.c.
154         (prg_ctr_mask, prg_n_ctrs, fn_ctr_mask, fn_n_ctrs): New global
155         vars.
156         (profiler_label): Remove.
157         (ctr_labels): New.
158         (set_purpose, label_for_tag, build_counter_section_fields,
159         build_counter_section_value, build_counter_section_data_fields,
160         build_counter_section_data_values, build_function_info_fields,
161         build_function_info_value, gcov_info_fields, gcov_info_value): Remove.
162         (build_fn_info_type, build_fn_info_value, build_ctr_info_type,
163         build_ctr_info_value, build_gcov_info): New.
164         (htab_counts_entry_hash, htab_counts_entry_eq): Adjust.
165         (reads_counts_file): Adjust.
166         (get_coverage_counts): Takes counter number. Add summary
167         parameter. Adjust.
168         (coverage_counter_ref): Tkaes counter number. Adjust. Lazily
169         create counter array labels.
170         (coverage_end_function): Adjust.
171         (create_coverage): Adjust.
172         (find_counters_section): Remove.
173         * coverage.h (MAX_COUNTER_SECTIONS): Remove.
174         (struct section_info, struct profile_info): Remove.
175         (profile_info): Moved to basic-block.h.
176         (coverage_counter_ref): Takes a counter number.
177         (get_coverage_counts): Takes a counter number. Added summary
178         parameter.
179         (find_counters_section): Remove.
180         * gcov-dump.c (tag_arc_counts): Rename to ...
181         (tag_counters): ... here. Adjust.
182         (tag_table): Move tag_counters to 3rd entry. Remove
183         PROGRAM_PLACEHOLDER and PROGRAM_INCORRECT entries.
184         (dump_file): Check for counter tag values here.
185         (tag_summary): Adjust.
186         * gcov-io.c (gcov_write_summary, gcov_read_summary): Adjust.
187         * gcov-io.h (GCOV_LOCKED): New.
188         (GCOV_TAG_ARC_COUNTS): Rename to ...
189         (GCOV_TAG_COUNTS_BASE): ... here.
190         (GCOV_TAG_PLACEHOLDER_SUMMARY, GCOV_TAG_INCORRECT_SUMMARY):
191         Remove.
192         (GCOV_COUNTER_ARCS, GCOV_COUNTERS, GCOV_NAMES): New.
193         (GCOV_TAG_FOR_COUNTER, GCOV_COUNTER_FOR_TAG,
194         GCOV_TAG_IS_COUNTER): New.
195         (struct gcov_ctr_summary): New.
196         (struct gcov_summary): Adjust.
197         (struct gcov_counter_section): Remove.
198         struct gcov_counter_section_data): Remove.
199         (struct gcov_function_info): Rename to ...
200         (struct gcov_fn_info): ... here. Adjust.
201         (struct gcov_ctr_info): New.
202         (struct gcov_info): Adjust.
203         * gcov.c (read_count_file): Adjust.
204         (output_lines): Adjust.
205         * libgcov.c (gcov_exit): Adjust.
206         (__gcov_flush): Adjust.
207         * mklibgcc.in (libgcc2_c_dep): Add gcov headers.
208         * predict.c (maybe_hot_bb_p, probably_cold_bb_p,
209         probably_never_executed_bb_p, compute_frequency_function): Adjust
210         profile_info use.
211         * profile.c (struct counts_entry): Remove.
212         (profile_info): Define here.
213         (get_exec_counts): Adjust get_coverage_counts call.
214         (compute_branch_probablilities): Remove find_counters_section
215         call.
216         (gen_edge_profiler): Adjust coverage_counter_ref call.
217         * tracer.c (tail_duplicate): Adjust profile_info use.
218
219 2003-04-23  Roger Sayle  <roger@eyesopen.com>
220
221         PR optimization/10339
222         * builtins.c (expand_builtin_strcmp): Try to emit cmpstrsi insn
223         directly instead of unsafely transforming call into a memcmp.
224         (expand_builtin_strncmp): Likewise.
225
226 2003-04-22  Roger Sayle  <roger@eyesopen.com>
227
228         * alias.c (mark_constant_function):  Check for constancy and
229         purity even of void functions.  Update both the function decl
230         and the cgraph RTL info with the results.
231
232 2003-04-22  Roger Sayle  <roger@eyesopen.com>
233
234         * real.c (do_add): Change to return a bool indicating that the
235         result of the operation may be inexact due to loss of precision.
236         (do_multiply): Likewise.
237         (do_divide): Likewise.
238
239 2003-04-22  Geoffrey Keating  <geoffk@apple.com>
240             Loren James Rittle  <ljrittle@acm.org>
241
242         * dwarf2out.c (fde_table_allocated): Mark with GTY.
243         (decl_die_table_allocated): Likewise.
244         (abbrev_die_table_allocated): Likewise.
245         (line_info_table_allocated): Likewise.
246         (separate_line_info_table_allocated): Likewise.
247         (pubname_table_allocated): Likewise.
248         (arange_table_allocated): Likewise.
249         (ranges_table_allocated): Likewise.
250         (decl_die_table_in_use): Unconditionalize; mark with GTY.
251         (abbrev_die_table_in_use): Likewise.
252         (line_info_table_in_use): Likewise.
253         (separate_line_info_table_in_use): Likewise.
254         (pubname_table_in_use): Likewise.
255         (arange_table_in_use): Likewise.
256         (ranges_table_in_use): Likewise.
257         (have_location_lists): Likewise.
258         (emitcount): New GTY-marked static, moved...
259         (maybe_emit_file): ...from here.
260         (label_num): New GTY-marked static, moved...
261         (gen_internal_sym): ...from here.
262
263 2003-04-22  Richard Henderson  <rth@redhat.com>
264
265         PR 8866
266         * rtl.h (MEM_NOTRAP_P): New.
267         (MEM_COPY_ATTRIBUTES): Copy it.
268         * rtlanal.c (may_trap_p): Check it.
269         * expr.c (do_tablejump): Set it.
270         * doc/rtl.texi (Flags): Document it.
271
272         * cfgrtl.c (try_redirect_by_replacing_jump): Revert last three changes.
273
274 2003-04-22  Olivier Hainque  <hainque@act-europe.fr>
275
276         * config/alpha/alpha.c (alpha_expand_prologue [OPEN_VMS_ABI]): Don't
277         set FRP on stack adjustment for outgoing args if frame_pointer_needed.
278
279 2003-04-22  Vincent Celier <celier@gnat.com>
280
281         * gthr-gnat.h, gthr-gnat.c: new sources for implementation of
282         --enable-threads=gnat.
283         * Makefile.in: Add gthr-gnat.c to LIB2ADDEH.
284         * configure.in: Add gnat to the list of thread packages
285         * configure: Rebuild.
286         * config/t-linux: Add gthr-gnat.c to LIB2ADDEH and LIB2ADDEHDEP
287
288 2003-04-22  Neil Booth  <neil@daikokuya.co.uk>
289
290         * cpplex.c (_cpp_get_fresh_line): Pop the buffer if return_at_eof.
291
292 2003-04-22  Devang Patel  <dpatel@apple.com>
293
294         * cpptrad.c (_cpp_replacement_text_len): Add check for macro
295         parameter count.
296         (_cpp_copy_replacement_text): Same.
297         
298 2003-04-22  Neil Booth  <neil@daikokuya.co.uk>
299
300         * c-lex.c (c_lex): Handle CPP_OTHER differently.
301         * cppexp.c (_cpp_parse_expr): Similarly.
302         * cpplex.c (SPELL_CHAR): Remove.
303         (_cpp_lex_direct): Stray chars are saved as byte strings.
304         (cpp_spell_token, cpp_output_token, _cpp_equiv_token): Don't
305         handle SPELL_CHAR.
306         (cpp_avoid_paste): Update handling of CPP_OTHER.
307         * cpplib.h: Spell CPP_OTHER like a number.
308         (struct cpp_token): Remove member c.
309         * cppmacro.c (stringify_arg): Update handling of CPP_OTHER.
310
311 2003-04-22  David Turner <novalis@gnu.org>
312
313         * gbl-ctors.h: Add special license exception.
314         * libgcc2.h: Likewise.
315         * tsystem.h: Likewise.
316         * gcov-io.h: Likewise.
317
318 2003-04-22  David Edelsohn  <edelsohn@gnu.org>
319
320         * fold-const.c (fold_range_test): Use RANGE_TEST_NON_SHORT_CIRCUIT
321         macro defaulting to original BRANCH_COST heuristic.
322         * doc/tm.texi (RANGE_TEST_NON_SHORT_CIRCUIT): Document.
323
324         * config/rs6000/rs6000.h (RANGE_TEST_NON_SHORT_CIRCUIT): Define.
325
326 2003-04-22  Aldy Hernandez  <aldyh@redhat.com>
327
328         * config/rs6000/t-spe: Merge in t-fprules into file.
329
330         * config.gcc: Add t-spe to powerpc-eabispe.
331
332 2003-04-22  Kean Johnston  <jkj@sco.com>
333
334         * tlink.c (recompile_files): Add missing '=' to putenv calls
335
336 2003-04-22  Nathan Sidwell  <nathan@codesourcery.com>
337
338         * ginclude/stddef.h: Provide C++ safe offsetof.
339
340 2003-04-22  J"orn Rennecke <joern.rennecke@superh.com>
341
342         * function.c (purge_addressof_1): In (mem (addressof (reg))) case
343         for reg notes, if there are no substitutions, just use a SUBREG.
344
345 2003-04-21  Mark Mitchell  <mark@codesourcery.com>
346
347         * Makefile.in (calls.o): Depend on except.h.
348         * calls.c: Include except.h.
349         (emit_call_1): Call note_eh_region_may_contain_throw if
350         appropriate.
351         * except.c (eh_region): Add may_contain_throw.
352         (expand_eh_region_end_cleanup): Do not include handler code when
353         it cannot be reached.
354         (note_eh_region_may_contain_throw): New function.
355         * except.h (note_eh_region_may_contain_throw): New function.
356
357 2003-04-21  Mark Mitchell  <mark@codesourcery.com>
358
359         * config/i386/winnt.c (i386_pe_mark_dllimport): Revert previous
360         changes.
361
362 2003-04-21  Aldy Hernandez  <aldyh@redhat.com>
363
364         * config/rs6000/rs6000.c (rs6000_override_options): No SPE means
365         64-bit long doubles.
366
367 2003-04-21  Olivier Hainque  <hainque@act-europe.fr>
368
369         * fold-const.c (fold, case PLUS_EXPR and case MULT_EXPR): Restore
370         a number of conversions required for type consistency and previously
371         stripped off by STRIP_NOPS.
372
373         * calls.c (expand_call): Prevent sibcall optimization for calls to
374         nested subprograms.
375
376         * expmed.c (extract_bit_field): Reverse operands of && condition to
377         prevent a potential division by zero in the previously first branch.
378         * config/pa/pa.md (extv, extzv): FAIL if the bitfield length is zero.
379
380 2003-04-21  Joel Brobecker  <brobecker@gnat.com>
381
382         * dwarf2out.c (is_ada, is_ada_subrange_type): New functions.
383         (subrange_type_die): Likewise.
384         (modified_type_die): Emit a subrange_type DIE for Ada subrange types.
385         (is_c_family, is_cxx, is_java, is_fortran): Return bool and clean up.
386
387 2003-04-21  Nathan Sidwell  <nathan@codesourcery.com>
388
389         Break out coverage routines to new file.
390         * Makefile.in (COVERAGE_H): New variable
391         (C_OBJS): Add coverage.o
392         (coverage.o): New target.
393         (profile.o, loop-init.o, sched-ebb.o, predict.o, tracer.o): Adjust
394         dependencies.
395         (GTFILES): Adjust.
396         (gt-coverage.h): New target.
397         (gt-profile.h): Remove.
398         * profile.h: Remove. Move to ...
399         * coverage.h: ... here. New. #include gcov-io.h.
400         * gcov-io.h: Move function definitions to ...
401         * gcov-io.c: ... here. New.
402         * profile.c: Move coverage routines to coverage.c.
403         (instrument_edges, get_exec_counts, branch_prob, init_branch_prob,
404         end_branch_prob): Adjust.
405         * coverage.c: New. Coverage routines from profile.c
406         (coverage_counter_ref, coverage_init, coverage_finish,
407         coverage_end_function, coverage_begin_output,
408         coverage_counter_ref, get_coverage_counts): Define.
409         * gcov-dump.c, gcov.c: #include gcov-io.c.
410         * libgcov.c: Likewise. Adjust.
411         * loop-init.c: Don't #include profile.h
412         * tracer.c, predict.c, sched-ebb.c: Adjust #includes.
413         * rtl.h: Add coverage prototypes.
414         * toplev.c (compile_file): Init coverage, not branch_prob.
415         Always call coverage_finish.
416         (rest_of_compilation): Call coverage_end_function.
417
418 2003-04-21  Matt Kraai  <kraai@alumni.cmu.edu>
419
420         * config/rs6000/rs6000.md (*movsf_softfloat): Add "h" <- "0" case.
421
422 2003-04-21  Neil Booth  <neil@daikokuya.co.uk>
423
424         * c-ppoutput.c (cb_include): Don't take a cpp_token.
425         * cppfiles.c: Don't undef strcmp.
426         (find_include_file): Don't take a cpp_token.  Check for empty
427         file names.
428         (_cpp_execute_include, _cpp_compare_file_date): Don't take a cpp_token.
429         (cpp_push_include): Simplify.
430         * cpphash.h (_cpp_execute_include, _cpp_compare_file_date): Update.
431         * cpplib.c (glue_header_name): Return the file name, not a cpp_token.
432         (parse_include): Similary.  Don't check for zero-length filenames.
433         (do_include_common, do_pragma_dependency): Update accordingly.
434         * cpplib.h (struct cpp_callbacks): Change prototype of include.
435
436 2003-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
437         
438         * doc/rtl.texi (RTX_UNCHANGING_P): Point to true_dependence for
439         details of conflict handling.
440         
441         * fold-const.c (extract_muldiv, case CONVERT_EXPR): Detect case
442         when conversion overflows.
443
444         * stor-layout.c (layout_decl): Don't set DECL_SIZE_UNIT if already set.
445
446         * expr.c (store_constructor): Set RTX_UNCHANGING_P if readonly_field_p
447         before clearing.
448
449 2003-04-21  Mark Mitchell  <mark@codesourcery.com>
450
451         * config/i386/winnt.c (i386_pe_mark_dllimport): Make the new RTL
452         have the same form as the old RTL.
453
454 2003-04-21  Andreas Jaeger  <aj@suse.de>
455
456         * cppcharset.c (_cpp_valid_ucn): Cast field precision to int.
457
458 2003-04-20  Chris Lattner  <sabre@nondot.org>
459             Zack Weinberg  <zack@codesourcery.com>
460
461         * c-common.h, c-semantics.c: Rename genrtl_decl_cleanup to
462         genrtl_cleanup_stmt.  Correct comment at head of
463         genrtl_cleanup_stmt (no such thing as a DECL_CLEANUP).
464
465         * stmt.c (struct nesting): Kill n_function_calls.
466         (expand_start_bindings): Don't set
467         thisblock->data.block.n_function_calls.
468         (expand_end_bindings): Compare function_call_count against 0.
469         (expand_cleanups): Kill DONT_DO argument; all callers passed
470         NULL_TREE. All callers updated to match.
471
472 2003-04-20  Zack Weinberg  <zack@codesourcery.com>
473
474         * varasm.c (struct deferred_constant, defer_addressed_constants_flag)
475         (defer_addressed_constants, output_deferred_addressed_constants): Kill.
476         (output_constant_def): Remove code predicated on
477         defer_addressed_constants_flag.
478
479         * output.h: Remove prototypes of deleted functions.
480         * c-typeck.c (constructor_subconstants_deferred): Kill.
481         (struct initializer_stack): Remove 'deferred' field.
482         (start_init): Remove all references to the above.
483         (finish_init): Likewise. Also remove never-executed call to
484         output_deferred_addressed_constants.  Pull assignment to
485         defstr out of if expression.
486
487 2003-04-20  Neil Booth  <neil@daikokuya.co.uk>
488
489         * cpphash.h (NOTE_ESC_NL, NOTE_ESC_SPACE_NL, NOTE_TRIGRAPH,
490         NOTE_NEWLINE): Remove.
491         * cpplex.c (_cpp_clean_line, _cpp_process_line_notes): Update
492         to handle new form of line note type.
493
494 2003-04-20  Zack Weinberg  <zack@codesourcery.com>
495
496         * target.h (encode_section_info): Add new argument carrying
497         the RTL to be modified by the hook.
498
499         * varasm.c (make_decl_rtl, output_constant_def): Update calls
500         to encode_section_info.
501         (default_encode_section_info): Take and use RTL argument,
502         don't use TREE_CST_RTL or DECL_RTL.
503         * output.h: Update prototype of default_encode_section_info.
504         * config/darwin.h (ASM_DECLARE_OBJECT_NAME)
505         (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL):
506         Update calls to encode_section_info.
507
508         * config/darwin.c, config/arm/arm.c, config/arm/pe.c
509         * config/h8300/h8300.c, config/i386/winnt.c, config/m32r/m32r.c
510         * config/m68hc11/m68hc11.c, config/m88k/m88k.c, config/mcore/mcore.c
511         * config/mips/mips.c, config/mmix/mmix.c, config/pa/pa.c
512         * config/romp/romp.c, config/rs6000/rs6000.c, config/s390/s390.c
513         * config/v850/v850.c (TARGET_ENCODE_SECTION_INFO definitions):
514         Take and use RTL argument, don't use TREE_CST_RTL or DECL_RTL,
515         except for PE dllimport/dllexport.  Update calls to
516         default_encode_section_info.
517
518         * config/darwin-protos.h, config/arm/arm-protos.h, config/i386-protos.h:
519         Update prototypes.
520
521         * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update.
522
523 2003-04-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
524
525         PR/8705
526         * pa.md (movccfp): New expander.
527         (setccfp0, setccfp1): Rename to movccfp0 and movccfp1, respectively.
528         Reverse fcmp conditions.
529
530 2003-04-20  Marek Michalkiewicz  <marekm@amelek.gda.pl>
531
532         * config/avr/avr.md (*cmpqi_sign_extend): Handle negative values
533         of operand 1 correctly.
534
535 2003-04-20  Nathan Sidwell  <nathan@codesourcery.com>
536
537         * cpplex.c (_cpp_lex_direct): Set BOL for CPP_EOF tokens.
538         * gcov.c (output_lines): Don't be so fussy about going past EOF.
539
540 2003-04-20  Neil Booth  <neil@daikokuya.co.uk>
541
542         * Makefile.in (LIBCPP_OBJS): Add cppcharset.o.
543         (cppcharset.o): New target.
544         * c-lex.c (is_extended_char): Move to cppcharset.c.
545         (utf8_extend_token): Delete.
546         * cppcharset.c: New file.
547         * cpphash.h (_cpp_valid_ucn): New.
548         * cpplex.c (lex_identifier): Update prototype.
549         (continues_identifier_p): Rename forms_identifier_p.  Handle UCN
550         escapes.
551         (maybe_read_ucs): Rename maybe_read_ucn.  Update to use code
552         in cppcharset.c.
553         (lex_number, lex_identifier, cpp_parse_escape): Update.
554         (_cpp_lex_direct): Update to handle UCNs.
555         (cpp_avoid_paste): Don't paste to form a UCN.
556
557 2003-04-19  Roger Sayle  <roger@eyesopen.com>
558
559         * builtins.c (expand_builtin):  Don't expand a pure or const
560         built-in function if the result will be ignored and none of
561         its arguments are volatile.
562
563 2003-04-19  Kean Johnston  <jkj@sco.com>
564
565         * unwind-dw2.c (_Unwind_GetCFA): cast return to avoid warning
566         * config.gcc: make SCO use dbxelf.h and elfos.h; only use one
567         target fragment now: t-sco5; dont compile crti.o.
568         * config/i386/sco5.h: major overhaul to remove all COFF remnants
569         and to use elfos.h for most definitions.
570         (BSS_SECTION_ASM_OP): set correct segment attributes.
571         (PREFERED_DEBUGGING_TYPE): set to DWARF-2.
572         (DWARF2_UNWIND_INFO): Always set to 1.
573         (MD_STARTFILE_PREFIX): Make /usr/gnu/lib the default.
574         (MD_STARTFILE_PREFIX_1): Define.
575         (MD_EXEC_PREFIX): Adjust to /usr/gnu/bin if using GAS.
576         (DEFAULT_LINKER): Define if not specified to configure.
577         (CTORS_SECTION_ASM_OP): Remove COFF crud.
578         (DTORS_SECTION_ASM_OP): Remove COFF crud.
579         (WINT_TYPE): Define.
580         (SDB_DEBUGGING_INFO): Remove.
581         (EXTRA_SECTIONS): Likewise.
582         (EXTRA_SECTION_FUNCTIONS): Likewise.
583         (CTOR_LIST_BEGIN): Likewise.
584         (CTOR_LIST_END): Likewise.
585         (INIT_SECTION_FUNCTION): Likewise.
586         (FINI_SECTION_FUNCTION): Likewise.
587         (SUBTARGET_FRAME_POINTER_REQUIRED): Likewise.
588         (LOCAL_LABEL_PREFIX): Likewise.
589         (NON_SAVING_SETJMP): Likewise.
590         (RETURN_POPS_ARGS): Likewise.
591         (ASM_OUTPUT_SKIP): Likewise.
592         (TARGET_ASM_NAMED_SECTION): Likewise.
593         (ASM_OUTPUT_INTERNAL_LABEL): Likewise.
594         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
595         (ASM_OUTPUT_IDENT): Likewise.
596         (ASM_OUTPUT_CASE_LABEL): Likewise.
597         (ASM_OUTPUT_ASCII): Likewise.
598         (ASM_OUTPUT_LIMITED_STRING): Likewise.
599         (ASM_OUTPUT_ALIGNED_LOCAL): Likewise.
600         (ASM_OUTPUT_ALIGNED_COMMON): Likewise.
601         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
602         (ASM_FINISH_DECLARE_OBJECT): Likewise.
603         (ASM_DECLARE_OBJECT_NAME): Likewise.
604         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
605         (ASM_DECLARE_FUNCTION_NAME): Likewise.
606         (ASM_DECLARE_RESULT): Likewise.
607         (ASM_WEAKEN_LABEL): Likewise.
608         (SUPPORTS_WEAK): Likewise.
609         (APPLY_RESULT_SIZE): Likewise.
610         (LPREFIX): Likewise.
611         (ALIGN_ASM_OP): Likewise.
612         (ASCII_DATA_ASM_OP): Likewise.
613         (IDENT_ASM_OP): Likewise.
614         (ASM_SHORT): Likewise.
615         (ASM_LONG): Likewise.
616         (TYPE_ASM_OP): Likewise.
617         (SIZE_ASM_OP): Likewise.
618         (STRING_ASM_OP): Likewise.
619         (SKIP_ASM_OP): Likewise.
620         (EH_FRAME_SECTION_ASM_OP): Likewise.
621         (READONLY_DATA_SECTION_ASM_OP): Likewise.
622         (INIT_SECTION_ASM_OP): Likewise.
623         (FINI_SECTION_ASM_OP): Likewise.
624         (TEXT_SECTION_ASM_OP): Likewise.
625         (DATA_SECTION_ASM_OP): Likewise.
626         (TYPE_OPERANT_FORMAT): Likewise.
627         (ASM_SPEC): Remove COFF code.
628         (STARTFILE_SPEC): Likewise. Always use crti.o; add -p and -pp support;
629         cause -pg to emit an error; use pcrt1elf.o with -pp
630         (ENDFILE_SPEC): Likewise.
631         (TARGET_OS_CPP_BUILTINS): Add _SCO_DS_LL.
632         (CPP_SPEC): Remove COFF crud; always look in /usr/gnu/include first.
633         (LINK_SPEC): Remove COFF crud; use -E for environment switch not -R;
634         add -z alt_resolve to support weak symbols the way GCC wants them.
635         (LIB_SPEC): Use the profiler libraries in -p or -pp mode.
636         (LIBGCC_SPEC): Dont use -lgcc in -G mode.
637         (ASM_PREFERED_EH_DATA_FORMAT): Remove.
638         * config/i386/t-sco5 (TARGET_LIBGCC2_CFLAGS): Remove.
639         (CRTSTUFF_T_CFLAGS_S): Define.
640         (MULTILIB_OPTIONS): Likewise.
641         (MULTILIB_DIRNAMES): Likewise.
642         (MULTILIB_MATCHES): Likewise.
643         (MULTILIB_EXTRA_OPTS): Likewise.
644         (LIBGCC): Likewise.
645         (INSTALL_LIBGCC): Likewise.
646         (crti.o): Remove.
647         * config/i386/t-sco5gas: Remove.
648         * doc/install.texi: Updated for new OpenServer instructions.
649         * testsuite/gcc.dg/nest.c: Allow failure on SCO (-pg not supported)
650
651 2003-04-19  Kean Johnston  <jkj@sco.com>
652
653         * fixinc/check.tpl: Allow user to over-ride diff program.
654         * fixinc/inclhack.def: Removed extraneous #ifndef SVR5.
655         (sco_math): Added test for SCO math header files.
656         (sco_regset): Added check for conflicts with ieeefp.h.
657         (svr4_disable_opt): Removed extraneous #ifdef SVR4.
658         * fixinc/fixincl.x: Regenerated
659         * fixinc/tests/base/math.h: Added sco_math tests.
660         * fixinc/tests/base/string.h: New file.
661         * fixinc/tests/base/sys/regset.h: New file.
662
663 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
664
665         * cpphash.h (struct cpp_buffer): Remove backup_to.
666         * cpplex.c (BACKUP, get_effective_char): Die.
667         (_cpp_skip_block_comment): Assume '*' is location on entry.
668         (continues_identifier_p): Respect -fno-dollars-in-identifiers.
669         (IF_NEXT_IS): Update.
670         (_cpp_lex_direct): Don't use backup_to; look ahead directly.
671
672 2003-04-19  Matt Kraai  <kraai@alumni.cmu.edu>
673
674         * README.Portability: Move to a new section and obsolete K+R
675         portability issues.
676
677 Sat Apr 19 14:56:17 CEST 2003  Jan Hubicka  <jh@suse.cz>
678
679         * rtlanal.c (subreg_offset_representable_p):  Fix call of
680         subreg_lowpart.
681
682 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
683
684         * cpphash.h (struct cpp_reader): New member warned_dollar.
685         * cpplex.c (continues_identifier_p): New function.
686         (parse_identifier, parse_number, parse_string): Rename lex_identifer,
687         lex_number and lex_string, and simplify.
688         (parse_slow, unescaped_terminator_p): Die.
689         (_cpp_lex_direct): Update.
690
691 2003-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
692
693         * calls.c (expand_call): Provide init for old_stack_pointer_delta.
694
695 2003-04-19  Nathan Sidwell  <nathan@codesourcery.com>
696
697         * doc/invoke.texi (-fprofile-arcs): Mention -lgcov, locking and
698         fork behaviour.
699
700 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
701
702         * cppexp.c (eval_token): Permit true and false even if pedantic.
703
704 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
705
706         * cpplex.c (skip_whitespace): Rearrange to avoid stage1 ICE.
707
708 2003-04-19  Neil Booth  <neil@daikokuya.co.uk>
709
710         * cppfiles.c (ENABLE_VALGRIND_CHECKING, VALGRIND_DISCARD,
711         MMAP_THRESHOLD, TEST_THRESHOLD, SHOULD_MMAP): Remove.
712         (struct include_file): Remove fefcnt, mapped members.
713         (open_file, stack_include_file, _cpp_pop_file_buffer): Disable caching.
714         (read_include_file): Don't use mmap, terminate buffers in '\r'.
715         (purge_cache): Don't use munmap.
716         * cpphash.h (CPP_BUF_COLUMN): Update.
717         (lexer_state): Remove lexing_comment.
718         (struct _cpp_line_note): New.
719         (struct cpp_buffer): New members cur_note, notes_used, notes_cap,
720         next_line and need_line.  Remove col_adjust and saved_flags.
721         (_cpp_process_line_notes, _cpp_clean_line, _cpp_get_fresh_line,
722         _cpp_skip_block_comment, scan_out_logical_line): New.
723         (_cpp_init_mbchar): Remove.
724         * cppinit.c (init_library): Remove call to _cpp_init_mbchar.
725         (cpp_read_main_file): Set line to 1 earlier.
726         (post_options): -traditional-cpp doesn't want trigraphs.
727         * cpplex.c (MULTIBYTE_CHARS): Remove code predicated on this.
728         (add_line_note, _cpp_clean_line, _cpp_process_line_notes,
729         _cpp_get_fresh_line): New.
730         (handle_newline, skip_escaped_newlines, trigraph_p,
731         continue_after_nul, _cpp_init_mbchar): Remove.
732         (get_effective_char): Update.
733         (_cpp_skip_block_comment): Rename from skip_block_comment, simplify.
734         (skip_line_comment): Simplify.
735         (skip_whitespace, parse_identifier, parse_slow, parse_number,
736         parse_string): Update.
737         (cpp_lex_direct): Use clean lines and process line notes.  Update.
738         (cpp_interpret_charconst): No MULTIBYTE_CHARS.
739         * cpplib.c (prepare_directive_trad): Call scan_out_logical_line
740         directly.
741         (_cpp_handle_directive): Don't set saved_flags.
742         (run_directive, destringize_and_run, cpp_define, cpp_define_builtin,
743         cpp_undef, handle_assertion, cpp_push_buffer): Update.
744         (_cpp_pop_buffer): Free notes.
745         * cppmacro.c (builtin_macro, paste_tokens): \n terminate buffer.
746         * cpppch.c (cpp_read_state): \n terminate buffer.
747         * cpptrad.c (skip_escaped_newlines, handle_newline): Remove.
748         (copy_comment): Use _cpp_skip_block_comment.
749         (skip_whitespace, lex_identifier, _cpp_read_logical_line_trad):
750         Simplify.
751         (_cpp_overlay_buffer, _cpp_remove_overlay, push_replacement_text,
752         save_replacement_text): Update.
753         (scan_out_logical_line): Update to use clean lines and process
754         line notes.
755         * fix-header.c (read_scan_file): Update.
756
757 2003-04-18  Douglas B Rupp  <rupp@gnat.com>
758
759         * unwind-dw2-fde.c (__register_frame_info_bases): Check for
760         null begin parameter (as well as pointer to null).
761         (__deregister_frame_info_bases): Likewise.
762
763 2003-04-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
764
765         * function.c (purge_addressof_1): For ADDRESSOF, see if SUB is a
766         hard or virtual register and copy into pseudo if replacement fails.
767
768         * cfgcleanup.c (flow_find_cross_jump): Use INSN_P, not active_insn_p.
769
770         * expmed.c (mask_rtx): Avoid undefined shifts for BITSIZE of 0.
771
772 2003-04-18  Olivier Hainque <hainque@act-europe.fr>
773
774         * calls.c (expand_call): Move special case for constructor calls
775         to right place. Ensures constructor calls used to initialize
776         arguments get a clean outgoing argument block for themselves.
777         Move check for stack deallocation completeness until after last
778         deallocation.  Add stack_pointer_delta to set of state
779         variables saved and restored along with current stack_level.
780
781         * integrate.c (expand_inline_function): Ensure non-const actuals
782         don't end up const in the caller's flow after conversion to possibly
783         const formal type.
784
785 2003-04-18  Vincent Celier  <celier@gnat.com>
786
787         * dwarf2out.c (loc_descriptor_from_tree): Treat all *_MOD_EXPR
788         and *_DIV_EXPR as TRUNC_*_EXPR.
789
790 2003-04-18  Mark Mitchell  <mark@codesourcery.com>
791
792         * cfgrtl.c (try_redirect_by_replacing_jump): Create a basic block
793         for orphaned jump tables.
794
795 2003-04-18  Kazu Hirata  <kazu@cs.umass.edu>
796
797         * reload1.c: Revert my previous patch on 2002-04-17.
798
799 2003-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
800
801         * doc/contrib.texi (Contributors): Prefer "bug fix" over "bugfix".
802         Add Segher Boessenkool.
803
804 2003-04-18  Alexander Sotirov  <sluncho@mirizma.org>
805
806         PR c/9177
807         * c-decl.c (c_expand_body): Don't garbage collect the function
808         body if we are going to dump it later.
809
810 2003-04-18  Richard Henderson  <rth@redhat.com>
811
812         * config/alpha/alpha.c (SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP): Remove.
813         (alpha_end_function): Don't set them.
814         (decl_in_text_section): Remove.
815         (alpha_encode_section_info): Remove.
816         (samegp_function_operand): Use SYMBOL_REF LOCAL_P and EXTERNAL_P.
817         (direct_call_operand): Use SYMBOL_REF_DECL and compare actual
818         sections, rather than decl_in_text_section results.
819
820 2003-04-18  Roger Sayle  <roger@eyesopen.com>
821
822         * rtlanal.c (reg_overlap_mentioned_p): Handle ZERO_EXTRACT
823         and SIGN_EXTRACT.
824
825 2003-04-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
826
827         PR optimization/7675
828         * c-typeck.c (build_external_ref): Set the DECL_NONLOCAL flag
829         on VAR_DECL, PARM_DECL and FUNCTION_DECL from within
830         nested functions if they refer to declarations from parent functions.
831         * stmt.c (expand_decl): Don't put automatic variables in registers
832         if the DECL_NONLOCAL flag is set.
833
834 2003-04-18  Hans-Peter Nilsson  <hp@bitrange.com>
835
836         * gcse.c (compute_ld_motion_mems): For MEM destinations, only
837         consider those to be movable where the source matches
838         want_to_gcse_p.
839         (update_ld_motion_stores): In comment, refer to
840         compute_ld_motion_mems for validity of replacement.
841
842 Fri Apr 18 01:28:51 CEST 2003  Jan Hubicka  <jh@suse.cz>
843
844         * gcov-dump.c (tag_summary): Remove max_sum
845         * gcov-io.h (gcov_summary, gcov_write_summary,
846         gcov_read_summary): Kill max_sum.
847         * libgcov.c (gcov_exit): Do one pass over the data.  Make error
848         message more verbose.
849
850         * emit-rtl.c (subreg_hard_regno):  Check that register is
851         representable.
852         
853         * reload.c (reload_inner_reg_of_subreg):  When register is not
854         representable, reload the whole thing.
855         (find_reloads): Likewsie.
856         * rtlanal.c (subreg_representable_p):  New function.
857
858         * profile.c (compute_branch_probabilities):  Cleanup sanity checking;
859         allow negative probabilities for edges from the call to exit.
860         (branch_prob): Do not add fake edges for functions that may return
861         twice.
862
863 2003-04-17  DJ Delorie  <dj@redhat.com>
864
865         * toplev.c (target_options): Add value field.
866         (set_target_switch): Handle target options with values.
867         * doc/tm.texi: Document how fixed vs variable target
868         options work.
869         * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h,
870         config/c4x/c4x.h, config/cris/aout.h, config/cris/cris.h,
871         config/d30v/d30v.h, config/dsp16xx/dsp16xx.h,
872         config/frv/frv.h, config/i386/i386.h, config/ia64/ia64.h,
873         config/m32r/m32r.h, config/m68hc11/m68hc11.h,
874         config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h,
875         config/mips/mips.h, config/mmix/mmix.h, config/pa/pa.h,
876         config/rs6000/rs6000.h, config/rs6000/sysv4.h,
877         config/s390/s390.h, config/sparc/sparc.h, config/v850/v850.h:
878         Add value initializer to target options.
879
880 2003-04-07  Loren James Rittle  <ljrittle@acm.org>
881
882         * cpppch.c (cpp_valid_state): Unconditionally initialize nl.
883
884 2003-04-17  Kazu Hirata  <kazu@cs.umass.edu>
885
886         * reload1.c (move2add_last_cc0): New.
887         (reload_cse_move2add): Detect implicit sets.
888         (move2add_note_store): Notice a store into cc0.
889
890 2003-04-17  Roger Sayle  <roger@eyesopen.com>
891
892         PR c/10375
893         * c-decl.c (duplicate_decls): Preserve "const" and "noreturn"
894         function attributes.
895
896 2003-04-17  Janis Johnson  <janis187@us.ibm.com>
897
898         * doc/sourcebuild.texi (Test Suites): Document support for testing
899         binary compatibility (moved from testsuite/README.compat).
900
901 2003-04-17  Richard Henderson  <rth@redhat.com>
902
903         * config/ia64/ia64.c (ia64_in_small_data_p): Disallow strings.
904
905 2003-04-17  Simon Law  <sfllaw@engmail.uwaterloo.ca>
906
907         * doc/include/gpl.texi: Fix double-spacing after "MA" to match
908         the one provided by the FSF.
909
910 2003-04-17  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
911
912         * doc/install.texi (Binaries): Update URL and list of platforms
913         provided by ftp.thewrittenword.com.
914
915 2003-04-17  Richard Henderson  <rth@redhat.com>
916
917         * config/xtensa/xtensa.c (xtensa_encode_section_info): Remove.
918         (call_insn_operand): Use SYMBOL_REF_LOCAL_P.
919         * config/xtensa/xtensa.md (call, call_value): Likewise.
920
921 2003-04-17  Richard Henderson  <rth@redhat.com>
922
923         * config/v850/v850.c (print_operand): Use SYMBOL_REF_[ZST]DA.
924         (print_operand_address): Likewise.
925         (ep_memory_operand): Likewise.
926         (special_symbolref_operand): Likewise.
927         (v850_encode_data_area): Use SYMBOL_REF_FLAGS.
928         (v850_encode_section_info): Call default_encode_section_info.
929         (v850_strip_name_encoding): Remove.
930         * config/v850/v850.h (EXTRA_CONSTRAINT): Use SYMBOL_REF_[ZST]DA.
931         (ASM_OUTPUT_LABELREF): Remove.
932         (ZDA_NAME_FLAG_CHAR, ZDA_NAME_P): Remove.
933         (SDA_NAME_FLAG_CHAR, SDA_NAME_P): Remove.
934         (TDA_NAME_FLAG_CHAR, TDA_NAME_P): Remove.
935         (ENCODED_NAME_P): Remove.
936         (SYMBOL_FLAG_ZDA, SYMBOL_REF_ZDA_P): New.
937         (SYMBOL_FLAG_SDA, SYMBOL_REF_SDA_P): New.
938         (SYMBOL_FLAG_TDA, SYMBOL_REF_TDA_P): New.
939
940 2003-04-17  Richard Henderson  <rth@redhat.com>
941
942         * config/stormy16/stormy16.c (xstormy16_encode_section_info): Kill.
943         * config/stormy16/stormy16.h (ASM_OUTPUT_SYMBOL_REF): Use
944         SYMBOL_REF_FUNCTION_P.
945
946 2003-04-17  Richard Henderson  <rth@redhat.com>
947
948         * config/sparc/sparc.c (sparc_encode_section_info): Remove.
949         (data_segment_operand): Use SYMBOL_REF_FUNCTION_P.
950         (text_segment_operand): Likewise.
951
952 2003-04-17  Richard Henderson  <rth@redhat.com>
953
954         * config/sh/sh.c (gen_datalabel_ref): Don't add SH_DATALABEL_ENCODING.
955         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
956         (legitimize_pic_address): Use SYMBOL_REF_LOCAL_P.
957         (sh_encode_section_info): Remove.
958         (sh_strip_name_encoding): Remove.
959         * config/sh/sh.h (SH_DATALABEL_ENCODING): Remove.
960         (DATALABEL_SYMNAME_P, STRIP_DATALABEL_ENCODING): Remove.
961         (SH_TLS_ENCODING, TLS_SYMNAME_P, STRIP_TLS_ENCODING): Remove.
962         (ASM_OUTPUT_LABELREF): Remove.
963         (ASM_OUTPUT_SYMBOL_REF): Use SYMBOL_REF_FUNCTION_P.
964         * config/sh/sh.md (*): Use SYMBOL_REF_LOCAL_P.
965
966 2003-04-17  Richard Henderson  <rth@redhat.com>
967
968         * config/s390/s390.c (SYMBOL_FLAG_ALIGN1): New.
969         (tls_model_chars): Remove.
970         (larl_operand): Use SYMBOL_REF_FLAGS.
971         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
972         (legitimize_pic_address): Use SYMBOL_REF_LOCAL_P.
973         (s390_output_mi_thunk): Likewise.
974         (s390_emit_prologue): Set SYMBOL_FLAG_LOCAL as needed.
975         (s390_function_profiler): Likewise.
976         (s390_encode_section_info): Use default_encode_section_info
977         and SYMBOL_FLAG_ALIGN1.
978         (s390_strip_name_encoding): Remove.
979         * config/s390/s390.h (ASM_OUTPUT_LABELREF): Remove.
980         * config/s390/s390.md (call, call_value): Use SYMBOL_REF_LOCAL_P.
981         (builtin_setjmp_receiver): Set SYMBOL_FLAG_LOCAL as needed.
982
983 2003-04-17  Richard Henderson  <rth@redhat.com>
984
985         * config/ns32k/ns32k.c (ns32k_encode_section_info): Remove.
986         (global_symbolic_reference_mentioned_p): Use SYMBOL_REF_LOCAL_P.
987         (print_operand_address): Likewise.
988
989         * config/ns32k/ns32k.h (CANNOT_CHANGE_MODE_CLASS): Add CLASS argument.
990         * config/ns32k/ns32k.c (expand_block_move): Don't check
991         flag_unroll_loops.
992
993 2003-04-17  Richard Henderson  <rth@redhat.com>
994
995         * config/mcore/mcore.c (mcore_encode_section_info): Don't set
996         SYMBOL_REF_FLAG.
997
998 2003-04-17  Richard Henderson  <rth@redhat.com>
999
1000         * rtl.h (SYMBOL_FLAG_MACH_DEP_SHIFT): New.
1001
1002         * config/m32r/m32r.c (SYMBOL_FLAG_MODEL_SHIFT): New.
1003         (SYMBOL_REF_MODEL): New.
1004         (LIT_NAME_P): Move from m32r.h.
1005         (m32r_select_section): Remove.
1006         (m32r_encode_section_info): Use SYMBOL_REF_FLAGS.
1007         (m32r_strip_name_encoding): Remove.
1008         (m32r_in_small_data_p): New.
1009         (small_data_operand): Use SYMBOL_REF_SMALL_P.
1010         (addr24_operand): Use SYMBOL_REF_MODEL.
1011         (call26_operand): Likewise.
1012         (addr32_operand): Tidy.
1013         (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX.
1014         * config/m32r/m32r.h (RODATA_SECTION_ASM_OP): Remove.
1015         (SDATA_SECTION_ASM_OP, SBSS_SECTION_ASM_OP): Remove.
1016         (READONLY_DATA_SECTION_ASM_OP): Remove.
1017         (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
1018         (SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Remove.
1019         (TARGET_ASM_SELECT_SECTION): Remove.
1020         (SDATA_FLAG_CHAR, MEDIUM_FLAG_CHAR, LARGE_FLAG_CHAR): Remove.
1021         (SDATA_NAME_P, SMALL_NAME_P, MEDIUM_NAME_P): Remove.
1022         (LARGE_NAME_P, ENCODED_NAME_P): Remove.
1023         (ASM_OUTPUT_LABELREF): Remove.
1024
1025 2003-04-17  Richard Henderson  <rth@redhat.com>
1026
1027         * config/ip2k/ip2k.c (is_regfile_address): Use SYMBOL_REF_FUNCTION_P.
1028         (encode_section_info): Remove.
1029         * config/ip2k/ip2k-protos.h: Update.
1030
1031 2003-04-17  Richard Henderson  <rth@redhat.com>
1032
1033         * varasm.c (default_encode_section_info): Don't set
1034         SYMBOL_FLAG_EXTERNAL if not TREE_PUBLIC.
1035         * config/i370/i370.c (i370_encode_section_info): Remove.
1036         * config/i370/i370.h (CONSTANT_ADDRESS_P): Use SYMBOL_REF_EXTERNAL_P.
1037         (PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Likewise.
1038         * config/i370/i370.md (movsi): Likewise.
1039
1040         * config/i370/t-i370: Add missing backslash.
1041
1042 2003-04-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
1043
1044         * doc/invoke.texi (inline-limit): Fix pasto.
1045
1046 2003-04-17  Richard Henderson  <rth@redhat.com>
1047
1048         * config/h8300/h8300.c (SYMBOL_FLAG_FUNCVEC_FUNCTION): New.
1049         (small_call_insn_operand): Use it.
1050         (SYMBOL_FLAG_EIGHTBIT_DATA): New.
1051         (h8300_eightbit_constant_address_p): Use it.
1052         (SYMBOL_FLAG_TINY_DATA): New.
1053         (h8300_tiny_constant_address_p): Use it.
1054         (h8300_encode_label, h8300_strip_name_encoding): Remove.
1055         (h8300_encode_section_info): Set SYMBOL_REF_FLAGS.
1056         * config/h8300/h8300.h (TINY_DATA_NAME_P): Remove.
1057         (ASM_OUTPUT_LABELREF): Remove.
1058
1059 2003-04-16  Richard Henderson  <rth@redhat.com>
1060
1061         * config/frv/frv.c (symbol_ref_small_data_p): Remove.  Replace
1062         all users with SYMBOL_REF_SMALL_P.
1063         (const_small_data_p): Use SYMBOL_REF_SMALL_P.
1064         (frv_encode_section_info): Remove.
1065         (frv_strip_name_encoding): Remove.
1066         (frv_in_small_data_p): Merge tests from encode_section_info.
1067         (frv_print_operand): Use '@' not SDATA_FLAG_CHAR.
1068         * config/frv/frv.h (SDATA_FLAG_CHAR): Remove.
1069         (SDATA_NAME_P): Remove.
1070         (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use SIZE not SDATA_NAME_P.
1071         (ASM_OUTPUT_LABELREF): Remove.
1072         (PRINT_OPERAND_PUNCT_VALID_P): Use '@' not SDATA_FLAG_CHAR.
1073
1074         * config/frv/frv.c (frv_asm_out_constructor): New.
1075         (frv_asm_out_destructor): New.
1076         * config/frv/frv.h (CTORS_SECTION_ASM_OP): New.
1077         (DTORS_SECTION_ASM_OP): New.
1078         (ASM_OUTPUT_CONSTRUCTOR): Remove.
1079         (ASM_OUTPUT_DESTRUCTOR): Remove.
1080
1081 2003-04-16  Richard Henderson  <rth@redhat.com>
1082
1083         * config/cris/cris.c (cris_gotless_symbol, cris_got_symbol): Use
1084         SYMBOL_REF_LOCAL_P; abort if not pic.
1085         (cris_encode_section_info): Remove.
1086
1087 2003-04-16  Richard Henderson  <rth@redhat.com>
1088
1089         * config/c4x/c4x.c (c4x_encode_section_info): Remove.
1090         (c4x_T_constraint): Use SYMBOL_REF_FUNCTION_P.
1091
1092         * config/c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): Declare
1093         flag_inline_trees.
1094
1095 2003-04-16  Richard Henderson  <rth@redhat.com>
1096
1097         * config/avr/avr.c (avr_encode_section_info): Remove.
1098         (avr_insert_attributes): New.
1099         (print_operand_address): Use SYMBOL_REF_FUNCTION_P.
1100         (avr_assemble_integer): Likewise.
1101
1102 2003-04-16  Richard Henderson  <rth@redhat.com>
1103
1104         * arc.c (arc_encode_section_info): Remove.
1105         (arc_assemble_integer): Use SYMBOL_REF_FUNCTION_P.
1106         (arc_print_operand, arc_print_operand_address): Likewise.
1107         * arc.h (EXTRA_CONSTRAINT): Likewise.
1108
1109 2003-04-16  Roger Sayle  <roger@eyesopen.com>
1110
1111         * c-semantics.c (find_reachable_label): New function to find a
1112         potentially reachable label in an expression.
1113         (expand_unreachable_if_stmt): Similar to expand_if_stmt but
1114         assumes the start of the IF_STMT is unreachable (dead) code.
1115         (expand_unreachable_stmt): Similar to expand_stmt but assumes
1116         the start of the statement list is unreachable (dead) code.
1117         (genrtl_if_stmt):  If the controlling expression of the IF
1118         is constant, use expand_unreachable_stmt for the THEN or ELSE
1119         clause as appropriate.
1120         (genrtl_switch_stmt):  Use expand_unreachable_stmt to expand
1121         the body of a SWITCH statement.
1122         (expand_stmt): The code immediately following a "return",
1123         "break", "continue" or "goto" is unreachable.
1124         * Makefile.in (c-semantics.o): Depend upon tree-inline.h.
1125
1126 2003-04-16  Richard Henderson  <rth@redhat.com>
1127
1128         * rtl.h (MEM_ALIAS_SET): Update documentation.
1129         * doc/rtl.texi (Special Accessors): New node.
1130         (SYMBOL_REF_FLAG): Note relationship with SYMBOL_REF_FLAGS.
1131
1132 2003-04-16  Alexandre Oliva  <aoliva@redhat.com>
1133
1134         * reload1.c (reload_cse_noop_set_p): Return false if mode of
1135         SET_DEST is not the same as that returned by...
1136         * cselib.h (cselib_reg_set_mode): ... new function.
1137         * cselib.c (cselib_reg_set_mode): Define it.
1138         (REG_VALUES): Document semantics of first element as set mode.
1139         (cselib_subst_to_values): Skip first element if ELT is NULL.
1140         (cselib_lookup): Likewise.  Insert past the first element.
1141         (cselib_invalidate_regno): NULLify first element.
1142         (cselib_record_set): Set first element.
1143
1144 2003-04-16  Olivier Hainque <hainque@act-europe.fr>
1145
1146         * tree.c (skip_simple_arithmetics_at, saved_expr_p): New functions.
1147         (save_expr): Replace loop by call to skip_simple_arithmetics_at.
1148         * tree.h: Add prototypes for the two new functions.
1149         * fold-const.c (fold_binary_op_with_conditional_arg): Replace test
1150         updates introduced in the previous revision by call to saved_expr_p.
1151         * stor-layout.c (put_pending_size): Use skip_simple_arithmetics_at.
1152
1153         * expr.c (store_field): Force usage of bitfield instructions when
1154         the field position requires it, whatever SLOW_UNALIGNED_ACCESS.
1155         (expand_expr, case BIT_FIELD_REF): likewise.
1156
1157 2003-04-16  Mark Mitchell  <mark@codesourcery.com>
1158
1159         PR middle-end/8866
1160         * cfgtrl.c (try_redirect_by_replacing_jump): Do not delete
1161         jumptables.
1162
1163 2003-04-16  Richard Henderson  <rth@redhat.com>
1164
1165         * config/ia64/ia64.c (sdata_symbolic_operand): Use
1166         SYMBOL_REF_SMALL_P and SYMBOL_REF_LOCAL_P.
1167         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
1168         (function_operand): Use SYMBOL_REF_FUNCTION_P.
1169         (ia64_expand_load_address): Likewise.
1170         (ia64_assemble_integer): Likewise.
1171         (ia64_encode_section_info): Remove.
1172         (ia64_strip_name_encoding): Remove.
1173         * config/ia64/ia64.h (ENCODE_SECTION_INFO_CHAR): Remove.
1174         * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't strip it.
1175
1176 2003-04-16  Richard Henderson  <rth@redhat.com>
1177
1178         * config/alpha/alpha.c (SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP): New.
1179         (samegp_function_operand): Use SYMBOL_FLAG_SAMEGP.
1180         (direct_call_operand): Use SYMBOL_FLAG_NEAR.
1181         (local_symbolic_operand): Use SYMBOL_REF_LOCAL_P.
1182         (small_symbolic_operand): Use SYMBOL_REF_SMALL_P.
1183         (global_symbolic_operand): Similarly.
1184         (tls_symbolic_operand_1): Use SYMBOL_REF_TLS_MODEL.
1185         (tls_symbolic_operand_type): Likewise.
1186         (alpha_encode_section_info): Use default_encode_section_info.
1187         (alpha_strip_name_encoding): Remove.
1188         (get_tls_get_addr): Split out from ...
1189         (alpha_legitimize_address): ... here.
1190         (alpha_emit_xfloating_libcall): Use init_one_libfunc.
1191         (get_some_local_dynamic_name_1): Use SYMBOL_REF_TLS_MODEL.
1192         (alpha_initialize_trampoline): Use init_one_libfunc.
1193         (alpha_setup_incoming_varargs): Mark unused parameters.
1194         (alpha_initial_elimination_offset): Likewise.
1195         (alpha_end_function): Use SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP.
1196         (unicosmk_unique_section): Use default_strip_name_encoding.
1197         (unicosmk_ssib_name, unicosmk_output_externs): Likewise.
1198
1199 2003-04-16  Aldy Hernandez  <aldyh@redhat.com>
1200
1201         * config.gcc: Add t-spe for eabispe.
1202
1203         * config/rs6000/t-spe: New.
1204
1205 2003-04-16  J"orn Rennecke <joern.rennecke@superh.com>
1206
1207         Re-apply this patch:
1208
1209         2002-05-16  Dale Johannesen  <dalej@apple.com>
1210           * combine.c (cant_combine_insn_p):  Reenable combinations
1211           involving hard regs unless CLASS_LIKELY_SPILLED_P.
1212
1213 2003-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1214
1215         PR/10271
1216         * pa-protos.h (function_arg): Remove last argument.
1217         * pa.c (function_arg): Likewise.  Use CUMULATIVE_ARGS struct instead.
1218         * pa.h (struct hppa_args): Add member incoming.
1219         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Initialize
1220         member incoming.
1221         (FUNCTION_ARG): Revise call to function_arg.
1222         (FUNCTION_INCOMING_ARG): Delete.
1223
1224 2003-04-15  Zack Weinberg  <zack@codesourcery.com>
1225
1226         * configure.in: Unify the code which creates symlinks to a
1227         just-built as, ld, objdump, and nm with the code that detects
1228         their presence for purposes of feature tests.
1229         * configure: Regenerate.
1230
1231 2003-04-15  Zack Weinberg  <zack@codesourcery.com>
1232
1233         * varasm.c (output_constant_def): Do not consult
1234         CONSTANT_AFTER_FUNCTION_P.  Remove all code predicated on it.
1235         (after_function_constants, output_after_function_constants): Delete.
1236         * doc/tm.texi: Delete documentation of CONSTANT_AFTER_FUNCTION_P.
1237         * config/mips/mips-protos.h, config/mips/mips.c
1238         (mips16_constant_after_function_p): Delete.
1239         * config/mips/mips.h: Delete #if-0-ed definition of
1240         CONSTANT_AFTER_FUNCTION_P.
1241         * config/d30v/d30v.h, config/stormy16/stormy16.h: Remove
1242         mention of CONSTANT_AFTER_FUNCTION_P in comment.
1243
1244 2003-04-15  Geoffrey Keating  <geoffk@apple.com>
1245
1246         * tree.c (next_decl_uid): Mark with GTY.
1247         (next_type_uid): Likewise.
1248
1249 2003-04-15  J"orn Rennecke <joern.rennecke@superh.com>
1250
1251         PR target/9594:
1252         * sh.c (barrier_align): Also recognize stuff_delay_slot as
1253         an indicator that a barrier was created by branch splitting.
1254
1255 2003-04-15  Mark Mitchell  <mark@codesourcery.com>
1256
1257         * c-decl.c (implicitly_declare): Copy declarations that are going
1258         to be placed in a local scope.
1259
1260 2003-04-15  James A. Morrison  <ja2morri@uwaterloo.ca>
1261
1262         * invoke.texi (Spec Files): Wrap if-exists-else example.
1263         (MCore): Remove duplicate @itemx entries and @opindex entries.
1264
1265 2003-04-15  Ulrich Weigand  <uweigand@de.ibm.com>
1266
1267         * unwind.inc (_Unwind_Backtrace): New function.
1268         * unwind.h (_Unwind_Backtrace): Declare it.
1269         * libgcc-std.ver (_Unwind_Backtrace): Export it.
1270
1271 2003-04-14  Jason Merrill  <jason@redhat.com>
1272
1273         PR middle-end/10336, c++/10401
1274         * jump.c (never_reached_warning): Also stop looking if we reach the
1275         beginning of the function.
1276
1277 2003-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1278
1279         PR target/10338
1280         PR bootstrap/10198
1281         PR bootstrap/10140
1282         * fixinc/gnu-regex.c (regerror): Use mempcpy not __mempcpy.
1283
1284 2003-04-15  J"orn Rennecke <joern.rennecke@superh.com>
1285
1286         * i386.md (abssf2_if+1): Make condition agree with abssf2_1 .
1287
1288 2003-04-15  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1289
1290         * optabs.c (expand_binop): In multi-word add cases, ensure
1291         XTARGET is copied to TARGET if they are different.
1292
1293 2003-04-15  Olivier Hainque <hainque@act-europe.fr>
1294
1295         * except.c (resolve_fixup_regions): Avoid dereferencing null pointer
1296         to region, possible after integration of function with unreachable
1297         regions that were optimized away.
1298
1299 2003-04-15  Jakub Jelinek  <jakub@redhat.com>
1300
1301         * config/rs6000/rs6000.h (EPILOGUE_USES): Use register 2,
1302         instead of TOC_REGISTER in epilogue in
1303         current_function_calls_eh_return functions.
1304
1305 2003-04-14  Mark Mitchell  <mark@codesourcery.com>
1306
1307         * doc/extend.texi (Empty Structures): Correct description of G++'s
1308         handling of these structures.
1309
1310         * c-decl.c (grokdeclarator): Reject extern redeclarations of
1311         static variables.
1312
1313 2003-04-14  Janis Johnson  <janis287@us.ibm.com>
1314
1315         * config/rs6000/rs6000.md (define_constants): Define constants for
1316         all UNSPEC usage, including new values for TLS support.
1317         (aux_truncdfsf2, fctiwz, movsi_got, movsi_got_internal,
1318         load_toc_aix_si, load_toc_aix_di, load_toc_v4_pic_si,
1319         load_toc_v4_PIC_1, load_toc_v4_PIC_1b, load_macho_picbase,
1320         macho_correct_pic, blockage, move_from_CR_ov_bit, movesi_from_cr,
1321         stack_tie, movsi_to_cr_one, movsi_to_cr, mtcrfsi, eh_set_lr_si,
1322         eh_set_lr_di): Use them.
1323         * rs6000.c: (mtcrf_operation, uses_TOC, rs6000_emit_prologue,
1324         rs6000_emit_epilogue) Use them.
1325
1326         * rtl.h (SYMBOL_REF_TLS_MODEL): Fix mask value.
1327
1328 2003-04-14  Neil Booth  <neil@daikokuya.co.uk>
1329
1330         * Makefile.in (c-opts.o): Use custom action.
1331
1332 2003-04-14  Douglas B Rupp  <rupp@gnat.com>
1333
1334         * ifcvt.c (noce_process_if_block): Fail on BLKmode move.
1335
1336 2003-04-14  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1337
1338         * stor-layout.c (layout_type, case ARRAY_TYPE): Add missing code to
1339         handle "superflat arrays" in Ada.
1340
1341         * integrate.c (expand_inline_function): Don't inline if would
1342         lose /u on a BLKmode TARGET.
1343
1344 2003-04-14  Joel Brobecker  <brobecker@gnat.com>
1345
1346         * dbxout.c (print_int_cst_bounds_in_octal_p): New function,
1347         extracted from dbxout_type.
1348         (dbxout_range_type): print large bounds in octal format.
1349         (dbxout_type): Replace extracted code by call to
1350         print_int_cst_bounds_in_octal_p.
1351
1352         * dwarf2out.c (gen_compile_unit_die): Emit DW_LANG_Ada95 instead
1353         of DW_LANG_Ada83 for Ada units.
1354
1355 2003-04-14  Olivier Hainque <hainque@act-europe.fr>
1356
1357         * explow.c (round_push): Use HOST_WIDE_INT instead of int for the
1358         temporary used to round CONST_INT sizes.
1359
1360         * tree.c (int_fits_type_p): Extract generic checks from the case
1361         of constant type bounds. Refine the checks against constant type
1362         bounds to allow for possible decisions against each of these bounds
1363         without requiring both bounds to be constant.
1364         (tree_int_cst_msb): Put back.
1365         * tree.h (tree_int_cst_msb): Likewise.
1366
1367         * global.c (global_conflicts): Prevent allocation of call clobbered
1368         hard regs to pseudos live across abnormal edges, as later passes are
1369         not ready to handle them.
1370
1371         * fold-const.c (fold): Reorder tests for conditional expressions.
1372
1373         * expr.c (highest_pow2_factor): Return unsigned.
1374         * expr.h (offset_address): Likewise.
1375         * emit-rtl.c (offset_address): POW2 argument now unsigned.
1376
1377 2003-04-14  Roger Sayle  <roger@eyesopen.com>
1378
1379         * builtins.c (expand_builtin_strlen):  Evaluate the lengths of
1380         string literals at compile-time.
1381
1382 2003-04-14  Roger Sayle  <roger@eyesopen.com>
1383
1384         * fold-const.c (fold):  Transform (c1 - x) cmp c2, where cmp is a
1385         comparison operation and c1/c2 are floating point constants into
1386         x swap(cmp) (c1 - c2).
1387
1388 2003-04-14  Vladimir Makarov  <vmakarov@redhat.com>
1389
1390         * genautomata.c (output_translate_vect): Fix a typo in loop
1391         condition.
1392
1393 2003-04-14  Hans-Peter Nilsson  <hp@axis.com>
1394
1395         PR target/10377
1396         * config/cris/cris.md ("*mov_sideqi", "*mov_sidehi")
1397         ("*mov_sidesi", "*mov_sideqi_mem", "*mov_sidehi_mem")
1398         ("*mov_sidesi_mem", "*clear_sidesi", "*clear_sidehi")
1399         ("*clear_sideqi", "*ext_sideqihi", "*ext_sideqisi")
1400         ("*ext_sidehisi", "*op_sideqi", "*op_sidehi", "*op_sidesi")
1401         ("*op_swap_sideqi", "*op_swap_sidehi", "*op_swap_sidesi")
1402         ("*extopqihi_side", "*extopqisi_side", "*extophisi_side")
1403         ("*extopqihi_swap_side", "*extopqisi_swap_side")
1404         ("*extophisi_swap_side", 8th, 9th, 10th, 11th, 14th peepholes):
1405         When next to constraint R, replace constraint i with n.
1406
1407 Mon Apr 14 16:18:37 CEST 2003  Jan Hubicka  <jh@suse.cz>
1408
1409         PR opt/10024
1410         * cfgrtl.c (force_nonfallthru_and_redirect): Use unchecked_make_edge.
1411
1412 2003-04-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
1413
1414         * doc/contrib.texi (Contributors): Correct my entry.
1415
1416 2003-04-13  Roger Sayle  <roger@eyesopen.com>
1417
1418         * tree.h (DECL_BUILT_IN_NONANSI): Remove.
1419         * c-common.c (builtin_function_2): Don't set DECL_BUILT_IN_NONANSI.
1420         * c-decl.c (duplicate_decls): Use invariant DECL_BUILT_IN_NONANSI
1421         implies DECL_BUILT_IN to simplify logic.
1422         * print-tree.c (print_node): Don't dump DECL_BUILT_IN_NONANSI.
1423
1424 2003-04-13  Roger Sayle  <roger@eyesopen.com>
1425
1426         * builtin-types.def (BT_FN_STRING_CONST_STRING): New builtin type.
1427         (BT_FN_PTR_SIZE_SIZE): Likewise.
1428         * builtins.def (BUILT_IN_MALLOC, BUILT_IN_CALLOC, BUILT_IN_STRDUP):
1429         New built-in functions for malloc, calloc and strdup respectively.
1430         * calls.c (special_function_p): No need to handle malloc-like
1431         functions any longer.  ECF_MALLOC is set via built-in attributes.
1432
1433         * c-decl.c (duplicate_decls): Preserve pure and malloc attributes.
1434
1435         * doc/extend.texi: Document these new built-in functions.
1436
1437 2003-04-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1438
1439         * builtins.c (expand_builtin_memcpy): Add `endp' argument, use it.
1440         (expand_builtin_stpcpy): New.
1441         (expand_builtin): Add BUILT_IN_MEMPCPY & BUILT_IN_STPCPY.
1442         * builtins.def: Add mempcpy & stpcpy support.
1443         * doc/extend.texi (mempcpy, stpcpy): Document new builtins.
1444
1445 2003-04-13  Nick Clifton  <nickc@redhat.com>
1446
1447         * config/rs6000/rs6000.c: Replace occurrences of "GNU CC" with
1448         "GCC".
1449         * config/rs6000/40x.md, config/rs6000/603.md,
1450         config/rs6000/6xx.md, config/rs6000/7450.md, config/rs6000/7xx.md,
1451         config/rs6000/8540.md, config/rs6000/aix.h, config/rs6000/aix31.h,
1452         config/rs6000/aix3newas.h, config/rs6000/aix41.h,
1453         config/rs6000/aix43.h, config/rs6000/aix51.h,
1454         config/rs6000/aix52.h, config/rs6000/altivec-defs.h,
1455         config/rs6000/altivec.h, config/rs6000/altivec.md,
1456         config/rs6000/beos.h, config/rs6000/darwin.h,
1457         config/rs6000/eabi.h, config/rs6000/eabialtivec.h,
1458         config/rs6000/eabisim.h, config/rs6000/eabispe.h,
1459         config/rs6000/freebsd.h, config/rs6000/gnu.h,
1460         config/rs6000/host-darwin.c, config/rs6000/linux.h,
1461         config/rs6000/linux64.h, config/rs6000/linuxaltivec.h,
1462         config/rs6000/lynx.h, config/rs6000/mach.h, config/rs6000/mpc.md,
1463         config/rs6000/netbsd.h, config/rs6000/power4.md,
1464         config/rs6000/rios1.md, config/rs6000/rios2.md,
1465         config/rs6000/rs6000-c.c, config/rs6000/rs6000-modes.def,
1466         config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c,
1467         config/rs6000/rs6000.h, config/rs6000/rs6000.md,
1468         config/rs6000/rs64.md, config/rs6000/rtems.h, config/rs6000/spe.h,
1469         config/rs6000/spe.md, config/rs6000/sysv4.h,
1470         config/rs6000/sysv4le.h, config/rs6000/vxworks.h,
1471         config/rs6000/windiss.h, config/rs6000/xcoff.h: Likewise.
1472
1473 2003-04-13  Nick Clifton  <nickc@redhat.com>
1474
1475         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Delete
1476         support for -mcall-aix switch.
1477         * config/rs6000/eabiaix.h: Delete.
1478         * config/rs6000/rs6000.h (rs6000_abi): Remove ABI_AIX_NODESC.
1479         (RS6000_REG_SAVE, RS6000_SAVE_AREA, FP_ARGS_MAX_REG,
1480         RETURN_ADDRESS_OFFSET): Remove use of ABI_AIX_NODESC.
1481         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Likewise.
1482         * config/rs6000/rs6000.c (print_operand, rs6000_stack_info,
1483         debug_stack_info, output_function_profiler,
1484         rs6000_trampoline_size, rs6000_initialise_trampoline): Likewise.
1485         * config/rs6000/rs6000.md (call, call_value, call_nonlocal_sysv,
1486         call_indirect_nonlocal_sysv, call_value_indirect_nonlocal_sysv,
1487         call_value_nonlocal_sysv, sibcall_value_nonlocal_sysv,
1488         sibcall_nonlocal_sysv, sibcall_value_local64): Likewise.
1489         * config/rs6000/t-ppcgas (MULTILIB_OPTIONS): Remove mcall-aix
1490         multilibs.
1491         (MULTILIB_DIRNAMES): Remove mcall-aix directories.
1492         (MULTILIB_EXCEPTIONS): Delete.
1493         (MULTILIB_MATCHES): Remove mcall-aix matches.
1494
1495         * doc/fragments.texi: Replace -mcall-aix example with an ARM
1496         one.
1497         * doc/install.texi: Delete powerpc-*-eabiaix target.
1498         * doc/invoke.texi: Remove documentation of mcall-aix switch.
1499         * doc/tm.texi: Remove mcall-aix from example CPP_SPEC.
1500         * config.gcc: Delete powerpc-*-eabiaix target.
1501
1502 2003-04-13  Kazu Hirata  <kazu@cs.umass.edu>
1503
1504         * doc/invoke.texi: Fix typos.
1505         * doc/tm.texi: Likewise.
1506
1507 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
1508
1509         * c-typeck.c (digest_init, push_init_level): Use CONSTRUCTOR_ELTS.
1510
1511 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
1512
1513         * tree.c (build_constructor): New function.
1514         * tree.h: Prototype it.
1515
1516         * c-typeck.c (build_c_cast, pop_init_level)
1517         * profile.c (build_function_info_value, build_gcov_info_value)
1518         (create_profiler):
1519         Use build_constructor.
1520
1521         * builtins.c (expand_builtin_args_info): Remove #if 0 blocks.
1522
1523         * objc/objc-act.c (build_constructor):
1524         Rename objc_build_constructor. Use build_constructor.
1525         (build_objc_string_object, objc_add_static_instance)
1526         (init_def_list, init_objc_symtab, init_module_descriptor)
1527         (generate_static_references, build_selector_translation_table)
1528         (build_descriptor_table_initializer, generate_descriptor_table)
1529         (build_protocol_initializer, build_ivar_list_initializer)
1530         (generate_ivars_list, build_dispatch_table_initializer)
1531         (generate_dispatch_table, generate_protocol_list)
1532         (build_category_initializer, build_shared_structure_initializer):
1533         Update to match.
1534
1535 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
1536
1537         * intl.h: #define gcc_gettext_width to strlen when !ENABLE_NLS.
1538
1539 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
1540
1541         * config/m68hc11/m68hc11-protos.h
1542         (m68hc11_eq_compare_operator): Declare
1543         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register new predicate.
1544         * config/m68hc11/m68hc11.c (m68hc11_eq_compare_operator): New predicate
1545         (d_register_operand): Check the operand mode.
1546         (hard_addr_reg_operand): Likewise.
1547
1548 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
1549
1550         * config/m68hc11/m68hc11.md ("decrement_and_branch_until_zero"): New
1551         pattern for dbcc/ibcc generation for 68HC12.
1552         ("doloop_end"): New pattern.
1553         ("m68hc12_dbcc_dec_hi"): New pattern for dbeq/dbne.
1554         ("m68hc12_dbcc_inc_hi"): New pattern for ibeq/ibne.
1555         ("m68hc12_dbcc_dec_qi"): New pattern.
1556         ("m68hc12_dbcc_inc_qi"): New pattern.
1557         (split): Add split for the above when we can't use dbcc/ibcc due to
1558         reloading.
1559         (peephole2): Add peephole2 to generate the above when possible.
1560
1561 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
1562
1563         * config/m68hc11/m68hc11.md ("bitcmpqi" split): No need to test the
1564         mode of operand 0.
1565         (peephole2 optimize const load): Likewise for operand 2.
1566         ("*rotlhi3_with_carry"): Change pattern to a const 1 rotate which
1567         clobbers CC_REGNUM.
1568         ("*rotrhi3_with_carry"): Likewise.
1569         (ashift:DI 1 split): Update pattern to create the above rotate.
1570         (lshiftrt:DI 1 split): Likewise.
1571
1572 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
1573
1574         * config/m68hc11/m68hc11.md (SOFT_Z_REGNUM): New constant.
1575         ("tstqi_z_used" split): Use it.
1576         ("cmphi_z_used"): Likewise.
1577         ("bitcmpqi_z_used"): Likewise; also use SP_REGNUM constant.
1578         ("cmpqi_z_used"): Likewise.
1579
1580 2003-04-12  Mark Mitchell  <mark@codesourcery.com>
1581
1582         PR c++/7910
1583         * config/i386/winnt.c (i386_pe_mark_dllimport): Fix thinko.
1584
1585 2003-04-12  Zack Weinberg  <zack@codesourcery.com>
1586
1587         * configure.in: Check for wchar.h, mbstowcs, and wcswidth.
1588         * configure, config.in: Regenerate.
1589         * intl.c (gcc_gettext_width): New function.
1590         * intl.h: Prototype it.
1591
1592 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
1593
1594         * config/m68hc11/m68hc11.h (TARGET_SWITCHES): Fix -mnominmax option;
1595         recognize -mnorelax.
1596         (reg_class): Add Z_OR_S_REGS to represent soft registers with Z
1597         (REG_CLASS_NAMES): Add its name.
1598         (REG_CLASS_CONTENTS): Define its content.
1599
1600 2003-04-12  Stephane Carrez  <stcarrez@nerim.fr>
1601
1602         * config/m68hc11/larith.asm (memcpy): Use ARG macro to access stack
1603         parameters so that offsets are valid for far definition.
1604         (__mulsi3): Likewise and use ret to return.
1605         (___adddi3, ___subdi3, ___notdi2, ): Don't use it to save the result.
1606
1607 2003-04-12  David Edelsohn  <edelsohn@gnu.org>
1608
1609         * config/rs6000/rs6000.c (rs6000_hash_constant): Skip '0' fields.
1610
1611 2003-04-12  Alexandre Oliva  <aoliva@redhat.com>
1612
1613         * mklibgcc.in (libgcc-stage-start): For every multilib  directory
1614         containing a libgcc.a, move lib* to the corresponding stage dir.
1615
1616         * Makefile.in (stage1-start, stage2-start, stage3-start,
1617         stage4-start): Move $(SPECS) to specs in stage dir.
1618         (unstage1 unstage2 unstage3 unstage4): Move specs in stage dir
1619         back as $(SPECS).
1620
1621         * mklibgcc.in (libgcc-stage-start): Move into the stage directory
1622         object files from the non-libgcc/ multilib directories as well.
1623
1624 2003-04-11  Geoffrey Keating  <geoffk@apple.com>
1625
1626         * profile.c (read_counts_file): Initialise 'checksum'.
1627
1628         * emit-rtl.c (gen_rtx): Really correct typo.
1629
1630         PR c++/9393
1631         * doc/invoke.texi (Debugging Options): Document -frandom-seed.
1632         * configure.in: Check for gettimeofday.
1633         * tree.c (flag_random_seed): Define.
1634         (default_flag_random_seed): New.
1635         (append_random_chars): Use flag_random_seed rather than trying
1636         to acquire randomness here.
1637         * tree.h (default_flag_random_seed): Declare.
1638         * toplev.c (display_help): Add -frandom-seed and -fstack-limit-*
1639         descriptions.
1640         (decode_f_option): Handle -frandom-seed.
1641         (print_switch_values): Call default_flag_random_seed.
1642         * flags.h (flag_random_seed): Declare.
1643         * configure: Regenerate.
1644         * config.in: Regenerate.
1645         * config/alpha/t-crtfm: Use -frandom-seed.
1646
1647         * doc/extend.texi (Empty Structures): New.
1648
1649         * c-pch.c: Include flags.h.  Add comments to routines.
1650         (struct c_pch_validity): New.
1651         (get_ident): Update PCH file version number.
1652         (pch_init): Output current debugging type.
1653         (c_common_valid_pch): Check debugging type.
1654         * Makefile.in (c-pch.o): Update dependencies.
1655         * flags.h (debug_type_names): Declare.
1656         * toplev.c (debug_type_names): Move out of decode_g_option.
1657
1658 2003-04-11  Eric Christopher  <echristo@redhat.com>
1659
1660         * emit-rtl.c (gen_rtx): Fix typos.
1661
1662 2003-04-11  Richard Henderson  <rth@redhat.com>
1663
1664         * emit-rtl.c (gen_rtx): Zero '0' fields.
1665
1666 2003-04-11  Richard Henderson  <rth@redhat.com>
1667
1668         PR c++/10202
1669         * expr.c (expand_expr): Use COMPLETE_OR_UNBOUND_ARRAY_TYPE_P
1670         not COMPLETE_TYPE_P for re-invoking layout_decl.
1671
1672 2003-04-11  Simon Law  <sfllaw@engmail.uwaterloo.ca>
1673
1674         * doc/bugreport.texi: Fix paragraph breaking between sections
1675         in preparation for TeXinfo's paragraph indentation fixes.
1676         * doc/extend.texi: Ditto.
1677         * doc/invoke.texi: Ditto.
1678         * doc/objc.texi: Ditto.
1679         * doc/gcov.texi: Wrap 'gcov' in @command{}.
1680         * doc/invoke.texi (Darwin Options): Add a preamble.
1681
1682 2003-04-11  Richard Henderson  <rth@redhat.com>
1683
1684         * config/i386/i386.c (tls_model_chars): Remove.
1685         (ix86_encode_section_info, ix86_strip_name_encoding): Remove.
1686         (local_symbolic_operand): Use SYMBOL_REF_LOCAL_P.
1687         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
1688         (tls_symbolic_operand_1): Likewise.
1689         (legitimate_pic_address_disp_p): Use SYMBOL_REF_LOCAL_P.
1690         * config/i386/i386.h (TARGET_ENCODE_SECTION_INFO): Remove.
1691         (TARGET_STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Remove.
1692         * config/i386/winnt.c (i386_pe_encode_section_info): Replace
1693         bits "copied from i386.h" with default_encode_section_info.
1694
1695 2003-04-11  Richard Henderson  <rth@redhat.com>
1696
1697         * rtl.def (SYMBOL_REF): Add two 0 fields.
1698         * gengtype.c (adjust_field_rtx_def): Handle them.
1699         * print-rtl.c (print_rtx): Print them.
1700         * rtl.h (SYMBOL_REF_DECL, SYMBOL_REF_FLAGS): New.
1701         (SYMBOL_FLAG_FUNCTION, SYMBOL_REF_FUNCTION_P): New.
1702         (SYMBOL_FLAG_LOCAL, SYMBOL_REF_LOCAL_P): New.
1703         (SYMBOL_FLAG_SMALL, SYMBOL_REF_SMALL_P): New.
1704         (SYMBOL_FLAG_TLS_SHIFT, SYMBOL_REF_TLS_MODEL): New.
1705         (SYMBOL_FLAG_EXTERNAL, SYMBOL_REF_EXTERNAL_P): New.
1706         (SYMBOL_FLAG_MACH_DEP): New.
1707         * optabs.c (init_one_libfunc): Zap fake SYMBOL_REF_DECL.
1708         * varasm.c (make_decl_rtl): Set SYMBOL_REF_DECL.
1709         (assemble_static_space): Set SYMBOL_REF_FLAGS.
1710         (assemble_trampoline_template): Likewise.
1711         (output_constant_def, force_const_mem): Likewise.
1712         (default_encode_section_info): New.
1713         * output.h: Declare it.
1714         * target-def.h (TARGET_ENCODE_SECTION_INFO): Use it.
1715
1716 2003-04-11  Richard Henderson  <rth@redhat.com>
1717
1718         * libfuncs.h (LTI_setbits, LTI_gcov_flush, LTI_gcov_init): New.
1719         (setbits_libfunc, gcov_flush_libfunc, gcov_init_libfunc): New.
1720         * optabs.c (init_optabs): Initialize them.
1721         (init_libfuncs): Use init_one_libfunc.
1722         * calls.c (expand_call): Use gcov_flush_libfunc.
1723         * expr.c (store_constructor): Use setbits_libfunc.
1724         * function.c (expand_main_function): Use init_one_libfunc.
1725         * profile.c (create_profiler): Use gcov_init_libfunc and DECL_RTL.
1726
1727 2003-04-11  Mark Mitchell  <mark@codesourcery.com>
1728
1729         * doc/c-tree.texi (Functions): Remove DECL_REAL_CONTEXT
1730         documentation; add DECL_FRIEND_CONTEXT.
1731
1732 2003-04-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1733
1734         * doc/install.texi (hppa): Update links for HP-UX patches.  Revise
1735         notes on linker selection and configuration for 64-bit HP-UX port.
1736         * doc/invoke.texi (hppa): Remove hppa text from description for
1737         -ffunction-sections and -fdata-sections.  Document -static, -nolibdld
1738         and -threads options.
1739
1740         * pa-hpux10.h (LIB_SPEC): Add link options to resolve dependency of
1741         libc.a on libdld.sl when -static is specified and -nolibdld is not
1742         specified.
1743         * pa64-hpux.h (LIB_SPEC): Likewise.
1744         * pa-hpux11.h (LIB_SPEC): Likewise.
1745         (LINK_SPEC): Add __gcc_plt_call as an undefined symbol when -shared
1746         is not specified.
1747
1748 2003-04-11  Zack Weinberg  <zack@codesourcery.com>
1749
1750         * config/darwin-c.c (darwin_pragma_unused): Use lookup_name,
1751         not IDENTIFIER_LOCAL_VALUE.
1752
1753 2003-04-11  Richard Henderson  <rth@redhat.com>
1754
1755         PR c/10201
1756         * expr.c (expand_expr): Move DECL_RTL frobbing ...
1757         * stor-layout.c (layout_decl): ... here.
1758
1759 2003-04-11  James A. Morrison <ja2morri@uwaterloo.ca>
1760
1761         * doc/invoke.texi: Eliminate extra white-space caused by
1762         @gccoptlist{ on its own line.
1763         * doc/invoke.texi: Ensured there are two spaces between each option.
1764         * doc/invoke.texi: Re-wrapped option lines that were too wide.
1765         Added @gol to options that didn't have them.
1766
1767 2003-04-11  Nathan Sidwell  <nathan@codesourcery.com>
1768
1769         * Makefile.in (loop-init.o): Do not depend on gcov-io.h,
1770         gcov-iov.h.
1771
1772         Simplify interface to gcov reading and writing.
1773         * gcov-io.h (gcov_file, gcov_position, gcov_length, gcov_buffer,
1774         gcov_alloc, gcov_modified, gcov_errored): Move into ...
1775         (struct gcov_var gcov_var): ... this static structure.
1776         (gcov_write_unsigned, gcov_write_counter, gcov_write_string):
1777         Return void.
1778         (gcov_read_unsigned, gcov_read_couter, gcov_read_string): Return
1779         read object.
1780         (gcov_read_bytes, gcov_write_bytes): Set error flag on error.
1781         (gcov_reserve_length): Remove.
1782         (gcov_write_tag): New.
1783         (gcov_write_length): Adjust.
1784         (gcov_read_summary, gcov_write_summary): Adjust.
1785         (gcov_eof, gcov_ok): Rename to ...
1786         (gcov_is_eof, gcov_is_error): ... here. Return error code.
1787         (gcov_save_position, gcov_resync): Rename to ...
1788         (gcov_position, gcov_seek): ... here.
1789         (gcov_skip, gcov_skip_string): Remove.
1790         (gcov_error): Remove.
1791         (gcov_open, gcov_close): Adjust.
1792         * gcov.c (find_source): Take const char *, copy it on allocation.
1793         (read_graph_file): Adjust.
1794         (read_count_file): Adjust.
1795         * libgcov.c (gcov_exit): Adjust.
1796         * gcov-dump.c (tag_function, tag_blocks, tag_arcs, tag_lines,
1797         tag_arc_counts, tag_summary): Return void. Adjust.
1798         (struct tag_format): Adjust proc member.
1799         (dump_file): Adjust gcov calls.
1800
1801 2003-04-11  Alexandre Oliva  <aoliva@redhat.com>
1802
1803         * Makefile.in (fixinc.sh): Pass BUILD_LIBERTY as LIBERTY to
1804         mkfixinc.sh.
1805         * fixinc/mkfixinc.sh (defs): Add LIBERTY.
1806         * configure.in (STMP_FIXINC, STMP_FIXPROTO): Don't disable on
1807         build != host sysrooted builds.
1808         * configure.in (SYSTEM_HEADER_DIR): Make sure it contains
1809         TARGET_SYSTEM_ROOT even on sysrooted natives.
1810         * configure: Rebuilt.
1811
1812 2003-04-10  Zack Weinberg  <zack@codesourcery.com>
1813
1814         * c-decl.c (struct binding_level): Add shadowed_tags and
1815         function_body; remove this_block, tag_transparent, and
1816         subblocks_tag_transparent; update comments.
1817         (clear_binding_level, lookup_tag_reverse): Kill.
1818         (make_binding_level): Use ggc_alloc_cleared or memset.
1819         (lookup_tag): Remove struct binding_level* parameter.  All
1820         callers changed. Just look at IDENTIFIER_TAG_VALUE, and
1821         current_binding_level->tags if asked for thislevel_only or if
1822         we might have to diagnose "struct foo; union foo;"
1823         (pushlevel): Ignore argument.  Do not push another binding
1824         level on the transition from the parameters to the top level
1825         of the function body; just tweak the flags and proceed.
1826         (poplevel): Overhaul.  Clear IDENTIFIER_TAG_VALUEs; on exiting
1827         a function body, separate the parameter list from the
1828         top-level local variables.
1829         (set_block): Do nothing.
1830         (pushtag): Set IDENTIFIER_TAG_VALUE and add an entry to
1831         shadowed_tags if necessary.
1832         (warn_if_shadowing): Nuke the special case for local shadowing
1833         parameter.
1834         (pushdecl): Do not create a shadow entry if we are replacing
1835         an older decl in the same binding level.
1836         (pushdecl_function_level): Tweak for new way of indicating
1837         function scope.
1838         (shadow_tag_warned): Use TYPE_NAME, not lookup_tag_reverse.
1839         (start_function): Don't set subblocks_tag_transparent.
1840         (finish_function): Fix up the binding_level stack for totally
1841         empty functions.  Otherwise, don't call poplevel.
1842
1843         * c-common.c (shadow_warning): MANDATORY argument is no longer
1844         necessary.  Always use plain warning.
1845         * c-common.h: Update to match.
1846
1847         * cfglayout.c (scope_to_insns_initialize): Clear block when we
1848         hit the FUNCTION_DECL.
1849         * function.c: Do not create cyclic tree structure.
1850
1851 2003-04-10  Zack Weinberg  <zack@codesourcery.com>
1852
1853         * c-tree.h (struct lang_identifier): Replace global_value,
1854         local_value members with symbol_value, tag_value.  Kill
1855         implicit_decl and limbo_value.
1856         (IDENTIFIER_GLOBAL_VALUE, IDENTIFIER_LOCAL_VALUE,
1857         IDENTIFIER_LIMBO_VALUE, IDENTIFIER_IMPLICIT_DECL,
1858         C_MISSING_PROTOTYPE_WARNED): Kill.
1859         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE,
1860         C_DECL_IMPLICIT, C_DECL_ISNT_PROTOTYPE): New.
1861         (C_DECL_ANTICIPATED): Rename to C_DECL_INVISIBLE.
1862         (implicit_decl_warning, lookup_name_current_level,
1863         record_function_scope_shadow): Don't prototype.
1864         (pushdecl_function_level): Prototype.
1865
1866         * c-decl.c (truly_local_externals): New variable.
1867         (struct binding_level): Adjust commentary.
1868         (get_function_binding_level, clear_limbo_values,
1869         record_function_scope_shadow): Kill.
1870         (lookup_name_current_level, implicit_decl_warning): Are now static.
1871         (any_external_decl, record_external_decl): New static functions.
1872         (clone_underlying type): Split out of pushdecl.
1873         (c_print_identifier): Update to match changes to struct
1874         lang_identifier.
1875         (poplevel): Delete #if 0 block.  Make externals invisible
1876         instead of clearing their IDENTIFIER_SYMBOL_VALUEs.  Don't
1877         call clear_limbo_values.  Refer to IDENTIFIER_SYMBOL_VALUE not
1878         IDENTIFIER_GLOBAL_VALUE or IDENTIFIER_LOCAL_VALUE.
1879         (duplicate-decls): For real parm decl after a forward decl,
1880         set TREE_ASM_WRITTEN here.  Allow void foo(...) followed by
1881         foo(...) { } with only a warning.  Say whether a previous
1882         declaration was implicit.
1883         (warn_if_shadowing): Now handles all shadowing, not just
1884         local-over-local.  Clarify comments.
1885         (pushdecl): Rewritten.  There is no longer a distinction
1886         between global and local symbol values; they're all
1887         IDENTIFIER_SYMBOL_VALUE.  Call record_external_decl on all
1888         DECL_EXTERNAL decls, and use any_external_decl to check
1889         against previous externals.  Kill #if 0 blocks.  Don't
1890         tolerate error_mark_node being NULL.
1891         (pushdecl_top_level): Handle only those cases which
1892         Objective C (the only user) needs.
1893         (pushdecl_function_level): New function.
1894         (implicitly_declare): Create ordinary decls with
1895         C_DECL_IMPLICIT set.  Recycle old decls, however they got
1896         created.
1897         (lookup_name): It's always IDENTIFIER_SYMBOL_VALUE. Return 0
1898         for C_DECL_INVISIBLE symbols.
1899         (lookup_name_current_level): Likewise.  Use chain_member.
1900         (c_make_fname_decl): Don't muck with DECL_CONTEXT.
1901         Use pushdecl_function_level.
1902         (builtin_function): Use C_DECL_INVISIBLE.
1903         (start_function): Don't muck with IDENTIFIER_IMPLICIT_DECL.
1904         Use C_DECL_ISNT_PROTOTYPE and C_DECL_IMPLICIT.
1905         (store_parm_decls): It's IDENTIFIER_SYMBOL_VALUE now.
1906         (identifier_global_value): Same.  Must scan
1907         global_binding_level in extremis.
1908
1909         * c-typeck.c (undeclared_variable): New static function, split
1910         from build_external_ref.
1911         (build_external_ref): Use DECL_CONTEXT, not
1912         IDENTIFIER_LOCAL_VALUE, to decide whether a local hides
1913         an instance variable.  Restructure for clarity.
1914         * objc/objc-act.c: Use identifier_global_value, not
1915         IDENTIFIER_GLOBAL_VALUE.
1916
1917 2003-04-08  Jonathan Wakely  <redi@gcc.gnu.org>
1918
1919         * doc/extend.texi (Template Instantiation): Refer to ISO standard,
1920         not Working Paper.
1921         * doc/invoke.texi (C++ Dialect Options): Same.
1922
1923 2003-04-10  Zack Weinberg  <zack@codesourcery.com>
1924
1925         * tree.c (tree_operand_check_failed): New function.
1926         * tree.h (TREE_OPERAND_CHECK, TREE_OPERAND_CHECK_CODE,
1927         TREE_RTL_OPERAND_CHECK): New checking macros.
1928         (TREE_OPERAND, SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL,
1929         RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, WITH_CLEANUP_EXPR_RTL,
1930         CONSTRUCTOR_ELTS, LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
1931         EXIT_BLOCK_RETURN, LOOP_EXPR_BODY, EXPR_WFL_NODE,
1932         EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME, TARGET_EXPR_SLOT,
1933         TARGET_EXPR_INITIAL, TARGET_EXPR_CLEANUP): Use the new
1934         checking macros.
1935
1936 Thu Apr 10 23:52:30 CEST 2003  Jan Hubicka  <jh@suse.cz>
1937
1938         PR inline-asm/8803
1939         * function.c (instantate_virtual_regs):  Verify that all ASM statements
1940         match after the virutal regs instantiation.
1941
1942 2003-04-10  Steve Ellcey  <sje@cup.hp.com>
1943
1944         * ia64-protos.h (addp4_optimize_ok): New.
1945         * ia64.c (addp4_optimize_ok): New.
1946         * ia64.md (*ptr_extend_plus_1): Use addp4_optimize_ok.
1947         (*ptr_extend_plus_2): Ditto.
1948
1949 2003-04-10  Steve Ellcey  <sje@cup.hp.com>
1950
1951         * expr.c (expand_assignment): Extend offset_rtx with convert_to_mode
1952         not with convert_memory_address.
1953         (store_constructor): Ditto, and same for copy_size_rtx.
1954         (expand_expr): Ditto.
1955
1956 2003-04-10  Douglas B Rupp  <rupp@gnat.com>
1957
1958         * config/i386/i386.c (ix86_ms_bitfield_layout_p): Fix formatting.
1959
1960 2003-04-10  Bob Wilson  <bob.wilson@acm.org>
1961
1962         * config/xtensa/lib2funcs.S (__xtensa_sync_caches): Flush data cache
1963         even if it is configured to be write-through.
1964
1965 2003-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
1966
1967         * config/s390/s390.c (larl_operand): Do not allow symbols
1968         marked with '@'.
1969         (s390_encode_section_info): Mark symbols with forced 1-byte
1970         alignment with '@'.
1971         (s390_strip_name_encoding): Strip '@'.
1972         (legitimize_pic_address): Handle symbols that are not valid
1973         LARL operands in 64-bit mode.
1974
1975 2003-04-10  Andrew Haley  <aph@redhat.com>
1976
1977         * tree-inline.c (inlinable_function_p): Disable inlining for
1978         synchronized methods.
1979
1980 2003-04-09  Steven Bosscher  <steven@gcc.gnu.org>
1981
1982         * c-common.h (lang_statement_code_p): Remove declaration.
1983         (statement_code_p): Ditto.
1984         (c_common_stmt_codes): Define; list of c-common statement codes.
1985         (statement_code_p): New extern declaration.
1986         (STATEMENT_CODE_P): Define.
1987         (INIT_STATEMENT_CODES): Define.
1988         * c-common.c (statement_code_p): Kill the function, declare
1989         as an array of bools instead.
1990         (lang_statement_code_p): Remove.
1991         (walk_stmt_tree): Use STATEMENT_CODE_P not statement_code_p.
1992         (c_safe_from_p): Ditto.
1993         * c-objc-common.c (c_objc_common_init): Use INIT_STATEMENT_CODES
1994         to initialize the statement_code_p array.
1995         * tree-inline.c (walk_tree): Use STATEMENT_CODE_P instead of
1996         statement_code_p.
1997         (copy_tree_r): Ditto.
1998         * cp/cp-tree.h (cp_stmt_codes): Define; list of C++ specific
1999         statement tree codes.
2000         * cp/lex.c (cxx_init): Add missing print line break.  Use
2001         INIT_STATEMENT_CODES to initialize the statement_code_p array.
2002         * cp/parser.c (cp_parser_statement): Use STATEMENT_CODE_P
2003         instead of statement_code_p.
2004         * cp/pt.c (tsubst_expr): Ditto.
2005         * cp/tree.c (verify_stmt_tree_r): Ditto.
2006         (cp_statement_code_p): Remove.
2007         (init_tree): Don't set lang_statement_code_p, it's gone.
2008
2009 2003-04-09  Dan Nicolaescu  <dann@ics.uci.edu>
2010             Zack Weinberg  <zack@codesourcery.com>
2011
2012         * regrename.c (struct du_chain): Use a bitfield for reg_class.
2013         * cse.c (struct qty_table_elem, struct table_elt, struct set):
2014         Use bitfields for fields holding enum rtx_code or
2015         enum machine_mode values.  Add comments explaining size choices.
2016
2017 2003-04-09  Alexandre Oliva  <aoliva@redhat.com>
2018
2019         * config/fp-bit.c (unpack_d): Handle pair of doubles with
2020         different signs correctly.
2021
2022 2003-04-09  Vladimir Makarov  <vmakarov@redhat.com>
2023
2024         * sched-deps.c (reg_pending_barrier_mode): New enumeration.
2025         (reg_pending_barrier): Make it of the enumeration type.
2026         (sched_analyze_2): Define the barrier as MOVE_BARRIER or
2027         TRUE_BARRIER.
2028         (sched_analyze): Ditto.
2029         (sched_analyze_insn): Ditto.  Use anti-dependencies for
2030         MOVE_BARRIER and true-dependencies as TRUE_BARRIER.
2031         (init_deps_global): Initialize the barrier as NO_BARRIER.
2032
2033 2003-04-09  Vladimir Makarov  <vmakarov@redhat.com>
2034
2035         * config/ia64/ia64.c (issue_nops_and_insn): Add new parameter.
2036         Check that asm insn starts on a new cycle.  Add nops after asm
2037         insn to end bundle.
2038         (bundling): Move insn type evaluation from the loop.  Call
2039         issue_nops_and_insn with the new parameter.  Ignore changing
2040         position for nops after asm insn.
2041
2042 2003-04-09  Alexandre Oliva  <aoliva@redhat.com>
2043
2044         * optabs.c: Comment that gen_add2_insn and others may actually
2045         return emitted insns, if the gen functions turn out to return
2046         emitted insns.
2047         * reload1.c (reload_cse_move2add): Cope with emitted insns from
2048         gen_add2_insn.
2049
2050 2003-04-09  Richard Henderson  <rth@redhat.com>
2051
2052         * config/ia64/ia64.c (move_operand): Allow symbolic_operand,
2053         but not tls_symbolic_operand.
2054         (ia64_expand_load_address): Remove scratch operand.
2055         (ia64_expand_tls_address): Split out from ia64_expand_move.
2056         (ia64_expand_move): Split symbolics only after reload.
2057         (ia64_emit_cond_move): New.
2058         * config/ia64/ia64-protos.h: Update.
2059         * config/ia64/ia64.md (movsi_symbolic, movdi_symbolic): Remove.
2060         (symbolic splitter): Accept SImode operands too.
2061         (cmove splitter): Use ia64_emit_cond_move.
2062
2063 2003-04-09  Nick Clifton  <nickc@redhat.com>
2064
2065         * doc/install.texi: Note that ARM toolchains need binutils 2.13 or
2066         newer.
2067         * config/arm/elf.h (SUBTARGET_ASM_FLOAT_SPEC): Pass -mfpu=softfpa
2068         instead of -mno-fpu.
2069         * config/arm/semi.h (ASM_SPEC): Likewise.
2070         * config/arm/xscale-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise,
2071         but only if -msoft-float is specified pass.  Otherwise pass
2072         -mfpu=softvfp.
2073
2074 2003-04-09  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2075
2076         * function.c (purge_addressof): Use free_INSN_LIST_node instead of
2077         free_EXPR_LIST_node.
2078
2079 2003-04-08  Roger Sayle  <roger@eyesopen.com>
2080
2081         * fold-const.c (fold):  Use "fold" following build in more places.
2082         Optimize sqrt(x)*sqrt(x) as x, pow(x,y)*pow(z,y) as pow(x*z,y),
2083         pow(x,y)*pow(x,z) as pow(x,y+z) and x/pow(y,z) as x*pow(y,-z).
2084
2085 2003-04-08  Roger Sayle  <roger@eyesopen.com>
2086
2087         * builtins.c (fold_builtin):  Constant fold expressions as x*0.5
2088         instead of x/2.0.  Optimize sqrt(pow(x,y)) as pow(x,y*0.5),
2089         log(pow(x,y)) as y*log(x), pow(exp(x),y) as exp(x*y),
2090         pow(sqrt(x),y) as pow(x,y*0.5) and pow(pow(x,y),z) as pow(x,y*z).
2091         Delete function scope "fcode" variable to avoid shadowing.
2092
2093 2003-04-08  Kevin Buettner  <kevinb@redhat.com>
2094
2095         * dwarf2out.c (DWARF_ARANGES_HEADER_SIZE, DWARF_ARANGES_PAD_SIZE):
2096         Take into account DWARF_INITIAL_LENGTH_SIZE.
2097
2098 2003-04-08  Hans-Peter Nilsson  <hp@axis.com>
2099
2100         * reorg.c (fill_slots_from_thread): When considering changing the
2101         insn following a reg-to-reg copy insn to use the source reg of the
2102         copy, bail out if there's overlap between the registers.
2103
2104 2003-04-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2105
2106         * function.c (postponed_insns): New.
2107         (purge_addressof_1): Postpone processing of insns if addressofs
2108         are not put into stack.
2109         (purge_addressof): Process postponed insns.
2110
2111 2003-04-08  J"orn Rennecke <joern.rennecke@superh.com>
2112
2113         * sh.h (NORMAL_MODE): If interrupt handler and TARGET_FMOVD,
2114         this is FP_MODE_DOUBLE .
2115         * sh.c (ra.h): #include.
2116         (push_regs): Add second parameter.  Changed all callers.
2117         If necessary, set fpscr before saving floating point registers.
2118         (calc_live_regs): If interrupt handler and TARGET_FMOVD, always
2119         do saves / restores with SZ == 1.
2120         (sh_expand_prologue): If interrupt handler, don't use gen_toggle_sz.
2121         (sh_expand_epilogue): Likewise.  For TARGET_FMOVD, if floating point
2122         registers are being restored, restore FPSCR only after restoring them.
2123
2124 2003-04-08  Aldy Hernandez  <aldyh@redhat.com>
2125
2126         * config/rs6000/rs6000.c (rs6000_init_builtins): Set opaque types
2127         regardless of architecture.
2128         (spe_init_builtins): Change V2SI and V2SF types to opaque types.
2129
2130 2003-04-08  J"orn Rennecke <joern.rennecke@superh.com>
2131
2132         * sh.c (push_regs, calc_live_regs): Return int.  Take single
2133         HARD_REG_SET * parameter.  Changed all callers.
2134
2135 Tue Apr  8 11:12:07 CEST 2003  Jan Hubicka  <jh@suse.cz>
2136
2137         * i386.c (legitimate_pic_address_disp_p): Do not accept PLUS in the
2138         GOTOFF operand.
2139         (legitimize_pic_address): Move plus outside the unspec.
2140         * i386.c (legitimate_constant_p):  Check (CONST (PLUS (UNSPEC ...
2141         for validity.
2142
2143 2003-04-08  Nathan Sidwell  <nathan@codesourcery.com>
2144
2145         * gcov-io.h (gcov_save_position): Remove __inline__ from
2146         declaration.
2147
2148 2003-04-07  Matt Kraai  <kraai@alumni.cmu.edu>
2149
2150         * doc/install.texi: Use @command and @samp for single- and
2151         multi-word commands respectively.
2152         * doc/makefile.texi: Likewise.
2153         * doc/sourcebuild.texi: Likewise.
2154
2155 2003-04-07  Christian Ehrhardt  <ehrhardt@mathematik.uni-ulm.de>
2156             Richard Henderson  <rth@redhat.com>
2157
2158         PR c/9516
2159         * expr.c (safe_from_p): Rearrange to avoid deep recursion in
2160         favour of looping and tail recursion for TREE_LIST and binops.
2161
2162 2003-04-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2163
2164         * loop.h (REGNO_FIRST_LUID, REGNO_LAST_LUID): Provide defaults
2165         for insns without luid.
2166
2167 2003-04-07  Glen Nakamura  <glen@imodulo.com>
2168
2169         PR opt/8634
2170         * explow.c (maybe_set_unchanging): Don't flag non-static const
2171         aggregate type initializers with RTX_UNCHANGING_P.
2172
2173 2003-04-07  Richard Henderson  <rth@redhat.com>
2174
2175         PR opt/8634
2176         * function.c (purge_addressof_1): Don't try arithmetics for
2177         unchanging memories.
2178
2179 2003-04-07  Janis Johnson  <janis187@us.ibm.com>
2180
2181         * doc/sourcebuild.texi (Test Suites): Document testing support for
2182         gcov and profile-directed optimizations; describe gcc.misc-tests.
2183
2184 Mon Apr  7 22:19:59 CEST 2003  Jan Hubicka  <jh@suse.cz>
2185
2186         PR target/10077
2187         * i386.md (movsi_1, movsi_nointerunit_1):  Fix SSEMOV alternative.
2188
2189 2003-04-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2190
2191         * doc/rtl.texi (Comparison operations): Update to
2192         record the allowed comparison modes.
2193
2194 2003-04-07  Aldy Hernandez  <aldyh@redhat.com>
2195
2196         * config/rs6000/rs6000.c (rs6000_common_init_builtins): Rename all
2197         V2SI_type_node to opaque_V2SI_type_node.  Rename all
2198         V2SF_type_node to opaque_V2SF_type_node.
2199         (rs6000_init_builtins): Define opaque_V2SI_type_node and
2200         opaque_V2SF_type_node.
2201         (is_ev64_opaque_type): The types opaque_V2SI_type_node and
2202         opaque_V2SF_type_node are opaque types.
2203
2204 2003-04-07  J"orn Rennecke <joern.rennecke@superh.com>
2205
2206         * gcse.c (replace_store_insn): Use single_set.
2207
2208 2003-04-07  Nathan Sidwell  <nathan@codesourcery.com>
2209
2210         Change gcov file interface to single file at a time.
2211         * gcov-io.h: Replace IN_LIBGCC1 with IN_LIBGCOV. Use IN_GCOV.
2212         Convert to C89 prototypes.
2213         (gcov_file, gcov_length, gcov_position, gcov_buffer, gcov_alloc,
2214         gcov_error, gcov_modified): New static variables.
2215         (gcov_open, gcov_close, gcov_read_bytes, gcov_write_bytes): New
2216         functions.
2217         (gcov_write_unsigned, gcov_write_counter, gcov_write_string,
2218         gcov_read_unsigned, gcov_read_counter, gcov_read_string): Adjust.
2219         (gcov_read_summary, gcov_write_summary): Adjust.
2220         (gcov_save_position, gcov_reserve_length, gcov_write_length):
2221         Adjust.
2222         (gcov_resync, gcov_skip, gcov_skip_string): Adjust.
2223         (da_file_open, da_file_close, da_file_eof, da_file_error): Remove.
2224         (da_file_position, da_file_seek, da_file_write, da_file_read):
2225         Remove.
2226         (gcov_error, gcov_eof, gcov_ok, gcov_time): New functions.
2227         * gcov.c (gcov_type): Don't typedef here.
2228         (IN_GCOV): #define
2229         (read_graph_file, read_count_file): Adjust.
2230         * gcov-dump.c (gcov_type): Don't typedef here.
2231         (IN_GCOV): #define.
2232         (tag_function, tag_blocks, tag_arcs, tag_lines, tag_arc_counts):
2233         Remove FILE parameter, adjust.
2234         (struct tag_format): Adjust proc member.
2235         (dump_file): Adjust.
2236         * libgcov.c (IN_LIBGCOV): #define.
2237         (gcov_exit): Adjust.
2238         * loop-init.c: Don't #include gcov-io.h
2239         * profile.c (struct counts_entry): New structure to hold counter
2240         values.
2241         (struct section_reference, struct da_index_entry): Remove.
2242         (bbg_file, da_file): Remove.
2243         (htab_counts_index_hash, htab_counts_index_eq,
2244         htab_counts_index_del): Replace with ...
2245         (htab_counts_entry_hash, htab_counts_entry_eq,
2246         htab_counts_entry_del): ... these.
2247         (cleanup_counts_index, index_counts_file): Remove.
2248         (read_counts_file): New function.
2249         (get_exec_counts): Adjust.
2250         (compute_branch_probabilities): Don't free the exec counts here.
2251         (branch_prob): Adjust.
2252         (init_branch_prob): Adjust.
2253         (end_branch_prob): Adjust.
2254
2255 2003-04-07  Aldy Hernandez  <aldyh@redhat.com>
2256
2257         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
2258         -mfloat-gprs.
2259
2260         * config/rs6000/rs6000.c: Delete rs6000_fprs.
2261         Declare rs6000_float_gprs.
2262         Declare rs6000_float_gprs_string.
2263         (rs6000_parse_float_gprs_option): New.
2264         (rs6000_override_options): Genericize rs6000_parse_* calls to use
2265         rs6000_parse_yes_no_option.
2266         Change check for cpu=8540, to use TARGET_E500.
2267         (rs6000_parse_isel_option): Delete.
2268         (rs6000_parse_spe_option): Delete.
2269         (rs6000_parse_vrsave_option): Delete.
2270
2271         * config/rs6000/rs6000.h: Rename rs6000_fprs to rs6000_float_gprs.
2272         Define rs6000_float_gprs_string.
2273         (TARGET_OPTIONS): Add rs6000_float_gprs option.
2274
2275         * config/rs6000/eabi.h (TARGET_FPRS): Change to use rs6000_float_gprs.
2276
2277         * config/rs6000/eabispe.h: Set rs6000_float_gprs.
2278
2279 Mon Apr  7 14:36:24 CEST 2003  Jan Hubicka  <jh@suse.cz>
2280
2281         PR opt/10024
2282         * cfglayout.c (cfg_layout_redirect_edge):
2283         Redirect any branch edges unified with the fallthru one.
2284         * cfgrtl.c (force_nonfallthru_and_redirect):  Do not special
2285         case fallthru edges when called via cfglayout.c
2286
2287 2003-04-07  J"orn Rennecke <joern.rennecke@superh.com>
2288
2289         * c-typeck.c (output_init_element): Check for type == error_mark_node.
2290
2291 2003-04-07  Kazu Hirata  <kazu@cs.umass.edu>
2292
2293         * config/h8300/h8300.md (*zero_extendqisi2_h8300hs): Always
2294         split.
2295         (a splitter): Do zero-extension via HImode.
2296
2297 2003-04-07  James A. Morrison <ja2morri@uwaterloo.ca>
2298
2299         * doc/invoke.texi: Eliminate extra white-space caused by
2300         @gccoptlist{ on its own line.
2301         * doc/invoke.texi: Ensured there are two spaces between each option.
2302         * doc/invoke.texi: Re-wrapped option lines that were too wide.
2303         Added @gol to options that didn't have them.
2304
2305 2003-04-07  James A Morrison <ja2morri@student.math.uwaterloo.ca>
2306
2307         * doc/extend.texi (Darwin Pragmas): Fix spelling of Mac OS.
2308
2309 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
2310
2311         * tree.c (tree_size): For all 'c' and 'x' nodes, look directly
2312         at the sizes of the relevant structures, rather than relying
2313         on TREE_CODE_LENGTH.  Call lang_hooks.tree_size to get the
2314         sizes of any such we don't know about.  Use
2315         lang_hooks.identifier_size for IDENTIFIER_NODE.
2316
2317         (initializer_zerop): Use CONSTRUCTOR_ELTS.
2318         * tree.def: Update commentary.  Make fourth element of
2319         the definition for all 'c' and 'x' nodes zero.
2320
2321         * langhooks.h: New hook, tree_size / LANG_HOOKS_TREE_SIZE.
2322         * langhooks-def.h: Update to match.
2323         * langhooks.c: New default, lhd_tree_size.
2324
2325         * c-common.def (SRCLOC): Kill.
2326         * c-pretty-print.c (pp_c_postfix_expression [case SRCLOC]):
2327         Remove entirely - was already #if-ed out.
2328
2329
2330 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
2331
2332         * mklibgcc.in: Use a here document to avoid running afoul of
2333         shells that generate control-A from "echo \1".
2334
2335 2003-04-06  Aldy Hernandez  <aldyh@redhat.com>
2336
2337         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mspe
2338         option.
2339
2340         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
2341         rs6000_spe.
2342
2343         * config/rs6000/eabi.h (TARGET_E500): Define.
2344
2345         * config/rs6000/rs6000.h (TARGET_E500): Define.
2346         (TARGET_OPTIONS): Add spe= option.
2347         Declare rs6000_spe and rs6000_spe_string extern.
2348
2349         * config/rs6000/rs6000.c (branch_positive_comparison_operator):
2350         Change TARGET_SPE to TARGET_E500.
2351         (ccr_bit): Change TARGET_SPE to TARGET_E500.  Check for
2352         !TARGET_FPRS.
2353         (print_operand): Same.
2354         (rs6000_generate_compare): Same.
2355         (output_cbranch): Same.
2356         (rs6000_spe): Declare.
2357         (rs6000_spe_string): Declare.
2358         (rs6000_override_options): Call rs6000_parse_spe_option.
2359         (rs6000_parse_spe_option): New.
2360
2361 2003-04-06  Steven Bosscher  <steven@gcc.gnu.org>
2362
2363         * hashtable.c (gcc_obstack_init): Delete this function
2364         and everything related to it.
2365         * hashtable.h: Remove prototype.
2366         * bitmap.c (bitmap_element_allocate): Cleanup redundant
2367         defines.  Cleanup some unnecessary whitespace.
2368         * defaults.h (obstack_chunk_alloc): Redefine with
2369         appropriate casts for libiberty obstacks.
2370         (obstack_chunk_free): Ditto.
2371         (OBSTACK_CHUNK_SIZE): Define, default to 0.
2372         (gcc_obstack_init): Define as a call to _obstack_begin.
2373         * tree.c (print_obstack_statistics): Delete this unused
2374         function.
2375         * tree.h (obstack): Don't forward-declare.
2376         (print_obstack_statistics): Delete prototype.
2377         (print_obstack_name): Ditto.
2378         (gcc_obstack_init): Ditto.
2379         * rtl.h (gcc_obstack_init): Ditto.
2380         * java/jv-scan.c (gcc_obstack_init): Delete this
2381         function, its prototype and related defines.
2382         * java/jvgenmain.c (gcc_obstack_init): Delete this
2383         function, and related defines.
2384         * java/parse-scan.y (obstack_chunk_alloc): Don't define.
2385         (obstack_chunk_free): Ditto
2386
2387 2003-04-06  Geoffrey Keating  <geoffk@apple.com>
2388
2389         * dbxout.c (dbxout_handle_pch): Move prototype out from
2390         #if defined DBX_DEBUGGING_INFO.
2391
2392 2003-04-05  Nathan Sidwell  <nathan@codesourcery.com>
2393
2394         * gcov.c (struct arc_info): Replace local_span with cycle.
2395         (struct block_info): Replace u.span with u.cycle. Add is_call_return.
2396         (solve_flow_graph): Set is_call_return.
2397         (add_line_counts): Adjust. In block mode, blocks attach to last line.
2398         (accumulate_line_counts): Find graph cycles, not spanning tree.
2399         (output_branch_count): Adjust.
2400         (output_lines): Adjust.
2401         * doc/gcov.texi: Update.
2402
2403 2003-04-06  Kazu Hirata  <kazu@cs.umass.edu>
2404
2405         * config/h8300/h8300.md (*zero_extendqisi2_h8300hs): Change
2406         the second alternative to "#".
2407
2408 2003-04-05  Kazu Hirata  <kazu@cs.umass.edu>
2409
2410         * config/h8300/h8300.c (single_one_operand): Use GET_MODE_MASK.
2411         (single_zero_operand): Likewise.
2412
2413 2003-04-05  Daniel Berlin  <dberlin@dberlin.org>
2414
2415         * Makefile.in (df.o):  Depend on alloc-pool.h, not obstack.h.
2416         * df.c: Include alloc-pool.h, not obstack.h.
2417         (df_ref_obstack): Remove.
2418         (df_ref_pool, df_link_pool): Add pools.
2419         (df_alloc): Init the new pools.
2420         (df_free): And free them.
2421         (df_link_create): Use the pools.
2422         (df_ref_create): Ditto.
2423
2424 2003-04-05  Kazu Hirata  <kazu@cs.umass.edu>
2425
2426         * simplify-rtx.c: Fix formatting.
2427
2428 2003-04-05  Andrew Pinski  <apinski@apple.com>
2429
2430         * config/rs6000/rs6000.c (addrs_ok_for_quad_peep): Allow addr2
2431         reg with reg1 == reg2 and offset1 = -8.
2432
2433 2003-04-05  David Edelsohn  <edelsohn@gnu.org>
2434
2435         * config/rs6000/rs6000.c (rs6000_rtx_costs): Halve Power4
2436         multiply costs.  Correct Power4 divide costs.
2437         * config/rs6000/power4.md: Restore multiply and FP latency.
2438
2439 2003-04-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2440
2441         * alias.c (find_base_term): Export.
2442         * rtl.h (find_base_term): Declare.
2443         * gcse.c (find_moveable_store): Test for flag_non_call_exceptions
2444         instead of flag_exceptions.  Move test for parameter passing ...
2445         (store_killed_in_insn): ... here.
2446
2447 2003-04-05  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2448
2449         PR bootstrap/10267
2450         * doc/install.texi (*-*-solaris2): /bin/ksh is not just recommended
2451         for configuring.
2452
2453 2003-04-04  Geoffrey Keating  <geoffk@apple.com>
2454
2455         * dbxout.c (scope_labelno): Add GTY.
2456         (have_used_extensions): Add GTY.
2457         (source_label_number): Add GTY.
2458         (lastfile): Add GTY.
2459         (lastfile_is_base): New.
2460         (base_input_file): New.
2461         (dbxout_handle_pch): New.
2462         (dbx_debug_hooks): Add handle_pch.
2463         (xcoff_debug_hooks): Likewise.
2464         (dbxout_function_end): Remove scope_labelno.
2465         (dbxout_init): Set base_input_file.
2466         (dbxout_handle_pch): New.
2467         (dbxout_source_file): Honour lastfile_is_base.
2468         * dwarfout.c (dwarf_debug_hooks): Add dummy handle_pch.
2469         * sdbout.c (sdb_debug_hooks): Add dummy handle_pch.
2470         * vmsdbgout.c (vmsdbg_debug_hooks): Add dummy handle_pch.
2471         * dwarf2out.c (dwarf2_debug_hooks): Add dummy handle_pch.
2472         * debug.c (do_nothing_debug_hooks): Add dummy handle_pch.
2473         * debug.h (struct gcc_debug_hooks): Add handle_pch.
2474         * c-pch.c (pch_init): Don't call start_source_file, but do call
2475         handle_pch.
2476         (c_common_write_pch): Call handle_pch.
2477         (c_common_read_pch): Don't call start_source_file,
2478         or end_source_file.
2479
2480 Fri Apr  4 17:43:52 2003  Olivier Hainque <hainque@act-europe.fr>
2481
2482         * emit-rtl.c (get_mem_attrs): Adjust alignment tests determining
2483         use of default attributes to agree MEM_ALIGN macro.
2484
2485 Fri Apr  4 17:33:24 2003  Joel Brobecker  <brobecker@gnat.com>
2486
2487         * dbxout.c (dbxout_type): When printing type index of range type
2488         whose bounds are printed in octal format, print type of parent type if
2489         it exists so enumerated type descriptions are not transformed
2490         into unsigned types.
2491
2492 2003-04-04  Kazu Hirata  <kazu@cs.umass.edu>
2493
2494         * config/h8300/h8300-protos.h: Add a prototype for
2495         compute_a_shift_cc.
2496         * config/h8300/h8300.c (shift_one): Update the CC status.
2497         (shift_two): Likewise.
2498         (output_a_shift_cc): Set cc_inline and cc_special.
2499         (compute_a_shift_cc): New.
2500         * config/h8300/h8300.md (shift insns): Use compute_a_shift_cc.
2501
2502 2003-04-04  Richard Henderson  <rth@redhat.com>
2503
2504         * cse.c (fold_rtx): Fix 03-30 change; do check insn non-null.
2505
2506 2003-04-04  Loren James Rittle  <ljrittle@acm.org>
2507
2508         * fixinc/inclhack.def (bsd_stdio_attrs_conflict): New.
2509         * fixinc/fixincl.x: Rebuilt.
2510         * fixinc/tests/base/stdio.h: Regenerated.
2511
2512 2003-04-04  Nathan Sidwell  <nathan@codesourcery.com>
2513
2514         * gcov.c (accumulate_line_counts): Fix span tree merge bug.
2515
2516 Fri Apr  4 15:58:52 2003  J"orn Rennecke <joern.rennecke@superh.com>
2517
2518         * sh.h (ACTUAL_NORMAL_MODE): New macro, broken out of
2519         (NORMAL_MODE).
2520         * sh.c (fpscr_set_from_mem): Use ACTUAL_NORMAL_MODE.
2521
2522 2003-04-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
2523
2524         * doc/contrib.texi (Contributors): Add entries for Wolfgang
2525         Bangerth, DJ Delorie, Christian Ehrhardt, Christopher Faylor,
2526         Nathanael Nerode, Diego Novillo, Hartmut Penner, Volker Reichelt,
2527         Danny Smith, and Ulrich Weigand.
2528         Update Kriang Lerdsuwanakij and fix a typo in Janis Johnson's
2529         entry.
2530
2531 2003-04-04  Nick Clifton  <nickc@redhat.com>
2532
2533         * config/sparc/sol2-bi.h: Revert previous delta.
2534         * config/sparc/sol2-gas-bi.h (AS_SPARC64_FLAG): Prepend -TSO
2535
2536 2003-04-04  Nick Clifton  <nickc@redhat.com>
2537
2538         * config/v850/v850.c (expand_prologue): Only use register save
2539         helper functions if long calls are not being used.
2540         Add a clobber of r11 id using long calls.
2541         (pattern_is_ok_for_prologue): Account for the extra clobber.
2542         (construct_save_jarl): Likewise.
2543         * config/v850/v850.md (prolog pattern): Do not use this pattern
2544         for v850e's.
2545
2546 2003-04-04  Andreas Schwab  <schwab@suse.de>
2547
2548         * stor-layout.c (layout_decl): Avoid syntax error in last change
2549         when PCC_BITFIELD_TYPE_MATTERS is defined but not
2550         EMPTY_FIELD_BOUNDARY.
2551
2552 2003-04-03  Jason Merrill  <jason@redhat.com>
2553
2554         PR c/10175
2555         * jump.c (never_reached_warning): Revert patch of 2002-11-02.
2556         Look backwards for a line note.
2557
2558 2003-04-03  Neil Booth  <neil@daikokuya.co.uk>
2559
2560         * fix-header.c (read_scan_file): Defer switch processing.
2561
2562 2003-04-03  Matt Austern  <austern@apple.com>
2563
2564         * cpppch.c (reset_ht): Remove.
2565         (cpp_read_state): Remove loop to reset hashtable identifiers.
2566         * ggc-common.c (gt_pch_save): Add call to gt_pch_fixup_stringpool
2567         after pch file is written.
2568         * ggc.h (gt_pch_fixup_stringpool): Declare.
2569         * stringpool.c (ht_copy_and_clear): Define.  Callback.  Copy
2570         hashnode's value to another hashtable, then clear the original.
2571         (saved_ident_hash): Define.
2572         (gt_pch_save_stringpool): Create saved_ident_hash, use it to
2573         store definitions in ident_hash, and clear ident_hash.
2574         (gt_pch_fixup_stringpool): Define.  Restore definitions from
2575         saved_ident_hash to ident_hash, then destroy saved_ident_hash.
2576
2577 Thu Apr  3 22:27:40 CEST 2003  Jan Hubicka  <jh@suse.cz>
2578
2579         * cfgrtl.c (update_bb_for_insn): Do not set block for barriers.
2580
2581 2003-04-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
2582
2583         PR optimization/10157
2584         * gcse.c (can_copy_p): Rename it to can_copy.
2585         (can_copy_init_p): Remove.
2586         (compute_can_copy): Use can_copy instead of can_copy_p.
2587         (can_copy_p): New exported function. Call compute_can_copy.
2588         (hash_scan_set): Use it.
2589         (gcse_main): Don't call compute_can_copy.
2590         (bypass_jumps): Don't call compute_can_copy.
2591         * rtl.h (can_copy_p): Declare.
2592         * loop.c (scan_loop): Don't move the source and add a reg-to-reg
2593         copy if the mode doesn't support copy operations.
2594
2595 2003-04-03  Jason Merrill  <jason@redhat.com>
2596
2597         * Makefile.in (unstrap): Also remove stage_last.
2598
2599         * dwarf2out.c (lookup_filename): Don't check for "<internal>".
2600         (dwarf2out_source_line): Don't do anything if line==0.
2601
2602         * stor-layout.c (do_type_align): New fn, split out from...
2603         (layout_decl): ...here.  Do all alignment calculations for
2604         FIELD_DECLs here.
2605         (update_alignment_for_field): Not here.
2606         (start_record_layout, debug_rli): Remove unpadded_align.
2607         * tree.h (struct record_layout_info_s): Remove unpadded_align.
2608         * c-decl.c (finish_enum): Don't set DECL_SIZE, DECL_ALIGN
2609         or DECL_MODE on the CONST_DECLs.
2610         (finish_struct): Don't mess with DECL_ALIGN.
2611
2612 Thu Apr  3 18:57:19 CEST 2003  Jan Hubicka  <jh@suse.cz>
2613
2614         * i386.c (print_operand): Do not bypass output_addr_const at flag_pic.
2615
2616 Thu Apr  3 17:08:09 2003  J"orn Rennecke <joern.rennecke@superh.com>
2617
2618         * sh.c (sh_function_ok_for_sibcall): Return 0 if the current
2619         function is an interrupt handler.
2620
2621         * sh.c (sh_expand_epilogue): Avoid clash of temp register for
2622         restoring target registers with EH_RETURN_STACKADJ_RTX; use
2623         multiple registers in round-robin fashion.
2624
2625 2003-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2626
2627         * gengtype-lex.l (IWORD): Add CHAR_BITFIELD.
2628         * system.h (CHAR_BITFIELD): New.
2629
2630 2003-04-03  Kazu Hirata  <kazu@cs.umass.edu>
2631
2632         * config/h8300/h8300.md (a peephole2): Generalize to accept GT
2633         and LE.
2634         (another peephole2): Likewise.
2635
2636 2003-04-03  Nick Clifton  <nickc@redhat.com>
2637
2638         * config/sparc/sol2-bi.h (ASM_CPU64_DEFAULT_SPEC): Add -TSO.
2639         (DEF_ARCH64_SPEC): Likewise.
2640
2641 Thu Apr  3 09:53:40 CEST 2003  Jan Hubicka  <jh@suse.cz>
2642
2643         * i386.c (constant_address_p): Use legitimate_constant_p.
2644         (legitimate_address_p): Do not use CONSTANT_ADDRESS_P.
2645
2646 2003-04-02  Kazu Hirata  <kazu@cs.umass.edu>
2647
2648         * config/h8300/h8300-protos.h: Add a prototype for
2649         gtle_operator.
2650         * config/h8300/h8300.c (gtle_operator): New.
2651         * config/h8300/h8300.h (PREDICATE_CODES): Add an entry for
2652         gtle_operator.
2653         * config/h8300/h8300.md (a peephole2): Generalize to accept GT
2654         and LE.
2655
2656 2003-04-02  Richard Henderson  <rth@redhat.com>
2657
2658         * libgcc-std.ver (_Unwind_GetCFA): New.
2659         * unwind-dw2.c (_Unwind_GetCFA): New.
2660         * unwind-libunwind.c (_Unwind_GetCFA): New.
2661         * unwind-sjlj.c (_Unwind_GetCFA): New.
2662         * unwind.h: Declare it.
2663
2664 Thu Apr  3 00:31:21 CEST 2003  Jan Hubicka  <jh@suse.cz>
2665
2666         PR inline-asm/8088
2667         * i386.c (ix86_hard_regno_mode_ok):  Return 0 for MMX/SSE registers
2668         when MMX/SSE is not available.
2669
2670 2003-04-02  Mike Stump  <mrs@apple.com>
2671
2672         * doc/install.texi (Specific): Update pointers to apple.com.
2673
2674 Thu Apr  3 00:18:49 CEST 2003  Jan Hubicka  <jh@suse.cz>
2675
2676         * i386.c (override_options):  Disable red zone by default on i386.
2677         (compute_frame_layout, ix86_force_to_memory, ix86_free_from_memory):
2678         Do not test TARGET_64BIT together with TARGET_RED_ZONE
2679
2680 2003-04-02  Kazu Hirata  <kazu@cs.umass.edu>
2681
2682         * config/h8300/h8300.md (a peephole2): Tighten the condition.
2683
2684 2003-04-02  Richard Henderson  <rth@redhat.com>
2685
2686         * longlong.h (umul_ppmm) [alpha]: Use __builtin_alpha_umulh.
2687
2688 2003-04-02  Kazu Hirata  <kazu@cs.umass.edu>
2689
2690         * config/h8300/h8300.md (a peephole2): New.
2691
2692 2003-04-02  Richard Henderson  <rth@redhat.com>
2693
2694         * except.c (sjlj_find_directly_reachable_regions): Recognize when
2695         must-not-throw region has been deleted.
2696
2697 2003-04-02  Richard Henderson  <rth@redhat.com>
2698
2699         * dwarf2out.c (output_call_frame_info): Ignore fde->nothrow as an
2700         optimization when flag_exceptions not enabled.
2701
2702 2003-04-02  Vladimir Makarov  <vmakarov@redhat.com>
2703
2704         * config/rs6000/rs6000.c
2705         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Redefine the
2706         macros.
2707         (rs6000_issue_rate): Add case for 8540.
2708         (rs6000_use_sched_lookahead): New function.
2709
2710         * config/rs6000/8540.md: Rename SIU units into SU ones and MIU
2711         units into MU ones.
2712         (ppc8540_branch, ppc8540_cr_logical): Add one cycle in the
2713         reservation before retirement.
2714         (ppc8540_multiply, ppc8540_load, ppc8540_store,
2715         ppc8540_simple_float, ppc8540_vector_load, ppc8540_vector_store):
2716         Remove additional cycle in the reservation before retirement.
2717         (ppc8540_mfcr, ppc8540_mtcrf, ppc8540_mtjmpr): Add missed
2718         reservation of ppc8540_issue.
2719
2720 2003-04-02  Andreas Schwab  <schwab@suse.de>
2721
2722         * real.c (decode_ieee_single): Fix decoding of SNaN bit.
2723
2724 2003-04-01  Richard Henderson  <rth@redhat.com>
2725
2726         * except.c (convert_from_eh_region_ranges_1): Smash REG_EH_REGION
2727         notes for nothrow calls if flag_forced_unwind_exceptions.
2728         (build_post_landing_pads): Mind flag_forced_unwind_exceptions.
2729         (sjlj_find_directly_reachable_regions): Likewise.
2730         (reachable_handlers): Likewise.
2731         (can_throw_external): Likewise.
2732         (collect_one_action_chain): Record cleanups after catch-all and
2733         must-not-throw if flag_forced_unwind_exceptions.
2734         * flags.h (flag_forced_unwind_exceptions): Declare.
2735         * toplev.c (flag_forced_unwind_exceptions): New.
2736         (lang_independent_options): Add it.
2737         * doc/invoke.text: Add it.
2738
2739 2003-04-01  David Mosberger <davidm@hpl.hp.com>
2740
2741         * config/ia64/crti.asm: Clean up trailing whitespace.
2742         Remove trailing hashes (#) from identifiers.
2743
2744         * config/ia64/crtn.asm: Ditto.
2745
2746         * config/ia64/crtend.asm: Remove trailing hashes (#) from
2747         identifiers.
2748         (__do_global_ctors_aux): Align to 32-byte boundary.  Add unwind
2749         directives.  Drop explicit bundling---it just makes the code
2750         harder to read.  Don't save/restore gp needlessly.
2751
2752         * config/ia64/crtbegin.asm: Remove trailing hashes (#) from
2753         identifiers (they're only needed if the identifier would clash
2754         with a register name otherwise).
2755         (__do_global_dtors_aux): Align to 32-byte boundary. Add unwind
2756         directives.  Drop explicit bundling---it just makes the code
2757         harder to read.
2758         (__do_jv_register_classes): Ditto.
2759         (.fini_array): Remove "progbits" (newer
2760         assemblers don't like wrong section-types).
2761         (.init_array): Ditto.
2762
2763 2003-04-01  Roger Sayle  <roger@eyesopen.com>
2764
2765         PR fortran/9974
2766         * gcse.c (reg_killed_on_edge): New function to test whether the
2767         given reg is overwritten by any instruction queued on an edge.
2768         (bypass_block): Ignore substitutions killed on incoming edges.
2769         Don't bypass outgoing edges that have queued instructions.
2770
2771 2003-04-01  Alexandre Oliva  <aoliva@redhat.com>
2772
2773         * real.h (EXP_BITS): Make room for...
2774         (struct real_value): ... added canonical bit.
2775         (struct real_format): Added pnan.
2776         (mips_single_format, mips_double_format, mips_extended_format,
2777         mips_quad_format): New.
2778         * real.c: Copy p to pnan in all formats.
2779         (get_canonical_qnan, get_canonical_snan): Set canonical bit.
2780         (real_nan): Use pnan to compute significand's shift.
2781         (real_identical): Disregard significand in canonical
2782         NaNs.
2783         (real_hash): Likewise.  Take signalling into account.
2784         (encode_ieee_single, encode_ieee_double, encode_ieee_quad):
2785         Disregard significand bits in canonical NaNs.  Set all bits of
2786         canonical NaN if !qnan_msb_set.
2787         (encode_ibm_extended, decode_ibm_extended): Likewise.  Use
2788         qnan_msb_set to tell the base double format.
2789         (ibm_extended_format): Use 53 as pnan.
2790         (mips_single_format, mips_double_format, mips_extended_format,
2791         mips_quad_format): Copied from the corresponding ieee/ibm
2792         formats, with qnan_msb_set false.
2793         * config/mips/iris6.h (MIPS_TFMODE_FORMAT): Use mips_extended_format.
2794         * config/mips/linux64.h (MIPS_TFMODE_FORMAT): Use mips_quad_format.
2795         * config/mips/mips.c (override_options): Use mips_single_format
2796         and mips_double_format.  Default TFmode to mips_quad_format.
2797         * config/mips/t-linux64 (tp-bit.c): Define QUIET_NAN_NEGATED.
2798         * config/mips/t-irix6: Likewise.
2799         * config/mips/t-mips (fp-bit.c, dp-bit.c): Likewise.
2800         * config/fp-bit.c (pack_d, unpack_d): Obey it.
2801
2802 2003-04-01  Geoffrey Keating  <geoffk@apple.com>
2803
2804         * unwind-dw2-fde-darwin.c (DESTRUCTOR_MAY_BE_CALLED_LIVE): New.
2805         (live_image_destructor): Reset image to initial state.
2806         (examine_objects): Set DESTRUCTOR_MAY_BE_CALLED_LIVE.
2807
2808 2003-04-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
2809
2810         * config/sparc/sparc.c (input_operand): Accept bare
2811         CONSTANT_P_RTX operands.
2812
2813 2003-04-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2814
2815         * gcse.c (struct ls_expr): Added pattern_regs field.
2816         (ldst_entry): Initialize it.
2817         (extract_mentioned_regs, extract_mentioned_regs_helper): New.
2818         (store_ops_ok): Use regs precomputed by them.
2819         (find_loads, store_killed_in_insn, load_kills_store): Change return
2820         type to bool.
2821         (store_killed_before, store_killed_after): Take position of register
2822         set in account.
2823         (reg_set_info): Store position of the setter.
2824         (gcse_main): Enable store motion.
2825         (mems_conflict_for_gcse_p): Enable load motion of non-symbol mems.
2826         (pre_insert_copy_insn, update_ld_motion_stores, insert_store): Prevent rtl
2827         sharing.
2828         (simple_mem): Enable store motion of non-symbol mems.
2829         (regvec): Type changed.
2830         (LAST_AVAIL_CHECK_FAILURE): New.
2831         (compute_store_table_current_insn): New.
2832         (build_store_vectors): Computation of availability and anticipatability
2833         moved ...
2834         (compute_store_table, find_moveable_store): ... here.
2835         (delete_store): Remove senseless comment.
2836         (store_motion): Reorganize.
2837
2838 2003-04-01  Kevin Buettner  <kevinb@redhat.com>
2839
2840         * config/mips/mips.c (override_options): Provide mappings for
2841         HI_REGNUM and LO_REGNUM.
2842         * config/mips/mips.h (MD_DBX_FIRST): Define.
2843
2844 2003-04-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
2845
2846         * combine.c (merge_outer_ops): Fix typo.
2847
2848         * varasm.c (make_decl_one_only): Revert 2003-03-09 patch.
2849
2850 2003-04-01  David Edelsohn  <edelsohn@gnu.org>
2851
2852         * config/rs6000/{40x.md,603.md,6xx.md,7450.md,7xx.md,mpc.md,
2853         power4.md,rios1.md,rios2.md,rs64.md}: Change mult_compare to
2854         imul_compare.  Add lmul_compare.
2855         * config/rs6000/power4.md: Bump some latencies.  Model extra cycle
2856         in second pair of dispatch slots.  Model stores more accurately.
2857         Tweak multiply model.  Add bypasses for CR instructions dependent
2858         on complicated compares.
2859         * config/rs6000/rs6000.md (mulsi3): Name imul_compare patterns.
2860         (muldi3): Add lmul_compare patterns.
2861         * config/rs6000/rs6000.c (rs6000_variable_issue): Move FPLOAD_UX
2862         and FPSTORE_UX to split instructions and add COMPARE,
2863         DELAYED_COMPARE, IMUL_COMPARE, LMUL_COMPARE, IDIV, LDIV.
2864         (rs6000_adjust_cost): Add IMUL_COMPARE and LMUL_COMPARE.
2865         (rs6000_rtx_costs): Separate POWER4 multiply case.
2866
2867 2003-04-01  Ulrich Weigand  <uweigand@de.ibm.com>
2868
2869         * config/s390/s390.c (s390_fixup_clobbered_return_reg):
2870         Do nothing if __builtin_return_address was not used.
2871
2872 Tue Apr  1 18:18:23 CEST 2003  Jan Hubicka  <jh@suse.cz>
2873
2874         * i386.md (test patterns):  Allow memory operand in operand1.
2875
2876 2003-02-31  Aldy Hernandez  <aldyh@redhat.com>
2877
2878         * testsuite/gcc.c-torture/execute/simd-3.c: New.
2879
2880         * expr.c (expand_expr): Handle VECTOR_CST.
2881         (const_vector_from_tree): New.
2882
2883         * varasm.c (output_constant): Handle VECTOR_CST.
2884
2885         * c-typeck.c (digest_init): Build a vector constant from a
2886         VECTOR_TYPE.
2887
2888         * config/rs6000/rs6000.c: Remove prototype for
2889         easy_vector_constant.
2890         (easy_vector_constant): Add mode parameter.  Rewrite to handle
2891         more easy constants.
2892         (rs6000_emit_move): Pass mode to easy_vector_constant.
2893         Call emit_easy_vector_insn for SPE V2SI vector constant moves.
2894         (emit_easy_vector_insn): New.
2895         (easy_vector_same): New.
2896         (EASY_VECTOR_15): New macro.
2897         (EASY_VECTOR_15_ADD_SELF): New macro.
2898         (bdesc_2arg): Rename to xorv2si3.
2899         (easy_vector_constant_add_self): New.
2900         (input_operand): Allow vector constants.
2901
2902         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
2903         easy_vector_constant, easy_vector_constant_add_self.
2904         (EXTRA_CONSTRAINT): Add 'W'.
2905
2906         * config/rs6000/rs6000-protos.h: Add prototype for
2907         easy_vector_constant, emit_easy_vector_insn.
2908
2909         * config/rs6000/altivec.md (xorv8hi3): New.
2910         (xorv16qi3): New.
2911         Remove all _const0 patterns.
2912         (movv4si_internal): Rewrite to use code.  Add vector constant to
2913         vector alternative.  Add splitter.
2914         (movv8hi_internal): Same.
2915         (movv16qi_internal): Same.
2916         (movv4sf_internal): Same.
2917         Change the unspecs for vspltis* to use constants.
2918
2919         * config/rs6000/spe.md ("xorv4hi3"): New.
2920         ("spe_evxor"): Rename to xorv2si3.
2921         ("xorv1di3"): New.
2922         Remove all _const0 patterns.
2923         (movv2si_internal): Rewrite to use code.  Add vector constant to
2924         alternatives.  Add splitter.
2925         (movv4hi_internal): Add vector constant to alternatives.
2926         (movv1di_internal): Same.
2927         (movv2sf_internal): Same.
2928
2929 2003-03-31  Mark Mitchell  <mark@codesourcery.com>
2930
2931         PR c/9936
2932         * c-decl.c (grokdeclarator): Clear SAVE_EXPR_CONTEXT for
2933         variably-sized arrays in parameters.
2934         (set_save_expr_context): New function.
2935         (c_expand_body): Use it, via walk_tree.
2936
2937 2003-03-31  Eric Christopher  <echristo@redhat.com>
2938
2939         * combine.c (can_combine_p): Allow ZERO_EXTRACT and STRICT_LOW_PART.
2940         (combinable_i3pat): Remove call to expand_field_assignment and
2941         #if 0'd code.
2942
2943 2003-03-31  Mark Mitchell  <mark@codesourcery.com>
2944
2945         PR c++/10278
2946         * c-common.c (finish_label_address_expr): Handle the
2947         error_mark_node.
2948
2949 2003-03-31  Richard Henderson  <rth@redhat.com>
2950
2951         * real.c (real_identical): Reorg so as to not compare
2952         signalling for normals.
2953
2954 2003-03-31  Stephane Carrez  <stcarrez@nerim.fr>
2955
2956         * config/m68hc11/m68hc11.c (hard_reg_operand): Check the mode.
2957
2958 2003-03-31  Stephane Carrez  <stcarrez@nerim.fr>
2959
2960         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Don't rely on REG_WAS_0
2961         notes as they are boggus.
2962         (m68hc11_gen_movqi): Likewise.
2963
2964 2003-03-31  Stephane Carrez  <stcarrez@nerim.fr>
2965
2966         * config/m68hc11/m68hc11.c (expand_prologue): For an interrupt handler
2967         save the soft registers after the frame pointer so that gdb can unwind
2968         the frame more easily.
2969         (expand_epilogue): Likewise in opposite order; allow to use X register
2970         as scratch if the return value is by reference.
2971
2972 2003-03-31  Jason Merrill  <jason@redhat.com>
2973
2974         PR java/10145
2975         * stor-layout.c (update_alignment_for_field): Respect
2976         DECL_USER_ALIGN for zero-length bitfields, too.
2977         * c-decl.c (finish_struct): Don't set DECL_ALIGN for normal
2978         fields.
2979
2980 2003-03-31  Matt Austern  <austern@apple.com>
2981
2982         * cpppch.c (struct cpp_savedstate): Add defs and n_defs members.
2983         (count_defs): Keep track of number of defs as well as total size.
2984         (write_defs): Put every definition in cpp_savedstate's defs array.
2985         (comp_hashnode): Define.  Comparison function for qsort.
2986         (cpp_write_pch_deps): Sort definitions before writing them.
2987         (struct ht_node_list): Define. Like cpp_savedstate but simpler.
2988         (collect_ht_nodes): Define.
2989         (cpp_valid_state): When verifying that undefined identifiers in
2990         the pch file are still undefined, read a sorted list of undefined
2991         identifiers, collect all defined identifiers into a sorted list,
2992         and walk through both lists to make sure there's no match.
2993
2994 2003-03-31  Kazu Hirata  <kazu@cs.umass.edu>
2995
2996         * config/h8300/h8300.md (a peephole2): New.
2997
2998 2003-03-31  Michael Matz  <matz@suse.de>
2999
3000         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Change 1 into 0.
3001
3002 2003-03-31  Segher Boessenkool  <segher@koffie.nl>
3003
3004         PR target/10177
3005         * config/rs6000/rs6000.h (HARD_REGNO_RENAME_OK): New.
3006         * config/rs6000/rs6000.c (compute_vrsave_mask): Don't mark
3007         all call-clobbered registers as used.
3008
3009 2003-03-31  Michael Matz  <matz@suse.de>
3010
3011         * cppexp.c (cpp_classify_number): Accept '.' after "0x".
3012         * testsuite/gcc.dg/cpp/c99-hexfloat-3.c: New file.
3013
3014 2003-03-31  Nathan Sidwell  <nathan@codesourcery.com>
3015
3016         * gcov.c: Add -a & -u options.
3017         (struct arc_info): Add local_span, is_call_non_return,
3018         is_nonlocal_return, is_unconditional flags, remove is_call flag.
3019         (struct block_info): Add flags, is_call_site, is_nonlocal_return
3020         members. Make encodings a union with span member.
3021         (struct function_info): Add blocks_executed, line, src, line_next
3022         members.
3023         (struct coverage_info): Make branches a union with blocks member.
3024         (struct source_info): Add functions member.
3025         (object_summary, program_count): New global variables.
3026         (flag_all_blocks, flag_unconditional): New flags.
3027         (find_source, output_branch_count): New functions.
3028         (print_usage): Adjust.
3029         (options): Adjust.
3030         (process_args): Adjust.
3031         (read_graph_file) <GCOV_TAG_FUNCTION>: Adjust.
3032         <GCOV_TAG_BLOCKS>: Read flags.
3033         <GCOV_TAG_LINES>: Adjust.
3034         (read_count_file): Process SUMMARY tags.
3035         (solve_flow_graph): Set is_unconditional and clear is_call_site
3036         appropriately.
3037         (add_branch_counts): Adjust. Don't count unconditional branches.
3038         (add_line_counts): Deal with all-blocks mode, accumulate block
3039         coverage.
3040         (accumulate_line_counts): Adjust, generate local spanning tree for
3041         all-blocks mode.
3042         (output_lines): Adjust.
3043         * profile.c (branch_prob): Alter GCOV_FUNCTION_TAG record.
3044         * doc/gcov.texi: Document.
3045
3046 2003-03-31  Kazu Hirata  <kazu@cs.umass.edu>
3047
3048         * config/h8300/h8300.md: Organize peephole2's that transform
3049         (compare (reg:HI) (const_int)).
3050
3051 2003-03-31  Roger Sayle  <roger@eyesopen.com>
3052
3053         * emit-rtl.c (dconstm2, dconsthalf): New real constants.
3054         (init_emit_once): Initialize dconstm2 and dconsthalf here.
3055         * real.h (dconstm2, dconsthalf): Add prototypes here.
3056         * real.c (real_sqrt): Use dconsthalf rather than local copy.
3057         * builtins.c (fold_builtin): When optimizing sqrt(exp(x)) as
3058         exp(x/2.0) remember to fold the division if possible.
3059         Fold sin(0.0) as 0.0, cos(0.0) as 1.0, pow(x,1.0) as x,
3060         pow(x,-1.0) as 1.0/x, pow(x,2.0) as x*x, pow(x,-2.0) as
3061         1.0/(x*x) and pow(x,0.5) as sqrt(x).
3062
3063 2003-03-31  Kazu Hirata  <kazu@cs.umass.edu>
3064
3065         * config/h8300/h8300.md (a new peephole2): New.
3066
3067 2003-03-31  Richard Sandiford  <rsandifo@redhat.com>
3068
3069         * gcse.c (simple_mem): Return false for floating-point accesses
3070         if flag_float_store is true.
3071
3072 2003-03-30  Roger Sayle  <roger@eyesopen.com>
3073
3074         * gcse.c (gcse_constant_p): New function to identify constants
3075         suitable for constant propagation, including COMPARE with two
3076         integer constant arguments.
3077         (hash_scan_set): Use gcse_constant_p.
3078         (find_avail_set): Likewise.
3079         (cprop_insn): Likewise.
3080         (do_local_cprop): Likewise.
3081         (find_implicit_sets): Likewise.
3082         (find_bypass_set): Likewise.
3083
3084 2003-03-30  Matt Kraai  <kraai@alumni.cmu.edu>
3085
3086         * except.h: Remove definition of varray_type.
3087
3088 2003-03-30  Richard Henderson  <rth@redhat.com>
3089
3090         PR opt/10011, opt/10252:
3091         * toplev.c (rest_of_compilation): Run purge_builtin_constant_p
3092         before post-gcse cse pass.
3093
3094 2003-03-30  Roger Sayle  <roger@eyesopen.com>
3095
3096         * dojump.c (do_jump): Copy SUBREGs into a pseudo for comparison.
3097
3098 2003-03-30  DJ Delorie  <dj@redhat.com>
3099
3100         * profile.c (instrument_edges): Make sure any newly created
3101         jump insns have correct jump label info.
3102
3103 2003-03-30  Richard Henderson  <rth@redhat.com>
3104
3105         * cfgbuild.c (make_edges): Use tablejump_p.
3106         * cfgcleanup.c (label_is_jump_target_p): Likewise.
3107         * cfglayout.c (cfg_layout_can_duplicate_bb_p): Likewise.
3108         * cfgrtl.c (flow_delete_block_noexpunge): Likewise.
3109         (try_redirect_by_replacing_jump): Likewise.
3110         (redirect_edge_and_branch): Likewise.
3111         * cse.c (fold_rtx): Likewise.
3112         * jump.c (delete_related_insns): Likewise.
3113         * rtlanal.c (get_jump_table_offset): Likewise.
3114         * ssa-ccp.c (ssa_ccp_df_delete_unreachable_insns): Likewise.
3115
3116 2003-03-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3117
3118         * Makefile.in (STRICT_WARN): Don't warn for ISO C constructs.
3119         (STRICT2_WARN): Likewise.
3120
3121 2003-03-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3122
3123         PR other/6955
3124         * collect2.c (collect_wait): Use WCOREDUMP and fix output message.
3125         * system.h (WCOREDUMP, WCOREFLG): Define if necessary.
3126
3127 2003-03-30  Richard Henderson  <rth@redhat.com>
3128
3129         PR c/10083
3130         * config/alpha/alpha.md (umuldi3_highpart): Change to expander;
3131         don't zero_extend const inputs.
3132
3133 2003-03-30  Kazu Hirata  <kazu@cs.umass.edu>
3134
3135         * reload1.c (reload_cse_move2add): Fix a comment typo.
3136
3137 2003-03-30  Kazu Hirata  <kazu@cs.umass.edu>
3138
3139         * config/h8300/h8300.md (a peephole2): Remove useless code.
3140
3141 2003-03-29  Kazu Hirata  <kazu@cs.umass.edu>
3142
3143         * config/h8300/h8300.md (*iorsi3_and_ashift): New.
3144         (*iorsi3_and_lshiftrt): Likewise.
3145         (*iorsi3_zero_extract): Likewise.
3146
3147 2003-03-29  Kazu Hirata  <kazu@cs.umass.edu>
3148
3149         * config/h8300/h8300.md (*insv_si_8_8): New.
3150         (*insv_si_8_8_lshiftrt_8): Likewise.
3151         (a peephole2): Likewise.
3152
3153 2003-03-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3154
3155         * doc/contrib.texi: Add Eric Botcazou and Roger Sayle.
3156         Uniformly use bugfix instead of bug fix.
3157
3158 2003-03-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3159
3160         PR doc/895
3161         * ONEWS: Remove those items that already appear in the EGCS
3162         release notes on our web pages.
3163
3164 2003-03-29  Alan Modra  <amodra@bigpond.net.au>
3165
3166         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Respect
3167         TARGET_HARD_FLOAT.  Reformat.
3168         (FUNCTION_ARG_REGNO_P): Likewise, and remove unneeded casts.
3169
3170 2003-03-28  Albert Chin-A-Young  <china@thewrittenword.com>
3171
3172         * gcc/fixinc/inclhack.def: Update solaris_mutex_init_1 to
3173         work on Solaris 2.5.1.
3174
3175 2003-03-28  Kazu Hirata  <kazu@cs.umass.edu>
3176
3177         * config/h8300/h8300.md (*addsi3_and_r_1): Put under plus:SI
3178         section of h8300.md
3179         (*addsi3_and_nor_r_1): Likewise.
3180
3181 2003-03-29  Ulrich Weigand  <uweigand@de.ibm.com>
3182
3183         * config/s390/s390.c (s390_emit_prologoue): Make sure backchain is
3184         set up before any trapping memory access if flag_non_call_exceptions.
3185
3186 2003-03-29  Alan Modra  <amodra@bigpond.net.au>
3187
3188         * reload1.c (reload_as_needed): Allow a USE in asm reloads.
3189
3190         * loop.c: (find_mem_in_note_1, find_mem_in_note): Comment.
3191
3192 2003-03-28  Nathanael Nerode  <neroden@gcc.gnu.org>
3193
3194         * configure.in: Clarify comments.
3195         * configure: Regenerate.
3196
3197 2003-03-28  Ulrich Weigand  <uweigand@de.ibm.com>
3198
3199         * config/s390/s390.md ("literal_pool_31"): Output pool anchor
3200         label even if pool empty when generating PIC.
3201         ("literal_pool_31", "literal_pool_64"): Coding style cleanup.
3202
3203 2003-03-28  Kazu Hirata  <kazu@cs.umass.edu>,
3204             Dhananjay Deshpande  <dhananjayd@kpit.com>
3205
3206         PR target/10205
3207         * config/h8300/h8300.c (h8300_initial_elimination_offset):
3208         Correct the offset computation when TARGET_NORMAL.
3209
3210 2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
3211
3212         PR target/10067
3213         * config/sparc/sparc.md (jump pattern): Correct order
3214         when issuing the annuling marker.
3215
3216 2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
3217
3218         PR c/8281
3219         * config/sparc/sparc.md (movdi_insn_sp32_v9): Remove 'f-f' alternative.
3220         (movdi reg/reg split): Match only on sparc32, and v9 when int regs.
3221
3222 2003-03-28  Alan Modra  <amodra@bigpond.net.au>
3223
3224         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): Remove unnecessary
3225         globalize_label.
3226         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
3227         * config/i960/i960.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
3228         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
3229         * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
3230         * config/mips/linux.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
3231         * config/sparc/sparc.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
3232         * config/v850/v850.c (v850_output_aligned_bss): Likewise.
3233
3234 2003-03-28  Alan Modra  <amodra@bigpond.net.au>
3235
3236         * loop.c: (find_mem_in_note_1, find_mem_in_note): New functions.
3237         (replace_loop_mems): Add "written" param.  Remove invalid REG_EQUAL
3238         notes after hoisting.
3239         (load_mems): Adjust replace_loop_mems call.
3240
3241 2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
3242             Richard Henderson  <rth@redhat.com>
3243
3244         PR target/10114 and PR target/10084
3245         * dwarf2out.c (mem_loc_descriptor): Handle LO_SUM.
3246
3247 2003-03-27  Richard Henderson  <rth@redhat.com>
3248
3249         * config/alpha/alpha.md (adddi_er_high_l): Valid only after reload.
3250
3251 2003-03-27  Roger Sayle  <roger@eyesopen.com>
3252
3253         * fold-const.c (fold_inf_compare):  New function to simplify FP
3254         comparisons against +Infinity or -Infinity.
3255         (fold):  Optimize floating point comparisons against Infs and NaNs.
3256
3257 2003-03-27  Janis Johnson  <janis187@us.ibm.com>
3258
3259         * libgcov.c: Provide only dummy functions if libc is not available.
3260
3261 2003-03-27  Richard Henderson  <rth@redhat.com>
3262
3263         * real.h (struct real_value): Add signalling.
3264         (EXP_BITS): Decrement.
3265         * real.c (get_canonical_qnan): Don't set MSB-1.
3266         (get_canonical_snan): Likewise.  Set signalling.
3267         (real_identical): Compare signalling.
3268         (round_for_format): Remove force-one-bit on code.
3269         (real_nan): Likewise.  Set signalling.
3270         (encode_ieee_single): Add force-one-bit code; honor signalling.
3271         (encode_ieee_double, encode_ieee_extended, encode_ieee_quad): Likewise.
3272         (decode_ieee_single): Set signalling.
3273         (decode_ieee_double, decode_ieee_extended, decode_ieee_quad): Likewise.
3274
3275 2003-03-27  Olivier Hainque  <hainque@act-europe.fr>
3276
3277         PR ada/9953
3278         * ada/Makefile.in (gnatlib configuration for HPUX): Split
3279         the general section for HPUX into specific sections for
3280         HPUX 10 and HPUX 11. Fix the setting of TGT_LIB in the HPUX
3281         11 case.
3282
3283 2003-03-27  Glen Nakamura  <glen@imodulo.com>
3284
3285         PR opt/10087
3286         * loop.c (loop_givs_reduce): Skip bivs with duplicate locations
3287         while incrementing giv.
3288         (record_biv): Check for duplicate biv locations and
3289         set (struct induction *) v->same if found.
3290
3291 2003-03-27  David Mosberger  <davidm@hpl.hp.com>
3292
3293         * unwind-libunwind.c (uw_frame_state_for): Adjust for libunwind
3294         v0.9 API change: replace read of UNW_REG_HANDLER with
3295         unw_get_proc_info().
3296         (_Unwind_GetLanguageSpecificData): Replace read of UNW_REG_LSDA
3297         with unw_get_proc_info().
3298         (_Unwind_GetRegionStart): Replace UNW_REG_PROC_START with
3299         unw_get_proc_info().
3300
3301 2003-03-27  Vladimir Makarov  <vmakarov@redhat.com>
3302
3303         * config/rs6000/8540.md: Use presence_set instead of absence_set.
3304
3305 2003-03-26  Richard Henderson  <rth@redhat.com>
3306
3307         * c-decl.c (finish_function): Always defer if DECL_DECLARED_INLINE_P.
3308
3309 2003-03-26  Roger Sayle  <roger@eyesopen.com>
3310
3311         PR bootstrap/10051, PR bootstrap/10169.
3312         * mips-tfile.c (init_file): Don't provide a static initializer.
3313         (initialize_init_file): Initialize the contents of init_file.
3314         (add_file): Call initialize_init_file if not already initialized.
3315
3316 2003-03-26  Ulrich Weigand  <uweigand@de.ibm.com>
3317
3318         * config/s390/s390.c (s390_optimize_prolog): Do not save/restore
3319         registers used for global asm variables.
3320         (s390_frame_info, s390_arg_frame_offset): Likewise.
3321         (s390_emit_prologue, s390_emit_epilogue): Likewise.
3322
3323 2003-03-26  Vladimir Makarov  <vmakarov@redhat.com>
3324
3325         * config/rs6000/8540.md: New file.
3326
3327         * config/rs6000/{40x.md, 603.md, 6xx.md, 7450.md, 7xx.md, mpc.md,
3328         power4.md, rios1.md, rios2.md, rs64.md}: Add mult_compare to
3329         reservations for imul.
3330
3331         * config/rs6000/rs6000.md: Include 8540.md.  Change
3332         delayed_compare onto mult_compare for insns generating
3333         multiplication.
3334         (mult_compare, fpsimple, brinc, vecdiv, veccmpsimple, vecfdiv):
3335         New type attribute values.
3336
3337         * config/rs6000/spe.md (*negsf2_gp, *abssf2_gpr): Use type
3338         fpsimple instead of fp.
3339         (*divsf3_gpr): Use type vecfdiv instead of fp.
3340         (spe_evfsabs, spe_evfsnabs, spe_evfsneg): Use type vecsimple
3341         instead of vecfloat.
3342         (spe_evfsdive): Use type vecfdiv instead of vecfloat.
3343         (spe_brinc): Use type brinc instead of veccomplex.
3344         (spe_evaddw, spe_evaddiw): Use type vecsimple instead of
3345         veccomplex.
3346         (spe_evdivws, spe_evdivwu): Use type vecdiv instead of veccomplex.
3347         (*movv2si_internal, *movv1di_internal, *movv4hi_internal,
3348         *movv2sf_internal): Define type attribute values for all
3349         alternatives.
3350         (cmpsfeq_gpr, cmpsfgt_gpr, cmpsflt_gpr): Use type veccmp instead
3351         of fpcompare.
3352         (tstsfeq_gpr, tstsfgt_gpr, tstsflt_gpr): Use type veccmpsimple
3353         instead of fpcompare.
3354
3355 2003-03-26  David Edelsohn  <edelsohn@gnu.org>
3356
3357         * config/rs6000/power4.md: Allow delay between dispatch and
3358         function units for simple instructions.  Correct store units.
3359         Allow branch to occupy as many dispatch slots as necessary.
3360
3361 2003-03-26  Jakub Jelinek  <jakub@redhat.com>
3362
3363         * config/ia64/ia64.c (ia64_expand_op_and_fetch): Fix comment.
3364         (ia64_expand_compare_and_swap): Use always DImode ar.ccv,
3365         zero extend old to it.
3366         * config/ia64/ia64.md (cmpxchg_acq_si): Remove mode from ccv
3367         operand.
3368
3369 2003-03-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
3370
3371         PR target/7784
3372         * reload.c (find_reloads_address): Handle
3373         (PLUS (PLUS (REG) (REG)) (CONST_INT)) form for
3374         all base registers.
3375
3376 2003-03-25  Marcelo Abreu  <mmabreu@inf.ufrgs.br>
3377
3378         PR other/10203
3379         * version.c: Reference the GCC web site in the URL.
3380
3381 2003-03-26  Alan Modra  <amodra@bigpond.net.au>
3382
3383         * c-incpath.c (add_standard_paths): Add both "translated" and
3384         non-translated header paths.
3385
3386 2003-03-25  Loren James Rittle  <ljrittle@acm.org>
3387
3388         * doc/install.texi (*-*-freebsd*): Update with known status.
3389
3390 2003-03-21  Jason Merrill  <jason@redhat.com>
3391
3392         PR optimization/10171
3393         * unroll.c (unroll_loop): Don't delete the jump at the end unless
3394         we also delete a jump at the beginning.
3395
3396 2003-03-25  Stephane Carrez  <stcarrez@nerim.fr>
3397
3398         * doc/contrib.texi (Contributors): Mention self as 68HC11/68HC12
3399         contributor.
3400
3401 Tue Mar 25 20:35:51 CET 2003  Jan Hubicka  <jh@suse.cz>
3402
3403         * i386.c (ix86_rtx_costs): For -fpic and x86-64 local symbolic
3404         constants are not expensive.
3405
3406 Mon Mar 24 20:03:03 CET 2003  Jan Hubicka  <jh@suse.cz>
3407
3408         PR opt/10056
3409         * cfglayout.c (fixup_reorder_chain):  Fix dealing with the conditional
3410         jump jumping to the next instruction.
3411         * cfgrtl.c (force_nonfallthru_and_redirect):  Likewise.
3412
3413 2003-03-25  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3414
3415         * doc/passes.texi (Passes): Properly document that we do not
3416         perform jump2 any longer; remove command-line option -dJ.
3417
3418 2003-03-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
3419
3420         PR optimization/8746
3421         * config/i386/i386.md (and promoting splitters): Disable HImode to
3422         SImode promoting when the sign bit matters and is not preserved, or
3423         when TARGET_FAST_PREFIX is true. Disable promoting when optimizing
3424         for size.
3425
3426 2003-03-24  Kazu Hirata  <kazu@cs.umass.edu>
3427
3428         * config/h8300/h8300.md (a peephole2): Extend to support loads
3429         in QImode and HImode.
3430
3431 2003-03-24  Stephane Carrez  <stcarrez@nerim.fr>
3432
3433         * config/m68hc11/t-m68hc11-gas (LIB1ASMFUNCS): Add _call_far and
3434         _return_far
3435         (MULTILIB_OPTIONS): Don't multilib on -mlong-calls.
3436         (MULTILIB_EXCEPTIONS): Likewise.
3437         * config/m68hc11/m68hc11.md ("call"): Support far calls for 68HC11
3438         by calling some board support routine.
3439         ("call_value"): Likewise.
3440         ("*return_void"): Likewise for return.
3441         ("*return_16bit"): Likewise.
3442         ("*return_32bit"): Likewise.
3443         * config/m68hc11/m68hc11.h (ASM_DECLARE_FUNCTION_NAME): Generate .far
3444         for 68HC11 too.
3445         (DWARF2_ADDR_SIZE): Use 4 so that addresses can
3446         * config/m68hc11/m68hc11.c (m68hc11_override_options): Accept
3447         -mlong-calls for 68HC11.
3448         * config/m68hc11/larith.asm (declare_near): New macro.
3449         (__premain, ___negsi2, ___one_cmplsi2, ___ashlsi3): Use it.
3450         (___ashrsi3, ___lshrsi3, ___lshrhi3, ___lshlhi3): Likewise.
3451         (___rotrhi3, ___rotlhi3, ___ashrhi3, ___ashrqi3): Likewise.
3452         (___lshlqi3, __divmodhi4, ___mulqi3, ___mulhi3): Likewise.
3453         (__mulhi32): Likewise.
3454         (ret): Update macro for 68HC11.
3455         (__far_trampoline): Implement for 68HC11.
3456         (__call_a16, __call_a32, __return_void, __return_16): New support
3457         routines for 68HC11 memory bank switching calling support.
3458         (__return_32): Likewise.
3459
3460 2003-03-24  Neil Booth  <neil@daikokuya.co.uk>
3461
3462         * toplev.c (independent_decode_option): Don't skip a 'Y' prefix.
3463
3464 2003-03-24  Janis Johnson  <janis187@us.ibm.com>
3465
3466         * doc/install.texi (Testing): Mention test result links from build
3467         status pages.
3468
3469 2003-03-24  Mark Mitchell  <mark@codesourcery.com>
3470
3471         * function.c (put_var_into_stack): Change bool parameter to int.
3472         (gen_mem_addressof): Likewise.
3473         * rtl.h (gen_mem_addressof): Likewise.
3474         * tree.h (put_var_into_stack): Likewise.
3475         * config/alpha/alpha.c (alpha_gp_save_rtx): Adjust call to
3476         gen_mem_addressof or put_var_into_stack.
3477         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
3478         * config/ia64/ia64.c (spill_tfmode_operand): Likewise.
3479
3480 2003-03-24  Kazu Hirata  <kazu@cs.umass.edu>
3481
3482         * config/h8300/h8300.md (a peephole2): New.
3483
3484 2003-03-24  Jakub Jelinek  <jakub@redhat.com>
3485
3486         * dojump.c (do_jump): Handle UNSAVE_EXPR specially.
3487
3488 2003-03-24  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
3489
3490         * doc/contrib.texi (Contributors): Update Janis Johnson.
3491
3492 2003-03-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
3493
3494         PR target/10072
3495         * combine.c (simplify_if_then_else): Check that the mode
3496         has MODE_INT class before applying the (OP Z (mult COND C2))
3497         transformation.
3498
3499 2003-03-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
3500
3501         PR optimization/9414
3502         * config/sparc/sparc.md (widening peepholes): Use
3503         widen_memory_access instead of change_address.
3504
3505 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
3506
3507         PR c++/7086
3508         * c-typeck.c (c_mark_addressable): Adjust calls to
3509         put_var_into_stack.
3510         * expr.c (expand_expr): Likewise.
3511         * function.c (put_var_into_stack): Add rescan parameter.  Do not
3512         call fixup_var_refs when rescan is false.
3513         (gen_mem_addressof): Likewise.
3514         (assign_parms): Adjust calls to put_var_into_stack.
3515         (setjmp_protect): Likewise.
3516         (setjmp_protect_args): Likewise.
3517         * rtl.h (gen_mem_addressof): Change prototype.
3518         * stmt.c (expand_decl): Adjust calls to put_var_into_stack.
3519         * tree.h (put_var_into_stack): Change prototype.
3520
3521 2003-03-23  Arpad Beszedes <beszedes@cc.u-szeged.hu>
3522
3523         PR middle-end/9967
3524         * builtins.c (expand_builtin_fputs): When optimizing for size,
3525         don't transform fputs into fwrite.
3526
3527 2003-03-23  Glen Nakamura <glen@imodulo.com>
3528
3529         PR c/8224
3530         * fold-const.c (extract_muldiv_1): Don't pass through type conversions
3531         when signedness changes for division or modulus.
3532
3533 2003-03-24  Alan Modra  <amodra@bigpond.net.au>
3534
3535         * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Remove unnecessary
3536         globalize_label.
3537
3538 2003-03-23  Roger Sayle  <roger@eyesopen.com>
3539
3540         PR c/10178
3541         * stmt.c (expand_end_case_type): Check for overflow in range when
3542         determining whether to use a bit-test implementation.
3543
3544 2003-03-23  Richard Henderson  <rth@redhat.com>
3545
3546         * cfgcleanup.c (try_optimize_cfg): Allow merging of tablejumps
3547         before flow2.
3548         * cfgrtl.c (try_redirect_by_replacing_jump): Similarly.
3549
3550 2003-03-23  Richard Henderson  <rth@redhat.com>
3551
3552         PR opt/10116
3553         * ifcvt.c (find_if_block): Disallow tablejump insns outgoing
3554         from then_bb or else_bb after flow2.
3555
3556 2003-03-23  Zack Weinberg  <zack@codesourcery.com>
3557
3558         * configure.in: Check whether it is necessary to link against
3559         libm to use ldexp.
3560         * configure: Regenerate.
3561         * Makefile.in: Add LDEXP_LIB substitution variable.
3562
3563 2003-03-23  Kazu Hirata  <kazu@cs.umass.edu>
3564
3565         * config/h8300/h8300.md: Fix comment typos.
3566
3567 2003-03-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3568
3569         * pa.c (output_cbranch): Fix typo in comment.
3570
3571 2003-03-22  Richard Henderson <rth@redhat.com>
3572
3573         * cfgcleanup.c (insns_match_p): Do not do EQUIV substitution
3574         after reload.
3575
3576 2003-03-22  DJ Delorie  <dj at redhat dot com>,
3577         Bruce Korb  <bkorb at gnu dot org>
3578
3579         * fixinc/inclhack.def (solaris_mutex_init_1): New; Fix
3580         buggy Solaris 2.6 mutex/cond initializers.
3581         (solaris_mutex_init): Rename to solaris_mutex_init_2.
3582         * fixinc/fixincl.x: Regenerate.
3583         * fixinc/tests/base/pthread.h: Update.
3584         * fixinc/fixincl.c(initialize): be explicit about the default case
3585         and indicate verbose level when being very, very verbose.
3586         * fixinc/check.tpl(VERBOSE): provide a means for passing the value in
3587
3588 2003-03-22  Andreas Jaeger  <aj@suse.de>
3589
3590         * config/i386/i386.c (ix86_init_machine_status): Return value.
3591
3592 2003-03-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3593
3594         * pa.c (output_cbranch, output_bb, output_bvb): Output nop for
3595         conditional branch to the following instruction.  Use next_real_insn
3596         instead of next_active_insn.
3597         (output_dbra, output_movb, jump_in_call_delay): Use next_real_insn
3598         instead of next_active_insn.
3599
3600 2003-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
3601
3602         * config/s390/s390.md ("movti", "*movdi_31", "*movdf_31"): Use 'o'
3603         instead of 'm' constraint in forced-split alternatives.
3604         ("*adddi3_31", "*subdi3_31"): Likewise.  Also, pass 0 instead of 1 as
3605         VALIDATE_ADDRESS parameter to operand_subword.
3606
3607 2003-03-22  Kazu Hirata  <kazu@cs.umass.edu>
3608
3609         * config/h8300/h8300.c (notice_update_cc): Correctly handle
3610         the case where the set destination is STRICT_LOW_PART.
3611
3612 2003-03-22  Svein E. Seldal  <Svein.Seldal@solidas.com>
3613
3614         * config/c4x/t-c4x (INSTALL_LIBGCC): Make gcc recognize a c33 as a
3615         c30 instead of a c40 processor.
3616
3617 2003-03-22  Alan Modra  <amodra@bigpond.net.au>
3618
3619         * combine.c (simplify_comparison <AND>): Use gen_int_mode.  Tidy.
3620
3621 2003-03-21  Zack Weinberg  <zack@codesourcery.com>
3622
3623         * c-common.c: Include intl.h.
3624         (shadow_warning): Rewrite to allow better diagnostic translations.
3625         * c-common.h: Update prototype of shadow_warning.  Declare sw_kind enum.
3626         * c-decl.c (warn_if_shadowing): Update calls to shadow_warning;
3627         use it throughout.
3628         * Makefile.in (c-common.o): Add intl.h.
3629
3630 2003-03-21  Nathanael Nerode  <neroden@gcc.gnu.org>
3631
3632         * config.gcc: Remove 'float_format'.
3633
3634         * fixproto: Define NULL and size_t in generated stdlib.h and
3635         unistd.h.  Kill unused required_stdlib_h, required_unistd_h.
3636         Rearrange file generation loop for readability.  Generate time.h,
3637         string.h if missing.
3638         * tsystem.h: Include <string.h>, <time.h> unconditionally.
3639         * config.gcc: Blow away POSIX defines.
3640
3641 2003-03-22  Stephane Carrez  <stcarrez@nerim.fr>
3642
3643         * config/m68hc11/m68hc11.md ("call_value"): Fix trap check.
3644
3645 2003-03-22  Stephane Carrez  <stcarrez@nerim.fr>
3646
3647         * config/m68hc11/m68hc11.h (ASM_DECLARE_FUNCTION_NAME): Fix typo in
3648         writing .interrupt command.
3649         * config/m68hc11/m68hc11.md ("call"): Look at the symbol to see
3650         if it's a far or near function.
3651         ("call_value"): Likewise.
3652         * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Add far and
3653         near attributes.
3654         (m68hc11_handle_fntype_attribute): Accept attributes on methods.
3655         (m68hc11_override_options): Ignore -mlong-calls for 68HC11.
3656         (m68hc11_initial_elimination_offset): Set current_function_far
3657         according to attributes.
3658         (expand_prologue): Likewise.
3659         (trap_handler_symbol): New global to keep track of trap handlers.
3660         (m68hc11_encode_section_info): Mark symbol as far if needed; set
3661         trap symbol.
3662         (m68hc11_is_far_symbol): New function.
3663         (m68hc11_is_trap_symbol): New function.
3664         * config/m68hc11/m68hc11-protos.h (m68hc11_is_far_symbol): Declare.
3665         (m68hc11_is_trap_symbol): Declare.
3666
3667 2003-03-21  Jan Hubicka  <jh@suse.cz>
3668
3669         * i386.c (ix86_compute_frame_layout): Recompute fast prologues
3670         only when amount of saved regs changed.
3671         (ix86_init_machine_status): Initialize use_fast_prologue_epilgoue_nregs.
3672         * i386.h (machine_function): New fields use_fast_prologue_epilgoue_nregs.
3673
3674 2003-03-21  Jan Hubicka  <jh@suse.cz>
3675
3676         PR inline-asm/7916
3677         * function.c (instantiate_virtual_regs_lossage): New function.
3678         (instantiate_virtual_regs_1): Use it.
3679         (instantiate_virtual_regs): Do not continue in substition when insn has
3680         been deleted.
3681
3682 2003-03-21  Kazu Hirata  <kazu@cs.umass.edu>
3683
3684         * combine.c (make_field_assignment): Fix a warning.
3685
3686 2003-03-21  Kazu Hirata  <kazu@cs.umass.edu>
3687
3688         * config/h8300/h8300.md (*insv_si_1_n_lshiftrt_16): New.
3689
3690 2003-03-21  Dale Johannesen  <dalej@apple.com>
3691
3692         * config/rs6000/rs6000.h (REG_ALLOC_ORDER):  Increase
3693         priority for R2 on Darwin.
3694         (HARD_REGNO_MODE_OK):  Don't accept R31 for DFmode.
3695
3696 2003-03-21  Kazu Hirata  <kazu@cs.umass.edu>
3697
3698         * combine.c (make_field_assignment): Remove unnecessary AND
3699         when storing into zero_extract.
3700
3701 2003-03-21  Zack Weinberg  <zack@codesourcery.com>
3702
3703         * aclocal.m4 (gcc_AC_EXAMINE_OBJECT, gcc_AC_C_FLOAT_FORMAT): Delete.
3704         * configure.in: Don't call gcc_AC_C_FLOAT_FORMAT.
3705         * defaults.h: Remove reference to HOST_FLOAT_WORDS_BIG_ENDIAN
3706         in comment.
3707
3708 2003-03-21  DJ Delorie  <dj@redhat.com>
3709
3710         * optabs.c (init_integral_libfuncs): Make sure we init at least up
3711         to "long long" size words.
3712
3713 2003-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
3714
3715         * config/s390/s390.h: Do not include fixdfdi.h on s390x.
3716         (TARGET_64BIT): Define as compile-time constant when IN_LIBGCC2.
3717         (MIN_UNITS_PER_WORD): Do not define when IN_LIBGCC2.
3718
3719 2003-03-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
3720
3721         PR doc-bug/9813
3722         * doc/extend.texi: Move misplaced paragraph about underscores in
3723         variables in macros.
3724
3725 2003-03-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
3726             Richard Henderson  <rth@redhat.com>
3727
3728         PR optimization/8366
3729         * config/sparc/sparc.h: (SYMBOLIC_CONST): New macro.
3730         (GO_IF_LEGITIMATE_ADDRESS): Use it. Reject the form
3731         PIC+SYMBOLIC_CONST in other modes than Pmode.
3732         (GO_IF_MODE_DEPENDENT_ADDRESS): Use it. Mark
3733         the form PIC+SYMBOLIC_CONST as mode dependent.
3734
3735 2003-03-21  DJ Delorie  <dj@redhat.com>
3736
3737         * config/stormy16/stormy16.c (xstormy16_expand_arith): Make
3738         sure we always emit at least one insn.
3739
3740 2003-03-21  Christopher Faylor  <cgf@redhat.com>
3741
3742         * config.gcc (i[34567]86-*-cygwin*): Use new common makefile
3743         stub t-cygming. Use common target header cygming.h. Add extra
3744         c_target_obj and cxx_target_obj file. Default cygwin to posix
3745         threading. Enforce i386 as float format.
3746         (i[34567]86-*-mingw*): Use new common makefile stub t-cygming.
3747         Remove cygwin.h as target header. Use common target header
3748         cygming.h  Enforce i386 as float format. Correct typo.
3749         * config/i386/cygming.h: New file, containing definitions
3750         common to mingw32 and cygwin.
3751         * config/i386/cygwin.h: Remove definitions common to cygwin and
3752         mingw.  Simplify special spec logic.  Define "wrappers" around
3753         certain include path defines to accommodate -mno-cygwin.
3754         Remove some #if 0'ed code.
3755         (STANDARD_INCLUDE_DIR) Always define when not cross-compiling.
3756         (LINK_SPEC): Don't use cyg search prefix when -mno-cygwin.
3757         (GCC_DRIVER_HOST_INITIALIZATION): Define as call to mingw_scan.
3758         * config/i386/mingw32.h: Remove definitions common to cygwin and
3759         mingw.
3760         (EXTRA_OS_CPP_BUILTINS): Adjust.
3761         (TARGET_VERSION): Define.
3762         * config/i386/crtdll.h (EXTRA_OS_CPP_BUILTINS): Override
3763         mingw32.h definitions.
3764         (LIBGCC_SPEC): Add libmingwex.a as in mingw32.h.
3765         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Define as cygwin1.o.
3766         Add compilation rules for cygwin1.o cygwin2.o.
3767         * config/i386/cygwin1.c: New file.
3768         * config/i386/cygwin2.c: New file.
3769         * config/i386/t-cygming: New makefile stub.
3770
3771 2003-03-20  Richard Henderson  <rth@redhat.com>
3772
3773         * fold-const.c (extract_muldiv_1): Revert changing order of
3774         operands in case MULT_EXPR of 2003-02-16 patch.
3775
3776 2003-03-20  Daniel Berlin  <dberlin@dberlin.org>
3777         Merge changes from new-regalloc-branch
3778
3779         From Michael Matz  <matz@suse.de>
3780         * df.c (df_ref_record_1): Move init of loc to safe point.
3781         Only recurse on interesting things in parallels.
3782         Handle CLASS_CANNOT_CHANGE_MODE smarter.
3783         (df_uses_record): Ditto.
3784
3785         * df.h (DF_REF_MEM_OK): New enum member, used to mark ref's which
3786         it's already okay to use memory operands in (IE doesn't require
3787         adding another insn or anything).
3788
3789 2003-03-20  Richard Henderson  <rth@redhat.com>
3790
3791         PR middle-end/6348
3792         * explow.c (allocate_dynamic_stack_space): Handle STACK_SIZE_MODE
3793         different from word_mode.
3794
3795 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3796
3797         * config/h8300/h8300.md (*insv_si_1_n_lshiftrt): Restrict the
3798         source operand to those that can be extracted with bld.
3799
3800 2003-03-20  Richard Earnshaw  <rearnsha@arm.com>
3801
3802         PR 10066
3803         * arm.md (UNSPEC_PIC_BASE): New constant.
3804         (pic_add_dot_plus_four): Wrap with unspec.
3805         (pic_add_dot_plus_eight): Likewise.
3806
3807 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3808
3809         * config/h8300/h8300.md (*insv_si_1_n): New.
3810         (*insv_si_1_n_lshiftrt): Likewise.
3811
3812 2003-03-20  Roger Sayle  <roger@eyesopen.com>
3813
3814         * fold-const.c (fold_mathfn_compare): New function to simplify
3815         comparisons against built-in math functions.  Fold comparisons
3816         of sqrt against constants.
3817         (fold): Call fold_mathfn_compare when appropriate.
3818
3819 2003-03-20 Richard Earnshaw  <rearnsha@arm.com>
3820
3821         * ifcvt.c (find_if_case_1): If we add a new bb, update the dominance
3822         information.
3823
3824 2003-03-20  Per Bothner  <pbothner@apple.com>
3825
3826         Various cleanups to help compile server.
3827
3828         * cppinit.c (cpp_create_reader):  Take extra hash_table* argument,
3829         and pass that to _cpp_init_hashtable.
3830         (cpp_read_main_file):  Drop hash_table* argument; don't call
3831         _cpp_init_hashtable.
3832         * cpplib.h:  Update declarations to match.
3833         * c-opts.c (c_common_init_options):  Pass ident_hash to
3834         cpp_create_reader.
3835         (c_common_post_options):  Don't pass ident_hash to cpp_read_main_file.
3836         * fix-header.c (read_scan_file):  Likewise pass NULL table to
3837         cpp_create_reader rather than cpp_read_main_file.
3838
3839         * cppfiles.c (cpp_rename_file):  Generalized and renamed
3840         to cpp_change_file.
3841         * cpplib.h:  Update declaration to match.
3842         * c-opts.c (push_command_line_line, finish_options):  Change
3843         cpp_rename_file calls to cpp_change_file.
3844
3845         * line-map.c (add_line_map):  Allow leaving the outermost file.
3846         Allowing entering an outermost-file after the initial time.
3847
3848         * toplev.c (pop_srcloc):  Allow popping from initial file.
3849
3850 2003-03-20  Kazu Hirata  <kazu at cs dot umass dot edu>
3851
3852         * fold-const.c (fold): Fold A - (A & B) into ~B & A.
3853
3854 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3855
3856         * config/h8300/h8300.md (a peephole2): New.
3857
3858 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
3859
3860         * config/h8300/h8300.md (*addsi3_and_r_1): New.
3861         (*addsi3_and_not_r_1): Likewise.
3862
3863 2003-03-19  Loren James Rittle  <ljrittle@acm.org>
3864
3865         * Makefile.in (STRICT2_WARN): Add @WERROR@.
3866         (GCC_WARN_CFLAGS): Remove $(WERROR).
3867         (fixinc.sh-warn): New.
3868         * ada/Make-lang.in (ada-warn): Add $(WERROR).
3869         * cp/Make-lang.in (cp-warn): Add $(WERROR).
3870         * f/Make-lang.in (f-warn): Add $(WERROR).
3871         * java/Make-lang.in (java-warn): Add $(WERROR).
3872         * treelang/Make-lang.in (treelang-warn): Add $(WERROR).
3873
3874 2003-03-19  Nathanael Nerode  <neroden@gcc.gnu.org>
3875
3876         * c-common.h (c_dump_tree), c-dump.c (c_dump_tree),
3877         langhooks-def.h (lhd_tree_dump_dump_tree),
3878         langhooks.c (lhd_tree_dump_dump_tree), langhooks.h (*dump_tree):
3879         Change return type from 'int' to 'bool'.  Replace 0 and 1 with
3880         true and false in return statements.
3881
3882 2003-03-19  Kevin Buettner  <kevinb@redhat.com>
3883
3884         * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE): Define.
3885         (DWARF_COMPILE_UNIT_HEADER_SIZE): Take into account
3886         DWARF_INITIAL_LENGTH_SIZE.
3887         (output_compilation_unit_header, output_pubnames, output_aranges)
3888         (output_line_info): Output 0xffffffff escape value for 64-bit
3889         DWARF extension.
3890         * config/mips/iris6.h (DWARF_INITIAL_LENGTH_SIZE): Define.
3891
3892 2003-03-19  Ulrich Weigand  <uweigand@de.ibm.com>
3893
3894         * config/s390/s390.c (s390_preferred_reload_class): Do not
3895         force constants to the pool unless necessary.
3896         (s390_decompose_address): Prefer to use pointer as base,
3897         not index register.
3898         * config/s390/s390.md ("*tsthiCCT_only"): Remove '?' from
3899         Q alternative.
3900         ("*movdi_64", "*movsi", "movhi", "movqi_64", "movqi",
3901         "*movdf_64", "*movsf"): Add '?' to Q->Q alternatives.
3902         ("*extractqi", "*extracthi", "*zero_extendhisi2_31",
3903         "*zero_extendqisi2_31", "*zero_extendqihi2_31",
3904         "*adddi3_31", "*subdi3_31"): Do not set "type" attribute.
3905
3906 2003-03-19  Jan Hubicka  <jh@suse.cz>
3907
3908         * i386.h (machine_function): New fields use_fast_prologue_epilogue.
3909         * i386.c (use_fast_prologue_epilogue): Remove.
3910         (ix86_frame): New field save_regs-using_mov;
3911         (ix86_compute_frame_layout):  Decide on fast prologues;
3912         allocate saved registers in red zone.
3913         (ix86_expand_epilogue, ix86_expand_prolgoues): Obey new parameters.
3914
3915 2003-03-19  Nick Clifton  <nickc@redhat.com>
3916
3917         * config/mcore/mcore.h (CPP_SPEC): Remove trailing semi-colon.
3918
3919 2003-03-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3920
3921         PR 10062
3922         * config/pa/pa-hpux.h (TARGET_HPUX_UNWIND_LIBRARY): Redefine.
3923         * pa-protos.h (output_lbranch): New prototype.
3924         * pa.c (compute_frame_size): Change size of the frame marker on the
3925         64-bit ports to 48 bytes.
3926         (pa_output_function_prologue): Document why SAVE_SP is set.
3927         (hppa_expand_prologue): Save previous stack pointer into frame marker
3928         on targets which use the hpux unwind library.
3929         (output_cbranch): Use output_lbranch.
3930         (output_lbranch): New function to output long unconditional branches.
3931         * pa.h (TARGET_HPUX_UNWIND_LIBRARY): Define.
3932         (STACK_POINTER_OFFSET): Update offset for 48-byte frame marker on
3933         64-bit ports.
3934         * pa.md (jump): Use output_lbranch.
3935         (allocate_stack): New expander for dynamic stack allocation.
3936
3937 2003-03-19  Alan Modra  <amodra@bigpond.net.au>
3938
3939         * config/rs6000/rs6000.c (rs6000_stack_info): Only require a frame
3940         when debugging on XCOFF targets.  Delete "abi" temp.
3941
3942         PR target/10073
3943         * combine.c (force_to_mode <NOT>): Use gen_int_mode.
3944
3945 2003-03-18  Jakub Jelinek  <jakub@redhat.com>
3946
3947         * config/s390/s390.c (s390_output_dwarf_dtprel): New.
3948         * config/s390/s390-protos.h (s390_output_dwarf_dtprel): New proto.
3949         * config/s390/s390.h (ASM_OUTPUT_DWARF_DTPREL): Define.
3950
3951         * config/ia64/ia64.c (ia64_output_dwarf_dtprel): New.
3952         * config/ia64/ia64-protos.h (ia64_output_dwarf_dtprel): New proto.
3953         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_DTPREL): Define.
3954
3955 2003-03-18  Geoffrey Keating  <geoffk@apple.com>
3956
3957         * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't clone
3958         the result of machopic_function_base_name.
3959         * config/darwin.c (machopic_function_base_name): Use a gc-allocated
3960         string rather than a static array.
3961
3962         * Makefile.in (emit-rtl.o): Add gt-emit-rtl.h to dependencies.
3963
3964         * gengtype.c: Include rtl.h.
3965         (enum rtx_code): Don't define.
3966         (rtx_format): Make declaration match rtl.h.
3967         (rtx_next_new): Rename from rtx_next to avoid conflict.  Change all
3968         users.
3969         (adjust_field_rtx_def): Describe strings in NOTE_LINE_NUMBER notes.
3970         * Makefile.in (gengtype.o): Update dependencies.
3971
3972 2003-03-18  Andreas Schwab  <schwab@suse.de>
3973
3974         * config/m68k/m68k.md (iordi3): Fix setting low half to -1.  From
3975         martin@blom.org.
3976
3977 2003-03-18  Geoffrey Keating  <geoffk@apple.com>
3978
3979         * function.c (next_block_index): Mark with GTY.
3980
3981         * config/rs6000/rs6000.md (macho_correct_pic): Correct pattern.
3982
3983 2003-03-18  Richard Henderson  <rth@redhat.com>
3984
3985         * config/ia64/ia64.md (UNSPECV_SETJMP_RECEIVER): New.
3986         (builtin_setjmp_receiver): Delay call to ia64_reload_gp
3987         until after reload.
3988
3989 2003-03-18  Richard Henderson  <rth@redhat.com>
3990
3991         * builtins.c (expand_builtin_unop): New target_mode operand;
3992         use it to convert the result to the correct mode.
3993         (expand_builtin): Update all callers.
3994
3995 2003-03-18  Ulrich Weigand  <uweigand@de.ibm.com>
3996
3997         * config/s390/s390.md ("movti", "movhi", "movqi"): Add "type" attribute.
3998
3999 2003-03-18  Jan Hubicka  <jh@suse.cz>
4000
4001         * i386.md:  Fix previous commit that mistakely applied the patch
4002         twice.
4003
4004         * alias.c (rtx_equal_for_memref_p): Assume that X and Y has been
4005         canonicalized.
4006         (memrefs_conflict_p): Likewise.
4007         (addr_side_effect_eval): Canonicalize the constructed address.
4008
4009 2003-03-18  Jan Hubicka  <jh@suse.cz>
4010
4011         * i386.md (cvtts?2si peep2): New.
4012
4013 2003-03-18  Kazu Hirata  <kazu@cs.umass.edu>
4014
4015         * config/h8300/h8300.md (*iorsi3_two_qi_zext): New.
4016
4017 2003-03-18  Andreas Schwab  <schwab@suse.de>
4018
4019         * dwarf2out.c (output_file_names): Cast size_t to unsigned long
4020         for format.
4021
4022 2003-03-17  Jason Merrill  <jason@redhat.com>
4023
4024         PR c++/10091
4025         * expr.c (expand_expr) [ADDR_EXPR]: Disallow taking the address of
4026         an unaligned member of TREE_ADDRESSABLE type.
4027
4028 2003-03-18  Alan Modra  <amodra@bigpond.net.au>
4029
4030         * config/rs6000/linux64.h (MASK_PROFILE_KERNEL): Define.
4031         (TARGET_PROFILE_KERNEL): Define.
4032         (SUBTARGET_SWITCHES): Handle -mprofile-kernel.
4033         (PROFILE_BEFORE_PROLOGUE): Don't define.
4034         (PROFILE_KERNEL): Remove hacks.
4035         * config/rs6000/rs6000.c (TARGET_PROFILE_KERNEL): Define default.
4036         (rs6000_stack_info): No need to save lr if just for profiling when
4037         TARGET_PROFILE_KERNEL.
4038         (output_profile_hook): Output nothing when TARGET_PROFILE_KERNEL.
4039         (output_function_profiler): Localize label generation.  Emit code
4040         for kernel profiling.
4041
4042 2003-03-17  Kazu Hirata  <kazu@cs.umass.edu>
4043
4044         * config/h8300/h8300-protos.h: Add a prototype for
4045         byte_accesses_mergeable_p.
4046         * config/h8300/h8300.c (byte_accesses_mergeable_p): New.
4047         * config/h8300/h8300.md (*iorhi3_two_qi_mem): Likewise.
4048         (a splitter): Likewise.
4049         (*iorsi3_ashift_16_ashift_24): Likewise.
4050         (*iorsi3_ashift_16_ashift_24_mem): Likewise.
4051
4052 2003-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4053
4054         * dwarf2asm.h: Delete obsolete comment.
4055         (dw2_asm_output_data, dw2_asm_output_delta, dw2_asm_output_offset,
4056         dw2_asm_output_pcrel, dw2_asm_output_addr,
4057         dw2_asm_output_addr_rtx, dw2_asm_output_encoded_addr_rtx,