OSDN Git Service

* objc/objc-act.c (tm_p.h): Tweak order.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2003-09-26  Loren James Rittle  <ljrittle@acm.org>
2
3         * objc/objc-act.c (tm_p.h): Tweak order.
4         * objc/Make-lang.in (objc/objc-act.o): Add $(TM_P_H).
5
6 2003-09-26  Nathanael Nerode  <neroden@gcc.gnu.org>
7
8         * config.gcc (hppa*64*-*-linux* | parisc*64*-*-linux*):
9         Include t-slibgcc-elf-ver and t-linux in tmake_file.
10         * config.gcc (hppa*64*-*-linux* | parisc*64-*-linux*):
11         Disable fixproto.
12         * config.gcc (i960-*-coff*, m68k-*-aout*, sparclite-*-coff*):
13         Disable fixproto.
14         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*,
15         sparcv9-*-solaris2*, sparc-*-solaris2*): Disable fixproto.
16
17         * config/i386/unix.h: Remove (unused) DEFAULT_ASSEMBLER_DIALECT.
18
19 2003-09-26  Loren James Rittle  <ljrittle@acm.org>
20
21         * config/i386/i386.h (ix86_return_in_memory): Revert my last patch.
22         * objc/objc-act.c (tm_p.h): Include.
23
24 2003-09-26  Per Bothner  <pbothner@apple.com>
25
26         * dbxout.c (dbxout_typedefs):  Output typedefs in forward order.
27         No longer any need to reverse by recursion.
28
29 2003-09-26  Roger Sayle  <roger@eyesopen.com>
30             Richard Henderson  <rth@redhat.com>
31
32         PR optimization/11741
33         * gcse.c (pre_insert_copy_insn): Tweak the logic for finding the
34         appropriate set to match that in hash_scan_insn.  Fall back to
35         the original copy method, if we can't validate changing insn.
36         (pre_delete): Only delete instructions that have a single_set,
37         instead of aborting when we encounter an PARALLEL insn with more
38         then one SET.
39
40 2003-09-26  Andreas Krebbel  <krebbel1@de.ibm.com>
41
42         * config/s390/s390.md ("builtin_setjmp_setup"): Insn deleted.
43         ("builtin_longjmp"): Insn deleted.
44         ("save_stack_nonlocal"): Save literal pool base pointer behind 
45         backchain and stack pointer.
46         ("restore_stack_nonlocal"): Restore literal pool base pointer.
47         * config/s390/s390.h (STACK_SAVEAREA_MODE): Double size of
48         the stack save area for the nonlocal goto case.
49
50 2003-09-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
51
52         PR bootstrap/12358
53         * pa.c (output_bvb): Fix typo.
54
55 2003-09-26  Richard Sandiford  <rsandifo@redhat.com>
56
57         * expmed.c (store_bit_field): Don't search for an integer mode
58         unless we need the result.
59
60 2003-09-26  Richard Sandiford  <rsandifo@redhat.com>
61
62         * expr.c (emit_move_insn_1): If there is no move pattern for the
63         original mode, try using a pattern for the corresponding integer mode.
64
65 2003-09-26  Richard Sandiford  <rsandifo@redhat.com>
66
67         * combine.c (if_then_else_cond): Tighten mode check.
68
69 2003-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
70
71         * cppcharset.c, cpphash.h: Rename 'struct strbuf' to
72         'struct _cpp_strbuf'.
73
74         * config/i386/netbsd-elf.h, config/i386/netbsd64.h,
75         config/i386/netware.h, config/i386/nto.h, config/i386/openbsd.h,
76         config/i386/pentium.md, config/i386/pmmintrin.h, config/i386/ppro.md,
77         config/i386/ptx4-i.h, config/i386/rtemself.h, config/i386/sco5.h,
78         config/i386/sol2.h, config/i386/svr3gas.h, config/i386/sysv3.h,
79         config/i386/sysv4-cpp.h, config/i386/sysv4.h, config/i386/sysv5.h,
80         config/i386/unix.h, config/i386/uwin.h, config/i386/vsta.h,
81         config/i386/xm-cygwin.h, config/i386/xm-djgpp.h,
82         config/i386/xm-mingw32.h, config/i386/xmmintrin.h: Replace
83         "GNU CC", "GNU compiler", and "GNU C-compiler" with "GCC".
84         * config/i386/i386-aout.h, config/i386/i386-coff.h, 
85         config/i386/i386-interix.h, config/i386/i386-interix3.h, 
86         config/i386/i386-modes.def, config/i386/i386-protos.h,
87         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
88         config/i386/i386elf.h, config/i386/k6.md, config/i386/kaos-i386.h,
89         config/i386/linux-aout.h, config/i386/linux.h, config/i386/linux64.h,
90         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mingw32.h,
91         config/i386/mmintrin.h, config/i386/moss.h: GNU CC -> GCC.
92         "GNU compiler" -> GCC.
93         * config/i386/att.h, config/i386/beos-elf.h, config/i386/biarch64.h,
94         config/i386/bsd.h, config/i386/crtdll.h, config/i386/cygming.h,
95         config/i386/cygwin.h, config/i386/cygwin1.c, config/i386/cygwin2.c,
96         config/i386/darwin.h, config/i386/djgpp.h, config/i386/emmintrin.h,
97         config/i386/freebsd-aout.h, config/i386/freebsd.h,
98         config/i386/freebsd64.h, config/i386/gas.h: GNU CC -> GCC.
99
100 2003-09-25  Kelley Cook  <kelleycook@wideopenwest.com>
101
102         * cgraph.c (dump_cgraph):  Don't output newline before dump.  Add in
103         "local" to the callgraph dump.  Output "after inlining" earlier.
104         * cgraphunit.c: Fix dumpfile whitespace and commonize headers of the
105         callgraph dumps.  Correct misspellings.
106         (cgraph_decide_inlining):  Output number of insns before inlining.
107         Output the calling function into which a function is inlined.
108         (cgraph_decide_small_functions): Format dump file like always_inline.
109
110 2003-09-25  Loren James Rittle  <ljrittle@acm.org>
111
112         * config/i386/i386.h (ix86_return_in_memory): Add prototype.
113
114 2003-09-25  Ulrich Weigand  <uweigand@de.ibm.com>
115
116         * config/s390/s390.c (s390_emit_prologue): Simplify accesses to
117         FPR slots in the save area.
118         (s390_emit_epilogue): Likewise.
119
120 2003-09-25  Richard Sandiford  <rsandifo@redhat.com>
121
122         * cgraph.h (cgraph_remove_edge): Declare.
123         * cgraph.c (cgraph_remove_edge): Make extern.
124         * cgraphunit.c (cgraph_finalize_function): Call cgraph_remove_edge
125         instead of cgraph_remove_call.
126
127 2003-09-25  Ulrich Weigand  <uweigand@de.ibm.com>
128
129         * objc/objc-act.c (gen_declaration_1): Fix printf format.
130
131 2003-09-25  Richard Earnshaw  <rearnsha@arm.com>
132
133         * arm.c (all_cores): arm710t, arm720t and arm740t are all based on the
134         arm7tdmi core.
135
136 2003-09-25  Ziemowit Laski  <zlaski@apple.com>
137
138         * config/darwin-protos.h (objc_image_info_section):
139         New prototype.
140
141 2003-09-25  Ziemowit Laski  <zlaski@apple.com>
142
143         * Makefile.in (stub-objc.o): Depend on $(GGC_H).
144
145 2003-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
146
147         * config.gcc: Get rid of more gratuitious 'x'es.  Actually allow
148         tsc701 as a --with-cpu, --with-tune setting for sparc.
149
150 2003-09-25  Ziemowit Laski  <zlaski@apple.com>
151
152         * c-parse.in (objc_try_stmt): Do not specify a %type.
153
154 2003-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
155
156         * config.gcc: New 'widely ported system' clause for rtems.
157         Set thread file there, not in individual clauses.
158
159 2003-09-25  Richard Sandiford  <rsandifo@redhat.com>
160
161         * config/mips/mips.c (mips_va_arg): Handle arguments that must be
162         passed on the stack.
163
164 2003-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
165
166         * config.gcc (widely ported systems section): Mostly alphabetize
167         by system.  Comment the case where we can't.
168         * config.gcc (widely ported systems section): Reindent and clean up.
169
170         * config.gcc: Remove some unnecessary uses of 'x' in case statements.
171         Actually allow ep9312 as an arm --with-arch setting.
172
173         * config.gcc (*-hpux11): Disable fixproto.
174
175 2003-09-24  Phil Edwards  <phil@codesourcery.com>
176
177         PR pch/12112
178         * gcc/cppfiles.c (pch_open_file): Return based on combined
179         result of all files.
180         (validate_pch): Return validate flag for current file.
181         
182 2003-09-24  Roger Sayle  <roger@eyesopen.com>
183
184         PR bootstrap/12358
185         * fold-const.c (tree_swap_operands_p): Only reorder operands when
186         one of the operands is constant.
187
188 2003-09-24  Ziemowit Laski  <zlaski@apple.com>
189
190         MERGE OF objc-improvements-branch into MAINLINE:
191         * Makefile.in (C_OBJS): Add in stub-objc.o.
192         (c-parse.y): Change sed demarcations to begin with '@@'.
193         (stub-objc.o): New rule.
194         * c-common.c (flag_nil_receivers, flag_objc_exceptions, flag_zero_link,
195         flag_replace_objc_classes): New flags.
196         * c-common.h (RID_AT_THROW, RID_AT_TRY, RID_AT_CATCH, RID_AT_FINALLY,
197         RID_AT_SYNCHRONIZED): New keywords.
198         (flag_nil_receivers, flag_objc_exceptions, flag_zero_link,
199         flag_replace_objc_classes): New flags.
200         (lookup_interface, is_class_name, objc_is_object_ptr, objc_check_decl,
201         objc_comptypes, objc_message_selector, lookup_objc_ivar,
202         get_current_scope, objc_mark_locals_volatile): New prototypes,
203         some moved from c-tree.h.
204         * c-decl.c (get_current_scope, objc_mark_locals_volatile): New functions.
205         (finish_decl): Adjust where objc_check_decl() gets called.
206         * c-lang.c (lookup_interface, is_class_name, objc_is_id,  objc_check_decl,
207         objc_comptypes, objc_message_selector, lookup_objc_ivar): Remove stubs.
208         * c-opts.c (c_common_handle_option): Add handling for  flag_nil_receivers,
209         flag_objc_exceptions, flag_replace_objc_classes and flag_zero_link.
210         * c-parse.in: Replace 'ifc' and 'end ifc' sed markers with '@@ifc' and
211         '@@end_ifc', respectively.
212         (AT_THROW, AT_TRY, AT_CATCH, AT_FINALLY, AT_SYNCHRONIZED): New %tokens.
213         (objc_try_stmt, superclass, class_ivars, objc_try_catch-stmt,
214         objc_finally_block): New rules.
215         (component_decl_list2): Clean up semantic action for @defs construct.
216         (component_decl, c99_block_start): Remove call to add_objc_decls().
217         (poplevel): Add call to objc_clear_super_receiver().
218         (stmt): Add rules for @throw, @try..@catch..@finally and @synchronized
219         constructs.
220         (classdef, methodprotolist): Clean up/simplify.
221         (methodprotolist2): Eliminate.
222         (methodproto): Call add_method() instead of add_class_method() and
223         add_instance_method().
224         (receiver): Add TYPENAME production.
225         (reswords): Add "throw", "try", "catch", "finally" and "synchronized".
226         (rid_to_yy): Add AT_THROW, AT_TRY, AT_CATCH, AT_FINALLY and
227         AT_SYNCHRONIZED.
228         * c-tree.h (lookup_interface, is_class_name, objc_is_id, objc_check_decl,
229         objc_comptypes, objc_message_selector)
230         * c-typeck.c (comptypes): In ObjC mode, call objc_comptypes() for
231         struct and pointer types.
232         (build_c_cast): Do not discard ObjC protocol qualifiers.
233         (convert_for_assignment): Cache result of comp_target_types() instead
234         of calling it more than once.
235         * c.opt (fnext-runtime): Update description string.
236         (fnil-receivers, fobjc-exceptions, freplace-objc-classes, fzero-link):
237         New ObjC/ObjC++-specific flags.
238         * function.h (GCC_FUNCTION_H): Header guard.
239         * gengtype-lex.l: Teach lexer about new @@... sed demarcations.
240         * stub-objc.c: New file, to be used to satisfy references to ObjC
241         functions by the C and C++ front-ends.
242         * config/darwin.c (_OBJC_IMAGE_INFO): New global metadata.
243         * config/darwin.h (FUNCTION): Add in_objc_image_info.
244         (SECTION_FUNCTION): Add objc_image_info_section.
245         * doc/invoke.texi: Link to GCC web site for Objective-C information.
246         (-fconstant-string-class): Update documentation.
247         (-fno-nil-receivers, -fobjc-exceptions, -freplace-objc-classes,
248         -fzero-link): New documentation.
249         * objc/Make-lang.in (objc-parse.y): Change sed demarcations to begin
250         with '@@'.
251         * objc/lang-specs.h (@objective-c-header): Fix -E spec.
252         * objc/objc/objc-act.c: Replace TYPE_NAME with OBJC_TYPE_NAME
253         throughout; provide casts for return values from memory allocation
254         functions (xmalloc, alloca, ggc_alloc, etc.).
255         (OBJC_VOID_AT_END): New macro.
256         (rtl.h): Do not #include any more.
257         (STRING_OBJECT_GLOBAL_NAME): Replaced with STRING_OBJECT_GLOBAL_FORMAT.
258         (TAG_MSGSEND_STRET, TAG_MSGSENDSUPER_STRET, TAG_MSGSEND_NONNIL,
259         TAG_MSGSEND_NONNIL_STRET, TAG_EXCEPTIONEXTRACT, TAG_EXCEPTIONTRYENTER,
260         TAG_EXCEPTIONTRYEXIT, TAG_EXCEPTIONMATCH, TAG_EXCEPTIONTHROW,
261         TAG_SYNCENTER, TAG_SYNCEXIT): New NeXT runtime entry points.
262         (struct val_stack, catch_count_stack, exc_binding_stack,  val_stack_push,
263         val_stack_pop): New.
264         (objc_check_decl): Fix precondition for error message, along with
265         the message itself.
266         (lookup_and_install_protocols): Remove nonexistent protocols from
267         protocol list instead of returning error_mark_node.
268         (create_builtin_decl): Use DECL_ARTIFICIAL only for VAR_DECLs.
269         (setup_string_decl): Generalize to use STRING_OBJECT_GLOBAL_FORMAT.
270         (synth_module_prologue): General clean-up; construct NeXT-specific
271         runtime API prototypes if needed.
272         (build_string_class_template): Remove.
273         (check_string_class_template, string_layout_checked): New.
274         (build_objc_string_object): Generalize to work with
275         -fconstant-string-class.
276         (build_objc_symtab_template): Fix layout for the NeXT runtime.
277         (build_metadata_decl): New.
278         (forward_declare_categories): Call build_metadata_decl() instead of
279         create_builtin_decl() et al.
280         (build_module_descriptor): Use OBJC_VOID_AT_END instead of
281         void_list_node_1.
282         (build_selector_reference_decl, build_class_reference_decl,
283         build_objc_string_decl): Do not set TREE_READONLY.
284         (get_proto_encoding): Do not call hack_method_prototype().
285         (get_class_reference): Add failure mode for invalid class names;
286         support -fzero-link; defer if in an ObjC++ template declaration.
287         (objc_declare_alias, objc_declare_class): Fix up duplicate name
288         lookup; check for global scope if in ObjC++.
289         (is_class_name): Generalize to work with various tree nodes (TYPE_DECL,
290         RECORD_TYPE, IDENTIFIER_NODE, etc.)
291         (objc_is_id): Removed.
292         (objc_is_object_ptr): New function.
293         (get_class_ivars_from_name): New function, used for @defs construct.
294         (get_class_ivars): Add option to return raw ivars; create a
295         ClASS_OWN_IVARS list for each class as needed.
296         (objc_enter_block, objc_exit_block, objc_declare_variable,
297         objc_build_throw_stmt, val_stack_push, val_stack_pop,
298         objc_build_try_enter_fragment, objc_build_extract_expr,
299         objc_build_try_exit_fragment, objc_build_extract_fragment,
300         objc_build_try_prologue, objc_build_try_epilogue,
301         objc_build_catch_stmt, objc_build_catch_epilogue,
302         objc_build_finally_prologue, objc_build_finally_epilogue,
303         objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
304         objc_build_synchronized_epilogue, build_objc_exception_stuff):
305         New functions.
306         (_JBLEN): _setjmp jmpbuf size (needs to be made a target hook in
307         the future).
308         (build_private_template): Fix up calls to get_class_ivars().
309         (offset_is_register, forwarding_offset): Remove.
310         (objc_method_parm_type, objc_encoded_type_size): New functions.
311         (encode_method_prototype): Simplify to no longer depend on
312         back-end information.
313         (build_tmp_function_decl_xxx, build_tmp_function_decl,
314         hack_method_prototype): Removed.
315         (generate_protocol_references): Remove calls to
316         build_tmp_function_decl().
317         (generate_protocols): Adjust calls to encode_method_prototype().
318         (build_class_template): Generate sel_id' and 'gc_object_type' fields
319         for the NeXT runtime.
320         (synth_forward_declarations): Call build_metadata_decl().
321         (check_ivars): Check that the number of ivars matches also.
322         (build_super_template): Modify super_type directly; disable debugging
323         output while generating decl.
324         (build_ivar_list_initializer): Skip list elements that are not
325         FIELD_DECLs.
326         (ivar_list_length): New function.
327         (generate_ivar_lists): Call ivar_list_length() instead of list_length()
328         and encode_method_prototype() instead of encode_method_def().
329         (build_shared_structure_initializer): Generate 'sel_id' field for
330         the NeXT runtime.
331         (generate_category): Do not set TREE_USED.
332         (build_keyword_selector): Ditto; transform into a function argument
333         chain.
334         (get_arg_type_list): If there are no user-specified arguments, use
335         '...'; use OBJC_VOID_AT_END.
336         (check_duplicates): Add a parameter indicating whether methods or
337         selectors are being checked.
338         (receiver_is_class_object): Add parameters indicating whether
339         receiver is 'self' or 'super'; robustify.
340         (build_message_expr): Defer call to finish_message_expr() if
341         inside an ObjC++ template.
342         (lookup_method_in_hash_lists): New function.
343         (finish_message_expr): Complete rewrite/fix.
344         (build_objc_method_call): Ditto; factor out commonalities between
345         the GNU and NeXT runtimes; acccommodate ..._stret and ...NonNil
346         messenger variants on the NeXT.
347         (lookup_instance_method_static, lookup_class_method_static):
348         Fold into a single lookup_method_static() function with an
349         additional parameter.
350         (add_class_method, add_instance_method): Fold into a single
351         add_method() function with an additional parameter.
352         (add_category): Make duplicate categories a hard error in ObjC++.
353         (add_instance_variable): Properly handle unnamed ivars, arrays of
354         zero or no size and bitfields.  In ObjC++, check for nontrivial
355         C++ class instances.
356         (is_public): Allow C functions to access non-@public ivars, with
357         a warning.
358         (start_class): Move common initializations to
359         synth_module_prologue(); check for global scope if in ObjC++.
360         (continue_class): Fix calls to finish_struct().
361         (objc_declare_protocols, start_protocol): Check for global scope
362         if in ObjC++.
363         (encode_pointer): Encode 'BOOL *' specially on the NeXT.
364         (encode_aggregate_within): Rewrite to properly distinguish
365         struct tags from typedefs in both ObjC and ObjC++.
366         (encode_bitfield, encode_complete_bitfield): Remove.
367         (encode_next_bitfield, encode_gnu_bitfield): New functions.
368         (encode_field_decl): Call encode_next_bitfield() or
369         encode_gnu_bitfield() as needed.
370         (synth_self_and_ucmd_args): New function.
371         (start_method_def): Use it.
372         (objc_types_are_equivalent): New function.
373         (comp_proto_with_proto): Use it instead of comptypes(), since
374         we need symmetry.
375         (really_start_method): Use lookup_method_static() instead of
376         lookup_class_method_static() and lookup_instance_method_static();
377         Emit 'extern "C"' if in ObjC++ mode.
378         (add_objc_decls): Removed.
379         (UOBJC_SUPER_scope): New variable.
380         (get_super_receiver): Move construction of 'super' from
381         add_objc_decls(); remove dependency on struct objc_class.
382         (encode_method_def): Removed; encode_method_prototype() is
383         used instead.
384         (objc_clear_super_receiver): New function.
385         (objc_expand_function_end): Do not do anything for ordinary
386         C functions.
387         (finish_method_def): Mark ObjC methods as un-inlinable.
388         (gen_declaration_1): Emit widths of bitfields.
389         (finish_objc): Call generate_objc_image_info() if needed;
390         use check_duplicates() when checking for selector duplicates.
391         (generate_objc_image_info): New function.
392         * objc/objc-act.h (add_instance_method, add_class_method,
393         get_class_ivars): Remove prototypes.
394         (objc_build_throw_stmt, objc_build_try_catch_finally_stmt,
395         objc_build_synchronized_prologue, objc_build_synchronized_epilogue,
396         objc_build_catch_stmt, objc_build_catch_epilogue,
397         objc_build_finally_prologue, objc_build_finally_epilogue,
398         add_method, get_class_ivars_from_name): New prototypes.
399         (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): New.
400         (TYPE_PROTOCOL_LIST): Robustify to distinguish from
401         TRANSLATION_UNIT_DECLs.
402         (OBJC_TYPE_NAME): New.
403         (objc_tree_code): Ensure that either <c-tree.h> or <cp/cp-tree.h>
404         got included.
405         (IS_SUPER): Robustify.
406         (umsg_stret_decl, umsg_super_stret_decl, umsg_nonnil_decl,
407         umsg_nonnil_stret_decl, objc_storage_class, objc_exception_extract_decl,
408         objc_exception_try_enter_decl, objc_exception_try_exit_decl,
409         objc_exception_match_decl, objc_exception_throw_decl,
410         objc_sync_enter_decl, objc_sync_exit_decl, objc_exception_data_template,
411         objc_setjmp_decl, objc_stack_exception_data, objc_caught_exception,
412         objc_rethrow_exception, objc_eval_once, objc_exception_block_stack,
413         objc_catch_type): New ObjC/ObjC++ roots.
414         * objc/objc-tree.def (MESSAGE_SEND_EXPR, CLASS_REFERENCE_EXPR): New
415         ObjC/ObjC++ tree node codes.
416  
417 2003-09-24  Alexandre Oliva  <aoliva@redhat.com>
418
419         * cpplib.c (do_pragma): Reintroduce cb_line_change call in the
420         code path that calls a handler.
421
422 2003-09-24  Nathanael Nerode  <neroden@gcc.gnu.org>
423
424         * config.gcc (c4x-*, tic4x-*, d30v-*, mmix-knuth-mmixware):
425         Disable fixproto.
426
427         * config.gcc: Clean up and reindent $with_cpu=yes|no clause and
428         the section giving $with_cpu defaults by target.
429
430         * config.gcc (arm-*-coff*, armel-*-coff*, arm*-*-ecos-elf,
431         arm*-*-elf, ep9312-*-elf, arm*-wince-pe*, arm*-*-pe*, arm*-*-pe*,
432         rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*,
433         rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*,
434         rs6000-ibm-aix[56789].*, powerpc-ibm-aix[56789].*,
435         i[34567]86-pc-msdosdjgpp*): Disable fixproto.
436
437 2003-09-24  David Edelsohn  <edelsohn@gnu.org>
438
439         * config/rs6000/rs6000.md (movti_power): Collapse case 1 and 2
440         together.  Protect load string instruction with TARGET_STRING.
441         (movti_string): Collapse case 1 and 2 together.
442
443 2003-09-24  Nathan Sidwell  <nathan@codesourcery.com>
444
445         * c-common.c (c_common_type_for_mode): Check for VOIDmode.
446
447 2003-09-24  Richard Earnshaw  <rearnsha@arm.com>
448
449         * arm.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Wrap in
450         do...while(0)
451
452 2003-09-23  Nathanael Nerode  <neroden@gcc.gnu.org>
453
454         * config.gcc: Move use_fixproto=no from generic vxworks clause to
455         specific one.
456
457         * config.gcc (powerpc-*-gnu-gnualtivec*): Disable fixproto
458         (accidentally missed in last pass).
459
460 2003-09-23  Andrew Pinski  <apinski@apple.com>
461
462         PR bootstrap/12383
463         * configure: Regenerate.
464
465 2003-09-23  Nathanael Nerode  <neroden@gcc.gnu.org>
466
467         * config.gcc (x86_64-*-freebsd*): Disable fixproto (accidentally
468         missed in last pass).
469
470 2003-09-23  Alexandre Oliva  <aoliva@redhat.com>
471
472         * config/mn10300/mn10300.md (andsi3): Fix cut&pasto in 0xfffffffe
473         constant.
474
475 2003-09-23  Nathanael Nerode  <neroden@gcc.gnu.org>
476
477         * config.gcc: Move vax-*-vms* unsupported notice up with the rest.
478
479         * config.gcc (alpha64*-dec-*vms*, alpha*-dec-*vms*,
480         powerpc-*-eabisim*, powerpc-*-eabi*, powerpcle-*-eabisim*,
481         powerpcle-*-eabi*): Disable fixproto.
482
483         * config.gcc: Move use_fixproto=no from generic FreeBSD clause to
484         specific FreeBSD clauses.
485         * config.gcc: Move use_fixproto=no from generic NetBSD clause to
486         specific NetBSD clauses.
487         * config.gcc: Move use_fixproto=no from generic OpenBSD clause
488         to specific OpenBSD clauses.
489
490 2003-09-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
491
492         * pa.c (hppa_expand_prologue): Do pic register save in frame marker
493         without adding a frame note.
494         * pa.md (allocate_stack): Save pic register in new frame marker when
495         generating pic code.
496
497 2003-09-23  Kelley Cook  <kelleycook@wideopenwest.com>
498
499         * cgraphunit.c (cgraph_expand_all_functions): Renamed from 
500         cgraph_expand_functions.
501
502 2003-09-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
503
504         * Makefile.in (gnucompare*): Merge into ...
505         (slowcompare*): ... here.
506         (fastcompare*): New targets.
507         * aclocal.m4 (gcc_AC_PROG_CMP_IGNORE_INITIAL): Add checks for
508         other "fast" cmp programs.
509         * configure: Regenerate.
510
511 2003-09-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
512
513         * targhooks.c: Include output.h.
514         * Makefile.in (targhooks.o): Add output.h to dependency list.
515         
516 2003-09-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
517
518         * config.host: Removed superfluous newline.
519
520 2003-09-23  Nathanael Nerode  <neroden@gcc.gnu.org>
521
522         * config.gcc: Use ${target}, not $machine.
523         * configure.in: Don't set $machine.
524         * configure: Regenerate.
525
526 2003-09-23  Geoffrey Keating  <geoffk@apple.com>
527
528         * config/t-darwin (crt2.o): Add stmp-int-hdrs to dependencies.
529
530         * config/rs6000/rs6000.c (function_arg_pass_by_reference): Don't
531         pass zero-size arrays by reference.
532         (rs6000_va_arg): Likewise.
533
534 2003-09-23  Nathanael Nerode  <neroden@gcc.gnu.org>
535
536         * config.gcc: Set use_fixproto=no in each specific *-gnu*
537         configuration, rather than the generic one.
538
539 2003-09-23  Richard Henderson  <rth@redhat.com>
540
541         * tree-inline.c (remap_save_expr): Map new save_expr to identity
542         rather than to error_mark_node.
543
544 2003-09-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
545
546         * configure.in (HAVE_GAS_SHF_MERGE): Always define to test result.
547         Update description.
548         * configure: Regenerate.
549         * config.in: Likewise.
550         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test for
551         HAVE_GAS_SHF_MERGE value. 
552         * varasm.c (mergeable_string_section): Likewise.
553         (mergeable_constant_section): Likewise.
554
555 2003-09-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
556
557         * except.h (MUST_USE_SJLJ_EXCEPTIONS): Test for DWARF2_UNWIND_INFO
558         value.
559
560 2003-09-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
561
562         * target.h (struct gcc_target): New member external_libcall.
563         * target-def.h (TARGET_ASM_EXTERNAL_LIBCALL): Provide default.
564         (TARGET_ASM_OUT): Use it.
565         * doc/tm.texi (TARGET_ASM_EXTERNAL_LIBCALL): Document.
566         * targhooks.c: Convert to ISO C 90.
567         (default_external_libcall): New function.
568         * targhooks.h (default_external_libcall): Declare.
569         * varasm.c (assemble_external_libcall): Use
570         targetm.asm_out.external_libcall instead of
571         ASM_OUTPUT_EXTERNAL_LIBCALL.
572         * config/mips/mips-protos.h [TARGET_IRIX5 || TARGET_IRIX 6]
573         (mips_output_external_libcall): Declare.
574         * config/mips/mips.c (mips_output_external_libcall): Change
575         definition guard.
576         Change to match TARGET_ASM_EXTERNAL_LIBCALL.
577         Only operate for O32 ABI.
578         * config/mips/iris5.h (TARGET_ASM_EXTERNAL_LIBCALL): Define
579         instead of ASM_OUTPUT_EXTERNAL_LIBCALL.
580         * config/mips/iris6.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Don't undef,
581         superceded by TARGET_ASM_EXTERNAL_LIBCALL.
582
583 2003-09-22  Nathnael Nerode  <neroden@gcc.gnu.org>
584
585         * config.gcc: Do per-target disabling of fixproto here in clauses,
586         not in t- fragments.
587         * configure.in: Adjust to set STMP_FIXPROTO correctly.
588         * configure: Regenerate.
589         * config/arm/t-semi, config/cris/t-cris, config/i386/t-beos,
590         config/i386/t-cygming, config/i386/t-nto, config/ia64/t-hpux,
591         t-freebsd, t-linux, t-netbsd, t-openbsd, t-rtems, t-vxworks,
592         xtensa/t-xtensa: Remove setting of STMP_FIXPROTO.
593         * config/i370/t-oe, config/i386/t-netware, config/pa/t-bsd,
594         t-interix, t-linux-aout:  Delete files consisting only of
595         setting of STMP_FIXPROTO.       
596
597         * config.host: Allow unknown hosts (not targets).  Allow
598         ns32k-*-netbsdelf* as a host (not a target).  Remove redundant
599         empty clauses.  Remove useless obsolete-configuration clause.
600         Prune unsupported configuration list.  Collapse identical 
601         clauses for closely related systems.  Rewrite comment for
602         unsupported hosts list.  Reorganize a little.
603
604 2003-09-22  Richard Henderson  <rth@redhat.com>
605
606         * c-common.c (c_common_signed_or_unsigned_type): Examine mode, 
607         not precision.
608
609 2003-09-22  David Edelsohn  <edelsohn@gnu.org>
610             Hartmut Penner  <hpenner@de.ibm.com>
611             Segher Boessenkool  <boessen@de.ibm.com>
612
613         * config/rs6000/rs6000.c (altivec_in_gprs_p): Rename to ...
614         (gpr_or_gpr_p): Test INT_REGNO_P and convert to boolean.  
615         (rs6000_split_altivec_in_gprs): Rename to ...
616         (rs6000_split_multireg_move): Add support for update addressing.
617         * config/rs6000/rs6000-protos.h: Same.
618         * config/rs6000/altivec.md: Same.
619         * config/rs6000/rs6000.md (movdi_internal32): Use new splitter for
620         multiple GPRs.
621         (movti): Remove TARGET_STRING || TARGET_POWERPC64 final condition.
622         (movti_power): Use new splitter for multiple GPRs.
623         (movti_string): Same.
624         (movti_ppc64): Same.
625
626 2003-09-22  Bob Wilson  <bob.wilson@acm.org>
627
628         * config/xtensa/xtensa-protos.h: Convert to ISO C90.
629         * config/xtensa/xtensa.c: Convert to ISO C90.  Minor formatting fixes.
630
631 2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
632
633         * config/mn10300/mn10300.md: Revert 2003-09-17's patch.
634         (andsi3): Set attr cc to set_zn when using shifts or adds.
635
636 2003-09-22  Bernardo Innocenti <bernie@develer.com>
637
638         * doc/contrib.texi: Add Peter Barada, Paul Dale and myself.
639
640 2003-09-22  Bernardo Innocenti  <bernie@develer.com>
641
642         * config/m68k/m68k.h (MASK_RTD, TARGET_RTD, RETURN_POPS_ARGS):
643         Resurrect -mrtd option.
644
645 2003-09-21  Andrew Pinski  <pinskia@physics.uc.edu>
646
647         PR target/12281
648         * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Call
649         mark_referenced instead of setting TREE_SYMBOL_REFERENCED.
650
651 2003-09-22  Olivier Hainque  <hainque@act-europe.fr>
652
653         PR target/9786
654         * reg-stack.c (convert_regs_1): Purge possible dead eh edges
655         after potential deletion of trapping insn. Avoids later ICE
656         from call to fixup_abnormal_edges.
657         (convert_regs_2): Stack the current block successors before
658         processing this block, that is, before the potential deletion of
659         dead edges by convert_regs_1, because these edges have been used
660         to initialize the predecessors count.
661
662 2003-09-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
663
664         * real.c: Fix several nits in the head comment.
665
666 2003-09-21  Richard Henderson  <rth@redhat.com>
667
668         * tree.h c-aux-info.c, c-decl.c, c-parse.in, coverage.c, dbxout.c, 
669         diagnostic.c, dwarf2out.c, dwarfout.c, function.c, integrate.c,
670         print-tree.c, stmt.c, toplev.c, tree-dump.c, tree-inline.c,
671         tree-optimize.c, tree.c, tree.def, xcoffout.c, config/alpha/alpha.c,
672         config/mips/mips.c, doc/c-tree.texi, objc/objc-act.c: Revert.
673
674 2003-09-21  Richard Henderson  <rth@redhat.com>
675
676         * tree.h (TREE_LOCUS): Rename from DECL_SOURCE_LOCATION; make const.
677         (TREE_FILENAME, TREE_LINENO): Likewise.
678         (set_tree_locus, copy_tree_locus, set_tree_file_line): New.
679         (TREE_LOCUS_SET_P): New.
680         * c-aux-info.c, c-decl.c, c-parse.in, coverage.c, dbxout.c, 
681         diagnostic.c, dwarf2out.c, dwarfout.c, function.c, integrate.c,
682         print-tree.c, stmt.c, toplev.c, tree-dump.c, tree-inline.c,
683         tree-optimize.c, tree.c, tree.def, xcoffout.c, config/alpha/alpha.c,
684         config/mips/mips.c, doc/c-tree.texi, objc/objc-act.c: Update to match.
685
686 2003-09-21  Nathanael Nerode  <neroden@gcc.gnu.org>
687
688         * config/vax/vax-protos.h: Convert to ISO C90.
689         * config/vax/vax.c: Convert to ISO C90.
690
691 2003-09-21  Graham Stott  <grahams@btinternet.com>
692
693        PR target/12353
694        * config/i386/i386.md(ffs_no_cmove): Fix operand 2 constraint.
695
696 2003-09-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
697
698         PR target/12301
699         * reorg.c (stop_search_p): Return 1 for insns that can
700         throw internally.
701
702 2003-09-20  Richard Henderson  <rth@redhat.com>
703
704         * c-format.c (gcc_diag_char_table): Add %J.
705         (gcc_cdiag_char_table, gcc_cxxdiag_char_table): Likewise.
706         (check_format_types): Fix wanted_type name lookup.
707         (init_dynamic_diag_info): Setup %J.
708         * diagnostic.c (text_specifies_location): Implement %J.
709         * c-common.c, c-decl.c, c-objc-common.c, c-pragma.c, calls.c,
710         dwarfout.c, expr.c, function.c, stmt.c, stor-layout.c, toplev.c,
711         tree-inline.c, tree-optimize.c, varasm.c, config/arm/pe.c,
712         config/i386/winnt.c, config/ia64/ia64.c, config/mcore/mcore.c,
713         config/v850/v850.c, objc/objc-act.c: Use %J in diagnostics.
714
715         * tree-inline.c: Include intl.h
716         (inline_forbidden_p_1): Fix i18n of inline_forbidden_reason.
717         * Makefile.in (tree-inline.o): Update.
718
719 2003-09-20  Roger Sayle  <roger@eyesopen.com>
720
721         * config/i386/i386.c (ix86_expand_carry_flag_compare): Fix
722         transformation of a>=0 into (unsigned)a<0x80000000.
723
724 2003-09-20  Andrew Pinski <apinski@apple.com>
725
726         * config/darwin.c (machopic_select_rtx_section): Fix check for PIC code.
727
728 2003-09-20  Nathanael Nerode  <neroden@gcc.gnu.org>
729
730         * Makefile.in: Don't set (unused) DLLTOOL.
731
732         * config/arm/t-linux, config/arm/t-netbsd, config/arm-t-semi:
733         Remove obsolete references to ENQUIRE.
734
735 2003-09-19  Nathanael Nerode  <neroden@gcc.gnu.org>
736
737         * configure.in: Remove --with-elf, which doesn't work.
738         * configure: Regenerate.
739         * config.gcc: Remove references to $elf, which does nothing.
740
741         * config/i386/xm-vsta.h: Remove xm-file believed useless.
742         * config.build (i386-vsta): Remove reference to it.
743         * config.host (i386-vsta): Remove reference to it.
744
745 2003-09-19  Phil Edwards  <phil@codesourcery.com>
746
747         * doc/install.texi:  Document the multiple testsuite options.
748
749 2003-09-19  Gerald Pfeifer  <gerald@pfeifer.com>
750
751         * doc/install.texi (Specific): Add the specific versions of GCC
752         where support for FreeBSD 1, HP-UX version 9 and older, and AIX
753         version 3 and older was discontinued.
754         
755 2003-09-19      Joel Sherrill <joel@oarcorp.com>
756
757         * config/m68k/t-m68kbare, config/m68k/t-rtems: Change 68681 to
758         68881.
759
760 2003-09-19  Bernardo Innocenti  <bernie@develer.com>
761
762         * config/m68k/m68k.h (TARGET_CPU_CPP_PREDEFINES): Add predefines
763         for -m68030, -m68020-60 and -m68020-40.
764         * config/m68k/m68k.h (TARGET_68030): New target flag.
765         * config/m68k/m68k.h (MASK_RTD, TARGET_RTD, MASK_REGPARM,
766         TARGET_REGPARM): Remove.
767         * config/m68k/m68k.h: Regroup and renumber target flags.
768         * config/m68k/m68k.h (TARGET_SWITCHES): Fix some tabulations.
769         * config/m68k/m68k.h (RETURN_POPS_ARGS): Always evaluate to 0.
770         * config/m68k/m68k.h (FUNCTION_ARG): Likewise.
771         * config/m68k/m68k.h (FUNCTION_ARG_PARTIAL_NREGS): Likewise.
772         * config/m68k/m68k-none.h: Use MASK_xxx values in M68K_CPU_xxx macros.
773
774 2003-09-19  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
775
776         * config/m68k/t-rtems (m68k-*-rtems*): New.
777         * config.gcc: Use config/m68k/t-rtems.
778
779 2003-09-19  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
780
781         * config/mips/t-rtems: New.
782         * config.gcc (mips*-*-rtems*): Use config/mips/t-rtems.
783
784 2003-09-19  Kelley Cook  <kelleycook@wideopenwest.com>
785
786         * cgraph.c: Fix typo in debugging output.
787
788 2003-09-19  T. Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
789             Eric Botcazou <ebotcazou@libertysurf.fr>
790
791         PR target/12166
792         * config/sparc/sol2-c1.asm (start): Set __Argv if GCRT1.
793
794 2003-09-18  Mike Stump  <mrs@apple.com>
795
796         * c-ppoutput.c (print):  Use fileline typedef for field 'line'.
797         (print_line, maybe_print_line, cb_define, cb_undef, cb_include,
798         cb_ident, cb_def_pragma):  Use fileline typedef.
799         * cpphash.h (struct cpp_reader):  Likewise for field out.first_line.
800
801 2003-09-18  Danny Smith  <dannysmith@users.sourceforge.net>
802
803         * config/i386/winnt.c (gen_stdcall_suffix): Quit summation of
804         total parm size if a parm has incomplete type.
805         (gen_fastcall_suffix): Likewise.
806
807 2003-09-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
808
809         * except.c (output_function_exception_table): Adjust last change
810         to handle TYPE of INTEGER_CST.
811
812 2003-09-18  Mark Mitchell  <mark@codesourcery.com>
813
814         PR target/11184
815         * builtins.c (expand_builtin_apply): Use convert_memory_address
816         before returning the value.
817         
818         * alias.c (find_base_value): Simplify use of
819         convert_memory_address.
820         (find_base_term): Likewise.
821         * builtins.c (expand_builtin_stejmp_setup): Likewise.
822         (expand_builtin_longjmp): Likewise.
823         (expand_builtin_prefetch): Likewise.
824         (get_memory_rtx): Likewise.
825         (expand_builtin_return): Likewise.
826         (expand_builtin_memcpy): Likewise.
827         (expand_builtin_strncpy): Likewise.
828         (expand_builtin_memset): Likewise.
829         (expand_builtin_va_arg): Likewise.
830         (expand_builtin_va_copy): Likewise.
831         (expand_builtin_alloca): Likewise.
832         * calls.c (expand_call): Likewise.
833         * except.c (expand_builtin_extract_return_addr): Likewise.
834         (expand_builtin_eh_return): Likewise.
835         * explow.c (convert_memory_address): Define even when
836         POINTER_EXTEND_UNSIGNED is not defined.  Do nothing if the address
837         is already in the right mode.
838         * explow.c (memory_address): Simplify use of convert_memory_address.
839         (probe_stack_range): Likewise.
840         * expmed.c (make_tree): Likewise.
841         * expr.c (emit_block_move_in_libcall): Likewise.
842         (expand_assignment): Likewise.
843         (expand_expr): Likewise.
844         * function.c (assign_parms): Likewise.
845         (expand_function_end): Likewise.
846         * integrate.c (copy_rtx_and_substitute): Likewise.
847         * stmt.c (expand_computed_goto): Likewise.
848
849 2003-09-18  Roger Sayle  <roger@eyesopen.com>
850
851         * simplify-rtx.c (simplify_unary_operation): Only transform
852         (not (eq X Y)) into (ne X Y) when mode is BImode or STORE_FLAG_VALUE
853         is -1.  RTL "not" is a bit-wise not, "~", not a logical not "!".
854
855 2003-09-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
856
857         PR target/11674
858         * config/i386/i386.c (x86_emit_floatuns): Also handle SImode operand.
859
860 2003-09-18  Roger Sayle  <roger@eyesopen.com>
861
862         * tree.def (FFS_EXPR, CLZ_EXPR, CTZ_EXPR, POPCOUNT_EXPR,
863         PARITY_EXPR): Delete unused tree codes.
864         * c-common.c (c_common_truthvalue_conversion): Delete references
865         to FFS_EXPR and POPCOUNT_EXPR.
866         * c-pretty-print.c (pp_c_postfix_expression): Remove FFS_EXPR.
867         (pp_c_expression): Likewise.
868         * expr.c (expand_expr): Delete RTL expansion of FFS_EXPR, CLZ_EXPR,
869         CTZ_EXPR, POPCOUNT_EXPR and PARITY_EXPR.
870         * fold-const.c (tree_expr_nonnegative_p): Remove FFS_EXPR, CLZ_EXPR,
871         CTZ_EXPR, POPCOUNT_EXPR and PARITY_EXPR.  Add support for calls to
872         BUILT_IN_FFS, BUILT_IN_PARITY and BUILT_IN_POPCOUNT and their long
873         and long long variants.
874
875 2003-09-18  Gabriel Dos Reis  <gdr@integrable-solutions.net>
876
877         * c-pretty-print.h (pp_type_specifier_seq): Fix thinko.
878         * c-pretty-print.c: Fix formatting.
879         (pp_c_integer_constant): Append type annotation to literals.  Tidy.
880         (pp_c_type_specifier): Tidy.
881         (pp_c_compound_literal): New function.
882         (pp_c_initializer): Simplify..
883         (pp_c_initializer_list): Likewise.
884         (pp_c_brace_enclosed_initializer_list): New function.
885         (pp_c_postfix_expression): Simplify.
886
887 2003-09-17  Alexandre Oliva  <aoliva@redhat.com>
888
889         * config/mn10300/mn10300.md (andsi3, iorsi3, xorsi3,
890         one_complsi2, bit-clear, bit-set, iorqi3): Make them set_zn.
891
892 2003-09-17  Richard Henderson  <rth@redhat.com>
893
894         * tree-optimize.c (tree_rest_of_compilation): Save and restore
895         input_location.
896
897 2003-09-17  Daniel Jacobowitz  <drow@mvista.com>
898
899         * config/rs6000/sysv4.h (LIB_LINUX_SPEC): Give -lpthread before -lc.
900
901 2003-09-17  Richard Henderson  <rth@redhat.com>
902
903         * cfg.c (dump_flow_info): Skip register dump if reg_n_info null.
904
905 2003-09-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
906
907         * configure.in (gcc_cv_ld_hidden): Don't test gnu_ld_flag.
908         * configure: Regenerate.
909
910 2003-09-17  Mark Mitchell  <mark@codesourcery.com>
911
912         PR debug/12066
913         * dbxout.c (dbxout_init): Use a langhook to find builtin types.
914         * langhooks-def.h (lhd_return_null_tree_v): New function.
915         (LANG_HOOKS_BUILTIN_TYPE_DECLS): New macro.
916         (LANG_HOOKS_DECLS): Add it to the intializer.
917         * langhooks.c (lhd_return_null_tree_v): New function.
918         * langhooks.h (lang_hooks_for_decls): Add builtin_type_decls.
919
920 2003-09-17  Daniel Jacobowitz  <drow@mvista.com>
921
922         * configure.in: Quote gcc_config_arguments for configargs.h.
923         * configure: Regenerated.
924         * gccbug.in: Don't shell-expand gcc_config_arguments.
925
926 2003-09-17  Gabriel Dos Reis  <gdr@integrable-solutions.net>
927
928         PR c++/11357
929         * c-pretty-print.c (pp_c_floating_constant): Append
930         type-annotation to floating constants.
931
932 2003-09-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
933
934         * config/mips/iris5.h (TARGET_OS_CPP_BUILTINS): Define _LONGLONG.
935         Define _ABIO32.
936         Use it for _MIPS_SIM.
937         * config/mips/iris6-o32.h (TARGET_OS_CPP_BUILTINS): Removed.
938
939         * config/mips/iris6-o32-as.h (SUBTARGET_ASM_OPTIMIZING_SPEC):
940         Moved ...
941         * config/mips/iris5.h (SUBTARGET_ASM_OPTIMIZING_SPEC): ... here,
942         updating comment.
943         Fixes PR target/10190.
944
945 2003-09-17  Daniel Jacobowitz  <drow@mvista.com>
946
947         * config/rs6000/sysv4.h (LIB_LINUX_SPEC): Make -pthread apply
948         to shared libraries.
949
950 2003-09-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
951
952         PR optimization/11646
953         * cfgrtl.c (purge_dead_edges) [JUMP_INSN]: Rematerialize the
954         EDGE_ABNORMAL flag for EH edges.
955         * toplev.c (rest_of_handle_cse): Delete unreachable blocks
956         if dead edges were purged.
957
958 2003-09-16  Bernardo Innocenti  <bernie@develer.com>
959
960         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Add target predefines.
961         * config/m68k/m68k-none.h (CPP_CPU_DEFAULT_SPEC): Kill all definitions.
962         * config/m68k/m68k-none.h (CPP_FPU_SPEC): Remove.
963         * config/m68k/m68k-none.h (CPP_SPEC): Likewise.
964
965 2003-09-16  Ian Lance Taylor  <ian@wasabisystems.com>
966
967         * cfgcleanup.c (label_is_jump_target_p): Correct use of table
968         returned by tablejump_p.
969
970 2003-09-16  Joel Brobecker  <brobecker@gnat.com>
971
972         * dwarf2asm.c (dw2_asm_output_nstring): Add comment.
973
974 2003-09-16  Roger Sayle  <roger@eyesopen.com>
975
976         PR bootstrap/12269
977         * simplify-rtx.c (simplify_gen_relational): Allow the cmp_mode
978         argument to be VOIDmode, taking the mode of the comparison from
979         the operands.  Only call simplify_relational_operation if we
980         know the mode of the comparison.  Honor FLOAT_STORE_FLAG_VALUE
981         if comparison has a floating point result.  Ensure that the
982         result is always of the specified mode.
983         (simplify_replace_rtx): Simplify call to simplify_gen_relational.
984         (simplify_unary_operation): Ensure the correct mode and cmp_mode
985         are always passed to simplify_gen_relational.  Simplify NOT of
986         comparison operator in any mode, not just BImode.
987         (simplify_ternary_operation): Correct tests on the return value
988         of simplify_relational_operation to use const_true_rtx, not
989         const1_rtx.  Abort if it ever returns a non-constant result.
990
991         * cfgloopanal.c (count_strange_loop_iterations): Use the function
992         simplify_relational_operation, not simplify_gen_relational, if
993         we're only interested in constant comparisons and will ignore
994         non-constant results.
995
996 2003-09-16  Roger Sayle  <roger@eyesopen.com>
997
998         * fold-const.c (tree_swap_operands_p): New function to determine
999         the prefered ordering of operands.
1000         (fold): Numerous clean-ups.  Use tree_swap_operands_p when swapping
1001         operands to commutative, comparison or ternary operators.  Replace
1002         uses of TREE_SET_CODE with recursive call to fold.  Remove duplicate
1003         transformation of A ? B : C into !A ? C : B.
1004
1005 2003-09-16  Jakub Jelinek  <jakub@redhat.com>
1006
1007         * config/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
1008         * config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
1009         * config/arm/linux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
1010         * config/rs6000/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
1011         * config/rs6000/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
1012         * config/sh/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
1013         * config/sparc/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
1014         * config/sparc/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
1015
1016 2003-09-16  Jason Merrill  <jason@redhat.com>
1017             Jakub Jelinek  <jakub@redhat.com>
1018
1019         * c-common.c (handle_warn_unused_result_attribute): New function.
1020         (c_common_attribute_table): Add warn_unused_result.
1021         (c_expand_expr): Issue warning when result of inlined function
1022         with warn_unused_result attribute is ignored.
1023         * calls.c (expand_call): Issue warning when result of function
1024         with warn_unused_result attribute is ignored.
1025         * c-common.h (STMT_EXPR_WARN_UNUSED_RESULT): Define.
1026         * expr.c (expr_wfl_stack): Define.
1027         (expand_expr) <case EXPR_WITH_FILE_LOCATION>: If ignore,
1028         pass const0_rtx as target.  Chain locations into expr_wfl_stack.
1029         * tree-inline.c (expand_call_inline): Set STMT_EXPR_WARN_UNUSED_RESULT
1030         bit if inlined function has warn_unused_result attribute.
1031         * input.h (expr_wfl_stack): Declare.
1032         * doc/extend.texi: Document warn_unused_result attribute.
1033
1034 2003-09-15  Alexandre Oliva  <aoliva@redhat.com>
1035
1036         * cpplib.c (do_pragma): Remove unnecessary cb_line_change.
1037
1038 2003-09-15  Bob Wilson  <bob.wilson@acm.org>
1039
1040         * config/xtensa/xtensa.c (xtensa_multibss_section_type_flags): Add
1041         ATTRIBUTE_UNUSED.
1042         (call_insn_operand): For PIC, don't allow a direct call to a
1043         function in a different section than the current one.
1044
1045 2003-09-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1046         
1047         * doc/invoke.texi (Warning Options): Add missing hyphen before
1048         "Wimport".  Change "-Wno-endif-labels" to "-Wendif-labels".
1049         Move "-Wold-style-definition" to the C-only section.
1050         Fix the ordering of the warning options.
1051
1052 2003-09-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1053             Jeff Law  <law@redhat.com>
1054
1055         * gcse.c (remove_reachable_equiv_notes): New.
1056         replace_store_insn): Call it.  Update antic list.
1057         (store_killed_in_insn): Take REG_EQUAL notes into account.
1058         (build_store_vectors, delete_store): Add parameter to
1059         replace_store_insn call.
1060
1061 2003-09-15  Bob Wilson  <bob.wilson@acm.org>
1062
1063         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND_P): Use
1064         SYMBOL_REF_LOCAL_P.
1065
1066 2003-09-15  Kazu Hirata  <kazu@cs.umass.edu>
1067
1068         * expr.h (DEFAULT_FUNCTION_ARG_PADDING): New.
1069         (FUNCTION_ARG_PADDING): Use DEFAULT_FUNCTION_ARG_PADDING.
1070         * config/ia64/ia64.c (ia64_hpux_function_arg_padding):
1071         Likewise.
1072         * config/m68hc11/m68hc11.c (m68hc11_function_arg_padding):
1073         Likewise.
1074         * config/rs6000/rs6000.c (function_arg_padding): Likewise.
1075         * config/sparc/sparc.c (function_arg_padding): Likewise.
1076
1077 2003-09-15  Vladimir Makarov  <vmakarov@redhat.com>
1078
1079         * haifa-sched.c (schedule_block): Use ready_remove_first instead
1080         of choose_ready for non-dfa insn scheduling.
1081
1082 2003-09-15  Andreas Jaeger  <aj@suse.de>
1083             Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1084
1085         * doc/invoke.texi (Warning Options): Describe -Wold-style-definition.
1086         * c-opts.c (c_common_handle_option): Handle OPT_Wold_style_definition.
1087         * c-parse.in: Warn about old-style parameter definition.
1088         * c-common.c: Define warn_old_style_defintion.
1089         * c-common.h: Declare it.
1090         * c.opt: Add Wold-style-defintion.
1091
1092 2003-09-15  Andreas Jaeger  <aj@suse.de>
1093
1094         * config/rs6000/altivec.h: Convert () prototypes to ISO C90.
1095         * config/rs6000/rs6000.c: Likewise.
1096
1097 2003-09-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1098
1099         PR optimization/10914
1100         * expr.h (get_condition, canonicalize_condition): Declaration changed.
1101         * cfgloopanal.c (simple_loop_exit_p): Add parameter to a get_condition
1102         and canonicalize_condition calls.
1103         * gcse.c (fis_get_condition, delete_null_pointer_checks_1,
1104         delete_null_pointer_checks): Ditto.
1105         * ifcvt.c (noce_get_alt_condition, noce_get_condition): Ditto.
1106         * predict.c (estimate_probability, expected_value_to_br_prob): Ditto.
1107         * loop.c (check_dbra_loop, get_condition_for_loop): Ditto.
1108         (canonicalize_condition, get_condition): Allow to return comparisons
1109         of cc mode registers.
1110         * loop-unswitch.c (may_unswitch_on_p, unswitch_single_loop): Allow
1111         cc mode registers comparison in condition.
1112
1113 2003-09-12  Mark Mitchell  <mark@codesourcery.com>
1114
1115         * coverage.c (create_coverage): Do not call pushlevel/poplevel.
1116         * langhooks-def.h (lhd_do_nothing_iii_return_null_tree): New
1117         function.
1118         * langhooks.c (lhd_do_nothing_iii_return_null_tree): Define it.
1119         
1120 2003-09-14  Kazu Hirata  <kazu@cs.umass.edu>
1121
1122         * combine.c (simplify_comparison): Convert
1123         (ne (and (lshiftrt (xor X CST) Y) 1) 0) into
1124         (eq (and (lshiftrt X Y) 1) 0).
1125
1126 2003-09-14  Kazu Hirata  <kazu@cs.umass.edu>
1127
1128         * alias.c: Follow spelling conventions.
1129         * cpphash.h: Likewise.
1130         * fold-const.c: Likewise.
1131
1132 2003-09-14  Alexandre Oliva  <aoliva@redhat.com>
1133
1134         * c-ppoutput.c (cb_line_change): Revert 2003-08-04's change.
1135         * c-lex.c (cb_line_change): Skip line changing whenever
1136         c-ppoutput.c would.
1137
1138 2003-09-14  Steven Bosscher  <steven@gcc.gnu.org>
1139
1140         * ra.c: Convert to ISO C90 prototypes.
1141         * ra-build.c: Likewise.
1142         * ra-colorize.c: Likewise.
1143         * ra-debug.c: Likewise.
1144         * ra-rewrite.c: Likewise.
1145
1146 2003-09-14  Richard Sandiford  <rsandifo@redhat.com>
1147
1148         * Makefile.in (%.dvi): Remove excess $(docdir).
1149
1150 2003-09-14  Richard Sandiford  <rsandifo@redhat.com>
1151
1152         * function.c (STACK_BYTES): Move definition to head of file.
1153         (assign_parms): Don't pass current_function_pretend_args_size
1154         directly to SETUP_INCOMING_VARARGS.  For partial register arguments,
1155         round current_function_pretend_args_size up to STACK_BYTES.  Skip any
1156         excess before laying out the argument.
1157
1158 2003-09-14  Andreas Jaeger  <aj@suse.de>
1159
1160         * objc/objc-act.c: Convert to ISO C90 prototypes.
1161         * objc/objc-act.h: Likewise.
1162
1163 2003-09-14  Olaf Hering  <olh@suse.de>
1164
1165         * config/rs6000/rs6000.c: Fix typo: Remove extra ')'.
1166
1167 2003-09-13  Andrew Pinski <pinskia@physics.uc.edu>
1168
1169         PR target/12021
1170         * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Remove the asserts
1171         as they already are done in config/m68k/m68k.h.
1172         * config/m68k/netbsd.h (TARGET_OS_CPP_BUILTINS): Likewise
1173
1174         * config/rs6000/rs6000.c (GEN_LOCAL_LABEL_FOR_SYMBOL): Remove.
1175         (machopic_output_stub): Only generate pic base symbols when using pic
1176         and generate them in the form L00000000$spb.
1177
1178 2003-09-13  Richard Henderson  <rth@redhat.com>
1179
1180         * cgraphunit.c (cgraph_assemble_pending_functions): Export.
1181         (cgraph_finalize_function): Revert TREE_ASM_WRITTEN check.
1182         * cgraph.h: Update.
1183
1184 2003-09-12  Dale Johannesen  <dalej@apple.com>
1185
1186         * config/rs6000/rs6000.c: Fix typos in previous.
1187
1188 2003-09-12  Ziemowit Laski  <zlaski@apple.com>
1189
1190         * pretty-print.c (pp_construct): Use xcalloc instead of xmalloc
1191         when allocating pp->buffer.
1192
1193 2003-09-12  Geoffrey Keating  <geoffk@apple.com>
1194
1195         * config/darwin.c (machopic_select_rtx_section): Use
1196         const_data_section for things that might require relocation.
1197
1198 2003-09-12  H.J. Lu  <hongjiu.lu@intel.com>
1199
1200         PR bootstrap/12264
1201         * tree-inline.c (inline_forbidden_p_1): Cast the 3rd arg to tree.
1202
1203 2003-09-12  Bob Wilson  <bob.wilson@acm.org>
1204         
1205         * config/xtensa/elf.h (ASM_SPEC): Remove no-density option.  Reformat.
1206         * config/xtensa/linux.h (ASM_SPEC): Likewise.
1207         * config/xtensa/xtensa.h (TARGET_SWITCHES): Remove -mbig-endian,
1208         -mlittle-endian, -m[no-]density, -m[no-]abs, -m[no-]addx, -m[no-]mac16,
1209         -m[no-]mul16, -m[no-]mul32, -m[no-]nsa, -m[no-]minmax, -m[no-]sext,
1210         -m[no-]booleans, -mhard-float, -msoft-float, -m[no-]hard-float-div,
1211         -m[no-]hard-float-recip, -m[no-]hard-float-sqrt, and
1212         -m[no-]hard-float-rsqrt options.  Delete corresponding MASK_* macros
1213         and redefine corresponding TARGET_* macros with constants from the
1214         xtensa-config.h header.
1215         * doc/invoke.texi (Option Summary, Xtensa Options): Remove documention
1216         for the options listed above.
1217         
1218 2003-09-12  Dale Johannesen  <dalej@apple.com>
1219
1220         * config/rs6000/rs6000-protos.h:  Use C90 prototypes.
1221         * config/rs6000/rs6000-c.c:  Ditto. 
1222         * config/rs6000/rs6000.c:  Ditto.
1223         * config/rs6000/ sysv4.h:  Ditto.
1224
1225 2003-09-12  Chris Lattner <sabre@nondot.org>
1226
1227         * loop.c: Move comments describing BIV's and GIV's to top of file
1228
1229 2003-09-12  Roger Sayle  <roger@eyesopen.com>
1230
1231         PR optimization/8967
1232         * alias.c (write_dependence_p): Modify to take an additional constp
1233         argument that controls whether the UNCHANGING_RTX_P flags are used.
1234         (anti_dependence, output_dependence): Adjust write_dependence_p
1235         callers to pass this additional argument, to return the same result.
1236         (unchanging_anti_dependence): New variant of anti_dependence that
1237         ignores the UNCHANGING_RTX_P property on memory references.
1238         * rtl.h (unchaning_anti_dependence): Prototype here.
1239         * flow.c (init_propagate_block): Place fake constant mem writes on
1240         the mem_set_list so that dead writes to const variables are deleted.
1241         (insn_dead_p): Change anti_dependence to unchanging_anti_dependence.
1242         (mark_used_regs): Likewise.
1243
1244 2003-09-12  Richard Sandiford  <rsandifo@redhat.com>
1245
1246         * config/mcore/mcore-protos.h (mcore_r15_operand_p): Declare.
1247         (mcore_secondary_reload_class): Declare.
1248         (mcore_output_inline_const_forced): Remove.
1249         * config/mcore/mcore.md (movsi): Remove the code that forced
1250         non-inlineable constants into a register if the target was r15
1251         or the stack pointer.  Remove constant restrictions from the main
1252         define_insn.  Remove r <- I, r <- M and r <- N alternatives in favor
1253         of an r <- P alternative.  Remove fallback define_insn for reload.
1254         (movhi, movqi): Use gen_lowpart rather than gen_SUBREG.  Remove reload
1255         define_insn.  Use mcore_output_move in the remaining define_insn.
1256         Adjust condition and constraints in the way as for movsi.
1257         (movdi): Always split unacceptable constants into two.  Use
1258         simplify_gen_subreg instead of operand_subword{,_force}.
1259         * config/mcore/mcore.c (mcore_output_inline_const_forced): Remove.
1260         (mcore_output_move): Support HImode and QImode moves as well.
1261         (mcore_m15_operand_p): New function.
1262         (mcore_reload_class): Use it to detect cases where LRW_REGS are better.
1263         (mcore_secondary_reload_class): New function.
1264         * config/mcore/mcore.h (SECONDARY_RELOAD_CLASS): Redefine in
1265         terms of mcore_secondary_reload_class.
1266
1267 2003-09-11  Mike Stump  <mrs@apple.com>
1268
1269         * c-lex.c (fe_file_change): Don't transform to_line with SOURCE_LINE.
1270
1271 2003-09-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1272
1273         * builtins.c (fold_builtin_logarithm): if N can't be truncated to
1274         MODE exactly, then only convert logN(N) -> 1.0 if
1275         flag_unsafe_math_optimizations is set.
1276
1277         * builtins.c (builtin_dconsts_init, dconstpi, dconste,
1278         init_builtin_dconsts): Delete.
1279         * emit-rtl.c (dconstpi, dconste): Define.
1280         (init_emit_once): Initialize dconstpi & dconste.
1281         * real.h (dconstpi, dconste): Declare.
1282
1283 2003-09-11  Alexandre Oliva  <aoliva@redhat.com>
1284
1285         PR fortran/11522
1286         * dwarf2out.c (gen_inlined_subroutine_die): Emit abstract function
1287         for ultimate origin even if block is abstract.
1288
1289 2003-09-11  Roger Sayle  <roger@eyesopen.com>
1290
1291         * combine.c (combine_simplify_rtx): Move several NOT and NEG
1292         optimizations from here...
1293         * simplify-rtx.c (simplify_unary_operation): to here.  Recursively
1294         simplify expressions using simplify_gen_*ary instead of gen_rtx_*.
1295
1296 2003-09-11  Richard Henderson  <rth@redhat.com>
1297
1298         * cgraphunit.c (cgraph_finalize_function): Add nested arg.
1299         Tweek tests for function already generated.
1300         (cgraph_expand_function): Don't double announce in !unit-at-a-time.
1301         * cgraph.h (cgraph_finalize_function): Update for extra arg.
1302         * c-decl.c (finish_function): Likewise.
1303
1304 2003-09-10  Joe Buck  <jbuck@welsh-buck.org>
1305
1306         * c-decl.c (poplevel): Eliminate use of |= in function_body assignment.
1307
1308 2003-09-10  Jerry Quinn  <jlquinn@optonline.net>
1309
1310         * real.c: Update URL to VAX floating point docs.
1311         (decode_vax_d): Extract 8 exponent bits instead of 7.
1312
1313 2003-09-10  Ian Lance Taylor  <ian@wasabisystems.com>
1314
1315         * combine.c (force_to_mode): Set fuller_mask based only on mask,
1316         not op_mode.
1317
1318 2003-09-11  Jan Hubicka  <jh@suse.cz>
1319
1320         * c-objc-common.c (c_cannot_inline_tree_fn): Warn
1321         on why function is not inlinable; do not check
1322         the body.
1323         (inline_forbidden_p): Move to...
1324         * tree-inline.c (inline_forbidden_p_1): ... here; Add warnings;
1325         deal with alloca, longjmp.
1326         (inline_forbidden_p): New static function.
1327         (find_alloca_call_1, find_alloca_call, find_builtin_longjmp_call_1,
1328         find_builtin_longjmp_call): Kill.
1329
1330 2003-09-10  Richard Henderson  <rth@redhat.com>
1331
1332         * cgraph.h (struct cgraph_node): Rename lowered to analyzed.
1333         * cgraphunit.c: Update to match.
1334         (record_call_1): Rearrange.  Call lang hook for language nodes.
1335         (cgraph_analyze_function): Don't call lower_function.
1336         * langhooks.h (struct lang_hooks_for_callgraph): Replace 
1337         lower_function with analyze_expr.
1338         * langhooks-def.h: Update to match.
1339         * langhooks.c (lhd_callgraph_analyze_expr): New.
1340
1341 2003-09-10  Martin Husemann  <martin@duskware.de>
1342
1343         PR target/11965
1344         * config/sparc/sparc.c (sparc_v8plus_shift): Protect against
1345         constants greater than 63.
1346         * config/sparc/sparc.md (ashlsi3, ashrsi3, lshrsi3): Protect
1347         against constants greater than 31.
1348         (*ashldi3_sp64, *ashrdi3_sp64, *lshrdi3_sp64): Protect against
1349         constants greater than 63.
1350
1351 2003-09-09  Richard Henderson  <rth@redhat.com>
1352
1353         * cgraphunit.c (cgraph_finalize_function): Remove unused argument.
1354         * cgraph.h (cgraph_finalize_function): Update.
1355         * c-decl.c (finish_function): Update.
1356
1357 2003-09-09  Devang Patel  <dpatel@apple.com>
1358
1359         * config/darwin.h (LINK_SPEC): Pass -nofixprebinding to linker.
1360         * doc/invoke.texi: Document new Darwin linker option -nofixprebinding.
1361         
1362 2003-09-09  Eric Christopher  <echristo@redhat.com>
1363
1364         * configure.in: Change usage of 'head' to 'sed 1q'.
1365         * configure: Regenerate.
1366
1367 2003-09-09  Richard Henderson  <rth@redhat.com>
1368
1369         * except.c: Include cgraph.h.
1370         (output_function_exception_table): Invoke
1371         cgraph_varpool_mark_needed_node.
1372         * Makefile.in (except.o): Update.
1373
1374 2003-09-07  Kelley Cook  <kelleycook@wideopenwest.com>
1375
1376         * Makefile.in: Define REMAKEFLAGS for LANGUAGES & BOOT_CFLAGS
1377         and use it throughout.
1378
1379 2003-09-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1380
1381         * builtins.c (real_dconstp, fold_builtin_logarithm,
1382         fold_builtin_exponent): New, split out from fold_builtin.  Also
1383         generalize to add log2, log10, exp2 and exp10/pow10 equivalents.
1384         * emit-rtl.c (dconst3, dconst10, dconstthird): New.
1385         (init_emit_once): Initialize new dconsts, use ARRAY_SIZE in lieu
1386         of hardcoded array size.
1387         * fold-const.c (fold): Add cases for exp2, exp10 and pow10.
1388         (tree_expr_nonnegative_p): Likewise.
1389         * real.h (dconst3, dconst10, dconstthird): New.
1390
1391 2003-09-09  Jan Hubicka  <jh@suse.cz>
1392
1393         * cgraphunit.c (cgraph_finalize_function): Fix handling of extern
1394         inline functions.
1395         (cgraph_finalize_compilation_unit): Fix crash when dealing with lost
1396         DECL_SAVED_TREE.
1397
1398 2003-09-09  Roger Sayle  <roger@eyesopen.com>
1399
1400         * builtins.c (fold_builtin_cabs): Protect the complex argument
1401         against multiple evaluation when optimizing cabs* into sqrt*.
1402
1403 2003-09-09  Jan Hubicka  <jh@suse.cz>
1404
1405         * varasm.c (notice_global_symbol):  Properly deal with weak symbols.
1406
1407 2003-09-08  Kelley Cook <kelleycook@wideopenwest.com>
1408
1409         * Makefile.in: Revert yesterday's change.
1410
1411 2003-09-08  Bernardo Innocenti  <bernie@develer.com>
1412             Peter Barada <peter@baradas.org>
1413
1414         * config/m68k/coff.h (REGISTER_NAMES): Add fake register `argptr'
1415         * config/m68k/hp320.h (REGISTER_NAMES): Likewise.
1416         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
1417         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
1418         * gcc/config/m68k/sgs.h (REGISTER_NAMES): Likewise.
1419         * config/m68k/m68k-protos.h (m68k_initial_elimination_offset): Add prototype.
1420         * config/m68k/m68k.c (m68k_frame): New struct, simular to ix86 back-end.
1421         (m68k_compute_frame_layout): New function.
1422         (m68k_initial_elimination_offset): New function.
1423         (m68k_output_function_prologue): ColdFire-specific movem handling.
1424         (m68k_output_function_epilogue): Likewise.
1425         * config/m68k/m68k.h (FIRST_PSEOUDO_REGISTER): Make room for argptr reg.
1426         (ARG_POINTER_REGNUM): Add new definition.
1427         (INITIAL_FRAME_POINTER_OFFSET): Remove macro.
1428         (ELIMINABLE_REGS): Define new macro, like in ix86 back-end.
1429         (CAN_ELIMINATE): Likewise.
1430         (INITIAL_ELIMINATION_OFFSET): Likewise.
1431
1432 2003-09-08  Bernardo Innocenti  <bernie@develer.com>
1433
1434         * config/m68k/m68k.c (m68k_output_function_prologue): Simplify
1435         by removing redundant variable cfa_store_offset.
1436
1437 2003-09-08  Mark Mitchell  <mark@codesourcery.com>
1438
1439         * langhooks-def.h (lhd_register_builtin_type): New function.
1440         (LANG_HOOKS_REGISTER_BUILTIN_TYPE): New macro.
1441         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
1442         * langhooks.h (lang_hooks_for_types): Add register_builtin_type.
1443         * langhooks.c (lhd_register_builtin_type): New function.
1444         * c-common.h (c_register_builtin_type): Declare.
1445         * c-common.c (c_register_builtin_type): New function.
1446         * c-lang.c (LANG_HOOKS_REGISTER_BUILTIN_TYPE): Define to
1447         c_register_builtin_type.
1448         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Remove __fpreg,
1449         __float80, and __float128 macros.
1450         * config/ia64/ia64.c (ia64_init_builtins): Create __fpreg,
1451         __float80, and __float128 types.
1452
1453 2003-09-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1454
1455         * builtin-types.def
1456         (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE,
1457         BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE_COMPLEX_DOUBLE,
1458         BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT_COMPLEX_FLOAT): New.
1459         * builtins.def (BUILT_IN_CACOS, BUILT_IN_CACOSF, BUILT_IN_CACOSH,
1460         BUILT_IN_CACOSHF, BUILT_IN_CACOSHL, BUILT_IN_CACOSL,
1461         BUILT_IN_CARG, BUILT_IN_CARGF, BUILT_IN_CARGL, BUILT_IN_CASIN,
1462         BUILT_IN_CASINF, BUILT_IN_CASINH, BUILT_IN_CASINHF,
1463         BUILT_IN_CASINHL, BUILT_IN_CASINL, BUILT_IN_CATAN,
1464         BUILT_IN_CATANF, BUILT_IN_CATANH, BUILT_IN_CATANHF,
1465         BUILT_IN_CATANHL, BUILT_IN_CATANL, BUILT_IN_CCOS, BUILT_IN_CCOSF,
1466         BUILT_IN_CCOSH, BUILT_IN_CCOSHF, BUILT_IN_CCOSHL, BUILT_IN_CCOSL,
1467         BUILT_IN_CEXP, BUILT_IN_CEXPF, BUILT_IN_CEXPL, BUILT_IN_CPOW,
1468         BUILT_IN_CPOWF, BUILT_IN_CPOWL, BUILT_IN_CPROJ, BUILT_IN_CPROJF,
1469         BUILT_IN_CPROJL, BUILT_IN_CSIN, BUILT_IN_CSINF, BUILT_IN_CSINH,
1470         BUILT_IN_CSINHF, BUILT_IN_CSINHL, BUILT_IN_CSINL, BUILT_IN_CSQRT,
1471         BUILT_IN_CSQRTF, BUILT_IN_CSQRTL, BUILT_IN_CTAN, BUILT_IN_CTANF,
1472         BUILT_IN_CTANH, BUILT_IN_CTANHF, BUILT_IN_CTANHL, BUILT_IN_CTANL):
1473         New.
1474         * doc/extend.texi: Document new builtins.
1475
1476 2003-09-09  Jan Hubicka  <jh@suse.cz>
1477
1478         * cgraph.c (cgraph_varpool_finalize_decl): Sanity check duplicated
1479         finalization.
1480         * cgraphunit.c (decide_is_fnction_needed): Avoid special case of nested
1481         functions, check for COMDAT.
1482         (cgraph_assemble_pending_functions): Break out from...
1483         (cgraph_finalize_function): ... here; allow redefinig of extern inline
1484         functions.
1485         (record_call_1): Record function references only in non-unit-at-a-time
1486         mode.
1487         (cgraph_analyze_function): Reset current_function_decl.
1488         (cgraph_finalize_compilation_unit):  Assemble pending functions.
1489
1490 2003-09-08  Mark Mitchell  <mark@codesourcery.com>
1491
1492         * mklibgcc.in (libcc.a): Depend on stmp-dirs.
1493         (libgov.a): Likewise.
1494         (libgcc_eh.a): Likewise.
1495
1496 2003-09-08  Roger Sayle  <roger@eyesopen.com>
1497
1498         * fold-const.c (operand_equal_p): Clarify documentation.
1499
1500 2003-09-08  Richard Henderson  <rth@redhat.com>
1501
1502         * c-decl.c (c_expand_body_1): Push and pop function context here.
1503         * tree-optimize.c (tree_rest_of_compilation): ... not here.  Take
1504         nested argument instead of computing nesting ourselves.
1505
1506 2003-09-08  Jakub Jelinek  <jakub@redhat.com>
1507
1508         * toplev.c (rest_of_handle_stack_regs): Call split_all_insns before
1509         regstack if optimizing but not scheduling after reload.
1510
1511 2003-09-08  Jakub Jelinek  <jakub@redhat.com>
1512
1513         * config/sparc/sparc.c (struct machine_function): New type.
1514         (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
1515         (sparc_override_options): Initialize init_machine_status.
1516         (tls_symbolic_operand, tgd_symbolic_operand, tld_symbolic_operand,
1517         tie_symbolic_operand, tle_symbolic_operand): New functions.
1518         (symbolic_operand): Disallow tls_symbolic_operand.
1519         (symbolic_memory_operand): Likewise.
1520         (tls_call_delay, sparc_cannot_force_const_mem, legitimate_constant_p,
1521         constant_address_p, legitimate_pic_operand_p, legitimate_address_p):
1522         New functions.
1523         (sparc_tls_symbol): New variable.
1524         (sparc_tls_get_addr, sparc_tls_got, legitimize_tls_address,
1525         legitimize_address): New functions.
1526         (print_operand): Handle %&.
1527         (sparc_init_machine_status, get_some_local_dynamic_name,
1528         get_some_local_dynamic_name_1): New functions.
1529         (sparc_output_dwarf_dtprel): New function.
1530         * config/sparc/sparc.h (CONSTANT_ADDRESS_P): Moved into
1531         constant_address_p.
1532         (LEGITIMATE_PIC_OPERAND_P): Moved into legitimate_pic_operand_p.
1533         (LEGITIMATE_CONSTANT_P): Moved into legitimate_constant_p.
1534         (GO_IF_LEGITIMATE_ADDRESS): Moved into legitimate_address_p.
1535         (LEGITIMIZE_ADDRESS): Moved into legitimize_address.
1536         (PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
1537         (TARGET_TLS, TARGET_SUN_TLS, TARGET_GNU_TLS): Define.
1538         (ASM_OUTPUT_DWARF_DTPREL): Define.
1539         (PREDICATE_CODES): Add tgd_symbolic_operand, tld_symbolic_operand,
1540         tie_symbolic_operand, tle_symbolic_operand.
1541         * config/sparc/sparc.md (UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_TLSLDO,
1542         UNSPEC_TLSIE, UNSPEC_TLSLE, UNSPEC_TLSLD_BASE): New constants.
1543         (tls_call_delay): New attribute.
1544         (in_call_delay): Use it.
1545         (movqi, movhi, movsi, movdi): Call legitimize_tls_address if needed.
1546         (tgd_hi22, tgd_lo10, tgd_add32, tgd_add64, tgd_call32, tgd_call64,
1547         tldm_hi22, tldm_lo10, tldm_add32, tldm_add64, tldm_call32, tldm_call64,
1548         tldo_hix22, tldo_lox10, tldo_add32, tldo_add64, tie_hi22, tie_lo10,
1549         tie_ld32, tie_ld64, tie_add32, tie_add64, tle_hix22_sp32,
1550         tle_lox10_sp32, tle_hix22_sp64, tle_lox10_sp64): New insns.
1551         (tldo_ldub_sp32, tldo_ldub1_sp32, tldo_ldub2_sp32, tldo_ldsb1_sp32,
1552         tldo_ldsb2_sp32, tldo_ldub_sp64, tldo_ldub1_sp64, tldo_ldub2_sp64,
1553         tldo_ldub3_sp64, tldo_ldsb1_sp64, tldo_ldsb2_sp64, tldo_ldsb3_sp64,
1554         tldo_lduh_sp32, tldo_lduh1_sp32, tldo_ldsh1_sp32, tldo_lduh_sp64,
1555         tldo_lduh1_sp64, tldo_lduh2_sp64, tldo_ldsh1_sp64, tldo_ldsh2_sp64,
1556         tldo_lduw_sp32, tldo_lduw_sp64, tldo_lduw1_sp64, tldo_ldsw1_sp64,
1557         tldo_ldx_sp64, tldo_stb_sp32, tldo_stb_sp64, tldo_sth_sp32,
1558         tldo_sth_sp64, tldo_stw_sp32, tldo_stw_sp64, tldo_stx_sp64): New
1559         insns.
1560         * config/sparc/sparc-protos.h (legitimate_constant_p,
1561         constant_address_p, legitimate_pic_operand_p, legitimate_address_p,
1562         legitimize_tls_address, legitimize_address, tls_symbolic_operand,
1563         tls_call_delay, sparc_output_dwarf_dtprel): New prototypes.
1564         * config/sparc/linux.h (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
1565         * config/sparc/linux64.h (TARGET_GNU_TLS, TARGET_SUN_TLS): Likewise.
1566         * configure.in (sparc*-*-*): Add TLS check.
1567         * configure: Rebuilt.
1568
1569 2003-09-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1570
1571         PR target/11689
1572         * config/i386/i386.c (memory_address_length): Fix computation when
1573         the base is esp or ebp.
1574
1575 2003-09-07  Mark Mitchell  <mark@codesourcery.com>
1576
1577         PR c++/11852
1578         * varasm.c (initializer_constant_valid_p): Correct logic for
1579         CONSTRUCTORs.
1580
1581 2003-09-07  Roger Sayle  <roger@eyesopen.com>
1582
1583         * expr.c (expand_operands): New function to expand an operand pair.
1584         (expand_expr): Call expand_operands whenever we need to expand both
1585         operands of a binary operator.
1586         (do_store_flag): Likewise for operands of comparison operations.
1587
1588 2003-09-07  Roger Sayle  <roger@eyesopen.com>
1589
1590         * combine.c (combine_simplify_rtx): Don't convert -(A*B) into
1591         (-A)*B if we care about sign-dependent rounding.
1592
1593 2003-09-07  Gabriel Dos Reis  <gcc@integrable-solutions.net>
1594
1595         * c-pretty-print.h (pp_c_left_brace): Declare.
1596         (pp_c_right_brace): Likewise.
1597         * c-pretty-print.c (pp_c_left_brace): Now a function
1598         (pp_c_right_brace): Likewise.
1599
1600 2003-09-07  Jan Hubicka  <jh@suse.cz>
1601
1602         * cfgcleanup.c (try_simplify_condjump): Fix again the preivous patch.
1603
1604 2003-09-07  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1605
1606         * diagnostic.c (warn_deprecated_use): Move to toplev.c
1607
1608 2003-09-07  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1609
1610         * langhooks.c (lhd_print_error_function): Move from diagnostic.c.
1611         * Makefile.in (langhooks.o): Depend on diagnostic.h
1612
1613 2003-09-06  James E Wilson  <wilson@tuliptree.org>
1614
1615         * loop.c (loop_regs_update): Delete else clause for PATTERN rtx and
1616         simplify.
1617
1618 2003-09-07  Kelley Cook  <kelleycook@wideopenwest.com>
1619
1620         * Makefile.in: Define $REMAKE to be $MAKE with LANGUAGES & BOOT_CFLAGS
1621         and use it throughout.
1622
1623 2003-09-07  Jan Hubicka  <jh@suse.cz>
1624
1625         * cfgcleanup.c (try_simplify_condjump): Fix my previous patch.
1626
1627         * toplev.c  (rest_of_decl_compilation):  Do not finalize external
1628         virables.
1629
1630         * cgraph.c (cgraph_mark_reachable_node): Only enqueue finalized
1631         functions.
1632         (cgraph_varpool_finalize_decl): Notice global symbol when needed.
1633
1634 2003-09-06  Jan Hubicka  <jh@suse.cz>
1635
1636         PR target/12070
1637         * calls.c (emit_library_call_value_1): Fix saving of BLKmode arguments.
1638
1639         PR opt/12082
1640         * cfgcleanup.c (try_simplify_condjump): Avoid unreachable code warning.
1641
1642 2003-09-06  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1643
1644         * diagnostic.c (announce_function): Move to toplev.c.
1645
1646 2003-09-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1647
1648         * gcse.c (expr_equiv_p): Don't consider anything to be equal to
1649         volatile mem.
1650
1651 2003-09-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1652
1653         * ggc-common.c (init_ggc_heuristics): Don't use the heuristics
1654         when gc checking is enabled.
1655
1656 2003-09-06  Steven Bosscher  <steven@gcc.gnu.org>
1657
1658         PR c/9862
1659         * c-decl.c (c_expand_body_1): Move return warning from here...
1660         (finish_function): ...to here.
1661
1662 2003-09-05  Geoffrey Keating  <geoffk@apple.com>
1663
1664         * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Always return
1665         a subset of the input class.
1666
1667 2003-09-05  Kazu Hirata  <kazu@cs.umass.edu>
1668
1669         * config/i860/i860.c: Follow spelling conventions.
1670         * config/i860/i860.h: Likewise.
1671         * config/sh/sh.h: Likewise.
1672
1673 2003-09-05  Nitin Yewale  <NitinY@KPITCummins.com>
1674
1675         * config/h8300/h8300-protos.h: Declare h8300_hard_regno_rename_ok
1676         * config/h8300/h8300.h (HARD_REGNO_RENAME_OK): New.
1677         * config/h8300/h8300.c (h8300_hard_regno_rename_ok): New.
1678
1679 2003-09-05  Roger Sayle  <roger@eyesopen.com>
1680             Richard Henderson  <rth@redhat.com>
1681
1682         PR optimization/1823
1683         * expmed.c (expand_divmod <EXACT_DIV_EXPR>): Use an unsigned
1684         multiplication to implement division by constant integer.
1685
1686 2003-09-05  Jan Hubicka  <jh@suse.cz>
1687
1688         * opts.c (decode_options): Enable unit-at-a-time at -O2.
1689         * params.def (max-inline-insns-single): Set to 500
1690         (max-inline-insns-auto): Set to 150
1691         * invoke.texi (max-inline-insns-single, max-inline-insns-auto): Update.
1692
1693 2003-09-04  Richard Henderson  <rth@redhat.com>
1694
1695         * cgraph.c (cgraph_mark_reachable_node): Split out from ...
1696         (cgraph_mark_needed_node): Remove needed argument.
1697         * cgraph.h: Update to match.
1698         * cgraphunit.c (decide_is_function_needed): Split out from ...
1699         (cgraph_finalize_function): Reorg.  Avoid deferred_inline_function
1700         if we generated the function.
1701         (record_call_1): Update for cgraph_mark_reachable_node.
1702         * varasm.c (mark_referenced): Likewise.
1703         * objc/objc-act.c (mark_referenced_methods): Likewise.
1704
1705 2003-09-04  DJ Delorie  <dj@redhat.com>
1706
1707         * targhooks.c: Add comment explaining the migration process.
1708
1709 2003-09-04  Eric Christopher  <echristo@redhat.com>
1710
1711         * config/frv/t-frv: Fix path for frv-abi.h.
1712         * config/frv/frv-asm.h: Fix string concatenation.
1713
1714 2003-09-04  DJ Delorie  <dj@redhat.com>
1715
1716         * builtins.c (apply_args_size): Guard against a NULL cfun.
1717         (expand_builtin_apply_args_1): Likewise.
1718         (expand_builtin_apply): Likewise.
1719         Fixes PR bootstrap/12172.
1720
1721 2003-09-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1722
1723         * configure.in (gcc_cv_as_ix86_cmov_sun_syntax): Check if
1724         assembler supports Sun syntax for cmov.
1725         * configure: Regenerate.
1726         * config.in: Likewise.
1727         * config/i386/i386.c: Rename CMOV_SUN_AS_SYNTAX to
1728         HAVE_AS_IX86_CMOV_SUN_SYNTAX.
1729         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Remove.
1730         Fixes PR target/12101.
1731
1732 2003-09-04  Matt Austern  <austern@apple.com>
1733
1734         * c-common.c (fname_as_string): Use lang_hooks.decl_printable_name
1735         with verbosity 0, instead of DECL_NAME, for human-readable string.
1736
1737 2003-09-04  Eric Christopher  <echristo@redhat.com>
1738
1739         * targhooks.c (default_return_in_memory): Allow
1740         unconverted ports.
1741
1742 2003-09-04  Eric Christopher  <echristo@redhat.com>
1743
1744         * targhooks.c (default_return_in_memory): Fix typo
1745         in last checkin.
1746
1747 2003-09-04  Eric Christopher  <echristo@redhat.com>
1748
1749         * targhooks.c (default_return_in_memory): Fix default
1750         definition.
1751
1752 2003-09-04  Bernardo Innocenti  <bernie@develer.com>
1753
1754         * config/m68k/m68k.c (m68k_coff_asm_named_section): Restore
1755         deleted function.
1756         * config/m68k/coff.h (M68K_TARGET_COFF): Add flag used to
1757         enable coff-only code in m68k.c.
1758
1759 2003-09-04  Nick Clifton  <nickc@redhat.com>
1760
1761         * config.gcc: Add v850e1 target.  Allow --with-cpu to accept
1762         v850e1.
1763         * config/v850/v850.h: Accept v850e1 as a default CPU.
1764         Accept -mv850e1 as a command line option.
1765         * doc/invoke.texi: Document new -mv850e1 command line switch.
1766         * config/v850/t-v850: Treat -mv850e1 as a multilib alias for
1767         -mv850e.
1768
1769 2003-09-04  Nick Clifton  <nickc@redhat.com>
1770
1771         * config.gcc (v850e-*-*): Use t-v850e makefile fragment.
1772         * config/v850/t-v850: Only produce one extra multilib - for
1773         the v850e.
1774         * config/v850/t-v850e: New file: Only produce one extra
1775         multilib - for the v850.
1776
1777 2003-09-04  Jakub Jelinek  <jakub@redhat.com>
1778
1779         * config/ia64/libgcc-ia64.ver: Export _Unwind_GetBSP@@GCC_3.3.2.
1780         * config/ia64/unwind-ia64.c (_Unwind_GetBSP): New function.
1781         * unwind.h (_Unwind_GetBSP): New prototype.
1782         * libgcc-std.ver: Add empty GCC_3.3.2 version.
1783         * mkmap-symver.awk: For symbol versions with no exported symbols,
1784         don't put anything into version script, just change all symbol
1785         versions which inherit from it to inherit from its ancestor.
1786
1787 2003-09-04  Eric Christopher  <echristo@redhat.com>
1788
1789         * config/mips/mips.c (mips_expand_prologue): Convert to
1790         calls.struct_value_rtx hook.
1791         (reg_or_const_float_1_operand): New.
1792         * config/mips/mips.h: Update Comments.
1793         (mips_arg): Add reg_or_const_float_1_operand.
1794         * config/mips/mips.md (divdf3); Convert to expander.
1795         (divsf3): Ditto.
1796         (*divdf3): New pattern.
1797         (*divsf3): Ditto.
1798
1799 2003-09-04  Jan Hubicka  <jh@suse.cz>
1800
1801         * toplev.c (wrapup_global_declarations): Fix final pass in
1802         unit-at-atime mode.
1803
1804 2003-09-04  Mark Mitchell  <mark@codesourcery.com>
1805
1806         * doc/extend.texi: Document removal of cast-as-lvalue extension in
1807         C++.
1808
1809 2003-09-04  Nicolas Roche  <roche@act-europe.fr>
1810
1811         * gcc.c (process_command): Fix typo.
1812
1813 2003-09-03  David O'Brien  <obrien@FreeBSD.org>
1814
1815         optimization/11980
1816         * config/i386/freebsd.h (SIZE_TYPE): Support TARGET_64BIT.
1817         (PTRDIFF_TYPE): Likewise.
1818         (WCHAR_TYPE_SIZE): Likewise.
1819
1820 2003-09-03  DJ Delorie  <dj@redhat.com>
1821
1822         * targhooks.c: New file.
1823         * targhooks.h: New file.
1824         * Makefile.in: Add targhooks.o support.
1825         (function.o): Depend on$(TARGET_H).
1826         (stmt.o): Likewise.
1827         (combine.o): Depend on $(TREE_H) and $(TARGET_H).
1828         * builtins.c (apply_args_size, expand_builtin_apply_args_1,
1829         expand_builtin_apply): Convert to calls.struct_value_rtx hook.
1830         (expand_builtin_saveregs): Convert to
1831         calls.expand_builtin_saveregs hook.
1832         * c-decl.c (start_decl): Handle new calls.promote_prototypes hook
1833         here, instead of ...
1834         (get_parm_info) ... here.
1835         (store_parm_decls_oldstyle): Convert to calls.promote_prototypes
1836         hook.
1837         (finish_function): Handle calls.promote_prototypes hook here too.
1838         * c-typeck.c (convert_arguments): Convert to
1839         calls.promote_prototypes hook.
1840         (c_convert_parm_for_inlining): Likewise.
1841         * calls.c (initialize_argument_information): Convert to
1842         calls.promote_function_args hook.
1843         (expand_call): Convert to calls.struct_value_rtx,
1844         calls.strict_argument_naming,
1845         calls.pretend_outgoing_varargs_named, and
1846         calls.promote_function_return hooks.  Pass fndecl to
1847         aggregate_value_p.  Initialize CUMULATIVE_ARGS before calling
1848         hooks, so they can use that.
1849         (emit_library_call_value_1): Likewise.
1850         * combine.c (setup_incoming_promotions): Convert to
1851         calls.promote_function_args hook.
1852         * emit-rtl.c: Convert to calls.struct_value_rtx hook.
1853         * expr.c (expand_assignment): Pass call to aggregate_value_p.
1854         (expand_expr): Likewise.
1855         * expr.h: Remove support for SETUP_INCOMING_VARARGS,
1856         STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED,
1857         RETURN_IN_MEMORY macro defaults.
1858         * final.c (profile_function): Convert to calls.struct_value_rtx
1859         hook.
1860         * function.c (aggregate_value_p): Accept function type tree as
1861         second parameter; try to deduce fntype from it.  Convert to
1862         calls.return_in_memory hook.
1863         (assign_parms): Convert to calls.setup_incoming_varargs,
1864         calls.strict_argument_naming, calls.promote_function_args,
1865         calls.pretend_outgoing_varargs_named hooks.  Pass fndecl to
1866         aggregate_value_p.
1867         (expand_function_start): Likewise.  Convert to
1868         calls.struct_value_rtx hook.
1869         (expand_function_end): Convert to calls.promote_function_return hook.
1870         (allocate_struct_function): Pass fndecl to aggregate_value_p.
1871         * hard-reg-set.h: Update comments to new hook names.
1872         * integrate.c (expand_inline_function): Pass fndecl to aggregate_value_p.
1873         * reg-stack.c (stack_result): Likewise.
1874         * rtl.h (struct_value_rtx, struct_value_incoming_rtx): Delete.
1875         * stmt.c (expand_value_return): Convert to
1876         calls.promote_function_return hook.
1877         * target-def.h: Add TARGET_PROMOTE_FUNCTION_ARGS,
1878         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
1879         TARGET_STRUCT_VALUE_RTX, TARGET_RETURN_IN_MEMORY,
1880         TARGET_EXPAND_BUILTIN_SAVEREGS, TARGET_SETUP_INCOMING_VARARGS,
1881         TARGET_STRICT_ARGUMENT_NAMING,
1882         TARGET_PRETEND_OUTGOING_VARARGS_NAMED, and TARGET_CALLS.
1883         * target.h: Likewise.
1884         * tree.h (aggregate_value_p): Also takes a tree to deduce function
1885         attributes from (for target hooks).
1886         * doc/tm.texi (PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN,
1887         PROMOTE_PROTOTYPES, RETURN_IN_MEMORY, STRUCT_VALUE_REGNUM,
1888         STRUCT_VALUE, STRUCT_VALUE_INCOMING_REGNUM, STRUCT_VALUE_INCOMING,
1889         EXPAND_BUILTIN_SAVEREGS, SETUP_INCOMING_VARARGS,
1890         STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED): Convert
1891         to hooks.
1892
1893         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Pass function
1894         to aggregate_value_p.
1895         * config/arm/arm.c (arm_init_cumulative_args,
1896         arm_output_mi_thunk): Likewise.
1897         * config/i386/i386.c (ix86_return_pops_args, x86_this_parameter):
1898         Likewise.
1899         * config/mips/mips.c (mips_save_reg_p, mips_expand_prologue,
1900         mips_can_use_return_insn): Likewise.
1901         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
1902         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
1903         * config/sparc/sparc.c (sparc_output_mi_thunk): Pass function to
1904         aggregate_value_p.
1905         * config/story16/stormy16.c (xstormy16_asm_output_mi_thunk): Pass
1906         function to aggregate_value_p.
1907         * objc/objc-act.c (generate_struct_by_value_array): Pass NULL to
1908         aggregate_value_p.
1909
1910         * config/sh/sh-protos.h (sh_builtin_saveregs): Remove.
1911         (sh_attr_renesas_p, sh_cfun_attr_renesas_p, sh_function_arg,
1912         sh_function_arg_advance, sh_pass_in_reg_p): New.  * config/sh/sh.c
1913         (sh_handle_renesas_attribute, sh_promote_prototypes,
1914         sh_struct_value_rtx, sh_return_in_memory, sh_builtin_saveregs,
1915         sh_setup_incoming_varargs, sh_strict_argument_naming,
1916         sh_pretend_outgoing_varargs_named): New decls.
1917         (targetm): Add new hooks.
1918         (calc_live_regs): Save MACL and MACH if the function has the
1919         renesas attribute.
1920         (sh_expand_prologue): Support renesas attribute.
1921         (sh_builtin_saveregs): Make static.
1922         (sh_build_va_list): Support renesas attribute.
1923         (sh_va_start): Likewise.
1924         (sh_va_arg): Likewise.
1925         (sh_promote_prototypes): New.
1926         (sh_function_arg): New, moved from sh.h.  Support renesas
1927         attribute.
1928         (sh_function_arg_advance): Likewise.
1929         (sh_return_in_memory): Likewise.
1930         (sh_strict_argument_naming): Likewise.
1931         (sh_pretend_outgoing_varargs_named): Likewise.
1932         (sh_struct_value_rtx): New.
1933         (sh_attribute): Add renesas attribute.
1934         (sh_handle_renesas_attribute): New.
1935         (sh_attr_renesas_p, sh_cfun_attr_renesas_p): New.
1936         (sh_ms_bitfield_layout_p): Support renesas attribute also.
1937         (sh_output_mi_thunk): Pass function to aggregate_value_p.  *
1938         config/sh/sh.h (TARGET_SWITCHES): Add -mrenesas as an alias for
1939         -mhitachi.
1940         (STRUCT_VALUE_REGNUM, STRUCT_VALUE, RETURN_IN_MEMORY): Moved to
1941         target hooks.
1942         (sh_args): Add renesas_abi flag.
1943         (INIT_CUMULATIVE_ARGS): Set it.  Pass fndecl to aggregate_value_p.
1944         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Move to sh.c.
1945         (PASS_IN_REG_P): Support renesas attribute.  Pass DF and TF on the
1946         stack for the renesas abi.
1947         (STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED,
1948         SETUP_INCOMING_VARARGS, EXPAND_BUILTIN_SAVEREGS,
1949         PROMOTE_PROTOTYPES): Moved to sh.c.  * config/sh/sh.md (call): Set
1950         call cookie to indicate renesas calls.
1951
1952 2003-09-03  Mostafa Hagog  <mustafa@il.ibm.com>
1953
1954         * gcse.c (replace_one_set): New function.
1955         (pre_insert_copy_insn): Change the order of copying
1956         to make copy propagation discover additional PRE opportunities.
1957
1958 2003-09-03  Roger Sayle  <roger@eyesopen.com>
1959
1960         PR optimization/11700.
1961         * simplify-rtx.c (simplify_subreg): Check that the subreg offset
1962         of a hard register is representable before trying to simplify it
1963         using subreg_hard_regno.
1964
1965 2003-09-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1966
1967         * configure.in (gcc_cv_ld_hidden): Disable unless using GNU ld.
1968         * configure: Regenerate.
1969
1970 2003-09-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1971
1972         * intl.h (N_): Remove parentheses.
1973
1974 2003-09-03  Bernardo Innocenti  <bernie@develer.com>
1975
1976         * config.gcc (m68k-*-linux*): Remove definition of LINUX_DEFAULT_ELF.
1977         * config/i370/linux.h (LINUX_DEFAULT_ELF): Remove unconditional
1978         definition and code blocks compiled when not defined.
1979         * config/i386/linux.h (LINUX_DEFAULT_ELF): Likewise.
1980         * config/i386/linux64.h (LINUX_DEFAULT_ELF): Likewise.
1981         * config/sparc/linux.h: (LINUX_DEFAULT_ELF): Likewise.
1982         * config/sparc/linux64.h: (LINUX_DEFAULT_ELF): Likewise.
1983
1984 2003-09-03  Jeff Sturm  <jsturm@one-point.com>
1985
1986         * cgraphunit.c (visited_nodes): New static variable.
1987         (record_call_1): Use walk_tree with visited_nodes.
1988         (cgraph_create_edges): Use walk_tree with visited_nodes.
1989         Setup/teardown visited_nodes hashtable.
1990
1991 2003-09-03  Roger Sayle  <roger@eyesopen.com>
1992
1993         * toplev.c (flag_rounding_math): New global variable.
1994         (f_options): Add to the list of language independent options.
1995         * flags.h (flag_rounding_math): Prototype here.
1996         (HONOR_SIGN_DEPENDENT_ROUNDING): Use flag_rounding_math instead.
1997         * common.opt (frounding-math): New common command line option.
1998         * opts.c (common_handle_option): Handle OPT_frounding_math.
1999         (set_fast_math_flags): -ffast-math clears flag_rounding_math.
2000
2001         * doc/invoke.texi: Document this new command line option.
2002
2003 2003-09-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2004
2005         * config/sol2.h (NO_IMPLICIT_EXTERN_C): Update comment.
2006
2007 2003-09-03  Jan Hubicka  <jh@suse.cz>
2008
2009         * Makefile.in (c-objc-common.o): Kill gt-c-objc-common.h dependency.
2010         * c-decl.c (finish_function):  Kill arguments, always use cgraph path.
2011         * c-objc-common.c: Kill include of gt-c-objc-common.h
2012         (expand_deferred_fns, deffer_fn): Kill function.
2013         (deferred_fns): Kill variable.
2014         (finish_cdtor): Update finish_function call.
2015         (c_objc_common_finish_file): Always call cgraph code.
2016         * c-parse.c: Regenerate.
2017         * c-parse.y: Regenerate.
2018         * c-tree.h (finish_function): Update prototype.
2019         * objc-acct.c (build_module_descriptor, finish_method_def):
2020         Update call of finish_function.
2021         * cgraphunit.c (cgraph_default_inline_p, cgraph_analyze_function): Add
2022         forward prototype.
2023         (cgraph_finalize_function): In non-unit-at-a-time mode analyze the
2024         function and assemble it if needed.
2025         (cgraph_finalize_compilation_unit): Do nothing in non-unit-at-a-time
2026         mode.
2027         (cgraph_optimize): Likewise.
2028         (cgraph_expand_function): In non-unit-at-a-time mode keep function body
2029         even when it has no inline callees.
2030         * c-parse.in: Update calls to finish_function.
2031
2032 2003-09-03  Nick Clifton  <nickc@redhat.com>
2033
2034         * config/arm/arm.h: Handle TARGET_CPU_iwmmxt.
2035         Use #error to generate the message if TARGET_DEFAULT is not
2036         recognised.
2037
2038 2003-09-03  Richard Sandiford  <rsandifo@redhat.com>
2039
2040         * config/mips/mips.h (MASK_UNUSED1): Remove.
2041         (MASK_XGOT, TARGET_XGOT): Define.
2042         (TARGET_SWITCHES): Add an entry for -mxgot.
2043         (ASM_SPEC): Map -mxgot to -xgot.
2044         * config/mips/mips.c (mips_symbol_insns): Use TARGET_XGOT to decide
2045         whether we're using a big-GOT sequences.
2046         (mips_legitimize_const_move, mips_expand_call): Likewise.
2047         (override_options): Revert 2003-01-09 change.
2048         * doc/invoke.texi: Document -mxgot.
2049
2050 2003-09-02  Jason Merrill  <jason@redhat.com>
2051
2052         * config/sol2.h (NO_IMPLICIT_EXTERN_C): Define here.
2053         * config/sparc/sol2.h: Not here.
2054
2055 2003-09-02  Roger Sayle  <roger@eyesopen.com>
2056
2057         * expr.c (expand_expr): The code following both_summands performs
2058         the same task as simplify_gen_binary.  Replace all gotos to
2059         both_summands with a call to simplify_gen_binary and delete the
2060         now unused label.
2061
2062 2003-09-02  Jason Merrill  <jason@redhat.com>
2063
2064         PR c++/7327
2065         * config/sparc/sol2.h (NO_IMPLICIT_EXTERN_C): Define.
2066
2067 2003-09-02  Jeff Sturm  <jsturm@one-point.com>
2068
2069         * cgraphunit.c (record_call_1): Use walk_tree_without_duplicates.
2070         (cgraph_optimize_function): Set current_function_decl to the
2071         fndecl we're integrating from.
2072
2073 2003-09-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2074
2075         * builtins.def: Break out _Complex math functions into their
2076         own category.
2077
2078 2003-09-02  Andreas Jaeger  <aj@suse.de>
2079
2080         * langhooks-def.h (LANG_HOOKS_RTL_EXPAND_STMT): Cast properly.
2081
2082 2003-09-02  Josef Zlomek  <zlomekj@suse.cz>
2083
2084         * cfgbuild.c (compute_outgoing_frequencies): Use NOTE instead of
2085         finding the note again.
2086
2087 2003-09-02  Nathanael Nerode  <neroden@gcc.gnu.org>
2088
2089         * config.gcc: Remove host-specific rewrites of target_alias.
2090
2091 2003-09-01  Mark Mitchell  <mark@codesourcery.com>
2092
2093         * Makefile.in (genprogs): Fix typo.
2094
2095         * Makefile.in (gencheck.o): Remove build commands.
2096         (dummy-conditions.o): Likewise.
2097         (read-rtl.o): Likewise.
2098         (gensupport.o): Likewise.
2099         (genconfig$(build_exeext)): Remove rule.
2100         (genconfig.o): Remove build commands.
2101         (genflags$(build_exeext)): Remove rule.
2102         (genflags.o): Remove build commands.
2103         (gencodes$(build_exeext)): Remove rule.
2104         (gencodes.o): Remove build commands.
2105         (genconstants.o): Remove build commands.
2106         (genemit$(build_exeext)): Remove rule.
2107         (genemit.o): Remove build commands.
2108         (genrecog$(build_exeext)): Remove rule.
2109         (genrecog.o): Remove build commands.
2110         (genextract$(build_exeext)): Remove rule.
2111         (genextract.o): Remove build commands.
2112         (genpeep$(build_exeext)): Remove rule.
2113         (genpeep.o): Remove build commands.
2114         (genattr$(build_exeext)): Remove rule.
2115         (genattr.o): Remove build commands.
2116         (genprognames): New variable.
2117         (genprogs): Likewise.
2118         (genobjs): Likewise.
2119         (genprogs): New rule.
2120         (genobjs): Likewise.
2121         (genattrtab.o): Remove build commands.
2122         (genautomata.o): Likewise.
2123         (genoutput$(build_exeext)): Remove rule.
2124         (genoutput.o): Remove build commands.
2125         (gengenrtl.o): Likewise.
2126         (genpreds.o): Likewise.
2127         (gengtype.o): Likewise.
2128         (genconditions.o): Likewise.
2129         (gen-protos.o): Likewise.
2130         (scan.o): Likewise.
2131         (fix-header.o): Likewise.
2132         (scan-decls.o): Likewise.
2133         (check-g++): Combine with other check targets.
2134         (check-gcc): Likewise.
2135         (check-g77): Likewise.
2136         (check-objc): Likewise.
2137
2138 2003-09-01  Nathanael Nerode  <neroden@gcc.gnu.org>
2139
2140         * config.gcc: Remove host-specific stuff which is unused here
2141         since the introduction of config.host.
2142
2143         * doc/fragments.texi: Mention config.host.
2144         * doc/sourcebuild.texi: Mention config.host.  Give brief descriptions
2145         of config.build, config.host, and config.gcc.
2146
2147 2003-09-01  Zack Weinberg  <zack@codesourcery.com>
2148
2149         * c-decl.c (pushdecl): Don't put variables on
2150         C_TYPE_INCOMPLETE_VARS of a type unless that type is itself
2151         incomplete.
2152
2153 2003-09-01  Nathanael Nerode  <neroden@gcc.gnu.org>
2154
2155         * config.host: New file.
2156         * config.gcc: Remove some host-specific stuff and some
2157         logic needed only for repeated invocation.
2158         * configure.in: Use config.host.
2159         * configure: Regenerate.
2160
2161 2003-09-01  Josef Zlomek  <zlomekj@suse.cz>
2162
2163         * c-typeck.c (build_binary_op): Kill BIT_ANDTC_EXPR.
2164         * convert.c (convert_to_integer): Kill BIT_ANDTC_EXPR.
2165         * fold-const.c (int_const_binop): Kill BIT_ANDTC_EXPR.
2166         (fold): Kill BIT_ANDTC_EXPR and label bit_and.
2167         * tree.def (BIT_ANDTC_EXPR): Kill.
2168
2169 2003-08-31  Nathanael Nerode  <neroden@gcc.gnu.org>
2170
2171         * configure.in: Remove uses of "for x in .. ${foo}" idiom.
2172         * configure: Regenerate.
2173
2174         * config.gcc:  Remove references to install_headers_dir, now unused
2175         since introduction of config.build.
2176         * config.gcc (i860-*-sysv4*): Don't set unused USG, SVR3 defines.
2177
2178         * doc/fragments.texi, doc/sourcebuild.texi: Mention new file
2179         config.build.
2180
2181         * config.build: New file.
2182         * config.gcc: Remove some build-specific stuff.
2183         * configure.in: Use config.build.
2184         * configure: Regnerate.
2185
2186 2003-08-31  Steven Bosscher  <steven@gcc.gnu.org>
2187             Roger Sayle  <roger@eyesopen.com>
2188
2189         PR middle-end/11823
2190         * stmt.c (expand_end_case_type): Only use jump tables for dense
2191         switch statements when optimizing for size.
2192
2193 2003-08-31  Olivier Hainque  <hainque@act-europe.fr>
2194
2195         * builtins.c (expand_builtin_setjmp): Use emit_jump to jump around
2196         the != 0 case, which ensures pending stack adjustments are flushed.
2197
2198 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
2199
2200         * configure.frag: Delete file.
2201         * configure.in: Rename the substitution variables
2202         dep_host_xmake_file and dep_tmake_file to xmake_file and
2203         tmake_file respectively.  Do not expand $srcdir in the
2204         value of these; leave that for Make.  Introduce a new
2205         substitution varaible, all_lang_makefrags, which lists
2206         subdirectory Make-lang.in files; exclude these from
2207         all_lang_makefiles, which is now only for subdirectory
2208         outputs.  Do not invoke configure.frag.  Do not set nor
2209         AC_SUBST_FILE target_overrides, host_overrides, or
2210         language_fragments. Create build subdirectories in
2211         config.status extra commands.
2212         * configure: Regenerate.
2213         * Makefile.in: Update substitutions to match changes to
2214         configure.  Use include directives instead of @-insertions
2215         to read in host, target, and language fragments.
2216         (Makefile rule): Do not invoke configure.frag.  Do not copy
2217         config.status to config.run before executing it.  Set
2218         CONFIG_HEADERS and CONFIG_FILES so that only Makefile gets
2219         regenerated.
2220         (cstamp-h rule): Set CONFIG_FILES as well as CONFIG_HEADERS.
2221
2222 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
2223
2224         * c-tree.h: Delete COMPARE_DIFFERENT_TU from enumeration.
2225         * c-typeck.c (same_translation_unit_p): New function.
2226         (comptypes): Use it instead of flags parameter to identify
2227         structure types from different translation units.
2228         * c-decl.c (duplicate_decls): Always call comptypes with
2229         COMPTYPE_STRICT flags argument.
2230         (c_reset_state): Set BLOCK_SUPERCONTEXT of the block formed
2231         to file_scope_decl.
2232
2233 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
2234
2235         * c-tree.h (C_TYPE_INCOMPLETE_VARS): New macro.
2236         * c-decl.c (struct c_scope): Remove "incomplete" field.
2237         (pushdecl): Attach variables with incomplete types to
2238         the TYPE_MAIN_VARIANT of the incomplete type in question.
2239         (finish_struct): Look at C_TYPE_INCOMPLETE_VARS for variables
2240         to complete, not at current_scope->incomplete.  All such
2241         variables do need completion.
2242
2243 2003-08-30  Richard Earnshaw  <rearnsha@arm.com>
2244         Nicolas Pitre <nico@cam.org>
2245
2246         * arm/lib1funcs.asm (RETCOND): Delete.
2247         (RETLDM): New assembler macro.  Use it for returning with ldm/ldr.
2248         (ARM_LDIV0, THUMB_LDIV0): Collapse multiple definitions.
2249         (__ARM_ARCH__): Move here from ieee754-?f.S.
2250         (RET, RETc): Clean up definitions.
2251         (DIV_FUNC_END): Renamed from FUNC_END.  All uses changed.
2252         (FUNC_END): New macro that marks the end of any function.
2253         (ARM_FUNC_START): New macro that allows an assembler routine to be
2254         implemented in ARM code even if a Thumb-only build.
2255         Unconditionally include ieee754-?f.S.
2256         * arm/ieee754-df.S: Delete macros moved to lib1funcs.asm.
2257         Mark ends of functions.
2258         Split into separate conditionally-compiled units.
2259         Use RETLDM to return from routines.
2260         * arm/ieee754-sf.S: Similarly.
2261         * t-arm-elf (LIB1ASMFUNCS): Remove _ieee754_dp and _ieee754_sp.
2262         Add _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi
2263         _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2
2264         _fixsfsi and _fixunssfsi.
2265
2266         * arm/ieee754-df.S (__muldf3): Fix bug when result of a
2267         multiplication underflows to zero.
2268         (__adddf3): Fix bug when using VFP ordering on little-endian
2269         processors.
2270         (__fixdfsi): Use rrx to extract the carry into a register instead of
2271         MRS instruction.  Optimize later use of result.
2272         * arm/ieee754-sf.S (__fixsfsi): Likewise.
2273         (__fixunssfsi): Use a better sequence for handling negative-or-zero.
2274
2275 2003-08-29  Richard Henderson  <rth@redhat.com>
2276
2277         * tree-optimize.c: New file.
2278         * Makefile.in (OBJS-archive): Add tree-optimize.o.
2279         (tree-optimize.o): New.
2280         * c-decl.c (store_parm_decls): Use allocate_struct_function.
2281         (finish_function): Don't free_after_parsing or free_after_compilation.
2282         (set_save_expr_context): Move to tree-optimize.c.
2283         (c_expand_body_1): Use tree_rest_of_compilation.
2284         * c-lang.c (LANG_HOOKS_RTL_EXPAND_STMT): New.
2285         * objc/objc-lang.c (LANG_HOOKS_RTL_EXPAND_STMT): New.
2286         * c-objc-common.c (expand_deferred_fns): Don't emit unused inlines;
2287         iterate until closure.
2288         * langhooks-def.h (LANG_HOOKS_RTL_EXPAND_START,
2289         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END): New.
2290         (LANG_HOOKS_RTL_EXPAND_INITIALIZER): New.
2291         * langhooks.h (struct lang_hooks_for_rtl_expansion): New.
2292         * toplev.h (tree_rest_of_compilation): Declare it.
2293
2294 2003-08-29  Richard Henderson  <rth@redhat.com>
2295
2296         * function.h (struct function): Add rtl_inline_init, saved_for_inline.
2297         * integrate.c (save_for_inline): Set saved_for_inline.
2298         * c-semantics.c (genrtl_scope_stmt): Check it.
2299         * toplev.c (wrapup_global_declarations): Check it.
2300         (rest_of_handle_inlining): Set and check rtl_inline_init.
2301         (rest_of_compilation): Remove out of date comment.
2302
2303 2003-08-29  Richard Henderson  <rth@redhat.com>
2304
2305         * function.c (allocate_struct_function): New, split out of ...
2306         (prepare_function_start, init_function_start): ... here.
2307         * expr.c (init_expr): Use ggc_alloc_cleared.
2308         * stmt.c (init_stmt_for_function): Likewise.
2309         * tree.h (allocate_struct_function): Declare.
2310
2311 2003-08-29  Nathanael Nerode  <neroden@gcc.gnu.org>
2312
2313         * config.gcc: Don't use negated character class in shell case
2314         clause.
2315
2316 2003-08-29  Richard Henderson  <rth@redhat.com>
2317
2318         * function.h (struct function): Move function_frequency and
2319         max_jumptable_ents before start of bit field members.
2320
2321 2003-08-29  Richard Henderson  <rth@redhat.com>
2322
2323         * builtins.c (expand_builtin_constant_p): Check cse_not_expected here,
2324         (fold_builtin_constant_p) ... not here.
2325
2326 2003-08-29  Richard Henderson  <rth@redhat.com>
2327
2328         * c-tree.h (C_DECL_FILE_SCOPE): Move ...
2329         * tree.h (DECL_FILE_SCOPE_P): ... here, and rename.
2330         * c-decl.c, c-objc-common.c, c-typeck.c: Update to match.
2331
2332 2003-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2333
2334         * builtins.def: Fix typos.
2335         (ATTR_MATHFN_FPROUNDING_STORE): New macro.
2336         (BUILT_IN_FREXP, BUILT_IN_FREXPF, BUILT_IN_FREXPL, BUILT_IN_MODF,
2337         BUILT_IN_MODFF, BUILT_IN_MODFL, BUILT_IN_REMQUO, BUILT_IN_REMQUOF,
2338         BUILT_IN_REMQUOL, BUILT_IN_SINCOS, BUILT_IN_SINCOSF,
2339         BUILT_IN_SINCOSL): Use ATTR_MATHFN_FPROUNDING_STORE.
2340
2341         * builtins.def (BUILT_IN_ERFC, BUILT_IN_ERFCF, BUILT_IN_ERFCL):
2342         Use ATTR_MATHFN_FPROUNDING_ERRNO.
2343
2344 2003-08-29  Nathanael Nerode  <neroden@gcc.gnu.org>
2345
2346         * config.gcc (i386-*-vsta): Fix obvious bogosity.
2347
2348         * fixinc/inclhack.def:  Remove special cases for unsupported
2349         PTX 1 and PTX 2 (including i[34567]86-sequent-sysv3).
2350         * fixinc/fixincl.x: Regenerate.
2351
2352 2003-08-29  Mark Mitchell  <mark@codesourcery.com>
2353
2354         * Makefile.in (cpp.info): Just state dependencies.
2355         (gcc.info): Likewise.
2356         (gccint.info): Likewise.
2357         (gccinstall.info): Likewise.
2358         (cppinternals.info): Likewise.
2359         (cpp.dvi): Likewise.
2360         (gcc.dvi): Likewise.
2361         (gccint.dvi): Likewise.
2362         (gccinstall.dvi): Likewise.
2363         (cppinternals.dvi): Likewise.
2364         (gcov.1): Likewise.
2365         (cpp.1): Likewise.
2366         (gcc.1): Likewise.
2367         (gfdl.7): Likewise.
2368         (gpl.7): Likewise.
2369         (fsf-funding.7): Likewise.
2370         ($(objdir)/%.info): New pattern rule.
2371         (%.dvi): Likewise.
2372
2373 2003-08-29  Kelley Cook  <kelleycook@wideopenwest.com>
2374
2375         * Makefile.in (restage1): Pass BOOT_CFLAGS to recursive make.
2376         (restage2): Likewise.
2377         (restage3): Likewise.
2378         (restage4): Likewise.
2379         (restageprofile): Likewise.
2380         (restagefeedback): Likewise.
2381         (bubblestrap): Likewise.
2382
2383 2003-08-29  Nathanael Nerode  <neroden@gcc.gnu.org>
2384
2385         * config.gcc: Narrow unsupported target match to avoid clobbering
2386         i?86-sequent-sysv4*.
2387
2388 2003-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2389
2390         * builtins.c (mathfn_built_in): Handle new math builtins.
2391
2392 2003-08-28  Per Bothner  <per@bothner.com>
2393
2394         Fix (hopefully temporary) for breakage caused by my 08-21 patch.
2395         * cpplex.c (_cpp_get_fresh_line):  Check for null buffer.
2396         (_cpp_lex_buffer):  Likewise.
2397         * cpptrad.c (_cpp_read_logical_line_trad):  Likewise.
2398
2399 2003-08-28  Ulrich Weigand  <uweigand@de.ibm.com>
2400
2401         * config/s390/s390.md ("*mulsi3_sign"): New insn.
2402         ("mulsidi3" expander, "mulsi_6432" insn): Remove, replace by ...
2403         ("mulsidi3"): ... this new insn.
2404         ("umulsidi3"): New insn.
2405         ("divmoddi3", "divmodtidi3", "divmodtisi3"): Simplify by using
2406         mixed-mode matching constraints.
2407         ("udivmodsi4", "udivmoddisi3"): New insns.
2408         ("udivsi3", "umodsi3"): Use only in ESA/390 mode.
2409
2410 2003-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2411
2412         * builtin-types.def (BT_INT_PTR, BT_FLOAT_PTR, BT_DOUBLE_PTR,
2413         BT_LONGDOUBLE_PTR, BT_FN_FLOAT_FLOAT_FLOATPTR,
2414         BT_FN_DOUBLE_DOUBLE_DOUBLEPTR,
2415         BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLEPTR,
2416         BT_FN_FLOAT_FLOAT_INTPTR, BT_FN_DOUBLE_DOUBLE_INTPTR,
2417         BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR,
2418         BT_FN_FLOAT_FLOAT_FLOAT_INTPTR, BT_FN_DOUBLE_DOUBLE_DOUBLE_INTPTR,
2419         BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_INTPTR,
2420         BT_FN_VOID_FLOAT_FLOATPTR_FLOATPTR,
2421         BT_FN_VOID_DOUBLE_DOUBLEPTR_DOUBLEPTR,
2422         BT_FN_VOID_LONGDOUBLE_LONGDOUBLEPTR_LONGDOUBLEPTR): New.
2423         * builtins.def (BUILT_IN_FREXP, BUILT_IN_FREXPF, BUILT_IN_FREXPL,
2424         BUILT_IN_MODF, BUILT_IN_MODFF, BUILT_IN_MODFL, BUILT_IN_REMQUO,
2425         BUILT_IN_REMQUOF, BUILT_IN_REMQUOL, BUILT_IN_SINCOS,
2426         BUILT_IN_SINCOSF, BUILT_IN_SINCOSL): New.
2427         * tree.c: Assign new type_nodes.
2428         * tree.h (tree_index): Add TI_FLOAT_PTR_TYPE, TI_DOUBLE_PTR_TYPE,
2429         TI_LONG_DOUBLE_PTR_TYPE, TI_INTEGER_PTR_TYPE.
2430         (float_ptr_type_node, double_ptr_type_node,
2431         long_double_ptr_type_node, integer_ptr_type_node): New type_nodes.
2432
2433         * doc/extend.texi: Document new builtins.
2434
2435 2003-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2436
2437         * builtin-types.def (BT_FN_FLOAT_INT_FLOAT,
2438         BT_FN_DOUBLE_INT_DOUBLE, BT_FN_LONGDOUBLE_INT_LONGDOUBLE): New.
2439
2440         * builtins.def (BUILT_IN_ERF, BUILT_IN_ERFC, BUILT_IN_ERFCF,
2441         BUILT_IN_ERFCL, BUILT_IN_ERFF, BUILT_IN_ERFL, BUILT_IN_GAMMA,
2442         BUILT_IN_GAMMAF, BUILT_IN_GAMMAL, BUILT_IN_J0, BUILT_IN_J0F,
2443         BUILT_IN_J0L, BUILT_IN_J1, BUILT_IN_J1F, BUILT_IN_J1L,
2444         BUILT_IN_JN, BUILT_IN_JNF, BUILT_IN_JNL, BUILT_IN_LGAMMA,
2445         BUILT_IN_LGAMMAF, BUILT_IN_LGAMMAL, BUILT_IN_SIGNIFICAND,
2446         BUILT_IN_SIGNIFICANDF, BUILT_IN_SIGNIFICANDL, BUILT_IN_TGAMMA,
2447         BUILT_IN_TGAMMAF, BUILT_IN_TGAMMAL, BUILT_IN_Y0, BUILT_IN_Y0F,
2448         BUILT_IN_Y0L, BUILT_IN_Y1, BUILT_IN_Y1F, BUILT_IN_Y1L,
2449         BUILT_IN_YN, BUILT_IN_YNF, BUILT_IN_YNL): New.
2450
2451         * doc/extend.texi: Document new builtins.
2452
2453 2003-08-28  Nathanael Nerode  <neroden@gcc.gnu.org>
2454
2455         * fixinc/mkfixinc.sh: Remove special case code for unsupported
2456         variants of i?86, powerpcle, and thumb.
2457         * fixinc/mkfixinc.sh: Remove special case code for unsupported
2458         arm and hppa variants.
2459
2460 2003-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2461
2462         * builtin-types.def (BT_FN_INT_FLOAT, BT_FN_INT_DOUBLE,
2463         BT_FN_INT_LONGDOUBLE, BT_FN_LONG_FLOAT, BT_FN_LONG_DOUBLE,
2464         BT_FN_LONG_LONGDOUBLE, BT_FN_LONGLONG_FLOAT,
2465         BT_FN_LONGLONG_DOUBLE, BT_FN_LONGLONG_LONGDOUBLE,
2466         BT_FN_FLOAT_FLOAT_LONGDOUBLE, BT_FN_DOUBLE_DOUBLE_LONGDOUBLE,
2467         BT_FN_FLOAT_FLOAT_INT, BT_FN_DOUBLE_DOUBLE_INT,
2468         BT_FN_LONGDOUBLE_LONGDOUBLE_INT, BT_FN_FLOAT_FLOAT_LONG,
2469         BT_FN_DOUBLE_DOUBLE_LONG, BT_FN_LONGDOUBLE_LONGDOUBLE_LONG,
2470         BT_FN_FLOAT_FLOAT_FLOAT_FLOAT, BT_FN_DOUBLE_DOUBLE_DOUBLE_DOUBLE,
2471         BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE): New.
2472
2473         * builtins.def (BUILT_IN_ACOS, BUILT_IN_ACOSF, BUILT_IN_ACOSH,
2474         BUILT_IN_ACOSHF, BUILT_IN_ACOSHL, BUILT_IN_ACOSL, BUILT_IN_ASIN,
2475         BUILT_IN_ASINF, BUILT_IN_ASINH, BUILT_IN_ASINHF, BUILT_IN_ASINHL,
2476         BUILT_IN_ASINL, BUILT_IN_ATANH, BUILT_IN_ATANHF, BUILT_IN_ATANHL,
2477         BUILT_IN_CBRT, BUILT_IN_CBRTF, BUILT_IN_CBRTL, BUILT_IN_COPYSIGN,
2478         BUILT_IN_COPYSIGNF, BUILT_IN_COPYSIGNL, BUILT_IN_COSH,
2479         BUILT_IN_COSHF, BUILT_IN_COSHL, BUILT_IN_DREM, BUILT_IN_DREMF,
2480         BUILT_IN_DREML, BUILT_IN_EXP10, BUILT_IN_EXP10F, BUILT_IN_EXP10L,
2481         BUILT_IN_EXP2, BUILT_IN_EXP2F, BUILT_IN_EXP2L, BUILT_IN_EXPM1,
2482         BUILT_IN_EXPM1F, BUILT_IN_EXPM1L, BUILT_IN_FDIM, BUILT_IN_FDIMF,
2483         BUILT_IN_FDIML, BUILT_IN_FMA, BUILT_IN_FMAF, BUILT_IN_FMAL,
2484         BUILT_IN_FMAX, BUILT_IN_FMAXF, BUILT_IN_FMAXL, BUILT_IN_FMIN,
2485         BUILT_IN_FMINF, BUILT_IN_FMINL, BUILT_IN_HYPOT, BUILT_IN_HYPOTF,
2486         BUILT_IN_HYPOTL, BUILT_IN_ILOGB, BUILT_IN_ILOGBF, BUILT_IN_ILOGBL,
2487         BUILT_IN_LDEXP, BUILT_IN_LDEXPF, BUILT_IN_LDEXPL, BUILT_IN_LLRINT,
2488         BUILT_IN_LLRINTF, BUILT_IN_LLRINTL, BUILT_IN_LLROUND,
2489         BUILT_IN_LLROUNDF, BUILT_IN_LLROUNDL, BUILT_IN_LOG10,
2490         BUILT_IN_LOG10F, BUILT_IN_LOG10L, BUILT_IN_LOG1P, BUILT_IN_LOG1PF,
2491         BUILT_IN_LOG1PL, BUILT_IN_LOG2, BUILT_IN_LOG2F, BUILT_IN_LOG2L,
2492         BUILT_IN_LOGB, BUILT_IN_LOGBF, BUILT_IN_LOGBL, BUILT_IN_LRINT,
2493         BUILT_IN_LRINTF, BUILT_IN_LRINTL, BUILT_IN_LROUND,
2494         BUILT_IN_LROUNDF, BUILT_IN_LROUNDL, BUILT_IN_NEXTAFTER,
2495         BUILT_IN_NEXTAFTERF, BUILT_IN_NEXTAFTERL, BUILT_IN_NEXTTOWARD,
2496         BUILT_IN_NEXTTOWARDF, BUILT_IN_NEXTTOWARDL, BUILT_IN_POW10,
2497         BUILT_IN_POW10F, BUILT_IN_POW10L, BUILT_IN_REMAINDER,
2498         BUILT_IN_REMAINDERF, BUILT_IN_REMAINDERL, BUILT_IN_RINT,
2499         BUILT_IN_RINTF, BUILT_IN_RINTL, BUILT_IN_SCALB, BUILT_IN_SCALBF,
2500         BUILT_IN_SCALBL, BUILT_IN_SCALBLN, BUILT_IN_SCALBLNF,
2501         BUILT_IN_SCALBLNL, BUILT_IN_SCALBN, BUILT_IN_SCALBNF,
2502         BUILT_IN_SCALBNL, BUILT_IN_SINH, BUILT_IN_SINHF, BUILT_IN_SINHL,
2503         BUILT_IN_TANH, BUILT_IN_TANHF, BUILT_IN_TANHL): New.
2504
2505         * doc/extend.texi: Document new builtins.
2506
2507 2003-08-28  Ulrich Weigand  <uweigand@de.ibm.com>
2508
2509         * config/s390/s390.c (legitmate_constant_p): Use LARL on
2510         zSeries machines even in 31-bit addressing mode.
2511         (legitimate_reload_constant_p): Likewise.
2512         (legitimize_pic_address): Likewise.
2513         (legitimize_tls_address): Likewise.
2514         (s390_split_branches): Likewise.
2515         (s390_dump_pool): Likewise.
2516         (s390_mainpool_finish): Likewise.
2517         (s390_chunkify_start): Likewise.
2518         (s390_select_rtx_section): Likewise.
2519         * config/s390/s390.md ("doloop_si"): Likewise.
2520         ("pool_start_31", "pool_end_31"): Likewise.
2521         ("pool_start_64", "pool_end_64"): Likewise.
2522         ("main_base_31_small", "main_base_31_large"): Likewise.
2523         ("main_base_64"): Likewise.
2524         ("reload_base_31", "reload_base_64"): Likewise.
2525         ("*movsi_larl"): New insn.
2526         ("cjump", "icjump"): Use long branches on zSeries machines.
2527         ("jump"): Likewise.
2528         ("call"): Use BRASL on zSeries machines.
2529         ("call_value", "call_value_tls"): Likewise.
2530         ("brasl", "bras", "basr_64", "basr_31", "bas_64", "bas_31"): Remove
2531         and replace by ...
2532         ("*bras", "*brasl", "*basr") ... these new insns.
2533         ("brasl_r", "bras_r", "basr_64_r", "basr_31_r", "bas_64_r",
2534         "bas_31_r"): Remove and replace by ...
2535         ("*bras_r", "*brasl_r", "*basr_r") ... these new insns.
2536         ("brasl_tls", "bras_tls", "basr_64_tls", "basr_31_tls",
2537         "bas_64_tls", "bas_31_tls"): Remove and replace by ...
2538         ("*bras_tls", "*brasl_tls", "*basr_tls") ... these new insns.
2539         ("*return_si", "*return_di"): Remove and replace by ...
2540         ("*return"): ... this new insn.
2541         ("rotlsi3"): Allow on zSeries machines.
2542
2543         * config/s390/s390.c (legitimize_reload_constant_p): Use
2544         LL/LH type instructions in z/Architecture mode.
2545         * config/s390/s390.md ("*movsi_lli"): Likewise.
2546         ("*andsi3_ni", "*andhi3_ni", "*andqi3_ni"): Likewise.
2547         ("*iorsi3_ni", "*iorhi3_ni", "*iorqi3_ni"): Likewise.
2548         ("*extendqisi2"): Use LB in z/Architecture mode.
2549         ("*zero_extendqisi2_64", "*zero_extendqisi2_31"): Use LLGC in
2550         z/Architecture mode.
2551         ("zero_extendqihi2", "*zero_extendqihi2_64", "*zero_extendqihi2_31"):
2552         Likewise.
2553
2554         * config/s390/s390.md ("*tmdi_ext"): Allow in both 64-bit
2555         and 31-bit mode.
2556         ("ptr_extend"): Allow only in 64-bit mode.
2557
2558 2003-08-27  Daniel Jacobowitz  <drow@mvista.com>
2559
2560         * gcc.c (STANDARD_EXEC_PREFIX, STANDARD_STARTFILE_PREFIX)
2561         (TOOLDIR_BASE_PREFIX, STANDARD_BINDIR_PREFIX): Remove unnecessary
2562         definitions.
2563         (main): Only use standard_startfile_prefix if native.
2564         * doc/tm.texi (STANDARD_STARTFILE_PREFIX): Update.
2565
2566 2003-08-27  Per Bothner  <pbothner@apple.com>
2567
2568         * cpperror.c (print_location):  Don't check for !pfile->buffer.  That
2569         test fails following my 08-21 change, and it seems unnecessary anyway.
2570         (cpp_error):  Likewise.
2571
2572 2003-08-27  Jason Merrill  <jason@redhat.com>
2573
2574         * real.c (do_multiply): Initialize with memset.
2575
2576 2003-08-27  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2577
2578         * gcov.c (typedef struct arc_info): New field cs_count.
2579         (accumulate_line_counts): Find cycles correctly.
2580
2581 2003-08-27  Ulrich Weigand  <uweigand@de.ibm.com>
2582
2583         * config/s390/s390.c (struct machine_function): Remove member
2584         literal_pool_label.
2585         (s390_optimize_prolog): Replace TEMP_REG argument with
2586         TEMP_USED and BASE_USED.  Do not check get_pool_size ().
2587         (general_s_operand): Accept all immediates before reload if
2588         ALLOW_IMMEDIATE.  If not ALLOW_IMMEDIATE, reject literal pool
2589         references.
2590         (s390_output_symbolic_const): Remove UNSPEC_LTREL_OFFSET handling.
2591         (find_constant_pool_ref): Ignore UNSPECV_POOL_ENTRY insns.
2592         (s390_alloc_pool): New function.
2593         (s390_new_pool): Call it.
2594         (s390_dump_pool): Add REMOTE_LABEL argument.
2595         (s390_chunkify_start): Add BASE_REG argument.  Do not check
2596         get_pool_size ().
2597         (s390_chunkify_finish): Add BASE_REG argument.  Adapt
2598         s390_dump_pool call.
2599         (s390_pool_count, s390_nr_constants): Remove.
2600         (s390_output_constant_pool): Remove.
2601         (s390_mainpool_start): New function.
2602         (s390_mainpool_finish): New function.
2603         (s390_mainpool_cancel): New function.
2604         (s390_reorg): Implement main literal pool handling.
2605         (s390_emit_prologue): Emit main_pool placeholder instead of
2606         literal_pool_31 / literal_pool_64 insns.
2607         * config/s390/s390.h (s390_pool_count, s390_nr_constants): Remove.
2608         (ASM_OUTPUT_POOL_PROLOGUE, ASM_OUTPUT_SPECIAL_POOL_ENTRY): Remove.
2609         * config/s390/s390.md (UNSPEC_MAIN_BASE): New symbolic constant.
2610         ("main_base_31_small", "main_base_31_large"): New insns.
2611         ("main_base_64",  "main_pool"): New insns.
2612         ("literal_pool_31", "literal_pool_64"): Remove.
2613
2614 2003-08-27  Nathanael Nerode  <neroden@gcc.gnu.org>
2615
2616         * fixinc/inclhack.def (ptx_netswap): New disabled fix, ported from
2617         fixinc.ptx.
2618         * fixinc/inclhack.def (undefine_null):  Don't generate \r characters.
2619         Prettify a little.
2620         * fixinc/fixincl.x: Regenerate.
2621
2622 2003-08-27  Richard Earnshaw  <rearnsha@arm.com>
2623
2624         * lib1funcs.asm (L_ieee754_sp): New.  Include ieee754-sf.S.
2625         (L_ieee754_dp): New.  Include ieee754-df.S.
2626         * arm/ieee754-sf.S: Rework to allow interworking, calling from Thumb,
2627         and compilation in apcs-26 mode.
2628         * arm/ieee754-df.S: Likewise.
2629         * t-arm-elf (DPBIT, FPBIT, fp-bit.c dp-bit.c): Delete rules
2630         (LIB1ASMFUNCS): Add _ieee754_sp and _ieee754_dp targets.
2631
2632 2003-08-27  Nicolas Pitre  <nico@cam.org>
2633
2634         * arm/ieee754-sf.S: New.
2635         * arm/ieee754-df.S: New.
2636
2637 2003-08-27  Jakub Jelinek  <jakub@redhat.com>
2638
2639         * builtins.c (expand_builtin_expect_jump): Save pending_stack_adjust
2640         and restore it if returning NULL.
2641
2642 2003-08-27  Richard Sandiford  <rsandifo@redhat.com>
2643
2644         * calls.c (initialize_argument_information): If an argument has no
2645         stack space associated with it, and BLOCK_REG_PADDING is defined,
2646         use it to decide at which end the argument should be padded.
2647         * function.c (assign_parms): Allocate BLKmode stack slots.
2648         * config/mips/mips-protos.h (mips_pad_arg_upward): Declare.
2649         (mips_pad_reg_upward): Declare.
2650         * config/mips/mips.h (PAD_VARARGS_DOWN): Use FUNCTION_ARG_PADDING.
2651         (CUMULATIVE_ARGS): Remove num_adjusts and adjusts.
2652         (FUNCTION_ARG_PADDING): Use mips_pad_arg_upward.
2653         (BLOCK_REG_PADDING): Use mips_pad_reg_upward.
2654         * config/mips/mips.c (struct mips_arg_info): Remove struct_p.
2655         (mips_expand_call): Remove code for generating structure shifts.
2656         (mips_arg_info): Don't set struct_p.  Don't set fpr_p for non-float
2657         types unless using the EABI.
2658         (function_arg_advance): Don't generate shift instructions.
2659         (function_arg): Don't return them.  Don't short-circuit the
2660         check for double structure chunks for DFmode arguments.
2661         (mips_pad_arg_upward, mips_pad_reg_upward): New functions.
2662         (mips_expand_prologue): Remove code to emit structure shifts.
2663         * config/mips/irix6-libc-compat.c: Remove workarounds for buggy
2664         structure passing (inet_ntoa, inet_lnaof, inet_netof).  Update
2665         comments to say that only structure returns are a problem.
2666
2667 2003-08-26  Nathanael Nerode  <neroden@gcc.gnu.org>
2668
2669         * fixinc/tests/base/string.h, fixinc/tests/base/sys/regset.h:
2670         Fix to match produced versions.
2671         * fixinc/inclhack.def (longlong_t): New disabled test, ported
2672         from fixinc.svr4.
2673         * fixinc/inclhack.def (ptx_pwd_h): New disabled fix, ported
2674         from fixinc.ptx.
2675         * fixinc/inclhack.def (ptx_sys_mc_param_h): New disabled fix,
2676         ported from fixinc.ptx.
2677
2678 2003-08-26  Per Bothner  <pbothner@apple.com>
2679
2680         * cpplib.h (struct cpp_token):  Change type of field line to fileline.
2681         (cpp_error_with_line):  Use fileline for appropriate parameter.
2682         * cpphash.h (struct cpp_macro):  Change type of field line to fileline.
2683         (struct cpp_reader):  Likewise for fields line and directive_line.
2684         (_cpp_begin_message):  Use fileline for appropriate parameter.
2685         * cpperror.c (print_location, _cpp_begin_message, cpp_error_with_line,
2686         cpp_error):  Use fileline for appropriate parameters and variables.
2687         (print_location):  New local lin, since it is not a fileline.
2688
2689 2003-08-26  Roger Sayle  <roger@eyesopen.com>
2690
2691         PR middle-end/12002
2692         * tree.h (SCALAR_FLOAT_TYPE_P, COMPLEX_FLOAT_TYPE_P): New macros.
2693         (FLOAT_TYPE_P): Define in terms of these two new macros.
2694         * fold-const.c (fold <PLUS_EXPR>): Don't convert x+x into x*2.0
2695         for complex floating point types.
2696
2697 2003-08-26  Ulrich Weigand  <uweigand@de.ibm.com>
2698
2699         * config/s390/s390.c (emit_prologue): Don't check literal pool size.
2700         * config/s390/s390.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Call
2701         s390_output_pool_entry.
2702
2703 2003-08-26  Nathanael Nerode  <neroden@gcc.gnu.org>
2704
2705         * fixinc/inclhack.def (svr4_preproc_lint_on,
2706         svr4_preproc_lint_off, svr4_preproc_machine): New disabled
2707         fixes, ported from fixinc.svr4.
2708
2709 2003-08-26  Mark Mitchell  <mark@codesourcery.com>
2710
2711         * doc/install.texi (Prerequisites): Mention GNU make requirement.
2712
2713         * Makefile.in (AR_FOR_TARGET): Export it.
2714         (AR_CREATE_FOR_TARGET): Likewise.
2715         (AR_FLAGS_FOR_TARGET): Likewise.
2716         (AR_EXTRACT_FOR_TARGET): Likewise.
2717         (AWK): Likewise.
2718         (BUILD_PREFIX): Likewise.
2719         (BUILD_PREFIX_1): Likewise.
2720         (DESTDIR): Likewise.
2721         (GCC_FOR_TARGET): Likewise.
2722         (INCLUDES): Likewise.
2723         (INSTALL_DATA): Likewise.
2724         (LIB1ASMSRC): Likewise.
2725         (LIBGCC2_CFLAGS): Likewise.
2726         (MACHMODE_H): Likewise.
2727         (NM_FOR_TARGET): Likewise.
2728         (RANLIB_FOR_TARGET): Likewise.
2729         (libsubdir): Likewise.
2730         (slibdir): Likewise.
2731         (ORDINARY_FLAGS_TO_PASS): Remove stuff that we're
2732         exporting.
2733         (libgcc.a): Don't pass them here.
2734         (stmp-multilib): Or here.
2735         (install-libgcc): Or here.
2736         (install-multilib): Or here.
2737         (POSTSTAGE1_FLAGS_TO_PASS): Or here.
2738         (stage1_build): Or here.
2739
2740 2003-08-26  Andreas Krebbel <krebbel1@de.ibm.com>
2741
2742         * config/s390/s390.md ("*llgt_sisi", "*llgt_sisi_split", "*llgt_didi",
2743         "*llgt_didi_split", "*llgt_sidi", "*llgt_sidi_split"): New insns.
2744
2745 2003-08-26  Andreas Krebbel <krebbel1@de.ibm.com>
2746
2747         * config/s390/s390.md ("*fmadddf", "*fmsubdf",
2748         "*fmaddsf", "*fmsubsf"): New insns.
2749
2750 2003-08-26  Roger Sayle  <roger@eyesopen.com>
2751
2752         * fold-const.c (fold <MULT_EXPR>): Optimize (C1/X)*C2 into
2753         (C1*C2)/X when unsafe math optimizations are allowed.
2754         (fold <RDIV_EXPR>): Optimize C1/(X*C2) into (C1/C2)/X with unsafe
2755         math optimizations.  Minor code clean-ups.  Recursively call
2756         fold when constructing sub-expressions.
2757
2758 2003-08-26  Roger Sayle  <roger@eyesopen.com>
2759
2760         * builtins.c (fold_builtin_bitop): New function to perform constant
2761         folding of ffs, clz, ctz, popcount and parity builtin functions
2762         and their long and long long variants (such as ffsl and ffsll).
2763         (fold_builtin): fold_builtin_bitop when appropriate.
2764         * simplify-rtx.c (simplify_unary_operation): Honor both
2765         CLZ_DEFINED_VALUE_AT_ZERO and CTZ_DEFINED_VALUE_AT_ZERO when
2766         evaluating clz and ctz at compile-time, for operands wider
2767         than HOST_WIDE_INT.
2768
2769 2003-08-26  Nathan Sidwell  <nathan@codesourcery.com>
2770
2771         * builtins.c (build_function_call_expr): Don't set
2772         TREE_SIDE_EFFECTS here.
2773         * expr.c (emit_block_move_via_libcall): Likewise.
2774         (clear_storage_via_libcall): Likewise.
2775         * tree.c (build): Set TREE_SIDE_EFFECTS for non-const, non-pure
2776         CALL_EXPRs.
2777
2778         * gcse.c (is_too_expensive): New function.
2779         (gcse_main, delete_null_pointer_checks, bypass_jumps): Use it.
2780
2781 2003-08-25  Zack Weinberg  <zack@codesourcery.com>
2782
2783         * config.gcc (hppa*-*-hpux11*, ia64*-*-hpux*): Remove
2784         commented-out logic to use DCE threads (if present), add
2785         support for POSIX threads.
2786         * config/ia64/hpux.h: Define CPP_SPEC to set appropriate
2787         #defines for -pthread.  Add -lpthread to LIB_SPEC when
2788         -pthread.  In both cases take -mt as a synonym for -pthread
2789         for acc compatibility.
2790         Define GTHREAD_USE_WEAK to 0.
2791         * config/pa/pa-hpux11.h: Likewise for CPP_SPEC and LIB_SPEC.
2792         Remove old logic for DCE threads from LIB_SPEC.
2793         * config/pa/pa64-hpux.h: Define GTHREAD_USE_WEAK to 0.
2794
2795 2003-08-25  Roger Sayle  <roger@eyesopen.com>
2796
2797         * builtins.c (expand_builtin_mathfn):  Rearrange so that we only
2798         return 0 for invalid argument types.  Instead drop through to a
2799         call of expand_call at the bottom of function.  If op is SQRT,
2800         try attaching a SQRT rtx as the REQ_EQUAL note of the libcall.
2801
2802 2003-08-25  Richard Henderson  <rth@redhat.com>
2803
2804         * config/ia64/ia64.c (ia64_expand_tls_address): Properly truncate
2805         result when op0 is SImode.
2806
2807 2003-08-25  Nathanael Nerode  <neroden@twcny.rr.com>
2808
2809         * fixinc/inclhack.def (svr4_sighandler_type): New fix, ported
2810         from fixinc.svr4.
2811         * fixinc/fixincl.x: Regenerate.
2812         * fixinc/tests/base/sys/signal.h: Regenerate.
2813
2814 2003-08-25  Ulrich Weigand  <uweigand@de.ibm.com>
2815
2816         * combine.c (simplify_comparison): Re-enable widening of comparisons
2817         with non-paradoxical subregs of non-REG expressions.
2818
2819 2003-08-25  Ulrich Weigand  <uweigand@de.ibm.com>
2820
2821         * combine.c (distribute_notes): Handle REG_ALWAYS_RETURN.
2822
2823 2003-08-25  Ulrich Weigand  <uweigand@de.ibm.com>
2824
2825         * combine.c (combine_simplify_rtx): Fix RTL sharing bug.
2826
2827 2003-08-25  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2828
2829         * pretty-print.h (pp_maybe_newline_and_indent): New macro.
2830         * c-pretty-print.h (c_pretty_printer): Now typedef to the
2831         structure.  Be consistent with pretty-print.h abd cxx-pretty-print.h
2832         (struct c_pretty_print_info): Document.  Add new fields.
2833         (pp_type_specifier_seq): Rename from pp_c_type_specifier.
2834         (pp_direct_abstract_declarator): New macro.
2835         (pp_ptr_operator): Likewise.
2836         (pp_simple_type_specifier): Likewise.
2837         (pp_expression): Likewise.
2838         (pp_parameter_list): Rename from pp_parameter_declaration.
2839         * c-pretty-print.c (pp_c_whitespace): Now a function.
2840         (pp_c_left_paren): Likewise.
2841         (pp_c_right_paren): Likewise.
2842         (pp_c_dot): Likewise.
2843         (pp_c_ampersand): Likewise.
2844         (pp_c_arrow): Likewise.
2845         (pp_c_semicolon): Likewise.
2846         (pp_c_type_cast): New function.
2847         (pp_c_space_for_pointer_operator): Likewise.
2848         (pp_c_call_argument_list): Likewise.
2849         (pp_c_cv_qualifier): Adjust prototype.
2850         (pp_c_type_qualifier_list): Likewise.
2851         (pp_c_pointer): Likewise.  Handle REFERENCE_TYPE here.
2852         (pp_c_type_specifier): Rename from pp_c_simple_type_specifier.
2853         Adjust to follow standard grammar.
2854         (pp_c_specifier_qualifier_list): Adjusr prototype.  Handle
2855         REFERENCE_TYPE.  Tidy.
2856         (pp_c_parameter_type_list): Adjust prototype.  Tidy.
2857         (pp_c_parameter_declaration): Remove.
2858         (pp_c_abstract_declarator): Adjust prototype.
2859         (pp_c_direct_abstract_declarator): Likewise.
2860         (pp_c_type_id): Likewise.
2861         (pp_c_storage_class_specifier): Likewise.
2862         (pp_c_function_specifier): Likewise.
2863         (pp_c_declaration_specifiers): Likewise.
2864         (pp_c_direct_declarator): Likewise.
2865         (pp_c_declarator): Likewise.
2866         (pp_c_declarator): Likewise.
2867         (pp_c_declaration): Likewise.
2868         (pp_c_attributes): Likewise.  Tidy.
2869         (pp_c_function_definition): Adjust prototype.
2870         (pp_c_char): Likewise.
2871         (pp_c_string_literal): Likewise.
2872         (pp_c_integer_constant): Likewise.
2873         (pp_c_character_constant): Likewise.
2874         (pp_c_bool_constant): Likewise.
2875         (pp_c_enumeration_constant): Likewise.
2876         (pp_c_floating_constant): Likewise.
2877         (pp_c_constant): Likewise.
2878         (pp_c_identifier): Likewise.
2879         (pp_c_primary_expression): Likewise.  Remove TARGET_EXPR case.  Tidy.
2880         (pp_c_initializer): Adjust prototype.
2881         (pp_c_init_declarator): Likewise.
2882         (pp_c_initializer_list): Likewise.
2883         (pp_c_id_expression): Likewise.
2884         (pp_c_postfix_expression): Likewise.
2885         (pp_c_expression_list): Likewise.
2886         (pp_c_unary_expression): Likewise.
2887         (pp_c_cast_expression): Likewise.
2888         (pp_c_multiplicative_expression): Likewise.
2889         (pp_c_additive_expression): Likewise.
2890         (pp_c_shift_expression): Likewise.
2891         (pp_c_relational_expression): Likewise.
2892         (pp_c_equality_expression): Likewise.
2893         (pp_c_and_expression): Likewise.
2894         (pp_c_exclusive_or_expression): Likewise.
2895         (pp_c_inclusive_or_expression): Likewise.
2896         (pp_c_logical_and_expression): Likewise.
2897         (pp_c_logical_or_expression): Likewise.
2898         (pp_c_conditional_expression): Likewise.
2899         (pp_c_assignment_expression): Likewise.
2900         (pp_c_expression): Likewise.  Tidy.
2901         (pp_c_statement): Likewise.  Document.
2902         (pp_c_pretty_printer_init): Adjust prototype. Tidy.
2903
2904         * c-lang.c (c_initialize_diagnostics): Update.
2905         * c-common.h (strip_pointer_operator): Declare.
2906         * c-common.c (strip_pointer_operator): Define.
2907
2908 2003-08-25  Mark Mitchell  <mark@codesourcery.com>
2909
2910         PR c++/8795
2911         * tree.h (build_method_type_directly): Declare.
2912         * c-common.c (handle_vector_size_attributes): Handle METHOD_TYPEs.
2913         (vector_size_helper): Likewise.
2914         * tree.c (build_method_type_directly): New function.
2915         (build_method_type): Use it.
2916
2917 2003-08-24  Richard Henderson  <rth@redhat.com>
2918
2919         * config/i386.i386.c (ix86_return_in_memory): Reformat.  Return true
2920         for 16-byte vector modes if sse not enabled; warn for abi change.
2921         (ix86_value_regno): Only return xmm0 for 16-byte vector types.
2922
2923 2003-08-24  Kazu Hirata  <kazu@cs.umass.edu>
2924
2925         * rtlanal.c (may_trap_p): Simplify an integer comparison.
2926
2927 2003-08-24  Nathanael Nerode  <neroden@gcc.gnu.org>
2928
2929         * fixinc/inclhack.def (AAB_svr4_replace_byteorder):  Enhance
2930         comment.  Enable for DYNIX/ptx systems (when they switch to
2931         regular fixincludes).
2932         * fixinc/fixincl.x: Regenerate.
2933
2934 2003-08-23  Jason Eckhardt  <jle@rice.edu>
2935
2936         * config/i860/t-i860: New.
2937         * config.gcc (i860-*-sysv4*): Add t-i860 to tmake_file.
2938
2939 2003-08-23  Jakub Jelinek  <jakub@redhat.com>
2940
2941         * c-decl.c (pushdecl): Only put decls which finish_struct will do
2942         something about onto incomplete chain.
2943         (finish_struct): If not removing type from incomplete
2944         list, update prev.
2945
2946 2003-08-20  Jan Hubicka  <jh@suse.cz>
2947
2948         PR target/11369
2949         * i386.c (ix86_expand_carry_flag_compare): Validate operand.
2950
2951         PR target/11031
2952         * i386.c (const_0_to_3_operand, const_0_to_7_operand,
2953         const_0_to_15_operand, const_0_to_255_operand): New predicates.
2954         * i386.h (PREDICATE_CODES): Add these.
2955         * i386.c (pinsrw and pextrw patterns): Use them.
2956
2957         PR target/10984
2958         * i386.c (ix86_expand_binop_builtin): Behave sanely for VOIDmodes.
2959
2960         PR target/8869
2961         * expr.c (convert_modes): Deal properly with integer to vector
2962         constant conversion.
2963
2964         PR target/8871
2965         * i386.md (zero_extendsidi2*): Add MMX and SSE alternatives.
2966
2967 2003-08-23  Ulrich Weigand  <uweigand@de.ibm.com>
2968
2969         * config/s390/s390.h (LOAD_EXTEND_OP): Remove.
2970         * config/s390/s390.md ("movhi"): New expander; old insn renamed to ...
2971         ("*movhi"): ... this.
2972         ("movqi", "*movqi"): Likewise.
2973         ("movqi_64"): Remove.
2974         ("*zero_extendhisi2_31"): Change predicate to s_operand.
2975
2976 2003-08-23  Dale Johannesen  <dalej@apple.com>
2977         * calls.c (emit_library_call_value_1): Fix obvious errors in
2978         arguments to emit_group_store.
2979
2980 2003-08-23  Jason Eckhardt  <jle@rice.edu>
2981
2982         * calls.c (emit_library_call_value_1): Remove code related
2983         to LIBGCC_NEEDS_DOUBLE.
2984         * config/stormy16/stormy16.h: Remove mention of LIBGCC_NEEDS_DOUBLE.
2985         * doc/tm.texi: Likewise.
2986         * system.h: Poison the LIBGCC_NEEDS_DOUBLE macro.
2987
2988 2003-08-23  Richard Sandiford  <rsandifo@redhat.com>
2989
2990         * config/mips/linux64.h (STARTFILE_PREFIX_SPEC): Remove.
2991
2992 2003-08-23  Richard Sandiford  <rsandifo@redhat.com>
2993
2994         * config/mips/mips.c (mips_setup_incoming_varargs): Handle o32 and o64
2995         as well.  Put memory references in the varargs alias set.
2996         (mips_expand_prologue): Remove varargs handling from here.
2997
2998 2003-08-23  Ulrich Weigand  <uweigand@de.ibm.com>
2999
3000         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
3001         s390_expand_cmpmem, s390_output_constant_pool, s390_build_va_list,
3002         s390_function_profiler, s390_output_mi_thunk): Use ISO C syntax
3003         for function pointer calls.
3004         * config/s390/s390.md ("*negdi2_31"): Likewise.
3005
3006 2003-08-23  Roger Sayle  <roger@eyesopen.com>
3007
3008         * combine.c (apply_distributive_law): Correct comment.
3009
3010 2003-08-23  Jason Eckhardt  <jle@rice.edu>
3011
3012         * config/i860/i860.h: Remove comment mentioning LIBGCC_NEEDS_DOUBLE.
3013
3014 2003-08-22  Jason Eckhardt  <jle@rice.edu>
3015
3016         * config/i860/i860.c (i860_build_va_list): Create the va_decl
3017         declaration.  Document the va_list structure.
3018         (i860_va_start): Initialize the va_list structure.
3019         (i860_va_arg): Rewrite completely.
3020         * config/i860/i860.h (LIBGCC_NEEDS_DOUBLE): Don't define.
3021         * config/i860/varargs.asm: Do not allocate or initialize
3022         a va_list.  Return the address of the register save area.
3023
3024 2003-08-22  Kazu Hirata  <kazu@cs.umass.edu>
3025
3026         * config/iq2000/iq2000.c: Fix comment typos.
3027         * config/iq2000/iq2000.md: Likewise.
3028
3029 2003-08-22  Kazu Hirata  <kazu@cs.umass.edu>
3030
3031         * config/iq2000/iq2000.c: Follow spelling conventions.
3032         * config/iq2000/iq2000.h: Likewise.
3033         * config/mn10300/mn10300.c: Likewise.
3034
3035 2003-08-22  Jason Eckhardt  <jle@rice.edu>
3036
3037         * config/i860/i860.c (output_move_double): Don't set latehalf
3038         to zero for CONST_INT (since it could be, e.g., -1).
3039
3040         * config/i860/i860.h (REMSI3_LIBCALL): Replace this macro...
3041         (MODSI3_LIBCALL): ...with this one.
3042         (UREMSI3_LIBCALL): Replace this macro...
3043         (UMODSI3_LIBCALL): ...with this one.
3044
3045 2003-08-22  Jason Eckhardt  <jle@rice.edu>
3046
3047         * config/i860/i860-protos.h (output_delay_insn): Remove prototype.
3048         (output_delayed_branch): Remove prototype.
3049         (single_insn_src_p): Remove prototype.
3050         * config/i860/i860.c (single_insn_src_p): Remove function.
3051         (output_delayed_branch): Remove function.
3052         (output_delay_insn): Remove function.
3053         (va_start): Remove unconditional test and dead code, re-format.
3054         Fix coding style and spelling problems in various comments.
3055         * config/i860/i860.md (UNSPECV_BLOCKAGE): Define constant...
3056         (blockage pattern): ...and use it here.
3057         (all define_peephole patterns related to delayed branches): Remove.
3058         Fix coding style and spelling problems in various comments.
3059
3060 2003-08-22  Jason Eckhardt  <jle@rice.edu>
3061
3062         * config/i860/i860.c: Replace all occurrences of 'GNU CC' with 'GCC'.
3063         Remove all uses of the PARAMS macro.  Remove superflous prototypes.
3064         Convert all function definitions from traditional to ISO C90 syntax.
3065         * config/i860/i860-protos.h: Replace all occurrences of 'GNU CC'
3066         with 'GCC'.  Remove all uses of the PARAMS macro.
3067         * config/i860/i860.h: Replace all occurrences of 'GNU CC' with 'GCC'.
3068         * config/i860/i860.md: Likewise.
3069         * config/i860/sysv4.h: Likewise.
3070         * config/i860/varargs.asm: Likewise.
3071
3072 2003-08-22  Jason Eckhardt  <jle@rice.edu>
3073
3074         * config/i860/i860-protos.h (i860_va_start): Remove 'stdarg_p'
3075         argument.
3076         (tdesc_section): Add prototype.
3077         Update copyright dates.
3078         * config/i860/i860.c: Include coretypes.h, tm.h, and toplev.h.
3079         (TARGET_ASM_FUNCTION_PROLOGUE): Move definition to end of file.
3080         (TARGET_ASM_FUNCTION_EPILOGUE): Likewise.
3081         (targetm): Likewise.
3082         (i860_output_function_prologue): Substitute HOST_WIDE_INT_PRINT_DEC
3083         for '%d' where necessary.
3084         (i860_va_start): Remove 'stdarg_p' argument.  Make conditional checks
3085         on 'stdarg_p' unconditional.  Divide current_function_args_info.ints
3086         by UNITS_PER_WORD when referencing (likewise for .floats).
3087         (I860_SVR4_VARARGS): Rename...
3088         (I860_SVR4_VA_LIST): ...to this.
3089         Call build() with 't' rather than 'field'.
3090         (i860_rtx_costs): New function.
3091         (TARGET_RTX_COSTS): Define.
3092         (i860_internal_label): New function.
3093         (TARGET_ASM_INTERNAL_LABEL): Define.
3094         (i860_file_start): New function.
3095         Update copyright dates.
3096         * config/i860/i860.h (CPP_PREDEFINES): Remove.
3097         (TARGET_CPU_CPP_BUILTINS): Define.
3098         (EXPAND_BUILTIN_VA_START): Remove 'stdarg' argument.
3099         (CONST_COSTS): Remove (and move code to i860_rtx_costs).
3100         (ASM_FILE_START): Remove.
3101         (ASM_FILE_START_1): Remove.
3102         (ASM_GLOBALIZE_LABEL): Remove.
3103         (ASM_OUTPUT_INTERNAL_LABEL): Remove.
3104         (ASM_OUTPUT_CASE_LABEL): Replace call of ASM_OUTPUT_INTERNAL_LABEL
3105         with targetm.asm_out.internal_label.
3106         Update copyright dates.
3107         * config/i860/sysv4.h (USER_LABEL_PREFIX): Define.
3108         (CPP_PREDEFINES): Remove.
3109         (TARGET_OS_CPP_BUILTINS): Define.
3110         (GLOBAL_ASM_OP): Define.
3111         (ASM_FILE_START): Remove.
3112         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Define.
3113         (TARGET_ASM_FILE_START): Define.
3114         Update copyright dates.
3115
3116 2003-08-22  Jason Eckhardt  <jle@rice.edu>
3117
3118         * gcc/config.gcc (i860-*-sysv4*): Add target.
3119         * config/i860/i860-protos.h: New.
3120         * config/i860/i860.c: New.
3121         * config/i860/i860.h: New.
3122         * config/i860/i860.md: New.
3123         * config/i860/sysv4.h: New.
3124         * config/i860/varargs.asm: New.
3125         * config/i860/x-sysv4: New.
3126
3127 2003-08-22  Jason Eckhardt  <jle@rice.edu>
3128
3129         * config/pa/pa.c: Replace 'GNU CC' with 'GCC'.
3130         Remove all uses of PARAMS macro.
3131         Convert all function definitions to ISO C90 syntax.
3132         * config/pa/elf.h: Replace 'GNU CC' with 'GCC'.
3133         * config/pa/fptr.c: Likewise.
3134         * config/pa/lib2funcs.asm: Likewise.
3135         * config/pa/long_double.h: Likewise.
3136         * config/pa/milli64.S: Likewise.
3137         * config/pa/pa-64.h: Likewise.
3138         * config/pa/pa-hpux.h: Likewise.
3139         * config/pa/pa-hpux10.h: Likewise.
3140         * config/pa/pa-hpux11.h: Likewise.
3141         * config/pa/pa-linux.h: Likewise.
3142         * config/pa/pa-modes.def: Likewise.
3143         * config/pa/pa-osf.h: Likewise.
3144         * config/pa/pa-pro-end.h: Likewise.
3145         * config/pa/pa.md: Likewise.
3146         * config/pa/pa32-linux.h: Likewise.
3147         * config/pa/pa64-linux.h: Likewise.
3148         * config/pa/pa64-hpux.h: Likewise.
3149         * config/pa/pa64-regs.h: Likewise.
3150         * config/pa/quadlib.c: Likewise.
3151         * config/pa/rtems.h: Likewise.
3152         * config/pa/pa-protos.h: Replace 'GNU CC' with 'GCC' and remove
3153         all uses of the PARAMS macro.
3154         * config/pa/pa.h: Likewise.
3155         * config/pa/som.h: Likewise.
3156
3157         * config/iq2000/iq2000.c: Replace 'GNU CC' with 'GCC'.
3158         Remove all uses of PARAMS macro.
3159         Convert all function definitions to ISO C90 syntax.
3160         * config/iq2000-protos.h: Replace 'GNU CC' with 'GCC'.
3161         Remove all uses of PARAMS macro.
3162         * config/iq2000.h: Remove all uses of PARAMS macro.
3163         * config/iq2000/iq2000.md: Replace 'GNU CC' with 'GCC'.
3164
3165 2003-08-23  Ulrich Weigand  <uweigand@de.ibm.com>
3166
3167         * config/s390/s390-protos.h (s390_output_pool_entry): Declare.
3168         * config/s390/s390.c (gen_consttable): Remove.
3169         (s390_dump_pool): Use UNSPECV_POOL_ENTRY for pool entry insns.
3170         (s390_output_pool_entry): New function.
3171         * config/s390/s390.md (UNSPECV_POOL_QI, UNSPECV_POOL_HI,
3172         UNSPECV_POOL_SI, UNSPECV_POOL_DI, UNSPECV_POOL_TI,
3173         UNSPECV_POOL_SF, UNSPECV_POOL_DF): Remove, replace by ...
3174         (UNSPECV_POOL_ENTRY): ... this new constant.
3175         ("consttable_qi", "consttable_hi", "consttable_si", "consttable_di",
3176         "consttable_ti", "consttable_sf", "consttable_df"): Remove ...
3177         ("*pool_entry"): ... and replace by this new insn.
3178         ("literal_pool_31"): Do not emit anchor label if pool empty.
3179
3180         * config/s390/s390.c (struct machine_function): Add save_return_addr_p.
3181         (s390_optimize_prolog): Save RETURN_REGNUM if save_return_addr_p.
3182         (s390_fixup_clobbered_return_reg): Remove.
3183         (s390_reorg): Don't call s390_fixup_clobbered_return_reg.
3184         (s390_return_addr_rtx): Always retrieve return address from save area
3185         slot.  Use save_return_addr_p to force slot to be filled.
3186         (s390_emit_prologue): Remove has_hard_reg_initial_val test.
3187
3188 2003-08-22  Chris Demetriou  <cgd@broadcom.com>
3189
3190         * config/mips/mips.h (MASK_FIX_SB1, TARGET_FIX_SB1): New defines.
3191         (TARGET_SWITCHES): Add -mfix-sb1 and -mno-fix-sb1.
3192         * config/mips/mips.md (divdf3, divsf3, sqrtdf2, sqrtsf2): Work
3193         around SB-1 errata if TARGET_FIX_SB1 is set.
3194         (recip.d insn, recip.s insn, rsqrt.d insn, rsqrt.s insn): Likewise.
3195         * doc/invoke.texi: Document MIPS -mfix-sb1 and -mno-fix-sb1.
3196
3197 2003-08-22  Roger Sayle  <roger@eyesopen.com>
3198
3199         * hashtable.c (ht_expand): Avoid calculating rehash for the common
3200         case that the first probe hits an empty hash table slot.
3201
3202 2003-08-22  Mark Mitchell  <mark@codesourcery.com>
3203
3204         * config/ia64/hpux.h (SUPPORTS_INIT_PRIORITY): Define to 0.
3205
3206 2003-08-22  Mark Mitchell  <mark@codesourcery.com>
3207
3208         * config/ia64/ia64.md (*ptr_extend_plus_1): Rename to ...
3209         (ptr_extend_plus_imm): ... this.
3210         * config/ia64/ia64.c (addp4_optimize_ok): Do not disable addp4
3211         optimization in C++.
3212         (ia64_output_mi_thunk): Support ILP32 mode.
3213
3214 2003-08-22  Bernardo Innocenti  <bernie@develer.com>
3215
3216         * gcc/config/m68k/m68k.c (m68k_coff_asm_named_section): remove unused
3217         function.
3218         * gcc/config/m68k/m68k.c (-m68k_svr3_asm_out_constructor): likewise.
3219
3220 2003-08-22  Kazu Hirata  <kazu@cs.umass.edu>
3221
3222         * config/i386/i386.c (const_int_1_operand): Simplify an
3223         integer comparison.
3224
3225 2003-08-22  Alan Modra  <amodra@bigpond.net.au>
3226
3227         * config/fp-bit.c: Specify config/ dir for include of fp-bit.h.
3228         * config/rs6000/ppc64-fp.c: Likewise.
3229
3230 2003-08-22  Kazu Hirata  <kazu@cs.umass.edu>
3231
3232         * cfgcleanup.c: Fix comment typos.
3233         * emit-rtl.c: Likewise.
3234         * optabs.c: Likewise.
3235         * ra-build.c: Likewise.
3236         * rtlanal.c: Likewise.
3237         * tree.h: Likewise.
3238
3239 2003-08-22  Kazu Hirata  <kazu@cs.umass.edu>
3240
3241         * c-decl.c: Fix comment formatting.
3242         * cfgrtl.c: Likewise.
3243         * combine.c: Likewise.
3244         * convert.c: Likewise.
3245         * dominance.c: Likewise.
3246         * dwarf2out.c: Likewise.
3247         * dwarfout.c: Likewise.
3248         * expmed.c: Likewise.
3249         * fold-const.c: Likewise.
3250         * gcov.c: Likewise.
3251         * genattrtab.c: Likewise.
3252         * ggc-common.c: Likewise.
3253         * mips-tfile.c: Likewise.
3254         * regmove.c: Likewise.
3255
3256 2003-08-22  Kazu Hirata  <kazu@cs.umass.edu>
3257
3258         * builtin-attrs.def: Fix comment formatting.
3259         * c-pretty-print.c: Likewise.
3260         * diagnostic.h: Likewise.
3261         * langhooks.h: Likewise.
3262         * recog.c: Likewise.
3263         * simplify-rtx.c: Likewise.
3264         * tree.def: Likewise.
3265
3266 2003-08-22  Bernardo Innocenti  <bernie@develer.com>
3267
3268         * config/m68k/m68k-protos.h: Convert to ISO C90.
3269         * config/m68k/m68k.c: Likewise.
3270
3271 2003-08-21  Bernardo Innocenti  <bernie@develer.com>
3272             Paul Dale  <pauli@snapgear.com>
3273             Peter Barada <peter@baradas.org>
3274
3275         * config/m68k/m68k.c (m68k_rtx_costs): Adjust mul/div costs for
3276         ColdFire cores.
3277
3278 2003-08-21  Zack Weinberg  <zack@codesourcery.com>
3279
3280         * Makefile.in (INCLUDES): Remove -I$(srcdir)/config.
3281         * config.gcc (*-*-openbsd): Don't set tm_file.
3282         (alpha*-*-openbsd, arm*-*-coff*, arm*-wince-pe*,
3283         arm-*-pe*, avr-*-*, h8300-*-rtems*, h8300-*-elf*,
3284         h8300-*-*, hppa*-*-osf*, hppa*-*-bsd*, hppa*-*-hpux*,
3285         i370-*-opened*, i370-*-mvs*, i370-*-linux*, i?86-*-openbsd*,
3286         i?86-*-lynxos, i?86-*-nto-qnx*, iq2000*-*-elf*, m68000-hp-hpux*,
3287         m68k-hp-hpux*, m68k-*-aout*, m68k-*-coff*, m68020-*-elf*,
3288         m68k-*-elf*, m68k*-*-netbsd*, m68k*-*-openbsd*, m68k-*-sysv4*,
3289         m68k-*-linux*, m68k-*-rtems*, mcore-*-pe*, mips*-*-netbsd*,
3290         mips*-*-openbsd*, rs6000-*-lynxos*, sh*-*-elf*, sh*-*-ka,
3291         sh-*-rtemself, sparc-*-openbsd*, strongarm-*-pe, vax-*-openbsd*,
3292         xscale-*-coff): Use explicit and complete lists of target headers
3293         to include.  Move definitions to tm_defines where appropriate.
3294         (hppa*-*-openbsd*, powerpc-*-openbsd*): Comment out stanza for
3295         not-yet-contributed configuration.
3296
3297         * config/lynx.h, config/alpha/openbsd.h, config/arm/coff.h
3298         * config/avr/avr.h, config/frv/frv.h, config/h8300/elf.h
3299         * config/i370/linux.h, config/i370/mvs.h, config/i370/oe.h
3300         * config/i386/nto.h, config/iq2000/iq2000.h,
3301         * config/m68k/coff.h, config/m68k/hp310.h, config/m68k/hp320.h
3302         * config/m68k/linux.h, config/m68k/m68k-aout.h
3303         * config/m68k/m68k-none.h, config/m68k/m68kv4.h
3304         * config/m68k/netbsd.h, config/m68k/openbsd.h
3305         * config/m68k/sgs.h, config/mcore/mcore-pe.h,
3306         * config/mips/netbsd.h, config/mips/openbsd.h, config/pa/pa.h,
3307         * config/rs6000/lynx.h, config/sh/embed-elf.h, config/sparc/openbsd.h:
3308         Remove includes of other target config headers, and
3309         definitions of macros moved to tm_defines lists.  Add #undefs
3310         where now necessary to prevent redefinition warnings.
3311
3312         * config/h8300/coff.h: New file split out of...
3313         * config/h8300/elf.h: ...here.
3314         * config/m68k/hp320base.h: New file split out of...
3315         * config/m68k/hp320.h: ...here.
3316         * config/rs6000/lynxbase.h: New file split out of...
3317         * config/rs6000/lynx.h: ...here.
3318
3319         * config/m68k/hp310g.h, config/m68k/hp320g.h, config/m68k/hpux7.h
3320         * config/m68k/m68k-coff.h, config/mips/openbsd-be.h: Delete file.
3321
3322         * config/sol2.h: Remove #if 0-ed #include of sys/mman.h.
3323         * config/m68k/m68kelf.h: Remove commented out #include of m68k/sgs.h.
3324         * config/mcore/mcore.h: Don't include hwint.h nor machmode.h.
3325         Remove unnecessary #ifndef.
3326         * config/s390/s390.h: Prefix #include of s390/fixdfdi.h
3327         [under IN_LIBGCC2] with config/.
3328
3329 2003-08-21  Per Bothner  <pbothner@apple.com>
3330
3331         * cppfiles.c (stack_file):  Correctly pass return_at_eof parameter
3332         to cpp_push_buffer.
3333         * cpplex.c (_cpp_get_fresh_line):  Don't buffer->prev - handled
3334         by return_at_eof check.  Always call _cpp_pop_buffer at end.
3335
3336 2003-08-21  Kazu Hirata  <kazu@cs.umass.edu>
3337
3338         PR target/11805
3339         * config/h8300/h8300.md (two anonymous patterns): Remove.
3340
3341 2003-08-21  Richard Sandiford  <rsandifo@redhat.com>
3342
3343         * config/mips/mips.h (MUST_PASS_IN_STACK): Remove BLKmode clause.
3344         * config/mips/mips.c (function_arg_pass_by_reference): Never return
3345         true for n32 & n64.
3346
3347 2003-08-21  Josef Zlomek  <zlomekj@suse.cz>
3348
3349         * fold-const.c (fold): Fix bug in (A & C) == D where D & ~C != 0
3350         and similarly in (A | C) == D where C & ~D != 0.
3351
3352 2003-08-20  Geoffrey Keating  <geoffk@apple.com>
3353
3354         PR 8180
3355         * configure.in: When testing with_libs and with_headers, treat
3356         'no' as unset.  Based on a patch by Dan Kegel <dank@kegel.com>.
3357         * configure: Regenerate.
3358
3359 2003-08-20  Peter Barada <peter@baradas.org>
3360
3361         * longlong.h (umul_ppmm): Add ColdFire support.
3362
3363 2003-08-20  Peter Barada <peter@baradas.org>
3364             Bernardo Innocenti  <bernie@develer.com>
3365
3366         * config/m68k/m68k-none.h: Introduce new ColdFire archs.
3367         * config/m68k/m68k.h: Likewise.
3368         * config/m68k/lb1sf68.asm: Rename __mcf5200__ to __mcoldfire__.
3369         * config/m68k/coff.h: Rename TARGET_5200 to TARGET_COLDFIRE.
3370         * config/m68k/linux.h: Likewise.
3371         * config/m68k/m68k.c: Likewise.
3372         * config/m68k/m68k.md: Likewise.
3373         * config/m68k/m68kelf.h: Likewise.
3374         * config/m68k/netbsd-elf.h: Likewise.
3375         * config/m68k/t-m68kelf: Add multilib targets for new ColdFire archs.
3376
3377 2003-08-20  Bernardo Innocenti  <bernie@develer.com>
3378
3379         * config/m68k/m68k.c: Strip away code depending on NO_ADDSUB_Q definition.
3380         * config/m68k/m68k.md: Likewise.
3381
3382 2003-08-20  Mark Mitchell  <mark@codesourcery.com>
3383
3384         PR java/11996
3385         Revert this change:
3386         2003-08-19  Mark Mitchell  <mark@codesourcery.com>
3387         * c-common.c (c_common_signed_or_unsigned_type): Correctly handle
3388         types with precisions other than those given by native machine
3389         modes.
3390
3391 2003-08-20  Gunther Nikl  <gni@gecko.de>
3392
3393         * config/m68k/m68k.md (anonymous define_insn): remove obsolete code
3394         selected by FSGLMUL_USE_S and FSGLDIV_USE_S
3395         * config/m68k/m68k.c (output_move_himode): remove SGS_NO_LI check
3396         * config/m68k/m68k.md (anonymous define_insn): Likewise
3397         * config/m68k/m68k.md (anonymous define_insn): remove ISI_OV check
3398         * config/m68k/m68k.c (standard_68881_constant_p): remove obsolete
3399         code selected by NO_ASM_FMOVECR
3400
3401 2003-08-20  Gunther Nikl  <gni@gecko.de>
3402
3403         * config/m68k/m68k.c (output_move_const_into_data_reg,
3404         output_move_himode): unify MOTOROLA/MIT handling of moveq
3405         * config/m68k/m68k.md (movsi_const0, anonymous define_insn):
3406         Likewise
3407
3408 2003-08-20  Gunther Nikl  <gni@gecko.de>
3409
3410         * config/m68k/m68k.c (m68k_output_function_prologue): use %U in
3411         label name
3412         * config/m68k/m68k.c (m68k_output_function_epilogue): replace
3413         HOST_WIDE_INT_PRINT_DEC with %wd
3414
3415 2003-08-20  Loren James Rittle  <ljrittle@acm.org>
3416
3417         * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Handle
3418   &nbs