OSDN Git Service

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