OSDN Git Service

* config/rs6000/rs6000.c (rs6000_hash_constant): Skip '0' fields.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2003-04-12  David Edelsohn  <edelsohn@gnu.org>
2
3         * config/rs6000/rs6000.c (rs6000_hash_constant): Skip '0' fields.
4
5 2003-04-12  Alexandre Oliva  <aoliva@redhat.com>
6
7         * mklibgcc.in (libgcc-stage-start): For every multilib  directory
8         containing a libgcc.a, move lib* to the corresponding stage dir.
9
10         * Makefile.in (stage1-start, stage2-start, stage3-start,
11         stage4-start): Move $(SPECS) to specs in stage dir.
12         (unstage1 unstage2 unstage3 unstage4): Move specs in stage dir
13         back as $(SPECS).
14
15         * mklibgcc.in (libgcc-stage-start): Move into the stage directory
16         object files from the non-libgcc/ multilib directories as well.
17
18 2003-04-11  Geoffrey Keating  <geoffk@apple.com>
19
20         * profile.c (read_counts_file): Initialise 'checksum'.
21
22         * emit-rtl.c (gen_rtx): Really correct typo.
23
24         PR c++/9393
25         * doc/invoke.texi (Debugging Options): Document -frandom-seed.
26         * configure.in: Check for gettimeofday.
27         * tree.c (flag_random_seed): Define.
28         (default_flag_random_seed): New.
29         (append_random_chars): Use flag_random_seed rather than trying
30         to acquire randomness here.
31         * tree.h (default_flag_random_seed): Declare.
32         * toplev.c (display_help): Add -frandom-seed and -fstack-limit-*
33         descriptions.
34         (decode_f_option): Handle -frandom-seed.
35         (print_switch_values): Call default_flag_random_seed.
36         * flags.h (flag_random_seed): Declare.
37         * configure: Regenerate.
38         * config.in: Regenerate.
39         * config/alpha/t-crtfm: Use -frandom-seed.
40         
41         * doc/extend.texi (Empty Structures): New.
42
43         * c-pch.c: Include flags.h.  Add comments to routines.
44         (struct c_pch_validity): New.
45         (get_ident): Update PCH file version number.
46         (pch_init): Output current debugging type.
47         (c_common_valid_pch): Check debugging type.
48         * Makefile.in (c-pch.o): Update dependencies.
49         * flags.h (debug_type_names): Declare.
50         * toplev.c (debug_type_names): Move out of decode_g_option.
51
52 2003-04-11  Eric Christopher  <echristo@redhat.com>
53
54         * emit-rtl.c (gen_rtx): Fix typos.
55
56 2003-04-11  Richard Henderson  <rth@redhat.com>
57
58         * emit-rtl.c (gen_rtx): Zero '0' fields.
59
60 2003-04-11  Richard Henderson  <rth@redhat.com>
61
62         PR c++/10202
63         * expr.c (expand_expr): Use COMPLETE_OR_UNBOUND_ARRAY_TYPE_P
64         not COMPLETE_TYPE_P for re-invoking layout_decl.
65
66 2003-04-11  Simon Law  <sfllaw@engmail.uwaterloo.ca>
67
68         * doc/bugreport.texi: Fix paragraph breaking between sections
69         in preparation for TeXinfo's paragraph indentation fixes.
70         * doc/extend.texi: Ditto.
71         * doc/invoke.texi: Ditto.
72         * doc/objc.texi: Ditto.
73         * doc/gcov.texi: Wrap 'gcov' in @command{}.
74         * doc/invoke.texi (Darwin Options): Add a preamble.
75
76 2003-04-11  Richard Henderson  <rth@redhat.com>
77
78         * config/i386/i386.c (tls_model_chars): Remove.
79         (ix86_encode_section_info, ix86_strip_name_encoding): Remove.
80         (local_symbolic_operand): Use SYMBOL_REF_LOCAL_P.
81         (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL.
82         (tls_symbolic_operand_1): Likewise.
83         (legitimate_pic_address_disp_p): Use SYMBOL_REF_LOCAL_P.
84         * config/i386/i386.h (TARGET_ENCODE_SECTION_INFO): Remove.
85         (TARGET_STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Remove.
86         * config/i386/winnt.c (i386_pe_encode_section_info): Replace
87         bits "copied from i386.h" with default_encode_section_info.
88
89 2003-04-11  Richard Henderson  <rth@redhat.com>
90
91         * rtl.def (SYMBOL_REF): Add two 0 fields.
92         * gengtype.c (adjust_field_rtx_def): Handle them.
93         * print-rtl.c (print_rtx): Print them.
94         * rtl.h (SYMBOL_REF_DECL, SYMBOL_REF_FLAGS): New.
95         (SYMBOL_FLAG_FUNCTION, SYMBOL_REF_FUNCTION_P): New.
96         (SYMBOL_FLAG_LOCAL, SYMBOL_REF_LOCAL_P): New.
97         (SYMBOL_FLAG_SMALL, SYMBOL_REF_SMALL_P): New.
98         (SYMBOL_FLAG_TLS_SHIFT, SYMBOL_REF_TLS_MODEL): New.
99         (SYMBOL_FLAG_EXTERNAL, SYMBOL_REF_EXTERNAL_P): New.
100         (SYMBOL_FLAG_MACH_DEP): New.
101         * optabs.c (init_one_libfunc): Zap fake SYMBOL_REF_DECL.
102         * varasm.c (make_decl_rtl): Set SYMBOL_REF_DECL.
103         (assemble_static_space): Set SYMBOL_REF_FLAGS.
104         (assemble_trampoline_template): Likewise.
105         (output_constant_def, force_const_mem): Likewise.
106         (default_encode_section_info): New.
107         * output.h: Declare it.
108         * target-def.h (TARGET_ENCODE_SECTION_INFO): Use it.
109
110 2003-04-11  Richard Henderson  <rth@redhat.com>
111
112         * libfuncs.h (LTI_setbits, LTI_gcov_flush, LTI_gcov_init): New.
113         (setbits_libfunc, gcov_flush_libfunc, gcov_init_libfunc): New.
114         * optabs.c (init_optabs): Initialize them.
115         (init_libfuncs): Use init_one_libfunc.
116         * calls.c (expand_call): Use gcov_flush_libfunc.
117         * expr.c (store_constructor): Use setbits_libfunc.
118         * function.c (expand_main_function): Use init_one_libfunc.
119         * profile.c (create_profiler): Use gcov_init_libfunc and DECL_RTL.
120
121 2003-04-11  Mark Mitchell  <mark@codesourcery.com>
122
123         * doc/c-tree.texi (Functions): Remove DECL_REAL_CONTEXT
124         documentation; add DECL_FRIEND_CONTEXT.
125
126 2003-04-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
127
128         * doc/install.texi (hppa): Update links for HP-UX patches.  Revise
129         notes on linker selection and configuration for 64-bit HP-UX port.
130         * doc/invoke.texi (hppa): Remove hppa text from description for
131         -ffunction-sections and -fdata-sections.  Document -static, -nolibdld
132         and -threads options.
133
134         * pa-hpux10.h (LIB_SPEC): Add link options to resolve dependency of
135         libc.a on libdld.sl when -static is specified and -nolibdld is not
136         specified.
137         * pa64-hpux.h (LIB_SPEC): Likewise.
138         * pa-hpux11.h (LIB_SPEC): Likewise.
139         (LINK_SPEC): Add __gcc_plt_call as an undefined symbol when -shared
140         is not specified.
141
142 2003-04-11  Zack Weinberg  <zack@codesourcery.com>
143
144         * config/darwin-c.c (darwin_pragma_unused): Use lookup_name,
145         not IDENTIFIER_LOCAL_VALUE.
146
147 2003-04-11  Richard Henderson  <rth@redhat.com>
148
149         PR c/10201
150         * expr.c (expand_expr): Move DECL_RTL frobbing ...
151         * stor-layout.c (layout_decl): ... here.
152
153 2003-04-11  James A. Morrison <ja2morri@uwaterloo.ca>
154
155         * doc/invoke.texi: Eliminate extra white-space caused by
156         @gccoptlist{ on its own line.
157         * doc/invoke.texi: Ensured there are two spaces between each option.
158         * doc/invoke.texi: Re-wrapped option lines that were too wide.
159         Added @gol to options that didn't have them.
160
161 2003-04-11  Nathan Sidwell  <nathan@codesourcery.com>
162
163         * Makefile.in (loop-init.o): Do not depend on gcov-io.h,
164         gcov-iov.h.
165
166         Simplify interface to gcov reading and writing.
167         * gcov-io.h (gcov_file, gcov_position, gcov_length, gcov_buffer,
168         gcov_alloc, gcov_modified, gcov_errored): Move into ...
169         (struct gcov_var gcov_var): ... this static structure.
170         (gcov_write_unsigned, gcov_write_counter, gcov_write_string):
171         Return void.
172         (gcov_read_unsigned, gcov_read_couter, gcov_read_string): Return
173         read object.
174         (gcov_read_bytes, gcov_write_bytes): Set error flag on error.
175         (gcov_reserve_length): Remove.
176         (gcov_write_tag): New.
177         (gcov_write_length): Adjust.
178         (gcov_read_summary, gcov_write_summary): Adjust.
179         (gcov_eof, gcov_ok): Rename to ...
180         (gcov_is_eof, gcov_is_error): ... here. Return error code.
181         (gcov_save_position, gcov_resync): Rename to ...
182         (gcov_position, gcov_seek): ... here.
183         (gcov_skip, gcov_skip_string): Remove.
184         (gcov_error): Remove.
185         (gcov_open, gcov_close): Adjust.
186         * gcov.c (find_source): Take const char *, copy it on allocation.
187         (read_graph_file): Adjust.
188         (read_count_file): Adjust.
189         * libgcov.c (gcov_exit): Adjust.
190         * gcov-dump.c (tag_function, tag_blocks, tag_arcs, tag_lines,
191         tag_arc_counts, tag_summary): Return void. Adjust.
192         (struct tag_format): Adjust proc member.
193         (dump_file): Adjust gcov calls.
194
195 2003-04-11  Alexandre Oliva  <aoliva@redhat.com>
196
197         * Makefile.in (fixinc.sh): Pass BUILD_LIBERTY as LIBERTY to
198         mkfixinc.sh.
199         * fixinc/mkfixinc.sh (defs): Add LIBERTY.
200         * configure.in (STMP_FIXINC, STMP_FIXPROTO): Don't disable on
201         build != host sysrooted builds.
202         * configure.in (SYSTEM_HEADER_DIR): Make sure it contains
203         TARGET_SYSTEM_ROOT even on sysrooted natives.
204         * configure: Rebuilt.
205
206 2003-04-10  Zack Weinberg  <zack@codesourcery.com>
207
208         * c-decl.c (struct binding_level): Add shadowed_tags and
209         function_body; remove this_block, tag_transparent, and
210         subblocks_tag_transparent; update comments.
211         (clear_binding_level, lookup_tag_reverse): Kill.
212         (make_binding_level): Use ggc_alloc_cleared or memset.
213         (lookup_tag): Remove struct binding_level* parameter.  All
214         callers changed. Just look at IDENTIFIER_TAG_VALUE, and
215         current_binding_level->tags if asked for thislevel_only or if
216         we might have to diagnose "struct foo; union foo;"
217         (pushlevel): Ignore argument.  Do not push another binding
218         level on the transition from the parameters to the top level
219         of the function body; just tweak the flags and proceed.
220         (poplevel): Overhaul.  Clear IDENTIFIER_TAG_VALUEs; on exiting
221         a function body, separate the parameter list from the
222         top-level local variables.
223         (set_block): Do nothing.
224         (pushtag): Set IDENTIFIER_TAG_VALUE and add an entry to
225         shadowed_tags if necessary.
226         (warn_if_shadowing): Nuke the special case for local shadowing
227         parameter.
228         (pushdecl): Do not create a shadow entry if we are replacing
229         an older decl in the same binding level.
230         (pushdecl_function_level): Tweak for new way of indicating
231         function scope.
232         (shadow_tag_warned): Use TYPE_NAME, not lookup_tag_reverse.
233         (start_function): Don't set subblocks_tag_transparent.
234         (finish_function): Fix up the binding_level stack for totally
235         empty functions.  Otherwise, don't call poplevel.
236
237         * c-common.c (shadow_warning): MANDATORY argument is no longer
238         necessary.  Always use plain warning.
239         * c-common.h: Update to match.
240
241         * cfglayout.c (scope_to_insns_initialize): Clear block when we
242         hit the FUNCTION_DECL.
243         * function.c: Do not create cyclic tree structure.
244
245 2003-04-10  Zack Weinberg  <zack@codesourcery.com>
246
247         * c-tree.h (struct lang_identifier): Replace global_value,
248         local_value members with symbol_value, tag_value.  Kill
249         implicit_decl and limbo_value.
250         (IDENTIFIER_GLOBAL_VALUE, IDENTIFIER_LOCAL_VALUE,
251         IDENTIFIER_LIMBO_VALUE, IDENTIFIER_IMPLICIT_DECL,
252         C_MISSING_PROTOTYPE_WARNED): Kill.
253         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE,
254         C_DECL_IMPLICIT, C_DECL_ISNT_PROTOTYPE): New.
255         (C_DECL_ANTICIPATED): Rename to C_DECL_INVISIBLE.
256         (implicit_decl_warning, lookup_name_current_level,
257         record_function_scope_shadow): Don't prototype.
258         (pushdecl_function_level): Prototype.
259
260         * c-decl.c (truly_local_externals): New variable.
261         (struct binding_level): Adjust commentary.
262         (get_function_binding_level, clear_limbo_values,
263         record_function_scope_shadow): Kill.
264         (lookup_name_current_level, implicit_decl_warning): Are now static.
265         (any_external_decl, record_external_decl): New static functions.
266         (clone_underlying type): Split out of pushdecl.
267         (c_print_identifier): Update to match changes to struct
268         lang_identifier.
269         (poplevel): Delete #if 0 block.  Make externals invisible
270         instead of clearing their IDENTIFIER_SYMBOL_VALUEs.  Don't
271         call clear_limbo_values.  Refer to IDENTIFIER_SYMBOL_VALUE not
272         IDENTIFIER_GLOBAL_VALUE or IDENTIFIER_LOCAL_VALUE.
273         (duplicate-decls): For real parm decl after a forward decl,
274         set TREE_ASM_WRITTEN here.  Allow void foo(...) followed by
275         foo(...) { } with only a warning.  Say whether a previous
276         declaration was implicit.
277         (warn_if_shadowing): Now handles all shadowing, not just
278         local-over-local.  Clarify comments.
279         (pushdecl): Rewritten.  There is no longer a distinction
280         between global and local symbol values; they're all
281         IDENTIFIER_SYMBOL_VALUE.  Call record_external_decl on all
282         DECL_EXTERNAL decls, and use any_external_decl to check
283         against previous externals.  Kill #if 0 blocks.  Don't
284         tolerate error_mark_node being NULL.
285         (pushdecl_top_level): Handle only those cases which
286         Objective C (the only user) needs.
287         (pushdecl_function_level): New function.
288         (implicitly_declare): Create ordinary decls with
289         C_DECL_IMPLICIT set.  Recycle old decls, however they got
290         created.
291         (lookup_name): It's always IDENTIFIER_SYMBOL_VALUE. Return 0
292         for C_DECL_INVISIBLE symbols.
293         (lookup_name_current_level): Likewise.  Use chain_member.
294         (c_make_fname_decl): Don't muck with DECL_CONTEXT.
295         Use pushdecl_function_level.
296         (builtin_function): Use C_DECL_INVISIBLE.
297         (start_function): Don't muck with IDENTIFIER_IMPLICIT_DECL.
298         Use C_DECL_ISNT_PROTOTYPE and C_DECL_IMPLICIT.
299         (store_parm_decls): It's IDENTIFIER_SYMBOL_VALUE now.
300         (identifier_global_value): Same.  Must scan
301         global_binding_level in extremis.
302
303         * c-typeck.c (undeclared_variable): New static function, split
304         from build_external_ref.
305         (build_external_ref): Use DECL_CONTEXT, not
306         IDENTIFIER_LOCAL_VALUE, to decide whether a local hides
307         an instance variable.  Restructure for clarity.
308         * objc/objc-act.c: Use identifier_global_value, not
309         IDENTIFIER_GLOBAL_VALUE.
310
311 2003-04-08  Jonathan Wakely  <redi@gcc.gnu.org>
312
313         * doc/extend.texi (Template Instantiation): Refer to ISO standard,
314         not Working Paper.
315         * doc/invoke.texi (C++ Dialect Options): Same.
316
317 2003-04-10  Zack Weinberg  <zack@codesourcery.com>
318
319         * tree.c (tree_operand_check_failed): New function.
320         * tree.h (TREE_OPERAND_CHECK, TREE_OPERAND_CHECK_CODE,
321         TREE_RTL_OPERAND_CHECK): New checking macros.
322         (TREE_OPERAND, SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL,
323         RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, WITH_CLEANUP_EXPR_RTL,
324         CONSTRUCTOR_ELTS, LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY,
325         EXIT_BLOCK_RETURN, LOOP_EXPR_BODY, EXPR_WFL_NODE,
326         EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME, TARGET_EXPR_SLOT,
327         TARGET_EXPR_INITIAL, TARGET_EXPR_CLEANUP): Use the new
328         checking macros.
329
330 Thu Apr 10 23:52:30 CEST 2003  Jan Hubicka  <jh@suse.cz>
331
332         PR inline-asm/8803
333         * function.c (instantate_virtual_regs):  Verify that all ASM statements
334         match after the virutal regs instantiation.
335
336 2003-04-10  Steve Ellcey  <sje@cup.hp.com>
337
338         * ia64-protos.h (addp4_optimize_ok): New.
339         * ia64.c (addp4_optimize_ok): New.
340         * ia64.md (*ptr_extend_plus_1): Use addp4_optimize_ok.
341         (*ptr_extend_plus_2): Ditto.
342
343 2003-04-10  Steve Ellcey  <sje@cup.hp.com>
344
345         * expr.c (expand_assignment): Extend offset_rtx with convert_to_mode
346         not with convert_memory_address.
347         (store_constructor): Ditto, and same for copy_size_rtx.
348         (expand_expr): Ditto.
349
350 2003-04-10  Douglas B Rupp  <rupp@gnat.com>
351
352         * config/i386/i386.c (ix86_ms_bitfield_layout_p): Fix formatting.
353
354 2003-04-10  Bob Wilson  <bob.wilson@acm.org>
355
356         * config/xtensa/lib2funcs.S (__xtensa_sync_caches): Flush data cache
357         even if it is configured to be write-through.
358
359 2003-04-10  Ulrich Weigand  <uweigand@de.ibm.com>
360
361         * config/s390/s390.c (larl_operand): Do not allow symbols
362         marked with '@'.
363         (s390_encode_section_info): Mark symbols with forced 1-byte
364         alignment with '@'.
365         (s390_strip_name_encoding): Strip '@'.
366         (legitimize_pic_address): Handle symbols that are not valid
367         LARL operands in 64-bit mode.
368
369 2003-04-10  Andrew Haley  <aph@redhat.com>
370
371         * tree-inline.c (inlinable_function_p): Disable inlining for
372         synchronized methods.
373
374 2003-04-09  Steven Bosscher  <steven@gcc.gnu.org>
375
376         * c-common.h (lang_statement_code_p): Remove declaration.
377         (statement_code_p): Ditto.
378         (c_common_stmt_codes): Define; list of c-common statement codes.
379         (statement_code_p): New extern declaration.
380         (STATEMENT_CODE_P): Define.
381         (INIT_STATEMENT_CODES): Define.
382         * c-common.c (statement_code_p): Kill the function, declare
383         as an array of bools instead.
384         (lang_statement_code_p): Remove.
385         (walk_stmt_tree): Use STATEMENT_CODE_P not statement_code_p.
386         (c_safe_from_p): Ditto.
387         * c-objc-common.c (c_objc_common_init): Use INIT_STATEMENT_CODES
388         to initialize the statement_code_p array.
389         * tree-inline.c (walk_tree): Use STATEMENT_CODE_P instead of
390         statement_code_p.
391         (copy_tree_r): Ditto.
392         * cp/cp-tree.h (cp_stmt_codes): Define; list of C++ specific
393         statement tree codes.
394         * cp/lex.c (cxx_init): Add missing print line break.  Use
395         INIT_STATEMENT_CODES to initialize the statement_code_p array.
396         * cp/parser.c (cp_parser_statement): Use STATEMENT_CODE_P
397         instead of statement_code_p.
398         * cp/pt.c (tsubst_expr): Ditto.
399         * cp/tree.c (verify_stmt_tree_r): Ditto.
400         (cp_statement_code_p): Remove.
401         (init_tree): Don't set lang_statement_code_p, it's gone.
402
403 2003-04-09  Dan Nicolaescu  <dann@ics.uci.edu>
404             Zack Weinberg  <zack@codesourcery.com>
405
406         * regrename.c (struct du_chain): Use a bitfield for reg_class.
407         * cse.c (struct qty_table_elem, struct table_elt, struct set):
408         Use bitfields for fields holding enum rtx_code or
409         enum machine_mode values.  Add comments explaining size choices.
410
411 2003-04-09  Alexandre Oliva  <aoliva@redhat.com>
412
413         * config/fp-bit.c (unpack_d): Handle pair of doubles with
414         different signs correctly.
415
416 2003-04-09  Vladimir Makarov  <vmakarov@redhat.com>
417
418         * sched-deps.c (reg_pending_barrier_mode): New enumeration.
419         (reg_pending_barrier): Make it of the enumeration type.
420         (sched_analyze_2): Define the barrier as MOVE_BARRIER or
421         TRUE_BARRIER.
422         (sched_analyze): Ditto.
423         (sched_analyze_insn): Ditto.  Use anti-dependencies for
424         MOVE_BARRIER and true-dependencies as TRUE_BARRIER.
425         (init_deps_global): Initialize the barrier as NO_BARRIER.
426
427 2003-04-09  Vladimir Makarov  <vmakarov@redhat.com>
428
429         * config/ia64/ia64.c (issue_nops_and_insn): Add new parameter.
430         Check that asm insn starts on a new cycle.  Add nops after asm
431         insn to end bundle.
432         (bundling): Move insn type evaluation from the loop.  Call
433         issue_nops_and_insn with the new parameter.  Ignore changing
434         position for nops after asm insn.
435
436 2003-04-09  Alexandre Oliva  <aoliva@redhat.com>
437
438         * optabs.c: Comment that gen_add2_insn and others may actually
439         return emitted insns, if the gen functions turn out to return
440         emitted insns.
441         * reload1.c (reload_cse_move2add): Cope with emitted insns from
442         gen_add2_insn.
443
444 2003-04-09  Richard Henderson  <rth@redhat.com>
445
446         * config/ia64/ia64.c (move_operand): Allow symbolic_operand,
447         but not tls_symbolic_operand.
448         (ia64_expand_load_address): Remove scratch operand.
449         (ia64_expand_tls_address): Split out from ia64_expand_move.
450         (ia64_expand_move): Split symbolics only after reload.
451         (ia64_emit_cond_move): New.
452         * config/ia64/ia64-protos.h: Update.
453         * config/ia64/ia64.md (movsi_symbolic, movdi_symbolic): Remove.
454         (symbolic splitter): Accept SImode operands too.
455         (cmove splitter): Use ia64_emit_cond_move.
456
457 2003-04-09  Nick Clifton  <nickc@redhat.com>
458
459         * doc/install.texi: Note that ARM toolchains need binutils 2.13 or
460         newer.
461         * config/arm/elf.h (SUBTARGET_ASM_FLOAT_SPEC): Pass -mfpu=softfpa
462         instead of -mno-fpu.
463         * config/arm/semi.h (ASM_SPEC): Likewise.
464         * config/arm/xscale-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise,
465         but only if -msoft-float is specified pass.  Otherwise pass
466         -mfpu=softvfp.
467
468 2003-04-09  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
469
470         * function.c (purge_addressof): Use free_INSN_LIST_node instead of
471         free_EXPR_LIST_node.
472
473 2003-04-08  Roger Sayle  <roger@eyesopen.com>
474
475         * fold-const.c (fold):  Use "fold" following build in more places.
476         Optimize sqrt(x)*sqrt(x) as x, pow(x,y)*pow(z,y) as pow(x*z,y),
477         pow(x,y)*pow(x,z) as pow(x,y+z) and x/pow(y,z) as x*pow(y,-z).
478
479 2003-04-08  Roger Sayle  <roger@eyesopen.com>
480
481         * builtins.c (fold_builtin):  Constant fold expressions as x*0.5
482         instead of x/2.0.  Optimize sqrt(pow(x,y)) as pow(x,y*0.5),
483         log(pow(x,y)) as y*log(x), pow(exp(x),y) as exp(x*y),
484         pow(sqrt(x),y) as pow(x,y*0.5) and pow(pow(x,y),z) as pow(x,y*z).
485         Delete function scope "fcode" variable to avoid shadowing.
486
487 2003-04-08  Kevin Buettner  <kevinb@redhat.com>
488
489         * dwarf2out.c (DWARF_ARANGES_HEADER_SIZE, DWARF_ARANGES_PAD_SIZE):
490         Take into account DWARF_INITIAL_LENGTH_SIZE.
491
492 2003-04-08  Hans-Peter Nilsson  <hp@axis.com>
493
494         * reorg.c (fill_slots_from_thread): When considering changing the
495         insn following a reg-to-reg copy insn to use the source reg of the
496         copy, bail out if there's overlap between the registers.
497
498 2003-04-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
499
500         * function.c (postponed_insns): New.
501         (purge_addressof_1): Postpone processing of insns if addressofs
502         are not put into stack.
503         (purge_addressof): Process postponed insns.
504
505 2003-04-08  J"orn Rennecke <joern.rennecke@superh.com>
506
507         * sh.h (NORMAL_MODE): If interrupt handler and TARGET_FMOVD,
508         this is FP_MODE_DOUBLE .
509         * sh.c (ra.h): #include.
510         (push_regs): Add second parameter.  Changed all callers.
511         If necessary, set fpscr before saving floating point registers.
512         (calc_live_regs): If interrupt handler and TARGET_FMOVD, always
513         do saves / restores with SZ == 1.
514         (sh_expand_prologue): If interrupt handler, don't use gen_toggle_sz.
515         (sh_expand_epilogue): Likewise.  For TARGET_FMOVD, if floating point
516         registers are being restored, restore FPSCR only after restoring them.
517
518 2003-04-08  Aldy Hernandez  <aldyh@redhat.com>
519
520         * config/rs6000/rs6000.c (rs6000_init_builtins): Set opaque types
521         regardless of architecture.
522         (spe_init_builtins): Change V2SI and V2SF types to opaque types.
523
524 2003-04-08  J"orn Rennecke <joern.rennecke@superh.com>
525
526         * sh.c (push_regs, calc_live_regs): Return int.  Take single
527         HARD_REG_SET * parameter.  Changed all callers.
528
529 Tue Apr  8 11:12:07 CEST 2003  Jan Hubicka  <jh@suse.cz>
530
531         * i386.c (legitimate_pic_address_disp_p): Do not accept PLUS in the
532         GOTOFF operand.
533         (legitimize_pic_address): Move plus outside the unspec.
534         * i386.c (legitimate_constant_p):  Check (CONST (PLUS (UNSPEC ...
535         for validity.
536
537 2003-04-08  Nathan Sidwell  <nathan@codesourcery.com>
538
539         * gcov-io.h (gcov_save_position): Remove __inline__ from
540         declaration.
541
542 2003-04-07  Matt Kraai  <kraai@alumni.cmu.edu>
543
544         * doc/install.texi: Use @command and @samp for single- and
545         multi-word commands respectively.
546         * doc/makefile.texi: Likewise.
547         * doc/sourcebuild.texi: Likewise.
548
549 2003-04-07  Christian Ehrhardt  <ehrhardt@mathematik.uni-ulm.de>
550             Richard Henderson  <rth@redhat.com>
551
552         PR c/9516
553         * expr.c (safe_from_p): Rearrange to avoid deep recursion in
554         favour of looping and tail recursion for TREE_LIST and binops.
555
556 2003-04-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
557
558         * loop.h (REGNO_FIRST_LUID, REGNO_LAST_LUID): Provide defaults
559         for insns without luid.
560
561 2003-04-07  Glen Nakamura  <glen@imodulo.com>
562
563         PR opt/8634
564         * explow.c (maybe_set_unchanging): Don't flag non-static const
565         aggregate type initializers with RTX_UNCHANGING_P.
566
567 2003-04-07  Richard Henderson  <rth@redhat.com>
568
569         PR opt/8634
570         * function.c (purge_addressof_1): Don't try arithmetics for
571         unchanging memories.
572
573 2003-04-07  Janis Johnson  <janis187@us.ibm.com>
574
575         * doc/sourcebuild.texi (Test Suites): Document testing support for
576         gcov and profile-directed optimizations; describe gcc.misc-tests.
577
578 Mon Apr  7 22:19:59 CEST 2003  Jan Hubicka  <jh@suse.cz>
579
580         PR target/10077
581         * i386.md (movsi_1, movsi_nointerunit_1):  Fix SSEMOV alternative.
582
583 2003-04-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
584
585         * doc/rtl.texi (Comparison operations): Update to
586         record the allowed comparison modes.
587
588 2003-04-07  Aldy Hernandez  <aldyh@redhat.com>
589
590         * config/rs6000/rs6000.c (rs6000_common_init_builtins): Rename all
591         V2SI_type_node to opaque_V2SI_type_node.  Rename all
592         V2SF_type_node to opaque_V2SF_type_node.
593         (rs6000_init_builtins): Define opaque_V2SI_type_node and
594         opaque_V2SF_type_node.
595         (is_ev64_opaque_type): The types opaque_V2SI_type_node and
596         opaque_V2SF_type_node are opaque types.
597
598 2003-04-07  J"orn Rennecke <joern.rennecke@superh.com>
599
600         * gcse.c (replace_store_insn): Use single_set.
601
602 2003-04-07  Nathan Sidwell  <nathan@codesourcery.com>
603
604         Change gcov file interface to single file at a time.
605         * gcov-io.h: Replace IN_LIBGCC1 with IN_LIBGCOV. Use IN_GCOV.
606         Convert to C89 prototypes.
607         (gcov_file, gcov_length, gcov_position, gcov_buffer, gcov_alloc,
608         gcov_error, gcov_modified): New static variables.
609         (gcov_open, gcov_close, gcov_read_bytes, gcov_write_bytes): New
610         functions.
611         (gcov_write_unsigned, gcov_write_counter, gcov_write_string,
612         gcov_read_unsigned, gcov_read_counter, gcov_read_string): Adjust.
613         (gcov_read_summary, gcov_write_summary): Adjust.
614         (gcov_save_position, gcov_reserve_length, gcov_write_length):
615         Adjust.
616         (gcov_resync, gcov_skip, gcov_skip_string): Adjust.
617         (da_file_open, da_file_close, da_file_eof, da_file_error): Remove.
618         (da_file_position, da_file_seek, da_file_write, da_file_read):
619         Remove.
620         (gcov_error, gcov_eof, gcov_ok, gcov_time): New functions.
621         * gcov.c (gcov_type): Don't typedef here.
622         (IN_GCOV): #define
623         (read_graph_file, read_count_file): Adjust.
624         * gcov-dump.c (gcov_type): Don't typedef here.
625         (IN_GCOV): #define.
626         (tag_function, tag_blocks, tag_arcs, tag_lines, tag_arc_counts):
627         Remove FILE parameter, adjust.
628         (struct tag_format): Adjust proc member.
629         (dump_file): Adjust.
630         * libgcov.c (IN_LIBGCOV): #define.
631         (gcov_exit): Adjust.
632         * loop-init.c: Don't #include gcov-io.h
633         * profile.c (struct counts_entry): New structure to hold counter
634         values.
635         (struct section_reference, struct da_index_entry): Remove.
636         (bbg_file, da_file): Remove.
637         (htab_counts_index_hash, htab_counts_index_eq,
638         htab_counts_index_del): Replace with ...
639         (htab_counts_entry_hash, htab_counts_entry_eq,
640         htab_counts_entry_del): ... these.
641         (cleanup_counts_index, index_counts_file): Remove.
642         (read_counts_file): New function.
643         (get_exec_counts): Adjust.
644         (compute_branch_probabilities): Don't free the exec counts here.
645         (branch_prob): Adjust.
646         (init_branch_prob): Adjust.
647         (end_branch_prob): Adjust.
648
649 2003-04-07  Aldy Hernandez  <aldyh@redhat.com>
650
651         * doc/invoke.texi (RS/6000 and PowerPC Options): Document
652         -mfloat-gprs.
653
654         * config/rs6000/rs6000.c: Delete rs6000_fprs.
655         Declare rs6000_float_gprs.
656         Declare rs6000_float_gprs_string.
657         (rs6000_parse_float_gprs_option): New.
658         (rs6000_override_options): Genericize rs6000_parse_* calls to use
659         rs6000_parse_yes_no_option.
660         Change check for cpu=8540, to use TARGET_E500.
661         (rs6000_parse_isel_option): Delete.
662         (rs6000_parse_spe_option): Delete.
663         (rs6000_parse_vrsave_option): Delete.
664
665         * config/rs6000/rs6000.h: Rename rs6000_fprs to rs6000_float_gprs.
666         Define rs6000_float_gprs_string.
667         (TARGET_OPTIONS): Add rs6000_float_gprs option.
668
669         * config/rs6000/eabi.h (TARGET_FPRS): Change to use rs6000_float_gprs.
670
671         * config/rs6000/eabispe.h: Set rs6000_float_gprs.
672
673 Mon Apr  7 14:36:24 CEST 2003  Jan Hubicka  <jh@suse.cz>
674
675         PR opt/10024
676         * cfglayout.c (cfg_layout_redirect_edge):
677         Redirect any branch edges unified with the fallthru one.
678         * cfgrtl.c (force_nonfallthru_and_redirect):  Do not special
679         case fallthru edges when called via cfglayout.c
680
681 2003-04-07  J"orn Rennecke <joern.rennecke@superh.com>
682
683         * c-typeck.c (output_init_element): Check for type == error_mark_node.
684
685 2003-04-07  Kazu Hirata  <kazu@cs.umass.edu>
686
687         * config/h8300/h8300.md (*zero_extendqisi2_h8300hs): Always
688         split.
689         (a splitter): Do zero-extension via HImode.
690
691 2003-04-07  James A. Morrison <ja2morri@uwaterloo.ca>
692
693         * doc/invoke.texi: Eliminate extra white-space caused by
694         @gccoptlist{ on its own line.
695         * doc/invoke.texi: Ensured there are two spaces between each option.
696         * doc/invoke.texi: Re-wrapped option lines that were too wide.
697         Added @gol to options that didn't have them.
698
699 2003-04-07  James A Morrison <ja2morri@student.math.uwaterloo.ca>
700
701         * doc/extend.texi (Darwin Pragmas): Fix spelling of Mac OS.
702
703 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
704
705         * tree.c (tree_size): For all 'c' and 'x' nodes, look directly
706         at the sizes of the relevant structures, rather than relying
707         on TREE_CODE_LENGTH.  Call lang_hooks.tree_size to get the
708         sizes of any such we don't know about.  Use
709         lang_hooks.identifier_size for IDENTIFIER_NODE.
710
711         (initializer_zerop): Use CONSTRUCTOR_ELTS.
712         * tree.def: Update commentary.  Make fourth element of
713         the definition for all 'c' and 'x' nodes zero.
714
715         * langhooks.h: New hook, tree_size / LANG_HOOKS_TREE_SIZE.
716         * langhooks-def.h: Update to match.
717         * langhooks.c: New default, lhd_tree_size.
718
719         * c-common.def (SRCLOC): Kill.
720         * c-pretty-print.c (pp_c_postfix_expression [case SRCLOC]):
721         Remove entirely - was already #if-ed out.
722
723
724 2003-04-06  Zack Weinberg  <zack@codesourcery.com>
725
726         * mklibgcc.in: Use a here document to avoid running afoul of
727         shells that generate control-A from "echo \1".
728
729 2003-04-06  Aldy Hernandez  <aldyh@redhat.com>
730
731         * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mspe
732         option.
733
734         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set
735         rs6000_spe.
736
737         * config/rs6000/eabi.h (TARGET_E500): Define.
738
739         * config/rs6000/rs6000.h (TARGET_E500): Define.
740         (TARGET_OPTIONS): Add spe= option.
741         Declare rs6000_spe and rs6000_spe_string extern.
742
743         * config/rs6000/rs6000.c (branch_positive_comparison_operator):
744         Change TARGET_SPE to TARGET_E500.
745         (ccr_bit): Change TARGET_SPE to TARGET_E500.  Check for
746         !TARGET_FPRS.
747         (print_operand): Same.
748         (rs6000_generate_compare): Same.
749         (output_cbranch): Same.
750         (rs6000_spe): Declare.
751         (rs6000_spe_string): Declare.
752         (rs6000_override_options): Call rs6000_parse_spe_option.
753         (rs6000_parse_spe_option): New.
754
755 2003-04-06  Steven Bosscher  <steven@gcc.gnu.org>
756
757         * hashtable.c (gcc_obstack_init): Delete this function
758         and everything related to it.
759         * hashtable.h: Remove prototype.
760         * bitmap.c (bitmap_element_allocate): Cleanup redundant
761         defines.  Cleanup some unnecessary whitespace.
762         * defaults.h (obstack_chunk_alloc): Redefine with
763         appropriate casts for libiberty obstacks.
764         (obstack_chunk_free): Ditto.
765         (OBSTACK_CHUNK_SIZE): Define, default to 0.
766         (gcc_obstack_init): Define as a call to _obstack_begin.
767         * tree.c (print_obstack_statistics): Delete this unused
768         function.
769         * tree.h (obstack): Don't forward-declare.
770         (print_obstack_statistics): Delete prototype.
771         (print_obstack_name): Ditto.
772         (gcc_obstack_init): Ditto.
773         * rtl.h (gcc_obstack_init): Ditto.
774         * java/jv-scan.c (gcc_obstack_init): Delete this
775         function, its prototype and related defines.
776         * java/jvgenmain.c (gcc_obstack_init): Delete this
777         function, and related defines.
778         * java/parse-scan.y (obstack_chunk_alloc): Don't define.
779         (obstack_chunk_free): Ditto
780
781 2003-04-06  Geoffrey Keating  <geoffk@apple.com>
782
783         * dbxout.c (dbxout_handle_pch): Move prototype out from
784         #if defined DBX_DEBUGGING_INFO.
785
786 2003-04-05  Nathan Sidwell  <nathan@codesourcery.com>
787
788         * gcov.c (struct arc_info): Replace local_span with cycle.
789         (struct block_info): Replace u.span with u.cycle. Add is_call_return.
790         (solve_flow_graph): Set is_call_return.
791         (add_line_counts): Adjust. In block mode, blocks attach to last line.
792         (accumulate_line_counts): Find graph cycles, not spanning tree.
793         (output_branch_count): Adjust.
794         (output_lines): Adjust.
795         * doc/gcov.texi: Update.
796
797 2003-04-06  Kazu Hirata  <kazu@cs.umass.edu>
798
799         * config/h8300/h8300.md (*zero_extendqisi2_h8300hs): Change
800         the second alternative to "#".
801
802 2003-04-05  Kazu Hirata  <kazu@cs.umass.edu>
803
804         * config/h8300/h8300.c (single_one_operand): Use GET_MODE_MASK.
805         (single_zero_operand): Likewise.
806
807 2003-04-05  Daniel Berlin  <dberlin@dberlin.org>
808
809         * Makefile.in (df.o):  Depend on alloc-pool.h, not obstack.h.
810         * df.c: Include alloc-pool.h, not obstack.h.
811         (df_ref_obstack): Remove.
812         (df_ref_pool, df_link_pool): Add pools.
813         (df_alloc): Init the new pools.
814         (df_free): And free them.
815         (df_link_create): Use the pools.
816         (df_ref_create): Ditto.
817
818 2003-04-05  Kazu Hirata  <kazu@cs.umass.edu>
819
820         * simplify-rtx.c: Fix formatting.
821
822 2003-04-05  Andrew Pinski  <apinski@apple.com>
823
824         * config/rs6000/rs6000.c (addrs_ok_for_quad_peep): Allow addr2
825         reg with reg1 == reg2 and offset1 = -8.
826
827 2003-04-05  David Edelsohn  <edelsohn@gnu.org>
828
829         * config/rs6000/rs6000.c (rs6000_rtx_costs): Halve Power4
830         multiply costs.  Correct Power4 divide costs.
831         * config/rs6000/power4.md: Restore multiply and FP latency.
832
833 2003-04-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
834
835         * alias.c (find_base_term): Export.
836         * rtl.h (find_base_term): Declare.
837         * gcse.c (find_moveable_store): Test for flag_non_call_exceptions
838         instead of flag_exceptions.  Move test for parameter passing ...
839         (store_killed_in_insn): ... here.
840
841 2003-04-05  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
842
843         PR bootstrap/10267
844         * doc/install.texi (*-*-solaris2): /bin/ksh is not just recommended
845         for configuring.
846
847 2003-04-04  Geoffrey Keating  <geoffk@apple.com>
848
849         * dbxout.c (scope_labelno): Add GTY.
850         (have_used_extensions): Add GTY.
851         (source_label_number): Add GTY.
852         (lastfile): Add GTY.
853         (lastfile_is_base): New.
854         (base_input_file): New.
855         (dbxout_handle_pch): New.
856         (dbx_debug_hooks): Add handle_pch.
857         (xcoff_debug_hooks): Likewise.
858         (dbxout_function_end): Remove scope_labelno.
859         (dbxout_init): Set base_input_file.
860         (dbxout_handle_pch): New.
861         (dbxout_source_file): Honour lastfile_is_base.
862         * dwarfout.c (dwarf_debug_hooks): Add dummy handle_pch.
863         * sdbout.c (sdb_debug_hooks): Add dummy handle_pch.
864         * vmsdbgout.c (vmsdbg_debug_hooks): Add dummy handle_pch.
865         * dwarf2out.c (dwarf2_debug_hooks): Add dummy handle_pch.
866         * debug.c (do_nothing_debug_hooks): Add dummy handle_pch.
867         * debug.h (struct gcc_debug_hooks): Add handle_pch.
868         * c-pch.c (pch_init): Don't call start_source_file, but do call
869         handle_pch.
870         (c_common_write_pch): Call handle_pch.
871         (c_common_read_pch): Don't call start_source_file,
872         or end_source_file.
873
874 Fri Apr  4 17:43:52 2003  Olivier Hainque <hainque@act-europe.fr>
875
876         * emit-rtl.c (get_mem_attrs): Adjust alignment tests determining
877         use of default attributes to agree MEM_ALIGN macro.
878
879 Fri Apr  4 17:33:24 2003  Joel Brobecker  <brobecker@gnat.com>
880
881         * dbxout.c (dbxout_type): When printing type index of range type
882         whose bounds are printed in octal format, print type of parent type if
883         it exists so enumerated type descriptions are not transformed
884         into unsigned types.
885
886 2003-04-04  Kazu Hirata  <kazu@cs.umass.edu>
887
888         * config/h8300/h8300-protos.h: Add a prototype for
889         compute_a_shift_cc.
890         * config/h8300/h8300.c (shift_one): Update the CC status.
891         (shift_two): Likewise.
892         (output_a_shift_cc): Set cc_inline and cc_special.
893         (compute_a_shift_cc): New.
894         * config/h8300/h8300.md (shift insns): Use compute_a_shift_cc.
895
896 2003-04-04  Richard Henderson  <rth@redhat.com>
897
898         * cse.c (fold_rtx): Fix 03-30 change; do check insn non-null.
899
900 2003-04-04  Loren James Rittle  <ljrittle@acm.org>
901
902         * fixinc/inclhack.def (bsd_stdio_attrs_conflict): New.
903         * fixinc/fixincl.x: Rebuilt.
904         * fixinc/tests/base/stdio.h: Regenerated.
905
906 2003-04-04  Nathan Sidwell  <nathan@codesourcery.com>
907
908         * gcov.c (accumulate_line_counts): Fix span tree merge bug.
909
910 Fri Apr  4 15:58:52 2003  J"orn Rennecke <joern.rennecke@superh.com>
911
912         * sh.h (ACTUAL_NORMAL_MODE): New macro, broken out of
913         (NORMAL_MODE).
914         * sh.c (fpscr_set_from_mem): Use ACTUAL_NORMAL_MODE.
915
916 2003-04-04  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
917
918         * doc/contrib.texi (Contributors): Add entries for Wolfgang
919         Bangerth, DJ Delorie, Christian Ehrhardt, Christopher Faylor,
920         Nathanael Nerode, Diego Novillo, Hartmut Penner, Volker Reichelt,
921         Danny Smith, and Ulrich Weigand.
922         Update Kriang Lerdsuwanakij and fix a typo in Janis Johnson's
923         entry.
924
925 2003-04-04  Nick Clifton  <nickc@redhat.com>
926
927         * config/sparc/sol2-bi.h: Revert previous delta.
928         * config/sparc/sol2-gas-bi.h (AS_SPARC64_FLAG): Prepend -TSO
929
930 2003-04-04  Nick Clifton  <nickc@redhat.com>
931
932         * config/v850/v850.c (expand_prologue): Only use register save
933         helper functions if long calls are not being used.
934         Add a clobber of r11 id using long calls.
935         (pattern_is_ok_for_prologue): Account for the extra clobber.
936         (construct_save_jarl): Likewise.
937         * config/v850/v850.md (prolog pattern): Do not use this pattern
938         for v850e's.
939
940 2003-04-04  Andreas Schwab  <schwab@suse.de>
941
942         * stor-layout.c (layout_decl): Avoid syntax error in last change
943         when PCC_BITFIELD_TYPE_MATTERS is defined but not
944         EMPTY_FIELD_BOUNDARY.
945
946 2003-04-03  Jason Merrill  <jason@redhat.com>
947
948         PR c/10175
949         * jump.c (never_reached_warning): Revert patch of 2002-11-02.
950         Look backwards for a line note.
951
952 2003-04-03  Neil Booth  <neil@daikokuya.co.uk>
953
954         * fix-header.c (read_scan_file): Defer switch processing.
955
956 2003-04-03  Matt Austern  <austern@apple.com>
957
958         * cpppch.c (reset_ht): Remove.
959         (cpp_read_state): Remove loop to reset hashtable identifiers.
960         * ggc-common.c (gt_pch_save): Add call to gt_pch_fixup_stringpool
961         after pch file is written.
962         * ggc.h (gt_pch_fixup_stringpool): Declare.
963         * stringpool.c (ht_copy_and_clear): Define.  Callback.  Copy
964         hashnode's value to another hashtable, then clear the original.
965         (saved_ident_hash): Define.
966         (gt_pch_save_stringpool): Create saved_ident_hash, use it to
967         store definitions in ident_hash, and clear ident_hash.
968         (gt_pch_fixup_stringpool): Define.  Restore definitions from
969         saved_ident_hash to ident_hash, then destroy saved_ident_hash.
970
971 Thu Apr  3 22:27:40 CEST 2003  Jan Hubicka  <jh@suse.cz>
972
973         * cfgrtl.c (update_bb_for_insn): Do not set block for barriers.
974
975 2003-04-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
976
977         PR optimization/10157
978         * gcse.c (can_copy_p): Rename it to can_copy.
979         (can_copy_init_p): Remove.
980         (compute_can_copy): Use can_copy instead of can_copy_p.
981         (can_copy_p): New exported function. Call compute_can_copy.
982         (hash_scan_set): Use it.
983         (gcse_main): Don't call compute_can_copy.
984         (bypass_jumps): Don't call compute_can_copy.
985         * rtl.h (can_copy_p): Declare.
986         * loop.c (scan_loop): Don't move the source and add a reg-to-reg
987         copy if the mode doesn't support copy operations.
988
989 2003-04-03  Jason Merrill  <jason@redhat.com>
990
991         * Makefile.in (unstrap): Also remove stage_last.
992
993         * dwarf2out.c (lookup_filename): Don't check for "<internal>".
994         (dwarf2out_source_line): Don't do anything if line==0.
995
996         * stor-layout.c (do_type_align): New fn, split out from...
997         (layout_decl): ...here.  Do all alignment calculations for
998         FIELD_DECLs here.
999         (update_alignment_for_field): Not here.
1000         (start_record_layout, debug_rli): Remove unpadded_align.
1001         * tree.h (struct record_layout_info_s): Remove unpadded_align.
1002         * c-decl.c (finish_enum): Don't set DECL_SIZE, DECL_ALIGN
1003         or DECL_MODE on the CONST_DECLs.
1004         (finish_struct): Don't mess with DECL_ALIGN.
1005
1006 Thu Apr  3 18:57:19 CEST 2003  Jan Hubicka  <jh@suse.cz>
1007
1008         * i386.c (print_operand): Do not bypass output_addr_const at flag_pic.
1009
1010 Thu Apr  3 17:08:09 2003  J"orn Rennecke <joern.rennecke@superh.com>
1011
1012         * sh.c (sh_function_ok_for_sibcall): Return 0 if the current
1013         function is an interrupt handler.
1014
1015         * sh.c (sh_expand_epilogue): Avoid clash of temp register for
1016         restoring target registers with EH_RETURN_STACKADJ_RTX; use
1017         multiple registers in round-robin fashion.
1018
1019 2003-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1020
1021         * gengtype-lex.l (IWORD): Add CHAR_BITFIELD.
1022         * system.h (CHAR_BITFIELD): New.
1023
1024 2003-04-03  Kazu Hirata  <kazu@cs.umass.edu>
1025
1026         * config/h8300/h8300.md (a peephole2): Generalize to accept GT
1027         and LE.
1028         (another peephole2): Likewise.
1029
1030 2003-04-03  Nick Clifton  <nickc@redhat.com>
1031
1032         * config/sparc/sol2-bi.h (ASM_CPU64_DEFAULT_SPEC): Add -TSO.
1033         (DEF_ARCH64_SPEC): Likewise.
1034
1035 Thu Apr  3 09:53:40 CEST 2003  Jan Hubicka  <jh@suse.cz>
1036
1037         * i386.c (constant_address_p): Use legitimate_constant_p.
1038         (legitimate_address_p): Do not use CONSTANT_ADDRESS_P.
1039
1040 2003-04-02  Kazu Hirata  <kazu@cs.umass.edu>
1041
1042         * config/h8300/h8300-protos.h: Add a prototype for
1043         gtle_operator.
1044         * config/h8300/h8300.c (gtle_operator): New.
1045         * config/h8300/h8300.h (PREDICATE_CODES): Add an entry for
1046         gtle_operator.
1047         * config/h8300/h8300.md (a peephole2): Generalize to accept GT
1048         and LE.
1049
1050 2003-04-02  Richard Henderson  <rth@redhat.com>
1051
1052         * libgcc-std.ver (_Unwind_GetCFA): New.
1053         * unwind-dw2.c (_Unwind_GetCFA): New.
1054         * unwind-libunwind.c (_Unwind_GetCFA): New.
1055         * unwind-sjlj.c (_Unwind_GetCFA): New.
1056         * unwind.h: Declare it.
1057
1058 Thu Apr  3 00:31:21 CEST 2003  Jan Hubicka  <jh@suse.cz>
1059
1060         PR inline-asm/8088
1061         * i386.c (ix86_hard_regno_mode_ok):  Return 0 for MMX/SSE registers
1062         when MMX/SSE is not available.
1063
1064 2003-04-02  Mike Stump  <mrs@apple.com>
1065
1066         * doc/install.texi (Specific): Update pointers to apple.com.
1067
1068 Thu Apr  3 00:18:49 CEST 2003  Jan Hubicka  <jh@suse.cz>
1069
1070         * i386.c (override_options):  Disable red zone by default on i386.
1071         (compute_frame_layout, ix86_force_to_memory, ix86_free_from_memory):
1072         Do not test TARGET_64BIT together with TARGET_RED_ZONE
1073
1074 2003-04-02  Kazu Hirata  <kazu@cs.umass.edu>
1075
1076         * config/h8300/h8300.md (a peephole2): Tighten the condition.
1077
1078 2003-04-02  Richard Henderson  <rth@redhat.com>
1079
1080         * longlong.h (umul_ppmm) [alpha]: Use __builtin_alpha_umulh.
1081
1082 2003-04-02  Kazu Hirata  <kazu@cs.umass.edu>
1083
1084         * config/h8300/h8300.md (a peephole2): New.
1085
1086 2003-04-02  Richard Henderson  <rth@redhat.com>
1087
1088         * except.c (sjlj_find_directly_reachable_regions): Recognize when
1089         must-not-throw region has been deleted.
1090
1091 2003-04-02  Richard Henderson  <rth@redhat.com>
1092
1093         * dwarf2out.c (output_call_frame_info): Ignore fde->nothrow as an
1094         optimization when flag_exceptions not enabled.
1095
1096 2003-04-02  Vladimir Makarov  <vmakarov@redhat.com>
1097
1098         * config/rs6000/rs6000.c
1099         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Redefine the
1100         macros.
1101         (rs6000_issue_rate): Add case for 8540.
1102         (rs6000_use_sched_lookahead): New function.
1103
1104         * config/rs6000/8540.md: Rename SIU units into SU ones and MIU
1105         units into MU ones.
1106         (ppc8540_branch, ppc8540_cr_logical): Add one cycle in the
1107         reservation before retirement.
1108         (ppc8540_multiply, ppc8540_load, ppc8540_store,
1109         ppc8540_simple_float, ppc8540_vector_load, ppc8540_vector_store):
1110         Remove additional cycle in the reservation before retirement.
1111         (ppc8540_mfcr, ppc8540_mtcrf, ppc8540_mtjmpr): Add missed
1112         reservation of ppc8540_issue.
1113
1114 2003-04-02  Andreas Schwab  <schwab@suse.de>
1115
1116         * real.c (decode_ieee_single): Fix decoding of SNaN bit.
1117
1118 2003-04-01  Richard Henderson  <rth@redhat.com>
1119
1120         * except.c (convert_from_eh_region_ranges_1): Smash REG_EH_REGION
1121         notes for nothrow calls if flag_forced_unwind_exceptions.
1122         (build_post_landing_pads): Mind flag_forced_unwind_exceptions.
1123         (sjlj_find_directly_reachable_regions): Likewise.
1124         (reachable_handlers): Likewise.
1125         (can_throw_external): Likewise.
1126         (collect_one_action_chain): Record cleanups after catch-all and
1127         must-not-throw if flag_forced_unwind_exceptions.
1128         * flags.h (flag_forced_unwind_exceptions): Declare.
1129         * toplev.c (flag_forced_unwind_exceptions): New.
1130         (lang_independent_options): Add it.
1131         * doc/invoke.text: Add it.
1132
1133 2003-04-01  David Mosberger <davidm@hpl.hp.com>
1134
1135         * config/ia64/crti.asm: Clean up trailing whitespace.
1136         Remove trailing hashes (#) from identifiers.
1137
1138         * config/ia64/crtn.asm: Ditto.
1139
1140         * config/ia64/crtend.asm: Remove trailing hashes (#) from
1141         identifiers.
1142         (__do_global_ctors_aux): Align to 32-byte boundary.  Add unwind
1143         directives.  Drop explicit bundling---it just makes the code
1144         harder to read.  Don't save/restore gp needlessly.
1145
1146         * config/ia64/crtbegin.asm: Remove trailing hashes (#) from
1147         identifiers (they're only needed if the identifier would clash
1148         with a register name otherwise).
1149         (__do_global_dtors_aux): Align to 32-byte boundary. Add unwind
1150         directives.  Drop explicit bundling---it just makes the code
1151         harder to read.
1152         (__do_jv_register_classes): Ditto.
1153         (.fini_array): Remove "progbits" (newer
1154         assemblers don't like wrong section-types).
1155         (.init_array): Ditto.
1156
1157 2003-04-01  Roger Sayle  <roger@eyesopen.com>
1158
1159         PR fortran/9974
1160         * gcse.c (reg_killed_on_egde): New function to test whether the
1161         given reg is overwritten by any instruction queued on an edge.
1162         (bypass_block): Ignore substitutions killed on incoming edges.
1163         Don't bypass outgoing edges that have queued instructions.
1164
1165 2003-04-01  Alexandre Oliva  <aoliva@redhat.com>
1166
1167         * real.h (EXP_BITS): Make room for...
1168         (struct real_value): ... added canonical bit.
1169         (struct real_format): Added pnan.
1170         (mips_single_format, mips_double_format, mips_extended_format,
1171         mips_quad_format): New.
1172         * real.c: Copy p to pnan in all formats.
1173         (get_canonical_qnan, get_canonical_snan): Set canonical bit.
1174         (real_nan): Use pnan to compute significand's shift.
1175         (real_identical): Disregard significand in canonical
1176         NaNs.
1177         (real_hash): Likewise.  Take signalling into account.
1178         (encode_ieee_single, encode_ieee_double, encode_ieee_quad):
1179         Disregard significand bits in canonical NaNs.  Set all bits of
1180         canonical NaN if !qnan_msb_set.
1181         (encode_ibm_extended, decode_ibm_extended): Likewise.  Use
1182         qnan_msb_set to tell the base double format.
1183         (ibm_extended_format): Use 53 as pnan.
1184         (mips_single_format, mips_double_format, mips_extended_format,
1185         mips_quad_format): Copied from the corresponding ieee/ibm
1186         formats, with qnan_msb_set false.
1187         * config/mips/iris6.h (MIPS_TFMODE_FORMAT): Use mips_extended_format.
1188         * config/mips/linux64.h (MIPS_TFMODE_FORMAT): Use mips_quad_format.
1189         * config/mips/mips.c (override_options): Use mips_single_format
1190         and mips_double_format.  Default TFmode to mips_quad_format.
1191         * config/mips/t-linux64 (tp-bit.c): Define QUIET_NAN_NEGATED.
1192         * config/mips/t-irix6: Likewise.
1193         * config/mips/t-mips (fp-bit.c, dp-bit.c): Likewise.
1194         * config/fp-bit.c (pack_d, unpack_d): Obey it.
1195
1196 2003-04-01  Geoffrey Keating  <geoffk@apple.com>
1197
1198         * unwind-dw2-fde-darwin.c (DESTRUCTOR_MAY_BE_CALLED_LIVE): New.
1199         (live_image_destructor): Reset image to initial state.
1200         (examine_objects): Set DESTRUCTOR_MAY_BE_CALLED_LIVE.
1201
1202 2003-04-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
1203
1204         * config/sparc/sparc.c (input_operand): Accept bare
1205         CONSTANT_P_RTX operands.
1206
1207 2003-04-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1208
1209         * gcse.c (struct ls_expr): Added pattern_regs field.
1210         (ldst_entry): Initialize it.
1211         (extract_mentioned_regs, extract_mentioned_regs_helper): New.
1212         (store_ops_ok): Use regs precomputed by them.
1213         (find_loads, store_killed_in_insn, load_kills_store): Change return
1214         type to bool.
1215         (store_killed_before, store_killed_after): Take position of register
1216         set in account.
1217         (reg_set_info): Store position of the setter.
1218         (gcse_main): Enable store motion.
1219         (mems_conflict_for_gcse_p): Enable load motion of non-symbol mems.
1220         (pre_insert_copy_insn, update_ld_motion_stores, insert_store): Prevent rtl
1221         sharing.
1222         (simple_mem): Enable store motion of non-symbol mems.
1223         (regvec): Type changed.
1224         (LAST_AVAIL_CHECK_FAILURE): New.
1225         (compute_store_table_current_insn): New.
1226         (build_store_vectors): Computation of availability and anticipatability
1227         moved ...
1228         (compute_store_table, find_moveable_store): ... here.
1229         (delete_store): Remove senseless comment.
1230         (store_motion): Reorganize.
1231
1232 2003-04-01  Kevin Buettner  <kevinb@redhat.com>
1233
1234         * config/mips/mips.c (override_options): Provide mappings for
1235         HI_REGNUM and LO_REGNUM.
1236         * config/mips/mips.h (MD_DBX_FIRST): Define.
1237
1238 2003-04-01  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
1239
1240         * combine.c (merge_outer_ops): Fix typo.
1241
1242         * varasm.c (make_decl_one_only): Revert 2003-03-09 patch.
1243
1244 2003-04-01  David Edelsohn  <edelsohn@gnu.org>
1245
1246         * config/rs6000/{40x.md,603.md,6xx.md,7450.md,7xx.md,mpc.md,
1247         power4.md,rios1.md,rios2.md,rs64.md}: Change mult_compare to
1248         imul_compare.  Add lmul_compare.
1249         * config/rs6000/power4.md: Bump some latencies.  Model extra cycle
1250         in second pair of dispatch slots.  Model stores more accurately.
1251         Tweak multiply model.  Add bypasses for CR instructions dependent
1252         on complicated compares.
1253         * config/rs6000/rs6000.md (mulsi3): Name imul_compare patterns.
1254         (muldi3): Add lmul_compare patterns.
1255         * config/rs6000/rs6000.c (rs6000_variable_issue): Move FPLOAD_UX
1256         and FPSTORE_UX to split instructions and add COMPARE,
1257         DELAYED_COMPARE, IMUL_COMPARE, LMUL_COMPARE, IDIV, LDIV.
1258         (rs6000_adjust_cost): Add IMUL_COMPARE and LMUL_COMPARE.
1259         (rs6000_rtx_costs): Separate POWER4 multiply case.
1260
1261 2003-04-01  Ulrich Weigand  <uweigand@de.ibm.com>
1262
1263         * config/s390/s390.c (s390_fixup_clobbered_return_reg):
1264         Do nothing if __builtin_return_address was not used.
1265
1266 Tue Apr  1 18:18:23 CEST 2003  Jan Hubicka  <jh@suse.cz>
1267
1268         * i386.md (test patterns):  Allow memory operand in operand1.
1269
1270 2003-02-31  Aldy Hernandez  <aldyh@redhat.com>
1271
1272         * testsuite/gcc.c-torture/execute/simd-3.c: New.
1273
1274         * expr.c (expand_expr): Handle VECTOR_CST.
1275         (const_vector_from_tree): New.
1276
1277         * varasm.c (output_constant): Handle VECTOR_CST.
1278
1279         * c-typeck.c (digest_init): Build a vector constant from a
1280         VECTOR_TYPE.
1281
1282         * config/rs6000/rs6000.c: Remove prototype for
1283         easy_vector_constant.
1284         (easy_vector_constant): Add mode parameter.  Rewrite to handle
1285         more easy constants.
1286         (rs6000_emit_move): Pass mode to easy_vector_constant.
1287         Call emit_easy_vector_insn for SPE V2SI vector constant moves.
1288         (emit_easy_vector_insn): New.
1289         (easy_vector_same): New.
1290         (EASY_VECTOR_15): New macro.
1291         (EASY_VECTOR_15_ADD_SELF): New macro.
1292         (bdesc_2arg): Rename to xorv2si3.
1293         (easy_vector_constant_add_self): New.
1294         (input_operand): Allow vector constants.
1295
1296         * config/rs6000/rs6000.h (PREDICATE_CODES): Add
1297         easy_vector_constant, easy_vector_constant_add_self.
1298         (EXTRA_CONSTRAINT): Add 'W'.
1299
1300         * config/rs6000/rs6000-protos.h: Add prototype for
1301         easy_vector_constant, emit_easy_vector_insn.
1302
1303         * config/rs6000/altivec.md (xorv8hi3): New.
1304         (xorv16qi3): New.
1305         Remove all _const0 patterns.
1306         (movv4si_internal): Rewrite to use code.  Add vector constant to
1307         vector alternative.  Add splitter.
1308         (movv8hi_internal): Same.
1309         (movv16qi_internal): Same.
1310         (movv4sf_internal): Same.
1311         Change the unspecs for vspltis* to use constants.
1312
1313         * config/rs6000/spe.md ("xorv4hi3"): New.
1314         ("spe_evxor"): Rename to xorv2si3.
1315         ("xorv1di3"): New.
1316         Remove all _const0 patterns.
1317         (movv2si_internal): Rewrite to use code.  Add vector constant to
1318         alternatives.  Add splitter.
1319         (movv4hi_internal): Add vector constant to alternatives.
1320         (movv1di_internal): Same.
1321         (movv2sf_internal): Same.
1322
1323 2003-03-31  Mark Mitchell  <mark@codesourcery.com>
1324
1325         PR c/9936
1326         * c-decl.c (grokdeclarator): Clear SAVE_EXPR_CONTEXT for
1327         variably-sized arrays in parameters.
1328         (set_save_expr_context): New function.
1329         (c_expand_body): Use it, via walk_tree.
1330
1331 2003-03-31  Eric Christopher  <echristo@redhat.com>
1332
1333         * combine.c (can_combine_p): Allow ZERO_EXTRACT and STRICT_LOW_PART.
1334         (combinable_i3pat): Remove call to expand_field_assignment and
1335         #if 0'd code.
1336
1337 2003-03-31  Mark Mitchell  <mark@codesourcery.com>
1338
1339         PR c++/10278
1340         * c-common.c (finish_label_address_expr): Handle the
1341         error_mark_node.
1342
1343 2003-03-31  Richard Henderson  <rth@redhat.com>
1344
1345         * real.c (real_identical): Reorg so as to not compare
1346         signalling for normals.
1347
1348 2003-03-31  Stephane Carrez  <stcarrez@nerim.fr>
1349
1350         * config/m68hc11/m68hc11.c (hard_reg_operand): Check the mode.
1351
1352 2003-03-31  Stephane Carrez  <stcarrez@nerim.fr>
1353
1354         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Don't rely on REG_WAS_0
1355         notes as they are boggus.
1356         (m68hc11_gen_movqi): Likewise.
1357
1358 2003-03-31  Stephane Carrez  <stcarrez@nerim.fr>
1359
1360         * config/m68hc11/m68hc11.c (expand_prologue): For an interrupt handler
1361         save the soft registers after the frame pointer so that gdb can unwind
1362         the frame more easily.
1363         (expand_epilogue): Likewise in opposite order; allow to use X register
1364         as scratch if the return value is by reference.
1365
1366 2003-03-31  Jason Merrill  <jason@redhat.com>
1367
1368         PR java/10145
1369         * stor-layout.c (update_alignment_for_field): Respect
1370         DECL_USER_ALIGN for zero-length bitfields, too.
1371         * c-decl.c (finish_struct): Don't set DECL_ALIGN for normal
1372         fields.
1373
1374 2003-03-31  Matt Austern  <austern@apple.com>
1375
1376         * cpppch.c (struct cpp_savedstate): Add defs and n_defs members.
1377         (count_defs): Keep track of number of defs as well as total size.
1378         (write_defs): Put every definition in cpp_savedstate's defs array.
1379         (comp_hashnode): Define.  Comparison function for qsort.
1380         (cpp_write_pch_deps): Sort definitions before writing them.
1381         (struct ht_node_list): Define. Like cpp_savedstate but simpler.
1382         (collect_ht_nodes): Define.
1383         (cpp_valid_state): When verifying that undefined identifiers in
1384         the pch file are still undefined, read a sorted list of undefined
1385         identifiers, collect all defined identifiers into a sorted list,
1386         and walk through both lists to make sure there's no match.
1387
1388 2003-03-31  Kazu Hirata  <kazu@cs.umass.edu>
1389
1390         * config/h8300/h8300.md (a peephole2): New.
1391
1392 2003-03-31  Michael Matz  <matz@suse.de>
1393
1394         * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Change 1 into 0.
1395
1396 2003-03-31  Segher Boessenkool  <segher@koffie.nl>
1397
1398         PR target/10177
1399         * config/rs6000/rs6000.h (HARD_REGNO_RENAME_OK): New.
1400         * config/rs6000/rs6000.c (compute_vrsave_mask): Don't mark
1401         all call-clobbered registers as used.
1402
1403 2003-03-31  Michael Matz  <matz@suse.de>
1404
1405         * cppexp.c (cpp_classify_number): Accept '.' after "0x".
1406         * testsuite/gcc.dg/cpp/c99-hexfloat-3.c: New file.
1407
1408 2003-03-31  Nathan Sidwell  <nathan@codesourcery.com>
1409
1410         * gcov.c: Add -a & -u options.
1411         (struct arc_info): Add local_span, is_call_non_return,
1412         is_nonlocal_return, is_unconditional flags, remove is_call flag.
1413         (struct block_info): Add flags, is_call_site, is_nonlocal_return
1414         members. Make encodings a union with span member.
1415         (struct function_info): Add blocks_executed, line, src, line_next
1416         members.
1417         (struct coverage_info): Make branches a union with blocks member.
1418         (struct source_info): Add functions member.
1419         (object_summary, program_count): New global variables.
1420         (flag_all_blocks, flag_unconditional): New flags.
1421         (find_source, output_branch_count): New functions.
1422         (print_usage): Adjust.
1423         (options): Adjust.
1424         (process_args): Adjust.
1425         (read_graph_file) <GCOV_TAG_FUNCTION>: Adjust.
1426         <GCOV_TAG_BLOCKS>: Read flags.
1427         <GCOV_TAG_LINES>: Adjust.
1428         (read_count_file): Process SUMMARY tags.
1429         (solve_flow_graph): Set is_unconditional and clear is_call_site
1430         appropriately.
1431         (add_branch_counts): Adjust. Don't count unconditional branches.
1432         (add_line_counts): Deal with all-blocks mode, accumulate block
1433         coverage.
1434         (accumulate_line_counts): Adjust, generate local spanning tree for
1435         all-blocks mode.
1436         (output_lines): Adjust.
1437         * profile.c (branch_prob): Alter GCOV_FUNCTION_TAG record.
1438         * doc/gcov.texi: Document.
1439
1440 2003-03-31  Kazu Hirata  <kazu@cs.umass.edu>
1441
1442         * config/h8300/h8300.md: Organize peephole2's that transform
1443         (compare (reg:HI) (const_int)).
1444
1445 2003-03-31  Roger Sayle  <roger@eyesopen.com>
1446
1447         * emit-rtl.c (dconstm2, dconsthalf): New real constants.
1448         (init_emit_once): Initialize dconstm2 and dconsthalf here.
1449         * real.h (dconstm2, dconsthalf): Add prototypes here.
1450         * real.c (real_sqrt): Use dconsthalf rather than local copy.
1451         * builtins.c (fold_builtin): When optimizing sqrt(exp(x)) as
1452         exp(x/2.0) remember to fold the division if possible.
1453         Fold sin(0.0) as 0.0, cos(0.0) as 1.0, pow(x,1.0) as x,
1454         pow(x,-1.0) as 1.0/x, pow(x,2.0) as x*x, pow(x,-2.0) as
1455         1.0/(x*x) and pow(x,0.5) as sqrt(x).
1456
1457 2003-03-31  Kazu Hirata  <kazu@cs.umass.edu>
1458
1459         * config/h8300/h8300.md (a new peephole2): New.
1460
1461 2003-03-31  Richard Sandiford  <rsandifo@redhat.com>
1462
1463         * gcse.c (simple_mem): Return false for floating-point accesses
1464         if flag_float_store is true.
1465
1466 2003-03-30  Roger Sayle  <roger@eyesopen.com>
1467
1468         * gcse.c (gcse_constant_p): New function to identify constants
1469         suitable for constant propagation, including COMPARE with two
1470         integer constant arguments.
1471         (hash_scan_set): Use gcse_constant_p.
1472         (find_avail_set): Likewise.
1473         (cprop_insn): Likewise.
1474         (do_local_cprop): Likewise.
1475         (find_implicit_sets): Likewise.
1476         (find_bypass_set): Likewise.
1477
1478 2003-03-30  Matt Kraai  <kraai@alumni.cmu.edu>
1479
1480         * except.h: Remove definition of varray_type.
1481
1482 2003-03-30  Richard Henderson  <rth@redhat.com>
1483
1484         PR opt/10011, opt/10252:
1485         * toplev.c (rest_of_compilation): Run purge_builtin_constant_p
1486         before post-gcse cse pass.
1487
1488 2003-03-30  Roger Sayle  <roger@eyesopen.com>
1489
1490         * dojump.c (do_jump): Copy SUBREGs into a pseudo for comparison.
1491
1492 2003-03-30  DJ Delorie  <dj@redhat.com>
1493
1494         * profile.c (instrument_edges): Make sure any newly created
1495         jump insns have correct jump label info.
1496
1497 2003-03-30  Richard Henderson  <rth@redhat.com>
1498
1499         * cfgbuild.c (make_edges): Use tablejump_p.
1500         * cfgcleanup.c (label_is_jump_target_p): Likewise.
1501         * cfglayout.c (cfg_layout_can_duplicate_bb_p): Likewise.
1502         * cfgrtl.c (flow_delete_block_noexpunge): Likewise.
1503         (try_redirect_by_replacing_jump): Likewise.
1504         (redirect_edge_and_branch): Likewise.
1505         * cse.c (fold_rtx): Likewise.
1506         * jump.c (delete_related_insns): Likewise.
1507         * rtlanal.c (get_jump_table_offset): Likewise.
1508         * ssa-ccp.c (ssa_ccp_df_delete_unreachable_insns): Likewise.
1509
1510 2003-03-30  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1511
1512         * Makefile.in (STRICT_WARN): Don't warn for ISO C constructs.
1513         (STRICT2_WARN): Likewise.
1514
1515 2003-03-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1516
1517         PR other/6955
1518         * collect2.c (collect_wait): Use WCOREDUMP and fix output message.
1519         * system.h (WCOREDUMP, WCOREFLG): Define if necessary.
1520
1521 2003-03-30  Richard Henderson  <rth@redhat.com>
1522
1523         PR c/10083
1524         * config/alpha/alpha.md (umuldi3_highpart): Change to expander;
1525         don't zero_extend const inputs.
1526
1527 2003-03-30  Kazu Hirata  <kazu@cs.umass.edu>
1528
1529         * reload1.c (reload_cse_move2add): Fix a comment typo.
1530
1531 2003-03-30  Kazu Hirata  <kazu@cs.umass.edu>
1532
1533         * config/h8300/h8300.md (a peephole2): Remove useless code.
1534
1535 2003-03-29  Kazu Hirata  <kazu@cs.umass.edu>
1536
1537         * config/h8300/h8300.md (*iorsi3_and_ashift): New.
1538         (*iorsi3_and_lshiftrt): Likewise.
1539         (*iorsi3_zero_extract): Likewise.
1540
1541 2003-03-29  Kazu Hirata  <kazu@cs.umass.edu>
1542
1543         * config/h8300/h8300.md (*insv_si_8_8): New.
1544         (*insv_si_8_8_lshiftrt_8): Likewise.
1545         (a peephole2): Likewise.
1546
1547 2003-03-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1548
1549         * doc/contrib.texi: Add Eric Botcazou and Roger Sayle.
1550         Uniformly use bugfix instead of bug fix.
1551
1552 2003-03-29  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1553
1554         PR doc/895
1555         * ONEWS: Remove those items that already appear in the EGCS
1556         release notes on our web pages.
1557
1558 2003-03-29  Alan Modra  <amodra@bigpond.net.au>
1559
1560         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Respect
1561         TARGET_HARD_FLOAT.  Reformat.
1562         (FUNCTION_ARG_REGNO_P): Likewise, and remove unneeded casts.
1563
1564 2003-03-28  Albert Chin-A-Young  <china@thewrittenword.com>
1565
1566         * gcc/fixinc/inclhack.def: Update solaris_mutex_init_1 to
1567         work on Solaris 2.5.1.
1568
1569 2003-03-28  Kazu Hirata  <kazu@cs.umass.edu>
1570
1571         * config/h8300/h8300.md (*addsi3_and_r_1): Put under plus:SI
1572         section of h8300.md
1573         (*addsi3_and_nor_r_1): Likewise.
1574
1575 2003-03-29  Ulrich Weigand  <uweigand@de.ibm.com>
1576
1577         * config/s390/s390.c (s390_emit_prologoue): Make sure backchain is
1578         set up before any trapping memory access if flag_non_call_exceptions.
1579
1580 2003-03-29  Alan Modra  <amodra@bigpond.net.au>
1581
1582         * reload1.c (reload_as_needed): Allow a USE in asm reloads.
1583
1584         * loop.c: (find_mem_in_note_1, find_mem_in_note): Comment.
1585
1586 2003-03-28  Nathanael Nerode  <neroden@gcc.gnu.org>
1587
1588         * configure.in: Clarify comments.
1589         * configure: Regenerate.
1590
1591 2003-03-28  Ulrich Weigand  <uweigand@de.ibm.com>
1592
1593         * config/s390/s390.md ("literal_pool_31"): Output pool anchor
1594         label even if pool empty when generating PIC.
1595         ("literal_pool_31", "literal_pool_64"): Coding style cleanup.
1596
1597 2003-03-28  Kazu Hirata  <kazu@cs.umass.edu>,
1598             Dhananjay Deshpande  <dhananjayd@kpit.com>
1599
1600         PR target/10205
1601         * config/h8300/h8300.c (h8300_initial_elimination_offset):
1602         Correct the offset computation when TARGET_NORMAL.
1603
1604 2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
1605
1606         PR target/10067
1607         * config/sparc/sparc.md (jump pattern): Correct order
1608         when issuing the annuling marker.
1609
1610 2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
1611
1612         PR c/8281
1613         * config/sparc/sparc.md (movdi_insn_sp32_v9): Remove 'f-f' alternative.
1614         (movdi reg/reg split): Match only on sparc32, and v9 when int regs.
1615
1616 2003-03-28  Alan Modra  <amodra@bigpond.net.au>
1617
1618         * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): Remove unnecessary
1619         globalize_label.
1620         * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
1621         * config/i960/i960.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
1622         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
1623         * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
1624         * config/mips/linux.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
1625         * config/sparc/sparc.h (ASM_OUTPUT_ALIGNED_BSS): Likewise.
1626         * config/v850/v850.c (v850_output_aligned_bss): Likewise.
1627
1628 2003-03-28  Alan Modra  <amodra@bigpond.net.au>
1629
1630         * loop.c: (find_mem_in_note_1, find_mem_in_note): New functions.
1631         (replace_loop_mems): Add "written" param.  Remove invalid REG_EQUAL
1632         notes after hoisting.
1633         (load_mems): Adjust replace_loop_mems call.
1634
1635 2003-03-28  Eric Botcazou  <ebotcazou@libertysurf.fr>
1636             Richard Henderson  <rth@redhat.com>
1637
1638         PR target/10114 and PR target/10084
1639         * dwarf2out.c (mem_loc_descriptor): Handle LO_SUM.
1640
1641 2003-03-27  Richard Henderson  <rth@redhat.com>
1642
1643         * config/alpha/alpha.md (adddi_er_high_l): Valid only after reload.
1644
1645 2003-03-27  Roger Sayle  <roger@eyesopen.com>
1646
1647         * fold-const.c (fold_inf_compare):  New function to simplify FP
1648         comparisons against +Infinity or -Infinity.
1649         (fold):  Optimize floating point comparisons against Infs and NaNs.
1650
1651 2003-03-27  Janis Johnson  <janis187@us.ibm.com>
1652
1653         * libgcov.c: Provide only dummy functions if libc is not available.
1654
1655 2003-03-27  Richard Henderson  <rth@redhat.com>
1656
1657         * real.h (struct real_value): Add signalling.
1658         (EXP_BITS): Decrement.
1659         * real.c (get_canonical_qnan): Don't set MSB-1.
1660         (get_canonical_snan): Likewise.  Set signalling.
1661         (real_identical): Compare signalling.
1662         (round_for_format): Remove force-one-bit on code.
1663         (real_nan): Likewise.  Set signalling.
1664         (encode_ieee_single): Add force-one-bit code; honor signalling.
1665         (encode_ieee_double, encode_ieee_extended, encode_ieee_quad): Likewise.
1666         (decode_ieee_single): Set signalling.
1667         (decode_ieee_double, decode_ieee_extended, decode_ieee_quad): Likewise.
1668
1669 2003-03-27  Olivier Hainque  <hainque@act-europe.fr>
1670
1671         PR ada/9953
1672         * ada/Makefile.in (gnatlib configuration for HPUX): Split
1673         the general section for HPUX into specific sections for
1674         HPUX 10 and HPUX 11. Fix the setting of TGT_LIB in the HPUX
1675         11 case.
1676
1677 2003-03-27  Glen Nakamura  <glen@imodulo.com>
1678
1679         PR opt/10087
1680         * loop.c (loop_givs_reduce): Skip bivs with duplicate locations
1681         while incrementing giv.
1682         (record_biv): Check for duplicate biv locations and
1683         set (struct induction *) v->same if found.
1684
1685 2003-03-27  David Mosberger  <davidm@hpl.hp.com>
1686
1687         * unwind-libunwind.c (uw_frame_state_for): Adjust for libunwind
1688         v0.9 API change: replace read of UNW_REG_HANDLER with
1689         unw_get_proc_info().
1690         (_Unwind_GetLanguageSpecificData): Replace read of UNW_REG_LSDA
1691         with unw_get_proc_info().
1692         (_Unwind_GetRegionStart): Replace UNW_REG_PROC_START with
1693         unw_get_proc_info().
1694
1695 2003-03-27  Vladimir Makarov  <vmakarov@redhat.com>
1696
1697         * config/rs6000/8540.md: Use presence_set instead of absence_set.
1698
1699 2003-03-26  Richard Henderson  <rth@redhat.com>
1700
1701         * c-decl.c (finish_function): Always defer if DECL_DECLARED_INLINE_P.
1702
1703 2003-03-26  Roger Sayle  <roger@eyesopen.com>
1704
1705         PR bootstrap/10051, PR bootstrap/10169.
1706         * mips-tfile.c (init_file): Don't provide a static initializer.
1707         (initialize_init_file): Initialize the contents of init_file.
1708         (add_file): Call initialize_init_file if not already initialized.
1709
1710 2003-03-26  Ulrich Weigand  <uweigand@de.ibm.com>
1711
1712         * config/s390/s390.c (s390_optimize_prolog): Do not save/restore
1713         registers used for global asm variables.
1714         (s390_frame_info, s390_arg_frame_offset): Likewise.
1715         (s390_emit_prologue, s390_emit_epilogue): Likewise.
1716
1717 2003-03-26  Vladimir Makarov  <vmakarov@redhat.com>
1718
1719         * config/rs6000/8540.md: New file.
1720
1721         * config/rs6000/{40x.md, 603.md, 6xx.md, 7450.md, 7xx.md, mpc.md,
1722         power4.md, rios1.md, rios2.md, rs64.md}: Add mult_compare to
1723         reservations for imul.
1724
1725         * config/rs6000/rs6000.md: Include 8540.md.  Change
1726         delayed_compare onto mult_compare for insns generating
1727         multiplication.
1728         (mult_compare, fpsimple, brinc, vecdiv, veccmpsimple, vecfdiv):
1729         New type attribute values.
1730
1731         * config/rs6000/spe.md (*negsf2_gp, *abssf2_gpr): Use type
1732         fpsimple instead of fp.
1733         (*divsf3_gpr): Use type vecfdiv instead of fp.
1734         (spe_evfsabs, spe_evfsnabs, spe_evfsneg): Use type vecsimple
1735         instead of vecfloat.
1736         (spe_evfsdive): Use type vecfdiv instead of vecfloat.
1737         (spe_brinc): Use type brinc instead of veccomplex.
1738         (spe_evaddw, spe_evaddiw): Use type vecsimple instead of
1739         veccomplex.
1740         (spe_evdivws, spe_evdivwu): Use type vecdiv instead of veccomplex.
1741         (*movv2si_internal, *movv1di_internal, *movv4hi_internal,
1742         *movv2sf_internal): Define type attribute values for all
1743         alternatives.
1744         (cmpsfeq_gpr, cmpsfgt_gpr, cmpsflt_gpr): Use type veccmp instead
1745         of fpcompare.
1746         (tstsfeq_gpr, tstsfgt_gpr, tstsflt_gpr): Use type veccmpsimple
1747         instead of fpcompare.
1748
1749 2003-03-26  David Edelsohn  <edelsohn@gnu.org>
1750
1751         * config/rs6000/power4.md: Allow delay between dispatch and
1752         function units for simple instructions.  Correct store units.
1753         Allow branch to occupy as many dispatch slots as necessary.
1754
1755 2003-03-26  Jakub Jelinek  <jakub@redhat.com>
1756
1757         * config/ia64/ia64.c (ia64_expand_op_and_fetch): Fix comment.
1758         (ia64_expand_compare_and_swap): Use always DImode ar.ccv,
1759         zero extend old to it.
1760         * config/ia64/ia64.md (cmpxchg_acq_si): Remove mode from ccv
1761         operand.
1762
1763 2003-03-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
1764
1765         PR target/7784
1766         * reload.c (find_reloads_address): Handle
1767         (PLUS (PLUS (REG) (REG)) (CONST_INT)) form for
1768         all base registers.
1769
1770 2003-03-25  Marcelo Abreu  <mmabreu@inf.ufrgs.br>
1771
1772         PR other/10203
1773         * version.c: Reference the GCC web site in the URL.
1774
1775 2003-03-26  Alan Modra  <amodra@bigpond.net.au>
1776
1777         * c-incpath.c (add_standard_paths): Add both "translated" and
1778         non-translated header paths.
1779
1780 2003-03-25  Loren James Rittle  <ljrittle@acm.org>
1781
1782         * doc/install.texi (*-*-freebsd*): Update with known status.
1783
1784 2003-03-21  Jason Merrill  <jason@redhat.com>
1785
1786         PR optimization/10171
1787         * unroll.c (unroll_loop): Don't delete the jump at the end unless
1788         we also delete a jump at the beginning.
1789
1790 2003-03-25  Stephane Carrez  <stcarrez@nerim.fr>
1791
1792         * doc/contrib.texi (Contributors): Mention self as 68HC11/68HC12
1793         contributor.
1794
1795 Tue Mar 25 20:35:51 CET 2003  Jan Hubicka  <jh@suse.cz>
1796
1797         * i386.c (ix86_rtx_costs): For -fpic and x86-64 local symbolic
1798         constants are not expensive.
1799
1800 Mon Mar 24 20:03:03 CET 2003  Jan Hubicka  <jh@suse.cz>
1801
1802         PR opt/10056
1803         * cfglayout.c (fixup_reorder_chain):  Fix dealing with the conditional
1804         jump jumping to the next instruction.
1805         * cfgrtl.c (force_nonfallthru_and_redirect):  Likewise.
1806
1807 2003-03-25  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1808
1809         * doc/passes.texi (Passes): Properly document that we do not
1810         perform jump2 any longer; remove command-line option -dJ.
1811
1812 2003-03-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
1813
1814         PR optimization/8746
1815         * config/i386/i386.md (and promoting splitters): Disable HImode to
1816         SImode promoting when the sign bit matters and is not preserved, or
1817         when TARGET_FAST_PREFIX is true. Disable promoting when optimizing
1818         for size.
1819
1820 2003-03-24  Kazu Hirata  <kazu@cs.umass.edu>
1821
1822         * config/h8300/h8300.md (a peephole2): Extend to support loads
1823         in QImode and HImode.
1824
1825 2003-03-24  Stephane Carrez  <stcarrez@nerim.fr>
1826
1827         * config/m68hc11/t-m68hc11-gas (LIB1ASMFUNCS): Add _call_far and
1828         _return_far
1829         (MULTILIB_OPTIONS): Don't multilib on -mlong-calls.
1830         (MULTILIB_EXCEPTIONS): Likewise.
1831         * config/m68hc11/m68hc11.md ("call"): Support far calls for 68HC11
1832         by calling some board support routine.
1833         ("call_value"): Likewise.
1834         ("*return_void"): Likewise for return.
1835         ("*return_16bit"): Likewise.
1836         ("*return_32bit"): Likewise.
1837         * config/m68hc11/m68hc11.h (ASM_DECLARE_FUNCTION_NAME): Generate .far
1838         for 68HC11 too.
1839         (DWARF2_ADDR_SIZE): Use 4 so that addresses can
1840         * config/m68hc11/m68hc11.c (m68hc11_override_options): Accept
1841         -mlong-calls for 68HC11.
1842         * config/m68hc11/larith.asm (declare_near): New macro.
1843         (__premain, ___negsi2, ___one_cmplsi2, ___ashlsi3): Use it.
1844         (___ashrsi3, ___lshrsi3, ___lshrhi3, ___lshlhi3): Likewise.
1845         (___rotrhi3, ___rotlhi3, ___ashrhi3, ___ashrqi3): Likewise.
1846         (___lshlqi3, __divmodhi4, ___mulqi3, ___mulhi3): Likewise.
1847         (__mulhi32): Likewise.
1848         (ret): Update macro for 68HC11.
1849         (__far_trampoline): Implement for 68HC11.
1850         (__call_a16, __call_a32, __return_void, __return_16): New support
1851         routines for 68HC11 memory bank switching calling support.
1852         (__return_32): Likewise.
1853
1854 2003-03-24  Neil Booth  <neil@daikokuya.co.uk>
1855
1856         * toplev.c (independent_decode_option): Don't skip a 'Y' prefix.
1857
1858 2003-03-24  Janis Johnson  <janis187@us.ibm.com>
1859
1860         * doc/install.texi (Testing): Mention test result links from build
1861         status pages.
1862
1863 2003-03-24  Mark Mitchell  <mark@codesourcery.com>
1864
1865         * function.c (put_var_into_stack): Change bool parameter to int.
1866         (gen_mem_addressof): Likewise.
1867         * rtl.h (gen_mem_addressof): Likewise.
1868         * tree.h (put_var_into_stack): Likewise.
1869         * config/alpha/alpha.c (alpha_gp_save_rtx): Adjust call to
1870         gen_mem_addressof or put_var_into_stack.
1871         * config/c4x/c4x.c (c4x_expand_builtin): Likewise.
1872         * config/ia64/ia64.c (spill_tfmode_operand): Likewise.
1873
1874 2003-03-24  Kazu Hirata  <kazu@cs.umass.edu>
1875
1876         * config/h8300/h8300.md (a peephole2): New.
1877
1878 2003-03-24  Jakub Jelinek  <jakub@redhat.com>
1879
1880         * dojump.c (do_jump): Handle UNSAVE_EXPR specially.
1881
1882 2003-03-24  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
1883
1884         * doc/contrib.texi (Contributors): Update Janis Johnson.
1885
1886 2003-03-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
1887
1888         PR target/10072
1889         * combine.c (simplify_if_then_else): Check that the mode
1890         has MODE_INT class before applying the (OP Z (mult COND C2))
1891         transformation.
1892
1893 2003-03-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
1894
1895         PR optimization/9414
1896         * config/sparc/sparc.md (widening peepholes): Use
1897         widen_memory_access instead of change_address.
1898
1899 2003-03-23  Mark Mitchell  <mark@codesourcery.com>
1900
1901         PR c++/7086
1902         * c-typeck.c (c_mark_addressable): Adjust calls to
1903         put_var_into_stack.
1904         * expr.c (expand_expr): Likewise.
1905         * function.c (put_var_into_stack): Add rescan parameter.  Do not
1906         call fixup_var_refs when rescan is false.
1907         (gen_mem_addressof): Likewise.
1908         (assign_parms): Adjust calls to put_var_into_stack.
1909         (setjmp_protect): Likewise.
1910         (setjmp_protect_args): Likewise.
1911         * rtl.h (gen_mem_addressof): Change prototype.
1912         * stmt.c (expand_decl): Adjust calls to put_var_into_stack.
1913         * tree.h (put_var_into_stack): Change prototype.
1914
1915 2003-03-23  Arpad Beszedes <beszedes@cc.u-szeged.hu>
1916
1917         PR middle-end/9967
1918         * builtins.c (expand_builtin_fputs): When optimizing for size,
1919         don't transform fputs into fwrite.
1920
1921 2003-03-23  Glen Nakamura <glen@imodulo.com>
1922
1923         PR c/8224
1924         * fold-const.c (extract_muldiv_1): Don't pass through type conversions
1925         when signedness changes for division or modulus.
1926
1927 2003-03-24  Alan Modra  <amodra@bigpond.net.au>
1928
1929         * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Remove unnecessary
1930         globalize_label.
1931
1932 2003-03-23  Roger Sayle  <roger@eyesopen.com>
1933
1934         PR c/10178
1935         * stmt.c (expand_end_case_type): Check for overflow in range when
1936         determining whether to use a bit-test implementation.
1937
1938 2003-03-23  Richard Henderson  <rth@redhat.com>
1939
1940         * cfgcleanup.c (try_optimize_cfg): Allow merging of tablejumps
1941         before flow2.
1942         * cfgrtl.c (try_redirect_by_replacing_jump): Similarly.
1943
1944 2003-03-23  Richard Henderson  <rth@redhat.com>
1945
1946         PR opt/10116
1947         * ifcvt.c (find_if_block): Disallow tablejump insns outgoing
1948         from then_bb or else_bb after flow2.
1949
1950 2003-03-23  Zack Weinberg  <zack@codesourcery.com>
1951
1952         * configure.in: Check whether it is necessary to link against
1953         libm to use ldexp.
1954         * configure: Regenerate.
1955         * Makefile.in: Add LDEXP_LIB substitution variable.
1956
1957 2003-03-23  Kazu Hirata  <kazu@cs.umass.edu>
1958
1959         * config/h8300/h8300.md: Fix comment typos.
1960
1961 2003-03-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1962
1963         * pa.c (output_cbranch): Fix typo in comment.
1964
1965 2003-03-22  Richard Henderson <rth@redhat.com>
1966
1967         * cfgcleanup.c (insns_match_p): Do not do EQUIV substitution
1968         after reload.
1969
1970 2003-03-22  DJ Delorie  <dj at redhat dot com>,
1971         Bruce Korb  <bkorb at gnu dot org>
1972
1973         * fixinc/inclhack.def (solaris_mutex_init_1): New; Fix
1974         buggy Solaris 2.6 mutex/cond initializers.
1975         (solaris_mutex_init): Rename to solaris_mutex_init_2.
1976         * fixinc/fixincl.x: Regenerate.
1977         * fixinc/tests/base/pthread.h: Update.
1978         * fixinc/fixincl.c(initialize): be explicit about the default case
1979         and indicate verbose level when being very, very verbose.
1980         * fixinc/check.tpl(VERBOSE): provide a means for passing the value in
1981
1982 2003-03-22  Andreas Jaeger  <aj@suse.de>
1983
1984         * config/i386/i386.c (ix86_init_machine_status): Return value.
1985
1986 2003-03-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1987
1988         * pa.c (output_cbranch, output_bb, output_bvb): Output nop for
1989         conditional branch to the following instruction.  Use next_real_insn
1990         instead of next_active_insn.
1991         (output_dbra, output_movb, jump_in_call_delay): Use next_real_insn
1992         instead of next_active_insn.
1993
1994 2003-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
1995
1996         * config/s390/s390.md ("movti", "*movdi_31", "*movdf_31"): Use 'o'
1997         instead of 'm' constraint in forced-split alternatives.
1998         ("*adddi3_31", "*subdi3_31"): Likewise.  Also, pass 0 instead of 1 as
1999         VALIDATE_ADDRESS parameter to operand_subword.
2000
2001 2003-03-22  Kazu Hirata  <kazu@cs.umass.edu>
2002
2003         * config/h8300/h8300.c (notice_update_cc): Correctly handle
2004         the case where the set destination is STRICT_LOW_PART.
2005
2006 2003-03-22  Svein E. Seldal  <Svein.Seldal@solidas.com>
2007
2008         * config/c4x/t-c4x (INSTALL_LIBGCC): Make gcc recognize a c33 as a
2009         c30 instead of a c40 processor.
2010
2011 2003-03-22  Alan Modra  <amodra@bigpond.net.au>
2012
2013         * combine.c (simplify_comparison <AND>): Use gen_int_mode.  Tidy.
2014
2015 2003-03-21  Zack Weinberg  <zack@codesourcery.com>
2016
2017         * c-common.c: Include intl.h.
2018         (shadow_warning): Rewrite to allow better diagnostic translations.
2019         * c-common.h: Update prototype of shadow_warning.  Declare sw_kind enum.
2020         * c-decl.c (warn_if_shadowing): Update calls to shadow_warning;
2021         use it throughout.
2022         * Makefile.in (c-common.o): Add intl.h.
2023
2024 2003-03-21  Nathanael Nerode  <neroden@gcc.gnu.org>
2025
2026         * config.gcc: Remove 'float_format'.
2027
2028         * fixproto: Define NULL and size_t in generated stdlib.h and
2029         unistd.h.  Kill unused required_stdlib_h, required_unistd_h.
2030         Rearrange file generation loop for readability.  Generate time.h,
2031         string.h if missing.
2032         * tsystem.h: Include <string.h>, <time.h> unconditionally.
2033         * config.gcc: Blow away POSIX defines.
2034
2035 2003-03-22  Stephane Carrez  <stcarrez@nerim.fr>
2036
2037         * config/m68hc11/m68hc11.md ("call_value"): Fix trap check.
2038
2039 2003-03-22  Stephane Carrez  <stcarrez@nerim.fr>
2040
2041         * config/m68hc11/m68hc11.h (ASM_DECLARE_FUNCTION_NAME): Fix typo in
2042         writing .interrupt command.
2043         * config/m68hc11/m68hc11.md ("call"): Look at the symbol to see
2044         if it's a far or near function.
2045         ("call_value"): Likewise.
2046         * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Add far and
2047         near attributes.
2048         (m68hc11_handle_fntype_attribute): Accept attributes on methods.
2049         (m68hc11_override_options): Ignore -mlong-calls for 68HC11.
2050         (m68hc11_initial_elimination_offset): Set current_function_far
2051         according to attributes.
2052         (expand_prologue): Likewise.
2053         (trap_handler_symbol): New global to keep track of trap handlers.
2054         (m68hc11_encode_section_info): Mark symbol as far if needed; set
2055         trap symbol.
2056         (m68hc11_is_far_symbol): New function.
2057         (m68hc11_is_trap_symbol): New function.
2058         * config/m68hc11/m68hc11-protos.h (m68hc11_is_far_symbol): Declare.
2059         (m68hc11_is_trap_symbol): Declare.
2060
2061 2003-03-21  Jan Hubicka  <jh@suse.cz>
2062
2063         * i386.c (ix86_compute_frame_layout): Recompute fast prologues
2064         only when amount of saved regs changed.
2065         (ix86_init_machine_status): Initialize use_fast_prologue_epilgoue_nregs.
2066         * i386.h (machine_function): New fields use_fast_prologue_epilgoue_nregs.
2067
2068 2003-03-21  Jan Hubicka  <jh@suse.cz>
2069
2070         PR inline-asm/7916
2071         * function.c (instantiate_virtual_regs_lossage): New function.
2072         (instantiate_virtual_regs_1): Use it.
2073         (instantiate_virtual_regs): Do not continue in substition when insn has
2074         been deleted.
2075
2076 2003-03-21  Kazu Hirata  <kazu@cs.umass.edu>
2077
2078         * combine.c (make_field_assignment): Fix a warning.
2079
2080 2003-03-21  Kazu Hirata  <kazu@cs.umass.edu>
2081
2082         * config/h8300/h8300.md (*insv_si_1_n_lshiftrt_16): New.
2083
2084 2003-03-21  Dale Johannesen  <dalej@apple.com>
2085
2086         * config/rs6000/rs6000.h (REG_ALLOC_ORDER):  Increase
2087         priority for R2 on Darwin.
2088         (HARD_REGNO_MODE_OK):  Don't accept R31 for DFmode.
2089
2090 2003-03-21  Kazu Hirata  <kazu@cs.umass.edu>
2091
2092         * combine.c (make_field_assignment): Remove unnecessary AND
2093         when storing into zero_extract.
2094
2095 2003-03-21  Zack Weinberg  <zack@codesourcery.com>
2096
2097         * aclocal.m4 (gcc_AC_EXAMINE_OBJECT, gcc_AC_C_FLOAT_FORMAT): Delete.
2098         * configure.in: Don't call gcc_AC_C_FLOAT_FORMAT.
2099         * defaults.h: Remove reference to HOST_FLOAT_WORDS_BIG_ENDIAN
2100         in comment.
2101
2102 2003-03-21  DJ Delorie  <dj@redhat.com>
2103
2104         * optabs.c (init_integral_libfuncs): Make sure we init at least up
2105         to "long long" size words.
2106
2107 2003-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
2108
2109         * config/s390/s390.h: Do not include fixdfdi.h on s390x.
2110         (TARGET_64BIT): Define as compile-time constant when IN_LIBGCC2.
2111         (MIN_UNITS_PER_WORD): Do not define when IN_LIBGCC2.
2112
2113 2003-03-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2114
2115         PR doc-bug/9813
2116         * doc/extend.texi: Move misplaced paragraph about underscores in
2117         variables in macros.
2118
2119 2003-03-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
2120             Richard Henderson  <rth@redhat.com>
2121
2122         PR optimization/8366
2123         * config/sparc/sparc.h: (SYMBOLIC_CONST): New macro.
2124         (GO_IF_LEGITIMATE_ADDRESS): Use it. Reject the form
2125         PIC+SYMBOLIC_CONST in other modes than Pmode.
2126         (GO_IF_MODE_DEPENDENT_ADDRESS): Use it. Mark
2127         the form PIC+SYMBOLIC_CONST as mode dependent.
2128
2129 2003-03-21  DJ Delorie  <dj@redhat.com>
2130
2131         * config/stormy16/stormy16.c (xstormy16_expand_arith): Make
2132         sure we always emit at least one insn.
2133
2134 2003-03-21  Christopher Faylor  <cgf@redhat.com>
2135
2136         * config.gcc (i[34567]86-*-cygwin*): Use new common makefile
2137         stub t-cygming. Use common target header cygming.h. Add extra
2138         c_target_obj and cxx_target_obj file. Default cygwin to posix
2139         threading. Enforce i386 as float format.
2140         (i[34567]86-*-mingw*): Use new common makefile stub t-cygming.
2141         Remove cygwin.h as target header. Use common target header
2142         cygming.h  Enforce i386 as float format. Correct typo.
2143         * config/i386/cygming.h: New file, containing definitions
2144         common to mingw32 and cygwin.
2145         * config/i386/cygwin.h: Remove definitions common to cygwin and
2146         mingw.  Simplify special spec logic.  Define "wrappers" around
2147         certain include path defines to accommodate -mno-cygwin.
2148         Remove some #if 0'ed code.
2149         (STANDARD_INCLUDE_DIR) Always define when not cross-compiling.
2150         (LINK_SPEC): Don't use cyg search prefix when -mno-cygwin.
2151         (GCC_DRIVER_HOST_INITIALIZATION): Define as call to mingw_scan.
2152         * config/i386/mingw32.h: Remove definitions common to cygwin and
2153         mingw.
2154         (EXTRA_OS_CPP_BUILTINS): Adjust.
2155         (TARGET_VERSION): Define.
2156         * config/i386/crtdll.h (EXTRA_OS_CPP_BUILTINS): Override
2157         mingw32.h definitions.
2158         (LIBGCC_SPEC): Add libmingwex.a as in mingw32.h.
2159         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Define as cygwin1.o.
2160         Add compilation rules for cygwin1.o cygwin2.o.
2161         * config/i386/cygwin1.c: New file.
2162         * config/i386/cygwin2.c: New file.
2163         * config/i386/t-cygming: New makefile stub.
2164
2165 2003-03-20  Richard Henderson  <rth@redhat.com>
2166
2167         * fold-const.c (extract_muldiv_1): Revert changing order of
2168         operands in case MULT_EXPR of 2003-02-16 patch.
2169
2170 2003-03-20  Daniel Berlin  <dberlin@dberlin.org>
2171         Merge changes from new-regalloc-branch
2172
2173         From Michael Matz  <matz@suse.de>
2174         * df.c (df_ref_record_1): Move init of loc to safe point.
2175         Only recurse on interesting things in parallels.
2176         Handle CLASS_CANNOT_CHANGE_MODE smarter.
2177         (df_uses_record): Ditto.
2178
2179         * df.h (DF_REF_MEM_OK): New enum member, used to mark ref's which
2180         it's already okay to use memory operands in (IE doesn't require
2181         adding another insn or anything).
2182
2183 2003-03-20  Richard Henderson  <rth@redhat.com>
2184
2185         PR middle-end/6348
2186         * explow.c (allocate_dynamic_stack_space): Handle STACK_SIZE_MODE
2187         different from word_mode.
2188
2189 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2190
2191         * config/h8300/h8300.md (*insv_si_1_n_lshiftrt): Restrict the
2192         source operand to those that can be extracted with bld.
2193
2194 2003-03-20  Richard Earnshaw  <rearnsha@arm.com>
2195
2196         PR 10066
2197         * arm.md (UNSPEC_PIC_BASE): New constant.
2198         (pic_add_dot_plus_four): Wrap with unspec.
2199         (pic_add_dot_plus_eight): Likewise.
2200
2201 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2202
2203         * config/h8300/h8300.md (*insv_si_1_n): New.
2204         (*insv_si_1_n_lshiftrt): Likewise.
2205
2206 2003-03-20  Roger Sayle  <roger@eyesopen.com>
2207
2208         * fold-const.c (fold_mathfn_compare): New function to simplify
2209         comparisons against built-in math functions.  Fold comparisons
2210         of sqrt against constants.
2211         (fold): Call fold_mathfn_compare when appropriate.
2212
2213 2003-03-20 Richard Earnshaw  <rearnsha@arm.com>
2214
2215         * ifcvt.c (find_if_case_1): If we add a new bb, update the dominance
2216         information.
2217
2218 2003-03-20  Per Bothner  <pbothner@apple.com>
2219
2220         Various cleanups to help compile server.
2221
2222         * cppinit.c (cpp_create_reader):  Take extra hash_table* argument,
2223         and pass that to _cpp_init_hashtable.
2224         (cpp_read_main_file):  Drop hash_table* argument; don't call
2225         _cpp_init_hashtable.
2226         * cpplib.h:  Update declarations to match.
2227         * c-opts.c (c_common_init_options):  Pass ident_hash to
2228         cpp_create_reader.
2229         (c_common_post_options):  Don't pass ident_hash to cpp_read_main_file.
2230         * fix-header.c (read_scan_file):  Likewise pass NULL table to
2231         cpp_create_reader rather than cpp_read_main_file.
2232
2233         * cppfiles.c (cpp_rename_file):  Generalized and renamed
2234         to cpp_change_file.
2235         * cpplib.h:  Update declaration to match.
2236         * c-opts.c (push_command_line_line, finish_options):  Change
2237         cpp_rename_file calls to cpp_change_file.
2238
2239         * line-map.c (add_line_map):  Allow leaving the outermost file.
2240         Allowing entering an outermost-file after the initial time.
2241
2242         * toplev.c (pop_srcloc):  Allow popping from initial file.
2243
2244 2003-03-20  Kazu Hirata  <kazu at cs dot umass dot edu>
2245
2246         * fold-const.c (fold): Fold A - (A & B) into ~B & A.
2247
2248 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2249
2250         * config/h8300/h8300.md (a peephole2): New.
2251
2252 2003-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2253
2254         * config/h8300/h8300.md (*addsi3_and_r_1): New.
2255         (*addsi3_and_not_r_1): Likewise.
2256
2257 2003-03-19  Loren James Rittle  <ljrittle@acm.org>
2258
2259         * Makefile.in (STRICT2_WARN): Add @WERROR@.
2260         (GCC_WARN_CFLAGS): Remove $(WERROR).
2261         (fixinc.sh-warn): New.
2262         * ada/Make-lang.in (ada-warn): Add $(WERROR).
2263         * cp/Make-lang.in (cp-warn): Add $(WERROR).
2264         * f/Make-lang.in (f-warn): Add $(WERROR).
2265         * java/Make-lang.in (java-warn): Add $(WERROR).
2266         * treelang/Make-lang.in (treelang-warn): Add $(WERROR).
2267
2268 2003-03-19  Nathanael Nerode  <neroden@gcc.gnu.org>
2269
2270         * c-common.h (c_dump_tree), c-dump.c (c_dump_tree),
2271         langhooks-def.h (lhd_tree_dump_dump_tree),
2272         langhooks.c (lhd_tree_dump_dump_tree), langhooks.h (*dump_tree):
2273         Change return type from 'int' to 'bool'.  Replace 0 and 1 with
2274         true and false in return statements.
2275
2276 2003-03-19  Kevin Buettner  <kevinb@redhat.com>
2277
2278         * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE): Define.
2279         (DWARF_COMPILE_UNIT_HEADER_SIZE): Take into account
2280         DWARF_INITIAL_LENGTH_SIZE.
2281         (output_compilation_unit_header, output_pubnames, output_aranges)
2282         (output_line_info): Output 0xffffffff escape value for 64-bit
2283         DWARF extension.
2284         * config/mips/iris6.h (DWARF_INITIAL_LENGTH_SIZE): Define.
2285
2286 2003-03-19  Ulrich Weigand  <uweigand@de.ibm.com>
2287
2288         * config/s390/s390.c (s390_preferred_reload_class): Do not
2289         force constants to the pool unless necessary.
2290         (s390_decompose_address): Prefer to use pointer as base,
2291         not index register.
2292         * config/s390/s390.md ("*tsthiCCT_only"): Remove '?' from
2293         Q alternative.
2294         ("*movdi_64", "*movsi", "movhi", "movqi_64", "movqi",
2295         "*movdf_64", "*movsf"): Add '?' to Q->Q alternatives.
2296         ("*extractqi", "*extracthi", "*zero_extendhisi2_31",
2297         "*zero_extendqisi2_31", "*zero_extendqihi2_31",
2298         "*adddi3_31", "*subdi3_31"): Do not set "type" attribute.
2299
2300 2003-03-19  Jan Hubicka  <jh@suse.cz>
2301
2302         * i386.h (machine_function): New fields use_fast_prologue_epilogue.
2303         * i386.c (use_fast_prologue_epilogue): Remove.
2304         (ix86_frame): New field save_regs-using_mov;
2305         (ix86_compute_frame_layout):  Decide on fast prologues;
2306         allocate saved registers in red zone.
2307         (ix86_expand_epilogue, ix86_expand_prolgoues): Obey new parameters.
2308
2309 2003-03-19  Nick Clifton  <nickc@redhat.com>
2310
2311         * config/mcore/mcore.h (CPP_SPEC): Remove trailing semi-colon.
2312
2313 2003-03-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2314
2315         PR 10062
2316         * config/pa/pa-hpux.h (TARGET_HPUX_UNWIND_LIBRARY): Redefine.
2317         * pa-protos.h (output_lbranch): New prototype.
2318         * pa.c (compute_frame_size): Change size of the frame marker on the
2319         64-bit ports to 48 bytes.
2320         (pa_output_function_prologue): Document why SAVE_SP is set.
2321         (hppa_expand_prologue): Save previous stack pointer into frame marker
2322         on targets which use the hpux unwind library.
2323         (output_cbranch): Use output_lbranch.
2324         (output_lbranch): New function to output long unconditional branches.
2325         * pa.h (TARGET_HPUX_UNWIND_LIBRARY): Define.
2326         (STACK_POINTER_OFFSET): Update offset for 48-byte frame marker on
2327         64-bit ports.
2328         * pa.md (jump): Use output_lbranch.
2329         (allocate_stack): New expander for dynamic stack allocation.
2330
2331 2003-03-19  Alan Modra  <amodra@bigpond.net.au>
2332
2333         * config/rs6000/rs6000.c (rs6000_stack_info): Only require a frame
2334         when debugging on XCOFF targets.  Delete "abi" temp.
2335
2336         PR target/10073
2337         * combine.c (force_to_mode <NOT>): Use gen_int_mode.
2338
2339 2003-03-18  Jakub Jelinek  <jakub@redhat.com>
2340
2341         * config/s390/s390.c (s390_output_dwarf_dtprel): New.
2342         * config/s390/s390-protos.h (s390_output_dwarf_dtprel): New proto.
2343         * config/s390/s390.h (ASM_OUTPUT_DWARF_DTPREL): Define.
2344
2345         * config/ia64/ia64.c (ia64_output_dwarf_dtprel): New.
2346         * config/ia64/ia64-protos.h (ia64_output_dwarf_dtprel): New proto.
2347         * config/ia64/ia64.h (ASM_OUTPUT_DWARF_DTPREL): Define.
2348
2349 2003-03-18  Geoffrey Keating  <geoffk@apple.com>
2350
2351         * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't clone
2352         the result of machopic_function_base_name.
2353         * config/darwin.c (machopic_function_base_name): Use a gc-allocated
2354         string rather than a static array.
2355
2356         * Makefile.in (emit-rtl.o): Add gt-emit-rtl.h to dependencies.
2357
2358         * gengtype.c: Include rtl.h.
2359         (enum rtx_code): Don't define.
2360         (rtx_format): Make declaration match rtl.h.
2361         (rtx_next_new): Rename from rtx_next to avoid conflict.  Change all
2362         users.
2363         (adjust_field_rtx_def): Describe strings in NOTE_LINE_NUMBER notes.
2364         * Makefile.in (gengtype.o): Update dependencies.
2365
2366 2003-03-18  Andreas Schwab  <schwab@suse.de>
2367
2368         * config/m68k/m68k.md (iordi3): Fix setting low half to -1.  From
2369         martin@blom.org.
2370
2371 2003-03-18  Geoffrey Keating  <geoffk@apple.com>
2372
2373         * function.c (next_block_index): Mark with GTY.
2374
2375         * config/rs6000/rs6000.md (macho_correct_pic): Correct pattern.
2376
2377 2003-03-18  Richard Henderson  <rth@redhat.com>
2378
2379         * config/ia64/ia64.md (UNSPECV_SETJMP_RECEIVER): New.
2380         (builtin_setjmp_receiver): Delay call to ia64_reload_gp
2381         until after reload.
2382
2383 2003-03-18  Richard Henderson  <rth@redhat.com>
2384
2385         * builtins.c (expand_builtin_unop): New target_mode operand;
2386         use it to convert the result to the correct mode.
2387         (expand_builtin): Update all callers.
2388
2389 2003-03-18  Ulrich Weigand  <uweigand@de.ibm.com>
2390
2391         * config/s390/s390.md ("movti", "movhi", "movqi"): Add "type" attribute.
2392
2393 2003-03-18  Jan Hubicka  <jh@suse.cz>
2394
2395         * i386.md:  Fix previous commit that mistakely applied the patch
2396         twice.
2397
2398         * alias.c (rtx_equal_for_memref_p): Assume that X and Y has been
2399         canonicalized.
2400         (memrefs_conflict_p): Likewise.
2401         (addr_side_effect_eval): Canonicalize the constructed address.
2402
2403 2003-03-18  Jan Hubicka  <jh@suse.cz>
2404
2405         * i386.md (cvtts?2si peep2): New.
2406
2407 2003-03-18  Kazu Hirata  <kazu@cs.umass.edu>
2408
2409         * config/h8300/h8300.md (*iorsi3_two_qi_zext): New.
2410
2411 2003-03-18  Andreas Schwab  <schwab@suse.de>
2412
2413         * dwarf2out.c (output_file_names): Cast size_t to unsigned long
2414         for format.
2415
2416 2003-03-17  Jason Merrill  <jason@redhat.com>
2417
2418         PR c++/10091
2419         * expr.c (expand_expr) [ADDR_EXPR]: Disallow taking the address of
2420         an unaligned member of TREE_ADDRESSABLE type.
2421
2422 2003-03-18  Alan Modra  <amodra@bigpond.net.au>
2423
2424         * config/rs6000/linux64.h (MASK_PROFILE_KERNEL): Define.
2425         (TARGET_PROFILE_KERNEL): Define.
2426         (SUBTARGET_SWITCHES): Handle -mprofile-kernel.
2427         (PROFILE_BEFORE_PROLOGUE): Don't define.
2428         (PROFILE_KERNEL): Remove hacks.
2429         * config/rs6000/rs6000.c (TARGET_PROFILE_KERNEL): Define default.
2430         (rs6000_stack_info): No need to save lr if just for profiling when
2431         TARGET_PROFILE_KERNEL.
2432         (output_profile_hook): Output nothing when TARGET_PROFILE_KERNEL.
2433         (output_function_profiler): Localize label generation.  Emit code
2434         for kernel profiling.
2435
2436 2003-03-17  Kazu Hirata  <kazu@cs.umass.edu>
2437
2438         * config/h8300/h8300-protos.h: Add a prototype for
2439         byte_accesses_mergeable_p.
2440         * config/h8300/h8300.c (byte_accesses_mergeable_p): New.
2441         * config/h8300/h8300.md (*iorhi3_two_qi_mem): Likewise.
2442         (a splitter): Likewise.
2443         (*iorsi3_ashift_16_ashift_24): Likewise.
2444         (*iorsi3_ashift_16_ashift_24_mem): Likewise.
2445
2446 2003-03-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2447
2448         * dwarf2asm.h: Delete obsolete comment.
2449         (dw2_asm_output_data, dw2_asm_output_delta, dw2_asm_output_offset,
2450         dw2_asm_output_pcrel, dw2_asm_output_addr,
2451         dw2_asm_output_addr_rtx, dw2_asm_output_encoded_addr_rtx,
2452         dw2_asm_output_nstring, dw2_asm_output_data_uleb128,
2453         dw2_asm_output_data_sleb128, dw2_asm_output_delta_uleb128,
2454         dw2_asm_output_delta_sleb128): Add ATTRIBUTE_NULL_PRINTF.
2455
2456 2003-03-17  Zack Weinberg <zack@codesourcery.com>
2457
2458         * c-tree.h (struct lang_identifier): Remove error_locus field.
2459         (IDENTIFIER_ERROR_LOCUS): Kill.
2460         (record_function_scope_shadow): New prototype.
2461         * c-typeck.c (build_external_ref): Don't complain if
2462         decl is error_mark_node.  When not at file scope, bind the
2463         decl's local value to error_mark_node to suppress further
2464         warnings, instead of setting IDENTIFIER_ERROR_LOCUS.
2465
2466         * c-decl.c (get_function_binding_level): New static function.
2467         (record_function_scope_shadow): New exported function.
2468         (c_make_fname_decl): Use get_function_binding_level.
2469
2470 2003-03-17  Steve Ellcey  <sje@cup.hp.com>
2471
2472         * stmt.c (tail_recursion_args): Call promote_mode to set
2473         unsignedp flag correctly before calling convert_move.
2474
2475 2003-03-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2476
2477         * loop-unroll.c (decide_peel_completely,
2478         decide_unroll_constant_iterations, decide_unroll_stupid,
2479         decide_unroll_runtime_iterations, decide_peel_simple): Set
2480         loop->has_desc.
2481
2482 2003-03-17  Jan Hubicka  <jh@suse.cz>
2483
2484         * ggc-common.c (ggc_mark_roots): Use htab_traverse_noresize.
2485
2486 2003-03-17  Olivier Hainque  <hainque@act-europe.fr>
2487
2488         * function.c (assign_parms): For a struct value address passed as
2489         first argument, delay the function's result RTL setup code until
2490         after the emission of parameter conversions.
2491
2492 2003-03-17  Dave Love  <fx@gnu.org>
2493             Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2494
2495         * config/alpha/osf.h (TARGET_OS_CPP_BUILTINS): Define __digital__,
2496         __arch64__ to match Compaq cc.
2497
2498 2003-03-17  Neil Booth  <neil@daikokuya.co.uk>
2499
2500         * c-opts.c: Default TARGET_EBCDIC to 0 if not defined.
2501         (c_common_init): Set EBCDIC in cpp options.
2502         * cpplex.c (maybe_read_ucs, cpp_parse_escape): Use EBCDIC option,
2503         not conditional compilation.
2504         * cpplib.h (struct cpp_options): New entry EBCDIC.
2505
2506 2003-03-17  Neil Booth  <neil@daikokuya.co.uk>
2507
2508         * fix-header.c (read_scan_file): Need to malloc arguments to add_path.
2509
2510 2003-03-17  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2511
2512         * function.c (thread_prologue_and_epilogue_insns): Set delete_unused
2513         argument to 0 for redirect_jump.
2514
2515 2003-03-16  Mark Mitchell  <mark@codesourcery.com>
2516
2517         PR c++/8805
2518         * except.c (eh_region_u_cleanup): Add prev_try.
2519         (expand_eh_region_end_cleanup): Set it.
2520         (reachable_handlers): Use it to skip over cleanup blocks.
2521
2522 2003-03-17  Andreas Jaeger  <aj@suse.de>
2523
2524         * Makefile.in (TAGS): Remove obsolete handling of =*.[chy].
2525
2526 2003-03-17  Alan Modra  <amodra@bigpond.net.au>
2527
2528         * config/rs6000/linux64.h (TARGET_64BIT): Redefine.
2529         (TARGET_RELOCATABLE, TARGET_EABI, TARGET_PROTOTYPE): Likewise.
2530         (SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Likewise.
2531         (SUBTARGET_OVERRIDE_OPTIONS, CPP_SYSV_SPEC): Likewise.
2532
2533 2003-03-16  Richard Henderson  <rth@redhat.com>
2534
2535         * simplify-rtx (simplify_binary_operation): Don't abort for
2536         SS_PLUS, US_PLUS, SS_MINUS, US_MINUS.
2537
2538 2003-03-16  Richard Henderson  <rth@redhat.com>
2539
2540         * config/i386/i386.md (movstrictqi, movstrictqi_1): Check
2541         optimize_size as well.
2542
2543 2003-03-16  Stephane Carrez  <stcarrez@nerim.fr>
2544
2545         * config/m68hc11/m68hc11.c (print_operand): Handle 'b' modifier
2546         for D register to specify the low part of it, aka B.
2547         (m68hc11_gen_movhi): Use REG_WAS_0 note and increment or decrement
2548         the register if we are loading 1 or -1 to it; avoid using temp
2549         register when moving X/Y to Y/X.
2550         (m68hc11_gen_movqi): Likewise.
2551         (m68hc11_check_z_replacement): Fix last insn setting for compare case.
2552
2553 2003-03-14  Mark Mitchell  <mark@codesourcery.com>
2554
2555         PR optimization/9016
2556         * config/i386/i386.c (ix86_expand_move): Force more CONST_DOUBLEs
2557         into the constant pool.
2558
2559 2003-03-16  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
2560
2561         PR target/9164
2562         * tree.c (get_narrower): For extensions with unchanged bit number,
2563         return the unsignedness of the outer mode.
2564
2565 2003-03-16  Roger Sayle  <roger@eyesopen.com>
2566
2567         * c-typeck.c (build_component_ref):  Turn "for" into "do .. while"
2568         to avoid "may be used uninitialized" warning on ia64-hpux.
2569         * config/ia64/ia64-c.c: Include "tm_p.h" for function prototypes.
2570
2571 2003-03-16  Andreas Jaeger  <aj@suse.de>
2572
2573         * configure.in: Improve check for memcheck.h.
2574         * configure: Regenerated.
2575
2576 2003-03-16  Neil Booth  <neil@daikokuya.co.uk>
2577
2578         * doc/cppopts.texi: Remove documentation of -A-.
2579
2580 2003-03-15  Zack Weinberg  <zack@codesourcery.com>
2581
2582         * doc/libgcc.texi: Remove @tie.
2583
2584 2003-03-15  Josef Zlomek  <zlomekj@suse.cz>
2585
2586         * rtl.h (subrtx_p): Renamed to rtx_referenced_p.
2587         (rtx_pair): Added new element update_label_nuses, renamed to
2588         replace_label_data.
2589         * cfgcleanup.c (outgoing_edges_match, try_crossjump_to_edge): Use
2590         replace_label_data instead of rtx_pair.
2591         * loop.c (load_mems): Likewise.
2592         * rtlanal.c (replace_label): Replace label in pool constants and in
2593         INSN_LIST (in REG_LABEL note).
2594         (subrtx_p): Renamed to rtx_referenced_p.
2595         (subrtx_p_1): Renamed to rtx_referenced_p_1, compare the interior of
2596         LABEL_REF with CODE_LABEL, traverse constants from pool.
2597
2598 2003-03-15  Aldy Hernandez <aldyh@redhat.com>
2599             Zack Weinberg  <zack@codesourcery.com>
2600
2601         * Makefile.in (TEXI_GCCINT_FILES): Add libgcc.texi.
2602         * doc/libgcc.texi: New file.
2603         * doc/interface.texi: Delete paragraph about libgcc interface.
2604         * doc/gccint.texi: Add libgcc menu entry and @include libgcc.texi.
2605
2606 2003-03-15  Jason Merrill  <jason@redhat.com>
2607
2608         PR debug/9039
2609         * dwarf2out.c (gen_decl_die): Ignore frontend tree codes.
2610
2611         PR debug/6387
2612         * dwarf2out.c (dwarf2out_decl): If we're at -g1, just stick nested
2613         function DIEs at toplevel.
2614         (decls_for_scope): At -g1, don't descend into subblocks.
2615
2616 2003-03-15  Ulrich Weigand  <uweigand@de.ibm.com>
2617
2618         * varasm.c (struct rtx_const): Change type of un.addr member
2619         to struct holding an additional 'symbol' member.
2620         (decode_rtx_const): Re-enable optimization to count SYMBOL_REFs
2621         with equal string addresses as equal.
2622         (simplify_subtraction): Adapt to struct rtx_const change.
2623
2624 2003-03-15  Neil Booth  <neil@daikokuya.co.uk>
2625
2626         * fix-header.c (read_scan_file): Read main file before handling -D.
2627
2628 2003-03-15  Roger Sayle  <roger@eyesopen.com>
2629
2630         * c-cppbuiltin.c (builtin_define_with_value_n): Fix whitespace.
2631         * c-typeck.c (c_tree_expr_nonnegative_p): Likewise.
2632         * cfgbuild.c (find_many_sub_basic_blocks): Likewise.
2633         (find_sub_basic_blocks): Likewise.
2634         * cgraphunit.c (cgraph_expand_functions): Likewise.
2635         * dwarf2out.c (prune_unused_types): Likewise.
2636         * expr.c (store_field): Likewise.
2637         * genextract.c (print_path): Likewise.
2638         * haifa-sched.c (schedule_insn): Likewise.
2639         * lcm.c (compute_antinout_edge): Likewise.
2640         * loop-unroll.c (decide_peel_once_rolling): Likewise.
2641         * ra-colorize.c (ra_colorize_free_all): Likewise.
2642         * ra-debug.c (dump_igraph): Likewise.
2643         (debug_hard_reg_set): Likewise.
2644         * reg-stack.c (reg_to_stack): Likewise.
2645         * rtlanal.c (refers_to_regno_p): Likewise.
2646         * tracer.c (layout_superblocks): Likewise.
2647
2648 2003-03-15  Neil Booth  <neil@daikokuya.co.uk>
2649
2650         * fix-header.c (read_scan_file): Fix thinko.
2651
2652 2003-03-15  Glen Nakamura  <glen@imodulo.com>
2653
2654         * reload1.c (choose_reload_regs): Use && instead of ||
2655         with REG_CANNOT_CHANGE_MODE_P condition.
2656
2657 2003-03-15  Neil Booth  <neil@daikokuya.co.uk>
2658
2659         * Makefile.in: Update.
2660         * c-common.h (cb_register_builtins): Rename c_cpp_builtins.
2661         * c-lex.c (init_c_lex): Register builtins hook is dead.
2662         * c-opts.c (COMMAND_LINE_OPTIONS, missing_arg): Handle -A, -D and -U.
2663         (c_common_decode_option): Don't call cpp_handle_option.
2664         Handle -A, -D and -U.
2665         (handle_deferred_opts): Simplify.
2666         (finish_options): Define builtins and command line macros.
2667         * c-ppoutput.c (init_pp_output): Register builtins hook is dead.
2668         * cppinit.c: Don't include intl.h.
2669         (init_builtins): Rename cpp_init_builtins.  No hook to call.
2670         (init_library): Don't need to sort options.
2671         (cpp_create_reader): Don't set pending.
2672         (cpp_destroy): Don't free pending.
2673         (struct pending_option, cl_directive_handler, struct cpp_pending,
2674         APPEND, free_chain, new_pending_directive, parse_option, opt_comp,
2675         cpp_finish_options, COMMAND_LINE_OPTIONS, DEF_OPT, struct cl_option,
2676         cl_options, cpp_handle_option): Remove.
2677         * cpplib.h (struct cpp_pending, register_builtins, cpp_handle_option,
2678         cpp_finish_options): Remove.
2679         (cpp_init_builtins): New.
2680         * fix-header.c (read_scan_file): Update to handle -D.  Fix
2681         handling of -I.  Replace call to cpp_finish_options.
2682
2683 2003-03-15  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2684
2685         PR optimization/9387
2686         * function.c (thread_prologue_and_epilogue_insns): Use redirect_jump
2687         for conditional returns.
2688
2689 2003-03-14  Jason Merrill  <jason@redhat.com>
2690
2691         PR optimization/6871
2692         * varasm.c (assemble_variable): Leave constant zeroes in .rodata.
2693
2694 2003-03-14  Neil Booth  <neil@daikokuya.co.uk>
2695
2696         * c-opts.c (finish_options): New.
2697         (COMMAND_LINE_OPTIONS, c_common_decode_option): Add -imacros.
2698         (missing_arg): Handle OPT_include and OPT_imacros.
2699         (c_common_init, c_common_parse_file): Use finish_options.
2700         (handle_deferred_opts): Update.
2701         * cppinit.c (struct cpp_pending): Remove imacros_head and imacros_tail.
2702         (cpp_finish_options): Don't handle -imacros here.
2703         (no_fil): Remove.
2704         (COMMAND_LINE_OPTIONS, cpp_handle_option): Don't handle -imacros.
2705
2706 2003-03-14  Jakub Jelinek  <jakub@redhat.com>
2707
2708         * config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Don't call
2709         rs6000_maybe_dead if !fromprolog.
2710
2711 2003-03-14  Neil Booth  <neil@daikokuya.co.uk>
2712
2713         * Makefile.in: Update.
2714         * c-common.h (fe_file_change, pp_file_change): New.
2715         * c-lex.c (init_c_lex): Don't set cb_file_change.
2716         (c_common_parse_file): Move to c-opts.c.
2717         (cb_file_change): Rename fe_file_change.
2718         * c-opts.c: Include debug.h.
2719         (warn_unused_macros, include_cursor): New.
2720         (push_command_line_include, cb_file_change): New.
2721         (COMMAND_LINE_OPTIONS): Handle -include.
2722         (c_common_decode_option): Use local warn_unused_macros.
2723         Handle OPT_include.
2724         (c_common_post_options): Set file change callback.
2725         (handle_deferred_opts): Skip -include.  Don't free the array.
2726         (c_common_init): Call cpp_finish_options here, and push an
2727         initial -include file.
2728         * c-ppoutput.c (cb_file_change): Rename pp_file_change.
2729         (preprocess_file): Don't call cpp_finish_options.
2730         (init_pp_output): Don't set the file change callback.
2731         (pp_file_change): Return if no line commands or no output.
2732         * cpphash.h (next_include_file, first_unused_line): Remove.
2733         * cppinit.c (include_head, include_tail): Remove.
2734         (cpp_destroy): Don't free -include chain.
2735         (cpp_finish_options): Don't handle -include, or worry about
2736         -Wunused-macros.
2737         (_cpp_maybe_push_include_file): Remove.
2738         (COMMAND_LINE_OPTIONS, cpp_handle_option): Don't handle -include.
2739         * cpplib.c (_cpp_pop_buffer): Don't handle -include.
2740         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_create_definition):
2741         Used flag is set based upon the state of the warn_unused_macros
2742         flag, and so use of first_unused_line is unnecessary.
2743
2744 2003-03-13  Jan Hubicka  <jh@suse.cz>
2745
2746         * cselib.c (clear_table): Do not take argument; always clear just
2747         used slots.
2748         (cselib_process_insn):  Update call of clear_table
2749         (cselib_init): Do not call clear_table.
2750         (cselib_finish): Clear table.
2751
2752         * cse.c (count_reg_usage): Do not check side_effects_p.
2753         * rtlanal.c (set_noop_p): Check side_effects_p only when set looks
2754         like noop.
2755         (find_reg_equal_equiv_note): Do not use find_reg_note.
2756
2757 2003-03-14  Richard Henderson  <rth@redhat.com>
2758
2759         PR target/9700
2760         * config/alpha/alpha.c (alpha_va_start): Account for
2761         current_function_pretend_args_size in the AP offset.
2762
2763         * config/alpha/alpha.h (SETUP_INCOMING_VARARGS): Move out of line.
2764         (INITIAL_ELIMINATION_OFFSET): Move out of line.
2765         * config/alpha/alpha.c (alpha_setup_incoming_varargs): New.
2766         (alpha_initial_elimination_offset) New.
2767         * config/alpha/alpha-protos.h: Update.
2768
2769 2003-03-14  Jakub Jelinek  <jakub@redhat.com>
2770
2771         * stmt.c (expand_start_case): Call emit_queue ().
2772
2773 2003-03-14  Chris Demetriou  <cgd@broadcom.com>
2774             Alexandre Oliva  <aoliva@redhat.com>
2775
2776         * config/mips/mips.h (FUNCTION_PROFILER): _mcount() doesn't pop 2
2777         words in new abis.
2778
2779 2003-03-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
2780
2781         PR optimization/8396
2782         * tree-inline.c (initialize_inlined_parameters): Make sure the value
2783         of read-only constant arguments is passed with the right type.
2784
2785 2003-03-14  Steven Bosscher  <steven@gcc.gnu.org>
2786
2787         * doc/extend.texi (Function Names): Make the example compilable.
2788
2789 2003-03-13  David Edelsohn  <edelsohn@gnu.org>
2790
2791         * config/rs6000/rs6000.c (processor_target_table): Really allow
2792         GP optional instructions on Power4.
2793
2794 2003-03-13  Roger Sayle  <roger@eyesopen.com>
2795
2796         * calls.c (flags_from_decl_or_type): Factor and remove redundant
2797         conditional tests.
2798
2799 2003-03-13  Mike Stump  <mrs@apple.com>
2800
2801         * ggc-page.c (struct page_entry): Remove varray.h header.
2802         Add index_by_depth field.
2803         Remove save_in_use_p field.
2804         (struct globals): Add depth_in_use, depth_max, by_depth_in_use,
2805         by_depth_max, by_depth, and save_in_use fields.
2806         (INITIAL_PTE_COUNT): Add.
2807         (save_in_use_p_i): Add.
2808         (save_in_use_p): Add.
2809         (adjust_depth): Add.
2810         (move_ptes_to_front): Add.
2811         (push_depth): Add.
2812         (push_by_depth): Add.
2813         (prefetch): Add.
2814         (free_page): Add support for and use faster data structures.
2815         (ggc_alloc): Likewise.
2816         (init_ggc): Likewise.
2817         (ggc_recalculate_in_use_p): Likewise.
2818         (ggc_pop_context): Likewise.
2819         (clear_marks): Likewise.
2820         (ggc_pch_read): Likewise.
2821         * Makefile.in (ggc-page.o): Remove varray.h.
2822
2823 2003-03-13  Nathanael Nerode  <neroden@gcc.gnu.org>
2824
2825         * ChangeLog: Rotated last year's entries to...
2826         * ChangeLog.8: New.
2827
2828         * config/ia64/fde-glibc.c, config/ia64/freebsd.h,
2829         config/ia64/hpux.h, config/ia64/hpux_longdouble.h,
2830         config/ia64/ia64-c.c, config/ia64/ia64-modes.def,
2831         config/ia64/ia64-protos.h, config/ia64/ia64.c,
2832         config/ia64/ia64.h, config/ia64/ia64.md,
2833         config/ia64/itanium1.md, config/ia64/itanium2.md,
2834         config/ia64/quadlib.c, config/ia64/unwind-ia64.c,
2835         config/ia64/unwind-ia64.h: It's GCC, not GNU CC.
2836
2837 2003-03-13  Aldy Hernandez  <aldyh@redhat.com>
2838
2839         * config/rs6000/rs6000.c (rs6000_dwarf_register_span):
2840         Differentiate endianness.
2841         (s6000_override_options): Use cpu type instead of TARGET_SPE.
2842
2843 2003-03-13  Nick Clifton  <nickc@redhat.com>
2844
2845         * config/arm/arm.c (print_multi_reg): Do not generate a type 2
2846         LDM instructions with writeback enabled.
2847         (output_return_instruction): Likewise.
2848
2849         * config/arm/pe.h (FIXED_REGISTERS): Remove definition.
2850         (CALL_USED_REGISTERS): Remove definition.
2851         (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Define.
2852
2853 2003-03-13  Alan Modra  <amodra@bigpond.net.au>
2854
2855         * config/rs6000/rs6000.c (rs6000_flag_pic): Delete.
2856         (rs6000_xcoff_encode_section_info): #ifdef TARGET_XCOFF.
2857         (rs6000_binds_local_p, TARGET_BINDS_LOCAL_P): #if TARGET_MACHO.
2858         (rs6000_override_options): Don't clear flag_pic for ABI_AIX.
2859         (rs6000_legitimize_address): Formatting.
2860         (rs6000_emit_move): Likewise.
2861         (rs6000_return_addr): Test ABI_AIX as well as flag_pic.
2862         (rs6000_emit_prologue <save_LR_around_toc_setup>): Likewise.
2863         (rs6000_elf_select_section): Comment reason for shlib being
2864         set for ABI_AIX.
2865         (rs6000_elf_unique_section): Likewise.
2866         (rs6000_elf_encode_section_info): Test !TARGET_AIX as well as ABI_AIX.
2867         * config/rs6000/rs6000.h (LEGITIMATE_LO_SUM_ADDRESS_P): Test ABI_AIX
2868         as well as flag_pic.
2869         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
2870         (MINIMAL_TOC_SECTION_ASM_OP): Likewise.
2871         * config/rs6000/linux64.h (TARGET_ENCODE_SECTION_INFO): Don't define.
2872
2873 2003-03-13  Richard Henderson  <rth@redhat.com>
2874
2875         * emit-rtl.c (try_split): Handle 1-1 splits of call insns properly.
2876
2877         * config/ia64/ia64.c (TARGET_FUNCTION_OK_FOR_SIBCALL): New.
2878         (ia64_gp_save_reg): Remove.
2879         (struct ia64_frame_info): Move to the beginning of the file;
2880         add reg_save_gp.
2881         (ia64_expand_call): Rearrange for new call patterns.
2882         (ia64_reload_gp): New.
2883         (ia64_split_call): New.
2884         (ia64_compute_frame_size): Allocate reg_save_gp.
2885         (ia64_expand_prologue): Save reg_save_gp.
2886         (ia64_expand_epilogue): Don't restore gp.
2887         (ia64_hard_regno_rename_ok): Remove R4 hack.
2888         (ia64_function_ok_for_sibcall): New.
2889         (ia64_output_mi_thunk): Set reload_completed, no_new_pseudos;
2890         call try_split on sibcall pattern.
2891         * config/ia64/ia64-protos.h: Update.
2892         * config/ia64/ia64.md (call_nogp, call_value_nogp, sibcall_nogp):
2893         Rename from nopic versions.  Confiscate 2nd argument to call as
2894         a marker.
2895         (call_pic, call_value_pic, sibcall_pic): Remove.
2896         (call_gp, call_value_gp, sibcall_gp): New.
2897         (builtin_setjmp_setup): Remove.
2898         (builtin_setjmp_receiver): Call ia64_reload_gp.
2899
2900 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
2901
2902         * config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
2903         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md: Replace
2904         "GNU CC" with "GCC".
2905
2906         * config/c4x/c4x-c.c, config/c4x/c4x-modes.def,
2907         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
2908         config/c4x/c4x.md, config/c4x/libgcc.S, config/c4x/rtems.h:
2909         GCC, not GNU CC.
2910
2911         * genattrtab.h, hosthooks-def.h, hosthooks.h, langhooks-def.h,
2912         langhooks.h, tree-inline.h: Replace "GNU CC" with "GCC".
2913
2914         * c-pch.c, dummy-conditions.c, genautomata.c, genconditions.c,
2915         langhooks.c, tree-inline.c, unwind-dw2-fde-darwin.c,
2916         unwind-dw2-fde-glibc.c, unwind-libunwind.c, vmsdbgout.c: Replace
2917         "GNU CC" with "GCC".
2918
2919         * config/v850/lib1funcs.asm, config/v850/rtems.h,
2920         config/v850/v850-c.c, config/v850/v850-protos.h,
2921         config/v850/v850.c, config/v850/v850.h, config/v850/v850.md:
2922         GCC, not GNU CC.
2923
2924         * config/vax/bsd.h, config/vax/elf.h, config/vax/netbsd-elf.h,
2925         config/vax/netbsd.h, config/vax/openbsd.h, config/vax/openbsd1.h,
2926         config/vax/ultrix.h, config/vax/vax-protos.h, config/vax/vax.c,
2927         config/vax/vax.h, config/vax/vax.md, config/vax/vaxv.h: GCC, not
2928         GNU CC.
2929
2930 2003-03-12  Benjamin Kosnik  <bkoz@redhat.com>
2931
2932         * cpppch.c (cpp_valid_state): Use DL_WARNING_SYSHDR, not DL_WARNING.
2933
2934 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
2935
2936         * fixinc/fixinc.interix: Remove dead code (most of it).
2937         * fixinc/fixinc.dgux: Remove.
2938
2939         * ginclude/float.h, ginclude/iso646.h, ginclude/stdarg.h,
2940         ginclude/stdbool.h, ginclude/stddef.h: GCC, not GNU CC.
2941
2942 2003-03-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2943
2944         * pa.c (pa_init_builtins): Fix warning.
2945
2946 2003-03-12  Steve Ellcey  <sje@cup.hp.com>
2947
2948         * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR): Remove.
2949         (ASM_OUTPUT_XDATA_SHORT): Remove.
2950         (ASM_OUTPUT_XDATA_INT): Remove.
2951         (ASM_OUTPUT_XDATA_DOUBLE_INT): Remove.
2952         (ASM_OUTPUT_ADDR_DIFF_ELT): Handled 32 bit address diffs.
2953         (ASM_PREFERRED_EH_DATA_FORMAT): Handle 32 bit EH pointers.
2954         (CASE_VECTOR_MODE): Handle 32 bit pointers in case statement.
2955
2956 2003-03-12  Andrew Lewycky  <andrew@mxc.ca>
2957
2958         PR c++/7050
2959         * expr.c (store_expr): Don't attempt to store void-typed trees,
2960         just evaluate them for side effects.
2961
2962 2003-03-12  Neil Booth  <neil@daikokuya.co.uk>
2963
2964         * cppfiles.c (cpp_rename_file, cpp_push_include): New.
2965         * cppinit.c (push_include): Move with changes to cppfiles.c.
2966         (cpp_read_main_file): Mark named operators here...
2967         (cpp_finish_options): ...not here.  Update.
2968         (_cpp_maybe_push_include_file): Update.
2969         * cpplib.h (cpp_push_include, cpp_rename_file): New.
2970
2971 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
2972
2973         * aclocal.m4: Introduce gcc_GAS_VERSION_GTE_IFELSE,
2974         _gcc_COMPUTE_GAS_VERSION.
2975         * configure.in: Use them.
2976         * configure: Regenerate.
2977
2978 2003-03-12  Bob Wilson  <bob.wilson@acm.org>
2979
2980         * config/xtensa/xtensa.md (adddi3): Don't clobber source operand used
2981         to detect carry.
2982         (subdi3): Reorder emitted instructions.
2983
2984 2003-03-12  Andreas Jaeger  <aj@suse.de>
2985
2986         * config/i386/netbsd64.h (TARGET_OS_CPP_BUILTINS): Remove call to
2987         NETBSD_OS_CPP_BUILTINS_LP64.
2988
2989 2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
2990
2991         * Makefile.in: Eliminate all.indirect.  Update and clean up comments.
2992         Rearrange.  Reorganize.
2993         * configure.in: Rearrange.
2994         * configure: Regenerate.
2995
2996 2003-03-12  Andreas Jaeger  <aj@suse.de>
2997
2998         * c-cppbuiltin.c (cb_register_builtins): Define LP64 builtins for
2999         LP64 targets.
3000
3001         * doc/cpp.texi (Common Predefined Macros): Document __LP64__ and
3002         _LP64.
3003
3004         * config/ia64/ia64.h (TARGET_CPU_CPP_BUILTINS): Do not define
3005         _LP64 macros here.
3006         * config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Likewise.
3007
3008         * config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove call to
3009         NETBSD_OS_CPP_BUILTINS_LP64.
3010         * config/sh/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Likewise.
3011         * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Likewise.
3012
3013         * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_LP64): Remove.
3014
3015 2003-03-12  Jan Hubicka  <jh@suse.cz>
3016
3017         * i386.c (ix86_setup_incoming_varargs): Set stack_alignment_needed to 128.
3018
3019 2003-03-12  Daniel Jacobowitz  <drow@mvista.com>
3020
3021         Fix PR target/9797 and PR c/9853.
3022         * stmt.c (expand_decl_init): Call push_temp_slots () and
3023         pop_temp_slots ().
3024
3025 2003-03-12  J"orn Rennecke <joern.rennecke@superh.com>
3026
3027         * sh.c: Include basic-block.h.
3028         (sh_output_mi_thunk, emit_load_ptr): New functions.
3029         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Redefine.
3030
3031 2003-03-12  Nick Clifton  <nickc@redhat.com>
3032
3033         * config/arm/pe.h (FIXED_REGISTERS): Add Maverick registers.
3034         (CALL_USED_REGISTERS): Likewise.
3035         * config/arm/arm.h (FIRST_PSEUDO_REGISTER): Update comment
3036         describing how this value is calculated.
3037
3038 2003-03-12  Hans-Peter Nilsson  <hp@bitrange.com>
3039
3040         * configure.in (rlim_t): Define to long if no valid definition
3041         found in sys/resource.h.
3042         * config.in, configure: Regenerate.
3043
3044 2003-03-12  Neil Booth  <neil@daikokuya.co.uk>
3045
3046         * config/mcore/mcore-elf.h (CPP_PREDEFINES): Replace with
3047         TARGET_OS_CPP_BUILTINS.
3048         * config/mcore/mcore-pe.h: Similarly.
3049         * config/mcore/mcore.h: Replace CPP_PREDEFINES and part of
3050         CPP_SPEC with TARGET_CPU_CPP_BUILTINS.
3051
3052 2003-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
3053
3054         PR c/9928
3055         * c-decl.c (duplicate_decls): Discard the initializer of the new decl
3056         only if it is a VAR_DECL.
3057
3058 2003-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
3059
3060         PR optimization/9888
3061         * config/i386/i386.md (jcc_1): Fix range.
3062         (jcc_2): Likewise.
3063         (jump): LIkewise.
3064         (doloop_end_internal): Likewise.
3065
3066 2003-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
3067
3068         * config/i386/winnt.c (DLL_IMPORT_PREFIX): New define.
3069         Use throughout instead of DLL_IMPORT_EXPORT_PREFIX and "e."
3070         (DLL_EXPORT_PREFIX): New define. Use throughout instead of
3071         DLL_IMPORT_EXPORT_PREFIX and "i."
3072         (i386_pe_dllexport_name_p): Here.
3073         (i386_pe_dllimport_name_p): Here.
3074         (i386_pe_mark_dllexport): Here. Remove DLL_IMPORT_PREFIX,
3075         not 9 chars when getting identifier name.
3076         (i386_pe_mark_dllimport): Here.
3077         (i386_pe_encode_section_info): Here. Remove DLL_IMPORT_PREFIX,
3078         not 9 chars when getting identifier name. Correct comment.
3079         (i386_pe_strip_name_encoding): Here. Add comments for different
3080         cases.
3081         (gen_fastcall_suffix): Break down xmalloc() argument to
3082         components.
3083         (gen_stdcall_suffix): Likewise.
3084         Update copyright year.
3085
3086 2003-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
3087
3088         PR optimization/9888
3089         * config/i386/i386.md (movsi_1): Remove special alternatives
3090         for %eax register.
3091         (movsi_1_nointernunit): Likewise.
3092         (movhi_1): Likewise.
3093         * config/i386/i386.c (memory_address_length): Do not use
3094         short displacement when there is no base.
3095         (ix86_attr_length_address_default): Handle LEA instructions.
3096
3097 2003-03-12  Neil Booth  <neil@daikokuya.co.uk>
3098
3099         * c-cppbuiltin.c (builtin_define_std): Make non-static.
3100
3101 2003-03-11  Loren James Rittle  <ljrittle@acm.org>
3102
3103         * config/freebsd-spec.h (FBSD_CPP_PREDEFINES): Remove.
3104         (FBSD_TARGET_OS_CPP_BUILTINS): New port-specific macro.
3105         (FBSD_TARGET_CPU_CPP_BUILTINS): New port-specific macro.
3106         * config/freebsd.h (CPP_PREDEFINES): Remove.
3107         (TARGET_OS_CPP_BUILTINS): New.
3108         * config/alpha/freebsd.h: Use overridden FBSD_TARGET_CPU_CPP_BUILTINS
3109         instead of TARGET_OS_CPP_BUILTINS.
3110         * config/sparc/freebsd.h (CPP_PREDEFINES): Remove.
3111
3112 2003-03-11  Geoffrey Keating  <geoffk@apple.com>
3113
3114         * c-cppbuiltin.c (builtin_define_std): Add ATTRIBUTE_UNUSED.
3115
3116 2003-03-11  Aldy Hernandez  <aldyh@redhat.com>
3117
3118         * config/rs6000/rs6000.c (rs6000_stack_info): Remove
3119         insn_chain_scanned.  Use insn_chain_scanned_p in machine_function.
3120
3121         * config/rs6000/rs6000.h (machine_function): Add insn_chain_scanned_p.
3122
3123 2003-03-11  Alexandre Oliva  <aoliva@redhat.com>
3124
3125         * toplev.c (independent_decode_option): Return success for --help,
3126         --target-help and --version.
3127
3128 2003-03-11  Alexandre Oliva  <aoliva@redhat.com>
3129
3130         * config/mips/linux64.h (DRIVER_SELF_SPECS): Add endian_spec.
3131         Default to -mips3 on -mabi=64.  Don't add -mips* flag if -march is
3132         specified.
3133         (SUBTARGET_ASM_SPEC): Remove -mips*-adding code obviated by
3134         DRIVER_SELF_SPECS.
3135         (LINK_SPEC): Let endian options affect the linker emulation name.
3136
3137 2003-03-11  J"orn Rennecke <joern.rennecke@superh.com>
3138
3139         * sh.md (reload_inqi): Fix mode for source in second set.
3140
3141 2003-03-11  Jan Hubicka  <jh@suse.cz>
3142
3143         * cselib.c (cselib_invalidate_mem_1): Move too ...
3144         (cselib_invalidate_mem): ... here; use new list
3145         (dummy_val, first_containing_mem): New static variables.
3146         (clear_table): Initialize first_containing_mem.
3147         (discard_useless_values):  Compact the containing_mem list.
3148         (add_mem_for_addr): Add to the list.
3149         * cselib.h (cselib_val): Add next_containing_mem.
3150
3151 2003-03-11  Aldy Hernandez  <aldyh@redhat.com>
3152
3153         * config/rs6000/rs6000.c (rs6000_override_options): Disable string
3154         instructions for e500.
3155
3156 2003-03-11  Neil Booth  <neil@daikokuya.co.uk>
3157
3158         * Makefile.in: Update.
3159         * c-cppbuiltin.c: Include tm_p.h.
3160
3161 2003-03-11  Aldy Hernandez  <aldyh@redhat.com>
3162
3163         * doc/tm.texi (Frame Registers): Document DWARF_REG_TO_UNWIND_COLUMN.
3164
3165         * unwind-dw2.c (DWARF_REG_TO_UNWIND_COLUMN): Define.
3166         (_Unwind_GetGR): Use DWARF_REG_TO_UNWIND_COLUMN.
3167         (_Unwind_SetGR): Same.
3168         (_Unwind_GetGRPtr): New.
3169         (_Unwind_SetGRPtr): New.
3170         (uw_update_context_1): Use accesor functions instead of accessing
3171         context->reg[] directly.
3172         (uw_install_context_1): Same.
3173         (execute_cfa_program): Same.
3174         (__frame_state_for): Same.
3175
3176         * config/rs6000/rs6000.c (spe_synthesize_frame_save): Use 1200 as
3177         the synthetic register offset.
3178
3179         * config/rs6000/rs6000.h (DWARF_REG_TO_UNWIND_COLUMN): New.
3180
3181 2003-03-11  Hans-Peter Nilsson  <hp@axis.com>
3182
3183         * config/cris/cris.md: Remove lingering EGCS reference.
3184         ("*extopqihi_side_biap"): For HI operation, match
3185         cris_additive_operand_extend_operator, not
3186         cris_operand_extend_operator.  Adjust condition.
3187         ("*extopqihi_side", "*extopqihi"): Ditto.
3188         ("*extopqisi_side_biap"): Correct operand numbers in condition.
3189         ("*extophisi_side_biap", "*extopqisi_swap_side_biap"): Ditto.
3190         ("*extophisi_swap_side_biap", "*extopqisi_swap"): Ditto.
3191         ("*extophisi_swap"): Ditto.
3192         ("*extopqihi_swap_side_biap"): For HI operation, match a simple
3193         PLUS, not cris_operand_extend_operator.  Adjust condition and
3194         output template.
3195         ("*extopqihi_swap_side", "*extopqihi_swap"): Ditto.
3196         * config/cris/cris.h (PREDICATE_CODES): Add
3197         cris_additive_operand_extend_operator.
3198         * config/cris/cris.c (cris_additive_operand_extend_operator):
3199         New predicate.
3200
3201 2003-03-11  Hartmut Penner  <hpenner@de.ibm.com>
3202
3203         * df.c (read_modify_subreg_p): Change from static to global.
3204         * df.h (read_modify_subreg_p): Add prototype.
3205         * sched-deps.c (sched_analyze_1): Generate true dependency for
3206         strict_low_part, certain subregs and zero/sign_extract.
3207
3208 2003-03-11  Neil Booth  <neil@daikokuya.co.uk>
3209
3210         * Makefile.in: Update.
3211         * c-common.c: Don't include real.h or except.h.
3212         (REGISTER_PREFIX): Remove.
3213         (builtin_define_std, builtin_define_with_value,
3214         builtin_define_with_int_value, builtin_define_with_hex_fp_value,
3215         builtin_define_type_max, builtin_define_type_precision,
3216         builtin_define_float_constants): Move to c-cppbuiltin.c.
3217         (c_stddef_cpp_builtins): New.
3218         * c-common.h (builtin_define_with_value, c_stddef_cpp_builtins): New.
3219         * c-cppbuiltin.c: New, extracted from c-common.c.
3220         (define__GNUC__): New.
3221         * cppspec.c (lang_specific_driver): Remove support of -no-gcc.
3222         * gcc.c: Remove support of %v1, %v2 and %v3 specs.
3223         (cpp_unique_options): Don't support no-gcc.
3224         (do_spec_1): Remove support of version specs.
3225         * doc/invoke.texi: Remove documentation of %v1, %v2 and %v3.
3226         * doc/passes.texi: Update.
3227         * doc/tm.texi: Update.
3228
3229 2003-03-10  Aldy Hernandez  <aldyh@redhat.com>
3230
3231         * dwarf2out.c (multiple_reg_loc_descriptor): Fix thinko.
3232
3233 2003-03-10  Andrew Pinski  <apinski@apple.com>
3234
3235         * config/darwin.c (machopic_function_base_name): If dynamic-no-pic
3236         is on should not get here.
3237         (machopic_indirect_data_reference): If dynamic-no-pic is on just
3238         generate high/low parts of the address.
3239         (machopic_legitimize_pic_address): Change MACHOPIC_PURE to
3240         MACHOPIC_INDIRECT. Dynamic-no-pic uses 0 as the pic base. Generate
3241         symbol and labels with a new reg.  Dynamic-no-pic does not have a
3242         pic_offset_table_rtx.
3243         (machopic_select_section): Change references of flag_pic to
3244         MACHOPIC_INDIRECT.
3245         (machopic_asm_out_destructor): Likewise.
3246         * config/darwin.h (ASM_DECLARE_UNRESOLVED_REFERENCE): Change
3247         reference of flag_pic to MACHOPIC_INDIRECT.
3248         (MACHO_DYNAMIC_NO_PIC_P): Define as TARGET_DYNAMIC_NO_PIC.
3249         (MACHOPIC_INDIRECT): Is also true when dynamic-no-pic is on.
3250         (MACHOPIC_JUST_INDIRECT): Is also true when dynamic-no-pic is on.
3251         (MACHOPIC_PURE): Is not pure when dynamic-no-pic is on.
3252         * config/i386/darwin.h (MASK_MACHO_DYNAMIC_NO_PIC): Define as
3253         0 for right now as dynamic-no-pic is not implemented on Darwin/ia32.
3254         * config/rs6000/darwin.h (MASK_MACHO_DYNAMIC_NO_PIC): Define.
3255         (TARGET_DYNAMIC_NO_PIC): Define.
3256         (SUBTARGET_SWITCHES): Define, have sub-target switches for
3257         dynamic-no-pic.
3258         (SUBTARGET_OVERRIDE_OPTIONS): Move check for -fpic from
3259         rs6000_override_options to here. Dynamic-no-pic overrides
3260         pic.
3261         (CC1_SPEC): Change from not static then pic to not static and not
3262         dynamic-no-pic then pic.
3263         * config/rs6000/rs6000.c (rs6000_override_options): Move the
3264         check for -fpic and DARWIN_ABI to config/rs6000/darwin.h
3265         (rs6000_legitimize_reload_address): Add case for loading floating in
3266         dynamic-no-pic.
3267         (rs6000_emit_move): Add case for dynamic-no-pic.  Change reference
3268         of flag_pic to MACHOPIC_INDIRECT.
3269         (secondary_reload_class): Conditional change the reference of
3270         flag_pic to MACHOPIC_INDIRECT.
3271         (rs6000_output_mi_thunk): Change reference of flag_pic to
3272         MACHOPIC_INDIRECT.
3273         (output_profile_hook): Likewise.
3274         (machopic_output_stub): Non-pure (dynamic-no-pic) is now supported.
3275         * config/rs6000/rs6000.md (movdf_low): Add the case for
3276         MACHO_DYNAMIC_NO_PIC_P.
3277         (call): Change references for flag_pic in TARGET_MACHO to
3278         MACHOPIC_INDIRECT.
3279         (SUBTARGET_OVERRIDE_OPTIONS): Add case where -fpic is on and
3280         -mdynamic-no-pic is on.  Also move case for -fpic from rs6000.c.
3281         * doc/invoke.texi (-mdynamic-no-pic): Document.
3282
3283 2003-03-10  Devang Patel  <dpatel@apple.com>
3284
3285         PR c++/9394
3286         * gcc.c (DEFAULT_SWITCH_TAKES_ARG): Remove.
3287         (DEFAULT_WORD_SWITCH_TAKES_ARG): Remove.
3288         * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Add.
3289         (DEFAULT_WORD_SWITCH_TAKES_ARG): Add.
3290         * cppspec.c (DEFAULT_SWITCH_TAKES_ARG): Remove.
3291         (DEFAULT_WORD_SWITCH_TAKES_ARG): Remove.
3292
3293 2003-03-10  Steven Bosscher  <s.bosscher@student.tudelft.nl>
3294
3295         PR optimization/7189
3296         * toplev.c (rest_of_compilation):  Move
3297         check_function_return_warnings up to just after
3298         delete_unreachable_blocks.
3299
3300 2003-03-10  Stephane Carrez  <stcarrez@nerim.fr>
3301
3302         * config/m68hc11/m68hc11.h (HARD_REGNO_RENAME_OK): Define.
3303         * config/m68hc11/m68hc11-protos.h (m68hc11_hard_regno_rename_ok):
3304         Declare.
3305         * config/m68hc11/m68hc11.c (m68hc11_hard_regno_rename_ok): New function
3306         for reg rename optimization to avoid using Z and Y registers.
3307
3308 2003-03-10  Stephane Carrez  <stcarrez@nerim.fr>
3309
3310         * config/m68hc11/m68hc11.md ("*addhi3_68hc12"): Accept any constant
3311         when adding to X and Y since leax/leay are fast.
3312         ("*addhi3"): Accept 'I' constraint when adding to address register.
3313         ("rotlhi3"): Operand 1 must be a register_operand.
3314         (peephole2): New peephole to optimize some adds.
3315         * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_P): Use 'I' constraint
3316         to represent -2 .. 2 small integer range.
3317
3318 2003-03-10  Stephane Carrez  <stcarrez@nerim.fr>
3319
3320         * config/m68hc11/m68hc11.c (m68hc11_gen_rotate): Set carry before
3321         each 16-bit rotation.
3322
3323 2003-03-10  Zack Weinberg  <zack@codesourcery.com>
3324
3325         * c-opts.c (add_prefixed_path): Don't use concat.  When
3326         prefixing with cpp_GCC_INCLUDE_DIR, copy only the first
3327         cpp_GCC_INCLUDE_DIR_len characters.
3328
3329 2003-03-10  Segher Boessenkool  <segher@koffie.nl>
3330
3331         * testsuite/gcc.dg/altivec-9.c: New file.
3332
3333         * config/rs6000/rs6000.c (altivec_frame_fixup): Remove.
3334         (rs6000_emit_prologue): Use rs6000_frame_related instead.
3335
3336 2003-03-10  Aldy Hernandez  <aldyh@redhat.com>
3337
3338         * config/rs6000/spe.h: Define __ev64_*64__ to use single element
3339         vectors.
3340         (__ev_convert_u64): Remove macro.  Define as inline.
3341         (__ev_convert_s64): Same.
3342
3343 2003-03-10  Aldy Hernandez  <aldyh@redhat.com>
3344
3345         * config/rs6000/rs6000.h (DWARF_FRAME_REGISTERS): Define.
3346         (rs6000_stack_t): Add spe_64bit_regs_used.
3347
3348         * config/rs6000/rs6000.c (rs6000_stack_info): Calculate
3349         spe_64bit_regs_used, and use it to determine the size of the
3350         frame.
3351         (spe_func_has_64bit_regs_p): New.
3352         (spe_synthesize_frame_save): New.
3353         (rs6000_frame_related): Handle SPE synthetic registers.
3354         (rs6000_emit_prologue): Only save in 64-bits if the function used
3355         any registers in 64-bit mode.
3356         (rs6000_emit_epilogue): Same, but for restore.
3357
3358 2003-03-10  Richard Earnshaw  <rearnsha@arm.com>
3359
3360         * arm.h (enum floating_point_type): Delete.  Replace with...
3361         (enum fputype): ... new.
3362         (FPUTYPE_DEFAULT): Renamed from FP_DEFAULT.  Values reworked.
3363         * linux-elf.h (FPUTYPE_DEFAULT): Likewise.
3364         * arm.md (attr fpu): Reworked for new underlying enum values.
3365         * arm.c (arm_fpu_arch): Now enum fputype.
3366         (arm_fpu_tune): Renamed from arm_fpu.  Now enum fputype.
3367         (arm_override_options, arm_output_epilogue, arm_expand_prologue):
3368         Update uses of arm_fpu_arch and arm_fpu_tune.
3369
3370 2003-03-10  Josef Zlomek  <zlomekj@suse.cz>
3371
3372         * cfgcleanup.c (outgoing_edges_match): Compare the jump tables.
3373         (try_crossjump_to_edge): Replace refereces to one jump table by
3374         references to identical jump table.
3375         * loop.c (load_mems): Moved setting the JUMP_LABEL to replace_label.
3376         (replace_label): Moved to rtlanal.c.
3377         (struct rtx_pair): Moved to rtl.h.
3378         * rtl.h (struct rtx_pair): Moved from loop.c.
3379         (replace_label): New extern function.
3380         (subrtx_p): New extern function.
3381         (tablejump_p): New extern function.
3382         * rtlanal.c (replace_label): Moved from loop.c.
3383         (subrtx_p_1): New static function.
3384         (subrtx_p): New function.
3385         (tablejump_p): New function.
3386
3387 2003-03-10  Jan Hubicka  <jh@suse.cz>
3388
3389         * cfgcleanup.c (try_optimize_cfg): Fix thinko in previous patch.
3390
3391         * cfgcleanup.c (merge_blocks): Return where to iterate next.
3392         (try_optimize_cfg): Use return value of merge_blocks
3393
3394 2003-03-10  Michael Matz  <matz@suse.de>
3395
3396         * cfg.c (unchecked_make_edge): New.
3397         (cached_make_edge): Use it.
3398         * basic-block.h (unchecked_make_edge): Declare.
3399         * cfglayout.c (cfg_layout_duplicate_bb): Use it.
3400
3401 2003-03-10  Richard Earnshaw  <rearnsha@arm.com>
3402
3403         * fpa.md: New file.  Move all patterns relating to FPA co-processor
3404         to here...
3405         * arm.md: ... from here.
3406         (cirrus.md, fpa.md): Include at end of description.
3407         (divsf3, divdf3, modsf3, movdf3, sqrtsf2, sqrtdf2): New expands.
3408         (pic_load_addr_based): Remove register constraint from expander.
3409         (seq, sne, sgt, sle, slt, sge, sgeu, sleu, sgtu, sltu, sunordered)
3410         (sordered, sungt, sunle, sunge, sunlt): Likewise.
3411         (eh_epilogue, tablejump): Likewise.
3412
3413 2003-03-09  David Edelsohn  <edelsohn@gnu.org>
3414             Mostafa Hagog
3415
3416         * config/rs6000/rs6000.md (movsi_update1): Add TARGET_UPDATE final
3417         condition.
3418
3419 2003-03-09  Neil Booth  <neil@daikokuya.co.uk>
3420
3421         * config/frv/frv.h: Use TARGET_CPU_CPP_BUILTINS, not CPP_PREDEFINES.
3422         * config/ip2k/ip2k.h: Similarly.
3423         * config/m32r/m32r.h: Similarly.
3424         * config/m68hc11/m68hc11.h: Similarly.
3425         * config/mn10200/mn10200.h: Similarly.
3426         * config/mn10300/mn10300.h: Similarly.
3427         * config/pdp11/pdp11.h: Similarly.
3428         * config/v850/v850.h: Similarly.
3429         * config/rs6000/vxworks.h: Similarly for TARGET_OS_CPP_BUILTINS.
3430         * config/v850/retms.h: Similarly for TARGET_OS_CPP_BUILTINS.
3431         * config/mips/iris3.h: Remove #if 0 block.
3432
3433 2003-03-09  Roger Sayle  <roger@eyesopen.com>
3434             Joern Rennecke <joern.rennecke@superh.com>
3435
3436         * gcc.c (do_spec_1) ['{']: Revert 2003-02-24 patch.  Don't handle
3437         pending argument upon return from handle_braces here.
3438         (do_spec_2): Instead handle it upon return from do_spec_1 here.
3439
3440 2003-03-09  Roger Sayle  <roger@eyesopen.com>
3441             Joern Rennecke <joern.rennecke@superh.com>
3442
3443         * gcc.c (do_spec_1) ['{']: Revert 2003-02-24 patch.  Don't handle
3444         pending argument upon return from handle_braces here.
3445         (do_spec_2): Instead handle it upon return from do_spec_1 here.
3446
3447 2003-03-09  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
3448
3449         * varasm.c (make_decl_one_only): Use declare_weak().
3450
3451 2003-03-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3452
3453         PR middle-end/9986
3454         * c-common.c (c_common_nodes_and_builtins): Initialize target builtins
3455         after the common builtins.
3456         * pa-hpux.h (DONT_HAVE_FPUTC_UNLOCKED): Define.
3457         * pa.c (TARGET_INIT_BUILTINS): Define.
3458         (pa_init_builtins): New function.
3459
3460         * pa.md (call, call_value, sibcall, sibcall_value): When sufficient
3461         space has been allocated for the outgoing arguments, set the arg
3462         pointer for a call emitted after virtuals have been instantiated
3463         using the stack pointer offset, otherwise abort.
3464
3465 2003-03-09  DJ Delorie  <dj@redhat.com>
3466
3467         * config/stormy16/stormy16.h (DWARF_LINE_MIN_INSTR_LENGTH): Revert.
3468
3469 2003-03-09  Richard Earnshaw  <rearnsha@arm.com>
3470
3471         * arm.md (fix_truncsfsi2, fix_truncdfsi2, arm_fix_truncsfsi2)
3472         (arm_fix_truncdfsi2): Add missing fix in floating point mode before
3473         conversion to integer.
3474         * cirrus.md (cirrus_truncsfsi2, cirrus_truncdfsi2): Likewise.
3475
3476 2003-03-09  Roger Sayle  <roger@eyesopen.com>
3477
3478         * builtins.def: Fix typo and improve grammar.
3479         * loop-unroll.c (decide_peel_completely): Tidy log message.
3480
3481 2003-03-09  Kazu Hirata  <kazu@cs.umass.edu>
3482
3483         * config/h8300/h8300.md (*tstsi_upper_bit): New.
3484         (*iorsi3_e2f): Likewise.
3485
3486 2003-03-08  Kazu Hirata  <kazu@cs.umass.edu>
3487
3488         * config/h8300/h8300.c (h8300_and_costs): Return the number of
3489         assembly instructions needed.
3490         (h8300_shift_costs): Likewise.
3491
3492 2003-03-09  Hans-Peter Nilsson  <hp@bitrange.com>
3493
3494         * config/cris/aout.h (ENDFILE_SPEC): Undef.
3495
3496         * optabs.c (gen_move_insn): Move logic for synthesizing MODE_CC
3497         moves from here ...
3498         * expr.c (emit_move_insn_1): ... to here.
3499
3500         * config/cris/aout.h (CRIS_CPP_SUBTARGET_SPEC): Move -D__AOUT__ to...
3501         (TARGET_OS_CPP_BUILTINS): New macro.
3502         * config/cris/cris.h (CRIS_CPP_SUBTARGET_SPEC): Move -D__ELF__ to...
3503         (TARGET_OS_CPP_BUILTINS): New macro.
3504         (CPP_PREDEFINES): Don't define.  Move old definitions and...
3505         (CPP_SPEC): ...move -D__CRIS_ABI_version=2 to...
3506         (TARGET_CPU_CPP_BUILTINS): New macro.
3507         * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Move constant
3508         definitions and the optional __PIC__, __pic__ and
3509         __NO_UNDERSCORES__ definitions to...
3510         (TARGET_OS_CPP_BUILTINS): New macro.
3511
3512         * flags.h (flag_leading_underscore): Declare.
3513
3514         * c-opts.c (c_common_post_options): On fopen failure, return
3515         false, not NULL.
3516
3517 2003-03-08  Hans-Peter Nilsson  <hp@bitrange.com>
3518
3519         * config/cris/cris_abi_symbol.c: #include tconfig.h and tm.h, not
3520         config.h.
3521         * config/cris/cris.h (HAVE_GAS_HIDDEN): Don't define here.
3522         * config/cris/aout.h (HAVE_GAS_HIDDEN): Undef.
3523
3524 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
3525
3526         * config/sh/rtemself.h (TARGET_OS_CPP_BUILTINS): Use instead of
3527         CPP_PREDEFINES.
3528         * config/sh/rtems.h (TARGET_OS_CPP_BUILTINS): Use instead of
3529         CPP_PREDEFINES.
3530
3531 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
3532
3533         * c-common.h (c_common_init, c_common_post_options): Update.
3534         * c-objc-common.c (c_objc_common_init): Update for new prototype.
3535         * c-opts.c (saved_lineno): New.
3536         (c_common_post_options, c_common_init): Update prototypes,
3537         move call to cpp_read_main_file from latter to former.
3538         * c-tree.h (c_ojbc_common_init): Update.
3539         * langhooks-def.h (lhd_post_options): New.
3540         (LANG_HOOKS_INIT, LANG_HOOKS_POST_OPTIONS): Update.
3541         * langhooks.c (lhd_post_options): New.
3542         * langhooks.h (struct lang_hooks): Update post_options and init hooks.
3543         * toplev.c (no_backend): New.
3544         (process_options): Call post_options hook and set main_input_filename
3545         and input_filename here.
3546         (lang_dependent_init, do_compile): post_options hook moved to
3547         process_options.
3548         * objc/objc-act.c (objc_init): Update prototype.
3549         * objc/objc-act.h (objc_init): Update prototype.
3550
3551 2003-03-08  Roger Sayle  <roger@eyesopen.com>
3552
3553         * emit-rtl.c (gen_lowpart): Don't attempt to load a part of
3554         a complex or vector type, using a load in the original mode.
3555
3556 2003-03-08  Jan Hubicka  <jh@suse.cz>
3557
3558         * Makefile.in (cgraph.o): Depend on gt-cgraph.h and varray.h.
3559         * gt-cgraph.h: New GC file.
3560         * cgraph.c (known_fns): New static variable.
3561         (cgraph_node): Add the decl into varray.
3562
3563 2003-03-08  Hans-Peter Nilsson  <hp@bitrange.com>
3564
3565         * config/mmix/mmix.md ("*movcc_expanded"): Add missing alternatives.
3566
3567 2003-03-08  Richard Earnshaw  <rearnsha@arm.com>
3568
3569         * arm.c (fpa_rhs_operand, fpa_add_operand, const_double_rtx_ok_for_fpa)
3570         (neg_const_double_ok_for_fpa, output_mov_long_double_fpa_from_arm)
3571         (output_mov_long_double_arm_from_fpa, output_mov_double_fpa_from_arm)
3572         (output_mov_double_arm_from_fpa): Renamed to use fpa instead of fpu.
3573         All callers changed.
3574         * arm.md, arm.h, arm-protos.h: Updated.
3575
3576         * arm.h (enum reg_class FPA_REGS): Renamed from FPU_REGS.
3577         (CLASS_MAX_NREGS, REGISTER_MOVE_COST, REG_CLASS_FROM_LETTER): Updated.
3578         * arm.c (arm_regno_class, f_register_operand): Updated.
3579
3580 2003-03-08  Hans-Peter Nilsson  <hp@bitrange.com>
3581
3582         * config/cris/cris.h: Remove EGCS references.
3583         (CPP_SPEC): Remove "-$".
3584         (INIT_CUMULATIVE_ARGS): Adjust parameter name to FNDECL.
3585
3586 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
3587
3588         * config/stormy16/stormy16.h (TARGET_CPU_CPP_BUILTINS): Use in
3589         preference to CPP_PREDEFINES.
3590
3591 2003-03-08  Neil Booth  <neil@daikokuya.co.uk>
3592
3593         * cppinit.c (cpp_finish_options): Set first_unused_line to -1.
3594
3595 2003-03-08  Kazu Hirata  <kazu@cs.umass.edu>
3596
3597         * config/h8300/h8300.md (*extzv_16_8): New.
3598
3599 2003-03-08  Jan Hubicka  <jh@suse.cz>
3600
3601         * c-decl.c: (finish_function): Update call of tree_inlinable_function_p.
3602         * cgraph.h: (cgraph_local_info): Add can_inline_once
3603         (cgraph_global_info): Add inline_once.
3604         (cgraph_node): Add previous.
3605         (cgraph_remove_node): New.
3606         * cgraphunit.c (cgraph_mark_functions_to_inline_once): New static
3607         function.
3608         (cgraph_optimize): Call it.
3609         (cgraph_finalize_function):  Set inlinable flags.
3610         (cgraph_finalize_compilation_unit):  Actually remove the reclaimed nodes.
3611         (cgraph_mark_functions_to_output):  Use new inlining heuristics flags.
3612         (cgraph_expand_function): Likewise.
3613         * cgraph.c
3614         (cgraph_node): Put nodes into doubly linked chain.
3615         (cgraph_remove_node): New function.
3616         * flags.h (flag_inline_functions_called_once): Declare.
3617         * tree-inline.c: Include cgraph.h
3618         (inlinable_functions_p): Add extra argument to bypass limits.
3619         (expand_call_inline):  Obey cgraph flag.
3620         * tree-inline.h (tree_inlinable_function_p): Update prototype.
3621
3622 2003-03-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3623
3624         * gcse.c (bypass_block, bypass_conditional_jumps): Do not create
3625         irreducible loops.
3626
3627         * loop-unroll.c (unroll_loop_runtime_iterations): Update irreducible
3628         loops info correctly.
3629
3630 2003-03-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
3631
3632         PR middle-end/7796
3633         * unroll.c (calculate_giv_inc): Handle constants being
3634         loaded with LSHIFTRT.
3635
3636 2003-03-07  David Edelsohn  <edelsohn@gnu.org>
3637
3638         * config/rs6000/rs6000.c (processor_target_table): Do not disable
3639         GP optional instructions on Power3, Power4, 620, and 630.
3640
3641 2003-03-07  Kazu Hirata  <kazu@cs.umass.edu>
3642
3643         * calls.c: Fix comment formatting.
3644         * cfgloopanal.c: Likewise.
3645         * cfgloopmanip.c: Likewise.
3646         * combine.c: Likewise.
3647         * dwarf2out.c: Likewise.
3648         * ggc-common.c: Likewise.
3649         * langhooks.c: Likewise.
3650         * loop-unroll.c: Likewise.
3651         * loop.c: Likewise.
3652         * ra-build.c: Likewise.
3653         * sbitmap.c: Likewise.
3654         * toplev.c: Likewise.
3655
3656 2003-03-07  James E Wilson  <wilson@tuliptree.org>
3657
3658         * config/sh/sh.h (HARD_REGNO_NREGS): Round up the XD register count.
3659
3660 2003-03-07  Geoffrey Keating  <geoffk@apple.com>
3661
3662         * objc/lang-specs.h (objective-c-header): Use .gch not .pch;
3663         support -no-integrated-cpp.
3664
3665         * c-pch.c (get_ident): Use c_language_kind and flag_objc rather
3666         than langhooks.name.
3667
3668 2003-03-07  Michael Matz  <matz@suse.de>
3669
3670         * df.h (enum df_ref_flags.DF_REF_STRIPPED): New.
3671         (DF_FOR_REGALLOC): New.
3672         * df.c (df_ref_record): Set DF_REF_STRIPPED.
3673         (read_modify_subreg_p): Simplify.
3674         (df_def_record_1, df_uses_record): Set DF_REF_MODE_CHANGE more often.
3675         Use DF_FOR_REGALLOC.
3676         * ra.h (struct web): New member subreg_stripped.
3677         (invalid_mode_change_regs): Declare.
3678         * ra.c (invalid_mode_change_regs): New.
3679         (init_ra): Initialize it.
3680         * ra-build.c (init_one_web_common, remember_web_was_spilled): Use it.
3681         Use CANNOT_CHANGE_MODE_CLASS as ifdef guard.
3682         (reinit_one_web, parts_to_web_1): Deal with subreg_stripped.
3683         * ra-colorize.c (colorize_one_web): Use invalid_mode_change_regs.
3684         Use CANNOT_CHANGE_MODE_CLASS as ifdef guard.
3685
3686 2003-03-07  Richard Earnshaw  <rearnsha@arm.com>
3687
3688         * arm.md (addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, negsf2)
3689         (negdf2, abssi2, abssf2, absdf2, floatsisf2, floatsidf2)
3690         (fix_truncsfsi2, fix_truncdfsi2, truncdfsf2): Moved back into main
3691         machine description file from ...
3692         * cirrus.md: ... here.
3693
3694 2003-03-06  Kazu Hirata  <kazu@cs.umass.edu>
3695
3696         * config/h8300/h8300.md (a peephole2): Don't use
3697         reg_overlap_mentioned_p.
3698
3699 2003-03-06  Geoffrey Keating  <geoffk@apple.com>
3700
3701         * c-pch.c: Include langhooks.h.
3702         (IDENT_LENGTH): New.
3703         (get_ident): New.
3704         (pch_ident): Delete.
3705         (pch_init): Use get_ident, IDENT_LENGTH.
3706         (c_common_valid_pch): Likewise.  Also, use actual language
3707         in warning message.
3708         * Makefile.in (c-pch.o): Add langhooks.h to dependencies.
3709
3710         * objc/config-lang.in (gtfiles): Add objc-act.c.  Remove duplicate
3711         c-parse.in.
3712         * objc/Make-lang.in (objc/objc-act.o): Add dependency on
3713         gt-objc-objc-act.h.
3714         (gt-objc-objc-act.h): New rule.
3715         * objc/lang-specs.h: Support PCH.
3716         * objc/objc-act.c: Include gt-objc-objc-act.h.
3717         (objc_add_static_instance): Move num_static_inst out, mark for PCH.
3718         (build_selector_reference_decl): Move idx out, mark for PCH.
3719         (build_class_reference_decl): Likewise.
3720         (build_objc_string_decl): Move *_idx out, mark for PCH.
3721         (build_tmp_function_decl): Move xxx out, mark for PCH.
3722
3723 2003-03-06  Dale Johannesen  <dalej@apple.com>
3724
3725         * config/rs6000/rs6000.c (rs6000_binds_local_p):  Consider
3726         global functions for inlining on Darwin.
3727
3728 2003-03-06  Vladimir Makarov  <vmakarov@redhat.com>
3729
3730         * haifa-sched.c (schedule_block): Don't call reorder when sorting
3731         is prohibited.
3732
3733 2003-03-06  Neil Booth  <neil@daikokuya.co.uk>
3734
3735         * Makefile.in (c-ppoutput.o): Update.
3736         * c-common.h (init_pp_output): New.
3737         (preprocess_file): Update.
3738         * c-lex.c (init_c_lex): Move mbchar initialization to cpplib.
3739         Register builtins.
3740         * c-opts.c (c_common_init): Call init_pp_output if preprocessing.
3741         Make call to cpp_read_main_file common to whether preprocessing
3742         or not.  Don't register builtins.
3743         * c-ppoutput.c: Include c-pragma.h.
3744         (setup_callbacks): Rename init_pp_output.
3745         (preprocess_file): No longer setup callbacks or call
3746         cpp_read_main_file.
3747         * cpphash.h (_cpp_init_mbchar): New.
3748         * cppinit.c (init_library): Call _cpp_init_mbchar.
3749         * cpplex.c (_cpp_init_mbchar): New.
3750
3751 2003-03-06  Roger Sayle  <roger@eyesopen.com>
3752
3753         * emit-rtl.c (gen_lowpart): When requesting the low-part of a
3754         MEM, try loading the MEM into a register and taking the low-part
3755         of that, to help CSE see the use of the MEM in its true mode.
3756
3757 2003-03-05  Tom Tromey  <tromey@redhat.com>
3758
3759         * config/stormy16/stormy16.h (DWARF_LINE_MIN_INSTR_LENGTH):
3760         Define.
3761
3762 2003-03-05  Nick Clifton  <nickc@cambridge.redhat.com>
3763
3764         * config/stormy16/stormy16.md ("*eqbranchsi"): Remove '+' on
3765         operand 2.
3766         ("*ineqbranchsi"): Likewise.
3767
3768 2003-03-05  Andrew Haley  <aph@cambridge.redhat.com>
3769
3770         * config/stormy16/stormy16.c (xstormy16_expand_prologue): Delete
3771         mem_fake_push_rtx.  Instead construct a SEQUENCE to show the
3772         register store followed by a stack increment.
3773
3774 2003-03-05  Chris Moller  <cmoller@redhat.com>
3775
3776         * config/stormy16/stormy16.c (REG_NEEDS_SAVE): added a term
3777         to inhibit saving CARRY_REGS.
3778
3779         * config/stormy16/stormy16.c (xs_hi_general_operand):
3780         added predicate to detect and error-out on out-of-range
3781         const_ints for movhi.
3782         * config/stormy16/stormy16.md (movhi): use
3783         xs_hi_general_operand.
3784
3785         * config/stormy16/stormy16.c (xstormy16_expand_prologue):
3786         added a check for local vbl size overflow.
3787         * config/stormy16/stormy16.c (xs_hi_nonmemory_operand):
3788         added predicate to detect and error-out on out-of-range
3789         const_ints for addhi and subhi.
3790         * config/stormy16/stormy16.md (addhi3, addchi4, addchi5,
3791         subhi3, subchi4, subchi5): used xs_hi_nonmemory_operand.
3792
3793         * config/stormy16/stormy16.c (xstormy16_legitimate_address_p):
3794         add a term to accept PRE_MODIFY addresses.
3795         * config/stormy16/stormy16.c (xstormy16_expand_move):
3796         add code to expand PRE_MODIFY addresses to an add followed
3797         by a move.
3798
3799 2003-03-06  Jason Merrill  <jason@redhat.com>
3800
3801         * tree-inline.c (inlinable_function_p): Revert earlier change
3802         pending investigation.
3803
3804 2003-03-06  Kazu Hirata  <kazu@cs.umass.edu>
3805
3806         * config/h8300/h8300.md (a new peephole2): New.
3807
3808 2003-03-06  Jan Hubicka  <jh@suse.cz>
3809
3810         * cgraph.c (cgraph_node): Do not confuse nested functions and methods.
3811
3812 2003-03-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3813
3814         * dwarf2out.c (size_of_die): Compute size of external reference to
3815         die correctly.
3816
3817 2003-03-06  Hans-Peter Nilsson  <hp@bitrange.com>
3818
3819         * config/mmix/mmix.md ("*movcc_expanded"): New pattern.
3820         ("movcc", "movcc_uns", "movcc_fp", "movcc_fpeq", "movcc_fun"): New
3821         expanders.
3822
3823 2003-03-05  Roger Sayle  <roger@eyesopen.com>
3824
3825         * expr.h (lang_expand_expr): Delete obsolete prototype.
3826
3827 2003-03-05  Kazu Hirata  <kazu@cs.umass.edu>
3828
3829         * emit-rtl.c (gen_highpart_mode): Fix a comment typo.
3830
3831 2003-03-05  Kazu Hirata  <kazu@cs.umass.edu>
3832
3833         * config/h8300/h8300.md (a peephole2): Generalize to
3834         accept a memory operand.
3835
3836 2003-03-05  Olivier Hainque <hainque@act-europe.fr>
3837
3838         * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Add '+'.
3839         * config/alpha/alpha.c (print_operand, case '+'): New.
3840         * config/alpha/alpha.md (call_osf_1_noreturn): Document and use.
3841         (call_value_osf_1_noreturn): Likewise.
3842
3843 2003-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3844
3845         * stmt.c (fixup_gotos): Change meaning of DONT_JUMP_IN.
3846         (expand_end_bindings): Likewise.
3847
3848 2003-03-05  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3849
3850         * pa.md (return_external_pic): Add !TARGET_PA_20 to constraint.
3851         (epilogue): Don't generate return_external_pic when emitting PA 2.0
3852         code.
3853
3854 2003-03-05  Aldy Hernandez  <aldyh@redhat.com>
3855
3856         * doc/tm.texi: Document TARGET_DWARF_REGISTER_SPAN.
3857
3858         * config/rs6000/rs6000.c (rs6000_dwarf_register_span): New.
3859
3860         * hooks.c (hook_rtx_rtx_null): New.
3861
3862         * hooks.h (hook_rtx_rtx_null): Protoize.
3863
3864         * target-def.h (TARGET_DWARF_REGISTER_SPAN): New macro.
3865         (TARGET_INITIALIZER): Add TARGET_DWARF_REGISTER_SPAN.
3866
3867         * target.h (struct gcc_target): Add dwarf_register_span.
3868
3869         * dwarf2out.c (multiple_reg_loc_descriptor): New.
3870         (one_reg_loc_descriptor): New.
3871         (reg_loc_descriptor): Add support for values that span more than
3872         one register.
3873
3874 2003-03-05  Jan Hubicka  <jh@suse.cz>
3875
3876         * Makefile.in (calls.o, toplev.o alias.o): Depend on cgraph.h
3877         * alias.c:  Include cgraph.h
3878         (mark_constant_function): Use cgraph_rtl_info.
3879         * calls.c:  Include cgraph.h
3880         (flags_from_decl_or_type): Use cgraph_rtl_info to find pure and const
3881         calls.
3882         (expand_call): Use cgraph_rtl_info to set preferred stack boundary.
3883         * cgraph.c (cgraph_rtl_info): New function.
3884         * cgraph.h (cgraph_rtl_info): Declare
3885         (cgraph_rtl_info): Likewise.
3886         * function.h (struct function): Add recursive_call_emit.
3887         * toplev.c: Include cgraph.h.
3888         (rest_of_compilation): Set preferred_incoming_stack_boundary.
3889
3890 2003-03-05  Kazu Hirata  <kazu@cs.umass.edu>
3891
3892         * config/h8300/h8300.c (output_simode_bld): Clear the
3893         destination first if possible.
3894         * config/h8300/h8300.md (extzv_1_r_h8300hs): Add an
3895         alternative.
3896         (extzv_1_r_inv_h8300hs): Likewise.
3897
3898 2003-03-05  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3899
3900         * basic-block.h (EDGE_IRREDUCIBLE_LOOP, EDGE_ALL_FLAGS): New.
3901         * cfg.c (dump_edge_info): Add EDGE_IRREDUCIBLE_LOOP flag dump.
3902         * cfgloop.c (flow_loop_free): Made global.
3903         (establish_preds): New static function.
3904         (flow_loop_tree_node_add): Handle subloops of added loop correctly.
3905         (get_loop_exit_edges): New.
3906         (verify_loop_structure): Verify EDGE_IRREDUCIBLE_LOOP flags.
3907         * cfgloop.h (flow_loop_free, get_loop_exit_edges, unloop): Declare.
3908         * cfgloopanal.c (mark_irreducible_loops): Mark edges in irreducible
3909         loops.
3910         * cfgloopmanip.c (loop_delete_branch_edge): Allow to test for
3911         removability of an edge.
3912         (fix_irreducible_loops): New static function.
3913         (find_path, remove_path): Add ability to remove enclosing loops.
3914         (unloop): New.
3915         (copy_bbs, duplicate_loop_to_header_edge): Use EDGE_IRREDUCIBLE_LOOP
3916         flags.
3917         * cfgrtl.c (verify_flow_info): Handle EDGE_IRREDUCIBLE_LOOP flag.
3918         * loop-unroll.c (peel_loops_completely): Do not duplicate loop if
3919         not neccessary.
3920         (decide_peel_completely, peel_loops_completely): Allow complete peeling
3921         of non-duplicable once rolling loops.
3922         * loop-unswitch.c (unswitch_loop): Update EDGE_IRREDUCIBLE_LOOP flags.
3923
3924 2003-03-05  J"orn Rennecke <joern.rennecke@superh.com>
3925
3926         * sh.h (OVERRIDE_OPTIONS): For TARGET_SHMEDIA, the minimum value
3927         for align_jumps is 4.
3928
3929         (SECONDARY_INPUT_RELOAD_CLASS): If reloading a PLUS into FPUL,
3930         use GENERAL_REGS.
3931
3932 2003-03-05  Stephane Carrez  <stcarrez@nerim.fr>
3933
3934         * config/m68hc11/m68hc11.h (PAD_VARARGS_DOWN): Define and return
3935         according to va_arg type.
3936         (EXPAND_BUILTIN_VA_ARG): Remove.
3937         * config/m68hc11/m68hc11.c (m68hc11_va_arg): Remove.
3938         * config/m68hc11/m68hc11-protos.h (m68hc11_va_arg): Remove.
3939
3940 2003-03-05  David Edelsohn  <edelsohn@gnu.org>
3941
3942         * config/rs6000/rs6000.c (rs6000_variable_issue): Remove unnecessary
3943         else clauses.
3944
3945 2003-03-05  Michael Matz  <matz@suse.de>
3946
3947         * i386/i386.c (ix86_save_reg): Also test
3948         current_function_uses_const_pool.
3949
3950 2003-03-05  Michael Matz  <matz@suse.de>
3951
3952         * unwind.h: Add the GPL exception.
3953         * Makefile.in (USER_H): Add unwind.h.
3954
3955 2003-03-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
3956
3957         PR c/9799
3958         * c-typeck.c (push_init_level): Add sanity check.
3959
3960 2003-03-05  Jan Hubicka  <jh@suse.cz>
3961
3962         * toplev.c (rest_of_compilation):  Deffer RTL compilation only when
3963         RTL inlining is done.
3964
3965         * cgraphunit.c (cgraph_mark_local_functions): New local function.
3966         (cgraph_optimize): Mark local functions.
3967         * i386-protos.h (init_cumulative_args): Update prototype.
3968         * i386.c (init_cumulative_args): Use register passing convention for
3969         local functions.
3970
3971         * cgraph.c (cgraph_global_info_ready): New global variable
3972         (cgraph_local_info, cgraph_global_info): New functions.
3973         * cgraph.h (struct cgraph_local_info, cgraph_global_info): New
3974         structures.
3975         (cgraph_local_info, cgraph_global_info, cgraph_global_info_ready):
3976         Declare.
3977         * cgraphunit.c (cgraph_finalize_function): Set inline_many.
3978         (cgraph_mark_functions_to_output): Use inline_many.
3979         (cgraph_expand_function): Free DECL_SAVED_TREE uncondtionally.
3980         (cgraph_expand_functions): Expand inline functions last.
3981         (cgraph_optimize): Do not emit uneeded functions.
3982
3983 2003-03-04  Steve Ellcey  <sje@cup.hp.com>
3984
3985         * expr.c (convert_modes): Check for legal hard register.
3986
3987 2003-03-04  Tom Tromey  <tromey@redhat.com>
3988
3989         * doc/sourcebuild.texi (Front End Directory): Document tags.
3990         * configure: Rebuilt.
3991         * configure.in (target_list): Added tags.
3992         * Makefile.in (TAGS): Depend on lang.clean.  Include subdirectory
3993         TAGS files by reference.
3994         * objc/Make-lang.in (objc.tags): New target.
3995
3996 2003-03-04  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3997
3998         * gcov-io.h (gcov_save_position, gcov_reserve_length, gcov_resync,
3999         gcov_skip, gcov_skip_string, gcov_write_unsigned, gcov_write_counter,
4000         gcov_write_string, gcov_read_unsigned, gcov_read_counter,
4001         gcov_read_string, gcov_write_length): Modified to enable reading/
4002         writing of whole .da file just once.
4003         (da_file_open, da_file_close, da_file_eof, da_file_error,
4004         da_file_position, da_file_seek, da_file_write, da_file_read): New
4005         functions.
4006         (actual_da_file, actual_da_file_position, actual_da_file_length,
4007         actual_da_file_buffer, actual_da_file_buffer_size): New static
4008         functions.
4009         * libgcov.c (gcov_exit): Modified to read/write the whole .da file at
4010         just once.
4011
4012
4013 2003-03-04  Andreas Schwab  <schwab@suse.de>
4014
4015         * config/m68k/m68k.c (m68k_output_function_prologue): Fix CFA
4016         offset without frame pointer.
4017
4018 2003-03-04  Steve Ellcey  <sje@cup.hp.com>
4019
4020         * expr.c (expand_expr): Call promote_mode to set unsignedp.
4021
4022 2003-03-04  Daniel Jacobowitz  <drow@mvista.com>
4023
4024         * configure.in: Don't always define TARGET_SYSTEM_ROOT.
4025         * configure: Regenerated.
4026         * gcc.c: Check whether TARGET_SYSTEM_ROOT is defined.
4027
4028 2003-03-04  Andreas Jaeger  <aj@suse.de>
4029
4030         * configure.in: Check for <memcheck.h>.
4031         * configure: Regenerated.
4032
4033         * config.in: Define HAVE_MEMCHECK_H.
4034
4035         * ggc-common.c: Use <memcheck.h> if available instead of
4036         <valgrind.h>.
4037         * ggc-page.c: Likewise.
4038         * cppfiles.c: Likewise.
4039
4040 2003-03-04  Kazu Hirata  <kazu@cs.umass.edu>
4041
4042         * config/h8300/h8300.md (*extzv_8_8): Fix cc and lengths.
4043
4044 2003-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
4045
4046         PR c/9262
4047         * c-typeck.c (do_case): Attach the first case label to the SWITCH_BODY.
4048         (c_finish_case): Rechain the next statements to the SWITCH_STMT.
4049
4050 2003-03-04  Jan Hubicka  <jh@suse.cz>
4051
4052         * doc/invoke.texi:  Document that unit-at-a-time is enabled for -O3
4053         * toplev.c (parse_options_and_default_flags): Enable flag_unit_at_a_time
4054         for -O3.
4055
4056 2003-03-04  Nathanael Nerode  <neroden@gcc.gnu.org>
4057
4058         * configure.in: Delete three unused variables.  Move a variable
4059         definition closer to its use.  Simplify use_collect2 logic.  Start to
4060         organize.  Simplify tests for in-tree gas and ld.
4061         * configure: Regenerate.
4062
4063 2003-03-04  Neil Booth  <neil@daikokuya.co.uk>
4064
4065         * Makefile.in: Update.
4066         * c-common.c (flag_no_line_commands, flag_no_output,
4067         flag_dump_macros, flag_dump_includes): New.
4068         * c-common.h (flag_no_line_commands, flag_no_output,
4069         flag_dump_macros, flag_dump_includes, preprocess_file): New.
4070         (init_c_lex): Update prototype.
4071         * c-lex.c (init_c_lex): Update prototype; move some code to
4072         c_common_init.
4073         * c-opts.c (preprocess_file): Subsume into c_common_init.
4074         (c_common_decode_option): Update flags.
4075         (c_common_init): Move code from preprocess_file and init_c_lex.
4076         (sanitize_cpp_opts): Update.
4077         * c-ppoutput.c: New, cppmain.c almost verbatim.
4078         * cpphash.h (struct printer): Remove.
4079         (struct cpp_reader): Remove print.
4080         * cpplib.h (dump_none, dump_only, dump_names, dump_definitions,
4081         cpp_preprocess_file): Remove.
4082         (struct cpp_options): Remove no_output, no_line_commands, dump_macros
4083         and dump_includes.
4084         * cppmain.c: Remove.
4085         * doc/passes.texi: Update.
4086
4087 2003-03-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4088
4089         * function.c (STACK_ALIGNMENT_NEEDED): New macro.  Default to 1.
4090         (assign_stack_local_1): Perform overall stack alignment only when
4091         STACK_ALIGNMENT_NEEDED is non-zero.
4092         * doc/tm.texi (STACK_ALIGNMENT_NEEDED): Document.
4093
4094         * pa.c (compute_frame_size): Rename fsize to size.  Account for
4095         alignment to a word boundary before general register save block.  Only
4096         account for double-word alignment before floating point register save
4097         block if one or more are saved.  Don't allocate space for %r3 when
4098         frame pointer is needed.
4099         (hppa_expand_prologue): Include alignment to word boundary in local
4100         frame size.
4101         * pa.h (STARTING_FRAME_OFFSET): Define to 8 on both 32 and 64-bit ports.
4102         (STACK_ALIGNMENT_NEEDED): Define.
4103
4104 2003-03-04  Kevin Buettner  <kevinb@redhat.com>
4105
4106         * dwarf2out.c (rtl_for_decl_location): Don't return NULL_RTX for
4107         global register variables.
4108
4109 2003-03-04  Alexandre Oliva  <aoliva@redhat.com>
4110
4111         * reload.c (reload_adjust_reg_for_mode): New function.
4112         (subst_reloads): Call it.
4113         (operands_match_p): Adjust registers using HARD_REGNO_NREGS.
4114         * reload.h (reload_adjust_reg_for_mode): Declare.
4115         * reload1.c (emit_input_reload_insns, emit_output_reload_insns):
4116         Call it.
4117
4118 2003-03-03  James E Wilson  <wilson@tuliptree.org>
4119
4120         * optabs.c (add_equal_note): Delete SUBREG_REG use.
4121         Fixes PR c/7872.
4122
4123 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
4124
4125         * config/h8300/h8300.md (*ixorsi3_ashift_16): New.
4126         (*ixorsi3_lshiftrt_16): New.
4127         (*iorsi3_ashift_16): Remove.
4128
4129 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
4130
4131         * config/h8300/h8300.md (*extzv_8_8): Use '?' to simplify the
4132         pattern.
4133
4134 2003-03-03  Geoffrey Keating  <geoffk@apple.com>
4135
4136         * doc/install.texi (Specific): Update entry for powerpc-darwin.
4137
4138 2003-03-03  Richard Henderson  <rth@redhat.com>
4139
4140         * config/ia64/ia64.h (HAVE_AS_LTOFFX_LDXMOV_RELOCS): Default to 0.
4141
4142 2003-03-03  David Edelsohn  <edelsohn@gnu.org>
4143
4144         * config/rs6000/rs6000.c (rs6000_multipass_dfa_lookahead): Delete.
4145         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Delete.
4146         (rs6000_variable_issue): Do not return negative value.
4147         (rs6000_issue_rate): Uniformly set issue rate to 1 for first
4148         scheduling pass.
4149
4150 2003-03-03  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4151
4152         * dwarf2out.c (dwarf2out_finish): Swap order of break_out_includes and
4153         prune_unused_types calls.
4154
4155 2003-03-03  Jason Merrill  <jason@redhat.com>
4156
4157         * tree-inline.c (find_builtin_longjmp_call): Save and restore
4158         lineno and input_filename.
4159         (find_alloca_call): Likewise.
4160         (inlinable_function_p): Run the langhook earlier.
4161
4162         * calls.c (compute_argument_addresses): Give the new MEMs a
4163         minimum alignment of PARM_BOUNDARY.
4164
4165 2003-03-03  J"orn Rennecke <joern.rennecke@superh.com>
4166
4167         * config/sh/sh.h (EXTRA_SPECS): Add subtarget_asm_relax_spec and
4168         subtarget_asm_isa_spec.
4169         (SUBTARGET_ASM_RELAX_SPEC, SUBTARGET_ASM_ISA_SPEC): Define.
4170         (ASM_SPEC): Define as SH_ASM_SPEC.
4171         (SH_ASM_SPEC): New; take the role of ASM_SPEC, but safe from svr4.h.
4172         Use subtarget_asm_relax_spec and subtarget_asm_isa_spec.
4173         * config/sh/elf.h (ASM_SPEC): Use SH_ASM_SPEC.
4174         (SUBTARGET_ASM_ISA_SPEC): Undef / define.
4175
4176         * sh.h (OVERRIDE_OPTIONS): Set default values for align_loops
4177         and align_jumps if not set.
4178         Force align_jumps to be at least 2.
4179         When relaxing, force align_functions to be at least the maximum of
4180         align_loops, align_jumps and 4.
4181         * sh.c (find_barrier, barrier_align): Honour align_jumps_log.
4182         (sh_loop_align): Honour align_loops_log.
4183
4184         * sh.md (length attribute): Use prev_nonnote_insn instead of PREV_INSN
4185         to check for indirect_jump_scratch.
4186         (indirect_jump_scratch): Add second set.
4187         * sh.c (output_far_jump): Use prev_nonnote_insn instead of PREV_INSN
4188         when looking for indirect_jump_scratch.
4189         Extract scratch register taking new structure of indirect_jump_scratch
4190         into account.
4191         (gen_block_redirect): Set INSN_SCOPE for indirect_jump_scratch.
4192
4193 2003-03-03  Jan Hubicka  <jh@suse.cz>
4194
4195         * calls.c (rtx_for_function_call): Take the address as an argument
4196         (expand_call): Do not modify the expression.
4197
4198         * toplev.c (rest_of_compilation):  Avoid cfg_cleanup calls when not
4199         optimizing.
4200
4201 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
4202
4203         * config/h8300/h8300.md (*ixorsi3_zext_hi): Restrict to
4204         TARGET_H8300H and TARGET_H8300S.
4205
4206 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
4207
4208         * config/h8300/h8300.md (a peephole2): New.
4209
4210 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
4211
4212         * config/h8300/h8300.md (*extzv_8_8): Use shorter code when
4213         operands[0] and operands[1] are different.
4214
4215 2003-03-03  Kazu Hirata  <kazu@cs.umass.edu>
4216
4217         * reload1.c (reload_cse_move2add): Remove variable success.
4218
4219 2003-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4220
4221         * ggc-common.c (ggc_rlimit_bound): Cast RLIM_INFINITY to avoid
4222         warnings.
4223
4224 2003-03-02  Richard Henderson  <rth@redhat.com>
4225
4226         * configure.in (HAVE_AS_LTOFFX_LDXMOV_RELOCS): New ia64 test.
4227         * config.in, configure: Rebuild.
4228         * config/ia64/ia64.c (ia64_ld_address_bypass_p): Accept lo_sum.
4229         * config/ia64/ia64.md (load_symptr): Use high/lo_sum for the
4230         paired ldtoffx and ldxmov annotations.
4231         (load_symptr_internal1): Remove.
4232         (load_symptr_high, load_symptr_low): New.
4233
4234 2003-03-02  Neil Booth  <neil@daikokuya.co.uk>
4235
4236         * c-incpath.c (add_path): Fix sysp assignment.
4237
4238 2003-03-02  Kurt Garloff  <garloff@suse.de>
4239
4240         * params.def: Introduce parameter max-inline-insns-rtl for
4241         a separate limit for the RTL inliner.
4242         * params.h: Likewise.
4243         * integrate.c (function_cannot_inline_p): Use it.
4244         * toplev.c (decode_f_option): Set multiple parameters
4245         controlling inlining with -finline-limit.
4246         * params.def: Fix orthographic and typographic errors.
4247         * doc/invoke.texi: Document parameters controlling inlining
4248         and the way -finline-limit sets multiple of them.
4249
4250         * tree.h (struct tree_decl): Introduce inlined_function_flag,
4251         recording whether the function became eligible for inlining
4252         by a compiler flag rather than the declaration.
4253         Provide DID_INLINE_FUNC macro to access it.
4254         * c-decl.c (grokdeclarator): Set DID_INLINE_FUNC.
4255         * cp/decl.c (grokfndecl): Likewise.
4256         * toplev.c (rest_of_compilation): Likewise.
4257         * cp/optimize (maybe_clone_body): Copy DID_INLINE_FUNC.
4258         * print-tree.c (print_node): Report it.
4259         * params.def: Introduce new max-inline-insns-auto limit.
4260         * params.h: Likewise.
4261         * tree-inline.c (inlinable_function_p): Apply it to functions
4262         with DID_INLINE_FUNC set.
4263         * toplev.c (decode_f_option): Initialize it from -finline-limit
4264         value.
4265         * doc/invoke.texi: Document new parameter.
4266
4267 2003-03-02  Geoffrey Keating  <geoffk@apple.com>
4268
4269         * fix-header.c (read_scan_file): Don't reference simplify_path.
4270
4271 2003-03-02  Stephane Carrez  <stcarrez@nerim.fr>
4272
4273         * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't enable
4274         min/max instructions by default as may result in reload errors.
4275
4276 2003-03-02  Stephane Carrez  <stcarrez@nerim.fr>
4277
4278         * config/m68hc11/m68hc11.md ("mulqi3"): Allow address register to
4279         avoid reload problems; define split for it.
4280
4281 2003-03-02  Stephane Carrez  <stcarrez@nerim.fr>
4282
4283         * config/m68hc11/m68hc11.c (m68hc11_shift_operator): New function.
4284         * config/m68hc11/m68hc11-protos.h (m68hc11_shift_operator): Declare.
4285         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register.
4286         * config/m68hc11/m68hc11.md ("rotrhi3", "rotlhi3"): New patterns for
4287         rotatert and rotate.
4288         ("rotrhi3_const", "rotlhi3_const"): Rename of old 'rotrhi3' insns.
4289         ("*rotrhi3", "*rotlhi3"): New insn pattern for non-const rotatert.
4290         ("*rotrhi3_addr"): New split for shift insns on address register.
4291         ("*lshrhi3", "*ashrhi3", "*ashlhi3_2"): Use new split.
4292         * config/m68hc11/larith.asm (___rotlhi3): New asm function.
4293         (___rotrhi3): Likewise.
4294         * config/m68hc11/t-m68hc11-gas (LIB1ASMFUNCS): Build them.
4295
4296 2003-03-02  Neil Booth  <neil@daikokuya.co.uk>
4297
4298         * toplev.c (aux_base_name): Moved from toplev.h.
4299         (filename): Constify.
4300         (lang_dependent_init): Don't duplicate name.
4301         (process_options): Set aux_base_name here, not...
4302         (do_compile): ...here.  Change protoype.
4303         (toplev_main): Move some code from do_compile.
4304         * toplev.h: Remove aux_base_name.
4305
4306 2003-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4307
4308         * config/h8300/h8300-protos.h: Add a prototype for
4309         iorxor_operator.
4310         * config/h8300/h8300.c (print_operand): Handle 'c'.
4311         (iorxor_operator): New.
4312         * config/h8300/h8300.h (PREDICATE_CODES): Add iorxor_operator.
4313         * config/h8300/h8300.md (*iorhi3_zext): Remove.
4314         (*iorsi3_zexthi): Likewise.
4315         (*iorsi3_zextsi): Likewise.
4316         (*xorhi3_zextqi): Likewise.
4317         (*xorsi3_zexthi): Likewise.
4318         (*xorsi3_zextsi): Likewise.
4319         (*ixorhi3_zext): New.
4320         (*ixorsi3_zext_qi): Likewise.
4321         (*ixorsi3_zext_hi): Likewise.
4322
4323 2003-03-02  Neil Booth  <neil@daikokuya.co.uk>
4324
4325         * c-incpath.c (remove_component_p, simplify_path): Move back to
4326         cppfiles.c.
4327         (remove_duplicates): Use cpp_simplify_path.
4328         * c-incpath.h (simplify_path): Remove.
4329         * c-lex.c: Don't include c-incpath.h.
4330         (init_c_lex): Remove simplify_path.
4331         * cppfiles.c (remove_component_p, cpp_simplify_path): Restore.
4332         (find_or_create_entry, validate_pch): Revert.
4333
4334 2003-03-02  Ashif Harji  <asharji@uwaterloo.ca>
4335
4336         * gcc.c (default_compilers): Add -no-integrated-cpp flag to invoke
4337           an external cpp during compilation.
4338         (option_map): Likewise.
4339         * objc/lang-specs.h (default_compilers): Similarly.
4340         * doc/invoke.texi: Document -no-integrated-cpp flag.
4341
4342 2003-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4343
4344         * config/h8300/h8300.md (zero_extendqisi2): Change to an
4345         expander.
4346         (*zero_extendqisi2_h8300): New.
4347         (*zero_extendqisi2_h8300hs): New.
4348         (two splitters): New.
4349
4350 2003-03-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4351
4352         * fp-bit.h (float_to_usi): Fix condition wrapping prototype.
4353
4354 2003-03-01  Kazu Hirata  <kazu@cs.umass.edu>
4355
4356         * config/h8300/h8300.md (a peephole2): Remove dead code.
4357
4358 2003-03-01  Roger Sayle  <roger@eyesopen.com>
4359
4360         PR c++/9367
4361         * builtin-types.def (DEF_FUNCTION_TYPE_VAR_3): New macro.
4362         (BT_FN_INT_CONST_STRING_VALIST_ARG,
4363         BT_FN_INT_STRING_CONST_STRING_VALIST_ARG,
4364         BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG,
4365         BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG,
4366         BT_FN_INT_STRING_CONST_STRING_VAR,
4367         BT_FN_INT_CONST_STRING_CONST_STRING_VAR,
4368         BT_FN_INT_STRING_SIZE_CONST_STRING_VAR): New built-in types.
4369         * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2,
4370         ATTR_NONNULL_3): Also include the nothrow attribute.
4371         (sprintf, scanf, sscanf, vprintf, vsprintf, snprintf,
4372         vsnprintf, vscanf, vsscanf): Don't define attributes here.
4373         * builtins.def (putchar, puts): Make full C89 built-ins.
4374         (snprintf, sprintf, scanf, sscanf, vprintf, vscanf,
4375         vsscanf, vsnprintf, vsprintf): New built-ins.
4376         * c-common.c (c_common_nodes_and_builtins): Handle new macro
4377         DEF_FUNCTION_TYPE_VAR_3.
4378
4379         * doc/extend.texi: Document these new built-in functions.
4380
4381 2003-03-01  Kazu Hirata  <kazu@cs.umass.edu>
4382
4383         * config/h8300/h8300.md (a peephole2): New.
4384
4385 2003-03-01  Richard Earnshaw  <rearnsha@arm.com>
4386
4387         * predict.c (estimate_bb_frequencies): Correctly set
4388         real_values_initialized after initialization.
4389
4390 2003-03-01  Neil Booth  <neil@daikokuya.co.uk>
4391
4392         * Makefile.in (C_AND_OBJC_OBJS, c-incpath.o, c-lex.o, LIBCPP_OBJS,
4393         cppinit.o, cppdefault.o, fix-header): Update.
4394         * c-incpath.c: New file.
4395         * c-incpath.h: New file.
4396         * c-lex.c: Include c-incpath.h.
4397         (init_c_lex): Register path simplifier.
4398         * c-opts.c: Include cppdefault.h and c-incpath.h.
4399         (TARGET_SYSTEM_ROOT, verbose, iprefix, sysroot, std_inc,
4400         std_cxx_inc, quote_chain_split, add_prefixed_path): New.
4401         (COMMAND_LINE_OPTIONS): Add more options from cpplib.
4402         (missing_arg, c_common_decode_option): Handle them.
4403         (c_common_post_options): Register include chains.
4404         (print_help): Update.
4405         * cppdefault.h (struct default include): Update.
4406         Move some macros to ...
4407         * cppdefault.c: ... here.
4408         (cpp_include_defaults): Add extra field add_sysroot.
4409         * cppfiles.c (include_file, search_from, find_or_create_entry,
4410         cpp_included, find_include_file, remap_filename): Update for
4411         renaming of search_path to cpp_path, and of the chain headers.
4412         (remove_component_p, _cpp_simplify_pathname): Move to c-incpath.c.
4413         * cpphash.h (struct search_path): Move to cpplib.h.
4414         (struct cpp_buffer, struct cpp_reader): Update.
4415         (_cpp_simplify_pathname): Remove.
4416         * cppinit.c: Don't include prefix.h and cppdefault.h.
4417         (INO_T_EQ, INO_T_COPY, path_include, append_include_chain,
4418         remove_dup_dir, remove_dup_nonsys_dirs, remove_dup_dirs,
4419         init_standard_includes, BRACKET, SYSTEM, AFTER, no_dir,
4420         no_pth, cpp_handle_options): Remove.
4421         (struct pending_option): Remove chain members.
4422         (cpp_destroy, cpp_read_main_file, COMMAND_LINE_OPTIONS,
4423         cpp_handle_option): Update.
4424         * cpplib.h (struct cpp_path, cpp_set_include_chains): New.
4425         (struct cpp_options): Remove quote_include, bracket_include,
4426         include_prefix, include_prefix_len, verbose, ignore_srcdir,
4427         no_standard_includes, no_standard_cplusplus_includes.
4428         (struct cpp_callbacks): Add simplify_path.
4429         (cpp_handle_options): Remove.
4430         * fix-header.c: Include c-incpath.h.
4431         (read_scan_file): Update to use c-incpath functionality.
4432         * doc/passes.texi: Update.
4433
4434 2003-03-01  Kazu Hirata  <kazu@cs.umass.edu>
4435
4436         * config/h8300/h8300.c (bit_operand): Accept MEM only if it
4437         satisfies EXTRA_CONSTRAINT 'U'.
4438
4439 2003-03-01  Kazu Hirata  <kazu@cs.umass.edu>
4440
4441         * config/h8300/h8300.md (*tst_extzv_bitqi_1_n): Take a scratch
4442         register.
4443         (*tst_extzv_memqi_1_n): Change to a splitter.
4444         (a peephole2): Update.
4445
4446 2003-03-01  Richard Earnshaw  <rearnsha@arm.com>
4447
4448         * predict.c (estimate_bb_frequencies): Initialize the sreal
4449         constants once per compilation.
4450
4451 2003-02-28  Richard Henderson  <rth@redhat.com>
4452
4453         * toplev.c (flag_eliminate_unused_debug_types): Enable by default.
4454
4455 2003-02-28  scott snyder  <snyder@fnal.gov>
4456
4457         * flags.h: Add flag_eliminate_unused_debug_types.
4458         * toplev.c: Add flag_eliminate_unused_debug_types.
4459         (f_options): Add -feliminate-unused-debug-types.
4460         * dwarf2out.c (struct file_table): Add emitted member.
4461         (splice_child_die): Fix the parent pointer for the child being
4462         spliced.
4463         (lookup_filename): Maintain file_table.emitted array.  Don't
4464         output .file directive here.
4465         (maybe_emit_file): (new)
4466         (init_file_table): Set up file_table.emitted.
4467         (dwarf2out_source_line): Use maybe_emit_file.
4468         (dwarf2out_start_source_file): Use maybe_emit_file.
4469         (dwarf2out_init): Use maybe_emit_file.
4470         (prune_unused_types_walk_attribs): (new)
4471         (prune_unused_types_mark): (new)
4472         (prune_unused_types_walk): (new)
4473         (prune_unused_types_prune): (new)
4474         (prune_unused_types): (new)
4475         (dwarf2out_finish): Call prune_unused_types if
4476         flag_eliminate_unused_debug_types is set.
4477         * doc/invoke.texi (Option Summary): Add
4478         -feliminate-unused-debug-types.
4479         (Debugging Options): Likewise.
4480
4481 2003-02-28  Geoffrey Keating  <geoffk@apple.com>
4482
4483         * doc/invoke.texi: Change .pch to .gch.
4484         * cppfiles.c (open_file_pch): Likewise.
4485         * gcc.c (default_compilers): Likewise.
4486
4487 2003-02-28  Aldy Hernandez  <aldyh@redhat.com>
4488
4489         * floatlib.c: Remove.
4490
4491 2003-02-28  Jason Merrill  <jason@redhat.com>
4492
4493         * stor-layout.c (variable_size): Leave a "minus 1" outside the
4494         SAVE_EXPR.
4495
4496 2003-02-28  David Edelsohn  <edelsohn@gnu.org>
4497
4498         * config/rs6000/power4.md: Add compare bypass.
4499
4500 2003-02-28  Jason Thorpe  <thorpej@wasabisystems.com>
4501
4502         * config/netbsd.h: Update copyright years.
4503         (NETBSD_CPP_SPEC): Define _REENTRANT and _PTHREADS if
4504         -pthread is specified on the command line.
4505
4506 2003-02-28  Dale Johannesen <dalej@apple.com>
4507
4508         * loop.c (struct movable): Add insert_temp, shrink savemode.
4509         (scan_loop): Accept invariants that require copying; mark as
4510         insert_temp.
4511         (combine_movables): Don't combine insert_temp movables.
4512         (move_movables): Insert copies for insert_temp movables.
4513         Don't record the info based on regno for insert_temp's.
4514
4515 2003-02-28  Joel Sherrill <joel@OARcorp.com>
4516
4517         PR 9638/other
4518         * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Ensure the
4519         this constant defaults to 1.
4520
4521 2003-02-28  Bob Wilson  <bob.wilson@acm.org>
4522
4523         * config.gcc (xtensa-*-linux*): Add t-slibgcc-elf-ver to tmake_file.
4524
4525 2003-02-28  Richard Earnshaw  <rearnsha@arm.com>
4526
4527         * arm.md (mulhisi3, mulhisi3addsi, mulhidi3adddi): Enable for any
4528         ARMv5e processor, not just for XScale.  Instructions are predicable.
4529         (mulhisi3tb, mulhisi3bt, mulhisi3tt): New patterns for ARMv5e.
4530
4531 2003-02-28  Nick Clifton  <nickc@redhat.com>
4532
4533         * config/arm/arm.c (note_invalid_constants): Change parameter type
4534         from bool to int.
4535
4536 2003-02-28  Kazu Hirata  <kazu@cs.umass.edu>
4537
4538         * config/h8300/h8300.md (*tst_extzv_bitqi_1_n): Accept the
4539         test of bit 7.
4540         (*tst_extzv_memqi_1_n): Likewise.
4541         (a peephole2): New.
4542
4543 2003-02-28  Richard Sandiford  <rsandifo@redhat.com>
4544
4545         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Wrap in
4546         #ifndef __mips16.
4547
4548 2003-02-28  Jan Hubicka  <jh@suse.cz>
4549
4550         * combine.c (gen_lowpart_for_combine): Update handling of
4551         subregs_of_mode
4552         * flow.c (life_analysis, mark_used_regs): Likewise.
4553         * regclass.c (subregs_of_mode): Turn into single bitmap.
4554         (cannot_change-mode_set_regs, invalid_mode_change_p): Update
4555         dealing with subregs_of_mode
4556         * regs.h (subregs_of_mode): Update prototype.
4557
4558 2003-02-28  Josef Zlomek  <zlomekj@suse.cz>
4559
4560         * emit-rtl.c (set_reg_attrs_for_parm): New function.
4561         * rtl.h (set_reg_attrs_for_parm): New exported function.
4562         * function.c (assign_parms): Use set_reg_attrs_for_parm instead of
4563         set_reg_attrs_from_mem.
4564
4565 2003-02-27  Roger Sayle  <roger@eyesopen.com>
4566             Zack Weinberg <zack@codesourcery.com>
4567
4568         * gcc.c (do_spec_1):  Treat %U like %u for unique associations.
4569
4570 2003-02-27  Kazu Hirata  <kazu@cs.umass.edu>
4571
4572         * reload1.c (sext_for_mode): Remove.
4573         (reload_cse_move2add): Use trunc_int_for_mode instead of
4574         sext_for_mode.
4575         (move2add_note_store): Likewise.
4576         Reset register information if we see a set in non-integer
4577         mode.
4578
4579 2003-02-27  David Edelsohn  <edelsohn@gnu.org>
4580
4581         * config/rs6000/aix43.h (ASM_SPEC): Only emit -mppc64 if no -mcpu
4582         option.
4583         (ASM_CPU_SPEC): Use -m620 for Power3, Power4, 620, 630.
4584         * config/rs6000/aix51.h: Same.
4585         * config/rs6000/aix52.h: Same.
4586         * config/rs6000/power4.md: Additional VMX bypasses.
4587
4588 2003-02-27   Geert Bosch <bosch@gnat.com>
4589
4590         * toplev.c (print_version): Add indentation for GGC heuristics and
4591         output after printing version information.
4592
4593 2003-02-27  James E Wilson  <wilson@tuliptree.org>
4594
4595         * combine.c (simplify_comparison): Require integral mode when
4596         permuting SUBREG with AND.
4597
4598 2003-02-27  Steve Ellcey  <sje@cup.hp.com>
4599
4600         * config/ia64/hpux.h (STARTFILE_PREFIX_SPEC): Remove.
4601
4602 2003-02-27  Nick Clifton  <nickc@redhat.com>
4603
4604         * config/arm/arm.md (extendsfdf2): Add pattern accidentally
4605         deleted when cirrus instructions were added.
4606
4607 2003-02-27  Jason Thorpe  <thorpej@wasabisystems.com>
4608
4609         * config.gcc (*-*-netbsd[2-9]*, *-*-netbsdelf[2-9]*): Enable
4610         POSIX thread support by default.
4611
4612 2003-02-27  Roger Sayle  <roger@eyesopen.com>
4613
4614         * config/i386/cygwin.h: Don't include any other files directly.
4615         * config/i386/mingw32.h: Don't include cygwin.h directly.
4616         * config.gcc (cygwin, mingw32, uwin): Instead make these files
4617         explicit in the tm_files variable.
4618
4619 2003-02-27  Alan Modra  <amodra@bigpond.net.au>
4620
4621         * config/rs6000/rs6000.md: Add TI constant splitter.
4622
4623 2003-02-26  Alexandre Oliva  <aoliva@redhat.com>
4624
4625         * builtins.c (purge_builtin_constant_p): Handle subreg of
4626         constant_p_rtx too.
4627
4628         * function.c (assign_stack_local_1): Truncate constant added to
4629         frame_pointer_rtx or virtual_stack_vars_rtx for Pmode.
4630
4631 2003-02-26  David Edelsohn  <edelsohn@gnu.org>
4632
4633         * config.gcc: Add power4 to PowerPC with_cpu list.
4634
4635 2003-02-26  Jan Hubicka  <jh@suse.cz>
4636
4637         * objc-act.c: (mark_referenced_methods): Fix compilation problem.
4638
4639 2003-02-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4640
4641         * gcov-dump.c (print_prefix): Fix signedness warning.
4642         * gcov-io.h (struct counter_section, struct counter_section_data): New.
4643         (struct function_info): n_arc_counts field removed, n_counter_sections,
4644         counter_sections fields added.
4645         (struct gcov_info): arc_counts, n_arc_counts fields removed,
4646         n_counter_sections, counter_sections fields added.
4647         * libgcov.c (gcov_exit, __gcov_flush): Add support for multiple
4648         profile sections.
4649         * profile.h (MAX_COUNTER_SECTIONS): New.
4650         (struct section_info): New.
4651         (struct profile_info): count_instrumented_edges,
4652         count_edges_instrumented_now fields removed, n_sections, section_info
4653         fields added.
4654         (find_counters_section): Declare.
4655         * profile.c (struct function_list): count_edges field removed,
4656         n_counter_sections, counter_sections fields added.
4657         (set_purpose, label_for_tag, build_counter_section_fields,
4658         build_counter_section_value, build_counter_section_data_fields,
4659         build_counter_section_data_value, build_function_info_fields,
4660         build_function_info_value, build_gcov_info_fields,
4661         build_gcov_info_value): New static functions.
4662         (find_counters_section): New function.
4663         (instrument_edges, get_exec_counts, compute_branch_probabilities,
4664         branch_prob, create_profiler): Modified to support multiple profile
4665         sections.
4666
4667 2003-02-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4668
4669         * pa.c (compute_frame_size): Don't assume PREFERRED_STACK_BOUNDARY
4670         is 8 * STACK_BOUNDARY.
4671         * pa.h (PREFERRED_STACK_BOUNDARY): Change to 128 on 64-bit port.
4672
4673 2003-02-26  Michael Matz  <matz@suse.de>
4674
4675         * ra-colorize.c (merge_moves): Fix list handling.
4676
4677 2003-02-26  Nick Clifton  <nickc@redhat.com>
4678
4679         * config/arm/arm.c (is_load_address): Rename to...
4680         (arm_memory_load_p) ... this and make it check for SUBREGs and
4681         constant loads that will be converted into loads from the
4682         minipool.
4683         (is_cirrus_insn): Rename to ...
4684         (arm_cirrus_insn_p): ... this, for consistency.  Replace test
4685         of CIRRUS_NO with CIRRUS_NOT.
4686         (cirrus_reorg): Use renamed functions.
4687         (note_invalid_constants): Change from a void function to bool.
4688         Add an extra parameter, saying whether the fixups should be
4689         pushed.  Return true if fixups are needed.
4690         (arm_reorg): Use renamed functions.  Use INSN_P.  Replace test
4691         of CIRRUS_NO with CIRRUS_NOT.
4692         * config/arm/arm.h (FLOAT_WORDS_BIG_ENDIAN): Mention that
4693         other floating point co-processors can also affect this.
4694         * config/arm/arm.md ("type" attribute): Add mav_farith and
4695         mav_dmult.  Replace references to "cirrus_type" attribute with
4696         "type".
4697         * config/arm/cirrus.md ("cirrus_fpu" attribute): Delete.
4698         ("cirrus_type" attribute): Delete - use "type" instead.
4699         ("cirrus" attribute): Replace 'no' with 'not' and 'yes' with
4700         'normal'.
4701
4702 2003-02-25  Jan Hubicka  <jh@suse.cz>
4703
4704         * objc-act.c: Include cgraph.h
4705         (mark_referenced_methods): New function.
4706         (objc_init): Call it.
4707         * objc-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Set.
4708
4709         * c-decl.c (finish_function): Honor can_defer_p even in unit-at-a-time
4710         mode.
4711
4712         * optabs.c (expand_fix): Do not widen the input operand.
4713
4714         * expr.c (emit_group_store):  Fix crash when converting single
4715         register into complex register.
4716
4717         * Makefile.in (jump.o, regclass.o, alias.o): Add dependency on timevar.h
4718         * alias.c: Include timevar.h
4719         (init_alias_analysis):  Set timevar
4720         * jump.c: Include timevar.h
4721         (rebuild_jump_labels):  Set timevar
4722         * regcalss.c: Include timevar.h
4723         (reg_scan):  Set timevar
4724         * timevar.def (TV_ALIAS_ANALYSIS, TV_REG_SCAN, TV_REBUILD_JUMP): New
4725
4726 2003-02-26  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4727
4728         * cse.c (count_reg_usage): Fix handling of REG_EQUAL notes.
4729
4730         * Makefile.in (loop-unroll.o): New.
4731         * cfgloop.h (UAP_PEEL, UAP_UNROLL, UAP_UNROLL_ALL): New.
4732         (unroll_and_peel_loops): Declare.
4733         * alias.c (init_alias_analysis): Flag_unroll_loops renamed to
4734         flag_old_unroll_loops.
4735         * loop.c (loop_invariant_p): Ditto.
4736         * unroll.c (unroll_loop): Flag_unroll_all_loops renamed to
4737         flag_old_unroll_all_loops.
4738         * flags.h (flag_unroll_loops): Renamed to flag_old_unroll_loops.
4739         (flag_unroll_all_loops): Renamed to flag_old_unroll_all_loops.
4740         * params.def (PARAM_MAX_UNROLLED_INSNS): Default value changed.
4741         (PARAM_MAX_AVERAGE_UNROLLED_INSNS, PARAM_MAX_UNROLL_TIMES,
4742         PARAM_MAX_PEELED_INSNS, PARAM_MAX_PEEL_TIMES,
4743         PARAM_MAX_COMPLETELY_PEELED_INSNS, PARAM_MAX_COMPLETELY_PEEL_TIMES,
4744         PARAM_MAX_ONCE_PEELED_INSNS): New.
4745         * toplev.h (flag_old_unroll_loops, flag_old_unroll_all_loops): New.
4746         (flag_unroll_loops, flag_unroll_all_loops): Used for new unroller
4747         instead of old one.
4748         (flag_peel_loops): New.
4749         (lang_independent_options): The new flags added.
4750         (rest_of_compilation): Call new unroller.
4751         (process_options): Setup flags for coexistence of old and new unroller.
4752         * doc/invoke.texi: Document new options.
4753         * doc/passes.texi: Document new unroller pass.
4754
4755 2003-02-26  David Billinghurst <David.Billinghurst@riotinto.com>
4756
4757         * fixinc/fixincl.x: Regenerate
4758
4759 2003-02-26  Josef Zlomek  <zlomekj@suse.cz>
4760
4761         * function.c (assign_parms): Set reg_attrs for parameters passed in
4762         registers.
4763
4764 2003-02-26  Alan Modra  <amodra@bigpond.net.au>
4765
4766         PR target/9681
4767         * tlink.c (scan_linker_output): Drop leading '.' from symbol names.
4768
4769 2003-02-25  David Edelsohn  <edelsohn@gnu.org>
4770
4771         * config/rs6000/xcoff.h (ASM_FILE_START): Do not emit machine
4772         pseudo-op.
4773
4774 2003-02-25  Roger Sayle  <roger@eyesopen.com>
4775
4776         * combine.c (combine_simplify_rtx, simplfy_comparison):  Use CC0_P.
4777         * cse.c (invalidate_skipped_set):  Likewise.
4778         * integrate.c (subst_constants):  Likewise.
4779         * jump.c (reversed_comparison_code_parts):  Likewise.
4780         * loop.c (canonicalize_condition):  Likewise.
4781         * simplify-rtx.c (simplify_relational_operation):  Likewise.
4782
4783 2003-02-25  Roger Sayle  <roger@eyesopen.com>
4784
4785         * builtins.def (DEF_LIB_ALWAYS_BUILTIN, DEF_UNUSED_BUILTIN): Delete.
4786         (abs, labs, fabs, fabsf, fabsl, abort, exit, _exit, _Exit):  Use
4787         the appropriate macro to define built-in function.
4788         (fmod,fmodf,fmodl): New built-in functions.
4789
4790         * doc/extend.texi (fmod,fmodf,fmodl): Document new built-ins.
4791
4792 2003-02-25  Richard Henderson  <rth@redhat.com>
4793
4794         * config/i386/i386.c (function_arg): Pass variable sized
4795         structures correctly on the stack.
4796
4797 2003-02-25  Kazu Hirata  <kazu@cs.umass.edu>
4798
4799         * reload1.c (reload_cse_move2add): Use STRICT_LOW_PART if PLUS
4800         does not reduce the cost of SET.
4801
4802 2003-02-25  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
4803
4804         PR target/9732
4805         * config/rs6000/rs6000.c (first_reg_to_save): Handle
4806         PIC_OFFSET_TABLE_REGNUM for -fPIC too.
4807         (rs6000_emit_prologue): Likewise.
4808         (rs6000_emit_epilogue): Likewise.
4809         * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Make
4810         PIC_OFFSET_TABLE_REGNUM a fixed register for -fPIC.
4811
4812 2003-02-25  Richard Henderson  <rth@redhat.com>
4813
4814         * real.c (real_to_integer2): Force overflow result only for
4815         unsigned overflow.
4816
4817 2003-02-25  Kazu Hirata  <kazu@cs.umass.edu>
4818
4819         * gcse.c (cprop_jump): Revert the 2003-02-23 change.
4820
4821 2003-02-25  Vladimir Makarov  <vmakarov@toke.toronto.redhat.com>
4822             Richard Henderson  <rth@redhat.com>
4823
4824         * sched-ebb.c (add_deps_for_risky_insns): Add the dependence when
4825         there is no similar load.
4826
4827 2003-02-25  Vladimir Makarov  <vmakarov@redhat.com>
4828             Richard Henderson  <rth@redhat.com>
4829
4830         * sched-int.h (INSN_TRAP_CLASS, WORST_CLASS): Move them from
4831         sched-rgn.c.
4832         (add_forward_dependence): New function prototype.
4833
4834         * sched-rgn.c (INSN_TRAP_CLASS, WORST_CLASS): Move them to
4835         sched-init.h.
4836         (CONST_BASED_ADDRESS_P, may_trap_exp, haifa_classify_insn): Move
4837         them to haifa-sched.c.
4838
4839         * haifa-sched.c (CONST_BASED_ADDRESS_P, may_trap_exp,
4840         haifa_classify_insn): Move them from sched-rgn.c.
4841
4842         * sched-deps.c (add_dependence): Return flag of creating a new
4843         entry.
4844         (add_forward_dependence): New function.
4845         (compute_forward_dependences): Use the function.
4846
4847         * sched-ebb.c (earliest_block_with_similiar_load): New function.
4848         (add_deps_for_risky_insns): New function.
4849         (schedule_ebb): Call the function.
4850
4851 2003-02-20  Aldy Hernandez  <aldyh@redhat.com>
4852
4853         * doc/tm.texi: Document Rename TARGET_VECTOR_TYPES_COMPATIBLE to
4854         TARGET_VECTOR_OPAQUE_P.  Document accordingly.
4855
4856         * testsuite/gcc.dg/20030218-1.c: Check that initialization of
4857         opaque types fail.
4858
4859         * c-typeck.c (comptypes): Change call to vector_types_compatible
4860         to vector_opaque_p.
4861         (convert_for_assignment): Call vector_opaque_p instead of
4862         vector_types_compatible.
4863         (really_start_incremental_init): Disallow initialization of opaque
4864         types.
4865
4866         * target-def.h: Remove TARGET_VECTOR_TYPES_COMPATIBLE.
4867         Define TARGET_VECTOR_OPAQUE_P.
4868         (TARGET_INITIALIZER): Same.
4869
4870         * target.h (struct gcc_target): Remove vector_types_compatible.
4871         Add vector_opaque_p.
4872
4873         * config/rs6000/rs6000.c (rs6000_spe_vector_types_compatible):
4874         Remove.
4875         (is_ev64_opaque_type): Check for TARGET_SPE and make sure type is
4876         a vector type.  Change return type to bool.
4877         (TARGET_VECTOR_TYPES_COMPATIBLE): Remove.
4878         (TARGET_VECTOR_OPAQUE_P): Define.
4879
4880         * cp/parser.c (cp_parser_init_declarator): Call vector_opaque_p
4881         target hook.
4882         Include target.h.
4883         (cp_parser_init_declarator): Fix typo in function comments.
4884
4885 2003-02-25  Jan Hubicka  <jh@suse.cz>
4886
4887         * Makefile.in (lcm.o):  Add dependency on function.h
4888         * lcm.c (function.h): Include.
4889         * i386.c (machine_function, ix86_stack_locals,
4890         * ix86_save_varrargs_registers) : Move to
4891         ...
4892         * i386.h (machine_function, ix86_stack_locals,
4893         ix86_save_varrargs_registers): ... here; add optimize_mode_switching
4894         (ix86_optimize_mode_switching): New.
4895         * i386.md (fix patterns): Set ix86_optimize_mode_switching
4896
4897 2003-02-25  Nick Clifton  <nickc@redhat.com>
4898
4899         * config/d30v/d30v.c (d30v_init_cumulative_args): Fix typo.  Name
4900         of fourth arg is 'fndecl' not 'indirect'.  Update comment
4901         describing the function's parameters.
4902
4903 2003-02-24  Jan Hubicka  <jh@suse.cz>
4904
4905         * combine.c (simplify_shift_const):  Fix previous patch.
4906
4907 2003-02-24  Jeff Law  <law@redhat.com>
4908
4909         * i386.md (testdi_1_rex64): Discourage reload from using the %eax
4910         alternative.
4911         (testsi_1, testhi_1, testqi_1): Likewise.
4912
4913 2003-02-24  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
4914
4915         * config/alpha/osf.h (TARGET_OS_CPP_BUILTINS): Rename
4916         __EXTERN_PREFIX to __PRAGMA_EXTERN_PREFIX.
4917         * doc/extend.texi (Tru64 Pragmas): Reflect this.
4918
4919         * fixinc/inclhack.def (alpha___extern_prefix): Indicate #pragma
4920         extern_prefix support for Tru64 UNIX V5 <sys/stat.h>.
4921         * fixinc/fixincl.x: Regenerate.
4922         * fixinc/tests/base/sys/stat.h [ALPHA___EXTERN_PREFIX_CHECK]: New
4923         testcase.
4924         Fixes PR c/5059, c/6126, other/9671.
4925
4926 2003-02-24  Roger Sayle  <roger@eyesopen.com>
4927
4928         * gcc.c (do_spec_1) ['{']:  Handle pending argument upon return
4929         from handle_braces in "%{...}".
4930
4931 2003-02-24  Kaz Kojima  <kkojima@gcc.gnu.org>
4932
4933         * config/sh/sh.c (TARGET_HAVE_TLS): Conditionally define.
4934         (prepare_move_operands): Handle TLS operands.
4935         (tls_symbolic_operand): New.
4936         (nonpic_symbol_mentioned_p): Handle TLS UNSPECs.
4937         (legitimize_pic_address): Do nothing for the TLS symbol.
4938         (sh_encode_section_info): Handle TLS case.
4939         (sh_strip_name_encoding): Drop TLS encoding.
4940         * config/sh/sh-protos.h (tls_symbolic_operand): Add prototype.
4941         * config/sh/sh.h (SH_TLS_ENCODING): Define.
4942         (TLS_SYMNAME_P, STRIP_TLS_ENCODING): Likewise.
4943         (ASM_OUTPUT_LABELREF): Drop TLS encoding.
4944         (OUTPUT_ADDR_CONST_EXTRA): Handle TLS UNSPECs.
4945         * config/sh/sh.md: Define TLS UNSPEC constants.
4946         (type): Add tls_load.
4947         ("tls_global_dynamic", "tls_local_dynamic"): New insns.
4948         ("sym2DTPOFF", "symDTPOFF2reg", "sym2GOTTPOFF"): New expanders.
4949         ("tls_initial_exec"): New insn.
4950         ("sym2TPOFF", "symTPOFF2reg"): New expanders.
4951         ("load_gbr"): New insn.
4952
4953         * configure.in (HAVE_AS_TLS): Add sh-*-* and sh[34]*-*-* cases.
4954         * configure: Regenerate.
4955
4956 2003-02-24  Alan Modra  <amodra@bigpond.net.au>
4957
4958         PR 9297, PR 9722
4959         * calls.c (store_one_arg): Revert 1999-02-16 change.  Revert
4960         2000-12-17 change.  Pass EXPAND_STACK_PARM to expand_expr.
4961         * expr.h (enum expand_modifier): Define EXPAND_STACK_PARM.
4962         (enum block_op_methods): Reorder for better store_expr optimization.
4963         * expr.c (store_expr): Test bit 1 of "want_value" for call param
4964         stores, test bit 0 for original want_value meaning.  Pass
4965         BLOCK_OP_CALL_PARM to emit_block_move when bit 1 set.  Adjust
4966         recursive calls, and calls to expand_param.
4967         (expand_expr): Handle EXPAND_STACK_PARM modifier.  When cse
4968         expected, set target to 0 rather than to subtarget.  Formatting.
4969
4970 2003-02-23  Kazu Hirata  <kazu@cs.umass.edu>
4971
4972         * gcse.c (cprop_jump): Use the REG_EQUAL note if available.
4973
4974 2003-02-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4975
4976         * doc/invoke.texi (ggc-min-expand, ggc-min-heapsize): Document
4977         new default behavior.
4978         * ggc-common.c: Include sys/resource.h.
4979         (ggc_rlimit_bound): New function.
4980         (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Update
4981         defaults to account for rlimits.
4982
4983 2003-02-22  Richard Henderson  <rth@redhat.com>
4984
4985         * i386.c, i386.h (TUNEMASK): Rename from CPUMASK.
4986
4987 2003-02-22  Kelley Cook <kelley@dwhoops.info>
4988
4989         * i386.h, i386.c, i386.md (ix86_tune): Rename from ix86_cpu.
4990         (ix86_tune_string): Rename from ix86_cpu_string.
4991
4992 2003-02-22  Kelley Cook <kelleycook@comcast.net>
4993
4994         * config/i386/i386.c: Replace "mcpu" with "mtune".
4995         * config/i386/i386.h (TARGET_OPTIONS): Likewise.
4996         (CC1_CPU_SPEC): Likewise. New warning for "-mcpu".
4997         * doc/invoke.texi (i386 and x86-64 Options): Replace "mcpu"
4998         with "mtune".  Note that "mcpu" is a deprecated synonym for "mtune".
4999
5000 2003-02-23  Andreas Schwab  <schwab@suse.de>
5001
5002         * config.gcc: Delete references to m68k/t-linux and
5003         m68k/t-linux-aout.
5004         * config/m68k/t-linux, config/m68k/t-linux-aout: Removed.
5005
5006 2003-02-22  Jan Hubicka  <jh@suse.cz>
5007
5008         * toplev.c (rest_of_compilation):  Apply fotgotten hunk
5009         of track scheduling patch.
5010
5011 2003-02-22  Jan Hubicka  <jh@suse.cz>
5012
5013         * config/linux.h (TARGET_HAS_F_SETLKW): Define.
5014         * config/alpha/linux.h (TARGET_HAS_F_SETLKW): Likewise
5015
5016 2003-02-22  Jan Hubicka  <jh@suse.cz>
5017
5018         * c-decl.c (c_expand_body_1): Fix.
5019
5020 2003-02-22  Jan Hubicka  <jh@suse.cz>
5021
5022         * expmed.c (expand_divmod): Undo sign extensions for unsigned operands
5023
5024         * cfgcleanup.c (try_forward_edges):  Don't check loop structures
5025         when not optimizing.
5026         (cleanup_cfg): Do not iterate trought delete_trivially_dead_insns
5027         when not expensive.
5028         * toplev.c (rest_of_compilation):  Duplicate loop headers only when
5029         optimizing;  Delete trivially dead insns early; fix optimize check.
5030
5031         * Makefile.in (c-decl.o, c-objc-common.o, cgraph.o, tree-inline.o): Add
5032         dependency on cgraph.h
5033         * c-decl.c: Include cgraph.h
5034         (finish_function): Update call of tree_inlinable_function_p.
5035         * c-objc-common.c: Include cgraph.h
5036         * cgraph.h: New file.
5037         * cgraphunit.c: New file.
5038         * cgraph.c (cgraph_node, cgraph_edge): Move into cgraph.h
5039         (cgraph_nodes, cgraph_n_nodes): Globalize.
5040         (cgraph_finalize_function, cgraph_finalize_compilation_unit
5041         cgraph_create_edges, cgraph_optimize, cgraph_mark_needed_node):
5042         Move into cgraphunit.c
5043         * tree-inline.c: Include cgraph.h
5044         * tree-inline.c: Include cgraph.h
5045
5046 2003-02-22  Josef Zlomek  <zlomekj@suse.cz>
5047
5048         * config/i386/i386.md: Use gen_lowpart instead of gen_rtx_REG
5049         for copying a register.
5050
5051 2003-02-22  Steven Bosscher  <s.bosscher@student.tudelft.nl>
5052
5053         PR other/3782
5054         * toplev.c (process_options): If flag_detailed_statistics is set,
5055         then set time_report as well.
5056
5057         PR c/8828
5058         * jump.c (never_reached_warning): Don't fall through BARRRIER
5059         insns.  Update comments to reflect what the function really does.
5060
5061 2003-02-21  Roger Sayle  <roger@eyesopen.com>
5062
5063         * fold-const.c (omit_one_operand): No longer static.
5064         * tree.h (omit_one_operand): Prototype here.
5065         (div_and_round_double): Keep fold-const.c prototypes together.
5066         * builtins.c (builtin_mathfn_code): Handle binary built-in
5067         funtions, such as "pow" and "atan2".
5068         (fold_builtin): Optimize both pow(x,0.0) and pow(1.0,y) to 1.0.
5069         Simplify optimizations using "type" the builtin's return type.
5070
5071 2003-02-22  Hans-Peter Nilsson  <hp@axis.com>
5072
5073         * config/cris/cris.c (cris_rtx_costs): Blockify dangling else.
5074         Fix functionalization typo.
5075
5076         * regmove.c (optimize_reg_copy_1): Do not replace a hard register
5077         in an asm.
5078
5079 2003-02-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5080
5081         * Makefile.in (ggc-common.o): Depend on $(PARAMS_H)
5082         * doc/invoke.texi (ggc-min-expand, ggc-min-heapsize): Update
5083         documentation.
5084         * ggc-common.c: Include params.h
5085         (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic,
5086         init_ggc_heuristics): New functions.
5087         * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic,
5088         init_ggc_heuristics): Prototype.
5089         * toplev.c (print_version):  Output GGC heuristics.
5090         (parse_options_and_default_flags): Call init_ggc_heuristics.
5091
5092 2003-02-22  Jan Hubicka  <jh@suse.cz>
5093
5094         * i386.c (def_builtin):  Special case 64bit builtins.
5095         (MASK_SSE164, MASK_SSE264): New constants.
5096         (builtin_description): Add 64bit builtins.
5097         (ix86_init_mmx_sse_builtins): Likewise.
5098         * i386.h (enum ix86_builtins): Likewise.
5099         * i386.md (cvtss2siq, cvttss2siq, cvtsd2siq, cvttsd2siq, cvtsi2sdq,
5100         sse2_movq2dq_rex64, sse2_movsq2q_rex64): New.
5101         (sse2_movq2dq, sse2_movsq2q): Disable for 64bit.
5102         * mmintrin.h (_mm_cvtsi64x_si64, _mm_set_pi64x, _mm_cvtsi64_si64x): New.
5103         * xmmintrin.h (_mm_cvtss_si64x, _mm_cvttss_si64x, _mm_cvtsi64x_ss,
5104         _mm_set_epi64x, _mm_set1_epi64x, _mm_cvtsd_si64x, _mm_cvttsd_si64x,
5105         _mm_cvtsi64x_sd, _mm_cvtsi64x_si128, _mm_cvtsi128_si64x): New.
5106
5107 2003-02-22  Jan Hubicka  <jh@suse.cz>
5108
5109         * i386.c (builtin_description): Add __builtin_ia32_paddq and
5110         __builtin_ia32_psubq. Fix __builtin_ia32_paddq128
5111          and __builtin_ia32_psubq128.
5112         * i386.h (IX86_BUILTIN_PADDQ, IX86_BUILTIN_PSUBQ): New.
5113         * i386.md (addv*, mmx_ior*, mmx_xoe*, mmx_and*): Add missing '%'.
5114         (mmx_adddi3, mmx_subdi3): New.
5115         * mmintrin.h (_mm_add_si64, _mm_sub_si64): New.
5116         * xmmintrin.h (_mm_movepi64_pi64): New.
5117         (_mm_add_epi64, _mm_sub_epi64): fix.
5118         (_mm_mul_pu16): Rename to...
5119         (_mm_mul_su32): ... this one.
5120
5121         * builtins.c (expand_builtin_expect):  Do not predict
5122         flag_guess_branch_prob is not set.
5123         * c-semantics.c (expand_stmt): Likewise.
5124         * predict.c (predict_insn): Likewise.
5125         * stmt.c (expand_continue_loop): Likewise.
5126         * toplev.c (rest_of_compilation): Do not call
5127         note_prediction_to_br_prob and note_prediction_to_br_prob
5128         when not optimizing.
5129
5130 2003-02-21  Jan Hubicka  <jh@suse.cz>
5131
5132         * cfgrtl.c (commit_edge_insertions):  Call
5133         find_many_sub_basic_block only when some code has been emitted.
5134         (commit_edge_insertions_watch_calls): Bring into sync with
5135         commit_edge_insertions
5136
5137 2003-02-21  J"orn Rennecke <joern.rennecke@superh.com>
5138
5139         * sh.h (OVERRIDE_OPTIONS): Fix code that clears 'e' register class.
5140
5141         * sh.md (binary_sf_op): Use extra constant operand instead of
5142         negating constant operand 4.
5143         * sh.c (sh_expand_binop_v2sf): Supply it.
5144
5145 2003-02-21  Zack Weinberg  <zack@codesourcery.com>
5146
5147         * cpphash.h (struct lexer_state): Add directive_wants_padding.
5148         * cpplib.c (_cpp_handle_directive): Set directive_wants_padding
5149         for directives of type INCL.
5150         (glue_header_name, parse_include): Use get_token_no_padding.
5151         * cppmacro.c (replace_args): If directive_wants_padding,
5152         provide padding tokens.
5153
5154 2003-02-21  Kazu Hirata  <kazu@cs.umass.edu>
5155
5156         * config/h8300/h8300.md (a peephole2): New.
5157
5158 2003-02-21  Jan Hubicka  <jh@suse.cz>
5159
5160         * cfgrtl.c (commit_one_edge_insertion): Only mark BB for splitting.
5161         (commit_edge_insertions): Call find_many_sub_basic_blocks
5162
5163         * reg-stack.c (convert_regs): Cleax aux for blocks.
5164
5165 2003-02-21  Jan Hubicka  <jh@suse.cz>
5166
5167         * toplev.c (parse_options_and_default_flags): Undo accidental commit.
5168
5169 2003-02-21  Glen Nakamura  <glen@imodulo.com>
5170
5171         PR optimization/8613
5172         * builtins.c (expand_builtin): Emit postincrements before expanding
5173         builtin functions.
5174
5175 2003-02-21  Ben Elliston  <bje@redhat.com>
5176
5177         PR other/5634
5178         * doc/install.texi (Configuration): Explain using $HOME instead of
5179         the ~ metacharacter when referring to home directories.
5180
5181 2003-02-20  Alexandre Oliva  <aoliva@redhat.com>
5182
5183         * configure.in (TARGET_SYSTEM_ROOT): Set default to
5184         ${exec_prefix}/${target_alias}/sys-root.  Match explicit
5185         '${exec_prefix}' (in addition to the expansion thereof) as
5186         relocatable.
5187         * configure: Rebuilt.
5188
5189 2003-02-20  Kazu Hirata  <kazu@cs.umass.edu>
5190
5191         * config/h8300/h8300.md (addhi3_incdec): Change the name to
5192         *addhi3_incdec.
5193         (addsi3_incdec): Change the name to *addsi3_incdec.
5194
5195 2003-02-20  Roger Sayle  <roger@eyesopen.com>
5196
5197         * explow.c (force_reg): Avoid useless REG_EQUAL notes.
5198
5199 2003-02-20  Toon Moene  <toon@moene.indiv.nluug.nl>
5200
5201         PR fortran/9038
5202         * c-opts.c (sanitize_cpp_opts): Add Fortran front end
5203         options to be ignored.
5204         (c_common_decode_option): Ignore them when preprocessing.
5205
5206 2003-02-20  Jan Hubicka  <jh@suse.cz>
5207
5208         * toplev.c (flag_sched2_use_superblocks, flag_sched2_use_traces): New
5209         global variables.
5210         (lang_independent_options):  Add -fsched2-use-superblocks
5211         -fsced2-use-traces.
5212         (rest_of_compilation): Deal with it.
5213         * invoke.texi (-fsched2-use-traces, fsched2-use-superblocks):  Declare.
5214         * flags.h (flag_sched2_use_superblocks, flag_sched2_use_traces):
5215         Declare.
5216         * rtl.h (reg_to_stack):  Update prototype.
5217         * reg-stack.c (reg_to_stack): Return when something has changed;
5218         update liveness when executing after superblock scheduling.
5219
5220         * combine.c (simplify_shift_const):  Simplify few special cases
5221         into constants.
5222
5223 2003-02-20  David Edelsohn  <edelsohn@gnu.org>
5224
5225         * config/rs6000/rs6000.md: (attr "type"): Add fast_compare.
5226         (add.,subf.,neg.): Change attribute to fast_compare.
5227         All DFA descriptions updated.
5228
5229 2003-02-20  Nathan Sidwell  <nathan@codesourcery.com>
5230
5231         Change base class access representation.
5232         * tree.h (TREE_VIA_PUBLIC, TREE_VIA_PROTECTED,
5233         TREE_VIA_PRIVATE): Remove.
5234         (BINFO_BASEACCESSES): New binfo elt.
5235         (BINFO_BASEACCESS): New accessor.
5236         (BINFO_ELTS): Increase.
5237         (TI_ACCESS_PUBLIC, TI_ACCESS_PROTECTED, TI_ACCESS_PRIVATE): New.
5238         (access_public_node, access_protected_node,
5239         access_private_node): New global nodes.
5240         * tree.c (build_common_tree_nodes_2): Initialize access nodes.
5241         * dbxout.c (dbxout_type): Adjust.
5242         * dwarf2out.c (gen_inheritance_die): Add access parameter.
5243         (gen_member_die): Adjust.
5244         * dwarfout.c (output_inheritance_die): ARG is array of two trees.
5245         (output_type): Adjust.
5246         * tree-dump.c (dequeue_and_dump): Adjust binfo dumping.
5247
5248         Change base class access representation. Share virtual base
5249         binfos.
5250         * cp/call.c (build_special_member_call): Remove binfo_for_vbase
5251         call.
5252         * cp/class.c (build_base_path): Likewise.
5253         (build_primary_vtable): Adjust BINFO_NEW_VTABLE_MARKED use.
5254         (build_secondary_vtable): Remove FOR_TYPE arg. Adjust.
5255         (make_new_vtable): Adjust.
5256         (force_canonical_binfo_r): Delete.
5257         (force_canonical_binfo): Delete.
5258         (mark_primary_virtual_base): Delete.
5259         (dfs_unshared_virtual_bases): Delete.
5260         (mark_primary_bases): Adjust.
5261         (maybe_warn_about_overly_private_class): Adjust.
5262         (dfs_base_derived_from): Delete.
5263         (base_derived_from): Follow the inheritance chain.
5264         (struct find_final_overrider_data): Add vpath member.
5265         (dfs_find_final_overrider): Adjust.
5266         (dfs_find_final_overrider_q, dfs_find_final_overrider_post): New.
5267         (find_final_overrider): Adjust.
5268         (update_vtable_entry_for_fn): Adjust.
5269         (modify_all_vtables): Adjust.
5270         (walk_subobject_offsets): Adjust.
5271         (layout_nonempty_base_or_field): Adjust.
5272         (layout_empty_base): Remove last parameter. Adjust.
5273         (build_base_field): Adjust.
5274         (build_base_fields): Adjust.
5275         (propagate_binfo_offsets): Remove last parameter. Adjust.
5276         (dfs_set_offset_for_unshared_vbases): Delete.
5277         (layout_virtual_bases): Adjust.
5278         (finish_struct_1): Adjust.
5279         (init_class_processing): Don't init access nodes.
5280         (dfs_get_primary_binfo): Delete.
5281         (get_primary_binfo): Adjust.
5282         (dump_class_hierarchy_r): Remove most derived arg, add IGO
5283         parameter. Adjust.
5284         (dump_class_hierarchy): Adjust.
5285         (finish_vtbls): Adjust.
5286         (get_original_base): Delete.
5287         (build_vtt_inits): Adjust.
5288         (dfs_build_secondary_vptr_vtt_inits): Adjust.
5289         (dfs_ctor_vtable_bases_queue_p): Adjust.
5290         (build_ctor_vtbl_group): Adjust.
5291         (dfs_accumulate_vtbl_inits): Adjust.
5292         (build_vtbl_initializer): Adjust.
5293         (build_vbase_offset_vtbl_entries): Adjust.
5294         (add_vcall_offset_vtbl_entries_1): Adjust.
5295         * cp/cp-tree.h (CPTI_ACCESS_*): Remove.
5296         (access_*_node): Remove.
5297         (CANONICAL_BINFO): Delete.
5298         (BINFO_UNSHARED_MARKED): Remove.
5299         (BINFO_MARKED): Set LANG_FLAG_0 directly.
5300         (SET_BINFO_MARKED, CLEAR_BINFO_MARKED): Delete.
5301         (BINFO_VTABLE_PATH_MARKED): Set LANG_FLAG_3 directly.
5302         (SET_BINFO_VTABLE_PATH_MARKED, CLEAR_BINFO_VTABLE_PATH_MARKED):
5303         Delete.
5304         (BINFO_NEW_VTABLE_MARKED): Set LANG_FLAG_4 directly.
5305         (SET_BINFO_NEW_VTABLE_MARKED): Adjust.
5306         (SET_BINFO_PUSHDECLS_MARKED, CLEAR_BINFO_PUSHDECLS_MARKED):
5307         Delete.
5308         (BINFO_DEPENDENT_BASE_P): New.
5309         (dfs_walk, dfs_walk_real): Queue function takes derived binfo and
5310         index.
5311         (markedp, unmarkedp): Adjust.
5312         (dfs_unmarked_real_bases_queue_p, dfs_marked_real_bases_queue_p,
5313         dfs_skip_vbases, marked_vtable_pathp, unmarked_vtable_pathp,
5314         find_vbase_instance, binfo_for_vbase): Delete.
5315         (copied_binfo, original_binfo): Declare.
5316         (finish_base_specifier): Add virtual_p arg.
5317         (unshare_base_binfos): Delete.
5318         (copy_base_binfos): Declare.
5319         (reverse_path): Delete.
5320         * cp/decl.c (xref_basetypes): Access and virtuality passed
5321         differently. Don't copy direct base binfos here. Call
5322         copy_base_binfos.
5323         * cp/init.c (dfs_initialize_vtbl_ptrs): Adjust.
5324         (initialize_vtbl_ptrs): Adjust.
5325         (expand_member_init): Adjust.
5326         * cp/parser.c (cp_parser_base_specifier): Adjust.
5327         * cp/pt.c (instantiate_class_template): Adjust.
5328         (get_template_base_recursive): Adjust.
5329         * cp/rtti.c (get_pseudo_ti_init): Adjust.
5330         (get_pseudo_ti_desc): Adjust.
5331         * cp/tree.c (unshare_base_binfos): Rename to ...
5332         (copy_base_binfos): ... here, reimplement.
5333         (make_binfo): Set BINFO_DEPENDENT_BASE_P.
5334         (reverse_path): Remove.
5335         * cp/typeck.c (get_delta_difference): Adjust error messages.
5336         * cp/semantics.c (finish_base_specifier): Add virtual arg, adjust.
5337         * cp/search.c (lookup_base_r): Adjust.
5338         (dynamic_cast_base_recurse): Adjust.
5339         (canonical_binfo): Remove.
5340         (dfs_canonical_queue): Remove.
5341         (dfs_assert_unmarked_p): Remove.
5342         (assert_canonical_unmarked): Remove.
5343         (shared_marked_p, shared_unmarked_p): Remove.
5344         (BINFO_ACCESS, SET_BINFO_ACCESS): Use TREE_PUBLIC & TREE_PRIVATE.
5345         (dfs_access_in_type): Adjust.
5346         (access_in_type): Adjust.
5347         (dfs_accessible_queue_p): Adjust.
5348         (dfs_accessible_p): Adjust.
5349         (is_subobject_of_p_1, is_subobject_of_p): Remove.
5350         (struct lookup_field_info): Remove from_dep_base_p field.
5351         (lookup_field_queue_p): Adjust, test BINFO_DEPENDENT_BASE_P.
5352         (lookup_field_r): Remove dependent base code.
5353         (lookup_member): Likewise.
5354         (dfs_walk, dfs_walk_real): Add access arg to queue fn.
5355         (dfs_unmarked_real_bases_queue_p): Remove.
5356         (dfs_marked_real_bases_queue_p): Remove.
5357         (dfs_skip_vbases): Remove.
5358         (dfs_get_pure_virtuals): Adjust.
5359         (markedp, unmarkedp): Adjust.
5360         (marked_vtable_pathp, unmarked_vtable_pathp): Remove.
5361         (marked_pushdecls_p, unmarked_pushdecls_p): Adjust.
5362         (dfs_unmark): Adjust.
5363         (dfs_get_vbase_types):Remove.
5364         (dfs_build_inheritance_graph_order): Remove.
5365         (get_vbase_types): Remove
5366         (dfs_find_vbase_instance): Remove.
5367         (find_vbase_instance): Remove.
5368         (dfs_debug_unmarkedp): Adjust.
5369         (dependent_base_p): Remove.
5370         (dfs_push_type_decls): Adjust.
5371         (dfs_push_decls): Adjust.
5372         (dfs_no_overlap_yet): Adjust.
5373         (copied_binfo): New function.
5374         (original_binfo): New function.
5375         (binfo_for_vbase): Remove.
5376
5377         Change base class access representation.
5378         * java/class.c (set_super_info): Don't set TREE_VIA_PUBLIC.
5379         (add_interface_do): Likewise.
5380
5381 2003-02-20  David Edelsohn  <edelsohn@gnu.org>
5382
5383         * config/rs6000/sysv4.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define.
5384         * config/rs6000/power4.md (power4-store,power4-vecstore): New
5385         insn reservations.
5386         (power4-fpstore): Compact.
5387
5388 2003-02-20  Kazu Hirata  <kazu@cs.umass.edu>
5389
5390         * config/h8300/h8300.md (*iorsi3_w): New.
5391
5392 2003-02-20  Josef Zlomek  <zlomekj@suse.cz>
5393
5394         * combine.c (distribute_notes): Kill REG_EXEC_COUNT.
5395         * rtl.c (reg_note_name): Likewise.
5396         * rtl.h (enum reg_note): Likewise.
5397         * doc/invoke.texi: Likewise.
5398         * doc/rtl.texi: Likewise.
5399
5400 2003-02-20  Josef Zlomek  <zlomekj@suse.cz>
5401
5402         * bb-reorder.c (find_traces_1_round): Fix comment typo.
5403
5404 2003-02-19  Roger Sayle  <roger@eyesopen.com>
5405
5406         * fold-const.c (fold_real_zero_addition_p): Don't fold a zero
5407         addition in the presence of signaling NaNs.
5408
5409 2003-02-19  Krister Walfridsson  <cato@df.lth.se>
5410
5411         * tm.texi (INIT_CUMULATIVE_ARGS): Fix typo.
5412
5413 2003-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5414
5415         * config/h8300/h8300.c (output_logical_op): Optimize or.l when
5416         ORing with 0xffff??00 with the highest bit of the ?? part set.
5417         (compute_logical_op_length): Update.
5418         (compute_logical_op_cc): Likewise.
5419
5420 2003-02-19  Josef Zlomek  <zlomekj@suse.cz>
5421
5422         * bb-reorder.c (find_traces_1_round): Fixed condition for small
5423         destination block with multiple predecessors.
5424         (connect_traces): Check whether the block is a start of trace.
5425
5426 2003-02-19  Jan Hubicka  <jh@suse.cz>
5427
5428         * calls.c (expand_call): Update call of INIT_CUMULATIVE_ARGS
5429         * function.c (assign_params): Likewise.
5430         * arm-protos.h (arm_init_cumulative_args): Update prototype.
5431         * arm.c (arm_init_cumulative_args): Update function.
5432         * arm.h (INIT_CUMULATIVE_ARGS): Update.
5433         * avr-protos.h (init_cumulative_args): Update prototype.
5434         * avr.c (init_cumulative_args): Update function.
5435         * avr.h (INIT_CUMULATIVE_ARGS): Update.
5436         * d30v-protos.h (d30v_init_cumulative_args): Update prototype.
5437         * d30v.c (d30v_init_cumulative_args): Update function.
5438         * d30v.h (INIT_CUMULATIVE_ARGS): Update.
5439         * frv-protos.h (frv_init_cumulative_args): Update prototype.
5440         * frv.c (frv_init_cumulative_args): Update function.
5441         * frv.h (INIT_CUMULATIVE_ARGS): Update.
5442         * mips.c (mips_expand_prolgue): Update call of INIT_CUMULATIVE_ARGS.
5443         * pa.h (INIT_CUMULATIVE_ARGS): Update.
5444         * sparc-protos.h (init_cumulative_args): Update prototype.
5445         * sparc.c (init_cumulative_args): Update function.
5446         * sparc.h (INIT_CUMULATIVE_ARGS): Update.
5447         * tm.texi (INIT_CUMULATIVE_ARGS): Update documentation.
5448
5449 2003-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5450
5451         * config/h8300/h8300.md (*iorsi3_two_qi_sext): New.
5452         (*ashiftsi_sextqi_7): Likewise.
5453
5454 2003-02-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5455
5456         * config/mips/iris6.h (TARGET_OS_CPP_BUILTINS): Define __c99 for
5457         ISO C99 and C++.
5458
5459         * fixinc/inclhack.def (irix___restrict): Don't change __restrict
5460         for C++ on IRIX 6.5.1[89].
5461         * fixinc/tests/base/internal/sgimacros.h: New file.
5462
5463         * fixinc/inclhack.def (irix_wcsftime): Use XPG5 variant for C99.
5464         * fixinc/tests/base/internal/wchar_core.h: New file.
5465
5466         * fixinc/inclhack.def (irix_socklen_t): Fix broken IRIX 6.5.1[78]
5467         socklen_t definition.
5468         * fixinc/fixincl.x: Regenerate.
5469         * fixinc/tests/base/sys/socket.h: New file.
5470         Fixes PR libgcj/9652.
5471
5472 2003-02-19  Jan Hubicka  <jh@suse.cz>
5473
5474         * i386.md (movsfcc_1, movdfcc_1): Fix constrains.
5475
5476 2003-02-19  David Edelsohn  <edelsohn@gnu.org>
5477
5478         * config/rs6000/rs6000.c (rs6000_override_options): Initialize
5479         align_jumps_max_skip and align_loops_max_skip.
5480
5481 2003-02-19  Thierry Moreau  <thierry.moreau@connotech.com>
5482
5483         * config/rs6000/rs6000.c (rs6000_encode_section_info): Do not
5484         test size if named section.
5485
5486 2003-02-19  Daniel Jacobowitz  <drow@mvista.com>
5487
5488         * expr.c (expand_expr): Use gen_int_mode for the argument
5489         to gen_rtx_MULT.
5490
5491 2003-02-19  Jan Hubicka  <jh@suse.cz>
5492
5493         * i386.md (cosxf2):  Fix conditional.
5494
5495 2003-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5496
5497         * config/h8300/h8300.md (extendqisi2): Change to an expander.
5498         (*extendqisi2_h8300): New.
5499         (*extendqisi2_h8300hs): Likewise.
5500
5501 2003-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5502
5503         * config/h8300/h8300-protos.h: Update the prototype for
5504         split_adds_subs.  Remove the prototypes for
5505         const_int_le_2_operand and const_int_le_6_operand.
5506         * config/h8300/h8300.c (split_adds_sub): Don't output inc/dec.
5507         (const_int_le_2_operand): Remove.
5508         (const_int_le_6_operand): Likewise.
5509         * config/h8300/h8300.h (PREDICATE_CODES): Remove the entries
5510         for const_int_le_2_operand and const_int_le_6_operand.
5511         * config/h8300/h8300.md: Update all uses of split_adds_subs.
5512         (a peephole2): New.
5513
5514 2003-02-18  Jan Hubicka  <jh@suse.cz>
5515
5516         * cgraph.c (NPREDECESORC, SET_NPREDECESORS): Kill.
5517         (cgraph_expand_function): Rewrite.
5518
5519 2003-02-18  Matt Austern <austern@apple.com>
5520
5521         * toplev.c, langhooks.c, langhooks-def.h: Move
5522         write_global_declarations from toplev.c to langhooks.c.
5523
5524 2003-02-18  Kazu Hirata  <kazu@cs.umass.edu>
5525
5526         * config/h8300/h8300.c (general_operand_src): Always check
5527         MODE.
5528         (general_operand_dst): Likewise.
5529
5530 2003-02-18  Roger Sayle  <roger@eyesopen.com>
5531
5532         * convert.c (convert_to_real): Also optimize (float)log(x) into
5533         logf(x) where x is a float, i.e. also handle BUILT_IN_LOG{,L}.
5534
5535 2003-02-18  Kaz Kojima  <kkojima@gcc.gnu.org>
5536
5537         * config/sh/sh.c (unspec_caller_rtx_p): New.
5538         (sh_cannot_copy_insn_p): New.
5539         (TARGET_CANNOT_COPY_INSN_P): New.
5540
5541 2003-02-18  Richard Henderson  <rth@redhat.com>
5542
5543         * c-common.c (handle_used_attribute): Accept static data too.
5544
5545 2003-02-18  Nick Clifton  <nickc@redhat.com>
5546             Aldy Hernandez  <aldyh@redhat.com>
5547
5548         * testsuite/gcc.dg/20030218-1.c: New.
5549
5550         * doc/tm.texi: Document TARGET_VECTOR_TYPES_COMPATIBLE.
5551
5552         * target-def.h (TARGET_INITIALIZER): Add
5553         TARGET_VECTOR_TYPES_COMPATIBLE.
5554         (TARGET_VECTOR_TYPES_COMPATIBLE): New macro.
5555
5556         * target.h (struct gcc_target): Add field vector_types_compatible.
5557
5558         * c-typeck.c (comptypes): Take into account
5559         TARGET_VECTOR_TYPES_COMPATIBLE.
5560         (convert_for_assignment): Same.
5561
5562         * config/rs6000/rs6000.c (is_ev64_opaque_type): New.
5563         (rs6000_spe_vector_types_compatible): New.
5564         (TARGET_VECTOR_TYPES_COMPATIBLE): Define.
5565
5566 2003-02-19  Andreas Schwab  <schwab@suse.de>
5567
5568         * Makefile.in (toplev.o): Depend on $(LANGHOOKS_DEF_H).
5569         * toplev.c: Include langhooks-def.h.
5570
5571 2003-02-18  Chris Demetriou  <cgd@broadcom.com>
5572
5573         * config/mips/mips.h (enum processor_type): Sort entries
5574         alphabetically.
5575         * config/mips/mips.md (define_attr cpu): Sync with processor_type
5576         enum values, including adding entries that were missing.
5577
5578 2003-02-18  J"orn Rennecke <joern.rennecke@superh.com>
5579
5580         * sh.c (calc_live_regs): Also check GET_CODE when checking if
5581         initial value for PR_REG is still the PR_REG register.
5582
5583 2003-02-18  Jim Wilson  <wilson@redhat.com>
5584
5585         * config/ia64/ia64.md (floatdidf2, floatdisf2): Add %, before second
5586         instruction in output template.
5587         (bsp_value): Change output template from string to C code, add %,
5588         before actual instruction.
5589         (flushrs): Mark as not predicable.
5590
5591 2003-02-18  Krister Walfridsson  <cato@df.lth.se>
5592
5593         * inclhack.def (netbsd_bogus_semicolon): New fix.
5594         * fixincl.x: Rebuilt.
5595         * tests/base/ctype.h: Update.
5596
5597 2003-02-18  Roger Sayle  <roger@eyesopen.com>
5598
5599         * fold-const.c (negate_expr_p): New function to determine whether
5600         an expression can be negated cheaply.
5601         (fold) [MINUS_EXPR]: Use it to determine whether to transform
5602         -A - B into -B - A for floating point types.
5603
5604 2003-02-18  Roger Sayle  <roger@eyesopen.com>
5605
5606         * sbitmap.c (sbitmap_resize): New function.
5607         * sbitmap.h (sbitmap_resize): Prototype here.
5608         * recog.c (split_all_insns): Use sbitmap_resize.
5609
5610 2003-02-18  Kazu Hirata  <kazu@cs.umass.edu>
5611
5612         * config/h8300/h8300.md (*zero_extendhisi2_h8300): Fix the
5613         insn length.
5614         (extendqisi2): Likewise.
5615         (*extendhisi2_h8300): Likewise.
5616
5617 2003-02-18  Matt Austern <austern@apple.com>
5618
5619         * langhooks.h, langhooks-def.h: introduce new langhook,
5620         final_write_globals, with write_global_declarations as default.
5621         * toplev.c: Move invocation of wrapup_global_declarations from
5622         compile_file to new function, write_global_declarations.  Change
5623         compile_file to use final_write_globals hook.  Change
5624         wrapup_global_declarations so writing to DECL_DEFER_OUTPUT is
5625         conditional.
5626
5627 2003-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5628
5629         * pa.md: Correct and enhance comment.
5630
5631 2003-02-18  Geoffrey Keating  <geoffk@apple.com>
5632
5633         * gcc.c (validate_switches): Don't scan past closing '}'.
5634
5635 2003-02-18  Ben Elliston  <bje@redhat.com>
5636
5637         PR c++/1607
5638         * doc/extend.texi (Function Attributes): Document the effect of
5639         the C++ "this" parameter on the counting of arguments for the
5640         "format" and "format_arg" attributes.
5641
5642 2003-02-17  Aldy Hernandez  <aldyh@redhat.com>
5643
5644         * config/rs6000/spe.h (__ev_stdd): Cast 2nd arg.
5645         (__ev_stdw): Same.
5646         (__ev_stdh): Same.
5647
5648 2003-02-17  Jan Hubicka  <jh@suse.cz>
5649
5650         * recog.c (split_all_insns):  Fix memory overflow.
5651
5652 2003-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5653
5654         * config/h8300/h8300.md (cmpqi): Remove mode from compare.
5655         (cmphi): Likewise.
5656         (*cmphi_h8300): Likewise.
5657         (*cmphi_h8300hs): Likewise.
5658         (cmpsi): Likewise.
5659         (7 peephole2): Likewise.
5660
5661 2003-02-16  Jan Hubicka  <jh@suse.cz>
5662
5663         * c-typeck.c (build_c_cast):  Fold constant variables into
5664         initial values.
5665
5666 2003-02-16  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5667
5668         * doc/install.texi (Specific): Fix link for m68k-att-sysv.
5669         (Binaries): Ditto for Sinix/Reliant Unix.
5670
5671 2003-02-16 Richard Earnshaw  <rearnsha@arm.com>
5672
5673         * arm.c (arm_reload_in_hi): Ensure that the scratch register does
5674         not overlap the final result register.
5675
5676 2003-02-16 Arend Bayer <arend.bayer@web.de>
5677            Richard Henderson  <rth@redhat.com>
5678
5679         PR c/8068
5680         * fold-const.c (extract_muldiv_1): Rename from extract_muldiv;
5681         rearrange mult arguments for less recursion.
5682         (extract_muldiv): New.  Prevent runaway recursion.
5683
5684 2003-02-16  Danny Smith  <dannysmith@users.sourceforge.net>
5685
5686         * config/i386/cygwin.h (TARGET_SUBTARGET_DEFAULT): Set
5687         MASK_ALIGN_DOUBLE.
5688
5689 2003-02-15  Roger Sayle  <roger@eyesopen.com>
5690
5691         * config/i386/i386.c (x86_ext_80387_constants): Use 80387 insns
5692         to load mathematical constants on K6, Athlon, Pentium 4 and PPro.
5693         (ext_80387_constants_table): Global table of 80387 special constants
5694         guarded by ext_80387_constants_init flag when not initialized.
5695         (init_ext_80387_constants): New function to initialize this table.
5696         (standard_80387_constant_p): Extend to recognize extra 80387
5697         constants, in XFmode, on processors where this is a win.
5698         (standard_80387_constant_opcode): New function to return the
5699         opcode associated with standard_80387_constant_p.
5700         (standard_80387_constant_rtx): New function to return the XFmode
5701         CONST_DOUBLE associated with standard_80387_constant_p.
5702         (ix86_rtx_costs): Give the new constants the same cost as 1.0.
5703
5704         * config/i386/i386-protos.h (standard_80387_constant_opcode):
5705         Prototype here.
5706         (standard_80387_constant_rtx): Likewise.
5707
5708         * config/i386/i386.md (*movsf1, *movsf1_nointerunit, *movdf_nointeger,
5709         *movdf_integer, *movxf_nointeger, *movtf_nointeger, *movxf_integer,
5710         *movtf_integer): Simplify using new standard_80387_constant_opcode.
5711
5712 2003-02-15  Geoffrey Keating  <geoffk@apple.com>
5713
5714         * doc/invoke.texi (Optimize Options): Correct @option syntax.
5715
5716 2003-02-15  Richard Henderson  <rth@redhat.com>
5717
5718         * Makefile.in (cfglayout.o): Depend on TARGET_H.
5719         * cfglayout.c: Include target.h.
5720         (cfg_layout_can_duplicate_bb_p): Check targetm.cannot_copy_insn_p.
5721         * target-def.h (TARGET_CANNOT_COPY_INSN_P): New.
5722         * target.h (struct gcc_target): Add cannot_copy_insn_p.
5723
5724         * config/alpha/alpha.c (alpha_cannot_copy_insn_p): New.
5725         (TARGET_CANNOT_COPY_INSN_P): New.
5726         (override_options): Revert 2003-02-08 hack.
5727
5728 2003-02-15  Richard Henderson  <rth@redhat.com>
5729
5730         * gcse.c (bypass_block): Use BLOCK_FOR_INSN for resolving LABEL_REFs.
5731         (bypass_conditional_jumps): Accept computed_jump_p insns as well.
5732
5733 2003-02-15  David Edelsohn  <edelsohn@gnu.org>
5734
5735         * config/rs6000/rs6000.h (processor_type): Add PPC440.
5736         * config/rs6000/rs6000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
5737         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
5738         TARGET_SCHED_VARIABLE_ISSUE): Define.
5739         (rs6000_use_dfa_pipeline_interface): New function.
5740         (rs6000_multipass_dfa_lookahead): New Function.
5741         (rs6000_variable_issue): New function.
5742         (rs6000_adjust_cost): Add CMP and DELAYED_CR types.
5743         (rs6000_issue_rate): Add PPC440.
5744         * config/rs6000/rs6000.md (unspec list): Correct typo.
5745         (attr "type"): Add load_ext, load_ext_u, load_ext_ux, load_u,
5746         store_ux, store_u, fpload_ux, fpload_u, fpstore_ux, fpstore_u,
5747         cmp, delayed_cr, mfcr, mtcr.
5748         (automata_option): Set "ndfa".
5749         (extendMMNN2): Update attributes.
5750         (movcc_internal1): Discourage move to non-cr0.  Update
5751         attributes.
5752         (movMM_update): Update attributes.
5753         (cmpMM_internal): Update attributes.
5754         (sCC CR materialization): Update attributes.
5755         (branch patterns): Do not discourage non-cr0.
5756         (cr logical patterns): Prefer destructive register allocation.
5757         Update attributes.
5758         (movesi_from_cr): Update attribute.
5759         (mtcrf_operation): Update attribute.
5760         (mtcrfsi): Update attribute.
5761         * config/rs6000/40x.md: New file.
5762         * config/rs6000/603.md: New file.
5763         * config/rs6000/6xx.md: New file.
5764         * config/rs6000/7450.md: New file.
5765         * config/rs6000/7xx.md: New file.
5766         * config/rs6000/mpc.md: New file.
5767         * config/rs6000/power4.md: New file.
5768         * config/rs6000/rios1.md: New file.
5769         * config/rs6000/rios2.md: New file.
5770         * config/rs6000/rs64.md: New file.
5771         [Some DFA descriptions based on work by Michael Hayes]
5772
5773 2003-02-15  Richard Henderson  <rth@redhat.com>
5774
5775         * bb-reorder.c (find_traces_1_round): Don't connect easy to copy
5776         successors with multiple predecessors.
5777         (connect_traces): Try harder to copy traces of length 1.
5778
5779         * function.h (struct function): Add computed_goto_common_label,
5780         computed_goto_common_reg.
5781         * function.c (free_after_compilation): Zap them.
5782         * stmt.c (expand_computed_goto): Use them to produce one
5783         indirect branch per function.
5784
5785 2003-02-15  Richard Henderson  <rth@redhat.com>
5786
5787         * cfgcleanup.c: Include params.h.
5788         (try_crossjump_bb): Use PARAM_MAX_CROSSJUMP_EDGES.  Fix test for
5789         too many outgoing edges from a block.
5790         * Makefile.in (cfgcleanup.o): Depend on PARAMS_H.
5791         * params.def (max-crossjump-edges): New.
5792         * doc/invoke.texi: Document it.
5793
5794 2003-02-15  Richard Henderson  <rth@redhat.com>
5795
5796         * recog.c (split_all_insns): Include new blocks in life update;
5797         do a global life update.
5798
5799 2003-02-15  Danny Smith  <dannysmith@users.sourceforge.net>
5800
5801         * config/i386/mingw32.h (LIBGCC_SPEC): Add libmingwex.a.
5802         Update copyright.
5803         * config/i386/cygwin.h (LIBGCC_SPEC): Add libmingwex.a for
5804         -mno-cygwin case.
5805
5806 2003-02-14  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
5807
5808         PR optimization/7702
5809         * reload1.c (reload_cse_simplify_set): Honor
5810         CANNOT_CHANGE_MODE_CLASS.
5811
5812 2003-02-14  Alexandre Oliva  <aoliva@redhat.com>
5813
5814         * config/mn10300/mn10300.c (mn10300_wide_const_load_uses_clr): New
5815         function.
5816         * config/mn10300/mn10300-protos.h: Declare it.
5817         * config/mn10300/mn10300.md (movdi, movdf): Use it to compute
5818         attribute cc of instructions that may use clr.
5819
5820 2003-02-14  Kazu Hirata  <kazu@cs.umass.edu>
5821
5822         * simplify-rtx.c (simplify_binary_operation): Simplify ~y when
5823         (x - (x & y)) is found.
5824
5825 2003-02-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5826
5827         * configure.in: Fix typo.
5828         * configure: Regenerate.
5829
5830 2003-02-14  Kazu Hirata  <kazu@cs.umass.edu>
5831
5832         * config/h8300/h8300.md (*iorsi2_and_1_lshiftrt_1): New.
5833
5834 2003-02-13  Adam Nemet  <anemet@lnxw.com>
5835
5836         PR opt/2391
5837         * combine.c: Fix spelling in comment.
5838         (cached_nonzero_bits): New function.
5839         (cached_num_sign_bit_copies): New function.
5840         (nonzero_bits_with_known): New macro.
5841         (num_sign_bit_copies_with_known): New macro.
5842         (nonzero_bits1): Rename from nonzero_bits.  Add three new
5843         arguments.  Change calls from nonzero_bits to
5844         nonzero_bits_with_known.
5845         (num_sign_bit_copies1): Rename from num_sign_bit_copies.  Add
5846         three new arguments.  Change calls from num_sign_bit_copies to
5847         num_sign_bit_copies_with_known.
5848         (nonzero_bits): New macro.
5849         (num_sign_bit_copies): New macro.
5850         (update_table_tick): Don't traverse identical subexpression more
5851         than once.
5852         (get_last_value_validate): Likewise.
5853
5854 2003-02-13  Zack Weinberg  <zack@codesourcery.com>
5855
5856         * emit-rtl.c (init_emit): Use ggc_alloc for regno_reg_rtx.
5857         * function.h (struct emit_status): Length of regno_pointer_align
5858         and x_regno_reg_rtx as seen by gengtype is only x_reg_rtx_no,
5859         not regno_pointer_align_length (i.e. length actually used, not
5860         length as allocated)
5861
5862         * config/i386/i386.c (struct stack_local_entry): New.
5863         (struct machine_function): Replace huge array with alist.
5864         (assign_386_stack_local): Change to match.
5865
5866 2003-02-13  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
5867
5868         * inclhack.def (hpux_long_double): Tighten select and add bypass
5869         regexp.
5870         * fixincl.x: Rebuilt.
5871
5872 2003-02-13  Josef Zlomek  <zlomekj@suse.cz>
5873
5874         * cfgcleanup.c (outgoing_edges_match): When there is single outgoing
5875         edge and block ends with a jump insn it must be simple jump.
5876
5877 2003-02-13  Daniel Jacobowitz  <drow@mvista.com>
5878
5879         * Makefile.in (PREPROCESSOR_DEFINES): Add
5880         @TARGET_SYSTEM_ROOT_DEFINE@.
5881         * configure.in (PREFIX_INCLUDE_DIR): Don't define if $with_sysroot
5882         is specified or if building a cross compiler.
5883         (TARGET_SYSTEM_ROOT_DEFINE): Add TARGET_SYSTEM_ROOT_RELOCATABLE
5884         if the sysroot is under $exec_prefix.
5885         * configure: Regenerated.
5886         * cppdefault.h: Use native include paths if TARGET_SYSTEM_ROOT is
5887         defined.
5888         (struct default_include): Add add_sysroot field.
5889         (cpp_SYSROOT): Declare.
5890         * cppdefault.c (cpp_include_defaults): Fill in add_sysroot
5891         field.
5892         (cpp_SYSROOT): New variable.
5893         * cppinit.c (cpp_create_reader): Initialize
5894         CPP_OPTION (pfile, sysroot).
5895         (init_standard_includes): Handle add_sysroot.  Do not
5896         add unrelocated copies of relocated directories.
5897         (COMMAND_LINE_OPTIONS): Add -isysroot.
5898         (cpp_handle_option): Handle -isysroot.
5899         * cpplib.h (struct cpp_options): Add sysroot member.
5900         * gcc.c (The Specs Language): Update description of %I.
5901         (target_system_root_changed): New variable.
5902         (process_command): Conditionalize make_relative_prefix call
5903         on !VMS and TARGET_SYSTEM_ROOT_RELOCATABLE.  Set
5904         target_system_root_changed.
5905         (do_spec_1): Add -isysroot to %I.
5906         * doc/invoke.texi (Spec Files): Update description of %I.
5907         * doc/install.texi (--with-sysroot): Update comment about
5908         relocation.
5909
5910 2003-02-13  Kazu Hirata  <kazu@cs.umass.edu>
5911
5912         * config/h8300/h8300.md (a peephole2): New.
5913
5914 2003-02-13  Robert Lipe <robertlipe@usa.net>
5915             Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
5916
5917         * doc/install.texi (Specific): Update three SCO-related URLs.
5918
5919 2003-02-13  Andreas Schwab  <schwab@suse.de>
5920
5921         * cgraph.c (SET_NPREDECESORS): Add intermediate cast to size_t.
5922         Parenthesize properly.
5923         (NPREDECESORS): Parenthesize properly.
5924
5925 2003-02-13  Gabriel Dos Reis  <gdr@integrable-solutions.net>
5926
5927         * timevar.h (POP_TIMEVAR_AND_RETURN): New macro.
5928
5929 2003-02-12  Roger Sayle  <roger@eyesopen.com>
5930
5931         * config/i386/i386.md (UNSPEC_FPATAN): New UNSPEC constant.
5932         (atan2sf3, atan2df3, atan2xf3, atan2tf3): New patterns.
5933
5934         * reg-stack.c (subst_stack_regs_pat): Add support for binary
5935         UNSPEC instructions (e.g. "fpatan").
5936
5937 2003-02-12  Mike Stump  <mrs@apple.com>
5938
5939         * varray.c (element_size): Remove.
5940         (uses_ggc): Remove.
5941         (element): Add.
5942         (varray_init): Use new interface.
5943         (varray_grow): Use new interface.
5944         (varray_clear): Use new interface.
5945
5946 2003-02-12  Aldy Hernandez  <aldyh@redhat.com>
5947
5948         * config/rs6000/spe.h: Add casts to the arguments of the following
5949         macros: evfsabs, evfsnabs, evfsneg, evfsadd, evfssub, evfsmul,
5950         evfsdiv, evfscfui, evfscfsi evfscfuf evfscfsf, evfsctui, evfsctsi,
5951         evfsctuf, evfsctsf, evfsctuiz, evfsctsiz, __ev_get_upper*,
5952         __ev_get_lower*, __ev_get_u32, __ev_get_s32, __ev_get_fs,
5953         __ev_get_u16, __ev_get_s16.
5954
5955 2003-02-12  Kazu Hirata  <kazu@cs.umass.edu>
5956
5957         * config/h8300/h8300.md (a peephole2): New.
5958
5959 2003-02-12  Jan Hubicka  <jh@suse.cz>
5960
5961         * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-unit-at-a-time
5962         (OBJS): Add callgraph.o
5963         (callgraph.o): New.
5964         * c-decl.c (expand_body_1): Break out from ...
5965         (expand_body): This one;  change calling convention
5966         (finish_function): Move some of expand_body logic here.
5967         (c_expand_deferred_function): Update call of expand_body
5968         (c_expand_stmt): Use c_expand_body_1.
5969         * c-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define.
5970         * c-objc-commin.c (c_objc_common_finish_file): Use callgraph code.
5971         * c-tree.h (c_expand_body): Declare.
5972         * callgraph.c: New file.
5973         * flags.h (flag_unit_at_a_time): Declare.
5974         * langhooks.h (LANG_HOOKS_CALLGRAPH_LOWER_FUNCTION,
5975         LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION,
5976         LANG_HOOKS_CALLGRAPH_INITIALIZER): New macros.
5977         * langhooks.h (struct lang_hooks_for_callgraph): New.
5978         (struct lang_hooks): Add callgraph field.
5979         * toplev.c (flag_unit_at_a_time): New.
5980         (lang_independent_options): Add flag_unit_at_a_time.
5981         (process_options): Disable unit-at-a-time mode for frontends not
5982         supporting callgraph.
5983         * tree-inline.c (typedef struct inline_data): Add "decl"
5984         (expand_call_inline): Update callgraph.
5985         (optimize_inline_calls): Set id.decl.
5986         * tree.h (cgraph_finalize_function, cgraph_finalize_compilation_unit,
5987         cgraph_create_edges, dump_cgraph, cgraph_optimize, cgraph_remove_call
5988         cgraph_calls_p): Declare.
5989         * invoke.texi (-funit-at-a-time): Document
5990
5991 2003-02-12  Aldy Hernandez  <aldyh@redhat.com>
5992
5993         * config/rs6000/spe.h: Fix misc formatting.
5994         (__ev_create_ufix32_fs): Cast ev argument.
5995         (__ev_create_sfix32_fs): Same.
5996         (__ev_get_sfix32_fs_internal): Cast arguments to builtins.
5997         (__ev_get_ufix32_fs_internal): Same.
5998
5999 2003-02-12  Ranjit Mathew  <rmathew@hotmail.com>
6000
6001         * doc/tm.texi (MODIFY_JNI_METHOD_CALL): Document.
6002         * config/i386/cygwin.h (MODIFY_JNI_METHOD_CALL): New macro.
6003
6004 2003-02-12  Zack Weinberg  <zack@codesourcery.com>
6005
6006         * cpplib.c (do_include_common): Move warnings for
6007         #include_next and #import out to callers.  Use early-return
6008         instead of nested ifs.  Don't do check_eol here.
6009         (parse_include): Do check_eol here with the rest of the
6010         parsing stuff.
6011         (do_include_next, do_import): Now handle warnings.
6012
6013 2003-02-11  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6014
6015         * doc/install.texi (Specific): Update AVR- and Darwin-related URLs.
6016
6017 2003-02-12  Jan Hubicka  <jh@suse.cz>
6018
6019         * predict.c (estimate_probability):  Fix roundoff error.
6020
6021 2003-02-12  Kazu Hirata  <kazu@cs.umass.edu>
6022
6023         * config/h8300/h8300.md (a peephole2): Don't handle 65535.
6024         (two peephole2): New.
6025
6026 2003-02-12  Kazu Hirata  <kazu@cs.umass.edu>
6027
6028         * config/h8300/h8300.md (several peephole2): Replace
6029         find_regno_note with peep2_reg_dead_p.
6030
6031 2003-02-11  Richard Henderson  <rth@redhat.com>
6032
6033         * gcse.c (lookup_set): Remove unused argument PAT.  Update
6034         both callers.
6035
6036 2003-02-11  Geoffrey Keating  <geoffk@apple.com>
6037
6038         * diagnostic.c (real_abort): New.
6039         (diagnostic_report_diagnostic): Call real_abort on error.
6040         * diagnostic.h (diagnostic_abort_on_error): New.
6041         (struct diagnostic_context): Add abort_on_error field.
6042         * toplev.c (setup_core_dumping): New.
6043         (decode_d_option): Handle 'H' case.
6044         * doc/invoke.texi (Debugging Options): Document -dH.
6045
6046 2003-02-11  Nathanael Nerode  <neroden@gcc.gnu.org>
6047
6048         * Makefile.in: Remove pointless setting of CXXFLAGS for dejagnu
6049         which refers to obsolete directories.
6050
6051 2003-02-11  Richard Henderson  <rth@redhat.com>
6052
6053         * config/alpha/linux.h (TARGET_C99_FUNCTIONS): New.
6054
6055 2002-10-21  Jan Hubicka  <jh@suse.cz>
6056
6057         * i386.c (contains_128bit_aligned_vector_p): New function.
6058         (ix86_function_arg_boundary): Properly align vector modes.
6059
6060 2003-02-11  Bob Wilson  <bob.wilson@acm.org>
6061
6062         * config/xtensa/xtensa.md (set_frame_ptr): Change rtl to set reg a7.
6063         * config/xtensa/xtensa.c (xtensa_reorg): Search for UNSPECV_SET_FP
6064         as a SET pattern.
6065
6066 2003-02-11  Roger Sayle  <roger@eyesopen.com>
6067
6068         * builtins.c:  Fix failure caused by commiting wrong patch.
6069
6070 2003-02-11  Dale Johannesen  <dalej@apple.com>
6071         * ra-build.c (compare_and_free_webs):  Relax checking.
6072         * config/rs6000/darwin.h (HOT_TEXT_SECTION_NAME):  Define.
6073         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME):  Define.
6074
6075 2003-02-11  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
6076
6077         PR optimization/9651
6078         * rtlanal.c (may_trap_p): Handle FIX.
6079
6080 2003-02-11  Dave Jones <davej@codemonkey.org.uk>
6081
6082         * config/i386/i386.c (override_options): Define c3-2 as a 686 with SSE.
6083         * doc/invoke.texi: Extra alias.
6084
6085 2003-02-11  Geoffrey Keating  <geoffk@apple.com>
6086
6087         * config/rs6000/host-darwin.c: Fix comment.
6088
6089 2003-02-11  David Edelsohn  <edelsohn@gnu.org>
6090
6091         * config/rs6000/rs6000.md (divmodsi4): Use register_operand
6092         predicate for mod result.
6093
6094 2003-02-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6095
6096         * inclhack.def (hpux_long_double, hpux10_ctype_declarations1,
6097         hpux10_ctype_declarations2, hpux_ctype_macros): New hacks.
6098         * fixincl.x: Rebuilt.
6099         * tests/base/stdlib.h: Update.
6100         * tests/base/ctype.h: New file.
6101
6102 2003-02-11  Jan Hubicka  <jh@suse.cz>
6103
6104         * emit-rtl.c (emit_copy_of_insn_after): Copy insn recog cache too.
6105
6106 2003-02-11  Richard Henderson  <rth@redhat.com>
6107
6108         * config/i386/i386.c (ix86_expand_movstr): Fail if esi or edi
6109         appropriated as globals.
6110         (ix86_expand_clrstr): Similarly.
6111         * config/i386/i386.md (cmpstrsi): Similarly.
6112
6113 2003-02-11  Kazu Hirata  <kazu@cs.umass.edu>
6114
6115         * config/h8300/h8300.md (a peephole2): Add a case of 255.
6116
6117 2003-02-11  Roger Sayle  <roger@eyesopen.com>
6118
6119         * optabs.h (enum optab_index): Add new OTI_pow and OTI_atan2.
6120         (pow_optab, atan2_optab): Define corresponding macros.
6121         * optabs.c (init_optabs): Initialize pow_optab and atan2_optab.
6122         * genopinit.c (optabs): Implement pow_optab and atan2_optab
6123         using pow?f3 and atan2?f3 patterns.
6124         * builtins.c (expand_errno_check): New function to update errno
6125         if necessary, split out from expand_builtin_mathfn.
6126         (expand_builtin_mathfn): Use expand_errno_check.
6127         (expand_builtin_mathfn_2): New function to handle expanding binary
6128         math functions, reusing the code in expand_errno_check.
6129         (expand_builtin): Handle the pow and atan2 math built-ins,
6130         BUILT_IN_{POW,POWF,POWL,ATAN2,ATAN2F,ATAN2L} via the new function
6131         expand_builtin_mathfn_2.
6132
6133         * doc/md.texi: Document new pow?f3 and atan2?f3 patterns.
6134
6135 2003-02-11  Jan Hubicka  <jh@suse.cz>
6136
6137         * combine.c (combine_simplify_rtx): Fix folding of
6138         nested float_truncates.
6139
6140 2003-02-11  Kazu Hirata  <kazu@cs.umass.edu>
6141
6142         * config/h8300/h8300.md (a peephole2): Fix a typo.
6143
6144 2003-02-11  Richard Earnshaw  <rearnsha@arm.com>
6145
6146         * arm.mc (return_address_mask): Use CC_REGNUM for the condition code
6147         register number.
6148
6149 2003-02-11  Kazu Hirata  <kazu@cs.umass.edu>
6150
6151         * config/h8300/h8300-protos.h: Add a prototype for
6152         gtuleu_operator.
6153         * config/h8300/h8300.c (gtuleu_operator): New.
6154         * config/h8300/h8300.h (PREDICATE_CODES): Add gtuleu_operator.
6155         * config/h8300/h8300.md (a peephole2): New.
6156
6157 2003-02-11  Jan Hubicka  <jh@suse.cz>
6158
6159         * sched-ebb.c (schedule_ebbs): Do not verify_flow_info.
6160
6161 2003-02-11  Jan Hubicka  <jh@suse.cz>
6162
6163         * predict.c (choose_function_section): Choose sections correctly.
6164
6165 2003-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6166
6167         * reload1.c (first_label_num): New.
6168         (reload): Index offsets_known_at and offsets_at using difference of
6169         label number and first label number.  Don't use offset pointers.
6170         (set_label_offsets, set_initial_label_offsets): Likewise.
6171
6172 2003-02-10  Roger Sayle  <roger@eyesopen.com>
6173
6174         * mips-tfile.c (init_file): Add missing initializers in the
6175         "#ifdef __alpha" case.
6176         (file_offset, max_file_offset): Declare as unsigned long.
6177         (write_varray): Cast to "unsigned long" in comparisons against
6178         either file_offset or max_file_offset.
6179         (write_object): Likewise.
6180         (read_seek): Likewise.
6181         (copy_object): Likewise. Declare "ifd" as int to match its use
6182         in add_ext_symbol, and avoid signed/unsigned conditional warning.
6183
6184 2003-02-10  Nick Clifton  <nickc@redhat.com>
6185             Aldy Hernandez  <aldyh@redhat.com>
6186
6187         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Do not
6188         override options which have been specified on the command line.
6189
6190 2003-02-10  Kazu Hirata  <kazu@cs.umass.edu>
6191
6192         * config/h8300/h8300.md (abssf2): New.
6193         (*abssf2_h8300): Likewise.
6194         (*abssf2_h8300hs): Likewise.
6195
6196 2003-02-10  Phil Edwards  <pme@gcc.gnu.org>
6197
6198         * tree.c (build_tree_list):  Fix parameter names in comment.
6199
6200 2003-02-10  Janis Johnson  <janis187@us.ibm.com>
6201
6202         * config/rs6000/ppc64-fp.c: New file.
6203         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add ppc64-fp.c.
6204
6205 2003-02-10  Josef Zlomek  <zlomekj@suse.cz>
6206
6207         * Makefile.in (bb-reorder.o): Add dependency on $(FIBHEAP_H).
6208         * bb-reorder.c (make_reorder_chain): Deleted.
6209         (make_reorder_chain_1): Deleted.
6210         (find_traces): New function.
6211         (rotate_loop): New function.
6212         (mark_bb_visited): New function.
6213         (find_traces_1_round): New function.
6214         (copy_bb): New function.
6215         (bb_to_key): New function.
6216         (better_edge_p): New function.
6217         (connect_traces): New function.
6218         (copy_bb_p): New function.
6219         (get_uncond_jump_length): New function.
6220         (reorder_basic_blocks): Use new functions (Software Trace Cache).
6221         * cfgcleanup.c (outgoing_edges_match): Enable crossjumping across loop
6222         boundaries.
6223
6224 2003-02-10  Aldy Hernandez  <aldyh@redhat.com>
6225
6226         * config/rs6000/rs6000.c (bdesc_2arg): Change spe_evxor to xorv2si3.
6227
6228 2003-02-09  Dan Nicolaescu  <dann@ics.uci.edu>
6229
6230         * tree.h (struct tree_decl): Remove unused live_range_rtl field.
6231         (DECL_LIVE_RANGE_RTL): Remove.
6232
6233 2003-02-10  Nick Clifton  <nickc@redhat.com>
6234
6235         * config/arm/aof.h, config/arm/aout.h, config/arm/arm-modes.def,
6236         config/arm/arm-protos.h, config/arm/arm.c, config/arm/arm.h,
6237         config/arm/arm.md, config/arm/cirrus.md, config/arm/coff.h,
6238         config/arm/conix-elf.h, config/arm/ecos-elf.h, config/arm/elf.h,
6239         config/arm/freebsd.h, config/arm/linux-elf.h,
6240         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
6241         config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h,
6242         config/arm/rtems-elf.h, config/arm/semi.h, config/arm/semiaof.h,
6243         config/arm/strongarm-coff.h, config/arm/strongarm-elf.h,
6244         config/arm/strongarm-pe.h, config/arm/uclinux-elf.h,
6245         config/arm/unknown-elf-oabi.h, config/arm/unknown-elf.h,
6246         config/arm/xscale-elf.h: Replace occurances of "GNU CC" with "GCC"
6247         and reformat as appropriate.
6248
6249 2003-02-10  Kazu Hirata  <kazu@cs.umass.edu>
6250
6251         * config/h8300/clzsi2.c: Remove.
6252         * config/h8300/ctzsi2.c: Likewise.
6253         * config/h8300/paritysi2.c: Likewise.
6254         * config/h8300/popcountsi2.c: Likewise.
6255         * config/h8300/t-h8300 (LIB2FUNCS_EXTRA): Remove clzsi2,
6256         ctzsi2, paritysi2, and popcountsi2.
6257
6258 2003-02-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
6259             Christian Ehrhardt  <ehrhardt@mathematik.uni-ulm.de>
6260
6261         PR c/7741
6262         * c-decl.c (duplicate_decls): Discard the initializer of the
6263         new decl when the types are conflicting.
6264
6265 2003-02-10  Josef Zlomek  <zlomekj@suse.cz>
6266
6267         * Makefile.in (sreal.o): Added.
6268         (predict.o): Depends on sreal.h instead of real.h.
6269         * sreal.c: New file.
6270         * sreal.h: New file.
6271         * predict.c: Use sreal.c instead of real.c.
6272
6273 2003-02-10  Nick Clifton  <nickc@redhat.com>
6274
6275         * Contributed support for the Cirrus EP9312 "Maverick"
6276         floating point co-processor.  Written by Aldy Hernandez
6277         <aldyh@redhat.com>.
6278         (config/arm/arm.c): Add Cirrus support.
6279         (config/arm/arm.h): Likewise.
6280         (config/arm/aout.h): Likewise.
6281         (config/arm/arm.md): Likewise.
6282         (config/arm/arm-protos.h): Likewise.
6283         (config.gcc): Likewise.
6284         (doc/invoke.texi): Describe new -mcpu value and new
6285         -mcirrus-fix-invalid-insns switch,
6286         (cirrus.md): New file.
6287
6288 2003-02-10  Jan Hubicka  <jh@suse.cz>
6289
6290         * combine.c (combine_simplify_rtx): Simplify using
6291         (float_truncate (float x)) is (float x)
6292         (float_extend (float_extend x)) is (float_extend x).
6293
6294 2003-02-10  Alan Modra  <amodra@bigpond.net.au>
6295
6296         * calls.c (try_to_integrate): Tidy stack_usage_map access.
6297         (emit_library_call_value_1): Likewise.  Formatting.
6298         (store_one_arg): Likewise.
6299
6300 2003-02-09  Nick Clifton  <nickc@redhat.com>
6301             Aldy Hernandez  <aldyh@redhat.com>
6302
6303         * config/rs6000/spe.md: spe_evlhhesplat, spe_evlhhossplat,
6304         spe_evlhhousplat, spe_evlwhsplat, spe_evlwwsplat, spe_evldd,
6305         spe_evldh, spe_evldw, spe_evlwhe, spe_evlwhos, spe_evlwhou,
6306         spe_evstdd, spe_evstdh, spe_evstdw, spe_evstdwx, spe_evstwhe,
6307         spe_evstwho, spe_evstwwe, spe_evstwwo: Fix syntax to match newest
6308         docs.  Add range test for immediate value.
6309
6310 2003-02-09  Aldy Hernandez  <aldyh@redhat.com>
6311
6312         Rename spe_evxor to xorv2si3.
6313         (xorv4hi3): New.
6314         (xorv1di3): New.
6315
6316 2003-02-10  Glen Nakamura  <glen@imodulo.com>
6317
6318         * doc/extend.texi (C++98 Thread-Local Edits): Add missing @item
6319         tag.
6320
6321 2003-02-10  Jan Hubicka  <jh@suse.cz>
6322
6323         * i386.c (vector_move_operand): New predicate.
6324         (ix86_expand_vector_move): Be happy about 0.
6325         * i386.h (PREDICATE_CODES): Add sse-move_operand.
6326         * i386.md (mov*_internal): Add 'C' alternative.
6327
6328 2003-02-09  Jan Hubicka  <jh@suse.cz>
6329
6330         * i386.md (floathi*): Deal with SSE.
6331
6332 2003-02-09  Jan Hubicka  <jh@suse.cz>
6333
6334         * simplify-rtx.c (simplify_unary_operation,
6335         simplify_binary_operation):  Deal with vector modes
6336         (simplify_ternary_operation):  Deal with no-op VEC_MERGE.
6337
6338 2003-02-09  Richard Sandiford  <rsandifo@redhat.com>
6339
6340         * toplev.c (rest_of_compilation): Recompute register usage after
6341         split_all_insns.
6342
6343 2003-02-09  Richard Henderson  <rth@redhat.com>
6344
6345         * libgcc-std.ver (__clztf2): New.
6346         (__ctztf2, __popcounttf2, __paritytf2): New.
6347         * libgcc2.c (__clzSI2, __clzDI2, __ctzSI2, __ctzDI2, __popcountSI2,
6348         __popcountDI2, __paritySI2, __parityDI2): Use UWmode and UDWmode;
6349         adjust code to match the different type sizes.
6350         * libgcc2.h (__clzSI2, __ctzSI2, __popcountSI2, __paritySI2,
6351         __clzDI2, __ctzDI2, __popcountDI2, __parityDI2): New macros.
6352
6353         * optabs.c (init_integral_libfuncs): Don't hard-code SImode and
6354         TImode; select word_mode and twice that.
6355         (init_floating_libfuncs): Don't hard-code SFmode and TFmode;
6356         select the modes from float, double, and long double.
6357         (init_optabs): Remove duplicate initializations.
6358
6359 2003-02-09  Wolfgang Bangerth  <bangerth@ticam.utexas.edu>
6360
6361         * doc/install.texi: Squeeze and streamline section on
6362         testing and regression checking.
6363
6364 2003-02-09  Jan Hubicka  <jh@suse.cz>
6365
6366         * i386.md (ahi?v*3): Set third operand type to TImode.
6367         * i386.c (ix86_expand_binop_builtin): Extend operand when needed.
6368
6369         * simplify-rtx.c (simplify_subreg): Fix conversion from vector into
6370         integer mode.
6371
6372         * rtl.def (VEC_MERGE, VEC_SELECT, VEC_CONCAT, VEC_DUPLICATE):
6373         Change code so they are arithmetic expressions now.
6374         * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation,
6375         simplify_ternary_operation): Deal with VEC_* expressions.
6376
6377         * i386.md (vmaskcmp, pinsrw, movd patterns):  Fix RTL representation.
6378
6379 2003-02-08  Jan Hubicka  <jh@suse.cz>
6380
6381         * cfgrtl.c (verify_flow_info):  Use control_flow_insn_p.
6382         * reload1.c (fixup_abnormal_edges):  Split basic blocks when EH edges
6383         possibly got duplicated.
6384
6385 2003-02-08  Richard Henderson  <rth@redhat.com>
6386
6387         * config/alpha/alpha.c (override_options): Turn off explicit
6388         relocs until post-peep2 code duplication resolved.
6389
6390 2003-02-08  Kazu Hirata  <kazu@cs.umass.edu>
6391
6392         * optabs.c (expand_unop): Widen clz properly when clz is done
6393         via libcall.
6394
6395 2003-02-08  Kazu Hirata  <kazu@cs.umass.edu>
6396
6397         * config/h8300/clzsi2.c: Replace "GNU CC" with "GCC".
6398         * config/h8300/crti.asm: Likewise.
6399         * config/h8300/crtn.asm: Likewise.
6400         * config/h8300/ctzsi2.c: Likewise.
6401         * config/h8300/fixunssfsi.c: Likewise.
6402         * config/h8300/h8300-protos.h: Likewise.
6403         * config/h8300/h8300.c: Likewise.
6404         * config/h8300/h8300.h: Likewise.
6405         * config/h8300/h8300.md: Likewise.
6406         * config/h8300/paritysi2.c: Likewise.
6407         * config/h8300/popcountsi2.c: Likewise.
6408         * config/h8300/rtems.h: Likewise.
6409
6410 2003-02-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6411
6412         * doc/invoke.texi: Documentation for my previous commit.
6413         * doc/passes.texi: Ditto.
6414
6415 2003-02-08  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6416
6417         * cfgloop.h (fix_loop_placement, can_duplicate_loop_p,
6418         duplicate_loop_to_header_edge, loopify, remove_path, split_loop_bb):
6419         Declare.
6420         (DLTHE_FLAG_UPDATE_FREQ): New.
6421         * cfgloopmanip.c (duplicate_loop, duplicate_subloops, copy_loops_to,
6422         loop_redirect_edge, loop_delete_branch_edge, copy_bbs, remove_bbs,
6423         rpe_enum_p, find_branch, alp_enum_p, add_loop, fix_loop_placements,
6424         fix_bb_placement, fix_bb_placements, place_new_loop,
6425         scale_loop_frequencies, scale_bbs_frequencies, record_exit_edges):
6426         New static functions.
6427         (fix_loop_placement, can_duplicate_loop_p,
6428         duplicate_loop_to_header_edge, loopify, remove_path, split_loop_bb):
6429         New functions.
6430
6431         * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize,
6432         unswitch_loops): Declare.
6433         * loop-init.c: New file.
6434         * loop-unswitch.c: New file.
6435         * Makefile.in (loop-init.o, loop-unswitch.o): New.
6436         * params.def (PARAM_MAX_UNSWITCH_INSNS, PARAM_MAX_UNSWITCH_LEVEL): New.
6437         * toplev.c (DFI_loop2): New dump.
6438         (flag_unswitch_loops): New.
6439         (lang_independent_options): Add it.
6440         (rest_of_compilation): Call new loop optimizer.
6441         (parse_options_and_default_flags): Turn flag_unswitch_loops on with -O3.
6442
6443 2003-02-08  Kazu Hirata  <kazu@cs.umass.edu>
6444
6445         * config/h8300/clzsi2.c: New.
6446         * config/h8300/ctzsi2.c: Likewise.
6447         * config/h8300/paritysi2.c: Likewise.
6448         * config/h8300/popcountsi2.c: Likewise.
6449         * config/h8300/t-h8300 (LIB2FUNCS_EXTRA): Add above files.
6450
6451 2003-02-07  David Edelsohn  <edelsohn@gnu.org>
6452
6453         * config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Define.
6454         * config/rs6000/rs6000.md (clzsi2): Rename from cntlzw2.
6455         (ctzsi2): New pattern.
6456         (ffssi2): Use clz instead of unspec.
6457         (clzdi2): Rename from cntlzd2.
6458         (ctzdi2): New pattern.
6459         (ffsdi2): Use clz instead of unspec.
6460
6461 2003-02-07  Loren James Rittle  <ljrittle@acm.org>
6462
6463         * config/alpha/freebsd.h (LINK_SPEC): Weaken error to notice.
6464         * config/ia64/freebsd.h (LINK_SPEC): Likewise.
6465         * config/sparc/freebsd.h (LINK_SPEC): Likewise.
6466         * config/i386/freebsd.h (LINK_SPEC): Add clause to mirror other arches.
6467
6468 2003-02-07  Wolfgang Bangerth  <bangerth@ticam.utexas.edu>
6469
6470         * doc/trouble.texi: Document pitfalls of two-stage name lookup.
6471
6472 2003-02-07  Richard Henderson  <rth@redhat.com>
6473
6474         PR 9226
6475         * gcse.c (local_cprop_find_used_regs): New.
6476         (local_cprop_pass): Use it.
6477
6478 2003-02-07  Fred Fish  <fnf@intrinsity.com>
6479
6480         * mips-tfile.c (parse_def): Parenthesize assignments to fix
6481         precedence bugs.
6482
6483 2003-02-07  Segher Boessenkool  <segher@koffie.nl>
6484
6485         * genoutput.c (output_get_insn_name): Handle NOOP_MOVE_INSN_CODE.
6486
6487 2003-02-07  Roger Sayle  <roger@eyesopen.com>
6488
6489         * builtin-types.def (BT_FN_FLOAT_FLOAT_FLOAT): New built-in type.
6490         (BT_FN_LONG_DOUBLE_LONG_DOUBLE_LONG_DOUBLE): Likewise.
6491         (BT_FN_DOUBLE_DOUBLE_DOUBLE): Likewise.
6492         * builtins.def: Define pow, powf, powl, atan2, atan2f and atan2l
6493         builtin functions (and their __builtin_* variants).
6494         * builtins.c (mathfn_built_in): Handle missing log{,f,l} cases.
6495         (expand_builtin): Don't expand log{,f,l}, pow{,f,l} or atan2{,f,l}
6496         when not optimizing.
6497
6498         * doc/extend.texi: Document new pow and atan2 builtins, and
6499         their float and long double variants.  Realphabetize builtins.
6500
6501 2003-02-07  Jan Hubicka  <jh@suse.cz>
6502
6503         * i386.md (sse2_nandv2di3): Fix.
6504
6505 2003-03-07  Danny Smith  <dannysmith@users.sourceforge.net>
6506
6507         * config/i386/i386.h (MS_AGGREGATE_RETURN): New define.
6508         * config/i386/cygwin.h (MS_AGGREGATE_RETURN): Override default
6509         definition.
6510         * config/i386/i386.h (ix86_return_in_memory): Return aggregate
6511         types of up to 8 bytes via registers if MS_AGGREGATE_RETURN.
6512
6513 2003-02-07  Jan Hubicka  <jh@suse.cz>
6514
6515         * i386.md (movdi_rex64_1): Fix mmx<->int move opcode.
6516
6517 2003-02-07  Daniel Berlin  <dberlin@dberlin.org>
6518
6519         * cfg.c (dump_flow_info): Add back accidently deleted line.
6520
6521 2003-02-07  Andrey Petrov <petrov@netbsd.org>
6522
6523         * optabs.c (expand_float): Search wider integer modes first.
6524
6525 2003-02-07  Bob Wilson  <bob.wilson@acm.org>
6526
6527         * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Set this
6528         based on preprocessor flag.
6529
6530 2003-02-07  Roger Sayle  <roger@eyesopen.com>
6531             Richard Henderson  <rth@redhat.com>
6532
6533         * gcse.c (implicit_sets): New.
6534         (compute_hash_table_work): Include them in hash table.
6535         (find_implicit_sets, fis_get_condition): New.
6536         (one_cprop_pass): Allocate and free implicit_sets; call
6537         find_implicit_sets before building hash table.
6538
6539 2003-02-07  Jason Thorpe  <thorpej@wasabisystems.com>
6540
6541         * config/t-netbsd (USER_H): Revert previous change.
6542
6543 2003-02-07  Gabor Greif  <ggreif@lucent.com>
6544
6545         * doc/c-tree.texi (Namespaces): Fix typo.
6546
6547 2003-02-07  Jan Hubicka  <jh@suse.cz>
6548
6549         * regrename.c (do_replace, find_oldest_value_reg,
6550         copyprop_hardreg_forward_1): Update register attributes.
6551
6552 2003-02-06  Vladimir Makarov  <vmakarov@redhat.com>
6553
6554         * genautomata.c (VLA_PTR_CREATE, VLA_PTR_EXPAND, VLA_PTR_ADD,
6555         VLA_HWINT_CREATE, VLA_HWINT_EXPAND, VLA_HWINT_ADD): Use temporay
6556         variables starting with underscore.
6557         (struct unit_usage): New structure.
6558         (unit_usages, cycle_alt_unit_usages): New global variables.
6559         (check_unit_distribution_in_reserv): Remove it.
6560         (store_alt_unit_usage): New function.
6561         (check_regexp_units_distribution): Rewrite it.
6562
6563 2003-02-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6564
6565         * config.gcc (hppa*-*-linux*): Set MASK_NO_SPACE_REGS in
6566         target_cpu_default.
6567         * pa.c (attr_length_call): Add 8 to call length (long indirect PA 1.X)
6568         if not MASK_NO_SPACE_REGS.
6569         (output_call): Adjust return pointer, don't load new space register
6570         into %sr0, and use %sr4 for call if TARGET_NO_SPACE_REGS is true.
6571         (pa_asm_output_mi_thunk): Don't load new space register into %sr0 if
6572         TARGET_NO_SPACE_REGS is true.
6573         * pa.md (return_external_pic): Add TARGET_NO_SPACE_REGS to insn
6574         conditions.
6575         (epilogue): Always use return_internal if TARGET_NO_SPACE_REGS is true.
6576         (interspace_jump): Add new pattern for when TARGET_NO_SPACE_REGS is
6577         true.  Use bve when TARGET_64BIT is true.
6578
6579 2003-02-06  Richard Henderson  <rth@redhat.com>
6580
6581         * combine.c (nonzero_bits): Fix double break.
6582
6583 2003-02-06  Eric Botcazou <ebotcazou@libertysurf.fr>
6584             Richard Henderson <rth@redhat.com>
6585
6586         PR c/9530
6587         * config/i386/i386.c (ix86_function_ok_for_sibcall): Forbid sibcalls
6588         from functions that return a float to functions that don't.
6589
6590 2003-02-06  Jan Hubicka  <jh@suse.cz>
6591
6592         * i386.c (x86_inter_unit_moves): New variable.
6593         (ix86_secondary_memory_needed): Fix 64bit case, honor
6594         TARGET_INTER_UNIT_MOVES
6595         * i386.h (x86_inter_unit_moves): Declare.
6596         (TARGET_INTER_UNIT_MOVES): New macro.
6597         * i386.md (movsi_1): Cleanup constraints; disable
6598         when not doing inter-unit moves.
6599         (movsi_1_nointernunit): New.
6600         (movdi_1_rex64): Fix constraints; deal with SSE->GPR moves.
6601         (movdi_1_rex64_nointerunit): New.
6602         (mivsf_1): disable when not doing inter-unit moves.
6603         (movsf_1_nointerunit): New.
6604
6605         * basic-block.h (inside_basic_block_p):  Declare.
6606         * cfgbuild.c (inside_basic_block_p): Make global.
6607         * haifa-sched.c (unlink_other_notes0: Deal with NOT_INSN_BASIC_BLOCK.
6608         * scheudle-ebb.c  (schedule_ebb): Return last basic block of trace;
6609         update CFG.
6610         (fix_basic_block_boundaries, add_missing_bbs): New.
6611         (rank): Use profile.
6612         (scheudle_ebbs): Rely on CFG; update coments.
6613
6614 2003-02-05  Geoffrey Keating  <geoffk@apple.com>
6615
6616         * Makefile.in (host_hook_obj): New.
6617         (OBJS): Add $(host_hook_obj).
6618         (host_default.o): New rule.
6619         * config.gcc (host_hook_obj): New, default to host-default.o.
6620         (powerpc-*-darwin*): Use host-darwin.o.
6621         (out_host_hook_obj): New.
6622         * configure: Regenerate.
6623         * configure.in: Print information about out_host_hook_obj, substitute
6624         into output files.
6625         * host-default.c: New file.
6626         * hosthooks.h: New file.
6627         * toplev.c (general_init): Call host_hooks.extra_signals.
6628         * config/rs6000/host-darwin.c: New file.
6629         * config/rs6000/x-darwin: New file.
6630         * doc/hostconfig.texi: Add documentation for new host hook.
6631         Rearrange existing documentation.
6632
6633 2003-02-05  Roger Sayle  <roger@eyesopen.com>
6634
6635         * dwarf2out.c (mem_loc_descriptor): Replace ASM_SIMPLIFY_DWARF_ADDR
6636         with *targetm.delegitimize_address.
6637         (rtl_for_decl_location): Likewise.
6638         * dwarfout.c (output_mem_loc_descriptor): Likewise.  Include target.h.
6639         * Makefile.in (dwarf2out.c, dwarfout.c): Depend upon $(TARGET_H)
6640
6641         * config/i386/i386.h (ASM_SIMPLIFY_DWARF_ADDR): Remove definition.
6642         * config/i386/i386-protos.h (i386_simplify_dwarf_addr): Remove
6643         prototype.
6644         * config/i386/i386.c (ix86_delegitimize_address): Renamed from
6645         i386_simplify_dwarf_addr.  Made static.  Prototyped.
6646         (TARGET_DELEGITIMIZE_ADDRESS): Update definition from
6647         i386_simplify_dwarf_addr to ix86_delegitimize_address.
6648         (ix86_find_base_term): Likewise.
6649         (maybe_get_pool_constant): Likewise.
6650
6651         * config/s390/s390.h (ASM_SIMPLIFY_DWARF_ADDR): Remove definition.
6652         * config/s390/s390-protos.h (s390_simplify_dwarf_addr): Remove
6653         prototype.
6654         * config/s390/s390.c (s390_delegitimize_address): Renamed from
6655         s390_simplify_dwarf_addr.  Made static.  Prototyped.
6656         (TARGET_DELEGITIMIZE_ADDRESS): Define as s390_delegitimize_address.
6657
6658 2003-02-05  Richard Henderson  <rth@redhat.com>
6659
6660         PR c/8602
6661         * integrate.c (output_inline_function): Reset input_filename
6662         and lineno from the decl before rest_of_compilation.
6663
6664 2003-02-05  Richard Henderson  <rth@redhat.com>
6665
6666         * defaults.h (CLZ_DEFINED_VALUE_AT_ZERO): New.
6667         (CTZ_DEFINED_VALUE_AT_ZERO): New.
6668         * doc/rtl.texi, doc/tm.texi: Document them.
6669
6670         * combine.c (nonzero_bits) [CLZ, CTZ]: Handle the definedness
6671         of the value at zero properly.
6672         * fold-const.c (tree_expr_nonnegative_p): Likewise.
6673         * simplify-rtx.c (simplify_unary_operation): Likewise.
6674
6675         * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO): New.
6676         (CTZ_DEFINED_VALUE_AT_ZERO): New.
6677
6678         * config/arm/arm.c (TARGET_INIT_BUILTINS): Remove.
6679         (TARGET_EXPAND_BUILTIN): Remove.
6680         (def_builtin, arm_init_builtins, arm_expand_builtin): Remove.
6681         * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): New.
6682         (enum arm_builtins): Remove.
6683         * config/arm/arm.md (UNSPEC_CLZ): Remove.
6684         (clzsi2): Rename from clz; use clz instead of unspec.
6685         (ctzsi2): New.
6686         * config/arm/arm-protos.h: Update.
6687
6688 2003-02-05  Jan Hubicka  <jh@suse.cz>
6689
6690         * i386-protos.h (x86_emit_floatuns):  Declare.
6691         * i386.c (x86_emit_floatuns): New global function.
6692         * i386.md (floatunssisf2, floatunsdisf2,
6693         floatunsdidf2):  New patterns.
6694
6695 2003-01-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6696
6697         * cfgloopmanip.c (force_single_succ_latches): Fix missindentation.
6698
6699 2003-02-05  Hans Boehm <Hans.Boehm@hp.com>
6700
6701         * config/ia64/unwind-ia64.c: include coretypes.h, tm.h to get
6702           config/ia64/linux.h
6703
6704 2003-02-05  Roger Sayle  <roger@eyesopen.com>
6705
6706         * cfgloop.h (flow_bb_inside_loop_p): Correct prototype again.
6707
6708 2003-02-05  Jakub Jelinek  <jakub@redhat.com>
6709
6710         PR optimization/8555
6711         * config/i386/i386.md (sse_mov?fcc split): Handle op2 == op3 case
6712         instead of aborting.
6713
6714 2003-02-04  Richard Henderson  <rth@redhat.com>
6715
6716         * config/i386/i386.md (UNSPEC_BSF): Remove.
6717         (ffssi2): Split into cmove and no_cmove insns and splitters;
6718         lose pentium float trick for now.
6719         (ffssi_1): Add * to name; use CTZ instead of UNSPEC.
6720         (ctzsi2, clzsi2, bsr): New.
6721
6722 2003-02-04  Richard Henderson  <rth@redhat.com>
6723
6724         * config/ia64/ia64.c (rtx_needs_barrier): Handle POPCOUNT,
6725         UNSPEC_GETF_EXP; remove UNSPEC_POPCNT.
6726         * config/ia64/ia64.md (UNSPEC_POPCNT): Remove.
6727         (ffsdi2): Use popcount instead of unspec.
6728         (popcountdi2): Rename from *popcnt.
6729         (ctzdi2, clzdi2, getf_exp_tf): New.
6730
6731 2003-02-04  Kazu Hirata  <kazu@cs.umass.edu>
6732
6733         * genconfig.c (main): Generate CC0_P.
6734         * rtl.h (CC0_P): Remove.
6735
6736 2003-02-04  Richard Henderson  <rth@redhat.com>
6737
6738         * libgcc2.h, libgcc2.c (__ffsSI2): New.
6739         (__ffsDI2): Rename from __ffsdi2.
6740         * mklibgcc.in (lib2funcs): Add _ffssi2.
6741
6742 2003-02-04  Richard Henderson  <rth@redhat.com>
6743
6744         * libgcc2.c (__paritysi2, __paritydi2): Replace last two reduction
6745         rounds with a "bit table" lookup.
6746
6747 2003-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
6748
6749         * reload.c (find_reloads): Do not use the mode specified in the insn
6750         pattern as reload mode for address operands.  Do not generate optional
6751         reloads for operands where a mandatory reload was already pushed.
6752
6753 2003-02-04  Richard Henderson  <rth@redhat.com>
6754
6755         * longlong.h [alpha] (count_leading_zeros, count_trailing_zeros): Use
6756         builtins instead of inline assembly.
6757
6758 2003-02-04  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
6759
6760         PR c/9376
6761         * libgcc2.c (__subvdi3): Fix typo.
6762
6763 2003-02-04  Jan Hubicka  <jh@suse.cz>
6764
6765         * i386.md (movti_rex64):  Fix constraint.
6766
6767 2003-02-04  Jan Hubicka  <jh@suse.cz>
6768
6769         * i386.md (vector push splitters):  Fix typo in resolving conflict.
6770
6771 2003-02-04  Rodney Brown  <rbrown64@csc.com.au>
6772
6773         * config/i386/i386.c (x86_function_profiler): Fix typo in format.
6774
6775 2003-02-04  Phil Edwards  <pme@gcc.gnu.org>
6776
6777         * doc/install.texi (*-*-linux-gnu):  Mention glibc requirements
6778         for recent libstdc++.  Remove formatting cruft.
6779
6780 2003-02-04  Jakub Jelinek  <jakub@redhat.com>
6781
6782         * dwarf2out.c (dwarf2out_finish): Add AT_comp_dir
6783         attribute even if input file name is absolute, but one of the
6784         includes is relative.
6785
6786 2003-02-04  Joseph S. Myers  <jsm@polyomino.org.uk>
6787
6788         * doc/gcc.texi, doc/gccint.texi, doc/gcov.texi,
6789         doc/include/fdl.texi, doc/invoke.texi: Update to GFDL 1.2.
6790         * doc/install.texi: Update copyright dates.  Update to GFDL 1.2.
6791
6792 2003-02-03  Richard Henderson  <rth@redhat.com>
6793
6794         * libgcc2.c (__ffsdi2, __clzsi2, __clzdi2, __ctzsi2, __ctzdi2,
6795         __popcountsi2, __popcountdi2, __paritysi2, __paritydi2): Change
6796         return type to "int".  Shuffle declarations and undef int trap.
6797         * libgcc2.h: Remove their declarations.
6798         * optabs.c (expand_unop): Force outmode to int for bitops.
6799
6800 2003-02-03  Bob Wilson  <bob.wilson@acm.org>
6801
6802         * config/xtensa/xtensa.c (order_regs_for_local_alloc): Order the
6803         coprocessor registers before floating-point registers.
6804         * config/xtensa/xtensa.h (REG_ALLOC_ORDER): Adjust register numbers
6805         to account for a previously removed register.
6806         (SPEC_REG_FIRST, SPEC_REG_LAST, SPEC_REG_NUM, COUNT_REGISTER_REGNUM):
6807         Delete unused macros.
6808
6809 2003-02-03  Jan Hubicka  <jh@suse.cz>
6810
6811         * i386.c (ix86_expand_store_builtin):  Always force op1 to register.
6812         (mov*_internal): Fix predicates; require one of operands to not be
6813         memory.
6814         (SSE?MMX move expanders):  Fix predicates; force one of operands to
6815         register.
6816         (SSE/MMX push patterns): Reorganize; fix x86-64 code generation.
6817         (movups/movupd/movdqu patterns): Force one of operands to not be
6818         memory.
6819
6820 2003-02-03  Roger Sayle  <roger@eyesopen.com>
6821
6822         * hooks.c (hook_rtx_rtx_identity): Generic hook function that
6823         takes a single rtx and returns it unmodified.
6824         * hooks.h (hook_rtx_rtx_identity): Prototype here.
6825         * target.h (struct gcc_target): Add "delegitimize_address"
6826         field to target structure.
6827         * target-def.h (TARGET_DELEGITIMIZE_ADDRESS):  Provide default
6828         for delegitimize_address target using hook_rtx_rtx_identity.
6829         (TARGET_INITIALIZER): Initialize delegitimize_address field
6830         using TARGET_DELEGITIMIZE_ADDRESS macro.
6831         * simplify-rtx.c (avoid_constant_pool_reference): Handle float
6832         extensions of constant pool references.  Use delegitimize_address
6833         to undo the obfuscation of "-fpic".
6834         * Makefile.in (simplify-rtx.o): Add dependency on target.h.
6835
6836         * config/i386/i386.c (TARGET_DELEGITIMIZE_ADDRESS): Define as
6837         i386_simplify_dwarf_addr.
6838         (ix86_find_base_term): Simplify using i386_simplify_dwarf_addr.
6839         (maybe_get_pool_constant): Likewise.
6840
6841 2003-02-03  Jan Hubicka  <jh@suse.cz>
6842
6843         * i386.c (ix86_expand_int_movcc):  Fix setcc sign bit case.
6844
6845 2003-02-03  Jan Hubicka  <jh@suse.cz>
6846
6847         * regclass.c (cannot_change_mode_set_regs): Correct argument order.
6848
6849 2003-02-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
6850
6851         * mips/_tilib.c: Don't include tsystem.h or defaults.h.  Don't
6852         define LIBGCC2_WORDS_BIG_ENDIAN.  Include coretypes.h and tm.h.
6853
6854 2003-02-02  Andreas Schwab  <schwab@suse.de>
6855
6856         * varasm.c (asm_output_aligned_bss): Declare as possibly unused.
6857
6858 2003-02-02  Richard Earnshaw  <rearnsha@arm.com>
6859
6860         * arm.md (sibcall_epilogue): Set the "conds" to "clob".
6861         (epilogue_insns): Likewise.
6862
6863 2003-02-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6864
6865         * doc/install.texi (hppa*-hp-hpux11*): Update installation notes.
6866
6867 2003-02-02  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6868
6869         * pa-protos.h (attr_length_millicode_call): Remove second argument.
6870         (attr_length_indirect_call, attr_length_indirect_call,
6871         attr_length_save_restore_dltp): New prototypes.
6872         * pa.c (attr_length_millicode_call): Remove second argument.  Check
6873         INSN_ADDRESSES_SET_P in distance calculation.
6874         (output_millicode_call): Check INSN_ADDRESSES_SET_P before using
6875         INSN_ADDRESSES.
6876         (attr_length_call): Check INSN_ADDRESSES_SET_P in distance calculation.
6877         (output_call): Check INSN_ADDRESSES_SET_P before using INSN_ADDRESSES.
6878         Call attr_length_call directly.
6879         (attr_length_indirect_call, output_indirect_call,
6880         attr_length_save_restore_dltp): New functions.
6881         * pa.md (attr_length_millicode_call): Drop second argument from all
6882         patterns.
6883         (return_internal_pic): Delete.
6884         (return_external_pic): Remove use of PIC register and pic operand and
6885         flag checks.
6886         (epilogue): Use return_internal for both normal and pic code.
6887         (call, call_value): Emit new 32-bit pic patterns for symref and
6888         indirect calls.  Remove uses for arg pointer and pic register.
6889         (call_symref_pic, call_symref_pic_post_reload, call_reg_pic,
6890         call_reg_pic_post_reload, call_val_symref_pic,
6891         call_val_symref_pic_post_reload, call_val_reg_pic,
6892         call_val_reg_pic_post_reload): New pre and post reload insn patterns.
6893         Implement define_split and define_peephole2 patterns for pre reload
6894         patterns.
6895         (call_symref_64bit, call_internal_reg_64bit, call_value_symref_64bit,
6896         call_value_internal_reg_64bit): Shorten names.
6897         (all call patterns): Explicitly indicate registers used and clobbered.
6898         Use attr_length_indirect_call and attr_length_save_restore_dltp for
6899         attribute length calculation.  Move code generation for indirect calls
6900         to output_indirect_call.
6901         (sibcall, sibcall_value): Don't restore PIC register.
6902         (exception_receiver, builtin_setjmp_receiver): Add blockage after PIC
6903         register retore.
6904
6905 2003-02-02  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
6906
6907         * doc/install.texi (Testing): Simplify and compress instructions
6908         concerning Dejagnu.
6909
6910 2003-02-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6911
6912         * collect2.c (pexecute_pid): Rename to pid.
6913         (collect_wait, collect_execute, scan_prog_file, scan_libraries): Use
6914         pid.
6915
6916 2003-02-01  Geoffrey Keating  <geoffk@apple.com>
6917
6918         * doc/extend.texi (Function Attributes): Remove documentation
6919         for PowerPC Windows NT function attributes..
6920
6921 2003-02-01  Daniel Jacobowitz  <drow@mvista.com>
6922
6923         * dwarf2out.c (gen_type_die): Check for typedefs before calling
6924         for TYPE_MAIN_VARIANT.
6925
6926 2003-02-01  Richard Henderson  <rth@redhat.com>
6927
6928         * libgcc2.c: Include auto-host.h.
6929         (ATTRIBUTE_HIDDEN): New.
6930         (__clz_tab): Don't declare here for clz and ctz.
6931         (__clzsi2, __clzdi2): Use count_leading_zeros.
6932         (__ctzsi2, __ctzdi2): Use count_trailing_zeros.
6933         (__popcount_tab): Mark ATTRIBUTE_HIDDEN.
6934         (__paritysi2, __paritydi2): Use shifts instead of __popcount_tab.
6935         * longlong.h (__clz_tab): Mark ATTRIBUTE_HIDDEN.
6936
6937 2003-02-01  Richard Henderson  <rth@redhat.com>
6938
6939         * config/i386/i386.md (addsi_1_zext splitter): Add TARGET_64BIT
6940         to the conditional.
6941         (ashlsi3_1_zext splitter): Likewise.
6942
6943 2003-02-01  Richard Henderson  <rth@redhat.com>
6944
6945         * optabs.c (expand_unop): Use word_mode for outmode of bit scaners.
6946         * libgcc2.c (__ffsdi2, __clzsi2, __clzdi2, __ctzsi2, __ctzdi2,
6947         __popcountsi2, __popcountdi2, __paritysi2 __paritydi2): Change
6948         return type to Wtype.
6949
6950         * libgcc-std.ver (GCC_3.4): Fix inheritance.
6951
6952         * config/i386/i386.md (ffssi2): Use nonimmediate_operand for
6953         expander input constraint.
6954
6955 2003-02-01  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
6956
6957         * optabs.h (optab_index): Add OTI_clz, OTI_ctz, OTI_popcount and
6958         OTI_parity.
6959         (clz_optab, ctz_optab, popcount_optab, parity_optab): New.
6960         * optabs.c (widen_clz, expand_parity): New.
6961         (expand_unop): Handle clz and parity.  Hardcode SImode as outmode
6962         for libcalls to clz, ctz, popcount, and parity.
6963         (init_optabs): Init clz_optab, ctz_optab, popcount_optab and
6964         parity_optab, and set up libfunc handlers.
6965         * libgcc2.c (__clzsi2, __clzdi2, __ctzsi2, __ctzdi2,
6966         __popcountsi2, __popcountdi2, __paritysi2 __paritydi2,
6967         __popcount_tab): New.
6968         * libgcc2.h: Declare them.
6969         * libgcc-std.ver (GCC_3.4): Add new functions from libgcc2.c.
6970         * genopinit.c (optabs): Add clz_optab, ctz_optab, popcount_optab
6971         and parity_optab.
6972         * builtin-types.def (BT_FN_INT_LONG, BT_FN_INT_LONGLONG): New.
6973         * builtins.def (BUILT_IN_CLZ, BUILT_IN_CTZ, BUILT_IN_POPCOUNT,
6974         BUILT_IN_PARITY, BUILT_IN_FFSL, BUILT_IN_CLZL, BUILT_IN_CTZL,
6975         BUILT_IN_POPCOUNTL, BUILT_IN_PARITYL, BUILT_IN_FFSLL,
6976         BUILT_IN_CLZLL, BUILT_IN_CTZLL, BUILT_IN_POPCOUNTLL,
6977         BUILT_IN_PARITYLL): New.
6978         * builtins.c (expand_builtin_unop): Rename from expand_builtin_ffs
6979         and add optab argument.
6980         (expand_builtin): Expand BUILT_IN_{FFS,CLZ,POPCOUNT,PARITY}*.
6981         * tree.def (CLZ_EXPR, CTZ_EXPR, POPCOUNT_EXPR, PARITY_EXPR): New.
6982         * expr.c (expand_expr): Handle them.
6983         * fold-const.c (tree_expr_nonnegative_p): Likewise.
6984         * rtl.def (CLZ, CTZ, POPCOUNT, PARITY): New.
6985         * reload1.c (eliminate_regs): Handle them.
6986         (elimination_effects): Likewise.
6987         * function.c (instantiate_virtual_regs_1): Likewise
6988         * genattrtab.c (check_attr_value): Likewise.
6989         * simplify-rtx.c (simplify_unary_operation): Likewise.
6990         * c-common.c (c_common_truthvalue_conversion): Handle POPCOUNT_EXPR.
6991         * combine.c (combine_simplify_rtx): Handle POPCOUNT and PARITY.
6992         (nonzero_bits): Handle CLZ, CTZ, POPCOUNT and PARITY.
6993         * config/alpha/alpha.md (clzdi2, ctzdi2, popcountdi2): New.
6994         * config/arm/arm.c (arm_init_builtins): Rename __builtin_clz to
6995         __builtin_arm_clz.
6996         * Makefile.in (LIB2FUNCS_1, LIB2FUNCS_2): Move...
6997         * mklibgcc.in (lib2funcs): ...here and merge.  Add new members.
6998         * doc/extend.texi (Other Builtins): Add new builtins.
6999         * doc/md.texi (Standard Names): Add new patterns.
7000
7001 2003-02-01  Ulrich Weigand  <uweigand@de.ibm.com>
7002
7003         * reload.c: Revert 2003-01-31 change.
7004
7005 2003-02-01  Jan Hubicka  <jh@suse.cz>
7006
7007         * combine.c (combine_simplify_rtx):  Use reversed_comparison_code_parts.
7008
7009 2003-02-01  Richard Sandiford  <rsandifo@redhat.com>
7010
7011         * flags.h (flag_volatile): Remove declaration.
7012         (flag_volatile_global, flag_volatile_static): Likewise.
7013         * c-typeck.c (build_indirect_ref): Don't check flag_volatile.
7014         * toplev.c (flag_volatile): Remove definition.
7015         (flag_volatile_global, flag_volatile_static): Likewise.
7016         (f_options): Remove corresponding entries here.
7017         * varasm.c (make_decl_rtl): Don't check flag_volatile_global
7018         or flag_volatile_static.
7019         * doc/invoke.texi: Remove documentation of -fvolatile,
7020         -fvolatile-global and -fvolatile-static.
7021
7022 2003-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7023
7024         * pa.c (pa_output_function_prologue, pa_output_function_epilogue): Move
7025         updating of total_code_bytes from prologue to epilogue.
7026
7027 2003-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
7028
7029         * reload.c (find_reloads): Do not use the mode specified in the insn
7030         pattern as reload mode for address operands.  Do not generate optional
7031         reloads for operands where a mandatory reload was already pushed.
7032         Generate optional reloads only in the final pass though find_reloads.
7033         (have_replacement_p): New function.
7034
7035 2003-01-31  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
7036
7037         * doc/install.texi (Testing): Remove a reference to our obsolete
7038         /testresults web pages and strip redundant information concerning
7039         test results.
7040         (Binaries): Refer to Microsoft Windows instead of listing all
7041         possible variants.
7042
7043 2003-02-01  Jan Hubicka  <jh@suse.cz>
7044
7045         * loop.c (emit_prefetch_instructions):  Do conversion at right place in
7046         RTL chain.
7047
7048         * combine.c (simplify_set): Reverse order of ragumetns to
7049         REG_CANNOT_CHANGE_MODE_P
7050         * df.c (df_def_record_1): Likewise.
7051         * recog.c (register_operand): Likewise.
7052         * simplify-rtx.c (simplify_subreg): Likewise.
7053         * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Update use of
7054         CANNOT_CHANGE_MODE_CLASS.
7055         * regclass.c (cannot_change_mode_set_regs, invalid_mode_change_p):
7056         Likewise.
7057         * reload.c (push_reload): Likewise.
7058         * alpha.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
7059         * ia64.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
7060         * mips.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
7061         * mips-protos.h (mips_cannot_change_mode_class): Update prototype.
7062         * mips.c (mips_cannot_change_mode_class): Update.
7063         * pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
7064         * rs6000.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
7065         * s390.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
7066         * sh.h (CANNOT_CHANGE_MODE_CLASS): Update definition.
7067         * sh-protos.h (sh_cannot_change_mode_class): Update prototype.
7068         * sh.c (sh_cannot_change_mode_class): Update.
7069         * i386.h (CANNOT_CHANGE_MODE_CLASS): New.
7070         * tm.texi (CANNOT_CHANGE_MODE_CLASS): Update documentation.
7071
7072 2003-01-31  Geoffrey Keating  <geoffk@apple.com>
7073
7074         * config/darwin.h (LINK_COMMAND_SPEC): Update for Nathan's recent
7075         change to LINK_COMMAND_SPEC in gcc.c.
7076
7077 2003-01-31  Jan Hubicka  <jh@suse.cz>
7078
7079         PR c/9506
7080         * i386.c (override_options): Use DEFAULT_PCC_STRUCT_RETURN.
7081
7082 2003-01-31  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7083
7084         * pa32-regs.h (REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Delete
7085         duplicated code.
7086
7087 2003-01-31  Nathan Sidwell  <nathan@codesourcery.com>
7088
7089         * tree.h (TYPE_BINFO_SIZE, TYPE_BINFO_SIZE_UNIT): Remove.
7090         (BINFO_ELTS): New #define.
7091         * stor-layout.c (finalize_record_size): Don't set them.
7092         * cp/cp-tree.h (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX,
7093         BINFO_PRIMARY_BASE_OF): Use BINFO_ELTS.
7094         (BINFO_LANG_ELTS): New #define.
7095         * cp/tree.c (make_binfo): Use BINFO_LANG_ELTS.
7096         * java/class.c (make_class): Use BINFO_ELTS.
7097         (set_super_info): Likewse.
7098         (add_interface_do): Likewise.
7099         * objc/objc-act.c (start_class): Use BINFO_ELTS.
7100
7101 2003-01-31 Danny Smith <dannysmith@users.sourceforge.net>
7102
7103         * timevar.c (getrusage): Don't ever declare if not HAVE_GETRUSAGE.
7104         (times): Don't ever declare if not HAVE_TIMES.
7105         (clock): Don't ever declare if not HAVE_CLOCK.
7106
7107 2003-01-30  Richard Henderson  <rth@redhat.com>
7108
7109         * flow.c (update_life_info): Zap life info after cleanup_cfg.
7110         (regno_uninitialized): Use correct live at function entry set.
7111         (regno_clobbered_at_setjmp): Likewise.
7112
7113         * expr.c (store_expr): Promote all MEM intermediates to regs.
7114
7115 2003-01-30  Kazu Hirata  <kazu@cs.umass.edu>
7116
7117         * config/arm/arm.c: Fix comment typos.
7118         * config/arm/arm.h: Likewise.
7119         * config/arm/netbsd-elf.h: Likewise.
7120         * config/arm/netbsd.h: Likewise.
7121
7122 2003-01-30  Geoffrey Keating  <geoffk@apple.com>
7123
7124         * gengtype.c (struct walk_type_data): Add needs_cast_p.
7125         (walk_type): Set needs_cast_p in walk_type_data.
7126         (write_types_process_field): Supply casts when required to suppress
7127         warnings.
7128         (write_root): Cast gt_pch_n_S to suppress warning.
7129         * Makefile.in: Remove -Wno-error from gtype-desc.o and c-decl.o.
7130         * config/rs6000/rs6000.c (print_operand): Mask off high bits only
7131         when they might exist.
7132         * config/rs6000/t-rs6000: Remove -Wno-error from varasm.o,
7133         insn-conditions.o, and rs6000.o.
7134
7135 2003-01-30  Richard Henderson  <rth@redhat.com>
7136
7137         * ggc-page.c (G.context_depth_allocations): New.
7138         (G.context_depth_collections): New.
7139         (alloc_page): Set G.context_depth_allocations.
7140         (ggc_collect): Set G.context_depth_collections.
7141         (ggc_push_context): Limit to HOST_BITS_PER_LONG contexts.
7142         (ggc_pop_context): Early exit for no allocations or collections.
7143
7144 2003-01-30  Richard Henderson  <rth@redhat.com>
7145
7146         * tree-inline.c (walk_tree): Streamline duplicate hash table lookup.
7147
7148 2003-01-30  Richard Earnshaw  <rearnsha@arm.com>
7149
7150         * arm.c (arm_compute_initial_elimination_offset): If optimizing for
7151         size, the link register is always saved if any other register is
7152         saved.
7153
7154 2003-01-30  Kazu Hirata  <kazu@cs.umass.edu>
7155
7156         * config/h8300/h8300-protos.h: Update the prototype for
7157         compute_plussi_cc.
7158         (cpp_reader): Declare before it is used.
7159         * config/h8300/h8300.c (compute_plussi_cc): Change the return
7160         type to int.
7161         * config/h8300/h8300.md (monitor_prologue): Call abort() if we
7162         see an unknown H8 variant.
7163
7164 2003-01-30  Ralf Corsepius  <corsepiu@faw.uni-ulm.de>
7165
7166         PR target/9316
7167         * config/rs6000/rtems.h: Add CPP_OS_DEFAULT_SPEC.
7168         * config/rs6000/sysv4.h: Add CPP_OS_RTEMS_SPEC.
7169         * config/rs6000/t-rtems: New file. multilib variants to match OS.
7170         * config.gcc (powerpc-*-rtems*): Use rs6000/t-rtems instead of
7171         rs6000/t-ppcgas so we get the desired multilibs.
7172
7173 2003-01-30  Nick Clifton  <nickc@redhat.com>
7174
7175         * config/arm/arm.c (arm_output_epilogue): Update stack pointer
7176         when popping saved IP register off the stack.
7177
7178 2003-01-30  Kazu Hirata  <kazu@cs.umass.edu>
7179
7180         * config/rs6000/aix43.h: Fix comment typos.
7181         * config/rs6000/aix51.h: Likewise.
7182         * config/rs6000/aix52.h: Likewise.
7183         * config/rs6000/altivec.h: Likewise.
7184         * config/rs6000/rs6000.c: Likewise.
7185         * config/rs6000/rs6000.h: Likewise.
7186         * config/rs6000/rs6000.md: Likewise.
7187         * config/rs6000/spe.md: Likewise.
7188
7189 2003-01-29  Mark Mitchell  <mark@codesourcery.com>
7190
7191         * c-common.c (builtin_define_float_constants): Define
7192         __<TYPE>_HAS_INFINITY__ and __<TYPE>_HAS_QUIET_NAN__.
7193
7194 2003-01-30  Kazu Hirata  <kazu@cs.umass.edu>
7195
7196         * config/sh/lib1funcs.asm: Fix comment typos.
7197         * config/sh/linux.h: Likewise.
7198         * config/sh/sh.c: Likewise.
7199         * config/sh/sh.md: Likewise.
7200
7201 2003-01-30  Loren James Rittle  <ljrittle@acm.org>
7202
7203         * objc/Make-lang.in (objc-parse.y): Find c-parse.in in $(srcdir).
7204
7205 2003-01-30  Alexandre Oliva  <aoliva@redhat.com>
7206
7207         * config/fp-bit.h (__make_dp): Declare if TMODES.
7208
7209 2003-01-29  Kazu Hirata  <kazu@cs.umass.edu>
7210
7211         * config/h8300/h8300.h (PREDICATE_CODES): Add entries for
7212         general_operand_src and general_operand_dst.
7213
7214 2003-01-29  David Edelsohn  <edelsohn@gnu.org>
7215
7216         * config/rs6000/rs6000.c (function_arg_pass_by_reference):
7217         Return true for variable sized types.
7218         (rs6000_va_arg): Handle variable sized types passed by reference
7219         on non-SVR4 ABI.
7220
7221 2003-01-29  Richard Earnshaw  <rearnsha@arm.com>
7222
7223         * arm.c (arm_legtimize_address): New function.
7224         * arm-protos.h (arm_legtimize_address): Add prototype.
7225         * arm.h (ARM_LEGITIMIZE_ADDRESS): Use arm_legitimize_address.
7226         (LEGITIMIZE_ADDRESS, THUMB_LEGITIMIZE_ADDRESS): Wrap with
7227         do ... while (0)
7228
7229 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
7230
7231         PR bootstrap/9296
7232         * gthr-rtems.h: Define __GTHREAD_MUTEX_INIT.  Apparently no code
7233         depended on it being defined until now.
7234
7235 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
7236
7237         PR target/9295
7238         * config/mips/rtems.h: Predefine __USE_INIT_FINI__ so generic
7239         RTEMS code knows which C++ initialization style the toolset
7240         configuration is using.
7241
7242 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
7243
7244         PR bootstrap/9293
7245         * config/m68k/t-crtstuff: Replace spaces with tabs, add
7246          $(MULTILIB_CFLAGS) as compiler option and multilib crtbegin/end.o.
7247
7248 2003-01-29  Joel Sherrill  <joel@OARcorp.com>
7249
7250         PR bootstrap/9292
7251         * config.gcc (hppa1.1-rtems):  Did not include t-rtems nor enable
7252         RTEMS threads.
7253         * config/pa/rtems.h (LIB_SPEC): Use -N when linking.
7254
7255 2003-01-29  Nick Clifton  <nickc@redhat.com>
7256
7257         * Makefile.in (c-parse.o): Locate source file in $(parsedir)
7258         not $(srcdir).
7259
7260 2003-01-29  Andrew Haley  <aph@redhat.com>
7261
7262         * tree-inline.c (walk_tree): Add CHAR_TYPE.
7263
7264 2003-01-29  Jan Hubicka  <jh@suse.cz>
7265
7266         * i386.md (subdi3_carry_rex64): Fix typo.
7267
7268 2003-01-28  Stan Shebs  <shebs@apple.com>
7269
7270         * coretypes.h (cpp_reader): Forward declare struct.
7271         * c-pragma.h (cpp_reader): Remove forward declaration.
7272         * hashtable.h (cpp_reader): Likewise.
7273         * scan.h (cpp_reader): Likewise.
7274         * tree.h (cpp_reader): Likewise.
7275         * config/darwin-protos.h (cpp_reader): Likewise.
7276         * config/arm/arm-protos.h (cpp_reader): Likewise.
7277         * config/rs6000/rs6000-protos.h: Remove GCC_CPPLIB_H ifdef, use
7278         struct cpp_reader in prototypes.
7279
7280 2003-01-28  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
7281
7282         * doc/install.texi: Add documentation for installation into
7283         tooldirs and with DESTDIR.
7284
7285 2003-01-28  Richard Henderson  <rth@redhat.com>
7286
7287         * config.gcc (ia64*-*-aix*): Remove.
7288         * config/ia64/aix.h, config/ia64/t-aix: Remove file.
7289         * config/ia64/unwind-aix.c: Remove file.
7290
7291 2003-01-28  Andreas Schwab  <schwab@suse.de>
7292
7293         * config/m68k/m68k.md (tablejump+2): Don't sign extend an address
7294         register.
7295         * config/m68k/apollo68.h (ASM_RETURN_CASE_JUMP): Likewise.
7296         * config/m68k/coff.h (ASM_RETURN_CASE_JUMP): Likewise.
7297         * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Likewise.
7298         * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise.
7299         * config/m68k/mot3300.h (ASM_RETURN_CASE_JUMP): Likewise.
7300         * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise.
7301         * config/m68k/pbb.h (ASM_RETURN_CASE_JUMP): Likewise.
7302
7303 2003-01-28  Richard Sandiford  <rsandifo@redhat.com>
7304
7305         * combine.c (nonzero_bits): Fix check for negative divide operands.
7306
7307 2003-01-28  Richard Henderson  <rth@redhat.com>
7308
7309         * config/ia64/ia64.c (ia64_rwreloc_section_type_flags): New.
7310         * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): New.
7311
7312 2003-01-28  Richard Henderson  <rth@redhat.com>
7313
7314         * cse.c (find_best_addr): Kill !ADDRESS_COST code.
7315
7316         * config/cris/cris.c (cris_address_cost): Make static.
7317         (TARGET_RTX_COSTS, TARGET_ADDRESS_COST): New.
7318         * config/cris/cris.h (ADDRESS_COST): Remove.
7319         * config/cris/cris-protos.h: Update.
7320
7321 2003-01-23  Mike Stump  <mrs@apple.com>
7322
7323         * regclass.c (init_reg_autoinc): New function.
7324         (regclass): Move initialization of forbidden_inc_dec_class from
7325         here...
7326         (init_regs): to here.  Avoids reinitialization for each function,
7327         saving compilation time.
7328
7329 2003-01-28  Jason Merrill  <jason@redhat.com>
7330
7331         * cpplib.h (struct cpp_options): Add warn_deprecated field.
7332         * cppinit.c (cpp_create_reader): Turn it on by default.
7333         * c-opts.c (c_common_decode_option): Set it.
7334         * cpplib.c (do_pragma_once): Only complain about #pragma once
7335         if warn_deprecated is set.
7336
7337 2003-01-28  Dale Johannesen  <dalej@apple.com>
7338
7339         * emit-rtl.c (const_double_htab_hash):  Use mode in the hash.
7340         * loop.c (scan_loop):  Move movables on -Os rich-register targets.
7341         * config/rs6000/rs6000.md (sibcall*):  Use match_operand for LR.
7342
7343 2003-01-28  Richard Henderson  <rth@redhat.com>
7344
7345         * target.h (targetm.address_cost): New.
7346         * target-def.h (TARGET_ADDRESS_COST): New.
7347         (TARGET_RTX_COSTS): Uncomment.  Oops.
7348         * cse.c (address_cost): Use new target hook.
7349         (default_address_cost): New.
7350         * output.h (default_address_cost): Declare.
7351         * hooks.c (hook_int_rtx_0): New.
7352         * hooks.h (hook_int_rtx_0): Declare.
7353         * loop.c (combine_givs_p): Remove if 0 code.
7354         * system.h (ADDRESS_COST): Poison.
7355
7356         * config/alpha/alpha.c, config/alpha/alpha.h, config/d30v/d30v.c,
7357         config/d30v/d30v.h, config/ia64/ia64.c, config/ia64/ia64.h,
7358         config/m32r/m32r.c, config/m32r/m32r.h, config/mcore/mcore.c,
7359         config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.h,
7360         config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/sparc/sparc.c,
7361         config/sparc/sparc.h, config/v850/v850.c, config/v850/v850.h,
7362         config/xtensa/xtensa.c, config/xtensa/xtensa.h
7363         (TARGET_ADDRESS_COST): Define as hook_int_rtx_0.
7364         (ADDRESS_COST): Remove.
7365
7366         * config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
7367         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
7368         config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h,
7369         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
7370         config/dsp16xx/dsp16xx.h, config/i386/i386-protos.h,
7371         config/i386/i386.c, config/i386/i386.h, config/i960/i960-protos.h,
7372         config/i960/i960.c, config/i960/i960.h, config/ip2k/ip2k-protos.h,
7373         config/ip2k/ip2k.c, config/ip2k/ip2k.h, config/mips/mips-protos.h,
7374         config/mips/mips.c, config/mips/mips.h,
7375         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
7376         config/m68hc11/m68hc11.h, config/ns32k/ns32k-protos.h,
7377         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa-protos.h,
7378         config/pa/pa.c, config/pa/pa.h, config/s390/s390-protos.h,
7379         config/s390/s390.c, config/s390/s390.h, config/vax/vax-protos.h,
7380         config/vax/vax.c, config/vax/vax.h
7381         (foo_address_cost): Make static.
7382         (TARGET_ADDRESS_COST): New.
7383         (ADDRESS_COST): Remove.
7384
7385         * config/arm/arm.h, config/arm/arm.c, config/m88k/m88k.h,
7386         config/m88k/m88k.c, config/romp/romp.h, config/romp/romp.c,
7387         config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c,
7388         config/stormy16/stormy16.h
7389         (ADDRESS_COST): Move code ...
7390         (foo_address_cost): ... here.
7391         (TARGET_ADDRESS_COST): New.
7392
7393         * config/m32r/m32r.c (m32r_address_cost): Remove.
7394         * config/m32r/m32r-protos.h: Update.
7395
7396         * config/mmix/mmix.c (mmix_address_cost): Remove.
7397         * config/mmix/mmix-protos.h: Update.
7398
7399         * config/mn10300/mn10300.c (mn10300_address_cost_1): Rename from
7400         mn10300_address_cost; move unsig allocation ...
7401         (mn10300_address_cost): ... here.
7402         (TARGET_ADDRESS_COST): New.
7403         * config/mn10300/mn10300-protos.h: Update.
7404         * config/mn10300/mn10300.h (ADDRESS_COST): Remove.
7405
7406         * doc/tm.texi: Update.
7407
7408 2003-01-28  Vladimir Makarov  <vmakarov@redhat.com>
7409
7410         * haifa-sched.c (schedule_insn): Return necessary cycle advance
7411         after issuing the insn.
7412         (rank_for_schedule): Make a insn with /S the highest priority
7413         insn.
7414         (move_insn): Ignore schedule groups.  Clear SCHED_GROUP_P.
7415         (choose_ready): Check SCHED_GROUP_P.
7416         (schedule_block): Advance cycle after issuing insn if it is
7417         necessary.  Don't reorder insns if there is an insn with /S.
7418         (set_priorities): Ignore schedule groups.
7419
7420         * sched-deps.c (remove_dependence, group_leader): Remove the
7421         functions.
7422         (add_dependence): Ignore schedule groups.
7423         (set_sched_group_p): Don't make copy of dependencies from previous
7424         insn of the schedule group.  Add anti-dependency to the previous
7425         insn of the schedule group.
7426         (compute_forward_dependences): Ignore schedule groups.
7427
7428         * sched-ebb.c (init_ready_list): Ignore schedule groups.
7429
7430         * sched-rgn.c (init_ready_list): Ditto.
7431         (can_schedule_ready_p): Ditto.
7432
7433 2003-01-28  Vladimir Makarov  <vmakarov@redhat.com>
7434
7435         * config/i386/i386.md (*movsi_1): Use movdqa to move one xmm
7436         register to another one.
7437
7438 2003-01-28  Richard Henderson  <rth@redhat.com>
7439
7440         * calls.c (default_must_pass_in_stack): Fix typo in !type case.
7441
7442 2003-01-28  Roger Sayle  <roger@eyesopen.com>
7443
7444         * cse.c (cse_insn): Avoid redundant REG_EQUAL notes.
7445
7446 2003-01-28  Richard Sandiford  <rsandifo@redhat.com>
7447
7448         * config/sh/sh.h (CLASS_MAX_NREGS): If TARGET_SHMEDIA, and the given
7449         class contains a floating-point register, return the size of the
7450         mode in half words.
7451
7452 2003-01-28  Jan Hubicka  <jh@suse.cz>
7453
7454         * i386.c (ix86_carry_flag_operator):  New predicate.
7455         (fcmov_operator): Fix whitespace.
7456         (ix86_expand_carry_flag_compare):  Deal with floating point.
7457         (ix86_expand_int_movcc): Deal with fp; update insn expansion
7458         (ix86_expand_int_addcc): Likewise.
7459         (ix86_expand_strlensi_unroll_1): likewsie.
7460         * i386.h (PREDICATE_CODES): Add ix86_carry_flag_operator.
7461         * i386.md (add?i_carry_rex64): Use new predicate.
7462         (sub?i3_carry_rex64): Likewise.
7463         (x86_mov?icc_0_m1*): Likewise.
7464
7465 2003-01-28  Andreas Schwab  <schwab@suse.de>
7466
7467         * cfgloopmanip.c (create_preheader): Initialize src to avoid
7468         warning.
7469
7470         * expmed.c (emit_store_flag): Fix cast to avoid sign
7471         comparison warning.
7472
7473         * combine.c (force_to_mode): Add cast to fix warning when
7474         STORE_FLAG_VALUE is negative.
7475
7476 2003-01-27  Richard Henderson  <rth@redhat.com>
7477
7478         * Makefile.in (cse.o): Depend on TARGET_H.
7479         * cse.c (rtx_cost): Use targetm.rtx_costs.
7480         * system.h (CONST_COSTS RTX_COSTS DEFAULT_RTX_COSTS): Poison.
7481         * doc/tm.texi: Update.
7482
7483         * target.h (targetm.rtx_costs): New.
7484         * target-def.h (TARGET_RTX_COSTS): New.
7485         * hooks.c (hook_bool_rtx_int_int_intp_false): New.
7486         * hooks.h: Update.
7487
7488         * config/alpha/alpha.c (alpha_rtx_cost_data): New.
7489         (alpha_rtx_costs, TARGET_RTX_COSTS): New.
7490         * config/alpha/alpha.h (PROCESSOR_MAX): New.
7491         (CONST_COSTS, RTX_COSTS): Remove.
7492
7493         * config/arc/arc.c, config/arc/arc.h, config/c4x/c4x.c,
7494         config/c4x/c4x.h, config/cris/cris.c, config/cris/cris.h,
7495         config/d30v/d30v.c, config/d30v/d30v.h, config/dsp16xx/dsp16xx.c,
7496         config/dsp16xx/dsp16xx.h, config/frv/frv.c, config/frv/frv.h,
7497         config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c,
7498         config/i370/i370.h, config/i386/i386.c, config/i386/i386.h,
7499         config/i960/i960.c, config/i960/i960.h, config/ia64/ia64.c,
7500         config/ia64/ia64.h, config/m32r/m32r.c, config/m32r/m32r.h,
7501         config/m68k/m68k.c, config/m68k/m68k.h, config/m88k/m88k.c,
7502         config/m88k/m88k.h, config/mcore/mcore.c, config/mcore/mcore.h,
7503         config/mips/mips.c, config/mips/mips.h, config/mn10200/mn10200.c,
7504         config/mn10200/mn10200.h, config/mn10300/mn10300.c,
7505         config/mn10300/mn10300.h, config/ns32k/ns32k.c, config/ns32k/ns32k.h,
7506         config/pa/pa.c, config/pa/pa.h, config/pdp11/pdp11.c,
7507         config/pdp11/pdp11.h, config/romp/romp.c, config/romp/romp.h,
7508         config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/s390/s390.c,
7509         config/s390/s390.h, config/sh/sh.c, config/sh/sh.h,
7510         config/stormy16/stormy16.c, config/stormy16/stormy16.h,
7511         config/v850/v850.c, config/v850/v850.h,
7512         config/xtensa/xtensa.c, config/xtensa/xtensa.h
7513         (CONST_COSTS, RTX_COSTS): Move code ...
7514         (foo_rtx_costs, TARGET_RTX_COSTS): ... here.
7515
7516         * config/arm/arm.c (arm_rtx_costs_1): Rename from arm_rtx_costs.
7517         (arm_rtx_costs, TARGET_RTX_COSTS): New.
7518         * config/arm/arm-protos.h: Update.
7519         * config/arm/arm.h (DEFAULT_RTX_COSTS): Remove.
7520
7521         * config/avr/avr.h (CONST_COSTS): Move code ...
7522         * config/avr/avr.c (avr_rtx_costs): ... here.
7523         (default_rtx_costs): Make static.
7524         * config/avr/avr-protos.h: Update.
7525
7526         * config/h8300/h8300.c (const_costs): Make static.
7527         (h8300_and_costs, h8300_shift_costs): Likewise.
7528         * config/h8300/h8300-protos.h: Update.
7529
7530         * config/ip2k/ip2k.h (DEFAULT_RTX_COSTS): Remove.
7531         (CONST_COSTS): Move code ...
7532         * config/ip2k/ip2k.c (ip2k_rtx_costs): ... here.  Rename from
7533         default_rtx_costs; update for signature change.
7534         * config/ip2k/ip2k-protos.h: Update.
7535
7536         * config/m68hc11/m68hc11.h (RTX_COSTS): Remove.
7537         (CONST_COSTS): Move code ...
7538         * config/m68hc11/m68hc11.c (m68hc11_rtx_costs): ... here.
7539         (TARGET_RTX_COSTS): New.
7540         (m68hc11_rtx_costs_1): Rename from m68hc11_rtx_costs; make static.
7541         * config/m68hc11/m68hc11-protos.h: Update.
7542
7543         * config/m68k/m68k.c (const_int_cost): Make static.
7544         * config/m68k/m68k-protos.h: Update.
7545
7546         * config/mcore/mcore.c (mcore_const_costs): Make static.
7547         (mcore_and_cost, mcore_ior_cost): Likewise.
7548         * config/mcore/mcore-protos.h: Update.
7549
7550         * config/mmix/mmix.c (mmix_rtx_costs, TARGET_RTX_COSTS): New.
7551         (mmix_rtx_cost_recalculated): Remove.
7552         * config/mmix/mmix.h (DEFAULT_RTX_COSTS): Remove.
7553         * config/mmix/mmix-protos.h: Update.
7554
7555         * config/sh/sh.c (shiftcosts): Make static.
7556         (addsubcosts, andcosts, multcosts): Likewise.
7557         * config/sh/sh-protos.h: Update.
7558
7559         * config/sparc/sparc.c (TARGET_RTX_COSTS): New.
7560         (sparc_rtx_costs): Make static; update for change in signature.
7561         * config/sparc/sparc.h (RTX_COSTS_CASES, RTX_COSTS): Remove.
7562         * config/sparc/sparc-protos.h: Update.
7563
7564         * config/v850/v850.c (const_costs): Make static.
7565         * config/v850/v850-protos.h: Update.
7566
7567         * config/vax/vax.h (RTX_COSTS): Remove.
7568         (CONST_COSTS): Move code ...
7569         * config/vax/vax.c (vax_rtx_costs_1): ... here; rename
7570         from vax_rtx_cost.
7571         (vax_rtx_costs, TARGET_RTX_COSTS): New.
7572
7573 2003-01-27  Richard Henderson  <rth@redhat.com>
7574
7575         * config/vax/vax.h (ASM_OUTPUT_MI_THUNK): Remove.  Really.
7576         * config/vax/vax-protos.h: Update.  Really.
7577
7578 2003-01-28  Alexandre Oliva  <aoliva@redhat.com>
7579
7580         * config/mips/mips.h (UNITS_PER_HWFPVALUE): Renamed from...
7581         (UNITS_PER_FPVALUE): Defined as the width of a long double, or
7582         zero if no hardware floating point.
7583         (LONG_DUBLE_TYPE_SIZE): Set to 128 on N32 and N64.
7584         (MAX_FIXED_MODE_SIZE): Define to LONG_DOUBLE_TYPE_SIZE.
7585         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define.
7586         (BIGGEST_ALIGNMENT): Same as LONG_DOUBLE_TYPE_SIZE.
7587         (FUNCTION_VALUE_REGNO_P): Set for FP_RETURN+2 on N32 and N64.
7588         * config/mips/mips.c (mips_arg_info): Pass TFmode values in
7589         even FP registers on N32 and N64.
7590         (mips_setup_incoming_varargs): Use UNITS_PER_HWFPVALUE.
7591         (mips_va_start): Adjust alignment of ARG_POINTER_REGNUM.
7592         (mips_va_arg): Use UNITS_PER_HWFPVALUE.  Impose additional
7593         even-register-like alignment to 128-bit arguments.
7594         (save_restore_insns): Use UNITS_PER_HWFPVALUE.
7595         (mips_function_value): Likewise.  Return TFmode in $f0 and $f2
7596         on N32 or N64.
7597         * config/mips/_tilib.c (__negti2, __ashlti3, __lshrti3): New.
7598         * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Add _tilib.c.
7599         (TPBIT): Set to tp-bit.c.
7600         (tp-bit.c): Create out of fp-bit.c.
7601
7602 2003-01-28  Gabriel Dos Reis  <gdr@integrable-solutions.net>
7603
7604         * c-parse.in: Remove '%expect 32' directive in objc mode.
7605
7606 2003-01-27  Nathan Sidwell  <nathan@codesourcery.com>
7607
7608         * Makefile.in (LIB2FUNCS_ST): Remove _gcov.
7609         (LIBGCOV): New variable.
7610         (libgcc.mk): Add LIBGCOV.
7611         (LIBGCC_DEPS): Add libgcov.c.
7612         (libgcov.a): New target.
7613         (clean): Remove libgcov.a.
7614         (install-libgcc): Do libgcov too.
7615         (stage1-start, stage2-start, stage3-start, stage4-start): Deal
7616         with libgcov.a.
7617         * libgcc2.c (L_gcov): Move into ...
7618         * libgcov.c: ... here. New file.
7619         * mklibgcc.in: Add libgcov rules.
7620         * gcc.c (LINK_COMMAND_SPEC): Add -lgcov when profiling.
7621
7622         * doc/invoke.texi (profile-arcs, test-coverage): Update and
7623         clarify.
7624
7625         * profile.c (index_counts_file): Remove duplicate check for open file.
7626
7627 2003-01-27  Jerry Quinn  <jlquinn@optonline.net>
7628
7629         * gcc/doc/invoke.texi (Optimization Options): Group together
7630         optional and experimental flags.  Move trapv and bounds-check
7631         out of this section.  Group floating point flags together.
7632         (Code Gen Options): Move trapv and bounds-check to here.
7633
7634 2003-01-27  Josef Zlomek  <zlomekj@suse.cz>
7635
7636         * gcse.c (constprop_register): Check NEXT_INSN (insn) != NULL.
7637
7638 2003-01-27  Richard Earnshaw  <rearnsha@arm.com>
7639
7640         PR optimization/9090
7641         * function.c (purge_addressof_1): After pushing an addressed register
7642         onto the stack, simplify the result.
7643
7644 2003-01-27  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
7645
7646         * doc/extend.texi: Fix typo.
7647
7648 2003-01-27  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
7649
7650         * doc/cppopts.texi: Fix typo.
7651         * doc/objc.texi: Likewise.
7652         * doc/passes.texi: Likewise.
7653
7654 2003-01-27  Alexandre Oliva  <aoliva@redhat.com>
7655
7656         * real.c (ibm_extended_format): Add 53 to minimum exponent.
7657         (encode_ibm_extended): Adjust.
7658
7659 2003-01-26  Gabriel Dos Reis  <gdr@soliton.integrable-solutions.net>
7660
7661         * timevar.def (TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION): New
7662         timevar_id enumerations.
7663
7664 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
7665
7666         * combine.c: Fix formatting.
7667
7668 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
7669
7670         * doc/gccint.texi: Update the copyright.
7671
7672 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
7673
7674         * doc/cpp.texi: Fix typos.
7675         * doc/extend.texi: Likewise.
7676         * doc/gty.texi: Likewise.
7677         * doc/install.texi: Likewise.
7678         * doc/passes.texi: Likewise.
7679         * doc/rtl.texi: Likewise.
7680         * doc/tm.texi: Likewise.
7681
7682 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
7683
7684         * config/ia64/fde-glibc.c: Fix comment typos.
7685         * config/ia64/hpux.h: Likewise.
7686         * config/ia64/ia64.c: Likewise.
7687         * config/ia64/ia64.h: Likewise.
7688         * config/ia64/unwind-ia64.c: Likewise.
7689
7690 2003-01-26  Kazu Hirata  <kazu@cs.umass.edu>
7691
7692         * config/i386/i386-modes.def: Fix comment typos.
7693         * config/i386/i386.c: Likewise.
7694         * config/i386/i386.md: Likewise.
7695
7696 2003-01-26  Steven Bosscher  <s.bosscher@student.tudelft.nl>
7697
7698         * config/avr/avr.h, config/cris/aout.h, config/elfos.h,
7699         config/i386/freebsd-aout.h, config/mips/iris6.h: Undefine
7700         ASM_FINISH_DECLARE_OBJECT before defining it.
7701         * toplev.c (rest_of_decl_compilation):  Don't define
7702         ASM_FINISH_DECLARE_OBJECT.  Only use it if it is defined.
7703         (rest_of_type_compilation): Don't ATTRIBUTE_UNUSED function
7704         parameters for DWARF2 targets because they _are_ used.
7705
7706 2003-01-26  Alexandre Oliva  <aoliva@redhat.com>
7707
7708         * fp-bit.h: Define macros for TFmode floating-point constants
7709         in IBM-extended TFmode types.
7710         (TMODES): Define if __LDBL_MANT_DIG__ has the newly-supported
7711         widths.
7712         * config/fp-bit.c (pack_d, unpack_d): Support IBM-extended
7713         TFmode type.
7714
7715         * config/fp-bit.h: Define macros for TFmode floating-point
7716         constants in IEEE quad TFmode type.  Declare functions according
7717         to L_ macros.
7718         (TMODES): Define if __LDBL_MANT_DIG__ is 113.
7719         (TFtype, TItype, UTItype): Define if TMODES is defined.
7720         (MAX_UDI_INT, MAX_DI_INT, BITS_PER_DI): Likewise.
7721         (F_T_BITOFF, D_T_BITOFF): Define.
7722         (IMPLICIT_1, IMPLICIT_2): Cast constants to types that are
7723         guaranteed to be wide enough.
7724         * config/fp-bit.c: Check for L_ macros for tf functions.
7725         (__thenan_tf): New.
7726         (nan): Adjust.
7727         (pack_d, unpack_d): Support IEEE 854 quad type.
7728         (_fpmul_parts): Support TFmode.  Compute exponent adjustment
7729         from FRAC_NBITS, FRAC_BITS and NGARDS.
7730         (usi_to_float): Cast constants to be shifted to fractype
7731         instead of assuming long long is wide enough.
7732         (sf_to_tf, df_to_tf, __make_tp, tf_to_df, tf_to_sf): New.
7733
7734 2003-01-26  Andreas Jaeger  <aj@suse.de>
7735
7736         * df.c: Remove prototype of unused function df_regno_rtl_debug.
7737
7738 2003-01-26  Alexandre Oliva  <aoliva@redhat.com>
7739
7740         * Makefile.in (FPBIT_FUNCS): Added _sf_to_tf.
7741         (DBBIT_FUNCS): Added _df_to_tf.
7742         (TPBIT_FUNCS): New.
7743         (libgcc.mk): Pass TPBIT and TPBIT_FUNCS down.
7744         (LIBGCC_DEPS): Added TPBIT.
7745         * mklibgcc.in: Support TPBIT and TPBIT_FUNCS.
7746
7747         * optabs.c (expand_binop) <add, sub>: Return xtarget if we haven't
7748         been able to move the result to target.
7749
7750         * expr.c (emit_group_store): Initialize dst with CONST0_RTX
7751         for the appropriate mode.
7752
7753         * calls.c (emit_library_call_value_1): Handle return values
7754         in a PARALLEL.
7755
7756         * rtl.c (get_mode_alignment): Moved to...
7757         * stor-layout.c: ... here.
7758
7759         * print-rtl.c (print_rtx): Don't print MEM details in
7760         GENERATOR_FILEs.
7761
7762 2003-01-26  Michael Hayes  <mph@paradise.net.nz>
7763
7764         * df.h: Update comments, tidy formatting.
7765         (DF_FORWARD, DF_REVERSE, DF_UNION, DF_INTERSECTION): Rename from FORWARD,
7766         REVERSE, UNION, INTERSECTION.  All uses updated.
7767         (OLD_DF_INTERFACE): Remove.
7768         (struct insn_info): Remove commented out insn field.
7769         * df.c: Update comments, tidy formatting.
7770         (df_def_table_realloc): Remove.
7771
7772
7773 2003-01-26  Alan Modra  <amodra@bigpond.net.au>
7774
7775         * calls.c (save_fixed_argument_area): Tidy.
7776         (restore_fixed_argument_area): Tidy.  Set alignment of stack_area.
7777         (expand_call): Comment typo fixes.  Don't init low_to_save.  Start
7778         call chain loop at 1 if !try_tail_call.  Formatting.
7779         (emit_library_call_value_1): Don't init low_to_save or high_to_save.
7780         Use save_fixed_argument_area and restore_fixed_argument_area.
7781
7782 2003-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7783
7784         * df.c (df_uses_record): Handle CC0.
7785
7786 2003-01-25  Ulrich Weigand  <uweigand@de.ibm.com>
7787
7788         * reload.c (maybe_memory_address_p): New function.
7789         (find_reloads_address): Use it instead of memory_address_p.
7790
7791 2003-01-25  Kaz Kojima  <kkojima@gcc.gnu.org>
7792
7793         * final.c (shorten_branches): Align the address of code label
7794         when computing initial lengths and addresses.
7795
7796 2003-01-25  Kazu Hirata  <kazu@cs.umass.edu>
7797
7798         * config/m68hc11/m68hc11.md: Fix a comment typo.
7799
7800 2003-01-25  Andreas Jaeger  <aj@suse.de>
7801
7802         * config/i386/i386.c (x86_output_mi_thunk): Correct test for
7803         TARGET_MACHO.
7804
7805 2003-01-25  Roger Sayle  <roger@eyesopen.com>
7806
7807         * gcse.c (bypass_last_basic_block): New global variable.
7808         (bypass_block):  Use redirect_edge_and_branch_force to redirect
7809         fall-through edges.  Use bypass_last_basic_block to determine
7810         which blocks have valid PRE information.
7811         (bypass_conditional_jumps): Initialize bypass_last_basic_block.
7812
7813 2003-01-25  Jan Hubicka  <jh@suse.cz>
7814
7815         * gcse.c (local_cprop_pass): Update reg_sets table when needed.
7816
7817 2003-01-25  Jan Hubicka  <jh@suse.cz>
7818                               Eric Botcazou <ebotcazou@libertysurf.fr>
7819         PR opt/8492
7820         * gcse.c (one_cprop_pass): Delete unreachable blocks.
7821
7822 2003-01-25  Richard Henderson  <rth@redhat.com>
7823
7824         * config/ia64/ia64.c (ia64_rwreloc_select_rtx_section): Rename
7825         from ia64_aix_select_rtx_section.
7826         (ia64_rwreloc_select_section): Simlarly; use default*_1 function
7827         instead of saving and restoring flag_pic.
7828         (ia64_rwreloc_unique_section): Similarly.
7829         * config/ia64/aix.h (TARGET_ASM_SELECT_SECTION,
7830         TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Update.
7831         * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION,
7832         TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): New.
7833
7834 2003-01-25  Kazu Hirata  <kazu@cs.umass.edu>
7835
7836         * config/h8300/h8300.c (h8300_shift_needs_scratch_p): Update a
7837         comment.
7838
7839 2003-01-25  Richard Henderson  <rth@redhat.com>
7840
7841         * config/m68k/m68k-none.h (ASM_SPEC): Adjust inter-option spacing.
7842
7843 2003-01-25  Kelley Cook <kelleycook@comcast.net>
7844
7845         * ggc-simple.c (debug_ggc_tree): Add PTR cast.
7846
7847 2003-01-25  Segher Boessenkool  <segher@koffie.nl>
7848
7849         * bitmap.h (BITMAP_WORD): New typedef: fundamental storage
7850         type for bitmaps.  Use unsigned long.
7851         (nBITMAP_WORD_BITS): New macro.
7852         (BITMAP_WORD_BITS): New macro.
7853         (rest of file): Use it.
7854         * bitmap.c: Use it.
7855
7856 2003-01-25  Richard Henderson  <rth@redhat.com>
7857
7858         2002-02-19  Robert Lipe  <robertlipe@usa.net>
7859         * config/i386/t-sco5gas: (CRTSTUFF_T_CFLAGS_S): Delete -mcoff.
7860
7861 2003-01-25  Roger Sayle  <roger@eyesopen.com>
7862
7863         * builtins.c (purge_builtin_constant_p): Scan insn stream
7864         sequentially rather than by basic block.
7865         * function.c (purge_addressof): Simplify test with INSN_P.
7866
7867 2003-01-25  Kazu Hirata  <kazu@cs.umass.edu>
7868
7869         * combine.c (simplify_comparison, case AND): Remove a redundant test.
7870
7871 2003-01-25  Roger Sayle  <roger@eyesopen.com>
7872
7873         * function.h (struct function): New field calls_constant_p.
7874         (current_function_calls_constant_p): New macro for above.
7875         * function.c (prepare_function_start): Initialize calls_eh_return
7876         and calls_constant_p.
7877         * builtins.c (expand_builtin_constant_p): Set calls_constant_p.
7878         * toplev.c (rest_of_compilation): Only call purge_builtin_constant_p
7879         when the current_function_calls_constant_p.
7880         * integrate.c (expand_inline_function): Set calls_constant_p if
7881         the function being inlined has calls_constant_p set.
7882
7883 2003-01-25  Roger Sayle  <roger@eyesopen.com>
7884
7885         * cse.c (fold_rtx): Instantiate CONSTANT_P_RTX to 0 when not
7886         optimizing, even if flag_gcse is true.
7887         * toplev.c (rest_of_compilation): purge_builtin_constant_p
7888         only needs to be called when "optimize > 0 && flag_gcse".
7889
7890 2003-01-25  Roger Sayle  <roger@eyesopen.com>
7891
7892         * stmt.c (emit_case_bit_tests): New routine to implement suitable
7893         switch statements using the equivalent of "if ((1<<x) & cst) ... ".
7894         (case_bit_test_cmp): New comparison function for "qsort" to order
7895         case_bit_tests by decreasing number of destination nodes.
7896         (lshift_cheap_p): New function to determine if "1 << x" is cheap.
7897         (expand_end_case_type): Use emit_case_bit_tests to implement
7898         suitable switch statments.
7899         (CASE_USE_BIT_TESTS): New target macro to disable the above.
7900         * Makefile.in (stmt.o): Add dependency on optab.h.
7901         * doc/tm.texi (CASE_USE_BIT_TESTS): Document new target macro.
7902
7903 2003-01-23  Andreas Schwab  <schwab@suse.de>
7904
7905         * config/ia64/crtend.asm [HAVE_INITFINI_ARRAY]: Make
7906         __do_global_ctors_aux hidden global and don't put it in
7907         .init_array.
7908         * config/ia64/crtbegin.asm [HAVE_INITFINI_ARRAY]: Put it here
7909         instead so that it comes first.
7910
7911 2003-01-25  Jan Hubicka  <jh@suse.cz>
7912
7913         * df.c (read_modify_subreg_p):  When osize == UNITS_PER_WORD,
7914         subreg is read/modify.
7915
7916 2003-01-25  Jan Hubicka  <jh@suse.cz>
7917
7918         * i386.c (ix86_expand_movstr, ix86_expand_clrstr): Consistently
7919         do libcall for large blocks.
7920         * i386.md (comi patterns): Set type to ssecomi.
7921         (sse2_unpck?pd): Fix mode of vec_select.
7922
7923         * cse.c: Include except.h
7924         (cse_set_around_loop):  Do not create new basic blocks.
7925         * Makefile.in (cse.o): Add dependnecy on except.h
7926
7927 2003-01-25  Jan Hubicka  <jh@suse.cz>
7928
7929         * builtins.c (fold_trunc_transparent_mathfn): New function.
7930         (fold_builtin): Use it.
7931         * convert.c (convert_to_real): Re-enable code to convert
7932         math functions; add support for floor familly functions.
7933
7934 2003-01-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
7935
7936         * Makefile.in (cfgloop.o, cfgloopanal.o, cfgloopmanip.o): Add
7937         dependencies on coretypes.h and $(TM_H).
7938
7939 2003-01-25  Jan Hubicka  <jh@suse.cz>
7940
7941         * builtins.c (fold_trunc_transparent_mathfn):  Undo accidental commit.
7942
7943 2003-01-24  Stuart Hastings  <stuart@apple.com>
7944
7945         * config/i386/i386.c (x86_output_mi_thunk): Add Darwin/x86 support.
7946
7947 2003-01-25  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
7948
7949         * config/c4x/c4x.md (UNSPEC_BU): New constants.
7950         (UNSPEC_RPTS, UNSPEC_LSH, UNSPEC_CMPHI, UNSPEC_RCPF): Likewise.
7951         (UNSPEC_RND, UNSPEC_RPTB_FILL, UNSPEC_LOADHF_INT): Likewise.
7952         (UNSPEC_STOREHF_INT, UNSPEC_RSQRF, UNSPEC_LOADQF_INT): Likewise.
7953         (UNSPEC_STOREQF_INT, UNSPEC_LDIV, UNSPEC_PUSH_ST):  Likewise.
7954         (UNSPEC_POP_ST, UNSPEC_PUSH_DP, UNSPEC_POP_DP):  Likewise.
7955         (UNSPEC_POPQI, UNSPEC_POPQF, UNSPEC_ANDN_ST):  Likewise.
7956         (UNSPEC_RPTB_INIT, UNSPEC_TOIEEE, UNSPEC_FRIEEE):  Likewise.
7957
7958 2003-01-24  Jan Hubicka  <jh@suse.cz>
7959
7960         * emit-rtl.c (reg_attrs_htab): New static variable.
7961         (reg_attrs_htab_hash, reg_attrs_htab_eq, get_reg_attrs): New static
7962         functions.
7963         (reg_rtx): Do not maintain regno_decl.
7964         (gen_rtx_REG_offset, set_reg_attrs_from_mem, set_delc_rtx,
7965         set_mem_attrs_from_reg): New global function.
7966         (init_emit): Do not initialize regno_decl.
7967         (init_emit_once): initialize reg_attrs_htab.
7968         * final.c (alter_subreg): Do not replace REG by SUBREG.
7969         (gen_mem_expr_from_op): Improve output.
7970         (output_asm_operands): Likewise.
7971         * function.c (assign_params): Do not set REGNO_DECL.
7972         * function.h (struct function): Kill regno_decl.
7973         (REGNO_DECL): Kill.
7974         * gengtype.c (adjust_field_rtx_def): Handle new field of reg.
7975         * print_rtl.c (print_rtx): Output REG information.
7976         * regclass.c (reg_scan_mark_refs): Update attrs.
7977         * reload1.c (alter_reg): Likewise.
7978         * simplify_rtx.c (simplify_subreg): Likewise.
7979         * stmt.c (expand_decl): Likewise.
7980         * rtl.def (REG): Add new field.
7981         * rtl.h (struct reg_attrs): New.
7982         (rtunion_def): At rtreg.
7983         (X0MEMATTR): Add checking.
7984         (X0REGATTR, REG_ATTRS, REG_EXPR, REG_OFFSET): New macro.
7985         (set_reg_attrs_from_mem, set_mem_attrs_from_reg, gen_rtx_REG_offset):
7986         Declare.
7987         * tree.h (SET_DECL_RTL): Call set_decl_rtl.
7988
7989 2003-01-24  Bob Wilson  <bob.wilson@acm.org>
7990
7991         * config/xtensa/xtensa.c: Remove unused include of machmode.h.
7992         (xtensa_emit_call, print_operand): Fix printf format strings
7993         to avoid compile warnings.
7994         (xtensa_function_prologue, xtensa_function_epilogue): Change type
7995         of "size" argument to HOST_WIDE_INT to fix compile warnings.
7996         * config/xtensa/xtensa-protos.h
7997         (xtensa_function_prologue, xtensa_function_epilogue): Ditto.
7998
7999 2003-01-24  Jan Hubicka  <jh@suse.cz>
8000
8001         * builtins.c (DEF_BUILTIN): Accept 10 arguments.
8002         (implicit_built_in_decls): New global array.
8003         (mathfn_built_in): New global function.
8004         (fold_trunc_transparent_mathfn): New static function
8005         (expand_builtin_strstr, expand_bultin_strchr,
8006         expand_builtin_strpbrk, expand_builtin_strcpy,
8007         expand_builtin_strncpy, expand_bultin_strcmp,
8008         expand_bultin_strncat, expand_builtin_fputs): Use
8009         implicint_built_in_decls.
8010         (fold_builtin): Fold floor/trunc/round/ceil/nearbyint.
8011         * builtins.def: Fix comments.
8012         (DEF_GCC_BUILTIN, DEF_FALLBACK_BUILTIN, DEF_EXT_FALLBACK_BUILTIN,
8013         DEF_LIB_BUILTIN, DEF_LIB_ALWAYS_BUILTIN, DEF_EXT_LIB_BUILTIN,
8014         DEF_C99_BULTIN, DEF_FRONT_END_LIB_BUILTIN,
8015         DEF_EXT_FRONT_END_LIB_BUILTIN): Pass implicit as needed.
8016         (DEF_C99_C90RES_BULTIN): New.
8017         (*f, *l builtins): Update.
8018         * c-common.c (DEF_BUILTIN): Initialize implicit array.
8019         (c_expand_builtin_printf, c_expand_builtin_fprintf): Update.
8020         * convert.c (strip_float_extensions): New global function.
8021         * tree.h (DEF_BUILTIN): Accept 10 arguments.
8022         (implicit_built_in_decls, mathfn_built_in, strip_float_extension):
8023         Declare.
8024         * java/builtins.c (define_builtin): Handle implicit.
8025         (DEF_BUILTIN): Update.
8026         * tm.texi (TARGET_C99_FUNCTIONS): Document.
8027         * defaults.h (TARGET_C99_FUNCTIONS): Default to 0.
8028         * config/linux.h (TARGET_C99_FUNCTIONS): Default to 1
8029         when using glibc2.
8030
8031 2003-01-24  Bob Wilson  <bob.wilson@acm.org>
8032
8033         * config.gcc (xtensa-*-elf*): Removed assignments to with_newlib,
8034         extra_parts, and fixincludes.  Add xtensa/t-elf tmake_file.
8035         (xtensa-*-linux*): Add xtensa/t-linux tmake_file.
8036         * config/xtensa/crti.asm: New file.
8037         * config/xtensa/crtn.asm: New file.
8038         * config/xtensa/t-elf: New file.
8039         * config/xtensa/t-linux: New file.
8040         * config/xtensa/t-xtensa: Add rules for crti.o and crtn.o.
8041         Move various CFLAGS settings to new t-elf file.
8042
8043 2003-01-24  Richard Henderson  <rth@redhat.com>
8044
8045         PR optimization/4382
8046         * tree-inline.c (find_builtin_longjmp_call_1): New.
8047         (find_builtin_longjmp_call): New.
8048         (inlinable_function_p): Use it.
8049
8050 2003-01-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8051
8052         * config/i386/i386-protos.h (function_arg_pass_by_reference): Declare.
8053         * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use it.
8054         * config/i386/i386.c (function_arg_pass_by_reference): New.
8055         (ix86_va_arg): Support arguments passed by reference.
8056
8057 2003-01-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8058
8059         * cfgloopanal.c: New file.
8060         * cfgloopmanip.c: New file.
8061         * Makefile.in (cfgloopanal.o, cfgloopmanip.o): New.
8062         (toplev.o, loop.o, doloop.o, unroll.o, cfgloop.o, predict.o,
8063         cfglayout.o): Add dependency on cfgloop.h.
8064         (cfgloop.o): Add flags.h dependency.
8065         * basic-block.h (BB_IRREDUCIBLE_LOOP, BB_SUPERBLOCK): New flags.
8066         (VLS_EXPECT_PREHEADERS, VLS_EXPECT_SIMPLE_LATCHES): Removed.
8067         (struct loop, struct loops, flow_loops_find, flow_loops_update,
8068         flow_loops_free, flow_loops_dump, flow_loop_dump,
8069         flow_loop_scan, flow_loop_tree_node_add, flow_loop_tree_node_remove,
8070         LOOP_TREE,,LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
8071         LOOP_ALL, flow_loop_outside_edge_p, flow_loop_nested_p,
8072         flow_bb_inside_loop_p, get_loop_body, loop_preheader_edge,
8073         loop_latch_edge, add_bb_to_loop, remove_bb_from_loops,
8074         find_common_loop, verify_loop_structure): Declarations moved to ...
8075         * cfgloop.h: New file.
8076         * bb-reorder.c (reorder_basic_blocks): Modified.
8077         * cfglayout.c: Include cfgloop.h.
8078         (cleanup_unconditional_jumps, cfg_layout_redirect_edge,
8079         cfg_layout_duplicate_bb, cfg_layout_initialize): Update loop structure.
8080         (break_superblocks): New static function.
8081         (cfg_layout_finalize): Use it.
8082         (cfg_layout_split_block): New function.
8083         * cfglayout.h (struct reorder_block_def): Add copy and duplicated
8084         fields.
8085         (cfg_layout_initialize, cfg_layout_redirect_edge): Declaration
8086         changed.
8087         (cfg_layout_split_block): Declare.
8088         * cfgloop.c: Include cfgloop.h and flags.h.
8089         (flow_loop_dump, flow_loops_free, flow_loop_exit_edges_find,
8090         get_loop_body): Avoid signed versus unsigned comparison warnings.
8091         (make_forwarder_block, flow_loops_find, loop_preheader_edge,
8092         loop_latch_edge): Modified.
8093         (verify_loop_structure): Modified to use flags stored in loop structure;
8094         check irreducible loops.
8095         (cancel_loop, cancel_loop_tree): New functions.
8096         (estimate_probability): Use loop analysis code for predictions.
8097         (estimate_loops_at_level):  Avoid signed versus unsigned comparison
8098         warnings.
8099         * doloop.c: Include cfgloop.h.
8100         * loop.c: Include cfgloop.h.
8101         * predict.c: Include cfgloop.h.
8102         * toplev.c: Include cfgloop.h.
8103         * unroll.c: Include cfgloop.h.
8104         * tracer.c (tracer): Modified.
8105
8106 2003-01-24  Kazu Hirata  <kazu@cs.umass.edu>
8107
8108         * config/h8300/h8300.c (get_shift_alg): Fix a typo.
8109
8110 2003-01-24  Ulrich Weigand  <uweigand@de.ibm.com>
8111
8112         * configure.in (HAVE_AS_TLS): Add s390-*-* and s390x-*-* cases.
8113         * configure: Regenerate.
8114
8115         * config/s390/s390-protos.h (tls_symbolic_operand): Add prototype.
8116         (tls_symbolic_reference_mentioned_p): Add prototype.
8117         (s390_tls_get_offset): Add prototype.
8118         (emit_pic_move): Remove prototype, replace by ...
8119         (emit_symbolic_move): .. this new prototype.
8120
8121         * config/s390/s390.c (TARGET_HAVE_TLS): Conditionally define.
8122         (tls_model_chars): New global variable.
8123         (s390_encode_section_info): Encode TLS model.
8124         Use targetm.binds_local_p to check for local symbols.
8125         (s390_strip_name_encoding): New function.
8126         (TARGET_STRIP_NAME_ENCODING): Define.
8127
8128         (get_thread_pointer): New function.
8129         (legitimize_tls_address): New function.
8130         (legitimize_address): Call it.
8131         (emit_pic_move): Remove, replace by ...
8132         (emit_symbolic_move): ... this new function.
8133
8134         (larl_operand): Handle TLS operands.
8135         (legitimate_constant_p): Likewise.
8136         (s390_decompose_address): Likewise.
8137         (s390_cannot_force_const_mem): New function.
8138         (TARGET_CANNOT_FORCE_CONST_MEM): Define.
8139
8140         (s390_output_symbolic_const): Handle TLS unspecs.
8141         (print_operand): New code 'J'.
8142         (machine_function): Add struct member 'some_ld_name'.
8143         (get_some_local_dynamic_name, get_some_local_dynamic_name_1): New.
8144
8145         (enum s390_builtin): New type.
8146         (code_for_builtin_64, code_for_builtin_31): New global variables.
8147         (s390_init_builtins, s390_expand_builtin): New functions.
8148         (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
8149
8150         * config/s390/s390.h (TLS_SYMBOLIC_CONST): New macro.
8151         (ASM_OUTPUT_LABELREF): Define.
8152         (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Handle TLS constants.
8153
8154         * config/s390/s390.md: Define TLS UNSPEC constants.
8155         ("movdi", "movsi"): Handle TLS operands.
8156         ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): New insns.
8157         ("*tls_load_64", "*tls_load_31"): New insns.
8158         ("call_value_tls", "call_value_tls_exp"): New expanders.
8159         ("brasl_tls", "bras_tls", "basr_tls_64", "basr_tls_31",
8160         "bas_tls_64", "bas_tls_31"): New insns.
8161
8162 2003-01-24  Nathan Sidwell  <nathan@codesourcery.com>
8163
8164         * config/rs6000/rs6000.c (rs6000_parse_abi_options): Make sure
8165         spe ABI is configured, if requested.
8166
8167 2003-01-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8168
8169         * doc/passes.texi: Fix typo.
8170
8171 2003-01-24  Andreas Schwab  <schwab@suse.de>
8172
8173         * stor-layout.c (excess_unit_span): Only define if used.
8174
8175 2003-01-24  Jerry Quinn  <jlquinn@optonline.net>
8176
8177         * gcc/doc/invoke.texi (Optimization Options): List -O levels
8178         for each optimization flag.
8179
8180 2003-01-24  Kazu Hirata  <kazu@cs.umass.edu>
8181
8182         * config/h8300/h8300.md (*andsi3_ashift_n_lower): New.
8183
8184 2003-01-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8185
8186         * doc/bugreport.texi: Use @command instead of @code for commands.
8187         * doc/collect2.texi: Likewise.
8188         * doc/headerdirs.texi: Likewise.
8189         * doc/invoke.texi: Likewise.
8190         * doc/standards.texi: Likewise.
8191         * doc/tm.texi: Likewise.
8192         * doc/trouble.texi: Likewise.
8193
8194 2003-01-24  Nick Clifton  <nickc@redhat.com>
8195
8196         * config/arm/arm.c (use_return_insn): Do not use a single return
8197         instruction for interrupt handelrs which have to create a stack
8198         frame.
8199         (arm_expand_prologue): Do not pre-bias the return address of
8200         interrupt handlers which create a stack frame.
8201
8202 2003-01-24  Nick Clifton  <nickc@redhat.com>
8203
8204         * Add sh2e support:
8205
8206         2002-08-12  Alexandre Oliva  <aoliva@redhat.com>
8207
8208                 * config/sh/sh.c (output_branch) [TARGET_SH2E]: Handle
8209                 med_cbranches.  Fix logic in short_cbranches.
8210
8211         2002-04-03  Alexandre Oliva  <aoliva@redhat.com>
8212
8213                 * config/sh/sh.md (delay for cbranch): Don't annul delay
8214                 slots on SH2e.
8215                 * config/sh/sh.c (sh_insn_length_adjustment): Add 2 for
8216                 cbranch with unfilled delay slot on SH2e.
8217                 (output_branch): Fill with a nop the delay slot of a
8218                 branch that required a delay slot but didn't get one.
8219
8220         2002-04-02  Alexandre Oliva  <aoliva@redhat.com>
8221
8222                 * doc/invoke.texi (SH options): Document -m2e.
8223                 * config/sh/crt1.asm: Add __SH2E__ Next to __SH3E__.
8224                 * config/sh/lib1funcs.asm: Likewise.
8225                 * config/sh/sh.c: Replace all uses of TARGET_SH3E with SH2E.
8226                 * config/sh/sh.h (CPP_SPEC): Define __SH2E__ for -m2e, and
8227                 not __sh1__.
8228                 (CONDITIONAL_REGISTER_USAGE): Don't disable FP regs from
8229                 SH2E up.
8230                 (SH3E_BIT): Renamed to...
8231                 (SH_E_BIT): ... this.  Replace all uses.
8232                 (TARGET_SH2E): Define from SH_E_BIT and TARGET_SH2.
8233                 Replace all uses of TARGET_SH3E with TARGET_SH2E.
8234                 (TARGET_SWITCHES): Added 2e.
8235                 (OVERRIDE_OPTIONS): Set sh_cpu for SH2E.
8236                 (processor_type): Added PROCESSOR_SH2E.
8237                 * config/sh/sh.md: Replace all uses of TARGET_SH3E with
8238                 TARGET_SH2E, except in sqrtsf2_i.
8239                 (attribute cpu): Added sh2e.
8240                 * config/sh/t-sh (MULTILIB_OPTIONS): Replace m3e with m2e.
8241                 (MULTILIB_MATCHES): Use m2e multilib for m3e.
8242                 * config.gcc: Add sh2e target support.
8243
8244 2003-01-24  Phil Edwards  <pme@gcc.gnu.org>
8245
8246         Rename -W to -Wextra.
8247         * c-decl.c:  Update comments.
8248         * c-typeck.c:  Likewise.
8249         * flags.h:  Likewise.
8250         * function.c:  Likewise.
8251         * stmt.c:  Likewise.
8252         * toplev.c:  Update comments.
8253         (W_options):  Add 'extra'.
8254         (display_help):  Remove '-W'.
8255         (decode_W_option):  Special warn_uninitialized treatment in the case
8256         of -Wextra.
8257         * doc/invoke.texi:  Update with new entries.
8258
8259 2003-01-23  Richard Henderson  <rth@redhat.com>
8260
8261         * ifcvt.c (noce_process_if_block): Re-add check vs X being changed
8262         in no-else-block case.  Add commentary.
8263
8264 2003-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8265
8266         * configure.in: Revert last change.
8267
8268 2003-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8269
8270         * configure.in: Don't include ansidecl.h in tconfig.h.
8271         * gcov-io.h (PARAMS, ATTRIBUTE_UNUSED: Define if IN_LIBGCC2.
8272         * unwind-dw2-fde.h (last_fde): Use __attribute__, not
8273         ATTRIBUTE_UNUSED.
8274
8275         * configure: Regenerate.
8276
8277 2003-01-23  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
8278
8279         PR java/6748
8280         * config/rs6000/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Don't destroy
8281         regs->nip. Fix rt_sigreturn frame layout. Add support for newer
8282         kernels.
8283
8284 2003-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8285
8286         * cpplex.c (cpp_interpret_charconst): Squelch warning with cast.
8287
8288 2003-01-23  Ulrich Weigand  <uweigand@de.ibm.com>
8289
8290         * genattrtab.c (write_attr_get): Mark 'insn' paramter
8291         as ATTRIBUTE_UNUSED.
8292
8293 2003-01-23  Richard Earnshaw  <rearnsha@arm.com>
8294
8295         * arm.c (thumb_base_register_rtx_p): New function.
8296         (thumb_index_register_rtx_p): New function.
8297         (thumb_legitimate_address_p): New function.
8298         (thumb_legitimate_offset_p): New function.
8299         * arm.h (REG_STRICT_P): Define according to setting of REG_OK_STRICT.
8300         (ARM_GO_IF_LEGITIMATE_ADDRESS): Use REG_STRICT_P to avoid duplicate
8301         definitions.
8302         (THUMB_GO_IF_LEGITIMATE_ADDRESS): Use thumb_legitimate_address_p.
8303         (THUMB_LEGITIMATE_OFFSET): Delte.
8304         (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use thumb_legitimate_offset.
8305         * arm-protos.h (thumb_legitimate_address_p): Add prototype.
8306         (thumb_legitimate_offset_p): Likewise.
8307
8308 2003-01-23  Andreas Schwab  <schwab@suse.de>
8309
8310         * unwind.h (_Unwind_GetTextRelBase): Mark parameter as unused.
8311
8312 2003-01-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8313
8314         * fixinc/Makefile.in (FL_LIST): Revert last change.
8315
8316 2003-01-23  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
8317
8318         PR other/7341
8319         * invoke.texi (ftest-coverage): Fix broken cross-reference.
8320         Change @code to @command for gcov command.
8321
8322         * gcc.texi: Adjust title of gcov section.
8323         Adjust copyright.
8324         * gcov.texi: Likewise.
8325
8326 2003-01-22  Roger Sayle  <roger@eyesopen.com>
8327
8328         PR optimization/8423
8329         * cse.c (fold_rtx): Only eliminate a CONSTANT_P_RTX to 1 when
8330         its argument is constant, or 0 if !flag_gcse.
8331         * simplify-rtx.c (simplify_rtx): Convert CONSTANT_P_RTX to 1
8332         if it's argument is constant.
8333         * gcse.c (want_to_gcse_p): Ignore CONSTANT_P_RTX nodes.
8334         (hash_scan_set): Don't record CONSTANT_P_RTX expressions.
8335         (do_local_cprop): Don't propagate CONSTANT_P_RTX constants.
8336         * builtins.c (purge_builtin_constant_p): New function to force
8337         instantiation of any remaining CONSTANT_P_RTX nodes.
8338         * rtl.h (purge_builtin_constant_p): Prototype here.
8339         * toplev.c (rest_of_compilation): Invoke purge_builtin_constant_p
8340         pass after GCSE and before loop.
8341         (flag_gcse): No longer static.
8342         * flags.h (flag_gcse): Prototype here.
8343
8344 2003-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
8345
8346         * config/s390/s390.h (HARD_REGNO_MODE_OK): Fix warning regression
8347         introduced by last change.
8348
8349 2003-01-22  Andreas Schwab  <schwab@suse.de>
8350
8351         * ra-rewrite.c (rewrite_program2): Initialize bb to avoid warning.
8352
8353 2003-01-22  Kazu Hirata  <kazu@cs.umass.edu>
8354
8355         * config/h8300/h8300.c (h8300_shift_needs_scratch_p): Don't
8356         request a scratch reg on H8S when the shift count is 8.
8357
8358 2003-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
8359
8360         * config/s390/s390-protos.h (preferred_la_operand_p):
8361         Remove second parameter.
8362         * config/s390/s390.c (preferred_la_operand_p): Likewise.
8363         * config/s390/s390.h (FRAME_REGNO_P, FRAME_REG_P): New macros.
8364         (HARD_REGNO_MODE_OK): Use FRAME_REGNO_P.
8365         * config/s390/s390.md ("*la_cc_64", "*la_cc_31", splitters): Remove.
8366         Add peepholes to transform ADD to LOAD ADDRESS.
8367
8368 2003-01-22  Richard Earnshaw  <rearnsha@arm.com>
8369
8370         * arm.c (arm_address_register_rtx_p): New function.
8371         (arm_legitimate_address_p): New function.
8372         (arm_legitimate_index_p): New function.
8373         (legitimize_pic_address): Use arm_legitimate_index_p.
8374         * arm-protos.h (arm_legtimate_address_p): Add prototype.
8375         * arm.h (ARM_GO_IF_LEGITIMATE_INDEX): Delete.
8376         (ARM_GO_IF_LEGITIMATE_ADDRESS): Call arm_legitimate_address_p.
8377
8378 2003-01-22  Hartmut Penner  <hpenner@de.ibm.com>
8379
8380         * config/s390/s390.md (floatdfdi2): Insn has type 'itof'.
8381         * config/s390/2064.md (define_bypass): Correct 'Load' and
8382         'Load-address' bypass values.
8383
8384 2003-01-22  Andreas Schwab  <schwab@suse.de>
8385
8386         * config/ia64/t-ia64 (insn-attrtab.o-warn): Define as -Wno-error.
8387
8388 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
8389
8390         * genautomata.c (output_internal_insn_latency_func,
8391         output_print_reservation_func): Short circuit when there is no
8392         automaton to generate code for.
8393
8394 2003-01-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8395
8396         * Makefile.in (ssa-ccp.o): Depend on coretypes.h $(TM_H).
8397         (df.o): Delete duplicate dependency on coretypes.h $(TM_H).
8398
8399 2003-01-21  Geoffrey Keating  <geoffk@apple.com>
8400
8401         * config/rs6000/rs6000.md: Remove warning.
8402         (builtin_setjmp_receiver): Likewise.
8403         * config/darwin.c (update_stubs): Slightly improve terrible hack
8404         with identifiers.  Add comment pointing out problems with it.
8405         (update_non_lazy_ptrs): Likewise.
8406
8407 2003-01-21  Richard Henderson  <rth@redhat.com>
8408
8409         * dwarf2out.c (lookup_filename): Fix printf format warning.
8410         * system.h (fread_unlocked, fwrite_unlocked): Undef.
8411
8412         * fixinc/Makefile.in (FL_LIST): Add $($@-warn) hook.
8413         (fixincl.o-warn, gnu-regex.o-warn): New.
8414         * fixinc/fixfixes.c (FIX_PROC_HEAD): Mark parameters unused.
8415         * fixinc/fixtests.c (TEST_FOR_FIX_PROC_HEAD): Likewise.
8416         * fixinc/fixincl.c (process): Fix printf format warning.
8417
8418 2003-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
8419
8420         * dwarf2out (output_file_names): Don't crash if called
8421         with empty file_table.
8422
8423 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
8424
8425         * genautomata.c (output_internal_insn_latency_func): Add
8426         missing break statement to generated code.
8427
8428 2003-01-21  Roger Sayle  <roger@eyesopen.com>
8429
8430         * stmt.c (same_case_target_p): New function to determine whether
8431         two case labels branch to the same target.  Split out from...
8432         (group_case_nodes): ... here.  Use same_case_target_p instead.
8433         (strip_default_case_nodes): Remove explicit case nodes
8434         that branch to the default destination.
8435         (expand_end_case_type): Call strip_default_case_nodes after
8436         group_case_nodes, to simplify the case-list before we count it.
8437         Only generate table_label RTX when actually needed.  Try to share
8438         thiscase->exit_label and thiscase->data.case_stmt.default_label
8439         when a switch has no explicit default case.  Simplify test for
8440         constant index.
8441
8442 2003-01-21  Kazu Hirata  <kazu@cs.umass.edu>
8443
8444         * config/h8300/h8300.md (*negsf2_h8300): Use \\t instead of
8445         \t.
8446         (*negsf2_h8300hs): Likewise.
8447         (*addsi3_lshiftrt_16_zexthi): Likewise.
8448         (*iorhi3_lshiftrt_8): Likewise.
8449
8450 2003-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
8451
8452         * dwarf2out.c (fde_table_in_use): Mark GTY.
8453         (dwarf2out_cfi_label_num): New variable, marked GTY.
8454         (dwarf2out_cfi_label): Use it instead of static label_num.
8455         * emit-rtl.c (label_num): Mark GTY.
8456
8457 2003-01-21  Kazu Hirata  <kazu@cs.umass.edu>
8458
8459         * config/h8300/h8300.c (output_plussi): Support H8/300.
8460         (compute_plussi_length): Likewise.
8461         (compute_plussi_cc): Likewise.
8462         * config/h8300/h8300.md (addsi_h8300): Use output_plussi to
8463         output assembly instructions.
8464
8465 2003-01-21  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8466
8467         * calls.c (fix_unsafe_tree): Prototype.
8468
8469         * Makefile.in (GCC_WARN_CFLAGS): Add $(WERROR) $($@-warn)
8470         (gtype-desc.o-warn, c-decl.o-warn, varasm.o-warn, gcc.o-warn,
8471         insn-conditions.o-warn, out_object_file, gengtype-yacc.o-warn,
8472         c-parse.o-warn): Add -Wno-error.
8473         (STAGE2_FLAGS_TO_PASS): Add WERROR="@WERROR@".
8474
8475         * configure.in (--enable-werror): Add new flag.
8476         * doc/install.texi (--enable-werror): Document.
8477         * configure: Regenerate.
8478
8479         * objc/Make-lang.in (objc/objc-parse.o-warn): Add -Wno-error.
8480
8481 2003-01-21  Andreas Schwab  <schwab@suse.de>
8482
8483         * genautomata.c (output_internal_insn_latency_func): Fix missing
8484         close paren in output.
8485
8486 2003-01-21  Zack Weinberg  <zack@codesourcery.com>
8487
8488         * genautomata.c: Space savings in generated code:
8489         (output_dfa_insn_code_func): Split out the table-enlargement
8490         path to an out-of-line static function, dfa_insn_code_enlarge.
8491         (output_internal_insn_latency_func): Use a lookup table for the
8492         default latencies.
8493         (output_print_reservation_func): Use a lookup table for the
8494         strings.
8495
8496 2003-01-21  Christian Ehrhardt  <ehrhardt@mathematik.uni-ulm.de>
8497
8498         PR opt/7507
8499         * calls.c (fix_unsafe_tree): Split out from ...
8500         (expand_call): ... here.  Use it on the function address too.
8501
8502 2003-01-20  Richard Henderson  <rth@redhat.com>
8503
8504         * expr.h (default_must_pass_in_stack): Move decl outside ifdef.
8505
8506 2003-01-20  Richard Henderson  <rth@redhat.com>
8507
8508         PR opt/7154
8509         * stmt.c (expand_asm_operands): Validize memory operands.
8510
8511 2003-01-20  Richard Henderson  <rth@redhat.com>
8512
8513         PR opt/8848
8514         * ifcvt.c (noce_process_if_block): Correct arguments to
8515         modified_between_p for no-else-block case.
8516
8517 2003-01-20  Kazu Hirata  <kazu@cs.umass.edu>
8518
8519         * config/h8300/h8300.c (const_costs): Remove a warning.
8520         (output_plussi): Likewise.
8521         (compute_plussi_length): Likewise.
8522         (compute_plussi_cc): Likewise.
8523
8524 2003-01-20  Kazu Hirata  <kazu@cs.umass.edu>
8525
8526         * config/h8300/h8300.md (addsi_h8300): Remove the last
8527         alternative.
8528
8529 2003-01-20  Kazu Hirata  <kazu@cs.umass.edu>
8530
8531         * config/h8300/h8300.c (get_shift_alg): Remove redundant code.
8532
8533 2003-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8534
8535         * system.h (__NO_STRING_INLINES): Define.
8536
8537 2003-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8538
8539         * ifcvt.c (noce_emit_store_flag): Don't emit store flag if mode of x
8540         is not a scalar int mode.
8541
8542 2003-01-20  Roger Sayle  <roger@eyesopen.com>
8543
8544         * cse.c (cse_insn): Avoid RTL sharing when updating the RETVAL
8545         insn's notes following a substitution inside a libcall.
8546
8547 2003-01-20  Zack Weinberg  <zack@codesourcery.com>
8548
8549         * configure.in: Check for system-provided 'uchar' type.
8550         * configure, config.in: Regenerate.
8551         * cpphash.h: Only typedef 'uchar' if the system doesn't.
8552
8553 2003-01-20  Richard Henderson  <rth@redhat.com>
8554
8555         * expr.h (MUST_PASS_IN_STACK): Move implementation...
8556         * calls.c (default_must_pass_in_stack): ... here.
8557
8558 2003-01-20  Vladimir Makarov  <vmakarov@redhat.com>
8559
8560         * genattrtab.h (INSN_ALTS_FUNC_NAME): Move it from genautomata.c.
8561
8562         * genautomata.c (INSN_ALTS_FUNC_NAME): Move it into genattrtab.h.
8563
8564         * genattr.c (main): Output default definition of AUTOMATON_ALTS.
8565         Wrap up definition of `insn_alts'.
8566
8567         * genattrtab.c (main): Wrap up `insn_alts'.
8568
8569 2003-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8570
8571         * collect2.c (ldgetname): Check HAVE_DECL_LDGETNAME before
8572         prototyping.
8573         * configure.in: Check for <ldfcn.h> and ldgetname() prototype.
8574
8575         * config.in, configure: Regenerate.
8576
8577 2003-01-20  Nick Clifton  <nickc@redhat.com>
8578
8579         * config/arm/arm.md (sibcall_epilogue): Add an
8580         UNSPEC_PROLOGUE_USE to prevent the link register from being
8581         considered dead.
8582
8583 2003-01-20  Jan Hubicka  <jh@suse.cz>
8584
8585         * i386.md (SSE cmov splitter):  Handle memory operand in operand 5.
8586
8587 2003-01-20  Andreas Schwab  <schwab@suse.de>
8588
8589         * system.h: Don't declare strsignal if the decl test hasn't been
8590         run yet.
8591
8592 2003-01-20  Kazu Hirata  <kazu@cs.umass.edu>
8593
8594         * config/h8300/h8300.c (notice_update_cc): Don't assume that
8595         recog_data.operands[0] is always associated with cc0.
8596
8597 2003-01-19  David Edelsohn  <edelsohn@gnu.org>
8598
8599         * collect2.c (ldgetname): Expand declaration to prototype.
8600         * read-rtl.c (atoll): Add prototype.
8601         * system.h (strsignal): Also declare if no declaration found.
8602
8603 2003-01-19  Alexandre Oliva  <aoliva@redhat.com>
8604
8605         * config.gcc (mips64*-*-linux*): Added.
8606         * config/mips/linux64.h, config/mips/t-linux64: New file.
8607         * config/mips/iris6.h (MIPS_TFMODE_FORMAT): Define.
8608         * config/mips/mips.c (override_options): Use it.
8609         * config/mips/mips.h (TARGET_SWITCHES): Added...
8610         (SUBTARGET_TARGET_SWITCHES): New, empty by default.
8611         * Makefile.in (SPECS): New.
8612         (STAGESTUFF, specs, mostlyclean, install-common): Use it.
8613         * gcc.c (process_command): Move self-spec processing past spec
8614         file loading.
8615         * doc/tm.texi (DRIVER_SELF_SPECS): Document the change.
8616         * doc/fragments.texi (MULTILIB_EXTRA_OPTS): Document need for
8617         CRTSTUFF_T_CFLAGS.
8618         (SPECS): Document.
8619         * doc/invoke.texi (-mabi-fake-default): Document.
8620
8621 2003-01-19  Stephane Carrez  <stcarrez@nerim.fr>
8622
8623         * config/m68hc11/m68hc11.c (stack_push_word, stack_pop_word,
8624         z_reg, z_reg_qi): Declare static and GTY().
8625         (da_reg): Remove.
8626         (create_regs_rtx): Don't create da_reg.
8627         ("gt-m68hc11.h"): Include for GTY roots.
8628         * config/m68hc11/m68hc11.h (ix_reg, iy_reg, d_reg): Declare extern
8629         and GTY() here.
8630         (m68hc11_compare_op0, m68hc11_compare_op1): Likewise.
8631         (m68hc11_soft_tmp_reg): Likewise.
8632         * config/m68hc11/m68hc11-protos.h: Remove above declarations.
8633
8634 2003-01-18  Kazu Hirata  <kazu@cs.umass.edu>
8635
8636         * basic-block.h: Fix comment formatting.
8637         * calls.c: Likewise.
8638         * combine.c: Likewise.
8639         * convert.c: Likewise.
8640         * gcov.c: Likewise.
8641         * haifa-sched.c: Likewise.
8642         * libgcc2.c: Likewise.
8643         * loop.c: Likewise.
8644         * profile.c: Likewise.
8645         * system.h: Likewise.
8646
8647 2003-01-18  Roger Sayle  <roger@eyesopen.com>
8648
8649         * config/pa/pa.md (muldi3): Avoid invalid sharing of SUBREG RTXs.
8650
8651 2003-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8652
8653         * ra-build.c (undef_to_size_word): Avoid `switch' warning.
8654
8655 2003-01-17  Dale Johannesen  <dalej@apple.com>
8656
8657         * config/rs6000/rs6000.md (*floatsidf2_internal):  Add earlyclobbers.
8658           (*floatunssidf2_internal):  Ditto.
8659
8660 2003-01-17  Kazu Hirata  <kazu@cs.umass.edu>
8661
8662         * alias.c: Fix comment typos.
8663         * basic-block.h: Likewise.
8664         * c-common.c: Likewise.
8665         * c-common.h: Likewise.
8666         * c-decl.c: Likewise.
8667         * c-opts.c: Likewise.
8668         * c-pragma.c: Likewise.
8669         * c-pretty-print.h: Likewise.
8670         * cfg.c: Likewise.
8671         * cfganal.c: Likewise.
8672         * cfgbuild.c: Likewise.
8673         * cfgcleanup.c: Likewise.
8674         * cfglayout.c: Likewise.
8675         * cfgrtl.c: Likewise.
8676         * convert.c: Likewise.
8677         * cpphash.h: Likewise.
8678         * cpplex.c: Likewise.
8679         * cpplib.h: Likewise.
8680         * df.h: Likewise.
8681         * diagnostic.c: Likewise.
8682         * diagnostic.h: Likewise.
8683         * dwarf2.h: Likewise.
8684
8685 2003-01-17  Stan Shebs  <shebs@apple.com>
8686
8687         * config/darwin-protos.h: Forward-declare struct cpp_reader.
8688
8689 2003-01-17  Douglas B Rupp  <rupp@gnat.com>
8690
8691         * config/alpha/alpha.c (alpha_need_linkage): Fix obvious
8692         mistake in last checkin.
8693
8694 2003-01-17  Kazu Hirata  <kazu@cs.umass.edu>
8695
8696         * et-forest.c: Fix comment typos.
8697         * et-forest.h: Likewise.
8698         * except.c: Likewise.
8699         * expr.c: Likewise.
8700         * flags.h: Likewise.
8701         * flow.c: Likewise.
8702         * gcc.c: Likewise.
8703         * gcse.c: Likewise.
8704         * genattrtab.c: Likewise.
8705         * genautomata.c: Likewise.
8706         * gengtype.c: Likewise.
8707         * genrecog.c: Likewise.
8708         * global.c: Likewise.
8709         * gthr-rtems.h: Likewise.
8710
8711 2003-01-17  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8712
8713         * i386.c (x86_function_profiler): Fix format specifier.
8714
8715 2003-01-17  Richard Henderson  <rth@redhat.com>
8716
8717         * gengtype.c (walk_type): Allow paramN_is.
8718
8719 2003-01-17  Nick Clifton  <nickc@redhat.com>
8720
8721         * config/i960/t-960bare (i960-c.o): Add missing newline escape.
8722
8723 2003-01-16  Richard Henderson  <rth@redhat.com>
8724
8725         * config/alpha/linux-elf.h (LIB_SPEC): Adjust inter-option spacing.
8726
8727 2003-01-16  Richard Henderson  <rth@redhat.com>
8728
8729         * config/alpha/alpha.c (alpha_sr_alias_set): Mark GTY.
8730         (alpha_next_sequence_number): Likewise.
8731         (alpha_this_literal_sequence_number): Likewise.
8732         (alpha_this_gpdisp_sequence_number): Likewise.
8733         (struct alpha_funcs, alpha_funcs_num): Likewise.
8734         (struct alpha_links): Fix branch merge error.
8735         (alpha_need_linkage, alpha_use_linkage): Use GC for alpha_funcs.
8736
8737 2003-01-17  Alexandre Oliva  <aoliva@redhat.com>
8738
8739         * config/mips/mips.h: Don't use #elif.  Reported by Kaveh
8740         R. Ghazi.
8741
8742 2003-01-16  Kazu Hirata  <kazu@cs.umass.edu>
8743
8744         * ifcvt.c: Fix comment typos.
8745         * lcm.c: Likewise.
8746         * libgcc2.c: Likewise.
8747         * local-alloc.c: Likewise.
8748         * loop.c: Likewise.
8749         * predict.c: Likewise.
8750         * ra-build.c: Likewise.
8751         * ra.c: Likewise.
8752         * ra-colorize.c: Likewise.
8753         * ra.h: Likewise.
8754         * ra-rewrite.c: Likewise.
8755         * regmove.c: Likewise.
8756         * reload.h: Likewise.
8757         * rtlanal.c: Likewise.
8758         * toplev.c: Likewise.
8759         * tree.h: Likewise.
8760         * unwind-dw2-fde-glibc.c: Likewise.
8761         * vmsdbgout.c: Likewise.
8762
8763 2003-01-16  Richard Henderson  <rth@redhat.com>
8764
8765         * dwarf2out.c (struct file_table): Remove.
8766         (FILE_TABLE_INCREMENT): Remove.
8767         (file_table): Make a varray; mark for GC.  Update all users.
8768         (file_table_last_lookup_index): Extract from struct file_table.
8769         (output_file_names): Fix unsigned compare warnings.
8770         (add_name_attribute): Remove inline marker.
8771         (add_comp_dir_attribute): Split out from gen_compile_unit_die.
8772         (lookup_filename): Don't manage size of file_table.
8773         (init_file_table): Allocate file_table with GC.
8774         (dwarf2out_init): Don't record main_input_filename here.
8775         (dwarf2out_finish): Do it here instead.
8776
8777 2003-01-16  Bruce Korb  <bkorb@gnu.org>
8778
8779         * gcc/fixinc/inclhack.def(limits_ifndef): QNX needs a bypass, too.
8780
8781 2003-01-16  Kaz Kojima  <kkojima@gcc.gnu.org>
8782
8783         * config/sh/sh.c (sh_initialize_trampoline): Emit rotrdi3_mextr
8784         instead of rotldi3_mextr.
8785
8786 2003-01-16  Vladimir Makarov  <vmakarov@redhat.com>
8787
8788         * haifa-sched.c (move_insn): Restore moving all schedule group.
8789         (set_priorities): Restore taking SCHED_GROUP_P into account.
8790
8791         * sched-deps.c (add_dependence): Restore processing the last group
8792         insn.
8793         (remove_dependence, group_leader): Restore the functions.
8794         (set_sched_group_p): Restore adding dependencies from previous insn
8795         in the group.
8796         (compute_forward_dependences): Restore usage of group_leader.
8797
8798         * sched-ebb.c (init_ready_list): Restore taking SCHED_GROUP_P into
8799         account.
8800
8801         * sched-rgn.c (init_ready_list): Restore taking SCHED_GROUP_P into
8802         account.
8803         (can_schedule_ready_p): Ditto.
8804         (add_branch_dependences): Restore skipping over the group insns.
8805
8806 2003-01-16  Stephane Carrez  <stcarrez@nerim.fr>
8807
8808         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix handling
8809         68HC12 pre/post inc/dec side effects.
8810
8811 2003-01-16  Stephane Carrez  <stcarrez@nerim.fr>
8812
8813         * config/m68hc11/m68hc11.h (MASK_M6812): Define.
8814
8815 2003-01-16  J"orn Rennecke <amylaar@onetel.net.uk>
8816
8817         * sh.md (mshflo_w_x): Fix description of operation.
8818
8819 2003-01-16  Zack Weinberg  <zack@codesourcery.com>
8820
8821         * config/rs6000/rs6000.h: Mention Altivec registers in
8822         commentary.  Fix typo.
8823
8824 2003-01-16  David Edelsohn  <edelsohn@gnu.org>
8825
8826         * config/rs6000/rs6000.md (movti_string): Remove clobber.
8827         * config/rs6000/rs6000.c (rs6000_emit_move, TImode): Explicitly
8828         generate PARALLEL with clobber for TARGET_POWER.
8829
8830 2003-01-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8831
8832         * ra-colorize.c (colorize_one_web): Initialize variable.
8833         * regmove.c (fixup_match_1): Likewise.
8834         * reload1.c (reload_as_needed): Likewise.
8835         * sdbout.c (SET_KNOWN_TYPE_TAG): Add cast.
8836
8837 2003-01-16  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8838
8839         * cfgloop.c (flow_loops_find): Fix handling of abnormal edges.
8840
8841 2003-01-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8842
8843         * dbxout.c (lastfile, cwd): Fix `unused' warning.
8844         * dwarf2out.c (fde_table_in_use, current_funcdef_fde,
8845         dw_cfi_oprnd1_desc, dw_cfi_oprnd2_desc, next_die_offset,
8846         is_main_source, file_table, decl_die_table_in_use,
8847         abbrev_die_table_in_use, line_info_table_in_use,
8848         separate_line_info_table_in_use, pubname_table_in_use,
8849         arange_table_in_use, ranges_table_in_use,
8850         current_function_has_inlines): Likewise.
8851         * flow.c (life_analysis): Likewise.
8852         * genemit.c (gen_insn): Likewise.
8853         * protoize.c (cplus_suffix): Likewise.
8854
8855         * arm.c (ROUND_UP_WORD): Renamed from ROUND_UP.
8856         * arm.h (ROUND_UP_WORD): Likewise.
8857
8858         * arm.h (CONDITIONAL_REGISTER_USAGE): Avoid signed/unsigned
8859         warning.
8860         * emit-rtl.c (gen_rtx_REG, set_mem_attributes_minus_bitpos,
8861         init_emit_once): Likewise.
8862         * flow.c (mark_regs_live_at_end, calculate_global_regs_live):
8863         Likewise.
8864         * function.c (assign_stack_temp_for_type): Likewise.
8865         * loop.c (loop_invariant_p): Likewise.
8866         * recog.c (push_operand): Likewise.
8867         * regclass.c (init_reg_sets_1): Likewise.
8868         * reload.c (update_auto_inc_notes): Likewise.
8869         * reload1.c (reload_as_needed, emit_input_reload_insns): Likewise.
8870         * stmt.c (expand_asm_operands): Likewise.
8871         * stor-layout.c (start_record_layout): Likewise.
8872
8873 2003-01-16  Herman A.J. ten Brugge <hermantenbrugge@home.nl>
8874
8875         * config/c4x/c4x.md (epilogue): Correct last patch.
8876
8877 2003-01-15  Richard Henderson  <rth@redhat.com>
8878
8879         * config/alpha/alpha.c (find_lo_sum_using_gp): Rename from find_lo_sum;
8880         also check that GP is being used.
8881         (alpha_find_lo_sum_using_gp): New.
8882         (alpha_does_function_need_gp): Use get_attr_usegp.
8883         * config/alpha/alpha-protos.h: Update.
8884         * config/alpha/alpha.md (attr usegp): New.  Annotate patterns
8885         as needed.
8886
8887 2003-01-15  Roger Sayle  <roger@eyesopen.com>
8888
8889         * gcse.c (one_cprop_pass): Change function arguments to take both
8890         cprop_jumps and bypass_jumps flags instead of just alter_jumps.
8891         (gcse_main): Update calls to one_cprop_pass, disabling bypassing.
8892         (bypass_jumps): New function to perform separate jump bypassing pass.
8893         * rtl.h (bypass_jumps): Add function prototype.
8894         * timevar.def (TV_BYPASS): New timing variable.
8895         * toplev.c (enum dump_file_index): Add new entry DFI_bypass.
8896         (dump_file): New entry for the bypass RTL dump file.
8897         (rest_of_compilation): Insert new jump bypassing optimization
8898         pass after loop.
8899         * doc/passes.texi: Document new pass.
8900
8901 2003-01-15  John David Anglin  <dave@hiauly1.hia.nrc.ca>
8902
8903         * som.h (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY,
8904         ASM_WEAKEN_LABEL, GTHREAD_USE_WEAK): Define.
8905         * pa.h (TARGET_SOM_SDEF): Define.
8906         * pa-hpux11.h (TARGET_SOM_SDEF): Define.
8907
8908 2003-01-16  Stephane Carrez  <stcarrez@nerim.fr>
8909
8910         * config/m68hc11/m68hc11.c (expand_prologue): Use push/pop to
8911         allocate 4-bytes of locals on 68HC11.
8912         (expand_epilogue): Likewise.
8913         (m68hc11_memory_move_cost): Increase cost of HI/QI soft registers.
8914
8915 2003-01-15  Stephane Carrez  <stcarrez@nerim.fr>
8916
8917         * config/m68hc11/m68hc11.h (ASM_SPEC): Handle -m68hcs12; Pass -mshort
8918         and -mshort-double to the assembler to specify the ABI.
8919         (LINK_SPEC): Likewise.
8920         (CPP_SPEC): Pass HCS12 specific define.
8921         (MASK_M68S12): New define.
8922         (TARGET_M68S12): Likewise.
8923         (TARGET_SWITCHES): New options -m68hcs12 and -m68S12.
8924         (TARGET_VERSION): Update.
8925         * config/m68hc11/m68hc12.h (CPP_SPEC): Pass HCS12 specific define.
8926         (LINK_SPEC): Update.
8927         (ASM_SPEC): Update.
8928         * config/m68hc11/m68hc11.c (m68hc11_asm_file_start): Update.
8929         * doc/invoke.texi (M68hc1x Options): Document -m68hcs12.
8930
8931 2003-01-15  Stephane Carrez  <stcarrez@nerim.fr>
8932
8933         * config/m68hc11/m68hc11.md ("return"): Use emit_jump_insn to emit
8934         the return code.
8935
8936 2003-01-15  Josef Zlomek  <zlomekj@suse.cz>
8937
8938         * cfganal.c (set_edge_can_fallthru_flag): Clear the EDGE_CAN_FALLTHRU
8939         flag before setting it.
8940
8941 2003-01-15  Roger Sayle  <roger@eyesopen.com>
8942
8943         * c-semantics.c (genrtl_while_stmt):  Improve initial RTL generation
8944         when loop condition is known true, i.e.  "while (1) { ... }".
8945         (genrtl_for_stmt): Similarly for "for" statements.
8946
8947 2003-01-15  Roger Sayle  <roger@eyesopen.com>
8948
8949         * real.c (real_sqrt): Return a bool result indicating whether
8950         a floating point exception or trap should be raised.
8951         * real.h (real_sqrt): Update function prototype.
8952         * builtins.c (fold_builtin): Only fold non-trapping square
8953         roots unless we're ignoring errno and trapping math.
8954
8955 2003-01-15  John David Anglin  <dave.anglin@nrc.gc.ca>
8956
8957         * expr.h (emit_conditional_add): Add PARAMS to declaration.
8958         * gengtype-lex.l (malloc, realloc): Move defines after include of
8959         system.h.  Remove duplicate include of system.h.
8960
8961 2003-01-15  Roger Sayle  <roger@eyesopen.com>
8962
8963         PR middle-end/9009
8964         * optabs.c (expand_unop):  When manipulating the FP sign bit
8965         using integer operations, account for targets with different
8966         integer and FP word orders.
8967         (expand_abs): Likewise.
8968
8969 2003-01-15  David Edelsohn  <edelsohn@gnu.org>
8970
8971         * config/rs6000/rs6000.c (rs6000_gen_section_name): Do not include
8972         file extension in section name.
8973
8974 2003-01-15  Richard Earnshaw  <rearnsha@arm.com>
8975
8976         * flow.c (find_auto_inc): Also try to generate a PRE_MODIFY with
8977         constant offset.
8978
8979 2003-01-15  Richard Earnshaw  <rearnsha@arm.com>
8980
8981         * arm.h (HAVE_PRE_MODIFY_DISP, HAVE_PRE_MODIFY_REG): Define.
8982         (HAVE_POST_MODIFY_DISP, HAVE_POST_MODIFY_REG): Define.
8983         (ARM_GO_IF_LEGITIMATE_ADDRESS): Handle pre/post-modify addresses.
8984         (ARM_PRINT_OPERAND_ADDRESS): Likewise.
8985
8986 2003-01-15  Jan Hubicka  <jh@suse.cz>
8987
8988         PR f/9258
8989         * global.c (struct allocno): Add no_stack_reg.
8990         (global_conflicts): Set no_stack_reg.
8991         (find_reg): Use it.
8992
8993         * convert.c (convert_to_real): Fold - and abs only when profitable.
8994         * fold-const.c (fold): Fold truncates in - and abs.
8995
8996 2003-01-15  Josef Zlomek  <zlomekj@suse.cz>
8997
8998         Segher Boessenkool  <segher@koffie.nl>
8999
9000         * predict.c (real_inv_br_prob_base): New variable.
9001         (propagate_freq): Use multiply by reciprocal instead of
9002         division.  Don't divide by 1.0 at all.
9003         (estimate_bb_frequencies): Similar.
9004
9005 2003-01-15  Alexandre Oliva  <aoliva@redhat.com>
9006
9007         * configure.in (libgcc_visibility): Force disabled on IRIX 6 too.
9008         * configure: Rebuilt.
9009
9010 2003-01-15  Hartmut Penner  <hpenner@de.ibm.com>
9011
9012         * config/s390/s390.c (s390_safe_attr_type): New function.
9013         (s390_use_dfa_pipeline_interface): New function, return true for z900.
9014         (s390_issue_rate): New function.
9015         (s390_agen_dep_p): New function.
9016         (addr_generation_dependency_p): Use 's390_safe_attr_type'.
9017         (s390_adjust_cost): Return 'cost' if new DFA is used.
9018         (s390_adjust_priority): Delete function.
9019         * config/s390/s390-protos.h: (s390_agen_dep_p): New prototype.
9020         * config/s390/s390.md (atype attribute): Attribute 'atype' default
9021         determined by 'op_type'.
9022         (type attribute): Added more type attributes.
9023         * config/s390/2064.md: New DFA description for z900 pipeline.
9024
9025 2003-01-15  Alexandre Oliva  <aoliva@redhat.com>
9026
9027         * config/i386/i386.c (ix86_expand_vector_move): Validize constant
9028         forced to memory.  Fixes PR bootstrap/9036.
9029
9030         * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Define so as
9031         to set $gp before the call.
9032
9033 2003-01-14  Richard Henderson  <rth@redhat.com>
9034
9035         * config/alpha/alpha.c (alpha_expand_mov): Use correct mode
9036         for force_const_mem.
9037
9038 2003-01-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9039
9040         * genattr.c (main): Rearrange output to avoid prototype warning.
9041         * genautomata.c (transform_3): Fix ambiguous-else warning.
9042         * local-alloc.c (requires_inout): Add parentheses around
9043         assignment used as truth-value.
9044         * timevar.c: Move system includes above local includes.  Include
9045         toplev.h
9046         * Makefile.in (timevar.o): Depend on toplev.h.
9047
9048 2003-01-14  Denis Chertykov  <denisc@overta.ru>
9049
9050         * config/ip2k/ip2k.h (VALID_MACHINE_DECL_ATTRIBUTE): Remove.
9051         (VALID_MACHINE_TYPE_ATTRIBUTE): Remove.
9052
9053         * config/ip2k/ip2k.c (ip2k_attribute_table): New table of
9054         attributes.
9055         (TARGET_ATTRIBUTE_TABLE): New macro.
9056         (valid_machine_type_attribute): Remove.
9057         (valid_machine_decl_attribute): Remove.
9058         (ip2k_handle_progmem_attribute): New function.
9059         (ip2k_handle_fndecl_attribute): New function.
9060
9061 2003-01-10  Andrew Haley  <aph@redhat.com>
9062
9063         * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Rename
9064         registers to be in correct order.  Add rip.
9065
9066 2003-01-14  Kazu Hirata  <kazu@cs.umass.edu>
9067
9068         * config/h8300/h8300.md (*andsi3_lshiftrt_9_sb): New.
9069         (*iorsi3_and_lshiftrt_9_sb): Likewise.
9070
9071 2003-01-14  Jan Hubicka  <jh@suse.cz>
9072
9073         * convert.c (strip_float_extensions):  Look for narrowest type handling
9074         FP constants.
9075
9076         * fold-const.c (fold):  Fold (double)float1 CMP (double)float2 into
9077         float1 CMP float2.
9078         * convert.c (strip_float_extensions): Make global.
9079         * tree.h (strip_float_extensions): Declare.
9080
9081 2003-01-14  Gabriel Dos Reis  <gdr@integrable-solutions.net>
9082
9083         * timevar.def: define TV_NAME_LOOKUP.
9084         * timevar.c (timevar_pop): Be verbose when aborting.
9085
9086 2003-01-13  Andreas Schwab  <schwab@suse.de>
9087
9088         * Makefile.in ($(parsedir)/gengtype-lex.c): Don't change to
9089         $(parsedir), just move the temporary file at the end.
9090         ($(parsedir)/gengtype-yacc.c): Likewise.
9091
9092 2003-01-13  Alexandre Oliva  <aoliva@redhat.com>
9093
9094         * aclocal.m4 (gcc_AC_PROG_GNAT): Don't try to prepend
9095         ${ac_tool_prefix} to ADAC or CC.  Protect them from word
9096         splitting.
9097         * configure: Rebuilt.
9098
9099 2003-01-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9100
9101         * config/sparc/gmon-sol2.c (moncontrol, monstartup, _mcleanup,
9102         internal_mcount): Don't use PARAMS.
9103         (monstartup, _mcleanup, internal_mcount, moncontrol): Convert to
9104         ISO C style.
9105         (internal_mcount): Use __attribute__, not ATTRIBUTE_UNUSED.
9106
9107 2003-01-13  Andreas Schwab  <schwab@suse.de>
9108
9109         * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Output type
9110         directive.
9111
9112 2003-01-13  Kazu Hirata  <kazu@cs.umass.edu>
9113
9114         * config/h8300/h8300.md (*andsi3_lshift_n_sb): New.
9115         (*iorsi3_and_lshiftrt_n_sb): Likewise.
9116
9117 2003-01-12  Mark Mitchell  <mark@codesourcery.com>
9118
9119         PR c++/9264
9120         * c-lex.c (c_lex): Set the token value to error_mark_node for
9121         invalid numeric constants.
9122
9123 2003-01-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9124
9125         * c-pch.c (asm_file_startpos): Change to `long'.
9126         (pch_init): Use ftell, not ftello.
9127         (c_common_write_pch): Use ftell/fseek, not ftello/fseeko.
9128         Use `long' instead of `off_t'.
9129         (c_common_read_pch): Likewise.
9130         * ggc-common.c (gt_pch_save): Use long/ftell instead of
9131         off_t/ftello.
9132
9133 2003-01-12  Alan Modra  <amodra@bigpond.net.au>
9134
9135         * expr.c (expand_expr <RDIV_EXPR>): Correct recursive call args.
9136
9137 2003-01-11  Richard Earnshaw  (rearnsha@arm.com)
9138
9139         * arm-protos.h (struct cpp_reader): Add declaration.
9140
9141 2003-01-11  Jan Hubicka  <jh@suse.cz>
9142
9143         PR target/9068
9144         * i386.c (output_fp_compare): Fix typo.
9145
9146 2003-01-10  David Edelsohn  <edelsohn@gnu.org>
9147
9148         * config/rs6000/rs6000.c (common_mode_defined): Mark for PCH.
9149
9150 2003-01-10  Geoffrey Keating  <geoffk@apple.com>
9151
9152         * Makefile.in (parsedir): New variable.
9153         (docobjdir): New variable.
9154         (c-parse.o, c-parse.c, c-parse.y, gengtype-lex.o, gengtype-yacc.o,
9155         gengtype-lex.c, gengtype-yacc.c): Use parsedir.
9156         (info, cpp.info, gcc.info, gccint.info, gccinstall.info,
9157         cppinternals.info, generated-manpages, gcov.1, cpp.1, gcc.1, gfdl.7,
9158         gpl.7, fsf-funding.7, maintainer-clean, install-info, install-man):
9159         Use docobjdir.
9160         * objc/Make-lang.in (objc/objc-parse.c, objc/objc-parse.y,
9161         objc.maintainer-clean): Use parsedir.
9162
9163         * varasm.c (struct constant_descriptor_rtx): Remove unused
9164         `label' field.
9165
9166         * toplev.c (documented_lang_options): Document -Winvalid-pch.
9167
9168 2003-01-10  Richard Henderson  <rth@redhat.com>
9169
9170         * config/alpha/alpha.h (NO_PROFILE_COUNTERS): Set.
9171         (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Kill.
9172
9173 2003-01-10  Richard Henderson  <rth@redhat.com>
9174
9175         * combine.c (make_compound_operation): Use SCALAR_INT_MODE_P,
9176         not INTEGRAL_MODE_P when widening extensions.
9177
9178 2003-01-10  Richard Henderson  <rth@redhat.com>
9179
9180         * config/alpha/alpha.c (decl_has_samegp): True for !TREE_PUBLIC.
9181
9182 2003-01-10  Geoffrey Keating  <geoffk@apple.com>
9183
9184         * ggc-page.c (ggc_collect): Avoid overflow computing
9185         min_expand.
9186
9187         * Makefile.in (RANLIB_FOR_TARGET): Use RANLIB when native.
9188         (RANLIB_TEST_FOR_TARGET): Delete.  Don't pass down to sub-makes.
9189         Remove calls.
9190         * mklibgcc.in: Remove uses of RANLIB_TEST_FOR_TARGET.
9191
9192 2003-01-10  Jan Hubicka  <jh@suse.cz>
9193
9194         * ifcvt.c (noce_try_addcc): Do not call emit_conditional_add
9195         with weird operands.
9196
9197 2003-01-10  Dale Johannesen <dalej@apple.com>
9198
9199         * calls.c (load_register_parameters):  Add is_sibcall, sibcall_failure
9200         parameters.  Call check_sibcall_argument_overlap if indicated.
9201         (check_sibcall_argument_overlap):  Add mark_stored_args_map
9202         parameter.  Don't mark parameter area as clobbered if not set.
9203         (expand_call):  Adjust calls to above.
9204
9205 2003-01-10 Kelley Cook <kelleycook@comcast.net>
9206
9207         * configure.in (linker read-only and read-write section mixing):
9208         Squelch some assembler warnings.
9209         * configure: Likewise.
9210
9211 2003-01-10  Hartmut Penner  <hpenner@de.ibm.com>
9212
9213         * doc/invoke.texi: Document -mtune, delete -mcpu
9214         option for S/390 and zSeries.
9215         * config/s390/s390.c (s390_tune_string) New variable.
9216         (s390_cpu_string) Delete variable.
9217         (override_options): Use s390_tune_string instead of
9218         s390_cpu_string.
9219         * config/s390/s390.h: (TARGET_OPTIONS) '-mtune' instead of '-mcpu'.
9220
9221 2003-01-10  Kazu Hirata  <kazu@cs.umass.edu>
9222
9223         * config/h8300/h8300.md (*iorsi3_ashift_31): New.
9224
9225 2003-01-10  Josef Zlomek  <zlomekj@suse.cz>
9226
9227         * jump.c (next_nonnote_insn_in_loop): New function.
9228         (copy_loop_headers): Use next_nonnote_insn_in_loop instead of
9229         next_nonnote_insn.
9230         (duplicate_loop_exit_test). Likewise.
9231
9232 2003-01-09  Geoffrey Keating  <geoffk@apple.com>
9233
9234         Merge from pch-branch:
9235
9236         2003-01-06  Geoffrey Keating  <geoffk@apple.com>
9237
9238         * ggc-page.c (ggc_pch_read): Update the statistics after a PCH
9239         load.
9240
9241         2002-12-24  Geoffrey Keating  <geoffk@apple.com>
9242
9243         * cpplib.c (count_registered_pragmas): New function.
9244         (save_registered_pragmas): New function.
9245         (_cpp_save_pragma_names): New function.
9246         (restore_registered_pragmas): New function.
9247         (_cpp_restore_pragma_names): New function.
9248         * cpphash.h (_cpp_save_pragma_names): Prototype.
9249         (_cpp_restore_pragma_names): Likewise.
9250         * cpppch.c (struct save_macro_item): Split from save_macro_data.
9251         (struct save_macro_data): New field 'saved_pragmas'.
9252         (save_macros): Update for changes to struct save_macro_data.
9253         (cpp_prepare_state): Call _cpp_save_pragma_names, update
9254         for changes to struct save_macro_data.
9255         (cpp_read_state): Call _cpp_restore_pragma_names, update
9256         for changes to struct save_macro_data.
9257
9258         * cpppch.c (cpp_read_state): Restore the hashtable references
9259         in the cpp_reader.
9260
9261         * tree.h (built_in_decls): Mark for PCH.
9262
9263         * dbxout.c (lastfile): Don't mark for PCH.
9264
9265         * ggc.h: Document PCH calls into memory managers.
9266
9267         2002-12-18  Geoffrey Keating  <geoffk@apple.com>
9268
9269         * doc/invoke.texi (Precompiled Headers): Document the
9270         directory form of PCH.
9271         * cppfiles.c (validate_pch): New function.
9272         (open_file_pch): Search suitably-named directories for PCH files.
9273
9274         2002-12-14  Geoffrey Keating  <geoffk@apple.com>
9275
9276         * doc/gty.texi (GTY Options): Document chain_next, chain_prev,
9277         reorder options.
9278         (Type Information): Mention that the information is also
9279         used to implement PCH.
9280         * doc/passes.texi (Passes): Improve documentation of
9281         language-specific files.
9282
9283         2002-12-11  Geoffrey Keating  <geoffk@apple.com>
9284
9285         * gengtype.c (struct write_types_data): Add reorder_note_routine field.
9286         (struct walk_type_data): Add reorder_fn field.
9287         (walk_type): Process 'reorder' option.
9288         (write_types_process_field): Reorder parameters to gt_pch_note_object,
9289         call reorder_note_routine.
9290         (write_func_for_structure): Reorder parameters to gt_pch_note_object.
9291         (ggc_wtd): Update for change to struct write_types_data.
9292         (pch_wtd): Likewise.
9293         * ggc.h (gt_pch_note_object): Reorder parameters.
9294         (gt_handle_reorder): New definition.
9295         (gt_pch_note_reorder): New prototype.
9296         * ggc-common.c (struct ptr_data): Add reorder_fn.
9297         (gt_pch_note_object): Reorder parameters.
9298         (gt_pch_note_reorder): New.
9299         (gt_pch_save): Call reorder_fn.
9300         * stringpool.c (gt_pch_n_S): Update for change to gt_pch_note_object.
9301
9302         * dbxout.c (cwd): Don't mark for PCH.
9303
9304         2002-12-09  Geoffrey Keating  <geoffk@apple.com>
9305
9306         * gengtype.c (finish_root_table): Fix some warnings.
9307         (write_root): Handle TYPE_STRING.
9308         * ggc.h (gt_ggc_m_S): Add prototype.
9309         * stringpool.c (gt_ggc_m_S): New function.
9310
9311         2002-11-30  Geoffrey Keating  <geoffk@apple.com>
9312
9313         * dwarf2out.c (dw2_string_counter): New.
9314         (AT_string_form): Use it.
9315         (same_dw_val_p): Update for removal of hashtable.h hash tables.
9316
9317         2002-11-22  Geoffrey Keating  <geoffk@apple.com>
9318
9319         * dbxout.c: Include gt-dbxout.h.
9320         (lastfile): Mark for PCH/GGC.
9321         (cwd): Likewise.
9322         (struct typeinfo): Likewise.
9323         (typevec): Likewise.
9324         (typevec_len): Likewise.
9325         (next_type_number): Likewise.
9326         (struct dbx_file): Likewise.
9327         (current_file): Likewise.
9328         (next_file_number): Likewise.
9329         (dbxout_init): Allocate typevec, struct dbx_file with GGC.
9330         (dbxout_start_source_file): Allocate struct dbx_file with GGC.
9331         (dbxout_end_source_file): Don't free struct dbx_file.
9332         (dbxout_type): Use GGC to allocate typevec.
9333         * Makefile.in (dbxout.o): Depend on gt-dbxout.h, $(GGC_H).
9334         (GTFILES): Add dbxout.c.
9335         (gt-dbxout.h): New rule.
9336
9337         * Makefile.in (c-pch.o): Add debug.h as dependency.
9338         * c-pch.c: Include debug.h.
9339         (pch_init): Call start_source_file to keep nesting right.
9340         (c_common_read_pch): Add orig_name parameter.  Call
9341         start_source_file debug hook.  Call end_source_file debug hook.
9342         * c-common.h (c_common_read_pch): Update prototype.
9343         * cpplib.h (struct cpp_callbacks): Add fourth field to read_pch
9344         callback.
9345         * cppfiles.c (struct include_file): Add new field `header_name'.
9346         (find_or_create_entry): Default it to `name'.
9347         (open_file_pch): Set it to the original header file searched for.
9348         (stack_include_file): Don't stack an empty buffer, just handle
9349         PCH files immediately.  Pass header_name field to read_pch callback.
9350
9351         2002-11-19  Geoffrey Keating  <geoffk@apple.com>
9352
9353         * function.c (funcdef_no): Mark to be saved in a PCH.
9354
9355         2002-11-15  Geoffrey Keating  <geoffk@apple.com>
9356
9357         * ggc-page.c (ggc_pch_read): Remove unused 'bmap_size'.
9358
9359         * cpppch.c (cpp_read_state): Correct size reallocated for 'defn'.
9360
9361         2002-11-14  Geoffrey Keating  <geoffk@apple.com>
9362
9363         * optabs.h (code_to_optab): Add GTY marker.
9364
9365         2002-11-13  Geoffrey Keating  <geoffk@apple.com>
9366
9367         * Makefile.in (GTFILES): Add cpplib.h.
9368         * c-common.h (struct c_common_identifier): Don't skip 'node' field.
9369         * c-decl.c (build_compound_literal): Don't use var_labelno.
9370         * cpplib.h (struct cpp_hashnode): Use gengtype to mark.
9371         * dwarf2asm.c (dw2_force_const_mem): Don't use const_labelno.
9372         * varasm.c (const_labelno): Use gengtype to mark.
9373         (var_labelno): Likewise.
9374         (in_section): Likewise.
9375         (in_named_name): Likewise.
9376         (struct in_named_entry): Likewise.
9377         (in_named_htab): Likewise.
9378         (set_named_section_flags): Use GGC to allocate struct in_named_entry.
9379         (init_varasm_once): Use GGC to allocate in_named_htab.
9380         * config/darwin.c (current_pic_label_num): Mark for PCH.
9381
9382         2002-11-11  Geoffrey Keating  <geoffk@apple.com>
9383
9384         * ggc-simple.c (init_ggc_pch): New stub procedure.
9385         (ggc_pch_count_object): Likewise.
9386         (ggc_pch_total_size): Likewise.
9387         (ggc_pch_this_base): Likewise.
9388         (ggc_pch_alloc_object): Likewise.
9389         (ggc_pch_prepare_write): Likewise.
9390         (ggc_pch_write_object): Likewise
9391         (ggc_pch_finish): Likewise.
9392         (ggc_pch_read): Likewise.
9393
9394         2002-11-08  Geoffrey Keating  <geoffk@apple.com>
9395
9396         * c-pch.c (c_common_write_pch): Write the macro definitions after
9397         the GCed data.
9398         (c_common_read_pch): Call cpp_prepare_state.  Restore the macro
9399         definitions after the GCed data.
9400         * cpplib.c (save_macros): New.
9401         (reset_ht): New.
9402         (cpp_write_pch_deps): Split out of cpp_write_pch.
9403         (cpp_write_pch_state): Split out of cpp_write_pch.
9404         (cpp_write_pch): Delete.
9405         (struct save_macro_data): Delete.
9406         (cpp_prepare_state): New.
9407         (cpp_read_state): Erase and restore initial macro definitions.
9408         * cpplib.h (struct save_macro_data): Forward-declare.
9409         (cpp_write_pch_deps): Prototype.
9410         (cpp_write_pch_state): Prototype.
9411         (cpp_write_pch): Delete prototype.
9412         (cpp_prepare_state): Prototype.
9413         (cpp_read_state): Add fourth argument.
9414
9415         2002-11-04  Geoffrey Keating  <geoffk@apple.com>
9416
9417         * gengtype.c (adjust_field_rtx_def): Don't use skip on valid fields.
9418         (write_array): Remove warning.
9419
9420         * gengtype.c (contains_scalar_p): New.
9421         (finish_root_table): Add the table to all languages, even if it's
9422         empty.
9423         (write_roots): Output gt_pch_scalar_rtab.
9424         * ggc-common.c (gt_pch_save): Write out scalars.
9425         (gt_pch_restore): Read scalars back.
9426
9427         * ggc-page.c (OBJECTS_IN_PAGE): New macro.
9428         (struct page_entry): Delete pch_page field.
9429         (ggc_recalculate_in_use_p): Use OBJECTS_IN_PAGE.
9430         (clear_marks): Likewise.
9431         (sweep_pages): Likewise.
9432         (poison_pages): Likewise.
9433         (ggc_print_statistics): Likewise.
9434         (ggc_pch_read): Don't free objects read from a PCH.
9435         Properly set up in_use_p and page_tails.
9436
9437         2002-10-25  Geoffrey Keating  <geoffk@apple.com>
9438
9439         * gengtype.c (struct write_types_data): New.
9440         (struct walk_type_data): Make `cookie' const; add extra
9441         prev_val item; add `orig_s' field.
9442         (walk_type): Update prev_val[3].
9443         (write_types_process_field): New.
9444         (write_func_for_structure): Take write_types_data structure.
9445         (write_types): New.
9446         (ggc_wtd): New.
9447         (pch_wtd): New.
9448         (write_types_local_process_field): New.
9449         (gc_mark_process_field): Delete.
9450         (write_local_func_for_structure): New.
9451         (gc_mark_func_name): Delete.
9452         (write_gc_types): Delete.
9453         (write_local): New.
9454         (finish_root_table): Don't include 'ggc_' in PFX.
9455         (write_root): Rename from write_root.  Fill pchw field of structures.
9456         (write_array): New.
9457         (write_roots): Rename from write_gc_roots.  Split out to write_array.
9458         Update to changes to other routines.  Write gt_pch_cache_rtab table.
9459         (main): Write PCH walking routines.
9460         * ggc-common.c: Include toplev.h, sys/mman.h.
9461         (ggc_mark_roots): For cache hashtables, also mark the hash table
9462         and the array of entries.
9463         (saving_htab): New.
9464         (struct ptr_data): New.
9465         (POINTER_HASH): New.
9466         (gt_pch_note_object): New.
9467         (saving_htab_hash): New.
9468         (saving_htab_eq): New.
9469         (struct traversal_state): New.
9470         (call_count): New.
9471         (call_alloc): New.
9472         (compare_ptr_data): New.
9473         (relocate_ptrs): New.
9474         (write_pch_globals): New.
9475         (struct mmap_info): New.
9476         (gt_pch_save): New.
9477         (gt_pch_restore): New.
9478         * ggc-page.c (ROUND_UP_VALUE): New.
9479         (ROUND_UP): New.
9480         (struct page_entry): Add field `pch_page'.
9481         (init_ggc): Use ROUND_UP.
9482         (struct ggc_pch_data): Declare.
9483         (init_ggc_pch): New.
9484         (ggc_pch_count_object): New.
9485         (ggc_pch_total_size): New.
9486         (ggc_pch_this_base): New.
9487         (ggc_pch_alloc_object): New.
9488         (ggc_pch_prepare_write): New.
9489         (ggc_pch_write_object): New.
9490         (ggc_pch_finish): New.
9491         (ggc_pch_read): New.
9492         * ggc.h (gt_pointer_operator): New.
9493         (gt_note_pointers): New.
9494         (gt_pch_note_object): New prototype.
9495         (gt_pointer_walker): New.
9496         (struct ggc_root_tab): Use gt_pointer_walker, add `pchw' field.
9497         (LAST_GGC_ROOT_TAB): Update.
9498         (gt_pch_cache_rtab): Declare.
9499         (gt_pch_scalar_rtab): Declare.
9500         (struct ggc_cache_tab): Use gt_pointer_walker, add `pchw' field.
9501         (LAST_GGC_CACHE_TAB): Update.
9502         (gt_pch_save_stringpool): Declare.
9503         (gt_pch_restore_stringpool): Declare.
9504         (gt_pch_p_S): Declare.
9505         (gt_pch_n_S): Declare.
9506         (struct ggc_pch_data): Forward-declare.
9507         (init_ggc_pch): Declare.
9508         (ggc_pch_count_object): Declare.
9509         (ggc_pch_total_size): Declare.
9510         (ggc_pch_this_base): Declare.
9511         (ggc_pch_alloc_object): Declare.
9512         (ggc_pch_prepare_write): Declare.
9513         (ggc_pch_write_object): Declare.
9514         (ggc_pch_finish): Declare.
9515         (ggc_pch_read): Declare.
9516         (gt_pch_save): Declare.
9517         (gt_pch_restore): Declare.
9518         * fold-const.c (size_int_type_wide): Allocate size_htab using GGC.
9519         * emit-rtl.c (init_emit_once): Allocate const_int_htab,
9520         const_double_htab, mem_attrs_htab using GGC.
9521         * c-pch.c: Include ggc.h.
9522         (pch_init): Allow reading PCH file back.
9523         (c_common_write_pch): Call gt_pch_save.
9524         (c_common_read_pch): Call gt_pch_restore.
9525         * c-parse.in (init_reswords): Delete now-untrue comment.
9526         Allocate ridpointers using GGC.
9527         * c-objc-common.c (c_objc_common_finish_file): Write PCH before
9528         calling expand_deferred_fns.
9529         * c-common.h (ridpointers): Mark for GTY machinery.
9530         * Makefile.in (stringpool.o): Update dependencies.
9531         (c-pch.o): Update dependencies.
9532         (ggc-common.o): Update dependencies.
9533         * stringpool.c: Include gt-stringpool.h.
9534         (gt_pch_p_S): New.
9535         (gt_pch_n_S): New.
9536         (struct string_pool_data): New.
9537         (spd): New.
9538         (gt_pch_save_stringpool): New.
9539         (gt_pch_restore_stringpool): New.
9540         * tree.c (init_ttree): Make type_hash_table allocated using GC.
9541
9542         2002-10-04  Geoffrey Keating  <geoffk@apple.com>
9543
9544         * gengtype.c (adjust_field_rtx_def): Don't pass size_t to printf.
9545         (output_mangled_typename): Don't pass size_t to printf.
9546
9547         * tree.h (union tree_type_symtab): Add tag to `address' field.
9548         (union tree_decl_u2): Add tag to 'i' field.
9549         * varasm.c (union rtx_const_un): Add tags to all fields.
9550         * gengtype.c (struct walk_type_data): New.
9551         (output_escaped_param): Take struct walk_type_data parameter.
9552         (write_gc_structure_fields): Delete.
9553         (walk_type): New.
9554         (write_gc_marker_routine_for_structure): Delete.
9555         (write_func_for_structure): New.
9556         (gc_mark_process_field): New.
9557         (gc_mark_func_name): New.
9558         (gc_counter): Delete.
9559         (write_gc_types): Use write_func_for_structure.
9560         (write_gc_roots): Use walk_type.
9561
9562         2002-10-02  Geoffrey Keating  <geoffk@apple.com>
9563
9564         * ggc-common.c (ggc_mark_roots): Delete 'x'.
9565         (ggc_splay_dont_free): Fix warning about unused 'x'.
9566         (ggc_print_common_statistics): Remove warnings.
9567
9568         2002-10-01  Mike Stump  <mrs@apple.com>
9569
9570         * ggc-common.c (ggc_splay_alloc): Actually return the allocated area.
9571         * gengtype.c (write_gc_structure_fields): Handle param[digit]_is.
9572
9573         2002-09-01  Geoffrey Keating  <geoffk@redhat.com>
9574             Catherine Moore  <clm@redhat.com>
9575
9576         * Makefile (c-pch.o): Update dependencies.
9577         (LIBCPP_OBJS): Add cpppch.o.
9578         (cpppch.o): New.
9579         * c-common.c (c_common_init): Don't call pch_init here.
9580         * c-common.h (c_common_read_pch): Update prototype.
9581         * c-lex.c (c_common_parse_file): Call pch_init here.
9582         * c-opts.c (COMMAND_LINE_OPTIONS): Add -Winvalid-pch, -fpch-deps.
9583         (c_common_decode_option): Handle them.
9584         * c-pch.c: Include c-pragma.h.
9585         (save_asm_offset): Delete.
9586         (pch_init): Move contents of save_asm_offset into here, call
9587         cpp_save_state.
9588         (c_common_write_pch): Call cpp_write_pch.
9589         (c_common_valid_pch): Warn only when -Winvalid-pch.  Call
9590         cpp_valid_state.
9591         (c_common_read_pch): Add NAME parameter.  Call cpp_read_state.
9592         * cppfiles.c (stack_include_file): Update for change to
9593         parameters of cb.read_pch.
9594         * cpphash.h (struct cpp_reader): Add `savedstate' field.
9595         * cpplib.h (struct cpp_options): Add `warn_invalid_pch' and
9596         `restore_pch_deps' fields.
9597         (struct cpp_callbacks): Add NAME parameter to `read_pch'.
9598         (cpp_save_state): Prototype.
9599         (cpp_write_pch): Prototype.
9600         (cpp_valid_state): Prototype.
9601         (cpp_read_state): Prototype.
9602         * cpppch.c: New file.
9603         * flags.h (version_flag): Remove prototype.
9604         * mkdeps.c (deps_save): New.
9605         (deps_restore): New.
9606         * mkdeps.h (deps_save): Prototype.
9607         (deps_restore): Prototype.
9608         * toplev.c (late_init_hook): Delete.
9609         (version_flag): Make static again.
9610         (compile_file): Don't call late_init_hook.
9611         * toplev.h (late_init_hook): Delete.
9612         * doc/cppopts.texi: Document -fpch-deps.
9613         * doc/invoke.texi (Warning Options): Document -Winvalid-pch.
9614
9615         2002-08-27  Geoffrey Keating  <geoffk@redhat.com>
9616
9617         * c-pch.c (c_common_write_pch): Rename from c_write_pch, change
9618         callers.
9619         (c_common_valid_pch): Rename from c_valid_pch, change callers.
9620         (c_common_read_pch): Rename from c_read_pch, change callers.
9621
9622         * c-opts.c (COMMAND_LINE_OPTIONS): Allow -output-pch= to have
9623         a space between it and its argument.
9624
9625         2002-08-24  Geoffrey Keating  <geoffk@redhat.com>
9626
9627         * c-pch.c: New file.
9628         * toplev.h (late_init_hook): Declare.
9629         * toplev.c (late_init_hook): Define.
9630         (version_flag): Make globally visible.
9631         (compile_file): Call late_init_hook.
9632         (init_asm_output): Make output file seekable.
9633         * gcc.c (default_compilers): Update c-header rule.
9634         * flags.h (version_flag): Declare.
9635         * cpplib.h (struct cpp_callbacks): Add 'valid_pch' and 'read_pch'
9636         fields.
9637         * cppfiles.c (struct include_file): Add 'pch' field.
9638         (INCLUDE_PCH_P): New.
9639         (open_file_pch): New.
9640         (stack_include_file): Handle PCH files specially.
9641         (find_include_file): Call open_file_pch instead of open_file.
9642         (_cpp_read_file): Explain why open_file is used instead of
9643         open_file_pch.
9644         * c-opts.c (c_common_decode_option): Correct OPT__output_pch case.
9645         * c-objc-common.c (c_objc_common_finish_file): Call c_write_pch.
9646         * c-lex.c (init_c_lex): Set valid_pch and read_pch fields
9647         in cpplib callbacks.
9648         * c-common.c (pch_file): Correct comment.
9649         (allow_pch): Define.
9650         (c_common_init): Call pch_init.
9651         * c-common.h (allow_pch): Declare.
9652         (pch_init): Declare.
9653         (c_valid_pch): Declare.
9654         (c_read_pch): Declare.
9655         (c_write_pch): Declare.
9656         * Makefile.in (c-pch.o): New.
9657         (C_AND_OBJC_OBJS): Add c-pch.o.
9658         * doc/invoke.texi (Precompiled Headers): Add index entries,
9659         complete truncated paragraph.
9660
9661         2002-08-17  Geoffrey Keating  <geoffk@redhat.com>
9662
9663         * c-common.c: (pch_file): Define.
9664         * c-common.h (pch_file): Declare.
9665         * c-opts.c (COMMAND_LINE_OPTIONS): Add --output-pch=.
9666         (missing_arg): Require --output-pch= to have an argument.
9667         (c_common_decode_option): Handle --output-pch=.
9668         * gcc.c: Document new %V.
9669         (default_compilers): Handle compiling C header files.
9670         (do_spec_1): Implement %V.
9671         (main): Handle "gcc foo.h" without trying to run linker.
9672         * doc/invoke.texi (Invoking GCC): Add new menu item for PCH.
9673         (Overall Options): Document what the driver does with header files,
9674         document new -x option possibilities.
9675         (Invoking G++): More documentation for PCH.
9676         (Precompiled Headers): New.
9677
9678         2002-08-09  Geoffrey Keating  <geoffk@redhat.com>
9679
9680         * ggc.h: Don't include varray.h.  Rearrange functions to be more
9681         organized.
9682         (ggc_add_root): Delete.
9683         (ggc_mark_rtx): Delete.
9684         (ggc_mark_tree): Delete.
9685         (struct ggc_statistics): Remove contents.
9686         * ggc-common.c: Remove unneeded includes.
9687         (struct ggc_root): Delete.
9688         (roots): Delete.
9689         (ggc_add_root): Delete.
9690         (ggc_mark_roots): Don't mark `roots'.  Call ggc_mark_stringpool.
9691         (ggc_print_common_statistics): Remove most of the contents.
9692         * Makefile.in (GGC_H): No longer uses varray.h.
9693         (ggc-common.o): Update dependencies.
9694         (c-parse.o): Add varray.h to dependencies.
9695         (c-common.o): Add varray.h.
9696         * stringpool.c (mark_ident): Use mangled name for tree marker routine.
9697         (mark_ident_hash): Rename to ggc_mark_stringpool.
9698         (init_stringpool): Don't use ggc_add_root.
9699         * c-parse.in: Include varray.h.
9700         * c-common.c: Include varray.h.
9701         * objc/Make-lang.in (objc-act.o): Add varray.h.
9702         * objc/objc-act.c: Include varray.h.
9703
9704         2002-07-25  Geoffrey Keating  <geoffk@redhat.com>
9705
9706         * dwarf2out.c (dw_cfi_oprnd2_desc): Fix ISO-only function definition.
9707         (dw_cfi_oprnd1_desc): Likewise.
9708
9709         2002-07-17  Geoffrey Keating  <geoffk@redhat.com>
9710
9711         * config/alpha/alpha.c (struct alpha_links): Use gengtype to mark;
9712         move out of ifdef.
9713         (alpha_links): Use gengtype to mark; move out of ifdef.
9714         (mark_alpha_links_node): Delete.
9715         (mark_alpha_links): Delete.
9716         (alpha_need_linkage): Use GGC to allocate splay tree, struct
9717         alpha_links, strings.  Don't use ggc_add_root.
9718         * ggc-common.c (ggc_splay_alloc): New.
9719         (ggc_splay_dont_free): New.
9720         * ggc.h (ggc_mark_rtx): Update for changed name mangling.
9721         (ggc_mark_tree): Likewise.
9722         (splay_tree_new_ggc): New.
9723         (ggc_splay_alloc): Declare.
9724         (ggc_splay_dont_free): Declare.
9725         * dwarf2asm.c: Include gt-dwarf2asm.h.
9726         (mark_indirect_pool_entry): Delete.
9727         (mark_indirect_pool): Delete.
9728         (indirect_pool): Use gengtype to mark.
9729         (dw2_force_const_mem): Don't use ggc_add_root.
9730         * Makefile.in (dwarf2asm.o): Depend on gt-dwarf2asm.h.
9731         (GTFILES): Add SPLAY_TREE_H, dwarf2asm.c.
9732         (gt-dwarf2asm.h): Depend on s-gtype.
9733
9734         2002-07-08  Geoffrey Keating  <geoffk@redhat.com>
9735
9736         * tree.h (union tree_type_symtab): Mark `die' field.
9737         * Makefile.in (dwarf2out.o): Update dependencies.
9738         * dwarf2out.c: Use GGC to allocate all structures.  Convert to htab_t
9739         hash tables.
9740         (dw_cfi_oprnd1_desc): New function.
9741         (dw_cfi_oprnd2_desc): New function.
9742         (indirect_string_alloc): Delete.
9743         (debug_str_do_hash): New function.
9744         (debug_str_eq): New function.
9745         (mark_limbo_die_list): Delete.
9746         (dwarf2out_init): Don't call ggc_add_root.
9747
9748 2003-01-09  Vladimir Makarov  <vmakarov@redhat.com>
9749
9750         The following changes are merged from itanium-sched-branch:
9751
9752         2003-01-08  David Edelsohn  <edelsohn@gnu.org>
9753
9754         * doc/md.texi: Clarify assignment of units to automata description.
9755
9756         2003-01-08  Vladimir Makarov  <vmakarov@redhat.com>
9757
9758         * genautomata.c (unit_decl): Remove members
9759         `the_same_automaton_unit' and
9760         `the_same_automaton_message_reported_p'.
9761         (process_unit_to_form_the_same_automaton_unit_lists,
9762         form_the_same_automaton_unit_lists_from_regexp,
9763         form_the_same_automaton_unit_lists, the_same_automaton_lists):
9764         Remove them.
9765         (annotation_message_reported_p): New global variable.
9766         (check_unit_distribution_in_reserv,
9767         check_regexp_units_distribution): New functions.
9768         (check_unit_distributions_to_automata): Rewrite it.
9769
9770         2003-01-04  Vladimir Makarov  <vmakarov@redhat.com>
9771
9772         * genautomata.c (form_the_same_automaton_unit_lists_from_regexp):
9773         Use continue instead of break if cycle is too big.
9774
9775         2002-12-20  Vladimir Makarov  <vmakarov@redhat.com>
9776
9777         * genautomata.c (check_unit_distributions_to_automata): Output at
9778         most one message for a unit.
9779         (process_unit_to_form_the_same_automaton_unit_lists): Check
9780         automaton of units instead of units themself.
9781
9782         * doc/md.texi: Describe the constraint about assigning unit to
9783         automata.
9784
9785         2002-12-20  Jan Hubicka  <jH@suse.cz>
9786                     Vladimir Makarov  <vmakarov@redhat.com>
9787
9788         * genautomata.c (unit_decl): Add new members `min_occ_cycle_num'
9789         and `in_set_p'.
9790         (gen_cpu_unit): Initialize the new members.
9791         (process_regexp_cycles): Calculate minimal finish cycle too.  Set
9792         up `min_occ_cycle_num'.
9793         (evaluate_max_reserv_cycles): Change the function call.
9794         (CLEAR_BIT): New macro.
9795         (states_union, state_shift): Use the mask.
9796         (initiate_excl_sets, form_reserv_sets_list): Set up `in_set_p'.
9797         (form_reservs_matter): New function.
9798         (make_automaton): Call the function and use the mask.
9799         (estimate_one_automaton_bound): Take `min_occ_cycle_num' into
9800         account.
9801
9802         2002-12-17  Vladimir Makarov  <vmakarov@redhat.com>
9803
9804         * config/ia64/itanium2.md (lfetch): Change the insn reservation.
9805
9806         2002-12-17  Vladimir Makarov  <vmakarov@redhat.com>
9807
9808         * config/ia64/ia64.c (bundling): Try to insert 2 nops for M insn
9809         for Itanium.
9810
9811         2002-12-17  Vladimir Makarov  <vmakarov@redhat.com>
9812
9813         * config/ia64/ia64.c (ia64_override_options): Make itanium2 as
9814         default cpu.
9815
9816         2002-12-17  Vladimir Makarov  <vmakarov@redhat.com>
9817                 2002-10-31  Dale Johannesen <dalej@apple.com>
9818
9819         * haifa-sched.c (find_set_reg_weight): New function.
9820         (find_insn_reg_weight): Use the new function.
9821         (schedule_block): Do sorting ready queue always
9822         after insn issue.
9823
9824         2002-11-27  Vladimir Makarov  <vmakarov@redhat.com>
9825
9826         * config/ia64/ia64.c (bundling): Use MFI template instead of MLX.
9827
9828         2002-11-19  Vladimir Makarov  <vmakarov@redhat.com>
9829
9830         * haifa-sched.c (choice_entry): New structure.
9831         (choice_stack, cycle_issued_insns): New variables.
9832         (max_issue): Rewrite it.
9833         (choose_ready): Set up ready_try for unknown insns too.
9834         (schedule_block): Allocate and free choice_stack.  Set up
9835         and modify cycle_issued_insns.
9836
9837         * config/ia64/ia64.c (issue_nops_and_insn): Combine insn issue
9838         with and without filling the bundle.
9839         (bundling): Combine calls of issue_nops_and_insn.
9840
9841         2002-10-17  Vladimir Makarov  <vmakarov@redhat.com>
9842
9843         * config/ia64/itanium1.md: New file.
9844
9845         * config/ia64/itanium2.md: New file.
9846
9847         * config/ia64/ia64.md: Move DFA descriptions into the new files.
9848         Remove the old pipeline description.
9849
9850         * config/ia64/ia64.c (ia64_override_options): Add aliases of
9851         itanium processor names.
9852
9853         2002-10-16  Vladimir Makarov  <vmakarov@redhat.com>
9854
9855         * config/ia64/ia64.c (bundling): Print states for Itanium2 too.
9856         (ia64_reorg):  Set up queried unit codes for Itanium2 too.
9857
9858         * config/ia64/ia64.md: Add descriptions for Itanium2.
9859
9860         2002-10-08  Vladimir Makarov  <vmakarov@redhat.com>
9861
9862         * config/ia64/ia64.h (processor_type): New enumeration.
9863         (ia64_tune, ia64_tune_string): New external declarations.
9864         (TARGET_OPTIONS): Add option `tune='.
9865
9866         * config/ia64/ia64.c (ia64_tune, ia64_tune_string): New global
9867         variables.
9868         (ia64_override_options): Set up `ia64_tune'.
9869         (ia64_sched_reorder2): Set up `clocks' only for Itanium.
9870         (ia64_dfa_new_cycle): Set up `add_cycles' only for Itanium.
9871         (bundling): Add nops for MM-insns only for Itanium.
9872         (ia64_reorg): Allocate and free `clocks' and `add_cycles' only for
9873         Itanium.
9874
9875         * config/ia64/ia64.md (cpu): New attribute.
9876         (DFA description): Enable it only for Itanium.
9877
9878         2002-10-08  Vladimir Makarov  <vmakarov@redhat.com>
9879                     Richard Henderson  <rth@redhat.com>
9880
9881         * config/ia64/ia64.h (MASK_TUNE_STOP_BITS): Rename it to
9882         MASK_EARLY_STOP_BITS.
9883         (TARGET_TUNE_STOP_BITS): Rename it to TARGET_EARLY_STOP_BITS.
9884         (TARGET_SWITCHES): Rename option `tune-stop-bits' to
9885         `early-stop-bits'.
9886
9887         * config/ia64/ia64.c (ia64_dfa_new_cycle,
9888         final_emit_insn_group_barriers): Use TARGET_EARLY_STOP_BITS
9889         instead of TARGET_TUNE_STOP_BITS.
9890
9891         * doc/invoke.texi: Rename option `-mtune-stop-bits' to
9892         `-mearly-stop-bits'.
9893
9894         * config/ia64/ia64.c (automata_option "v"): Comment it.
9895
9896         2002-10-07  Vladimir Makarov  <vmakarov@redhat.com>
9897
9898         * config/ia64/ia64.h (MASK_TUNE_STOP_BITS, TARGET_TUNE_STOP_BITS):
9899         New macros.
9900         (TARGET_SWITCHES): Add entries for the new option.
9901
9902         * config/ia64/ia64.c (dfa_stop_insn, last_scheduled_insn, rtx
9903         dfa_pre_cycle_insn, ia64_nop): Don't make them as roots for GC.
9904         (stops_p, stop_before_p, clocks_length, clocks, add_cycles): New
9905         global variables.
9906         (ia64_sched_reorder2): Set up `clocks'.
9907         (ia64_variable_issue): Set up `stops_p' and reset `stop_before_p'.
9908         (ia64_dfa_new_cycle): Set up add_cycle.  Permit sorting ready
9909         queue when TARGET_TUNE_STOP_BITS.
9910         (bundling): Insert additional nops for MM-insns.
9911         (final_emit_insn_group_barriers): Add insertion of stop bits
9912         according `stops_p'.
9913         (ia64_reorg): Initiate the new varibales.
9914
9915         * doc/invoke.texi: Add description of option `-mtune-stop-bits'.
9916
9917         2002-10-02  Vladimir Makarov  <vmakarov@redhat.com>
9918
9919         * haifa-sched.c (schedule_block): Modify INSN_TICK of depended
9920         insns at the end of block insn scheduling.
9921
9922         2002-09-30  Vladimir Makarov  <vmakarov@redhat.com>
9923
9924         * sched-deps.c (remove_dependence, group_leader): Remove it.
9925         (add_dependence): Add dependence to group leader to.
9926         (set_sched_group_p): Add dependence to the first insn of the
9927         schedule group too.
9928         (sched_analyze_insn): Make dependence to jump as anti-dependence.
9929         Change true dependence by anti-dependence when
9930         `reg_pending_barrier'.
9931
9932         * sched-rgn.c (init_ready_list, can_schedule_ready_p,
9933         add_branch_dependences): Ignore schedule groups.
9934
9935         * sched-ebb.c (init_ready_list): Ditto.
9936
9937         * (move_insn, set_priorities): Ditto.
9938
9939         * config/ia64/ia64.c (ia64_sched_init): Check that schedule group
9940         flag is clear after reload.
9941         (adjust_cost): Change cost only for output dependencies.
9942
9943         * config/ia64/ia64.md: Add more insns into bypass for MM-insns.
9944
9945         2002-09-26  Vladimir Makarov  <vmakarov@redhat.com>
9946
9947         * Makefile.in (sched-ebb.o): Add `$(TARGET_H)' to the entry.
9948
9949         * target.h (gcc_target): Add member
9950         `dependencies_evaluation_hook'.
9951
9952         * target-def.h (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New
9953         macro.
9954         (TARGET_SCHED): Add initiatialization of the new member.
9955
9956         * sched-ebb.c: Include `target.h'.
9957         (schedule_ebb): Call `dependencies_evaluation_hook'.
9958
9959         * sched-rgn.c (schedule_region): Call
9960         `dependencies_evaluation_hook'.
9961
9962         * config/ia64/ia64.c (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK):
9963         New macro.
9964         (ia64_dependencies_evaluation_hook): New function.
9965
9966         * doc/tm.texi (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK):
9967         Describe the new hook.
9968
9969         2002-09-25  Vladimir Makarov  <vmakarov@redhat.com>
9970
9971         * target.h (gcc_target): Add members
9972         `first_cycle_multipass_dfa_lookahead_guard' and `dfa_new_cycle'.
9973
9974         * target-def.h (TARGET_SCHED_DFA_NEW_CYCLE,
9975         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): New
9976         macros.
9977         (TARGET_SCHED): Add initiatialization of the new members.
9978
9979         * haifa-sched.c (schedule_insn): Update last_clock_var for the 1st
9980         insn scheduling too.
9981         (choose_ready): Use `first_cycle_multipass_dfa_lookahead_guard' to
9982         initialize `ready_try'.
9983         (schedule_block): Use `dfa_new_cycle'.  Sort `ready' only unless
9984         `dfa_new_cycle' says not to do it.
9985
9986         * config/ia64/ia64.md: Add DFA Itanium 1 description for insn
9987         bundling.
9988
9989         * config/ia64/ia64.h (CPU_UNITS_QUERY): New macro.
9990
9991         * config/ia64/ia64.c: Include `hashtab.h'.
9992         (ia64_first_cycle_multipass_dfa_lookahead_guard,
9993         ia64_dfa_new_cycle, final_emit_insn_group_barriers,
9994         ia64_dfa_sched_reorder, get_free_bundle_state, free_bundle_state,
9995         initiate_bundle_states, finish_bundle_states, bundle_state_hash,
9996         bundle_state_eq_p, insert_bundle_state,
9997         initiate_bundle_state_table, finish_bundle_state_table,
9998         try_issue_nops, try_issue_insn, issue_nops_and_insn, get_max_pos,
9999         get_template, get_next_important_insn, bundling): New functions.
10000         (ia64_internal_sched_reorder): Remove it.
10001         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD,
10002         TARGET_SCHED_DFA_NEW_CYCLE): New macros.
10003         (ia64_safe_itanium_requires_unit0): Remove it.
10004         (group_barrier_needed_p): Place group barrier right before a real
10005         insn.
10006         (bundle, ia64_packet, NR_PACKETS, type_names, packets, packets):
10007         Remove them.
10008         (bundle_name): New variable.
10009         (_0mii_, _0mmi_, _0mfi_, _0mmf_, _0bbb_, _0mbb_, _0mib_, _0mmb_,
10010         _0mfb_, _0mlx_, _1mii_, _1mmi_, _1mfi_, _1mmf_, _1bbb_, _1mbb_,
10011         _1mib_, _1mmb_, _1mfb_, _1mlx_, pos_1, pos_2, pos_3, pos_4, pos_5,
10012         pos_6, dfa_stop_insn, last_scheduled_insn, dfa_state_size,
10013         temp_dfa_state, prev_cycle_state): New global variables.
10014         (insn_matches_slot, maybe_rotate, finish_last_head,
10015         rotate_one_bundle, rotate_one_bundles, nop_cycles_until,
10016         cycle_end_fill_slots, packet_matches_p, get_split, find_best_insn,
10017         find_best_packet, itanium_reorder, dump_current_packet,
10018         schedule_stop, gen_nop_type, ia64_emit_nops): Remove them.
10019         (sched_data, sched_ready, sched_types): Remove them.
10020         (ia64_sched_init): Initiate only `last_scheduled_insn' and call
10021         `init_insn_group_barriers'.
10022         (ia64_sched_reorder, ia64_sched_reorder2): Call
10023         ia64_dfa_sched_reorder.
10024         (ia64_variable_issue): Rewrite it.
10025         (bundle_state): New structure.
10026         (index_to_bundle_states, bundle_states_num,
10027         allocated_bundle_states_chain, free_bundle_state_chain): New
10028         global variables.
10029         (ia64_sched_finish): Add stop bits and call `bundling' after the
10030         2nd insn scheduling.
10031         (ia64_use_dfa_pipeline_interface): Return zero always.
10032         (ia64_first_cycle_multipass_dfa_lookahead): Return 6 for the 2nd
10033         insn scheduling.
10034         (ia64_init_dfa_pre_cycle_insn): Initialize `dfa_state_size',
10035         `temp_dfa_state', `prev_cycle_state', and `dfa_stop_insn'.
10036         (ia64_reorg): Add bundling insns.
10037
10038         * doc/tm.texi
10039         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD,
10040         TARGET_SCHED_DFA_NEW_CYCLE): Describe the new hooks.
10041
10042         2002-09-23  Vladimir Makarov  <vmakarov@redhat.com>
10043
10044         * config/ia64/ia64.md: Add Itanium1 DFA description.
10045         (itanium_class): Add `nop' and `pre_cycle'.  Add
10046         define_function_unit for `nop'.
10047         (nop): Change attribute `itanium_class'.
10048         (pre_cycle): New define_insn.
10049
10050         * config/ia64/ia64-protos.h (bundling_p): New external variable.
10051         (ia64_st_address_bypass_p, ia64_ld_address_bypass_p,
10052         ia64_produce_address_p): New function prototypes.
10053
10054         * config/ia64/ia64.c (bundling_p): New global variable.
10055         (ia64_use_dfa_pipeline_interface,
10056         ia64_first_cycle_multipass_dfa_lookahead,
10057         ia64_init_dfa_pre_cycle_insn, ia64_dfa_pre_cycle_insn): New
10058         functions.
10059         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE,
10060         TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD,
10061         TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN,
10062         TARGET_SCHED_DFA_PRE_CYCLE_INSN): New macros.
10063         (ia64_sched_init, ia64_sched_reorder, ia64_sched_reorder2,
10064         ia64_variable_issue, ia64_sched_finish): Do nothing before reload.
10065         (dfa_pre_cycle_insn): New variable.
10066
10067         2002-09-20  Vladimir Makarov  <vmakarov@redhat.com>
10068
10069         * rtl.def (FINAL_PRESENCE_SET, FINAL_ABSENCE_SET): New
10070         constructions.
10071
10072         * genattrtab.h (gen_final_presence_set, gen_final_absence_set):
10073         New function prototypes.
10074
10075         * genattrtab.c (main): Process the new constructions.
10076
10077         * genautomata.c (gen_presence_absence_set,
10078         process_presence_absence_names, process_presence_absence_patterns,
10079         add_presence_absence, check_absence_pattern_sets): Add parameter
10080         `final_p'.
10081         (unit_decl): Add new members `final_presence_list' and
10082         `final_absence_list'.
10083         (unit_pattern_rel_decl): Add new member `final_p'.
10084         (gen_final_presence_set, gen_final_absence_set): New functions.
10085         (process_decls): Use member `final_p'.
10086         (temp_reserv): New global variable.
10087         (reserv_sets_are_intersected): Add processing `final_presence_set'
10088         and `final_absence_set'.
10089         (initiate_states): Allocate `temp_reserv'.
10090         (unit_final_presence_set_table, unit_final_absence_set_table): New
10091         gloabal variables.
10092         (initiate_presence_absence_pattern_sets): Initiate them.
10093         (NDFA_to_DFA): Fix typo.
10094         (output_description): Output `final_presence_set' and
10095         `final_absence_set'.
10096
10097         * doc/md.texi (final_presence_set, final_absence_set): Describe
10098         them.
10099
10100         2002-09-20  Vladimir Makarov  <vmakarov@redhat.com>
10101
10102         * genautomata.c (transform_3): Process a missing case (nothing on
10103         unit place).
10104
10105         2002-09-20  Vladimir Makarov  <vmakarov@redhat.com>
10106
10107         * rtl.def (DEFINE_QUERY_CPU_UNIT, AUTOMATA_OPTION): Change
10108         comments about queried units and the minimization.
10109
10110         * doc/md.texi: Ditto.
10111
10112         * genautomata.c (create_composed_state): Return nonzero if the new
10113         state has been created.
10114         (first_cycle_unit_presence): New function.
10115         (state_is_differed): Add new parameter.  Use the new function.
10116         Take queried units into account.
10117         (partition_equiv_class): Pass additional parameter to
10118         `state_is_differed'.
10119         (merge_states): Process composed states too.
10120         (build_automaton, create_automata, output_min_issue_delay_table,
10121         output_tables, output_statistics): Output more information.
10122         (output_reserved_units_table): Use function
10123         `first_cycle_unit_presence'.
10124         (output_tables): Output table of queried units even if the
10125         minimization is switched on.
10126         (write_automata): Output code for querying units even if the
10127         minimization is switched on.
10128
10129         2002-09-19  Vladimir Makarov  <vmakarov@redhat.com>
10130
10131         * rtl.def (PRESENCE_SET, ABSENCE_SET): Add comments about extended
10132         syntax of the constructions.
10133
10134         * doc/md.texi (PRESENCE_SET, ABSENCE_SET): Add description of
10135         extended syntax of the constructions.
10136
10137         * genautomata.c (unit_rel_decl): Rename it to
10138         `unit_pattern_rel_decl'.
10139         (pattern_set_el, pattern_reserv): New structures.
10140         (pattern_set_el_t, pattern_reserv_t): New types.
10141         (gen_presence_absence_set): New function.
10142         (process_presence_absence): Remove it.
10143         (process_presence_absence_names,
10144         process_presence_absence_patterns): New functions.
10145         (get_presence_absence_set): Remove it.
10146         (initiate_presence_absence_sets): Rename it on
10147         `initiate_presence_absence_pattern_sets'.  Use new function
10148         `form_reserv_sets_list'.
10149         (form_reserv_sets_list, check_presence_pattern_sets,
10150         check_absence_pattern_sets, output_pattern_set_el_list): New
10151         functions.
10152         (unit_decl): Change types of members `presence_list' and
10153         `absence_list'.
10154         (unit_rel_decl): Rename member `names_num' to `all_names_num'.
10155         (decl): Change types of members `excl', `presence', and `absence'.
10156         (get_str_vect): Rename `par_flag' to `paren_p'.  Add null element
10157         at the end of the vector.
10158         (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set,
10159         gen_automaton, gen_regexp_repeat, gen_regexp_allof,
10160         gen_regexp_oneof, gen_regexp_sequence): Use boolean values.
10161         (gen_presence_set, gen_absence_set): Use new function
10162         `gen_presence_absence_set'.
10163         (add_presence_absence): Process `pattern_list' instead of
10164         `source_list'.
10165         (process_decls): USe new functions
10166         `process_presence_absence_names' and
10167         `process_presence_absence_patterns'.
10168         (reserv_sets_are_intersected): Use new function
10169         `check_presence_pattern_sets'.
10170         (presence_set, absence_set): Remove them.
10171         (unit_presence_set_table, unit_absence_set_table): New global
10172         variables.
10173         (output_description): Use new function
10174         `output_pattern_set_el_list'.
10175         (generate): Use `initiate_presence_absence_pattern_sets'.
10176
10177         2002-09-18  Vladimir Makarov  <vmakarov@redhat.com>
10178
10179         * genattr.c (main): Add output of prototype of new interface
10180         function `dfa_clean_insn_cache'.
10181
10182         * genautomata.c (output_dfa_clean_insn_cache_func): New function.
10183         (DFA_CLEAN_INSN_CACHE_FUNC_NAME): New macro.
10184         (output_dfa_start_func): Use function `dfa_clean_insn_cache' in
10185         the generated code.
10186         (write_automata): Call the new function.
10187
10188 2003-01-09  Jan Hubicka  <jh@suse.cz>
10189
10190         * i386.md (unit, prefix_0f, memory attributes): Hanlde sseicvt
10191         correctly.
10192
10193 2003-01-09  Paolo Carlini  <pcarlini@unitus.it>
10194
10195         * doc/tm.texi (EXTRA_ADDRESS_CONSTRAINT): Fix typo.
10196
10197 2003-01-09  J"orn Rennecke <joern.rennecke@superh.com>
10198
10199         * defaults.h (EXTRA_MEMORY_CONSTRAINT): Add STR argument.
10200         (EXTRA_ADDRESS_CONSTRAINT): Likewise.
10201         (CONSTRAINT_LEN): Provide default definition.
10202         (CONST_OK_FOR_CONSTRAINT_P): Likewise.
10203         (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Likewise.
10204         (EXTRA_CONSTRAINT_STR): Likewise.
10205         (REG_CLASS_FROM_CONSTRAINT): Define.
10206         * genoutput.c (check_constraint_len, constraint_len): New functions.
10207         (validate_insn_alternatives): Check CONSTRAINT_LEN for each
10208         constraint / modifier.
10209         (gen_insn): Call check_constraint_len.
10210         * local-alloc.c (block_alloc): Update to use new macros / pass
10211         second argument to EXTRA_{MEMORY,ADDRESS}_CONSTRAINT.
10212         * ra-build.c (handle_asm_insn): Likewise.
10213         * recog.c (asm_operand_ok, preprocess_constraints): Likewise.
10214         (constrain_operands, peep2_find_free_register): Likewise.
10215         * regclass.c (record_operand_costs, record_reg_classes): Likewise.
10216         * regmove.c (find_matches): Likewise.
10217         * reload.c (push_secondary_reload, find_reloads): Likewise.
10218         (alternative_allows_memconst): Likewise.
10219         * reload1.c (maybe_fix_stack_asms): Likewise.
10220         (reload_cse_simplify_operands): Likewise.
10221         * stmt.c (parse_output_constraint, parse_input_constraint): Likewise.
10222         * doc/tm.texi (CONSTRAINT_LEN, REG_CLASS_FROM_CONSTRAINT): Document.
10223         (CONST_OK_FOR_CONSTRAINT_P): Likewise.
10224         (CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR): Likewise.
10225         (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Add STR argument.
10226         * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Likewise.
10227
10228         * sh.h (OVERRIDE_OPTIONS): Allow first scheduling pass for SH5.
10229
10230 2003-01-09  Kazu Hirata  <kazu@cs.umass.edu>
10231
10232         * config/h8300/h8300.md (*extzv_1_r_h8300): Correct the insn
10233         length.
10234         (*extzv_1_r_h8300hs): Likewise.
10235         (*extzv_1_r_inv_h8300): Likewise.
10236         (*extzv_1_r_inv_h8300hs): Likewise.
10237
10238 2003-01-09  Kazu Hirata  <kazu@cs.umass.edu>
10239
10240         * config/h8300/h8300.h (PREDICATE_CODES): New.
10241
10242 2003-01-09  Kazu Hirata  <kazu@cs.umass.edu>
10243
10244         * config/h8300/h8300.md (*addsi3_upper): New.
10245         (*iorsi3_shift): Likewise.
10246         (two splitters): Likewise.
10247         (*addsi3_shift): Likewise.
10248         (two splitters): Likewise.
10249
10250 2003-01-09  Josef Zlomek  <zlomj9am@artax.karlin.mff.cuni.cz>
10251
10252         * Makefile.in (optabs.o): Add dependency on basic-block.h.
10253         * basic-block.h (control_flow_insn_p): Fuction was exported.
10254         * cfgbuild.c (control_flow_insn_p): Fuction was made non-static.
10255         * optabs.c (emit_libcall_block): Emit REG_LIBCALL and REG_RETVAL
10256         notes only when the region is contained in a single basic block.
10257
10258 2003-01-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
10259
10260         PR inline-asm/8832
10261         * tree.h (expand_asm): New prototype.
10262         * stmt.c (expand_asm): Set the MEM_VOLATILE_P flag if instructed
10263         to do so.
10264         * c-semantics (genrtl_asm_stmt): Pass the RID_VOLATILE qualifier
10265         down to expand_asm.
10266         * c-typeck.c (simple_asm_stmt): Set the RID_VOLATILE qualifier.
10267         * rtlanal.c (volatile_insn_p) [ASM_INPUT]: Test the MEM_VOLATILE_P flag.
10268         (volatile_refs_p) [ASM_INPUT]: Likewise.
10269         (side_effects_p) [ASM_INPUT]: Likewise.
10270
10271 2003-01-09  Jan Hubicka  <jh@suse.cz>
10272
10273         * i386.md (*mul*): FIx constraints; remove confused comment; fix
10274         athlon_decode attributes
10275         (imul/k8 optimization peep2s): New.
10276
10277         * athlon.md (athlon_ssecmp*): Handle ssecomi as well.
10278         * i386.md (type attribute): Add ssecomi.
10279         (unit, memory, prefix attributes): Handle ssecomi.
10280         (cvt?2? patterns): Fix athlon_decode attribute
10281         (comi patterns): Set attribute to ssecomi.
10282
10283         PR target/8343
10284         * m68k.md (umulsidi, mulsidi expanders): Use register operand.
10285
10286 2003-01-09  Richard Sandiford  <rsandifo@redhat.com>
10287
10288         * config/mips/mips.h (PREDICATE_CODES): Add ADDRESSOF for predicates
10289         that match register_operands.
10290         * config/mips/mips.c (reg_or_0_operand, true_reg_or_0_operand): Make
10291         register_operand the default case.
10292
10293 2003-01-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
10294
10295         PR c/8032
10296         * c-typeck.c (process_init_element) [RECORD_TYPE]: For
10297         an empty element, do not advance the pointer to unfilled
10298         fields if there are pending initializers.
10299
10300 2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
10301
10302         * Makefile.in (ORDINARY_FLAGS_TO_PASS): Also pass DESTDIR.
10303         (install-gcc-tooldir, install-cpp, installdirs,
10304         install-common, install-driver, install-info, install-man,
10305         install-headers, install-include-dir, install-headers-tar,
10306         install-headers-cpio, install-headers-cp, install-mkheaders,
10307         install-collect2, uninstall): Prepend $(DESTDIR) to
10308         destination paths in all (un)installation commands.
10309         (install-driver): Rewrite $(LN) commands to support DESTDIR
10310         with "ln" as well as with "ln -s".
10311         (installdirs): Simply use mkinstalldirs.
10312         (install-libgcc, install-multilib): Also pass DESTDIR.
10313         * mklibgcc.in: Prepend $(DESTDIR) to $(libsubdir) in the
10314         installation destination variable ldir.
10315         * config/alpha/t-osf4, config/arm/t-netbsd,
10316         config/ia64/t-hpux, config/mips/t-iris5-6,
10317         config/pa/t-hpux-shlib, config/rs6000/t-aix43,
10318         config/rs6000/t-aix52, config/t-slibgcc-elf-ver,
10319         config/t-slibgcc-sld: Prepend $$(DESTDIR) to $$(slibdir)
10320         in the definition of SHLIB_INSTALL.
10321         * config/arc/t-arc (install-multilib-arc): Prepend $(DESTDIR) to
10322         $(libsubdir) in the installation commands.
10323
10324 2003-01-08  Kaz Kojima  <kkojima@gcc.gnu.org>
10325
10326         * config/sh/sh.h (CASE_VECTOR_MODE): Use SImode for a
10327         non-optimizing compile.
10328         (ASM_OUTPUT_ADDR_VEC_ELT): Use .long for a non-optimizing
10329         compile.
10330
10331 2003-01-08  Douglas B Rupp  <rupp@gnat.com>
10332
10333         * config/i386/i386.c (ix86_attribute_table): Add new attributes
10334         ms_struct and gcc_struct.
10335         (ix86_handle_struct_attribute): New function.
10336         (ix86_ms_bitfield_layout_p): Update to take new attributes
10337         into account.
10338         * doc/extend.texi: Document new attributes.
10339         * testsuite/gcc.dg/bf-ms-attrib.c: New test.
10340
10341 2003-01-08  Danny Smith  <dannysmith@users.sourceforge.net>
10342
10343         PR optimization/8750
10344         * config/i386/i386.c (ix86_expand_prologue): Don't allow
10345         scheduling pass to move insns across __alloca call.
10346
10347 2003-01-08  Dale Johannesen  <dalej@apple.com>
10348
10349         * config/rs6000/rs6000.md:  Replace *store_multiple_string
10350         with *stmsi[3-8].
10351
10352 2003-01-08  Jeff Sturm  <jsturm@one-point.com>
10353
10354         PR target/9210
10355         * config/rs6000/rs6000.c (rs6000_elf_encode_section_info):
10356         Set SYMBOL_REF_FLAG on local data sym_ref.
10357
10358 2003-01-08  Dale Johannesen  <dalej@apple.com>
10359
10360         * function.c (assign_parms):  Don't set pretend_args_size if
10361           REG_PARM_STACK_SPACE.
10362           config/rs6000/rs6000.c (setup_incoming_varargs):  Don't set
10363           pretend_args_size.
10364
10365 2003-01-08  Nathanael Nerode  <neroden@gcc.gnu.org>
10366
10367         * gcc.hlp: Delete.
10368
10369 2003-01-09  Jan Hubicka  <jh@suse.cz>
10370
10371         * i386.c  (ix86_expand_int_addcc): Fix thinko.
10372
10373 2003-01-08  David Edelsohn  <edelsohn@gnu.org>
10374
10375         * config/rs6000/rs6000.h (FUNCTION_MODE): Always use SImode.
10376         * config/rs6000/rs6000.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Redefine
10377         as hook_bool_tree_hwi_hwi_tree_true.
10378         (rs6000_emit_allocate_stack): Use TARGET_32BIT.
10379         (rs6000_emit_epilogue): Same.
10380         (rs6000_output_mi_thunk): Re-implement as RTL.
10381         * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Call
10382         xcoffout_declare_function if any debugging enabled.
10383
10384 2003-01-08  Chris Demetriou  <cgd@broadcom.com>
10385
10386         * config.gcc (mipsisa32r2-*-elf*, mipsisa32r2el-*-elf*): New
10387         targets, to support MIPS32 Release 2 (MIPS32R2) configurations.
10388         * config/mips/mips.h (enum processor_type): Rename
10389         PROCESSOR_R4KC to PROCESSOR_4KC, PROCESSOR_R5KC to
10390         PROCESSOR_5KC, and PROCESSOR_R20KC to PROCESSOR_20KC.
10391         Add PROCESSOR_M4K.
10392         (TARGET_MIPS4KC, TARGET_MIPS5KC): Update for the renaming.
10393         (ISA_MIPS32R2): New define.
10394         (GENERATE_MULT3_SI, ISA_HAS_CONDMOVE, ISA_HAS_8CC)
10395         (ISA_HAS_MADD_MSUB, ISA_HAS_CLZ_CLO)
10396         (ISA_HAS_PREFETCH): Add support for MIPS32R2.
10397         (MIPS_ISA_DEFAULT): Likewise.  Also, fix indentation.
10398         (TARGET_CPU_CPP_BUILTINS): Add support for MIPS32R2.  Add new
10399         predefine __mips_isa_rev for MIPS32, MIPS32R2, and MIPS64.
10400         (ISA_HAS_ROTR_SI): Add support for MIPS32R2, and avoid if
10401         compiling MIPS16 code.
10402         (ISA_HAS_ROTR_DI): Do not use if compiling MIPS16 code, and fix
10403         comment.
10404         (ISA_HAS_SEB_SEH): New define.
10405         (ASM_SPEC, LINK_SPEC): Pass -mips32r2 to assembler and linker.
10406         * config/mips/mips.c (mips_cpu_info_table): Adjust for enum
10407         processor_type value renaming.  Add support for MIPS32R2.
10408         Clean up comments, and move "sb1" entry with other MIPS64 CPU
10409         entries.
10410         (override_options): Reimplement -mipsN option handling so that
10411         it will work correctly for -mips32r2.  Avoid branch-likely
10412         instructions on MIPS32R2.
10413         * config/mips/mips.md (mulsi3_mult3): Add support for MIPS32R2.
10414         (extendhisi2): Use extendhisi2_hw if ISA_HAS_SEB_SEH.
10415         (extendqisi2): Use extendqisi2_hw if ISA_HAS_SEB_SEH.
10416         (extendhisi2_hw, extendqisi2_hw): New.
10417         * config/mips/netbsd.h (TARGET_CPU_CPP_BUILTINS): Add support
10418         for MIPS32R2.  Add new predefine __mips_isa_rev for MIPS32,
10419         MIPS32R2, and MIPS64.
10420         (LINK_SPEC): Pass -mips32r2 to linker.
10421         * config/mips/t-isa3264: Built -mips32r2 multilibs.
10422         * doc/invoke.texi (MIPS Options): Add -mips32r2, add support
10423         for mips32r2 in the -march description.  Alphabetically sort
10424         CPU names in the -march description.  Add long-missed -mips32
10425         and -mips64 to MIPS option summary.
10426
10427         * config.gcc: Update copyright years to include 2003.
10428         * config/mips/mips.c: Likewise.
10429         * config/mips/mips.h: Likewise.
10430         * config/mips/mips.md: Likewise.
10431         * config/mips/netbsd.h: Likewise.
10432         * doc/invoke.texi: Likewise.
10433
10434 2003-01-08  Andreas Schwab  <schwab@suse.de>
10435
10436         * aclocal.m4 (gcc_AC_INITFINI_ARRAY): Fix spelling of cache
10437         variable.
10438         * configure: Regenerated.
10439
10440 2003-01-08  Kazu Hirata  <kazu@cs.umass.edu>
10441
10442         * config/h8300/h8300.c (output_logical_op): Replace byte/word
10443         extraction of det with b0, b1, w0, w2, etc.
10444         (compute_logical_op_length): Likewise.
10445         (compute_logical_op_cc): Likewise.
10446
10447 2003-01-08  Kazu Hirata  <kazu@cs.umass.edu>
10448
10449         * config/h8300/h8300.h (CONSTANT_ADDRESS_P): Allow CONST and
10450         HIGH on all variants.
10451
10452 2003-01-08  Josef Zlomek <zlomj9am@artax.karlin.mff.cuni.cz>
10453
10454         * Makefile.in (PARTITION_H): New.
10455         (BASIC_BLOCK_H): Added hard-reg-set.h and $(PARTITION_H).
10456         * basic-block.h: Include hard-reg-set.h.
10457
10458 2003-01-08  Richard Earnshaw  <rearnsha@arm.com>
10459
10460         * arm.h (ENABLE_XF_PATTERNS): Delete.
10461         * arm.md (addxf3, subxf3, mulxf3, divxf3, modxf3, negxf2, absxf2)
10462         (sqrtxf2, floatsixf2, fix_truncxfsi2, truncxfsf2, truncxfdf2)
10463         (extendsfxf2, extenddfxf2, movxf, cmpxf, cmpxf_insn)
10464         (cmpxf_trap): Delete.
10465         (movxf_hard_insn): Remove test of ENABLE_XF_PATTERNS.
10466
10467 2003-01-08  Jan Hubicka  <jh@suse.cz>
10468
10469         * i386.md (adddi3_carry_rex64, subdi3_carry_rex64): Name pattern.
10470         (addhi3_carry, addqi3_carry, subhi3_carry, subqi3_carry): New patterns.
10471         (add??cc): New expanders.
10472         * i386.c (expand_int_addcc): New function.
10473         * i386-protos.h (expand_int_addcc): Declare.
10474
10475         * alias.c (memory_modified_1): New static function.
10476         (memory_modified): New static varaible.
10477         (memory_modified_in_insn_p): New global function.
10478         * rtl.h (memory_modified_in_insn_p): Declare.
10479         * rtlanal.c (modified_between_p, modified_in_p): Be smart about memory
10480         references.
10481
10482         * expr.h (emit_conditional_add): Declare.
10483
10484 2003-01-07  Janis Johnson  <janis187@us.ibm.com>
10485
10486         PR other/8947
10487         * doc/invoke.texi (-malign-double): Explain that the option breaks
10488         binary compatibility.
10489
10490 2003-01-08  Andreas Schwab  <schwab@suse.de>
10491
10492         * config.gcc (m68k-*-linux*): Don't set extra_parts and gnu_ld,
10493         should come from the generic *-*-linux* entry.
10494
10495 2003-01-07  Jan Hubicka  <jh@suse.cz>
10496
10497         * cselib.c (cselib_current_insn_in_libcall): New static variable.
10498         (new_elt_loc_list, cselib_process_insn, cselib_init): Keep track on whether
10499         we are inside libcall.
10500         * cselib.h (elt_loc_list): Add in_libcall.
10501         * gcse.c (do_local_cprop): Do not copy propagate using insns
10502         in libcalls.
10503
10504 2003-01-07  David Edelsohn  <edelsohn@gnu.org>
10505
10506         * doc/tm.texi (TARGET_SCHED_VARIABLE_ISSUE): CLOBBER and USE do
10507         not normally affect to issue rate.
10508
10509 2003-01-07  Jan Hubicka  <jh@suse.cz>
10510
10511         * genopinit.c (optabs): Add addc_optab.
10512         * ifcvt.c (noce_try_store_flag): Rename to ...
10513         (noce_try_addcc): ... this one; handle generic conditional increment.
10514         (noce_process_if_block): Update noce_try_addcc call.
10515         * optabs.c (emit_conditional_add): New.
10516         (init_obtabs): Initialize addc_optab.
10517         * optabs.h (optab_index): Add OTI_addcc.
10518         (addcc_optab): New macro.
10519         * md.texi: Document addMcc
10520
10521         PR target/8322
10522         * i386.c (ix86_init_mmx_sse_builtins): Constify arguments of loads.
10523         * xmmintrin.h (_mm_load*_si128. _mm_store*_si128): Add casts.
10524         * xmmintrin.h (_mm_load*_si128. _mm_store*_si128): Add casts.
10525
10526         * reload1.c (delete_output_reload): Avoid repeated attempts
10527         to delete insn.
10528
10529 2003-01-07  Andreas Schwab  <schwab@suse.de>
10530
10531         * configure.in: Restore CFLAGS before gcc_AC_INITFINI_ARRAY.
10532         Move --enable-initfini-array check ...
10533         * aclocal.m4 (gcc_AC_INITFINI_ARRAY): ... here.  Define
10534         HAVE_INITFINI_ARRAY also when --enable-initfini-array is given.
10535         Don't AC_SUBST gcc_cv_initfinit_array.  Use AC_TRY_RUN.
10536         * configure: Rebuild.
10537
10538 2003-01-07  Richard Henderson  <rth@redhat.com>
10539
10540         * alias.c (find_base_value): Only use new_reg_base_value shortcut
10541         if the register is set once.
10542
10543 2003-01-07  Sylvain Pion <Sylvain.Pion@mpi-sb.mpg.de>
10544
10545         * config/i386/i386.c (ix86_init_mmx_sse_builtins):
10546         __builtin_ia32_ldmxcsr and __builtin_ia32_stmxcsr are SSE, not MXX.
10547         * config/i386/i386.md (ldmxcsr, stmxcsr): SSE, not MMX.
10548
10549 2003-01-07  Benjamin Kosnik  <bkoz@redhat.com>
10550             Sunil Davasam  <sunil.k.davasam@intel.com>
10551
10552         PR libstdc++/9076
10553         * unwind-dw2.c (execute_cfa_program): DW_CFA_undefined,
10554         DW_CFA_same_value, read next and ignore.
10555
10556 2003-01-07  Richard Henderson  <rth@redhat.com>
10557
10558         * cfganal.c (flow_call_edges_add): Don't crash on noreturn call.
10559
10560 2003-01-07  Daniel Berlin  <dberlin@dberlin.org>
10561
10562         * cfg.c: Include alloc-pool.h
10563         (edge_pool): New pool.
10564         (bb_pool): New pool.
10565         (first_deleted_edge): Remove.
10566         (first_deleted_block): Remove.
10567         (init_flow): Alloc/free the pools.
10568         (free_edge): Use pools.
10569         (alloc_block): Ditto.
10570         (expunge_block): Ditto.
10571         (cached_make_edge): Ditto.
10572
10573         * Makefile.in (cfg.o): Add alloc-pool.h dependency.
10574
10575 2003-01-07  Daniel Berlin  <dberlin@dberlin.org>
10576
10577         * et-forest.c: Include alloc-pool.h.
10578         (struct et_forest): Add node_pool and occur_pool.
10579         (et_forest_create): Create the new pools.
10580         (et_forest_delete): Delete them.
10581         (et_forest_add_node): Allocate and free using pools.
10582         (et_forest_add_edge): Ditto.
10583         (et_forest_remove_node): Ditto.
10584         (et_forest_remove_edge): Ditto.
10585
10586         * Makefile.in (et-forest.o): Add alloc-pool.h dependency.
10587
10588 2003-01-07  Kazu Hirata  <kazu@cs.umass.edu>
10589
10590         * config/h8300/h8300.c (output_logical_op): Simplify and
10591         optimize the handling of SImode.
10592         * config/h8300/h8300.c (compute_logical_op_length): Update
10593         accordingly.
10594         * config/h8300/h8300.c (compute_logical_op_cc): Likewise.
10595
10596 2003-01-07  Richard Sandiford  <rsandifo@redhat.com>
10597
10598         * config/mips/mips.c (mips_va_arg): In the EABI code, apply the
10599         big-endian correction to indirect arguments too.
10600
10601 2003-01-06  Aldy Hernandez  <aldyh@redhat.com>
10602
10603         Segher Boessenkool  <segher@koffie.nl>
10604
10605         * config/rs6000/rs6000.c (rs6000_reg_names): Add missing registers.
10606         (alt_reg_names): Ditto, fix formatting.
10607         * config/rs6000/rs6000.h (DEBUG_REGISTER_NAMES): Fix formatting.
10608
10609 2003-01-06  Kazu Hirata  <kazu@cs.umass.edu>
10610
10611         * config/h8300/h8300.c (final_prescan_insn): Constify uid.
10612         (output_logical_op): Constify intval and det.
10613         (compute_logical_length): Likewise.
10614         (compute_logical_cc): Likewise.
10615         (output_a_shift): Constify mask.
10616         (h8300_encode_label): Constify len.
10617
10618 2003-01-06  Kazu Hirata  <kazu@cs.umass.edu>
10619
10620         * config/h8300/h8300.c (h8300_expand_prologue): Remove fsize.
10621         (h8300_expand_epilogue): Likewise.
10622
10623 2003-01-06  Aldy Hernandez  <aldyh@redhat.com>
10624
10625         Segher Boessenkool  <segher@koffie.nl>
10626
10627         * config/rs6000/altivec.md: Remove spaces from assembler
10628         instruction argument lists.
10629
10630 2003-01-07  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10631
10632         * config/c4x/c4x.c (c4x_naked_function_p): Rename from
10633         c4x_assembler_function_p.
10634         (c4x_null_epilogue_p): Complement return value, all uses updated.
10635         (c4x_insert_attributes): Add naked.
10636         * config/c4x/c4x.md (c4x_null_epilogue_p): Changes uses.
10637         * doc/extend.texi: Update C4x function attributes.
10638
10639 2003-01-06  Richard Henderson  <rth@redhat.com>
10640
10641         * config/alpha/alpha.c (alpha_encode_section_info): Adjust symbol_str
10642         properly when changing "local-ness".
10643         * config/alpha/alpha.md (movdi_er_high_g): Allow all symbols.
10644
10645 2003-01-06  Dale Johannesen  <dalej@apple.com>
10646
10647         * config/darwin-protos.h:  Add prototypes for new section functions.
10648
10649 2003-01-06  Chris Demetriou  <cgd@broadcom.com>
10650
10651         * config.gcc (mipsisa32-*-elf*, mipsisa32el-*-elf*): Default ABI
10652         to EABI.
10653
10654 2003-01-06  Zack Weinberg  <zack@codesourcery.com>
10655
10656         * hwint.h: If the current compiler has no 64-bit type at all,
10657         make HOST_WIDEST_INT 32 bits.
10658
10659 2003-01-06  Eric Christopher  <echristo@redhat.com>
10660
10661         * config/mips/mips.md (movdf_internal2): Fix constraints.
10662
10663 2003-01-06  Kazu Hirata  <kazu@cs.umass.edu>
10664
10665         * config/h8300/h8300.md (*twoshifts_l16_r1): New.
10666
10667 2003-01-06  Richard Sandiford  <rsandifo@redhat.com>
10668
10669         * config/mips/mips.md (leadi): Use dla rather than la.
10670
10671 2003-01-06  Svein E. Seldal  <Svein.Seldal@solidas.com>
10672
10673         * config/c4x/c4x.h: Updated specs for new gas format.  Fixed bug
10674         in C33_FLAG.  Added proper C33 support in ASM_FILE_START macro.
10675
10676 2003-01-06 Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
10677
10678         * config/c4x/c4x.h: Remove hwint.h include and HOST_WIDE_INT_PRINT_HEX
10679         redefinition.
10680
10681 2003-01-05  Kazu Hirata  <kazu@cs.umass.edu>
10682
10683         * config/h8300/h8300.md (*extzv_8_23): New.
10684
10685 2003-01-05  John David Anglin  <dave@hiauly1.hia.nrc.ca>
10686
10687         * pa64-hpux.h (JCR_SECTION_NAME): Define.
10688         (PA_INIT_FRAME_DUMMY_ASM_OP): Check EH_FRAME_SECTION_NAME instead of
10689         USE_EH_FRAME_REGISTRY when defining.
10690
10691 2003-01-05  Kazu Hirata  <kazu@cs.umass.edu>
10692
10693         * config/h8300/h8300.c (output_a_shift): Do not output a
10694         variable shift.
10695         * config/h8300/h8300.md (two splitters): New.
10696
10697 2003-01-05  Richard Sandiford  <rsandifo@redhat.com>
10698
10699         * config/mips/mips.md: Disable the movstrsi define_split.
10700
10701 2003-01-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10702
10703         * alloc-pool.c: Don't include "libiberty.h".
10704         * config/sparc/gmon-sol2.c: Include <fcntl.h>.
10705         * convert.c (convert_to_real): Hide unused variable.
10706
10707 2003-01-04  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10708
10709         * Makefile.in (gtyp-gen.h): Const-ify.
10710         * gcov-dump.c (tag_table): Likewise.
10711
10712 2003-01-04  Bruce Korb  <bkorb@gnu.org>
10713
10714         * fixinc/fixfixes.c(wrap_fix): the wrapper guard must be a function
10715         of *both* the file name and the fix name.
10716
10717 2003-01-04  John David Anglin  <dave.anglin@nrc.ca>
10718
10719         * config.gcc (hppa*64*-*-hpux11*): Define extra_parts.  Don't use
10720         collect2.
10721         * pa-hpux11.h (LDD_SUFFIX, PARSE_LDD_OUTPUT): Undefine.
10722         (HAS_INIT_SECTION, LD_INIT_SWITCH, LD_FINI_SWITCH): Define.
10723         * pa64-hpux.h (HP_INIT_ARRAY_SECTION_ASM_OP,
10724         GNU_INIT_ARRAY_SECTION_ASM_OP, HP_FINI_ARRAY_SECTION_ASM_OP,
10725         GNU_FINI_ARRAY_SECTION_ASM_OP): Define.
10726         (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Define when not using
10727         elfos.h.
10728         (EH_FRAME_IN_DATA_SECTION): Delete define.
10729         (HAS_INIT_SECTION, LD_INIT_SWITCH, LD_FINI_SWITCH): Undefine.
10730         (STARTFILE_SPEC): Use crtbegin.o.
10731         (ENDFILE_SPEC): Use crtend.o.
10732         (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION,
10733         SUPPORTS_INIT_PRIORITY, PA_CXA_FINALIZE_STUB, PA_INIT_FINI_HACK,
10734         PA_INIT_FRAME_DUMMY_ASM_OP, PA_JV_REGISTERCLASSES_STUB,
10735         DTOR_LIST_BEGIN): Define.
10736         * pa.c (TARGET_ASM_CONSTRUCTOR): Define.
10737         (pa_asm_out_constructor, pa_asm_out_destructor): New functions.
10738         * som.h (SUPPORTS_INIT_PRIORITY): Delete define.
10739
10740 2002-12-31  Larin Hennessy  <larin@science.oregonstate.edu>
10741
10742         * fixinc/fixinc.svr4: Remove references to i860, Sony NewsOS, and spur.
10743         * fixinc/inclhack.def: Remove tests for Apple A/UX, ARM/RISCiX, DG/UX,
10744         m88k-*-sysv3*, Sony NewsOS.   Remove references to i860.
10745         Cleanup handling of replacement text.
10746         * fixinc/mkfixinc.sh: Remove reference to i?86-*-osf1*
10747
10748 2003-01-04  Bruce Korb  <bkorb@gnu.org>
10749
10750         * fixinc/tests/base/math.h: removed obsolete results
10751         * fixinc/tests/base/stdlib.h: ditto
10752         * fixinc/tests/base/sys/param.h: ditto
10753         * fixinc/tests/base/sys/stat.h: ditto
10754         * fixinc/tests/base/time.h: ditto
10755         * fixinc/tests/base/X11/Intrinsic.h: removed obsolete file
10756         * fixinc/tests/base/sys/byteorder.h: ditto
10757         * fixinc/inclhack.def: Remove superfluous backslashes
10758
10759 2003-01-04  Kazu Hirata  <kazu@cs.umass.edu>
10760
10761         * config/h8300/h8300-protos.h: Add prototypes for
10762         the new functions defined below.
10763         * config/h8300/h8300.c (TARGET_ASM_FUNCTION_PROLOGUE): Do not
10764         define.
10765         (dosize): Emit RTL instead of assembly code.
10766         (push): Likewise.
10767         (pop): Likewise.
10768         (h8300_output_function_prologue): Remove.
10769         (h8300_expand_prologue): New.
10770         (h8300_expand_epilogue): New.
10771         (h8300_output_function_epilogue): Do only the reset of
10772         pragma_saveall.
10773         * config/h8300/h8300.md (push_h8300): New.
10774         (push_h8300hs): Likewise.
10775         (pop_h8300): Likewise.
10776         (pop_h8300hs): Likewise.
10777         (*stm_h8300s_2): Change the name to stm_h8300s_2.
10778         (*stm_h8300s_3): Change the name to stm_h8300s_3.
10779         (*stm_h8300s_4): Change the name to stm_h8300s_4.
10780         (*ldm_h8300s_2): New.
10781         (*ldm_h8300s_3): Likewise.
10782         (*ldm_h8300s_4): Likewise.
10783         (return): Likewise.
10784         (*return_1): Likewise.
10785         (prologue): Likewise.
10786         (epilogue): Likewise.
10787         (monitor_prologue): Likewise.
10788
10789 2003-01-03  Dale Johannesen  <dalej@apple.com>
10790
10791         * config/darwin.h:  (EXTRA_SECTIONS):  Add machopic_symbol_stub1,
10792           machopic_picsymbol_stub1.
10793           (EXTRA_SECTION_FUNCTIONS):  Ditto.
10794         * rs6000/rs6000.c:  Update copyright.
10795           (machopic_output_stub):  Use them.  Remove an insn from stub code.
10796
10797 2003-01-02  Jason Merrill  <jason@redhat.com>
10798
10799         * fold-const.c (fold) [COND_EXPR]: Avoid NOP_EXPRs better.
10800
10801         * integrate.c (copy_decl_for_inlining): Don't clear the rtl for
10802         static/external decls.
10803
10804         * c-common.c (finish_fname_decls): Put the DECL_STMTs inside the
10805         outermost scope.
10806         * c-decl.c (c_make_fname_decl): Push the decls there, too.
10807
10808 2003-01-03  Kazu Hirata  <kazu@cs.umass.edu>
10809
10810         * config/h8300/h8300-protos.h: Add a prototype for
10811         h8300_current_function_interrupt_function_p.
10812         * config/h8300/h8300.c (interrupt_handler): Remove.
10813         (os_task): Likewise.
10814         (monitor): Likewise.
10815         (pragma_interrupt): New.
10816         (WORD_REG_USED): Use
10817         h8300_current_function_interrupt_function_p.
10818         (dosize): Likewise.
10819         (h8300_output_function_prologue): Likewise.
10820         Do not set interrupt_handler, os_task, monitor.
10821         (h8300_output_function_prologue): Use
10822         h8300_current_function_interrupt_function_p.
10823         Do not set interrupt_handler, os_task, monitor.
10824         (h8300_current_function_interrupt_function_p): New.
10825         (h8300_pr_interrupt): Set pragma_interrupt.
10826         (h8300_insert_attributes): Reset pragma_interrupt.
10827
10828 2003-01-03  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
10829
10830         * doc/install.texi (Configuration): Fix markup for reference to
10831         gcc/config.gcc.
10832
10833 2003-01-02  Kazu Hirata  <kazu@cs.umass.edu>
10834
10835         * config/h8300/h8300.md (*iorhi3_zext): Relax the condition.
10836         (*iorhi3_two_qi): Likewise.
10837         (*iorsi3_zexthi): Likewise.
10838         (*xorhi3_zextqi): Likewise.
10839         (*xorsi3_zexthi): Likewise.
10840         (*xorsi3_zextqi): Likewise.
10841
10842 2003-01-02  Kazu Hirata  <kazu@cs.umass.edu>
10843
10844         * config/h8300/h8300.c (stack_pointer_operand): New.
10845         (const_int_gt_2_operand): Likewise.
10846         (const_int_ge_8_operand): Likewise.
10847         * config/h8300/h8300.md (a splitter): Likewise.
10848         (a peephole2): Likewise.
10849         * config/h8300/h8300-protos.h: Add prototypes for the new
10850         functions above.
10851
10852 2003-01-02  Steven Bosscher <s.bosscher@student.tudelft.nl>
10853
10854         * objc/Make-lang.in, objc/config-lang.in, objc/lang-specs.h,
10855         objc/objc-act.h: Fix copyright years.
10856
10857 2003-01-02  Steven Bosscher  <s.bosscher@student.tudelft.nl>
10858
10859         * doc/passes.texi: Fix documentation for -fssa-ccp
10860
10861 2003-01-02  Neil Booth  <neil@daikokuya.co.uk>
10862
10863         * gccbug.in: Update for new categories.
10864
10865 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
10866
10867         * config/h8300/h8300.md: Reorder some patterns.
10868
10869 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
10870
10871         * config/h8300/h8300.c (output_logical_op): Fix a warning.
10872
10873 2003-01-01  Neil Booth  <neil@daikokuya.co.uk>
10874
10875         * config/darwin-protos.h, config/c4x/c4x-protos.h,
10876         config/cris/cris-protos.h, config/i370/i370-protos.h,
10877         config/i960/i960-protos.h, config/ia64/ia64-protos.h,
10878         config/v850/v850-protos.h: Use struct, and don't conditionally
10879         compile on GCC_C_PRAGMA_H.
10880
10881 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
10882
10883         * config/arm/arm-protos.h: Remove #ifdef GCC_C_PRAGMA_H.
10884         * config/h8300/h8300-protos.h: Likewise.
10885         * config/sh/sh-protos.h: Likewise.
10886
10887 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
10888
10889         * config/arm/arm-protos.h: Use struct cpp_reader instead of
10890         cpp_reader.
10891         * config/h8300/h8300-protos.h: Likewise.
10892         * config/sh/sh-protos.h: Likewise.
10893
10894 2003-01-01  Neil Booth  <neil@daikokuya.co.uk>
10895
10896         * config/arm/arm.c (arm_pr_long_calls, arm_pr_no_long_calls,
10897         arm_pr_long_calls_off): Use struct.
10898         * config/h8300/h8300.c (h8300_pr-interrupt, h8300_pr_saveall)
10899         : Similarly.
10900         Don't include cpplib.h.
10901         * config/sh/sh.c (sh_pr_interrupt, sh_pr_trapa,
10902         sh_pr_nosave_low_regs): Similarly.
10903
10904 2003-01-01  Kazu Hirata  <kazu@cs.umass.edu>
10905
10906         * config/h8300/h8300.c: Include cpplib.h.
10907
10908 2003-01-01  Steven Bosscher  <s.bosscher@student.tudelft.nl>
10909
10910         * objc/Make-lang.in, objc/config-lang.in, objc/lang-options.h,
10911           objc/lang-specs.h, objc/objc-act.c, objc/objc-act.h,
10912           objc/objc-lang.c, objc/objc-tree.def: Replace "GNU CC" with
10913           "GCC" in the copyright header.
10914
10915 2003-01-01  Neil Booth  <neil@daikokuya.co.uk>
10916
10917         * c-pragma.c (c_register_pragma): New.
10918         (init_pragma): Use it.
10919         * c-pragma.h (cpp_register_pragma): Don't declare.
10920         (c_register_pragma): New.
10921         * cpplib.h: Remove #ifdef GCC_C_PRAGMA_H.
10922         * config/darwin.h (REGISTER_TARGET_PRAGMAS): Update.
10923         * config/arm/arm.h (REGISTER_TARGET_PRAGMAS): Update.
10924         * config/c4x/c4x.h (REGISTER_TARGET_PRAGMAS): Update.
10925         * config/h8300/h8300.h (REGISTER_TARGET_PRAGMAS): Update.
10926         * config/i370/i370.h (REGISTER_TARGET_PRAGMAS): Update.
10927         * config/i960/i960.h (REGISTER_TARGET_PRAGMAS): Update.
10928         * config/ia64/hpux.h (REGISTER_TARGET_PRAGMAS): Update.
10929         * config/rs6000/rs6000.h (REGISTER_TARGET_PRAGMAS): Update.
10930         * config/sh/sh.h (REGISTER_TARGET_PRAGMAS): Update.
10931         * config/v850/v850.h (REGISTER_TARGET_PRAGMAS): Update.
10932         * doc/tm.texi (REGISTER_TARGET_PRAGMAS): Update
10933
10934 See ChangeLog.8 for earlier changes.