OSDN Git Service

* config/m68k/coff.h (REGISTER_NAMES): Add fake register `argptr'
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2003-09-08  Bernardo Innocenti  <bernie@develer.com>
2             Peter Barada <peter@baradas.org>
3
4         * config/m68k/coff.h (REGISTER_NAMES): Add fake register `argptr'
5         * config/m68k/hp320.h (REGISTER_NAMES): Likewise.
6         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
7         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
8         * gcc/config/m68k/sgs.h (REGISTER_NAMES): Likewise.
9         * config/m68k/m68k-protos.h (m68k_initial_elimination_offset): Add prototype.
10         * config/m68k/m68k.c (m68k_frame): New struct, simular to ix86 back-end.
11         (m68k_compute_frame_layout): New function.
12         (m68k_initial_elimination_offset): New function.
13         (m68k_output_function_prologue): ColdFire-specific movem handling.
14         (m68k_output_function_epilogue): Likewise.
15         * config/m68k/m68k.h (FIRST_PSEOUDO_REGISTER): Make room for argptr reg.
16         (ARG_POINTER_REGNUM): Add new definition.
17         (INITIAL_FRAME_POINTER_OFFSET): Remove macro.
18         (ELIMINABLE_REGS): Define new macro, like in ix86 back-end.
19         (CAN_ELIMINATE): Likewise.
20         (INITIAL_ELIMINATION_OFFSET): Likewise.
21
22 2003-09-08  Bernardo Innocenti  <bernie@develer.com>
23
24         * config/m68k/m68k.c (m68k_output_function_prologue): Simplify
25         by removing redundant variable cfa_store_offset.
26
27 2003-09-08  Mark Mitchell  <mark@codesourcery.com>
28
29         * langhooks-def.h (lhd_register_builtin_type): New function.
30         (LANG_HOOKS_REGISTER_BUILTIN_TYPE): New macro.
31         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
32         * langhooks.h (lang_hooks_for_types): Add register_builtin_type.
33         * langhooks.c (lhd_register_builtin_type): New function.
34         * c-common.h (c_register_builtin_type): Declare.
35         * c-common.c (c_register_builtin_type): New function.
36         * c-lang.c (LANG_HOOKS_REGISTER_BUILTIN_TYPE): Define to
37         c_register_builtin_type.
38         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Remove __fpreg,
39         __float80, and __float128 macros.
40         * config/ia64/ia64.c (ia64_init_builtins): Create __fpreg,
41         __float80, and __float128 types.
42
43 2003-09-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
44
45         * builtin-types.def
46         (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE,
47         BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE_COMPLEX_DOUBLE,
48         BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT_COMPLEX_FLOAT): New.
49         * builtins.def (BUILT_IN_CACOS, BUILT_IN_CACOSF, BUILT_IN_CACOSH,
50         BUILT_IN_CACOSHF, BUILT_IN_CACOSHL, BUILT_IN_CACOSL,
51         BUILT_IN_CARG, BUILT_IN_CARGF, BUILT_IN_CARGL, BUILT_IN_CASIN,
52         BUILT_IN_CASINF, BUILT_IN_CASINH, BUILT_IN_CASINHF,
53         BUILT_IN_CASINHL, BUILT_IN_CASINL, BUILT_IN_CATAN,
54         BUILT_IN_CATANF, BUILT_IN_CATANH, BUILT_IN_CATANHF,
55         BUILT_IN_CATANHL, BUILT_IN_CATANL, BUILT_IN_CCOS, BUILT_IN_CCOSF,
56         BUILT_IN_CCOSH, BUILT_IN_CCOSHF, BUILT_IN_CCOSHL, BUILT_IN_CCOSL,
57         BUILT_IN_CEXP, BUILT_IN_CEXPF, BUILT_IN_CEXPL, BUILT_IN_CPOW,
58         BUILT_IN_CPOWF, BUILT_IN_CPOWL, BUILT_IN_CPROJ, BUILT_IN_CPROJF,
59         BUILT_IN_CPROJL, BUILT_IN_CSIN, BUILT_IN_CSINF, BUILT_IN_CSINH,
60         BUILT_IN_CSINHF, BUILT_IN_CSINHL, BUILT_IN_CSINL, BUILT_IN_CSQRT,
61         BUILT_IN_CSQRTF, BUILT_IN_CSQRTL, BUILT_IN_CTAN, BUILT_IN_CTANF,
62         BUILT_IN_CTANH, BUILT_IN_CTANHF, BUILT_IN_CTANHL, BUILT_IN_CTANL):
63         New.
64         * doc/extend.texi: Document new builtins.
65
66 Tue Sep  9 02:18:06 CEST 2003  Jan Hubicka  <jh@suse.cz>
67
68         * cgraph.c (cgraph_varpool_finalize_decl): Sanity check duplicated
69         finalization.
70         * cgraphunit.c (decide_is_fnction_needed): Avoid special case of nested
71         functions, check for COMDAT.
72         (cgraph_assemble_pending_functions): Break out from...
73         (cgraph_finalize_function): ... here; allow redefinig of extern inline
74         functions.
75         (record_call_1): Record function references only in non-unit-at-a-time
76         mode.
77         (cgraph_analyze_function): Reset current_function_decl.
78         (cgraph_finalize_compilation_unit):  Assemble pending functions.
79
80 2003-09-08  Mark Mitchell  <mark@codesourcery.com>
81
82         * mklibgcc.in (libcc.a): Depend on stmp-dirs.
83         (libgov.a): Likewise.
84         (libgcc_eh.a): Likewise.
85
86 2003-09-08  Roger Sayle  <roger@eyesopen.com>
87
88         * fold-const.c (operand_equal_p): Clarify documentation.
89
90 2003-09-08  Richard Henderson  <rth@redhat.com>
91
92         * c-decl.c (c_expand_body_1): Push and pop function context here.
93         * tree-optimize.c (tree_rest_of_compilation): ... not here.  Take
94         nested argument instead of computing nesting ourselves.
95
96 2003-09-08  Jakub Jelinek  <jakub@redhat.com>
97
98         * toplev.c (rest_of_handle_stack_regs): Call split_all_insns before
99         regstack if optimizing but not scheduling after reload.
100
101 2003-09-08  Jakub Jelinek  <jakub@redhat.com>
102
103         * config/sparc/sparc.c (struct machine_function): New type.
104         (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
105         (sparc_override_options): Initialize init_machine_status.
106         (tls_symbolic_operand, tgd_symbolic_operand, tld_symbolic_operand,
107         tie_symbolic_operand, tle_symbolic_operand): New functions.
108         (symbolic_operand): Disallow tls_symbolic_operand.
109         (symbolic_memory_operand): Likewise.
110         (tls_call_delay, sparc_cannot_force_const_mem, legitimate_constant_p,
111         constant_address_p, legitimate_pic_operand_p, legitimate_address_p):
112         New functions.
113         (sparc_tls_symbol): New variable.
114         (sparc_tls_get_addr, sparc_tls_got, legitimize_tls_address,
115         legitimize_address): New functions.
116         (print_operand): Handle %&.
117         (sparc_init_machine_status, get_some_local_dynamic_name,
118         get_some_local_dynamic_name_1): New functions.
119         (sparc_output_dwarf_dtprel): New function.
120         * config/sparc/sparc.h (CONSTANT_ADDRESS_P): Moved into
121         constant_address_p.
122         (LEGITIMATE_PIC_OPERAND_P): Moved into legitimate_pic_operand_p.
123         (LEGITIMATE_CONSTANT_P): Moved into legitimate_constant_p.
124         (GO_IF_LEGITIMATE_ADDRESS): Moved into legitimate_address_p.
125         (LEGITIMIZE_ADDRESS): Moved into legitimize_address.
126         (PRINT_OPERAND_PUNCT_VALID_P): Add '&'.
127         (TARGET_TLS, TARGET_SUN_TLS, TARGET_GNU_TLS): Define.
128         (ASM_OUTPUT_DWARF_DTPREL): Define.
129         (PREDICATE_CODES): Add tgd_symbolic_operand, tld_symbolic_operand,
130         tie_symbolic_operand, tle_symbolic_operand.
131         * config/sparc/sparc.md (UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_TLSLDO,
132         UNSPEC_TLSIE, UNSPEC_TLSLE, UNSPEC_TLSLD_BASE): New constants.
133         (tls_call_delay): New attribute.
134         (in_call_delay): Use it.
135         (movqi, movhi, movsi, movdi): Call legitimize_tls_address if needed.
136         (tgd_hi22, tgd_lo10, tgd_add32, tgd_add64, tgd_call32, tgd_call64,
137         tldm_hi22, tldm_lo10, tldm_add32, tldm_add64, tldm_call32, tldm_call64,
138         tldo_hix22, tldo_lox10, tldo_add32, tldo_add64, tie_hi22, tie_lo10,
139         tie_ld32, tie_ld64, tie_add32, tie_add64, tle_hix22_sp32,
140         tle_lox10_sp32, tle_hix22_sp64, tle_lox10_sp64): New insns.
141         (tldo_ldub_sp32, tldo_ldub1_sp32, tldo_ldub2_sp32, tldo_ldsb1_sp32,
142         tldo_ldsb2_sp32, tldo_ldub_sp64, tldo_ldub1_sp64, tldo_ldub2_sp64,
143         tldo_ldub3_sp64, tldo_ldsb1_sp64, tldo_ldsb2_sp64, tldo_ldsb3_sp64,
144         tldo_lduh_sp32, tldo_lduh1_sp32, tldo_ldsh1_sp32, tldo_lduh_sp64,
145         tldo_lduh1_sp64, tldo_lduh2_sp64, tldo_ldsh1_sp64, tldo_ldsh2_sp64,
146         tldo_lduw_sp32, tldo_lduw_sp64, tldo_lduw1_sp64, tldo_ldsw1_sp64,
147         tldo_ldx_sp64, tldo_stb_sp32, tldo_stb_sp64, tldo_sth_sp32,
148         tldo_sth_sp64, tldo_stw_sp32, tldo_stw_sp64, tldo_stx_sp64): New
149         insns.
150         * config/sparc/sparc-protos.h (legitimate_constant_p,
151         constant_address_p, legitimate_pic_operand_p, legitimate_address_p,
152         legitimize_tls_address, legitimize_address, tls_symbolic_operand,
153         tls_call_delay, sparc_output_dwarf_dtprel): New prototypes.
154         * config/sparc/linux.h (TARGET_GNU_TLS, TARGET_SUN_TLS): Define.
155         * config/sparc/linux64.h (TARGET_GNU_TLS, TARGET_SUN_TLS): Likewise.
156         * configure.in (sparc*-*-*): Add TLS check.
157         * configure: Rebuilt.
158
159 2003-09-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
160
161         PR target/11689
162         * config/i386/i386.c (memory_address_length): Fix computation when
163         the base is esp or ebp.
164
165 2003-09-07  Mark Mitchell  <mark@codesourcery.com>
166
167         PR c++/11852
168         * varasm.c (initializer_constant_valid_p): Correct logic for
169         CONSTRUCTORs.
170
171 2003-09-07  Roger Sayle  <roger@eyesopen.com>
172
173         * expr.c (expand_operands): New function to expand an operand pair.
174         (expand_expr): Call expand_operands whenever we need to expand both
175         operands of a binary operator.
176         (do_store_flag): Likewise for operands of comparison operations.
177
178 2003-09-07  Roger Sayle  <roger@eyesopen.com>
179
180         * combine.c (combine_simplify_rtx): Don't convert -(A*B) into
181         (-A)*B if we care about sign-dependent rounding.
182
183 2003-09-07  Gabriel Dos Reis  <gcc@integrable-solutions.net>
184
185         * c-pretty-print.h (pp_c_left_brace): Declare.
186         (pp_c_right_brace): Likewise.
187         * c-pretty-print.c (pp_c_left_brace): Now a function
188         (pp_c_right_brace): Likewise.
189
190 Sun Sep  7 14:50:03 CEST 2003  Jan Hubicka  <jh@suse.cz>
191
192         * cfgcleanup.c (try_simplify_condjump): Fix again the preivous patch.
193
194 2003-09-07  Gabriel Dos Reis  <gdr@integrable-solutions.net>
195
196         * diagnostic.c (warn_deprecated_use): Move to toplev.c
197
198 2003-09-07  Gabriel Dos Reis  <gdr@integrable-solutions.net>
199
200         * langhooks.c (lhd_print_error_function): Move from diagnostic.c.
201         * Makefile.in (langhooks.o): Depend on diagnostic.h
202
203 2003-09-06  James E Wilson  <wilson@tuliptree.org>
204
205         * loop.c (loop_regs_update): Delete else clause for PATTERN rtx and
206         simplify.
207
208 2003-09-07  Kelley Cook  <kelleycook@wideopenwest.com>
209
210         * Makefile.in: Define $REMAKE to be $MAKE with LANGUAGES & BOOT_CFLAGS
211         and use it throughout.
212         
213 2003-09-07  Jan Hubicka  <jh@suse.cz>
214
215         * cfgcleanup.c (try_simplify_condjump): Fix my previous patch.
216
217         * toplev.c  (rest_of_decl_compilation):  Do not finalize external
218         virables. 
219
220         * cgraph.c (cgraph_mark_reachable_node): Only enqueue finalized
221         functions.
222         (cgraph_varpool_finalize_decl): Notice global symbol when needed.
223
224 2003-09-06  Jan Hubicka  <jh@suse.cz>
225
226         PR target/12070
227         * calls.c (emit_library_call_value_1): Fix saving of BLKmode arguments.
228
229         PR opt/12082
230         * cfgcleanup.c (try_simplify_condjump): Avoid unreachable code warning.
231
232 2003-09-06  Gabriel Dos Reis  <gdr@integrable-solutions.net>
233
234         * diagnostic.c (announce_function): Move to toplev.c.
235
236 2003-09-06  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
237
238         * gcse.c (expr_equiv_p): Don't consider anything to be equal to
239         volatile mem.
240
241 2003-09-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
242
243         * ggc-common.c (init_ggc_heuristics): Don't use the heuristics
244         when gc checking is enabled.
245
246 2003-09-06  Steven Bosscher  <steven@gcc.gnu.org>
247
248         PR c/9862
249         * c-decl.c (c_expand_body_1): Move return warning from here...
250         (finish_function): ...to here.
251
252 2003-09-05  Geoffrey Keating  <geoffk@apple.com>
253
254         * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Always return
255         a subset of the input class.
256
257 2003-09-05  Kazu Hirata  <kazu@cs.umass.edu>
258
259         * config/i860/i860.c: Follow spelling conventions.
260         * config/i860/i860.h: Likewise.
261         * config/sh/sh.h: Likewise.
262
263 2003-09-05  Nitin Yewale  <NitinY@KPITCummins.com>
264
265         * config/h8300/h8300-protos.h: Declare h8300_hard_regno_rename_ok
266         * config/h8300/h8300.h (HARD_REGNO_RENAME_OK): New.
267         * config/h8300/h8300.c (h8300_hard_regno_rename_ok): New.
268
269 2003-09-05  Roger Sayle  <roger@eyesopen.com>
270             Richard Henderson  <rth@redhat.com>
271
272         PR optimization/1823
273         * expmed.c (expand_divmod <EXACT_DIV_EXPR>): Use an unsigned
274         multiplication to implement division by constant integer.
275
276 Fri Sep  5 07:35:16 CEST 2003  Jan Hubicka  <jh@suse.cz>
277
278         * opts.c (decode_options): Enable unit-at-a-time at -O2.
279         * params.def (max-inline-insns-single): Set to 500
280         (max-inline-insns-auto): Set to 150
281         * invoke.texi (max-inline-insns-single, max-inline-insns-auto): Update.
282
283 2003-09-04  Richard Henderson  <rth@redhat.com>
284
285         * cgraph.c (cgraph_mark_reachable_node): Split out from ...
286         (cgraph_mark_needed_node): Remove needed argument.
287         * cgraph.h: Update to match.
288         * cgraphunit.c (decide_is_function_needed): Split out from ...
289         (cgraph_finalize_function): Reorg.  Avoid deferred_inline_function
290         if we generated the function.
291         (record_call_1): Update for cgraph_mark_reachable_node.
292         * varasm.c (mark_referenced): Likewise.
293         * objc/objc-act.c (mark_referenced_methods): Likewise.
294
295 2003-09-04  DJ Delorie  <dj@redhat.com>
296
297         * targhooks.c: Add comment explaining the migration process.
298
299 2003-09-04  Eric Christopher  <echristo@redhat.com>
300
301         * config/frv/t-frv: Fix path for frv-abi.h.
302         * config/frv/frv-asm.h: Fix string concatenation.
303
304 2003-09-04  DJ Delorie  <dj@redhat.com>
305
306         * builtins.c (apply_args_size): Guard against a NULL cfun.
307         (expand_builtin_apply_args_1): Likewise.
308         (expand_builtin_apply): Likewise.
309         Fixes PR bootstrap/12172.
310
311 2003-09-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
312
313         * configure.in (gcc_cv_as_ix86_cmov_sun_syntax): Check if
314         assembler supports Sun syntax for cmov.
315         * configure: Regenerate.
316         * config.in: Likewise.
317         * config/i386/i386.c: Rename CMOV_SUN_AS_SYNTAX to
318         HAVE_AS_IX86_CMOV_SUN_SYNTAX.
319         * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Remove.
320         Fixes PR target/12101.
321
322 2003-09-04  Matt Austern  <austern@apple.com>
323
324         * c-common.c (fname_as_string): Use lang_hooks.decl_printable_name
325         with verbosity 0, instead of DECL_NAME, for human-readable string.
326
327 2003-09-04  Eric Christopher  <echristo@redhat.com>
328
329         * targhooks.c (default_return_in_memory): Allow
330         unconverted ports.
331
332 2003-09-04  Eric Christopher  <echristo@redhat.com>
333
334         * targhooks.c (default_return_in_memory): Fix typo
335         in last checkin.
336
337 2003-09-04  Eric Christopher  <echristo@redhat.com>
338
339         * targhooks.c (default_return_in_memory): Fix default
340         definition.
341
342 2003-09-04  Bernardo Innocenti  <bernie@develer.com>
343
344         * config/m68k/m68k.c (m68k_coff_asm_named_section): Restore
345         deleted function.
346         * config/m68k/coff.h (M68K_TARGET_COFF): Add flag used to
347         enable coff-only code in m68k.c.
348
349 2003-09-04  Nick Clifton  <nickc@redhat.com>
350
351         * config.gcc: Add v850e1 target.  Allow --with-cpu to accept
352         v850e1.
353         * config/v850/v850.h: Accept v850e1 as a default CPU.
354         Accept -mv850e1 as a command line option.
355         * doc/invoke.texi: Document new -mv850e1 command line switch.
356         * config/v850/t-v850: Treat -mv850e1 as a multilib alias for
357         -mv850e.
358
359 2003-09-04  Nick Clifton  <nickc@redhat.com>
360
361         * config.gcc (v850e-*-*): Use t-v850e makefile fragment.
362         * config/v850/t-v850: Only produce one extra multilib - for
363         the v850e.
364         * config/v850/t-v850e: New file: Only produce one extra
365         multilib - for the v850.
366
367 2003-09-04  Jakub Jelinek  <jakub@redhat.com>
368
369         * config/ia64/libgcc-ia64.ver: Export _Unwind_GetBSP@@GCC_3.3.2.
370         * config/ia64/unwind-ia64.c (_Unwind_GetBSP): New function.
371         * unwind.h (_Unwind_GetBSP): New prototype.
372         * libgcc-std.ver: Add empty GCC_3.3.2 version.
373         * mkmap-symver.awk: For symbol versions with no exported symbols,
374         don't put anything into version script, just change all symbol
375         versions which inherit from it to inherit from its ancestor.
376
377 2003-09-04  Eric Christopher  <echristo@redhat.com>
378
379         * config/mips/mips.c (mips_expand_prologue): Convert to
380         calls.struct_value_rtx hook.
381         (reg_or_const_float_1_operand): New.
382         * config/mips/mips.h: Update Comments.
383         (mips_arg): Add reg_or_const_float_1_operand.
384         * config/mips/mips.md (divdf3); Convert to expander.
385         (divsf3): Ditto.
386         (*divdf3): New pattern.
387         (*divsf3): Ditto.
388
389 Thu Sep  4 10:43:24 CEST 2003  Jan Hubicka  <jh@suse.cz>
390
391         * toplev.c (wrapup_global_declarations): Fix final pass in
392         unit-at-atime mode.
393
394 2003-09-04  Mark Mitchell  <mark@codesourcery.com>
395
396         * doc/extend.texi: Document removal of cast-as-lvalue extension in
397         C++.
398
399 2003-09-04  Nicolas Roche  <roche@act-europe.fr>
400
401         * gcc.c (process_command): Fix typo.
402
403 2003-09-03  David O'Brien  <obrien@FreeBSD.org>
404
405         optimization/11980
406         * config/i386/freebsd.h (SIZE_TYPE): Support TARGET_64BIT.
407         (PTRDIFF_TYPE): Likewise.
408         (WCHAR_TYPE_SIZE): Likewise.
409
410 2003-09-03  DJ Delorie  <dj@redhat.com>
411
412         * targhooks.c: New file.
413         * targhooks.h: New file.
414         * Makefile.in: Add targhooks.o support.
415         (function.o): Depend on$(TARGET_H).
416         (stmt.o): Likewise.
417         (combine.o): Depend on $(TREE_H) and $(TARGET_H).
418         * builtins.c (apply_args_size, expand_builtin_apply_args_1,
419         expand_builtin_apply): Convert to calls.struct_value_rtx hook.
420         (expand_builtin_saveregs): Convert to
421         calls.expand_builtin_saveregs hook.
422         * c-decl.c (start_decl): Handle new calls.promote_prototypes hook
423         here, instead of ...
424         (get_parm_info) ... here.
425         (store_parm_decls_oldstyle): Convert to calls.promote_prototypes
426         hook.
427         (finish_function): Handle calls.promote_prototypes hook here too.
428         * c-typeck.c (convert_arguments): Convert to
429         calls.promote_prototypes hook.
430         (c_convert_parm_for_inlining): Likewise.
431         * calls.c (initialize_argument_information): Convert to
432         calls.promote_function_args hook.
433         (expand_call): Convert to calls.struct_value_rtx,
434         calls.strict_argument_naming,
435         calls.pretend_outgoing_varargs_named, and
436         calls.promote_function_return hooks.  Pass fndecl to
437         aggregate_value_p.  Initialize CUMULATIVE_ARGS before calling
438         hooks, so they can use that.
439         (emit_library_call_value_1): Likewise.
440         * combine.c (setup_incoming_promotions): Convert to
441         calls.promote_function_args hook.
442         * emit-rtl.c: Convert to calls.struct_value_rtx hook.
443         * expr.c (expand_assignment): Pass call to aggregate_value_p.
444         (expand_expr): Likewise.
445         * expr.h: Remove support for SETUP_INCOMING_VARARGS,
446         STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED,
447         RETURN_IN_MEMORY macro defaults.
448         * final.c (profile_function): Convert to calls.struct_value_rtx
449         hook.
450         * function.c (aggregate_value_p): Accept function type tree as
451         second parameter; try to deduce fntype from it.  Convert to
452         calls.return_in_memory hook.
453         (assign_parms): Convert to calls.setup_incoming_varargs,
454         calls.strict_argument_naming, calls.promote_function_args,
455         calls.pretend_outgoing_varargs_named hooks.  Pass fndecl to
456         aggregate_value_p.
457         (expand_function_start): Likewise.  Convert to
458         calls.struct_value_rtx hook.
459         (expand_function_end): Convert to calls.promote_function_return hook.
460         (allocate_struct_function): Pass fndecl to aggregate_value_p.
461         * hard-reg-set.h: Update comments to new hook names.
462         * integrate.c (expand_inline_function): Pass fndecl to aggregate_value_p.
463         * reg-stack.c (stack_result): Likewise.
464         * rtl.h (struct_value_rtx, struct_value_incoming_rtx): Delete.
465         * stmt.c (expand_value_return): Convert to
466         calls.promote_function_return hook.
467         * target-def.h: Add TARGET_PROMOTE_FUNCTION_ARGS,
468         TARGET_PROMOTE_FUNCTION_RETURN, TARGET_PROMOTE_PROTOTYPES,
469         TARGET_STRUCT_VALUE_RTX, TARGET_RETURN_IN_MEMORY,
470         TARGET_EXPAND_BUILTIN_SAVEREGS, TARGET_SETUP_INCOMING_VARARGS,
471         TARGET_STRICT_ARGUMENT_NAMING,
472         TARGET_PRETEND_OUTGOING_VARARGS_NAMED, and TARGET_CALLS.
473         * target.h: Likewise.
474         * tree.h (aggregate_value_p): Also takes a tree to deduce function
475         attributes from (for target hooks).
476         * doc/tm.texi (PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN,
477         PROMOTE_PROTOTYPES, RETURN_IN_MEMORY, STRUCT_VALUE_REGNUM,
478         STRUCT_VALUE, STRUCT_VALUE_INCOMING_REGNUM, STRUCT_VALUE_INCOMING,
479         EXPAND_BUILTIN_SAVEREGS, SETUP_INCOMING_VARARGS,
480         STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED): Convert
481         to hooks.
482
483         * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Pass function
484         to aggregate_value_p.
485         * config/arm/arm.c (arm_init_cumulative_args,
486         arm_output_mi_thunk): Likewise.
487         * config/i386/i386.c (ix86_return_pops_args, x86_this_parameter):
488         Likewise.
489         * config/mips/mips.c (mips_save_reg_p, mips_expand_prologue,
490         mips_can_use_return_insn): Likewise.
491         * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise.
492         * config/s390/s390.c (s390_output_mi_thunk): Likewise.
493         * config/sparc/sparc.c (sparc_output_mi_thunk): Pass function to
494         aggregate_value_p.
495         * config/story16/stormy16.c (xstormy16_asm_output_mi_thunk): Pass
496         function to aggregate_value_p.
497         * objc/objc-act.c (generate_struct_by_value_array): Pass NULL to
498         aggregate_value_p.
499
500         * config/sh/sh-protos.h (sh_builtin_saveregs): Remove.
501         (sh_attr_renesas_p, sh_cfun_attr_renesas_p, sh_function_arg,
502         sh_function_arg_advance, sh_pass_in_reg_p): New.  * config/sh/sh.c
503         (sh_handle_renesas_attribute, sh_promote_prototypes,
504         sh_struct_value_rtx, sh_return_in_memory, sh_builtin_saveregs,
505         sh_setup_incoming_varargs, sh_strict_argument_naming,
506         sh_pretend_outgoing_varargs_named): New decls.
507         (targetm): Add new hooks.
508         (calc_live_regs): Save MACL and MACH if the function has the
509         renesas attribute.
510         (sh_expand_prologue): Support renesas attribute.
511         (sh_builtin_saveregs): Make static.
512         (sh_build_va_list): Support renesas attribute.
513         (sh_va_start): Likewise.
514         (sh_va_arg): Likewise.
515         (sh_promote_prototypes): New.
516         (sh_function_arg): New, moved from sh.h.  Support renesas
517         attribute.
518         (sh_function_arg_advance): Likewise.
519         (sh_return_in_memory): Likewise.
520         (sh_strict_argument_naming): Likewise.
521         (sh_pretend_outgoing_varargs_named): Likewise.
522         (sh_struct_value_rtx): New.
523         (sh_attribute): Add renesas attribute.
524         (sh_handle_renesas_attribute): New.
525         (sh_attr_renesas_p, sh_cfun_attr_renesas_p): New.
526         (sh_ms_bitfield_layout_p): Support renesas attribute also.
527         (sh_output_mi_thunk): Pass function to aggregate_value_p.  *
528         config/sh/sh.h (TARGET_SWITCHES): Add -mrenesas as an alias for
529         -mhitachi.
530         (STRUCT_VALUE_REGNUM, STRUCT_VALUE, RETURN_IN_MEMORY): Moved to
531         target hooks.
532         (sh_args): Add renesas_abi flag.
533         (INIT_CUMULATIVE_ARGS): Set it.  Pass fndecl to aggregate_value_p.
534         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG): Move to sh.c.
535         (PASS_IN_REG_P): Support renesas attribute.  Pass DF and TF on the
536         stack for the renesas abi.
537         (STRICT_ARGUMENT_NAMING, PRETEND_OUTGOING_VARARGS_NAMED,
538         SETUP_INCOMING_VARARGS, EXPAND_BUILTIN_SAVEREGS,
539         PROMOTE_PROTOTYPES): Moved to sh.c.  * config/sh/sh.md (call): Set
540         call cookie to indicate renesas calls.
541
542 2003-09-03  Mostafa Hagog  <mustafa@il.ibm.com>
543
544         * gcse.c (replace_one_set): New function.
545         (pre_insert_copy_insn): Change the order of copying
546         to make copy propagation discover additional PRE opportunities.
547
548 2003-09-03  Roger Sayle  <roger@eyesopen.com>
549
550         PR optimization/11700.
551         * simplify-rtx.c (simplify_subreg): Check that the subreg offset
552         of a hard register is representable before trying to simplify it
553         using subreg_hard_regno.
554
555 2003-09-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
556
557         * configure.in (gcc_cv_ld_hidden): Disable unless using GNU ld.
558         * configure: Regenerate.
559
560 2003-09-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
561
562         * intl.h (N_): Remove parentheses.
563
564 2003-09-03  Bernardo Innocenti  <bernie@develer.com>
565
566         * config.gcc (m68k-*-linux*): Remove definition of LINUX_DEFAULT_ELF.
567         * config/i370/linux.h (LINUX_DEFAULT_ELF): Remove unconditional
568         definition and code blocks compiled when not defined.
569         * config/i386/linux.h (LINUX_DEFAULT_ELF): Likewise.
570         * config/i386/linux64.h (LINUX_DEFAULT_ELF): Likewise.
571         * config/sparc/linux.h: (LINUX_DEFAULT_ELF): Likewise.
572         * config/sparc/linux64.h: (LINUX_DEFAULT_ELF): Likewise.
573
574 2003-09-03  Jeff Sturm  <jsturm@one-point.com>
575
576         * cgraphunit.c (visited_nodes): New static variable.
577         (record_call_1): Use walk_tree with visited_nodes.
578         (cgraph_create_edges): Use walk_tree with visited_nodes.
579         Setup/teardown visited_nodes hashtable.
580
581 2003-09-03  Roger Sayle  <roger@eyesopen.com>
582
583         * toplev.c (flag_rounding_math): New global variable.
584         (f_options): Add to the list of language independent options.
585         * flags.h (flag_rounding_math): Prototype here.
586         (HONOR_SIGN_DEPENDENT_ROUNDING): Use flag_rounding_math instead.
587         * common.opt (frounding-math): New common command line option.
588         * opts.c (common_handle_option): Handle OPT_frounding_math.
589         (set_fast_math_flags): -ffast-math clears flag_rounding_math.
590
591         * doc/invoke.texi: Document this new command line option.
592
593 2003-09-03  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
594
595         * config/sol2.h (NO_IMPLICIT_EXTERN_C): Update comment.
596
597 Wed Sep  3 16:55:25 CEST 2003  Jan Hubicka  <jh@suse.cz>
598
599         * Makefile.in (c-objc-common.o): Kill gt-c-objc-common.h dependency.
600         * c-decl.c (finish_function):  Kill arguments, always use cgraph path.
601         * c-objc-common.c: Kill include of gt-c-objc-common.h
602         (expand_deferred_fns, deffer_fn): Kill function.
603         (deferred_fns): Kill variable.
604         (finish_cdtor): Update finish_function call.
605         (c_objc_common_finish_file): Always call cgraph code.
606         * c-parse.c: Regenerate.
607         * c-parse.y: Regenerate.
608         * c-tree.h (finish_function): Update prototype.
609         * objc-acct.c (build_module_descriptor, finish_method_def):
610         Update call of finish_function.
611         * cgraphunit.c (cgraph_default_inline_p, cgraph_analyze_function): Add
612         forward prototype.
613         (cgraph_finalize_function): In non-unit-at-a-time mode analyze the
614         function and assemble it if needed.
615         (cgraph_finalize_compilation_unit): Do nothing in non-unit-at-a-time
616         mode.
617         (cgraph_optimize): Likewise.
618         (cgraph_expand_function): In non-unit-at-a-time mode keep function body
619         even when it has no inline callees.
620         * c-parse.in: Update calls to finish_function.
621
622 2003-09-03  Nick Clifton  <nickc@redhat.com>
623
624         * config/arm/arm.h: Handle TARGET_CPU_iwmmxt.
625         Use #error to generate the message if TARGET_DEFAULT is not
626         recognised.
627
628 2003-09-03  Richard Sandiford  <rsandifo@redhat.com>
629
630         * config/mips/mips.h (MASK_UNUSED1): Remove.
631         (MASK_XGOT, TARGET_XGOT): Define.
632         (TARGET_SWITCHES): Add an entry for -mxgot.
633         (ASM_SPEC): Map -mxgot to -xgot.
634         * config/mips/mips.c (mips_symbol_insns): Use TARGET_XGOT to decide
635         whether we're using a big-GOT sequences.
636         (mips_legitimize_const_move, mips_expand_call): Likewise.
637         (override_options): Revert 2003-01-09 change.
638         * doc/invoke.texi: Document -mxgot.
639
640 2003-09-02  Jason Merrill  <jason@redhat.com>
641
642         * config/sol2.h (NO_IMPLICIT_EXTERN_C): Define here.
643         * config/sparc/sol2.h: Not here.
644
645 2003-09-02  Roger Sayle  <roger@eyesopen.com>
646
647         * expr.c (expand_expr): The code following both_summands performs
648         the same task as simplify_gen_binary.  Replace all gotos to
649         both_summands with a call to simplify_gen_binary and delete the
650         now unused label.
651
652 2003-09-02  Jason Merrill  <jason@redhat.com>
653
654         PR c++/7327
655         * config/sparc/sol2.h (NO_IMPLICIT_EXTERN_C): Define.
656
657 2003-09-02  Jeff Sturm  <jsturm@one-point.com>
658
659         * cgraphunit.c (record_call_1): Use walk_tree_without_duplicates.
660         (cgraph_optimize_function): Set current_function_decl to the
661         fndecl we're integrating from.
662
663 2003-09-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
664
665         * builtins.def: Break out _Complex math functions into their
666         own category.
667
668 2003-09-02  Andreas Jaeger  <aj@suse.de>
669
670         * langhooks-def.h (LANG_HOOKS_RTL_EXPAND_STMT): Cast properly.
671
672 2003-09-02  Josef Zlomek  <zlomekj@suse.cz>
673
674         * cfgbuild.c (compute_outgoing_frequencies): Use NOTE instead of
675         finding the note again.
676
677 2003-09-02  Nathanael Nerode  <neroden@gcc.gnu.org>
678
679         * config.gcc: Remove host-specific rewrites of target_alias.
680
681 2003-09-01  Mark Mitchell  <mark@codesourcery.com>
682
683         * Makefile.in (genprogs): Fix typo.
684
685         * Makefile.in (gencheck.o): Remove build commands.
686         (dummy-conditions.o): Likewise.
687         (read-rtl.o): Likewise.
688         (gensupport.o): Likewise.
689         (genconfig$(build_exeext)): Remove rule.
690         (genconfig.o): Remove build commands.
691         (genflags$(build_exeext)): Remove rule.
692         (genflags.o): Remove build commands.
693         (gencodes$(build_exeext)): Remove rule.
694         (gencodes.o): Remove build commands.
695         (genconstants.o): Remove build commands.
696         (genemit$(build_exeext)): Remove rule.
697         (genemit.o): Remove build commands.
698         (genrecog$(build_exeext)): Remove rule.
699         (genrecog.o): Remove build commands.
700         (genextract$(build_exeext)): Remove rule.
701         (genextract.o): Remove build commands.
702         (genpeep$(build_exeext)): Remove rule.
703         (genpeep.o): Remove build commands.
704         (genattr$(build_exeext)): Remove rule.
705         (genattr.o): Remove build commands.
706         (genprognames): New variable.
707         (genprogs): Likewise.
708         (genobjs): Likewise.
709         (genprogs): New rule.
710         (genobjs): Likewise.
711         (genattrtab.o): Remove build commands.
712         (genautomata.o): Likewise.
713         (genoutput$(build_exeext)): Remove rule.
714         (genoutput.o): Remove build commands.
715         (gengenrtl.o): Likewise.
716         (genpreds.o): Likewise.
717         (gengtype.o): Likewise.
718         (genconditions.o): Likewise.
719         (gen-protos.o): Likewise.
720         (scan.o): Likewise.
721         (fix-header.o): Likewise.
722         (scan-decls.o): Likewise.
723         (check-g++): Combine with other check targets.
724         (check-gcc): Likewise.
725         (check-g77): Likewise.
726         (check-objc): Likewise.
727
728 2003-09-01  Nathanael Nerode  <neroden@gcc.gnu.org>
729
730         * config.gcc: Remove host-specific stuff which is unused here
731         since the introduction of config.host.
732
733         * doc/fragments.texi: Mention config.host.
734         * doc/sourcebuild.texi: Mention config.host.  Give brief descriptions
735         of config.build, config.host, and config.gcc.
736
737 2003-09-01  Zack Weinberg  <zack@codesourcery.com>
738
739         * c-decl.c (pushdecl): Don't put variables on
740         C_TYPE_INCOMPLETE_VARS of a type unless that type is itself
741         incomplete.
742
743 2003-09-01  Nathanael Nerode  <neroden@gcc.gnu.org>
744
745         * config.host: New file.
746         * config.gcc: Remove some host-specific stuff and some
747         logic needed only for repeated invocation.
748         * configure.in: Use config.host.
749         * configure: Regenerate.
750
751 2003-09-01  Josef Zlomek  <zlomekj@suse.cz>
752
753         * c-typeck.c (build_binary_op): Kill BIT_ANDTC_EXPR.
754         * convert.c (convert_to_integer): Kill BIT_ANDTC_EXPR.
755         * fold-const.c (int_const_binop): Kill BIT_ANDTC_EXPR.
756         (fold): Kill BIT_ANDTC_EXPR and label bit_and.
757         * tree.def (BIT_ANDTC_EXPR): Kill.
758
759 2003-08-31  Nathanael Nerode  <neroden@gcc.gnu.org>
760
761         * configure.in: Remove uses of "for x in .. ${foo}" idiom.
762         * configure: Regenerate.
763
764         * config.gcc:  Remove references to install_headers_dir, now unused
765         since introduction of config.build.
766         * config.gcc (i860-*-sysv4*): Don't set unused USG, SVR3 defines.
767
768         * doc/fragments.texi, doc/sourcebuild.texi: Mention new file
769         config.build.
770
771         * config.build: New file.
772         * config.gcc: Remove some build-specific stuff.
773         * configure.in: Use config.build.
774         * configure: Regnerate.
775
776 2003-08-31  Steven Bosscher  <steven@gcc.gnu.org>
777             Roger Sayle  <roger@eyesopen.com>
778
779         PR middle-end/11823
780         * stmt.c (expand_end_case_type): Only use jump tables for dense
781         switch statements when optimizing for size.
782
783 2003-08-31  Olivier Hainque  <hainque@act-europe.fr>
784
785         * builtins.c (expand_builtin_setjmp): Use emit_jump to jump around
786         the != 0 case, which ensures pending stack adjustments are flushed.
787
788 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
789
790         * configure.frag: Delete file.
791         * configure.in: Rename the substitution variables
792         dep_host_xmake_file and dep_tmake_file to xmake_file and
793         tmake_file respectively.  Do not expand $srcdir in the
794         value of these; leave that for Make.  Introduce a new
795         substitution varaible, all_lang_makefrags, which lists
796         subdirectory Make-lang.in files; exclude these from
797         all_lang_makefiles, which is now only for subdirectory
798         outputs.  Do not invoke configure.frag.  Do not set nor
799         AC_SUBST_FILE target_overrides, host_overrides, or
800         language_fragments. Create build subdirectories in
801         config.status extra commands.
802         * configure: Regenerate.
803         * Makefile.in: Update substitutions to match changes to
804         configure.  Use include directives instead of @-insertions
805         to read in host, target, and language fragments.
806         (Makefile rule): Do not invoke configure.frag.  Do not copy
807         config.status to config.run before executing it.  Set
808         CONFIG_HEADERS and CONFIG_FILES so that only Makefile gets
809         regenerated.
810         (cstamp-h rule): Set CONFIG_FILES as well as CONFIG_HEADERS.
811
812 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
813
814         * c-tree.h: Delete COMPARE_DIFFERENT_TU from enumeration.
815         * c-typeck.c (same_translation_unit_p): New function.
816         (comptypes): Use it instead of flags parameter to identify
817         structure types from different translation units.
818         * c-decl.c (duplicate_decls): Always call comptypes with
819         COMPTYPE_STRICT flags argument.
820         (c_reset_state): Set BLOCK_SUPERCONTEXT of the block formed
821         to file_scope_decl.
822
823 2003-08-30  Zack Weinberg  <zack@codesourcery.com>
824
825         * c-tree.h (C_TYPE_INCOMPLETE_VARS): New macro.
826         * c-decl.c (struct c_scope): Remove "incomplete" field.
827         (pushdecl): Attach variables with incomplete types to
828         the TYPE_MAIN_VARIANT of the incomplete type in question.
829         (finish_struct): Look at C_TYPE_INCOMPLETE_VARS for variables
830         to complete, not at current_scope->incomplete.  All such
831         variables do need completion.
832
833 2003-08-30  Richard Earnshaw  <rearnsha@arm.com>
834         Nicolas Pitre <nico@cam.org>
835
836         * arm/lib1funcs.asm (RETCOND): Delete.
837         (RETLDM): New assembler macro.  Use it for returning with ldm/ldr.
838         (ARM_LDIV0, THUMB_LDIV0): Collapse multiple definitions.
839         (__ARM_ARCH__): Move here from ieee754-?f.S.
840         (RET, RETc): Clean up definitions.
841         (DIV_FUNC_END): Renamed from FUNC_END.  All uses changed.
842         (FUNC_END): New macro that marks the end of any function.
843         (ARM_FUNC_START): New macro that allows an assembler routine to be
844         implemented in ARM code even if a Thumb-only build.
845         Unconditionally include ieee754-?f.S.
846         * arm/ieee754-df.S: Delete macros moved to lib1funcs.asm.
847         Mark ends of functions.
848         Split into separate conditionally-compiled units.
849         Use RETLDM to return from routines.
850         * arm/ieee754-sf.S: Similarly.
851         * t-arm-elf (LIB1ASMFUNCS): Remove _ieee754_dp and _ieee754_sp.
852         Add _negdf2 _addsubdf3 _muldivdf3 _cmpdf2 _unorddf2 _fixdfsi
853         _truncdfsf2 _negsf2 _addsubsf3 _muldivsf3 _cmpsf2 _unordsf2
854         _fixsfsi and _fixunssfsi.
855
856         * arm/ieee754-df.S (__muldf3): Fix bug when result of a
857         multiplication underflows to zero.
858         (__adddf3): Fix bug when using VFP ordering on little-endian
859         processors.
860         (__fixdfsi): Use rrx to extract the carry into a register instead of
861         MRS instruction.  Optimize later use of result.
862         * arm/ieee754-sf.S (__fixsfsi): Likewise.
863         (__fixunssfsi): Use a better sequence for handling negative-or-zero.
864
865 2003-08-29  Richard Henderson  <rth@redhat.com>
866
867         * tree-optimize.c: New file.
868         * Makefile.in (OBJS-archive): Add tree-optimize.o.
869         (tree-optimize.o): New.
870         * c-decl.c (store_parm_decls): Use allocate_struct_function.
871         (finish_function): Don't free_after_parsing or free_after_compilation.
872         (set_save_expr_context): Move to tree-optimize.c.
873         (c_expand_body_1): Use tree_rest_of_compilation.
874         * c-lang.c (LANG_HOOKS_RTL_EXPAND_STMT): New.
875         * objc/objc-lang.c (LANG_HOOKS_RTL_EXPAND_STMT): New.
876         * c-objc-common.c (expand_deferred_fns): Don't emit unused inlines;
877         iterate until closure.
878         * langhooks-def.h (LANG_HOOKS_RTL_EXPAND_START,
879         LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END): New.
880         (LANG_HOOKS_RTL_EXPAND_INITIALIZER): New.
881         * langhooks.h (struct lang_hooks_for_rtl_expansion): New.
882         * toplev.h (tree_rest_of_compilation): Declare it.
883
884 2003-08-29  Richard Henderson  <rth@redhat.com>
885
886         * function.h (struct function): Add rtl_inline_init, saved_for_inline.
887         * integrate.c (save_for_inline): Set saved_for_inline.
888         * c-semantics.c (genrtl_scope_stmt): Check it.
889         * toplev.c (wrapup_global_declarations): Check it.
890         (rest_of_handle_inlining): Set and check rtl_inline_init.
891         (rest_of_compilation): Remove out of date comment.
892
893 2003-08-29  Richard Henderson  <rth@redhat.com>
894
895         * function.c (allocate_struct_function): New, split out of ...
896         (prepare_function_start, init_function_start): ... here.
897         * expr.c (init_expr): Use ggc_alloc_cleared.
898         * stmt.c (init_stmt_for_function): Likewise.
899         * tree.h (allocate_struct_function): Declare.
900
901 2003-08-29  Nathanael Nerode  <neroden@gcc.gnu.org>
902
903         * config.gcc: Don't use negated character class in shell case
904         clause.
905
906 2003-08-29  Richard Henderson  <rth@redhat.com>
907
908         * function.h (struct function): Move function_frequency and
909         max_jumptable_ents before start of bit field members.
910
911 2003-08-29  Richard Henderson  <rth@redhat.com>
912
913         * builtins.c (expand_builtin_constant_p): Check cse_not_expected here,
914         (fold_builtin_constant_p) ... not here.
915
916 2003-08-29  Richard Henderson  <rth@redhat.com>
917
918         * c-tree.h (C_DECL_FILE_SCOPE): Move ...
919         * tree.h (DECL_FILE_SCOPE_P): ... here, and rename.
920         * c-decl.c, c-objc-common.c, c-typeck.c: Update to match.
921
922 2003-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
923
924         * builtins.def: Fix typos.
925         (ATTR_MATHFN_FPROUNDING_STORE): New macro.
926         (BUILT_IN_FREXP, BUILT_IN_FREXPF, BUILT_IN_FREXPL, BUILT_IN_MODF,
927         BUILT_IN_MODFF, BUILT_IN_MODFL, BUILT_IN_REMQUO, BUILT_IN_REMQUOF,
928         BUILT_IN_REMQUOL, BUILT_IN_SINCOS, BUILT_IN_SINCOSF,
929         BUILT_IN_SINCOSL): Use ATTR_MATHFN_FPROUNDING_STORE.
930
931         * builtins.def (BUILT_IN_ERFC, BUILT_IN_ERFCF, BUILT_IN_ERFCL):
932         Use ATTR_MATHFN_FPROUNDING_ERRNO.
933
934 2003-08-29  Nathanael Nerode  <neroden@gcc.gnu.org>
935
936         * config.gcc (i386-*-vsta): Fix obvious bogosity.
937
938         * fixinc/inclhack.def:  Remove special cases for unsupported
939         PTX 1 and PTX 2 (including i[34567]86-sequent-sysv3).
940         * fixinc/fixincl.x: Regenerate.
941
942 2003-08-29  Mark Mitchell  <mark@codesourcery.com>
943
944         * Makefile.in (cpp.info): Just state dependencies.
945         (gcc.info): Likewise.
946         (gccint.info): Likewise.
947         (gccinstall.info): Likewise.
948         (cppinternals.info): Likewise.
949         (cpp.dvi): Likewise.
950         (gcc.dvi): Likewise.
951         (gccint.dvi): Likewise.
952         (gccinstall.dvi): Likewise.
953         (cppinternals.dvi): Likewise.
954         (gcov.1): Likewise.
955         (cpp.1): Likewise.
956         (gcc.1): Likewise.
957         (gfdl.7): Likewise.
958         (gpl.7): Likewise.
959         (fsf-funding.7): Likewise.
960         ($(objdir)/%.info): New pattern rule.
961         (%.dvi): Likewise.
962
963 2003-08-29  Kelley Cook  <kelleycook@wideopenwest.com>
964
965         * Makefile.in (restage1): Pass BOOT_CFLAGS to recursive make.
966         (restage2): Likewise.
967         (restage3): Likewise.
968         (restage4): Likewise.
969         (restageprofile): Likewise.
970         (restagefeedback): Likewise.
971         (bubblestrap): Likewise.
972
973 2003-08-29  Nathanael Nerode  <neroden@gcc.gnu.org>
974
975         * config.gcc: Narrow unsupported target match to avoid clobbering
976         i?86-sequent-sysv4*.
977
978 2003-08-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
979
980         * builtins.c (mathfn_built_in): Handle new math builtins.
981
982 2003-08-28  Per Bothner  <per@bothner.com>
983
984         Fix (hopefully temporary) for breakage caused by my 08-21 patch.
985         * cpplex.c (_cpp_get_fresh_line):  Check for null buffer.
986         (_cpp_lex_buffer):  Likewise.
987         * cpptrad.c (_cpp_read_logical_line_trad):  Likewise.
988
989 2003-08-28  Ulrich Weigand  <uweigand@de.ibm.com>
990
991         * config/s390/s390.md ("*mulsi3_sign"): New insn.
992         ("mulsidi3" expander, "mulsi_6432" insn): Remove, replace by ...
993         ("mulsidi3"): ... this new insn.
994         ("umulsidi3"): New insn.
995         ("divmoddi3", "divmodtidi3", "divmodtisi3"): Simplify by using
996         mixed-mode matching constraints.
997         ("udivmodsi4", "udivmoddisi3"): New insns.
998         ("udivsi3", "umodsi3"): Use only in ESA/390 mode.
999
1000 2003-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1001
1002         * builtin-types.def (BT_INT_PTR, BT_FLOAT_PTR, BT_DOUBLE_PTR,
1003         BT_LONGDOUBLE_PTR, BT_FN_FLOAT_FLOAT_FLOATPTR,
1004         BT_FN_DOUBLE_DOUBLE_DOUBLEPTR,
1005         BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLEPTR,
1006         BT_FN_FLOAT_FLOAT_INTPTR, BT_FN_DOUBLE_DOUBLE_INTPTR,
1007         BT_FN_LONGDOUBLE_LONGDOUBLE_INTPTR,
1008         BT_FN_FLOAT_FLOAT_FLOAT_INTPTR, BT_FN_DOUBLE_DOUBLE_DOUBLE_INTPTR,
1009         BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_INTPTR,
1010         BT_FN_VOID_FLOAT_FLOATPTR_FLOATPTR,
1011         BT_FN_VOID_DOUBLE_DOUBLEPTR_DOUBLEPTR,
1012         BT_FN_VOID_LONGDOUBLE_LONGDOUBLEPTR_LONGDOUBLEPTR): New.
1013         * builtins.def (BUILT_IN_FREXP, BUILT_IN_FREXPF, BUILT_IN_FREXPL,
1014         BUILT_IN_MODF, BUILT_IN_MODFF, BUILT_IN_MODFL, BUILT_IN_REMQUO,
1015         BUILT_IN_REMQUOF, BUILT_IN_REMQUOL, BUILT_IN_SINCOS,
1016         BUILT_IN_SINCOSF, BUILT_IN_SINCOSL): New.
1017         * tree.c: Assign new type_nodes.
1018         * tree.h (tree_index): Add TI_FLOAT_PTR_TYPE, TI_DOUBLE_PTR_TYPE,
1019         TI_LONG_DOUBLE_PTR_TYPE, TI_INTEGER_PTR_TYPE.
1020         (float_ptr_type_node, double_ptr_type_node,
1021         long_double_ptr_type_node, integer_ptr_type_node): New type_nodes.
1022
1023         * doc/extend.texi: Document new builtins.
1024
1025 2003-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1026
1027         * builtin-types.def (BT_FN_FLOAT_INT_FLOAT,
1028         BT_FN_DOUBLE_INT_DOUBLE, BT_FN_LONGDOUBLE_INT_LONGDOUBLE): New.
1029
1030         * builtins.def (BUILT_IN_ERF, BUILT_IN_ERFC, BUILT_IN_ERFCF,
1031         BUILT_IN_ERFCL, BUILT_IN_ERFF, BUILT_IN_ERFL, BUILT_IN_GAMMA,
1032         BUILT_IN_GAMMAF, BUILT_IN_GAMMAL, BUILT_IN_J0, BUILT_IN_J0F,
1033         BUILT_IN_J0L, BUILT_IN_J1, BUILT_IN_J1F, BUILT_IN_J1L,
1034         BUILT_IN_JN, BUILT_IN_JNF, BUILT_IN_JNL, BUILT_IN_LGAMMA,
1035         BUILT_IN_LGAMMAF, BUILT_IN_LGAMMAL, BUILT_IN_SIGNIFICAND,
1036         BUILT_IN_SIGNIFICANDF, BUILT_IN_SIGNIFICANDL, BUILT_IN_TGAMMA,
1037         BUILT_IN_TGAMMAF, BUILT_IN_TGAMMAL, BUILT_IN_Y0, BUILT_IN_Y0F,
1038         BUILT_IN_Y0L, BUILT_IN_Y1, BUILT_IN_Y1F, BUILT_IN_Y1L,
1039         BUILT_IN_YN, BUILT_IN_YNF, BUILT_IN_YNL): New.
1040
1041         * doc/extend.texi: Document new builtins.
1042
1043 2003-08-28  Nathanael Nerode  <neroden@gcc.gnu.org>
1044
1045         * fixinc/mkfixinc.sh: Remove special case code for unsupported
1046         variants of i?86, powerpcle, and thumb.
1047         * fixinc/mkfixinc.sh: Remove special case code for unsupported
1048         arm and hppa variants.
1049
1050 2003-08-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1051
1052         * builtin-types.def (BT_FN_INT_FLOAT, BT_FN_INT_DOUBLE,
1053         BT_FN_INT_LONGDOUBLE, BT_FN_LONG_FLOAT, BT_FN_LONG_DOUBLE,
1054         BT_FN_LONG_LONGDOUBLE, BT_FN_LONGLONG_FLOAT,
1055         BT_FN_LONGLONG_DOUBLE, BT_FN_LONGLONG_LONGDOUBLE,
1056         BT_FN_FLOAT_FLOAT_LONGDOUBLE, BT_FN_DOUBLE_DOUBLE_LONGDOUBLE,
1057         BT_FN_FLOAT_FLOAT_INT, BT_FN_DOUBLE_DOUBLE_INT,
1058         BT_FN_LONGDOUBLE_LONGDOUBLE_INT, BT_FN_FLOAT_FLOAT_LONG,
1059         BT_FN_DOUBLE_DOUBLE_LONG, BT_FN_LONGDOUBLE_LONGDOUBLE_LONG,
1060         BT_FN_FLOAT_FLOAT_FLOAT_FLOAT, BT_FN_DOUBLE_DOUBLE_DOUBLE_DOUBLE,
1061         BT_FN_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE_LONGDOUBLE): New.
1062
1063         * builtins.def (BUILT_IN_ACOS, BUILT_IN_ACOSF, BUILT_IN_ACOSH,
1064         BUILT_IN_ACOSHF, BUILT_IN_ACOSHL, BUILT_IN_ACOSL, BUILT_IN_ASIN,
1065         BUILT_IN_ASINF, BUILT_IN_ASINH, BUILT_IN_ASINHF, BUILT_IN_ASINHL,
1066         BUILT_IN_ASINL, BUILT_IN_ATANH, BUILT_IN_ATANHF, BUILT_IN_ATANHL,
1067         BUILT_IN_CBRT, BUILT_IN_CBRTF, BUILT_IN_CBRTL, BUILT_IN_COPYSIGN,
1068         BUILT_IN_COPYSIGNF, BUILT_IN_COPYSIGNL, BUILT_IN_COSH,
1069         BUILT_IN_COSHF, BUILT_IN_COSHL, BUILT_IN_DREM, BUILT_IN_DREMF,
1070         BUILT_IN_DREML, BUILT_IN_EXP10, BUILT_IN_EXP10F, BUILT_IN_EXP10L,
1071         BUILT_IN_EXP2, BUILT_IN_EXP2F, BUILT_IN_EXP2L, BUILT_IN_EXPM1,
1072         BUILT_IN_EXPM1F, BUILT_IN_EXPM1L, BUILT_IN_FDIM, BUILT_IN_FDIMF,
1073         BUILT_IN_FDIML, BUILT_IN_FMA, BUILT_IN_FMAF, BUILT_IN_FMAL,
1074         BUILT_IN_FMAX, BUILT_IN_FMAXF, BUILT_IN_FMAXL, BUILT_IN_FMIN,
1075         BUILT_IN_FMINF, BUILT_IN_FMINL, BUILT_IN_HYPOT, BUILT_IN_HYPOTF,
1076         BUILT_IN_HYPOTL, BUILT_IN_ILOGB, BUILT_IN_ILOGBF, BUILT_IN_ILOGBL,
1077         BUILT_IN_LDEXP, BUILT_IN_LDEXPF, BUILT_IN_LDEXPL, BUILT_IN_LLRINT,
1078         BUILT_IN_LLRINTF, BUILT_IN_LLRINTL, BUILT_IN_LLROUND,
1079         BUILT_IN_LLROUNDF, BUILT_IN_LLROUNDL, BUILT_IN_LOG10,
1080         BUILT_IN_LOG10F, BUILT_IN_LOG10L, BUILT_IN_LOG1P, BUILT_IN_LOG1PF,
1081         BUILT_IN_LOG1PL, BUILT_IN_LOG2, BUILT_IN_LOG2F, BUILT_IN_LOG2L,
1082         BUILT_IN_LOGB, BUILT_IN_LOGBF, BUILT_IN_LOGBL, BUILT_IN_LRINT,
1083         BUILT_IN_LRINTF, BUILT_IN_LRINTL, BUILT_IN_LROUND,
1084         BUILT_IN_LROUNDF, BUILT_IN_LROUNDL, BUILT_IN_NEXTAFTER,
1085         BUILT_IN_NEXTAFTERF, BUILT_IN_NEXTAFTERL, BUILT_IN_NEXTTOWARD,
1086         BUILT_IN_NEXTTOWARDF, BUILT_IN_NEXTTOWARDL, BUILT_IN_POW10,
1087         BUILT_IN_POW10F, BUILT_IN_POW10L, BUILT_IN_REMAINDER,
1088         BUILT_IN_REMAINDERF, BUILT_IN_REMAINDERL, BUILT_IN_RINT,
1089         BUILT_IN_RINTF, BUILT_IN_RINTL, BUILT_IN_SCALB, BUILT_IN_SCALBF,
1090         BUILT_IN_SCALBL, BUILT_IN_SCALBLN, BUILT_IN_SCALBLNF,
1091         BUILT_IN_SCALBLNL, BUILT_IN_SCALBN, BUILT_IN_SCALBNF,
1092         BUILT_IN_SCALBNL, BUILT_IN_SINH, BUILT_IN_SINHF, BUILT_IN_SINHL,
1093         BUILT_IN_TANH, BUILT_IN_TANHF, BUILT_IN_TANHL): New.
1094
1095         * doc/extend.texi: Document new builtins.
1096
1097 2003-08-28  Ulrich Weigand  <uweigand@de.ibm.com>
1098
1099         * config/s390/s390.c (legitmate_constant_p): Use LARL on
1100         zSeries machines even in 31-bit addressing mode.
1101         (legitimate_reload_constant_p): Likewise.
1102         (legitimize_pic_address): Likewise.
1103         (legitimize_tls_address): Likewise.
1104         (s390_split_branches): Likewise.
1105         (s390_dump_pool): Likewise.
1106         (s390_mainpool_finish): Likewise.
1107         (s390_chunkify_start): Likewise.
1108         (s390_select_rtx_section): Likewise.
1109         * config/s390/s390.md ("doloop_si"): Likewise.
1110         ("pool_start_31", "pool_end_31"): Likewise.
1111         ("pool_start_64", "pool_end_64"): Likewise.
1112         ("main_base_31_small", "main_base_31_large"): Likewise.
1113         ("main_base_64"): Likewise.
1114         ("reload_base_31", "reload_base_64"): Likewise.
1115         ("*movsi_larl"): New insn.
1116         ("cjump", "icjump"): Use long branches on zSeries machines.
1117         ("jump"): Likewise.
1118         ("call"): Use BRASL on zSeries machines.
1119         ("call_value", "call_value_tls"): Likewise.
1120         ("brasl", "bras", "basr_64", "basr_31", "bas_64", "bas_31"): Remove
1121         and replace by ...
1122         ("*bras", "*brasl", "*basr") ... these new insns.
1123         ("brasl_r", "bras_r", "basr_64_r", "basr_31_r", "bas_64_r",
1124         "bas_31_r"): Remove and replace by ...
1125         ("*bras_r", "*brasl_r", "*basr_r") ... these new insns.
1126         ("brasl_tls", "bras_tls", "basr_64_tls", "basr_31_tls",
1127         "bas_64_tls", "bas_31_tls"): Remove and replace by ...
1128         ("*bras_tls", "*brasl_tls", "*basr_tls") ... these new insns.
1129         ("*return_si", "*return_di"): Remove and replace by ...
1130         ("*return"): ... this new insn.
1131         ("rotlsi3"): Allow on zSeries machines.
1132
1133         * config/s390/s390.c (legitimize_reload_constant_p): Use
1134         LL/LH type instructions in z/Architecture mode.
1135         * config/s390/s390.md ("*movsi_lli"): Likewise.
1136         ("*andsi3_ni", "*andhi3_ni", "*andqi3_ni"): Likewise.
1137         ("*iorsi3_ni", "*iorhi3_ni", "*iorqi3_ni"): Likewise.
1138         ("*extendqisi2"): Use LB in z/Architecture mode.
1139         ("*zero_extendqisi2_64", "*zero_extendqisi2_31"): Use LLGC in
1140         z/Architecture mode.
1141         ("zero_extendqihi2", "*zero_extendqihi2_64", "*zero_extendqihi2_31"):
1142         Likewise.
1143
1144         * config/s390/s390.md ("*tmdi_ext"): Allow in both 64-bit
1145         and 31-bit mode.
1146         ("ptr_extend"): Allow only in 64-bit mode.
1147
1148 2003-08-27  Daniel Jacobowitz  <drow@mvista.com>
1149
1150         * gcc.c (STANDARD_EXEC_PREFIX, STANDARD_STARTFILE_PREFIX)
1151         (TOOLDIR_BASE_PREFIX, STANDARD_BINDIR_PREFIX): Remove unnecessary
1152         definitions.
1153         (main): Only use standard_startfile_prefix if native.
1154         * doc/tm.texi (STANDARD_STARTFILE_PREFIX): Update.
1155
1156 2003-08-27  Per Bothner  <pbothner@apple.com>
1157
1158         * cpperror.c (print_location):  Don't check for !pfile->buffer.  That
1159         test fails following my 08-21 change, and it seems unnecessary anyway.
1160         (cpp_error):  Likewise.
1161
1162 2003-08-27  Jason Merrill  <jason@redhat.com>
1163
1164         * real.c (do_multiply): Initialize with memset.
1165
1166 2003-08-27  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1167
1168         * gcov.c (typedef struct arc_info): New field cs_count.
1169         (accumulate_line_counts): Find cycles correctly.
1170
1171 2003-08-27  Ulrich Weigand  <uweigand@de.ibm.com>
1172
1173         * config/s390/s390.c (struct machine_function): Remove member
1174         literal_pool_label.
1175         (s390_optimize_prolog): Replace TEMP_REG argument with
1176         TEMP_USED and BASE_USED.  Do not check get_pool_size ().
1177         (general_s_operand): Accept all immediates before reload if
1178         ALLOW_IMMEDIATE.  If not ALLOW_IMMEDIATE, reject literal pool
1179         references.
1180         (s390_output_symbolic_const): Remove UNSPEC_LTREL_OFFSET handling.
1181         (find_constant_pool_ref): Ignore UNSPECV_POOL_ENTRY insns.
1182         (s390_alloc_pool): New function.
1183         (s390_new_pool): Call it.
1184         (s390_dump_pool): Add REMOTE_LABEL argument.
1185         (s390_chunkify_start): Add BASE_REG argument.  Do not check
1186         get_pool_size ().
1187         (s390_chunkify_finish): Add BASE_REG argument.  Adapt
1188         s390_dump_pool call.
1189         (s390_pool_count, s390_nr_constants): Remove.
1190         (s390_output_constant_pool): Remove.
1191         (s390_mainpool_start): New function.
1192         (s390_mainpool_finish): New function.
1193         (s390_mainpool_cancel): New function.
1194         (s390_reorg): Implement main literal pool handling.
1195         (s390_emit_prologue): Emit main_pool placeholder instead of
1196         literal_pool_31 / literal_pool_64 insns.
1197         * config/s390/s390.h (s390_pool_count, s390_nr_constants): Remove.
1198         (ASM_OUTPUT_POOL_PROLOGUE, ASM_OUTPUT_SPECIAL_POOL_ENTRY): Remove.
1199         * config/s390/s390.md (UNSPEC_MAIN_BASE): New symbolic constant.
1200         ("main_base_31_small", "main_base_31_large"): New insns.
1201         ("main_base_64",  "main_pool"): New insns.
1202         ("literal_pool_31", "literal_pool_64"): Remove.
1203
1204 2003-08-27  Nathanael Nerode  <neroden@gcc.gnu.org>
1205
1206         * fixinc/inclhack.def (ptx_netswap): New disabled fix, ported from
1207         fixinc.ptx.
1208         * fixinc/inclhack.def (undefine_null):  Don't generate \r characters.
1209         Prettify a little.
1210         * fixinc/fixincl.x: Regenerate.
1211
1212 2003-08-27  Richard Earnshaw  <rearnsha@arm.com>
1213
1214         * lib1funcs.asm (L_ieee754_sp): New.  Include ieee754-sf.S.
1215         (L_ieee754_dp): New.  Include ieee754-df.S.
1216         * arm/ieee754-sf.S: Rework to allow interworking, calling from Thumb,
1217         and compilation in apcs-26 mode.
1218         * arm/ieee754-df.S: Likewise.
1219         * t-arm-elf (DPBIT, FPBIT, fp-bit.c dp-bit.c): Delete rules
1220         (LIB1ASMFUNCS): Add _ieee754_sp and _ieee754_dp targets.
1221
1222 2003-08-27  Nicolas Pitre  <nico@cam.org>
1223
1224         * arm/ieee754-sf.S: New.
1225         * arm/ieee754-df.S: New.
1226
1227 2003-08-27  Jakub Jelinek  <jakub@redhat.com>
1228
1229         * builtins.c (expand_builtin_expect_jump): Save pending_stack_adjust
1230         and restore it if returning NULL.
1231
1232 2003-08-27  Richard Sandiford  <rsandifo@redhat.com>
1233
1234         * calls.c (initialize_argument_information): If an argument has no
1235         stack space associated with it, and BLOCK_REG_PADDING is defined,
1236         use it to decide at which end the argument should be padded.
1237         * function.c (assign_parms): Allocate BLKmode stack slots.
1238         * config/mips/mips-protos.h (mips_pad_arg_upward): Declare.
1239         (mips_pad_reg_upward): Declare.
1240         * config/mips/mips.h (PAD_VARARGS_DOWN): Use FUNCTION_ARG_PADDING.
1241         (CUMULATIVE_ARGS): Remove num_adjusts and adjusts.
1242         (FUNCTION_ARG_PADDING): Use mips_pad_arg_upward.
1243         (BLOCK_REG_PADDING): Use mips_pad_reg_upward.
1244         * config/mips/mips.c (struct mips_arg_info): Remove struct_p.
1245         (mips_expand_call): Remove code for generating structure shifts.
1246         (mips_arg_info): Don't set struct_p.  Don't set fpr_p for non-float
1247         types unless using the EABI.
1248         (function_arg_advance): Don't generate shift instructions.
1249         (function_arg): Don't return them.  Don't short-circuit the
1250         check for double structure chunks for DFmode arguments.
1251         (mips_pad_arg_upward, mips_pad_reg_upward): New functions.
1252         (mips_expand_prologue): Remove code to emit structure shifts.
1253         * config/mips/irix6-libc-compat.c: Remove workarounds for buggy
1254         structure passing (inet_ntoa, inet_lnaof, inet_netof).  Update
1255         comments to say that only structure returns are a problem.
1256
1257 2003-08-26  Nathanael Nerode  <neroden@gcc.gnu.org>
1258
1259         * fixinc/tests/base/string.h, fixinc/tests/base/sys/regset.h:
1260         Fix to match produced versions.
1261         * fixinc/inclhack.def (longlong_t): New disabled test, ported
1262         from fixinc.svr4.
1263         * fixinc/inclhack.def (ptx_pwd_h): New disabled fix, ported
1264         from fixinc.ptx.
1265         * fixinc/inclhack.def (ptx_sys_mc_param_h): New disabled fix,
1266         ported from fixinc.ptx.
1267
1268 2003-08-26  Per Bothner  <pbothner@apple.com>
1269
1270         * cpplib.h (struct cpp_token):  Change type of field line to fileline.
1271         (cpp_error_with_line):  Use fileline for appropriate parameter.
1272         * cpphash.h (struct cpp_macro):  Change type of field line to fileline.
1273         (struct cpp_reader):  Likewise for fields line and directive_line.
1274         (_cpp_begin_message):  Use fileline for appropriate parameter.
1275         * cpperror.c (print_location, _cpp_begin_message, cpp_error_with_line,
1276         cpp_error):  Use fileline for appropriate parameters and variables.
1277         (print_location):  New local lin, since it is not a fileline.
1278
1279 2003-08-26  Roger Sayle  <roger@eyesopen.com>
1280
1281         PR middle-end/12002
1282         * tree.h (SCALAR_FLOAT_TYPE_P, COMPLEX_FLOAT_TYPE_P): New macros.
1283         (FLOAT_TYPE_P): Define in terms of these two new macros.
1284         * fold-const.c (fold <PLUS_EXPR>): Don't convert x+x into x*2.0
1285         for complex floating point types.
1286
1287 2003-08-26  Ulrich Weigand  <uweigand@de.ibm.com>
1288
1289         * config/s390/s390.c (emit_prologue): Don't check literal pool size.
1290         * config/s390/s390.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Call
1291         s390_output_pool_entry.
1292
1293 2003-08-26  Nathanael Nerode  <neroden@gcc.gnu.org>
1294
1295         * fixinc/inclhack.def (svr4_preproc_lint_on,
1296         svr4_preproc_lint_off, svr4_preproc_machine): New disabled
1297         fixes, ported from fixinc.svr4.
1298
1299 2003-08-26  Mark Mitchell  <mark@codesourcery.com>
1300
1301         * doc/install.texi (Prerequisites): Mention GNU make requirement.
1302
1303         * Makefile.in (AR_FOR_TARGET): Export it.
1304         (AR_CREATE_FOR_TARGET): Likewise.
1305         (AR_FLAGS_FOR_TARGET): Likewise.
1306         (AR_EXTRACT_FOR_TARGET): Likewise.
1307         (AWK): Likewise.
1308         (BUILD_PREFIX): Likewise.
1309         (BUILD_PREFIX_1): Likewise.
1310         (DESTDIR): Likewise.
1311         (GCC_FOR_TARGET): Likewise.
1312         (INCLUDES): Likewise.
1313         (INSTALL_DATA): Likewise.
1314         (LIB1ASMSRC): Likewise.
1315         (LIBGCC2_CFLAGS): Likewise.
1316         (MACHMODE_H): Likewise.
1317         (NM_FOR_TARGET): Likewise.
1318         (RANLIB_FOR_TARGET): Likewise.
1319         (libsubdir): Likewise.
1320         (slibdir): Likewise.
1321         (ORDINARY_FLAGS_TO_PASS): Remove stuff that we're
1322         exporting.
1323         (libgcc.a): Don't pass them here.
1324         (stmp-multilib): Or here.
1325         (install-libgcc): Or here.
1326         (install-multilib): Or here.
1327         (POSTSTAGE1_FLAGS_TO_PASS): Or here.
1328         (stage1_build): Or here.
1329
1330 2003-08-26  Andreas Krebbel <krebbel1@de.ibm.com>
1331
1332         * config/s390/s390.md ("*llgt_sisi", "*llgt_sisi_split", "*llgt_didi",
1333         "*llgt_didi_split", "*llgt_sidi", "*llgt_sidi_split"): New insns.
1334
1335 2003-08-26  Andreas Krebbel <krebbel1@de.ibm.com>
1336
1337         * config/s390/s390.md ("*fmadddf", "*fmsubdf",
1338         "*fmaddsf", "*fmsubsf"): New insns.
1339
1340 2003-08-26  Roger Sayle  <roger@eyesopen.com>
1341
1342         * fold-const.c (fold <MULT_EXPR>): Optimize (C1/X)*C2 into
1343         (C1*C2)/X when unsafe math optimizations are allowed.
1344         (fold <RDIV_EXPR>): Optimize C1/(X*C2) into (C1/C2)/X with unsafe
1345         math optimizations.  Minor code clean-ups.  Recursively call
1346         fold when constructing sub-expressions.
1347
1348 2003-08-26  Roger Sayle  <roger@eyesopen.com>
1349
1350         * builtins.c (fold_builtin_bitop): New function to perform constant
1351         folding of ffs, clz, ctz, popcount and parity builtin functions
1352         and their long and long long variants (such as ffsl and ffsll).
1353         (fold_builtin): fold_builtin_bitop when appropriate.
1354         * simplify-rtx.c (simplify_unary_operation): Honor both
1355         CLZ_DEFINED_VALUE_AT_ZERO and CTZ_DEFINED_VALUE_AT_ZERO when
1356         evaluating clz and ctz at compile-time, for operands wider
1357         than HOST_WIDE_INT.
1358
1359 2003-08-26  Nathan Sidwell  <nathan@codesourcery.com>
1360
1361         * builtins.c (build_function_call_expr): Don't set
1362         TREE_SIDE_EFFECTS here.
1363         * expr.c (emit_block_move_via_libcall): Likewise.
1364         (clear_storage_via_libcall): Likewise.
1365         * tree.c (build): Set TREE_SIDE_EFFECTS for non-const, non-pure
1366         CALL_EXPRs.
1367
1368         * gcse.c (is_too_expensive): New function.
1369         (gcse_main, delete_null_pointer_checks, bypass_jumps): Use it.
1370
1371 2003-08-25  Zack Weinberg  <zack@codesourcery.com>
1372
1373         * config.gcc (hppa*-*-hpux11*, ia64*-*-hpux*): Remove
1374         commented-out logic to use DCE threads (if present), add
1375         support for POSIX threads.
1376         * config/ia64/hpux.h: Define CPP_SPEC to set appropriate
1377         #defines for -pthread.  Add -lpthread to LIB_SPEC when
1378         -pthread.  In both cases take -mt as a synonym for -pthread
1379         for acc compatibility.
1380         Define GTHREAD_USE_WEAK to 0.
1381         * config/pa/pa-hpux11.h: Likewise for CPP_SPEC and LIB_SPEC.
1382         Remove old logic for DCE threads from LIB_SPEC.
1383         * config/pa/pa64-hpux.h: Define GTHREAD_USE_WEAK to 0.
1384
1385 2003-08-25  Roger Sayle  <roger@eyesopen.com>
1386
1387         * builtins.c (expand_builtin_mathfn):  Rearrange so that we only
1388         return 0 for invalid argument types.  Instead drop through to a
1389         call of expand_call at the bottom of function.  If op is SQRT,
1390         try attaching a SQRT rtx as the REQ_EQUAL note of the libcall.
1391
1392 2003-08-25  Richard Henderson  <rth@redhat.com>
1393
1394         * config/ia64/ia64.c (ia64_expand_tls_address): Properly truncate
1395         result when op0 is SImode.
1396
1397 2003-08-25  Nathanael Nerode  <neroden@twcny.rr.com>
1398
1399         * fixinc/inclhack.def (svr4_sighandler_type): New fix, ported
1400         from fixinc.svr4.
1401         * fixinc/fixincl.x: Regenerate.
1402         * fixinc/tests/base/sys/signal.h: Regenerate.
1403
1404 2003-08-25  Ulrich Weigand  <uweigand@de.ibm.com>
1405
1406         * combine.c (simplify_comparison): Re-enable widening of comparisons
1407         with non-paradoxical subregs of non-REG expressions.
1408
1409 2003-08-25  Ulrich Weigand  <uweigand@de.ibm.com>
1410
1411         * combine.c (distribute_notes): Handle REG_ALWAYS_RETURN.
1412
1413 2003-08-25  Ulrich Weigand  <uweigand@de.ibm.com>
1414
1415         * combine.c (combine_simplify_rtx): Fix RTL sharing bug.
1416
1417 2003-08-25  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1418
1419         * pretty-print.h (pp_maybe_newline_and_indent): New macro.
1420         * c-pretty-print.h (c_pretty_printer): Now typedef to the
1421         structure.  Be consistent with pretty-print.h abd cxx-pretty-print.h
1422         (struct c_pretty_print_info): Document.  Add new fields.
1423         (pp_type_specifier_seq): Rename from pp_c_type_specifier.
1424         (pp_direct_abstract_declarator): New macro.
1425         (pp_ptr_operator): Likewise.
1426         (pp_simple_type_specifier): Likewise.
1427         (pp_expression): Likewise.
1428         (pp_parameter_list): Rename from pp_parameter_declaration.
1429         * c-pretty-print.c (pp_c_whitespace): Now a function.
1430         (pp_c_left_paren): Likewise.
1431         (pp_c_right_paren): Likewise.
1432         (pp_c_dot): Likewise.
1433         (pp_c_ampersand): Likewise.
1434         (pp_c_arrow): Likewise.
1435         (pp_c_semicolon): Likewise.
1436         (pp_c_type_cast): New function.
1437         (pp_c_space_for_pointer_operator): Likewise.
1438         (pp_c_call_argument_list): Likewise.
1439         (pp_c_cv_qualifier): Adjust prototype.
1440         (pp_c_type_qualifier_list): Likewise.
1441         (pp_c_pointer): Likewise.  Handle REFERENCE_TYPE here.
1442         (pp_c_type_specifier): Rename from pp_c_simple_type_specifier.
1443         Adjust to follow standard grammar.
1444         (pp_c_specifier_qualifier_list): Adjusr prototype.  Handle
1445         REFERENCE_TYPE.  Tidy.
1446         (pp_c_parameter_type_list): Adjust prototype.  Tidy.
1447         (pp_c_parameter_declaration): Remove.
1448         (pp_c_abstract_declarator): Adjust prototype.
1449         (pp_c_direct_abstract_declarator): Likewise.
1450         (pp_c_type_id): Likewise.
1451         (pp_c_storage_class_specifier): Likewise.
1452         (pp_c_function_specifier): Likewise.
1453         (pp_c_declaration_specifiers): Likewise.
1454         (pp_c_direct_declarator): Likewise.
1455         (pp_c_declarator): Likewise.
1456         (pp_c_declarator): Likewise.
1457         (pp_c_declaration): Likewise.
1458         (pp_c_attributes): Likewise.  Tidy.
1459         (pp_c_function_definition): Adjust prototype.
1460         (pp_c_char): Likewise.
1461         (pp_c_string_literal): Likewise.
1462         (pp_c_integer_constant): Likewise.
1463         (pp_c_character_constant): Likewise.
1464         (pp_c_bool_constant): Likewise.
1465         (pp_c_enumeration_constant): Likewise.
1466         (pp_c_floating_constant): Likewise.
1467         (pp_c_constant): Likewise.
1468         (pp_c_identifier): Likewise.
1469         (pp_c_primary_expression): Likewise.  Remove TARGET_EXPR case.  Tidy.
1470         (pp_c_initializer): Adjust prototype.
1471         (pp_c_init_declarator): Likewise.
1472         (pp_c_initializer_list): Likewise.
1473         (pp_c_id_expression): Likewise.
1474         (pp_c_postfix_expression): Likewise.
1475         (pp_c_expression_list): Likewise.
1476         (pp_c_unary_expression): Likewise.
1477         (pp_c_cast_expression): Likewise.
1478         (pp_c_multiplicative_expression): Likewise.
1479         (pp_c_additive_expression): Likewise.
1480         (pp_c_shift_expression): Likewise.
1481         (pp_c_relational_expression): Likewise.
1482         (pp_c_equality_expression): Likewise.
1483         (pp_c_and_expression): Likewise.
1484         (pp_c_exclusive_or_expression): Likewise.
1485         (pp_c_inclusive_or_expression): Likewise.
1486         (pp_c_logical_and_expression): Likewise.
1487         (pp_c_logical_or_expression): Likewise.
1488         (pp_c_conditional_expression): Likewise.
1489         (pp_c_assignment_expression): Likewise.
1490         (pp_c_expression): Likewise.  Tidy.
1491         (pp_c_statement): Likewise.  Document.
1492         (pp_c_pretty_printer_init): Adjust prototype. Tidy.
1493
1494         * c-lang.c (c_initialize_diagnostics): Update.
1495         * c-common.h (strip_pointer_operator): Declare.
1496         * c-common.c (strip_pointer_operator): Define.
1497
1498 2003-08-25  Mark Mitchell  <mark@codesourcery.com>
1499
1500         PR c++/8795
1501         * tree.h (build_method_type_directly): Declare.
1502         * c-common.c (handle_vector_size_attributes): Handle METHOD_TYPEs.
1503         (vector_size_helper): Likewise.
1504         * tree.c (build_method_type_directly): New function.
1505         (build_method_type): Use it.
1506
1507 2003-08-24  Richard Henderson  <rth@redhat.com>
1508
1509         * config/i386.i386.c (ix86_return_in_memory): Reformat.  Return true
1510         for 16-byte vector modes if sse not enabled; warn for abi change.
1511         (ix86_value_regno): Only return xmm0 for 16-byte vector types.
1512
1513 2003-08-24  Kazu Hirata  <kazu@cs.umass.edu>
1514
1515         * rtlanal.c (may_trap_p): Simplify an integer comparison.
1516
1517 2003-08-24  Nathanael Nerode  <neroden@gcc.gnu.org>
1518
1519         * fixinc/inclhack.def (AAB_svr4_replace_byteorder):  Enhance
1520         comment.  Enable for DYNIX/ptx systems (when they switch to
1521         regular fixincludes).
1522         * fixinc/fixincl.x: Regenerate.
1523
1524 2003-08-23  Jason Eckhardt  <jle@rice.edu>
1525
1526         * config/i860/t-i860: New.
1527         * config.gcc (i860-*-sysv4*): Add t-i860 to tmake_file.
1528
1529 2003-08-23  Jakub Jelinek  <jakub@redhat.com>
1530
1531         * c-decl.c (pushdecl): Only put decls which finish_struct will do
1532         something about onto incomplete chain.
1533         (finish_struct): If not removing type from incomplete
1534         list, update prev.
1535
1536 Wed Aug 20 12:08:55 CEST 2003  Jan Hubicka  <jh@suse.cz>
1537
1538         PR target/11369
1539         * i386.c (ix86_expand_carry_flag_compare): Validate operand.
1540
1541         PR target/11031
1542         * i386.c (const_0_to_3_operand, const_0_to_7_operand,
1543         const_0_to_15_operand, const_0_to_255_operand): New predicates.
1544         * i386.h (PREDICATE_CODES): Add these.
1545         * i386.c (pinsrw and pextrw patterns): Use them.
1546
1547         PR target/10984
1548         * i386.c (ix86_expand_binop_builtin): Behave sanely for VOIDmodes.
1549
1550         PR target/8869
1551         * expr.c (convert_modes): Deal properly with integer to vector
1552         constant conversion.
1553
1554         PR target/8871
1555         * i386.md (zero_extendsidi2*): Add MMX and SSE alternatives.
1556
1557 2003-08-23  Ulrich Weigand  <uweigand@de.ibm.com>
1558
1559         * config/s390/s390.h (LOAD_EXTEND_OP): Remove.
1560         * config/s390/s390.md ("movhi"): New expander; old insn renamed to ...
1561         ("*movhi"): ... this.
1562         ("movqi", "*movqi"): Likewise.
1563         ("movqi_64"): Remove.
1564         ("*zero_extendhisi2_31"): Change predicate to s_operand.
1565
1566 2003-08-23  Dale Johannesen  <dalej@apple.com>
1567         * calls.c (emit_library_call_value_1): Fix obvious errors in
1568         arguments to emit_group_store.
1569
1570 2003-08-23  Jason Eckhardt  <jle@rice.edu>
1571
1572         * calls.c (emit_library_call_value_1): Remove code related
1573         to LIBGCC_NEEDS_DOUBLE.
1574         * config/stormy16/stormy16.h: Remove mention of LIBGCC_NEEDS_DOUBLE.
1575         * doc/tm.texi: Likewise.
1576         * system.h: Poison the LIBGCC_NEEDS_DOUBLE macro.
1577
1578 2003-08-23  Richard Sandiford  <rsandifo@redhat.com>
1579
1580         * config/mips/linux64.h (STARTFILE_PREFIX_SPEC): Remove.
1581
1582 2003-08-23  Richard Sandiford  <rsandifo@redhat.com>
1583
1584         * config/mips/mips.c (mips_setup_incoming_varargs): Handle o32 and o64
1585         as well.  Put memory references in the varargs alias set.
1586         (mips_expand_prologue): Remove varargs handling from here.
1587
1588 2003-08-23  Ulrich Weigand  <uweigand@de.ibm.com>
1589
1590         * config/s390/s390.c (s390_expand_movstr, s390_expand_clrstr,
1591         s390_expand_cmpmem, s390_output_constant_pool, s390_build_va_list,
1592         s390_function_profiler, s390_output_mi_thunk): Use ISO C syntax
1593         for function pointer calls.
1594         * config/s390/s390.md ("*negdi2_31"): Likewise.
1595
1596 2003-08-23  Roger Sayle  <roger@eyesopen.com>
1597
1598         * combine.c (apply_distributive_law): Correct comment.
1599
1600 2003-08-23  Jason Eckhardt  <jle@rice.edu>
1601
1602         * config/i860/i860.h: Remove comment mentioning LIBGCC_NEEDS_DOUBLE.
1603
1604 2003-08-22  Jason Eckhardt  <jle@rice.edu>
1605
1606         * config/i860/i860.c (i860_build_va_list): Create the va_decl
1607         declaration.  Document the va_list structure.
1608         (i860_va_start): Initialize the va_list structure.
1609         (i860_va_arg): Rewrite completely.
1610         * config/i860/i860.h (LIBGCC_NEEDS_DOUBLE): Don't define.
1611         * config/i860/varargs.asm: Do not allocate or initialize
1612         a va_list.  Return the address of the register save area.
1613
1614 2003-08-22  Kazu Hirata  <kazu@cs.umass.edu>
1615
1616         * config/iq2000/iq2000.c: Fix comment typos.
1617         * config/iq2000/iq2000.md: Likewise.
1618
1619 2003-08-22  Kazu Hirata  <kazu@cs.umass.edu>
1620
1621         * config/iq2000/iq2000.c: Follow spelling conventions.
1622         * config/iq2000/iq2000.h: Likewise.
1623         * config/mn10300/mn10300.c: Likewise.
1624
1625 2003-08-22  Jason Eckhardt  <jle@rice.edu>
1626
1627         * config/i860/i860.c (output_move_double): Don't set latehalf
1628         to zero for CONST_INT (since it could be, e.g., -1).
1629
1630         * config/i860/i860.h (REMSI3_LIBCALL): Replace this macro...
1631         (MODSI3_LIBCALL): ...with this one.
1632         (UREMSI3_LIBCALL): Replace this macro...
1633         (UMODSI3_LIBCALL): ...with this one.
1634
1635 2003-08-22  Jason Eckhardt  <jle@rice.edu>
1636
1637         * config/i860/i860-protos.h (output_delay_insn): Remove prototype.
1638         (output_delayed_branch): Remove prototype.
1639         (single_insn_src_p): Remove prototype.
1640         * config/i860/i860.c (single_insn_src_p): Remove function.
1641         (output_delayed_branch): Remove function.
1642         (output_delay_insn): Remove function.
1643         (va_start): Remove unconditional test and dead code, re-format.
1644         Fix coding style and spelling problems in various comments.
1645         * config/i860/i860.md (UNSPECV_BLOCKAGE): Define constant...
1646         (blockage pattern): ...and use it here.
1647         (all define_peephole patterns related to delayed branches): Remove.
1648         Fix coding style and spelling problems in various comments.
1649
1650 2003-08-22  Jason Eckhardt  <jle@rice.edu>
1651
1652         * config/i860/i860.c: Replace all occurrences of 'GNU CC' with 'GCC'.
1653         Remove all uses of the PARAMS macro.  Remove superflous prototypes.
1654         Convert all function definitions from traditional to ISO C90 syntax.
1655         * config/i860/i860-protos.h: Replace all occurrences of 'GNU CC'
1656         with 'GCC'.  Remove all uses of the PARAMS macro.
1657         * config/i860/i860.h: Replace all occurrences of 'GNU CC' with 'GCC'.
1658         * config/i860/i860.md: Likewise.
1659         * config/i860/sysv4.h: Likewise.
1660         * config/i860/varargs.asm: Likewise.
1661
1662 2003-08-22  Jason Eckhardt  <jle@rice.edu>
1663
1664         * config/i860/i860-protos.h (i860_va_start): Remove 'stdarg_p'
1665         argument.
1666         (tdesc_section): Add prototype.
1667         Update copyright dates.
1668         * config/i860/i860.c: Include coretypes.h, tm.h, and toplev.h.
1669         (TARGET_ASM_FUNCTION_PROLOGUE): Move definition to end of file.
1670         (TARGET_ASM_FUNCTION_EPILOGUE): Likewise.
1671         (targetm): Likewise.
1672         (i860_output_function_prologue): Substitute HOST_WIDE_INT_PRINT_DEC
1673         for '%d' where necessary.
1674         (i860_va_start): Remove 'stdarg_p' argument.  Make conditional checks
1675         on 'stdarg_p' unconditional.  Divide current_function_args_info.ints
1676         by UNITS_PER_WORD when referencing (likewise for .floats).
1677         (I860_SVR4_VARARGS): Rename...
1678         (I860_SVR4_VA_LIST): ...to this.
1679         Call build() with 't' rather than 'field'.
1680         (i860_rtx_costs): New function.
1681         (TARGET_RTX_COSTS): Define.
1682         (i860_internal_label): New function.
1683         (TARGET_ASM_INTERNAL_LABEL): Define.
1684         (i860_file_start): New function.
1685         Update copyright dates.
1686         * config/i860/i860.h (CPP_PREDEFINES): Remove.
1687         (TARGET_CPU_CPP_BUILTINS): Define.
1688         (EXPAND_BUILTIN_VA_START): Remove 'stdarg' argument.
1689         (CONST_COSTS): Remove (and move code to i860_rtx_costs).
1690         (ASM_FILE_START): Remove.
1691         (ASM_FILE_START_1): Remove.
1692         (ASM_GLOBALIZE_LABEL): Remove.
1693         (ASM_OUTPUT_INTERNAL_LABEL): Remove.
1694         (ASM_OUTPUT_CASE_LABEL): Replace call of ASM_OUTPUT_INTERNAL_LABEL
1695         with targetm.asm_out.internal_label.
1696         Update copyright dates.
1697         * config/i860/sysv4.h (USER_LABEL_PREFIX): Define.
1698         (CPP_PREDEFINES): Remove.
1699         (TARGET_OS_CPP_BUILTINS): Define.
1700         (GLOBAL_ASM_OP): Define.
1701         (ASM_FILE_START): Remove.
1702         (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Define.
1703         (TARGET_ASM_FILE_START): Define.
1704         Update copyright dates.
1705
1706 2003-08-22  Jason Eckhardt  <jle@rice.edu>
1707
1708         * gcc/config.gcc (i860-*-sysv4*): Add target.
1709         * config/i860/i860-protos.h: New.
1710         * config/i860/i860.c: New.
1711         * config/i860/i860.h: New.
1712         * config/i860/i860.md: New.
1713         * config/i860/sysv4.h: New.
1714         * config/i860/varargs.asm: New.
1715         * config/i860/x-sysv4: New.
1716
1717 2003-08-22  Jason Eckhardt  <jle@rice.edu>
1718
1719         * config/pa/pa.c: Replace 'GNU CC' with 'GCC'.
1720         Remove all uses of PARAMS macro.
1721         Convert all function definitions to ISO C90 syntax.
1722         * config/pa/elf.h: Replace 'GNU CC' with 'GCC'.
1723         * config/pa/fptr.c: Likewise.
1724         * config/pa/lib2funcs.asm: Likewise.
1725         * config/pa/long_double.h: Likewise.
1726         * config/pa/milli64.S: Likewise.
1727         * config/pa/pa-64.h: Likewise.
1728         * config/pa/pa-hpux.h: Likewise.
1729         * config/pa/pa-hpux10.h: Likewise.
1730         * config/pa/pa-hpux11.h: Likewise.
1731         * config/pa/pa-linux.h: Likewise.
1732         * config/pa/pa-modes.def: Likewise.
1733         * config/pa/pa-osf.h: Likewise.
1734         * config/pa/pa-pro-end.h: Likewise.
1735         * config/pa/pa.md: Likewise.
1736         * config/pa/pa32-linux.h: Likewise.
1737         * config/pa/pa64-linux.h: Likewise.
1738         * config/pa/pa64-hpux.h: Likewise.
1739         * config/pa/pa64-regs.h: Likewise.
1740         * config/pa/quadlib.c: Likewise.
1741         * config/pa/rtems.h: Likewise.
1742         * config/pa/pa-protos.h: Replace 'GNU CC' with 'GCC' and remove
1743         all uses of the PARAMS macro.
1744         * config/pa/pa.h: Likewise.
1745         * config/pa/som.h: Likewise.
1746
1747         * config/iq2000/iq2000.c: Replace 'GNU CC' with 'GCC'.
1748         Remove all uses of PARAMS macro.
1749         Convert all function definitions to ISO C90 syntax.
1750         * config/iq2000-protos.h: Replace 'GNU CC' with 'GCC'.
1751         Remove all uses of PARAMS macro.
1752         * config/iq2000.h: Remove all uses of PARAMS macro.
1753         * config/iq2000/iq2000.md: Replace 'GNU CC' with 'GCC'.
1754
1755 2003-08-23  Ulrich Weigand  <uweigand@de.ibm.com>
1756
1757         * config/s390/s390-protos.h (s390_output_pool_entry): Declare.
1758         * config/s390/s390.c (gen_consttable): Remove.
1759         (s390_dump_pool): Use UNSPECV_POOL_ENTRY for pool entry insns.
1760         (s390_output_pool_entry): New function.
1761         * config/s390/s390.md (UNSPECV_POOL_QI, UNSPECV_POOL_HI,
1762         UNSPECV_POOL_SI, UNSPECV_POOL_DI, UNSPECV_POOL_TI,
1763         UNSPECV_POOL_SF, UNSPECV_POOL_DF): Remove, replace by ...
1764         (UNSPECV_POOL_ENTRY): ... this new constant.
1765         ("consttable_qi", "consttable_hi", "consttable_si", "consttable_di",
1766         "consttable_ti", "consttable_sf", "consttable_df"): Remove ...
1767         ("*pool_entry"): ... and replace by this new insn.
1768         ("literal_pool_31"): Do not emit anchor label if pool empty.
1769
1770         * config/s390/s390.c (struct machine_function): Add save_return_addr_p.
1771         (s390_optimize_prolog): Save RETURN_REGNUM if save_return_addr_p.
1772         (s390_fixup_clobbered_return_reg): Remove.
1773         (s390_reorg): Don't call s390_fixup_clobbered_return_reg.
1774         (s390_return_addr_rtx): Always retrieve return address from save area
1775         slot.  Use save_return_addr_p to force slot to be filled.
1776         (s390_emit_prologue): Remove has_hard_reg_initial_val test.
1777
1778 2003-08-22  Chris Demetriou  <cgd@broadcom.com>
1779
1780         * config/mips/mips.h (MASK_FIX_SB1, TARGET_FIX_SB1): New defines.
1781         (TARGET_SWITCHES): Add -mfix-sb1 and -mno-fix-sb1.
1782         * config/mips/mips.md (divdf3, divsf3, sqrtdf2, sqrtsf2): Work
1783         around SB-1 errata if TARGET_FIX_SB1 is set.
1784         (recip.d insn, recip.s insn, rsqrt.d insn, rsqrt.s insn): Likewise.
1785         * doc/invoke.texi: Document MIPS -mfix-sb1 and -mno-fix-sb1.
1786
1787 2003-08-22  Roger Sayle  <roger@eyesopen.com>
1788
1789         * hashtable.c (ht_expand): Avoid calculating rehash for the common
1790         case that the first probe hits an empty hash table slot.
1791
1792 2003-08-22  Mark Mitchell  <mark@codesourcery.com>
1793
1794         * config/ia64/hpux.h (SUPPORTS_INIT_PRIORITY): Define to 0.
1795
1796 2003-08-22  Mark Mitchell  <mark@codesourcery.com>
1797
1798         * config/ia64/ia64.md (*ptr_extend_plus_1): Rename to ...
1799         (ptr_extend_plus_imm): ... this.
1800         * config/ia64/ia64.c (addp4_optimize_ok): Do not disable addp4
1801         optimization in C++.
1802         (ia64_output_mi_thunk): Support ILP32 mode.
1803
1804 2003-08-22  bernardo innocenti  <bernie@develer.com>
1805
1806         * gcc/config/m68k/m68k.c (m68k_coff_asm_named_section): remove unused
1807         function.
1808         * gcc/config/m68k/m68k.c (-m68k_svr3_asm_out_constructor): likewise.
1809
1810 2003-08-22  Kazu Hirata  <kazu@cs.umass.edu>
1811
1812         * config/i386/i386.c (const_int_1_operand): Simplify an
1813         integer comparison.
1814
1815 2003-08-22  Alan Modra  <amodra@bigpond.net.au>
1816
1817         * config/fp-bit.c: Specify config/ dir for include of fp-bit.h.
1818         * config/rs6000/ppc64-fp.c: Likewise.
1819
1820 2003-08-22  Kazu Hirata  <kazu@cs.umass.edu>
1821
1822         * cfgcleanup.c: Fix comment typos.
1823         * emit-rtl.c: Likewise.
1824         * optabs.c: Likewise.
1825         * ra-build.c: Likewise.
1826         * rtlanal.c: Likewise.
1827         * tree.h: Likewise.
1828
1829 2003-08-22  Kazu Hirata  <kazu@cs.umass.edu>
1830
1831         * c-decl.c: Fix comment formatting.
1832         * cfgrtl.c: Likewise.
1833         * combine.c: Likewise.
1834         * convert.c: Likewise.
1835         * dominance.c: Likewise.
1836         * dwarf2out.c: Likewise.
1837         * dwarfout.c: Likewise.
1838         * expmed.c: Likewise.
1839         * fold-const.c: Likewise.
1840         * gcov.c: Likewise.
1841         * genattrtab.c: Likewise.
1842         * ggc-common.c: Likewise.
1843         * mips-tfile.c: Likewise.
1844         * regmove.c: Likewise.
1845
1846 2003-08-22  Kazu Hirata  <kazu@cs.umass.edu>
1847
1848         * builtin-attrs.def: Fix comment formatting.
1849         * c-pretty-print.c: Likewise.
1850         * diagnostic.h: Likewise.
1851         * langhooks.h: Likewise.
1852         * recog.c: Likewise.
1853         * simplify-rtx.c: Likewise.
1854         * tree.def: Likewise.
1855
1856 2003-08-22  Bernardo Innocenti  <bernie@develer.com>
1857
1858         * config/m68k/m68k-protos.h: Convert to ISO C90.
1859         * config/m68k/m68k.c: Likewise.
1860
1861 2003-08-21  Bernardo Innocenti  <bernie@develer.com>
1862             Paul Dale  <pauli@snapgear.com>
1863             Peter Barada <peter@baradas.org>
1864
1865         * config/m68k/m68k.c (m68k_rtx_costs): Adjust mul/div costs for
1866         ColdFire cores.
1867
1868 2003-08-21  Zack Weinberg  <zack@codesourcery.com>
1869
1870         * Makefile.in (INCLUDES): Remove -I$(srcdir)/config.
1871         * config.gcc (*-*-openbsd): Don't set tm_file.
1872         (alpha*-*-openbsd, arm*-*-coff*, arm*-wince-pe*,
1873         arm-*-pe*, avr-*-*, h8300-*-rtems*, h8300-*-elf*,
1874         h8300-*-*, hppa*-*-osf*, hppa*-*-bsd*, hppa*-*-hpux*,
1875         i370-*-opened*, i370-*-mvs*, i370-*-linux*, i?86-*-openbsd*,
1876         i?86-*-lynxos, i?86-*-nto-qnx*, iq2000*-*-elf*, m68000-hp-hpux*,
1877         m68k-hp-hpux*, m68k-*-aout*, m68k-*-coff*, m68020-*-elf*,
1878         m68k-*-elf*, m68k*-*-netbsd*, m68k*-*-openbsd*, m68k-*-sysv4*,
1879         m68k-*-linux*, m68k-*-rtems*, mcore-*-pe*, mips*-*-netbsd*,
1880         mips*-*-openbsd*, rs6000-*-lynxos*, sh*-*-elf*, sh*-*-ka,
1881         sh-*-rtemself, sparc-*-openbsd*, strongarm-*-pe, vax-*-openbsd*,
1882         xscale-*-coff): Use explicit and complete lists of target headers
1883         to include.  Move definitions to tm_defines where appropriate.
1884         (hppa*-*-openbsd*, powerpc-*-openbsd*): Comment out stanza for
1885         not-yet-contributed configuration.
1886
1887         * config/lynx.h, config/alpha/openbsd.h, config/arm/coff.h
1888         * config/avr/avr.h, config/frv/frv.h, config/h8300/elf.h
1889         * config/i370/linux.h, config/i370/mvs.h, config/i370/oe.h
1890         * config/i386/nto.h, config/iq2000/iq2000.h,
1891         * config/m68k/coff.h, config/m68k/hp310.h, config/m68k/hp320.h
1892         * config/m68k/linux.h, config/m68k/m68k-aout.h
1893         * config/m68k/m68k-none.h, config/m68k/m68kv4.h
1894         * config/m68k/netbsd.h, config/m68k/openbsd.h
1895         * config/m68k/sgs.h, config/mcore/mcore-pe.h,
1896         * config/mips/netbsd.h, config/mips/openbsd.h, config/pa/pa.h,
1897         * config/rs6000/lynx.h, config/sh/embed-elf.h, config/sparc/openbsd.h:
1898         Remove includes of other target config headers, and
1899         definitions of macros moved to tm_defines lists.  Add #undefs
1900         where now necessary to prevent redefinition warnings.
1901
1902         * config/h8300/coff.h: New file split out of...
1903         * config/h8300/elf.h: ...here.
1904         * config/m68k/hp320base.h: New file split out of...
1905         * config/m68k/hp320.h: ...here.
1906         * config/rs6000/lynxbase.h: New file split out of...
1907         * config/rs6000/lynx.h: ...here.
1908
1909         * config/m68k/hp310g.h, config/m68k/hp320g.h, config/m68k/hpux7.h
1910         * config/m68k/m68k-coff.h, config/mips/openbsd-be.h: Delete file.
1911
1912         * config/sol2.h: Remove #if 0-ed #include of sys/mman.h.
1913         * config/m68k/m68kelf.h: Remove commented out #include of m68k/sgs.h.
1914         * config/mcore/mcore.h: Don't include hwint.h nor machmode.h.
1915         Remove unnecessary #ifndef.
1916         * config/s390/s390.h: Prefix #include of s390/fixdfdi.h
1917         [under IN_LIBGCC2] with config/.
1918
1919 2003-08-21  Per Bothner  <pbothner@apple.com>
1920
1921         * cppfiles.c (stack_file):  Correctly pass return_at_eof parameter
1922         to cpp_push_buffer.
1923         * cpplex.c (_cpp_get_fresh_line):  Don't buffer->prev - handled
1924         by return_at_eof check.  Always call _cpp_pop_buffer at end.
1925
1926 2003-08-21  Kazu Hirata  <kazu@cs.umass.edu>
1927
1928         PR target/11805
1929         * config/h8300/h8300.md (two anonymous patterns): Remove.
1930
1931 2003-08-21  Richard Sandiford  <rsandifo@redhat.com>
1932
1933         * config/mips/mips.h (MUST_PASS_IN_STACK): Remove BLKmode clause.
1934         * config/mips/mips.c (function_arg_pass_by_reference): Never return
1935         true for n32 & n64.
1936
1937 2003-08-21  Josef Zlomek  <zlomekj@suse.cz>
1938
1939         * fold-const.c (fold): Fix bug in (A & C) == D where D & ~C != 0
1940         and similarly in (A | C) == D where C & ~D != 0.
1941
1942 2003-08-20  Geoffrey Keating  <geoffk@apple.com>
1943
1944         PR 8180
1945         * configure.in: When testing with_libs and with_headers, treat
1946         'no' as unset.  Based on a patch by Dan Kegel <dank@kegel.com>.
1947         * configure: Regenerate.
1948
1949 2003-08-20  Peter Barada <peter@baradas.org>
1950
1951         * longlong.h (umul_ppmm): Add ColdFire support.
1952
1953 2003-08-20  Peter Barada <peter@baradas.org>
1954             Bernardo Innocenti  <bernie@develer.com>
1955
1956         * config/m68k/m68k-none.h: Introduce new ColdFire archs.
1957         * config/m68k/m68k.h: Likewise.
1958         * config/m68k/lb1sf68.asm: Rename __mcf5200__ to __mcoldfire__.
1959         * config/m68k/coff.h: Rename TARGET_5200 to TARGET_COLDFIRE.
1960         * config/m68k/linux.h: Likewise.
1961         * config/m68k/m68k.c: Likewise.
1962         * config/m68k/m68k.md: Likewise.
1963         * config/m68k/m68kelf.h: Likewise.
1964         * config/m68k/netbsd-elf.h: Likewise.
1965         * config/m68k/t-m68kelf: Add multilib targets for new ColdFire archs.
1966
1967 2003-08-20  Bernardo Innocenti  <bernie@develer.com>
1968
1969         * config/m68k/m68k.c: Strip away code depending on NO_ADDSUB_Q definition.
1970         * config/m68k/m68k.md: Likewise.
1971
1972 2003-08-20  Mark Mitchell  <mark@codesourcery.com>
1973
1974         PR java/11996
1975         Revert this change:
1976         2003-08-19  Mark Mitchell  <mark@codesourcery.com>
1977         * c-common.c (c_common_signed_or_unsigned_type): Correctly handle
1978         types with precisions other than those given by native machine
1979         modes.
1980
1981 2003-08-20  Gunther Nikl  <gni@gecko.de>
1982
1983         * config/m68k/m68k.md (anonymous define_insn): remove obsolete code
1984         selected by FSGLMUL_USE_S and FSGLDIV_USE_S
1985         * config/m68k/m68k.c (output_move_himode): remove SGS_NO_LI check
1986         * config/m68k/m68k.md (anonymous define_insn): Likewise
1987         * config/m68k/m68k.md (anonymous define_insn): remove ISI_OV check
1988         * config/m68k/m68k.c (standard_68881_constant_p): remove obsolete
1989         code selected by NO_ASM_FMOVECR
1990
1991 2003-08-20  Gunther Nikl  <gni@gecko.de>
1992
1993         * config/m68k/m68k.c (output_move_const_into_data_reg,
1994         output_move_himode): unify MOTOROLA/MIT handling of moveq
1995         * config/m68k/m68k.md (movsi_const0, anonymous define_insn):
1996         Likewise
1997
1998 2003-08-20  Gunther Nikl  <gni@gecko.de>
1999
2000         * config/m68k/m68k.c (m68k_output_function_prologue): use %U in
2001         label name
2002         * config/m68k/m68k.c (m68k_output_function_epilogue): replace
2003         HOST_WIDE_INT_PRINT_DEC with %wd
2004
2005 2003-08-20  Loren James Rittle  <ljrittle@acm.org>
2006
2007         * config/i386/freebsd.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Handle
2008         redefine warning.
2009
2010 2003-08-20  Roger Sayle  <roger@eyesopen.com>
2011
2012         PR middle-end/11984
2013         * fold-const.c (fold <PLUS_EXPR>): Check for integer constant
2014         operands before calling tree_int_cst_lt when performing associative
2015         transformations.
2016
2017 2003-08-20  Jason Merrill  <jason@redhat.com>
2018
2019         * tree.h (IS_EXPR_CODE_CLASS): Also include 'r' and 's'.
2020         (EXPR_CHECK): Don't check for 'r' or 's' if we're
2021         checking IS_EXPR_CODE_CLASS.
2022         * calls.c (calls_function_1): Likewise.
2023         * fold-const.c (fold): Likewise.
2024         * tree.c (iterative_hash_expr): Likewise.
2025         * tree-inline.c (walk_tree, copy_tree_r): Likewise.
2026
2027 2003-08-20  Gunther Nikl  <gni@gecko.de>
2028
2029         * config/m68k/m68k.c (m68k_output_mi_thunk): delete obsolete code
2030         depending on MOTOROLA_BSR
2031         * config/m68k/m68k.md (anonymous define_insn): Likewise
2032
2033 2003-08-20  Jason Merrill  <jason@redhat.com>
2034
2035         * builtins.c (expand_builtin_mathfn): Use get_callee_fndecl.
2036         (expand_builtin_mathfn2, expand_builtin, builtin_mathfn_code,
2037         fold_trunc_transparent_mathfn, fold_builtin): Likewise.
2038         * dojump.c (do_jump): Likewise.
2039         * fold-const.c (operand_equal_p, fold): Likewise.
2040         (tree_expr_nonnegative_p): Likewise.
2041
2042         * stor-layout.c (do_type_align): Only copy DECL_USER_ALIGN from
2043         TYPE_USER_ALIGN for FIELD_DECLs.
2044
2045         * attribs.c (decl_attributes): Rebuild the function pointer type after
2046         changing the target type.
2047         * tree.c (get_qualified_type): Also check that the attributes match.
2048
2049 2003-08-19  Matt Kraai  <kraai@alumni.cmu.edu>
2050
2051         * Makefile.in (STAGESTUFF): Move cc1obj$(exeext) from here ...
2052         * objc/config-lang.in (stagestuff): ... to here.
2053
2054 2003-08-19  Mark Mitchell  <mark@codesourcery.com>
2055
2056         PR c++/11946
2057         * convert.c (convert_to_integer): Use CONVERT_EXPR (instead of
2058         NOP_EXPR) when necessary.
2059         * c-common.c (c_common_signed_or_unsigned_type): Correctly handle
2060         types with precisions other than those given by native machine
2061         modes.
2062
2063 2003-08-19  Geoffrey Keating  <geoffk@apple.com>
2064
2065         * cpppch.c (cpp_valid_state): Re-add warning about PCH not used
2066         because some macro is defined.
2067
2068         * config/darwin.h (LINK_COMMAND_SPEC): Add -arch and -arch_only
2069         options.
2070         * config/i386/darwin.h (ASM_SPEC): New.
2071         (SUBTARGET_EXTRA_SPECS): New.
2072         * config/rs6000/darwin.h (ASM_SPEC): New.
2073         (SUBTARGET_EXTRA_SPECS): New.
2074         * configure.in: Don't set CROSS or SYSTEM_HEADER_DIR when building
2075         a cross-compiler between two different processors on Darwin.
2076         * configure: Regenerate.
2077
2078 2003-08-19  Kazu Hirata  <kazu@cs.umass.edu>
2079
2080         * builtins.c: Fix comment typos.
2081         * c-common.c: Likewise.
2082         * c-decl.c: Likewise.
2083         * c-pretty-print.c: Likewise.
2084         * cfgbuild.c: Likewise.
2085         * cfglayout.c: Likewise.
2086         * cfgloopanal.c: Likewise.
2087         * cgraphunit.c: Likewise.
2088         * cppfiles.c: Likewise.
2089         * dwarfout.c: Likewise.
2090         * expr.c: Likewise.
2091         * fold-const.c: Likewise.
2092         * gcse.c: Likewise.
2093         * ggc-page.c: Likewise.
2094         * haifa-sched.c: Likewise.
2095         * pretty-print.c: Likewise.
2096         * tree.c: Likewise.
2097         * tree.h: Likewise.
2098         * value-prof.c: Likewise.
2099
2100 2003-08-19  Kazu Hirata  <kazu@cs.umass.edu>
2101
2102         * c-decl.c: Follow spelling conventions.
2103         * cppfiles.c: Likewise.
2104
2105 2003-08-19  Kazu Hirata  <kazu@cs.umass.edu>
2106
2107         * c-common.c: Fix comment formatting.
2108         * c-common.h: Likewise.
2109         * c-decl.c: Likewise.
2110         * cppinit.c: Likewise.
2111         * cpplib.h: Likewise.
2112         * emit-rtl.c: Likewise.
2113         * input.h: Likewise.
2114         * line-map.h: Likewise.
2115         * opts.c: Likewise.
2116         * opts.h: Likewise.
2117         * simplify-rtx.c: Likewise.
2118
2119 2003-08-19  Daniel Jacobowitz  <drow@mvista.com>
2120
2121         * unwind-c.c: Add libgcc-style exception.
2122         * unwind-dw2.c: Likewise.
2123         * unwind-pe.h: Likewise.
2124         * unwind-sjlj.c: Likewise.
2125         * unwind.inc: Likewise.
2126
2127 2003-08-19  Andrew Pinski  <pinskia@physics.uc.edu>
2128
2129         PR c/5582 PR c++/10538
2130         * langhooks-def.h (lhd_decl_uninit): Declare.
2131         (LANG_HOOKS_DECL_UNINIT): New macro.
2132         (LANG_HOOKS_INITIALIZER): Adjust.
2133         * langhooks.h (struct lang_hooks): Add new field
2134         decl_uninit.
2135         * langhooks.c (lhd_decl_uninit): Define.
2136         * c-common.c (c_decl_uninit_1): New function.
2137         (c_decl_uninit): New function.
2138         (warn_init_self): Define.
2139         * c-common.h (c_decl_uninit): Declare.
2140         (warn_init_self): Declare.
2141         * c.opt: Introduce -Winit-self.
2142         * c-opts.c (c_common_handle_options): Set warn_init_self.
2143         * c-lang.c (LANG_HOOKS_DECL_UNINIT): Define.
2144         * objc/objc-lang.c  (LANG_HOOKS_DECL_UNINIT): Define.
2145         * function.c (uninitialized_vars_warning): Call the language hook.
2146         * doc/invoke.texi: Document -Winit-self.
2147
2148 2003-08-19  Chris Demetriou  <cgd@broadcom.com>
2149
2150         * config/mips/mips.md: Adjust SI-mode "trap_if" instruction
2151         to use better predicates and constraints.  Define new
2152         instruction to handle "trap_if" with DI-mode arguments.
2153         (conditional_trap): FAIL if trap code is not 0.
2154
2155 2003-08-19  Andrew Pinski  <pinskia@physics.uc.edu>
2156
2157         * config/i386/i386.c (legitimate_pic_address_disp_p): Change the
2158         strstr with $pb to a strcompare with "<pic base>"
2159         (ix86_output_addr_diff_elt): Output the real pic base.
2160
2161 2003-08-19  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2162
2163         * langhooks-def.h (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Fix spelling.
2164         (LANG_HOOKS_INITIALIZER): Correct.
2165         * c-lang.c: Likewise.
2166
2167 2003-08-19  Jan Hubicka  <jh@suse.cz>
2168
2169         * cgraph.c (cgraph_mark_needed_node): Call notice_global_symbol.
2170         (cgraph_varpool_mark_needed_node): Likewise.
2171         * cgraph.h (notice_global_symbol): Declare
2172         * varasm.c (notice_global_symbol): Break out from ...
2173         (assemble_start_function): ... here; update for variables.
2174         (assemble_variable): Use notice_global_symbol.
2175
2176 2003-08-19  Richard Sandiford  <rsandifo@redhat.com>
2177
2178         * config/mips/mips.c (mips_va_arg): If EABI_FLOAT_VARARGS_P,
2179         expect SFmode and DFmode arguments to be passed in FPRs,
2180         regardless of the underlying type.
2181
2182 2003-08-19  Richard Sandiford  <rsandifo@redhat.com>
2183
2184         PR target/11924
2185         * config/mips/mips.c (INTERNAL_SYMBOL_P): New macro.
2186         (mips_classify_symbol, m16_usym8_4, m16_usym5_4): Use it.
2187
2188 2003-08-18  Matt Kraai  <kraai@alumni.cmu.edu>
2189
2190         PR c/11207
2191         * c-typeck.c (set_init_index): Check for negative index.
2192
2193 2003-08-18  Bob Wilson  <bob.wilson@acm.org>
2194
2195         * config/xtensa/crti.asm (_init, _fini): Add alternate code for new
2196         call0 ABI.
2197         * config/xtensa/crtn.asm (_init, _fini): Likewise.
2198         * config/xtensa/lib1funcs.asm (__mulsi3, __udivsi3, __divsi3,
2199         __umodsi3, __modsi3): Likewise.
2200         * config/xtensa/t-xtensa (crti.o, crtn.o): Add $(GCC_CFLAGS) and
2201         $(INCLUDES).
2202
2203 2003-08-18  Aldy Hernandez  <aldyh@redhat.com>
2204
2205         * config/rs6000/spe.md ("*nabssf2_gpr"): New.
2206
2207 2003-08-18  Richard Sandiford  <rsandifo@redhat.com>
2208
2209         * config/mips/mips.md: Quote C code in braces.  Remove use of
2210         fake const0_rtx operands.  Remove double backslashes.  Use \;.
2211         Remove workarounds for bogus warnings.
2212
2213 2003-08-18  Richard Sandiford  <rsandifo@redhat.com>
2214
2215         * config/mips/mips.md (muldf3, mulsf3): Don't call a gen_* function.
2216         (muldf3_internal, muldf3_r4300): Select based on TARGET_4300_MUL_FIX
2217         rather than TARGET_MIPS4300.
2218         (mulsf3_internal, mulsf3_r4300): Likewise.
2219
2220 2003-08-18  Richard Sandiford  <rsandifo@redhat.com>
2221
2222         * config/mips/mips.md: Renumber unspecs.  Clean up comments.
2223
2224 2003-08-17  Roger Sayle  <roger@eyesopen.com>
2225
2226         * simplify-rtx.c (associative_constant_p): New function to test
2227         whether an RTX expression is an immediate constant.
2228         (simplify_associative_operation): New function to perform some
2229         reassociation optimizations of associative binary expressions.
2230         (simplify_binary_operation): Use simplify_associative_operation
2231         to simplify PLUS, MULT, AND, IOR, XOR, SMIN, SMAX, UMIN and UMAX.
2232         Floating point expressions are only reassociated when unsafe
2233         math optimizations are permitted.
2234
2235 2003-08-17  Andreas Jaeger  <aj@suse.de>
2236
2237         * config/alpha/alpha.md: Remove usage of PARAMS.
2238
2239         * config/i386/cygwin.h: Convert K&R prototypes to ISO C90.
2240         * config/i386/i386-interix.h: Likewise.
2241         * config/i386/winnt.c: Likewise.
2242         * config/i386/cygming.h: Likewise.
2243         * config/i386/cygwin2.c: Likewise.
2244         * config/darwin.c: Likewise.
2245         * config/darwin-c.c: Likewise.
2246         * config/darwin-protos.h: Likewise.
2247         * config/darwin.h: Likewise.
2248         * config/s390/s390-protos.h: Likewise.
2249         * config/s390/s390.c: Likewise.
2250         * config/ia64/ia64.c: Likewse
2251         * config/ia64/ia64-protos.h: Likewise.
2252         * config/ia64/ia64-c.c: Likewise.
2253
2254 2003-08-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2255
2256         * config/sparc/sparc.c: Convert to ISO C.
2257
2258         * config/sparc/sparc-protos.h: Don't use the PARAMS macro.
2259         * config/sparc/sparc.c: Likewise.
2260
2261 2003-08-16  Nathan Sidwell  <nathan@codesourcery.com>
2262
2263         PR c++/11512
2264         * stmt.c (expand_expr_stmt_value): Don't warn about any void
2265         typed expression.
2266
2267 2003-08-16  Jan Hubicka  <jh@suse.cz>
2268
2269         * i386.c (ix86_fntype_regparm): Rename from ...
2270         (ix86_function_regparm): ... this one; add fastcall and local
2271         functions.
2272         (ix86_function_ok_for_sibcall): Update.
2273         (ix86_return_pops_args): Likewise.
2274         (init_cumulative_args): Likewise.
2275         (x86_can_output_mi_thunk): Likewise.
2276         (function_arg): Fix formating.
2277         (x86_this_parameter): Fix fastcall.
2278         (x86_output_mi_thunk): Likewise.
2279
2280         * cgraph.c (cgraph_mark_needed_node): Do not mark functions without
2281         body as reachable; mark nested functions as needed too.
2282         (dump_cgraph): Do not output global.calls.
2283         * cgraph.h (cgraph_global_info): Kill.
2284         * cgraphunit.c (cgraph_finalize_function): Enqueue needed functions.
2285         (record_call_1): Speedup.
2286         (cgraph_analyze_function): Break out from ...; compute inlining
2287         parameters.
2288         (cgraph_finalize_compilation_unit): ... here.
2289         (cgraph_mark_inline): Kill computation of calls.
2290         (cgraph_decide_inlining): Do not compute most of initial values.
2291
2292 2003-08-14  Roger Sayle  <roger@eyesopen.com>
2293
2294         * fold-const.c (negate_expr_p): MULT_EXPRs and RDIV_EXPRs are easy
2295         to negate if either operand is easy to negate, if we don't care
2296         about sign-dependent rounding.
2297         (negate_expr): Make the logic to negate a REAL_CST explicit.
2298         Attempt to negate a MULT_EXPR or RDIV_EXPR by negating an operand
2299         that's easy to negate, if we don't honor sign-dependent rounding.
2300         (fold <MULT_EXPR>): Optimize -A * B as A * -B if B is easy to
2301         negate, and the symmetric A * -B as -A * B if A is easy to negate.
2302         (fold <RDIV_EXPR>): Likewise, optimize -A/B and C/-D as A/-B and
2303         -C/D if B and C are cheap to negate.  Add an explicit rule to
2304         optimize X/-1.0 as -X when we don't care about signaling NaNs.
2305
2306 2003-08-14  Zack Weinberg  <zack@codesourcery.com>
2307
2308         * Makefile.in (tm_file): Rename tm_include_list.
2309         (tm_p_file): Rename tm_p_include_list.
2310         (build_xm_file): Rename build_xm_include_list.
2311         (host_xm_file): Rename host_xm_include_list.
2312         (xm_file): Rename xm_include_list.
2313         (xm_file_list): Add to be substituted.
2314         (cs-config.h, cs-bconfig.h, cs-tconfig.h, cs-tm.h, cs-tm_p.h):
2315         Update to match.
2316         (bt-load.o): Add missing dependency on $(TM_H).
2317         * configure.in: Prefix value of EXTRA_MODES_FILE with config/.
2318         For each of tm_file, tm_p_file, xm_file, host_xm_file, and
2319         build_xm_file, generate both *_file_list and *_include_list
2320         values from it.  (xm_file_list was formerly not being generated.)
2321         In *_include_list, prefix the names of all headers found in
2322         $(srcdir)/config with config/.  In each loop, consider only
2323         the special case files that can actually appear in that list.
2324         AC_SUBST all *_file_list and all *_include_list variables; do
2325         not AC_SUBST the plain *_file variables.
2326         * configure: Regenerate.
2327
2328 2003-08-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2329
2330         * cfg.c (dump_edge_info): Add name of loop_exit edge flag.
2331
2332 2003-08-14  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2333
2334         * pa.c (pa_adjust_insn_length): Delete adjustment for delay slot in
2335         direct calls.
2336         (attr_length_call): Include it here.  Improve length estimate for
2337         local calls.
2338         (output_call): Use targetm.binds_local_p.
2339
2340 2003-08-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2341
2342         * builtins.c (CASE_MATHFN): New helper macro.
2343         (mathfn_built_in): Simplify and sort.
2344
2345         * protoize.c (substr): Delete, callers changed to `strstr'.
2346
2347 2003-08-13  Zack Weinberg  <zack@codesourcery.com>
2348
2349         * config.gcc (iq2000*-*-elf*): Don't set xm_file.
2350         * config/iq2000/xm-iq2000.h: Delete file.
2351
2352 2003-08-13  Geoffrey Keating  <geoffk@apple.com>
2353
2354         * gengtype.c (walk_type): Process a subobject before processing
2355         the pointer that points to the subobject.
2356
2357 2003-08-13  Per Bothner  <pbothner@apple.com>
2358
2359         * regclass.c (init_reg_modes):  Make non-static.
2360         Rename to init_reg_modes_once per new naming convention.
2361         (init_regs):  Don't call init_reg_modes here.
2362         * emit-rtl.c (init_emit_once):  Call init_reg_modes_once here instead.
2363         * rtl.h (init_reg_modes_once):  New declaration.
2364         * toplev.c (backend_init):  Call init_regs after init_emit_once.
2365
2366 2003-08-13  Kaz Kojima  <kkojima@gcc.gnu.org>
2367
2368         * config/sh/linux.h (DBX_REGISTER_NUMBER): Define so to map a
2369         special index for MD_FALLBACK_FRAME_STATE_FOR to itself.
2370
2371 2003-08-13  J"orn Rennecke <joern.rennecke@superh.com>
2372
2373         * sh.c (sh_get_pr_initial_val): Always wrap in unspec for TARGET_SH1.
2374         * sh.md (load_ra): Change insn predicate to TARGET_SH1.
2375
2376 2003-08-13  Dale Johannesen  <dalej@apple.com>
2377
2378         * config/rs6000/rs6000.md (ctrsi, ctrdi):  Reenable
2379         handling of decrement-and-branch farther than 32 bits.
2380
2381 2003-08-12  Kelley Cook  <kelleycook@wideopenwest.com>
2382
2383         * configure.in (make_compare_target): Move test to ...
2384         * aclocal.m4 (gcc_AC_PROG_CMP_IGNORE_INITIAL): here.
2385         * configure: Regenerate.
2386
2387 2003-08-12  Richard Sandiford  <rsandifo@redhat.com>
2388
2389         * config/mips/iris6.h: Convert to C90 prototypes.
2390         * config/mips/irix6-libc-compat.c: Likewise.
2391         * config/mips/mips-protos.h: Likewise.
2392         * config/mips/mips.c: Likewise.
2393
2394 2003-08-12  Nathanael Nerode  <neroden@gcc.gnu.org>
2395
2396         fixinc/inclhack.def (svr4_krnl): Rename from svr4_kernel.  Enable
2397         for selected machines.  Comment heavily.
2398         fixinc/fixincl.x: Rebuild.
2399         fixinc/tests/base/fs/rfs/rf_cache.h: New file.
2400
2401 2003-08-12  Richard Sandiford  <rsandifo@redhat.com>
2402
2403         * config/mips/mips.h: Tweak various comments.
2404         * config/mips/mips.c: Likewise.
2405
2406 2003-08-11  James E Wilson  <wilson@tuliptree.org>
2407
2408         PR optimization/11319
2409         PR target/10021
2410         * alias.c (find_base_value, case REG): Return 0 not src if no base
2411         found.
2412
2413 2003-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2414
2415         * gcse.c (gmalloc): Fix last change.
2416
2417 2003-08-11  Roger Sayle  <roger@eyesopen.com>
2418
2419         * simplify-rtx.c (simplify_binary_operation): Replace calls to
2420         gen_rtx_NEG and gen_rtx_NOT with calls to simplify_gen_unary,
2421         and calls to gen_rtx_PLUS, gen_rtx_MULT, gen_rtx_LSHIFTRT,
2422         gen_rtx_ASHIFT and gen_rtx_AND with calls to simplify_gen_binary.
2423
2424 2003-08-11  Roger Sayle  <roger@eyesopen.com>
2425
2426         * expr.c (expand_expr): If an ABS_EXPR has a complex type, abort.
2427         * c-typeck.c (build_unary_op): COMPLEX_TYPE is not a valid
2428         typecode for an ABS_EXPR.
2429
2430         * doc/c-tree.texi: Document ABS_EXPR.
2431
2432 2003-08-11  Roger Sayle  <roger@eyesopen.com>
2433
2434         * fold-const.c (fold): Optimize any associative floating point
2435         operator with -funsafe-math-optimizations, not just MULT_EXPR.
2436
2437 2003-08-11  Kaz Kojima  <kkojima@gcc.gnu.org>
2438
2439         * config/sh/lib1funcs.asm (__udivdi3): Add .type and .size
2440         information in SHmedia case too.
2441         (__divdi3, __umoddi3, __moddi3, __init_trampoline, __ic_invalidate):
2442         Likewise.
2443         (__set_fpscr): Use an access via GOT for PIC case.
2444
2445 2003-08-11  Kelley Cook  <kelleycook@wideopenwest.com>
2446
2447         * configure.in (intermodule): Make switch test more portable.
2448         * configure: Regenerate.
2449
2450 2003-08-11  Kelley Cook  <kelleycook@wideopenwest.com>
2451
2452         * Makefile.in (cleanstrap): Pass BOOT_CFLAGS to bootstrap.
2453         (restrap): Likewise.
2454
2455 2003-08-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2456
2457         * gcse.c (gmalloc): Argument is a size_t.  Add ATTRIBUTE_MALLOC.
2458         (grealloc): Size argument is a size_t.
2459         (gcalloc): New function.  Use throughout in lieu of
2460         gmalloc/memset.
2461
2462         * config/avr/avr.c (avr_init_once): Use xcalloc in lieu of
2463         xmalloc/memset.
2464         * config/ia64/ia64.c (ia64_reorg): Likewise.
2465         * conflict.c (conflict_graph_new): Likewise.
2466         * fixinc/fixincl.c (run_compiles): Likewise.
2467         * genattrtab.c (optimize_attrs): Likewise.
2468         * genrecog.c (new_decision): Likewise.
2469         * haifa-sched.c (schedule_block): Likewise.
2470         * hashtable.c (ht_create): Likewise.
2471
2472 2003-08-11  Bob Wilson  <bob.wilson@acm.org>
2473
2474         * config/xtensa/lib2funcs.S: Fix whitespace.
2475         * config/xtensa/xtensa.md (all insns and expanders): Use brace block
2476         syntax where appropriate.  Remove unnecessary backslash escapes.
2477         Reformat comments and fix some code formatting.
2478         (extendqisi2): Rearrange conditional.
2479         (*btrue, *bfalse, *ubtrue, *ubfalse, *bittrue, *bitfalse, *masktrue,
2480         *maskfalse, movsicc_internal0, movsfcc_internal0): Call abort instead
2481         of fatal_insn.
2482
2483 2003-08-11  Richard Sandiford  <rsandifo@redhat.com>
2484
2485         * config/mips/mips.c: Various formatting fixes.
2486         (override_options): Resync -mtune handling with gas.
2487         (mips_issue_rate): Rearrange like mips_use_dfa_pipeline_interface.
2488         * config/mips/mips.h: More formatting fixes.
2489         (mips_abi): Move declaration.
2490         * config/mips/mips.md (exception_receiver): Add mode to
2491         unspec_volatile.
2492
2493 2003-08-11  Aldy Hernandez  <aldyh@redhat.com>
2494
2495         * config/rs6000/rs6000.c (spe_init_builtins): Handle evsplati and
2496         evsplatfi here.
2497         (bdesc_1arg): Remove evsplati and evsplatfi.
2498
2499 2003-08-11  J"orn Rennecke <joern.rennecke@superh.com>
2500
2501         * dwarf2asm.c (dw2_output_indirect_constant_1): Take user_label_prefix
2502         into account.
2503
2504 2003-08-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2505
2506         * builtins.c (expand_builtin_strcat): Optimize constant strings.
2507
2508 2003-08-10  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2509
2510         * pretty-print.c (pp_base_indent): Rename from pp_indent.
2511         * c-pretty-print.h (pp_c_pretty_print_flag)s: New datatype.
2512         (struct c_pretty_print_info): Add more fields.
2513         (pp_c_left_paren): Move to c-pretty-print.c.
2514         (pp_c_right_paren): Likewise.
2515         (pp_c_left_brace): Likewise.
2516         (pp_c_right_brace): Likewise.
2517         (pp_c_left_bracket): Likewise.
2518         (pp_c_right_bracket): Likewise.
2519         (pp_c_declarator): Declare.
2520         (pp_c_direct_declarator): Likewise.
2521         (pp_c_specifier_qualifier_list): Likewise.
2522         (pp_c_type_id): Likewise.
2523         * c-pretty-print.c (pp_c_cv_qualifier): Change prootype. Rework..
2524         (pp_c_type_qualifier_list): New.
2525         (pp_c_pointer): Likewise.
2526         (pp_c_parameter_type_list): Likewise.
2527         (pp_c_function_definition): Likewise.
2528         (pp_c_id_expression): Likewise.
2529         (pp_c_simple_type_specifier): Tidy.
2530         (pp_c_unary_expression): Likewise.
2531         (pp_c_expression): Likewise.
2532         (pp_c_pretty_printer_init): Likewise.
2533         (pp_c_specifier_qualifier_list): Rework..
2534         (pp_c_abstract_declarator): Likewise.
2535         (pp_c_postfix_expression): Likewise.
2536         (pp_c_primary_expression): Likewise.
2537         (pp_c_cast_expression): Likewise.
2538         (pp_c_direct_abstract_declarator): Likewise.
2539         (pp_c_storage_class_specifier): Likewise.
2540         (pp_c_function_specifier): Likewise.
2541         (pp_c_declaration_specifiers): Likewise.
2542         (pp_c_direct_declarator): Likewise.
2543         (pp_c_declarator): Likewise.
2544         (pp_c_declaration): Likewise.
2545         (pp_c_statement): Likewise.
2546         (pp_c_integer_constant): Rename from pp_c_integer_literal.
2547         (pp_c_character_constant): Rename from pp_c_character_literal.
2548         (pp_c_bool_constant): Rename from pp_c_bool_literal.
2549         (pp_c_enumeration_constant): Rename from pp_c_enumerator.
2550         (pp_c_floating_constant): Rename from pp_c_real_literal.
2551         (pp_c_constant): Rename from pp_c_literal.
2552         * c-lang.c: Include diagnostic.h and c-pretty-print.h
2553         (LANG_HOOKS_INITIALIZE_DIAGNOSTITCS): Define.
2554         (c_initialize_diagnostics): New.
2555         * Makefile.in (c-lang.o): Update dependency.
2556
2557 2003-08-10  Nathan Sidwell  <nathan@codesourcery.com>
2558
2559         * c-typeck.c (digest_init): Add conversion for VECTOR_TYPEs.
2560
2561 2003-08-10  Richard Sandiford  <rsandifo@redhat.com>
2562
2563         * config/mips/mips.c (mips_no_mips16_string): Remove.
2564         (override_options): Don't handle -mips16 as part of -mipsN.
2565         * config/mips/mips.h (mips_no_mips16_string): Remove declaration.
2566         (TARGET_SWITCHES): Add -mips16 and -mno-mips16 entries.
2567         (TARGET_OPTIONS): Remove -mno-mips16.
2568
2569 2003-08-10  Richard Sandiford  <rsandifo@redhat.com>
2570
2571         * config/mips/mips-protos.h (coprocessor_operand): Remove declaration.
2572         (coprocessor2_operand): Likewise.
2573         * config/mips/mips.c (STAB_CODE_TYPE): Remove.
2574         (lookup_name): Remove declaration.
2575         (abort_with_insn): Remove.  Replace all uses with fatal_insn.
2576         (mips16, mips_abicalls): Remove.
2577         (mips_char_to_class): Remove initialiser: all entries are NO_REGS.
2578         (arith32_operand, large_int, true_reg_or_0_operand): Remove.
2579         (coprocessor_operand, coprocessor2_operand): Remove.
2580         (override_options): Don't set mips16 or mips_abicalls.
2581         (print_operand): Don't expect SIGN_EXTEND operands.
2582         (mips_secondary_reload_class): Likewise.
2583         (mips_output_conditional_branch): Remove disabled long-branch code.
2584         * config/mips/mips.h (call_used_regs): Remove declaration.
2585         (may_call_alloca): Likewise.
2586         (mips_cpu_attr, mips_abicalls_type, mips_abicalls_attr): Remove.
2587         (mips_abicalls, mips16): Remove declarations.
2588         (ASM_FINAL_SPEC, LIB_SPEC): Remove.
2589         (CC1_SPEC): Remove outdated comment.
2590         (MIPS_VERSION, MACHINE_TYPE): Remove.
2591         (TARGET_VERSION_INTERNAL, TARGET_VERSION): Remove.
2592         (PC_REGNUM, STACK_POINTER_OFFSET): Remove disabled definitions.
2593         (STRUCT_VALUE_RETURN_REGNUM, STACK_DYNAMIC_OFFSET): Likewise.
2594         (PUSH_ROUNDING): Likewise.
2595         (ASSEMBLER_SCRATCH_REGNUM): Remove.
2596         * config/mips/mips.md: Replace mips_cpu_attr with mips_tune
2597         and mips16 with TARGET_MIPS16.
2598
2599 2003-08-09  Per Bothner  <pbothner@apple.com>
2600
2601         * cppinit.c (cpp_read_main_file):  Split out source-independent
2602         initialization to separate function ...
2603         (cpp_post_options):  New function.
2604         * cppfiles.c (cpp_stack_file):  Rename public name to ...
2605         (_cpp_stack_file):  New internal function name.
2606         * cpplib.h:  Update accordingly.
2607         * cppinit.c:  (cpp_create_reader):  Initialize cpp_readers line here.
2608         (cpp_read_main_file):  Don't initialize line here.
2609         * c-opts.c (c_common_post_options):  Call cpp_post_options.
2610         (c_common_parse_file):  Call cpp_read_main_file, not cpp_stack_file.
2611         * fix-header.c (read_scan_file):  Call cpp_post_options.
2612
2613 2003-08-09  Per Bothner  <per@bothner.com>
2614
2615         * c-decl.c (SCOPE_LIST_APPEND):  Remove bogus line continuation.
2616
2617 2003-08-09  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2618
2619         * pa.c (pa_asm_output_mi_thunk): Fix typo.
2620
2621 2003-08-09  Neil Booth  <neil@daikokuya.co.uk>
2622
2623         PR preprocessor/11839
2624         * cppfiles.c (open_file): Handle ENOTDIR.
2625
2626 2003-08-09  Richard Sandiford  <rsandifo@redhat.com>
2627
2628         PR target/11699
2629         * config/mips/mips.c (override_options): Reject -mabi=eabi -mabicalls.
2630
2631 2003-08-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2632
2633         * pa.md (extzv, extv, insv): Fix operand limit checks.  Fail if
2634         source/destination is not a register operand.
2635
2636 2003-08-08  Richard Henderson  <rth@redhat.com>
2637
2638         PR target/11535
2639         * config/ia64/ia64.c (ia64_initial_elimination_offset): Remove
2640         RETURN_ADDRESS_POINTER_REGNUM.
2641         (ia64_expand_prologue): Don't frob it.
2642         (ia64_output_function_epilogue): Likewise.
2643         (ia64_return_addr_rtx): New.
2644         (ia64_split_return_addr_rtx): New.
2645         * config/ia64/ia64-protos.h: Update.
2646         * config/ia64/ia64.h (FIRST_PSEUDO_REGISTER): Decrement.
2647         (RETURN_ADDRESS_POINTER_REGNUM): Remove.
2648         (GENERAL_REGNO_P): Don't check it.
2649         (AR_*_REGNUM): Renumber.
2650         (FIXED_REGISTERS): Remove RETURN_ADDRESS_POINTER_REGNUM.
2651         (CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): Likewise.
2652         (REG_ALLOC_ORDER, REG_CLASS_CONTENTS): Likewise.
2653         (ELIMINABLE_REGS, REGISTER_NAMES): Likewise.
2654         (RETURN_ADDR_RTX): Use ia64_return_addr_rtx.
2655         * config/ia64/ia64.md (UNSPEC_RET_ADDR): New.
2656         (movdi_ret_addr): New.
2657
2658 2003-08-08  Geoffrey Keating  <geoffk@apple.com>
2659
2660         * config.gcc (powerpc-*-darwin*): Don't build a soft-float multilib.
2661
2662 2003-08-08  Roger Sayle  <roger@eyesopen.com>
2663
2664         * tree.h (get_identifier) Define a macro form of get_identifier
2665         that calls get_identifier_with_length when the string is constant.
2666         (get_identifier_with_length): Change type of second argument to
2667         size_t in prototype.
2668         * stringpool.c (get_identifier): Undefine the macro before giving
2669         the function definition.
2670         (get_identifier_with_length): Change  type of second argument to
2671         size_t in function definition.
2672         * hashtable.c (calc_hash): Change type of second argument to size_t.
2673         (ht_lookup): Change type of third argument to size_t.  Reorganize
2674         to speed-up the cases where the hash table slot is empty, or the
2675         first probe matches (i.e. there isn't a collision).
2676         * hashtable.h (ht_lookup): Adjust function prototype.
2677
2678 2003-08-08  Bernardo Innocenti  <bernie@develer.com>
2679
2680         PR target/9697
2681         PR target/11777
2682         * longlong.h (count_leading_zeros): Exclude on __mcpu32__.
2683
2684 2003-08-08  Neil Booth  <neil@daikokuya.co.uk>
2685
2686         * common.opt: Add debug switches.
2687         * flags.h (use_gnu_debug_info_extensions): Boolify.
2688         * opts.c (write_symbols, debug_info_level,
2689         use_gnu_debug_info_extensions): Move from toplev.c.
2690         (set_debug_level): New.
2691         (common_handle_options): Handle debug switches.
2692         (print_help): Display target options directly.
2693         * toplev.c (debug_hooks): Don't initialize.
2694         (write_symbols, debug_info_level,
2695         use_gnu_debug_info_extensions): Move to opts.c.
2696         (debug_args, display_help, decode_g_option): Remove.
2697         (process_options): Set no debug if level zero here,
2698         and no-debug-hooks.  Error here if impossible debug format selected.
2699         * toplev.h (display_help, decode_g_option): Remove.
2700
2701 2003-08-08  Richard Sandiford  <rsandifo@redhat.com>
2702
2703         * tree.c (get_file_function_name_long): Fix size of alloca() area.
2704
2705 2003-08-08  Kelley Cook  <kelleycook@wideopenwest.com>
2706
2707         * configure.in (gcc_cv_prog_cmp_skip): Flipflop make_compare_target
2708         and gcc_cv_prog_cmp_skip.
2709         * configure: Regenerate.
2710
2711 2003-08-08  Stan Cox  <scox@redhat.com>
2712
2713         * config/iq2000: New port.
2714         * config.gcc (iq2000-*-elf): Added.
2715         * doc/install.texi (Specific):  Add iq2000 description.
2716
2717 2003-08-08  Andreas Schwab  <schwab@suse.de>
2718
2719         * configure.in (gcc_cv_as_ia64_ltoffx_ldxmov_relocs): Fix quoting
2720         and insert missing empty argument.
2721         * configure: Regenerate.
2722
2723 2003-08-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2724
2725         * pa.c (update_total_code_bytes): Use new macro IN_NAMED_SECTION_P.
2726         (attr_length_millicode_call): Likewise.
2727         (attr_length_call): Likewise.  Revise some maximum insn lengths.
2728         (attr_length_indirect_call): Likewise.
2729         (output_call): Fix thinko that added extra nop.
2730         * pa.h (IN_NAMED_SECTION_P): Define.
2731
2732         PR c++/11712
2733         * pa-hpux.h, pa-hpux10.h, pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define
2734         __STDC_EXT__ when using C++ dialect.
2735
2736 2003-08-07  J"orn Rennecke <joern.rennecke@superh.com>
2737
2738         * sh.c (calc_live_regs): If the return address pointer is live,
2739         force pr live.
2740         (sh5_schedule_saves): Exclude PR_MEDIA_REG from being a temp register
2741         for saves / restores.
2742         (sh_expand_epilogue): If sh_media_register_for_return returns a
2743         register number, flag the instructions that restores PR_MEDIA_REG
2744         as possibly dead.
2745         Remove dead update of offset.
2746         (sh_get_pr_initial_val): Use UNSPEC_RA if we don't know yet if
2747         we can use the result of get_hard_reg_initial_val.
2748         * sh.md (UNSPEC_RA): New constant.
2749         (movsi_i_lowpart+1): Changed into a define_insn_and_split, named:
2750         (load_ra).  Handle UNSPEC_RA.
2751         (sibcall_media): Use PR_MEDIA_REG.
2752
2753         * sh.h (CALL_USED_REGISTERS): Include PR_REG and PR_MEDIA_REG.
2754         * sh.c (calc_live_regs): Use sh_pr_n_sets to determine if pr
2755         needs saving on SHmedia.
2756
2757 2003-08-07  Ulrich Weigand  <uweigand@de.ibm.com>
2758
2759         * config/s390/s390.md: Replace all occurrences of \\t with \t.
2760
2761 2003-08-07  Richard Sandiford  <rsandifo@redhat.com>
2762
2763         * local-alloc.c (combine_regs): Fix comment typo.
2764
2765 2003-08-06  Zack Weinberg  <zack@codesourcery.com>
2766
2767         * c-decl.c (builtin_decls): Replace with first_builtin_decl
2768         and last_builtin_decl.
2769         (c_init_decl_processing): Initialize both.
2770         (c_reset_state): Iterate from first_builtin_decl to
2771         last_builtin_decl inclusive to reintroduce builtins.
2772
2773 2003-08-06  David Mosberger  <davidm@hpl.hp.com>
2774
2775         * doc/extend.texi (Function Attributes): Document the IA-64 version
2776         of the "model" attribute.
2777
2778         * config/ia64/ia64.h (SYMBOL_FLAG_SMALL_ADDR): New macro.
2779         (SYMBOL_REF_SMALL_ADDR_P): Ditto.
2780         (PREDICATE_CODES): Mention "small_addr_symbolic_operand".
2781
2782         * config/ia64/ia64.c (ia64_handle_model_attribute): New function.
2783         (ia64_encode_section_info): Likewise.
2784         (ia64_attribute_table): Add "model" attribute.
2785         (TARGET_ENCODE_SECTION_INFO): Define.
2786         (small_addr_symbolic_operand): New function.
2787         (got_symbolic_operand): Return 0 for a symbolref to an object
2788         in the small address area.
2789         (enum ia64_addr_area): New type.
2790         (small_ident1): New variable.
2791         (small_ident2): Likewise.
2792         (init_idents): New function.
2793         (ia64_get_addr_area): Likewise.
2794         (ia64_encode_addr_area): Likewise.
2795         (ia64_encode_section_info): Likewise.
2796         (ia64_expand_load_address): For symbolic references to objects in
2797         the small-address-area, load the address via gen_rtx_SET() (which,
2798         eventually, will expand into "addl").
2799
2800 2003-08-06  Per Bothner  <pbothner@apple.com>
2801
2802         * line-map.h (fileline):  New typedef.
2803         (struct line_map, linemap_add, linemap_lookup):  Use it.
2804         * input.h (struct location_s):  Comment notes that long-term we want
2805         to replace it by fileline.
2806
2807 2003-08-06  J"orn Rennecke <joern.rennecke@superh.com>
2808
2809         Fix SHcompact exception handling:
2810         * sh.c (sh_get_pr_initial_val): If PR is or miight be clobbered
2811         by the prologue, return a MEM with return_address_pointer_rtx
2812         as address.
2813         * sh.h (HARD_REGNO_MODE_OK): PR is OK for SImode.
2814         (RETURN_ADDR_OFFSET): Don't define.
2815         (SH_DBX_REGISTER_NUMBER): Use SHmedia numbers for SHmedia
2816         registers that are visible in compact mode.  Show that SHmedia
2817         registers still exist in compact mode, even if there are not
2818         readily accessible.
2819         (ASM_PREFERRED_EH_DATA_FORMAT): Supply DW_EH_PE_indirect
2820         if GLOBAL.  Use DW_EH_PE_textrel (nominally) for CODE,
2821         and DW_EH_PE_pcrel for pic data.
2822         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): If DW_EH_PE_textrel,
2823         set SYMBOL_FLAG_FUNCTION in symbol, and actually use
2824         DW_EH_PE_pcrel / DW_EH_PE_absptr encoding.
2825         (ALLOCATE_INITIAL_VALUE): Put PR on stack if prologue clobbers it.
2826         * sh.md (movsi_media-1): New splitter.
2827
2828 2003-08-06  Graeme Peterson <gp@qnx.com>
2829
2830         * config/i386/nto.h: New.
2831         * config/i386/t-nto: New.
2832         * config.gcc (i[34567]86-*-nto-qnx*): New.
2833
2834 2003-08-06  Phil Edwards  <pme@gcc.gnu.org>
2835
2836         * doc/install.texi (*-*-solaris2*):  Refine configure instructions.
2837
2838 2003-08-06  Alan Modra  <amodra@bigpond.net.au>
2839
2840         * calls.c (load_register_parameters): Arrange for call_fusage to
2841         report the whole register as used when shifting to the msb.
2842
2843 2003-08-05  Roger Sayle  <roger@eyesopen.com>
2844
2845         * builtins.c (expand_builtin): When not optimizing, call the library
2846         function for all builtins that have library functions (except alloca).
2847
2848 2003-08-05  Alexandre Oliva  <aoliva@redhat.com>
2849
2850         * c.opt: Introduce -fworking-directory.
2851         * doc/cpp.texi, doc/invoke.texi, doc/cppopts.texi: Document it.
2852         * c-common.h (flag_working_directory): Declare.
2853         * c-common.c (flag_working_directory): Define.
2854         * c-opts.c (c_common_handle_options): Set it.
2855         (sanitize_cpp_opts): Set...
2856         * cpplib.h (struct cpp_options): ... working_directory option.
2857         (struct cpp_callbacks): Add dir_change.
2858         * cppinit.c (read_original_filename): Call...
2859         (read_original_directory): New.  Look for # 1 "directory//"
2860         and process it.
2861         (cpp_read_main_file): Call dir_change callback if working_directory
2862         option is set.
2863         * gcc.c (cpp_unique_options): Pass -g*.
2864         * c-lex.c (cb_dir_change): New.
2865         (init_c_lex): Set dir_change callback.
2866         * toplev.c (src_pwd): New static variable.
2867         (set_src_pwd, get_src_pwd): New functions.
2868         * toplev.h (get_src_pwd, set_src_pwd): Declare.
2869         * dbxout.c (dbxout_init): Call get_src_pwd() instead of getpwd().
2870         * dwarf2out.c (gen_compile_unit_die): Likewise.
2871         * dwarfout.c (output_compile_unit_die, dwarfout_init): Likewise.
2872
2873 2003-08-05  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2874
2875         * pretty-print.h (pp_set_line_maximum_length): Make macro.
2876         (pp_set_prefix): Likewise.
2877         (pp_destroy_prefix): Likewise.
2878         (pp_remaining_character_count_for_line): Likewise.
2879         (pp_clear_output_area): Likewise.
2880         (pp_formatted_text): Likewise.
2881         (pp_last_position_in_text): Likewise.
2882         (pp_emit_prefix): Likewise.
2883         (pp_append_text): Likewise.
2884         (pp_flush): Likewise.
2885         (pp_format_text): Likewise.
2886         (pp_format_verbatim): Likewise.
2887         (pp_tree_identifier): Tidy.
2888         * pretty-print.c (pp_base_format_text): Rename from pp_format_text.
2889         (pp_base_format_verbatim): Rename from pp_format_verbatim.
2890         (pp_base_flush): Rename from pp_flush.
2891         (pp_base_set_line_maximum_length): Rename from
2892         pp_set_line_maximum_length.
2893         (pp_base_clear_output_area): Rename from pp_clear_output_area.
2894         (pp_base_set_prefix): Rename from pp_set_prefix.
2895         (pp_base_destroy_prefix): Rename from pp_destroy_prefix.
2896         (pp_base_emit_prefix): Rename from pp_emit_prefix.
2897         (pp_base_append_text): Rename from pp_append_text.
2898         (pp_base_formatted_text): Rename from pp_formatted_text.
2899         (pp_base_last_position_in_text): Rename from pp_last_position_in_text.
2900         (pp_base_remaining_character_count_for_line): Rename from
2901         pp_remaining_character_count_for_line.
2902         * diagnostic.h (diagnostic_format_decoder): Tidy.
2903         (diagnostic_flush_buffer): Likewise.
2904         * c-pretty-print.h: (pp_c_string_literal): Declare.
2905         (pp_c_real_literal): Likewise.
2906         (pp_c_integer_literal): Likewise.
2907         * c-pretty-print.c (pp_c_char): Use pp_string in lieu of
2908         pp_identifier.
2909         (pp_c_character_literal): Tidy.
2910         (pp_c_string_literal): Make public.
2911         (pp_c_bool_literal): Likewise.
2912         (pp_c_integer_literal): Likewise.
2913         (pp_c_real_literal): Likewise.
2914
2915         * Makefile.in (C_PRETTY_PRINT_H): New variable.
2916         (c-pretty-print.o): Update dependence.
2917
2918 2003-08-05  Chris Demetriou  <cgd@broadcom.com>
2919
2920         * config/mips/mips.md (fix_truncdfsi2_macro): Properly restore
2921         ".set nomacro" state.
2922         (fix_truncsfsi2_macro): Likewise.
2923
2924 2003-08-05  Steven Bosscher  <steven@gcc.gnu.org>
2925
2926         * tree.h (DID_INLINE_FUNC): Remove macro.
2927         (DECL_DECLARED_INLINE_P): Move from c-tree.h and cp/cp-tree.h,
2928         add tree check for FUNCTION_DECL.
2929         (DECL_ESTIMATED_INSNS): Move from c-common.h and java/java-tree.h.
2930         (struct tree_decl): Rename inlined_function_flag to
2931         declared_inline_flag.
2932         * c-common.h (c_lang_decl): Remove.
2933         (DECL_ESTIMATED_INSNS): Remove.
2934         * c-tree.h (struct lang_decl): Don't include c_lang_decl.
2935         (DECL_DECLARED_INLINE_P): Remove.
2936         * c-decl.c (grokdeclarator): Update comment.  With -finline-functions,
2937         do not reset DECL_DECLARED_INLINE_P.  Don't use DID_INLINE_FUNC.
2938         (finish_function): Make uninlinable a bool.  Fixup call to
2939         tree_inlinable_function_p() and fix some code style issues.
2940         * cgraph.h (disgread_inline_limits): Fix spelling: `disregard'.
2941         * cgraph.c (dump_cgraph): Likewise.
2942         * cgraphunit.c (cgraph_decide_inlining): Likewise
2943         (cgraph_finalize_compilation_unit): Likewise.
2944         Also update call to tree_inlinable_function_p().
2945         (cgraph_default_inline_p): Don't use DID_INLINE_FUNC.  Instead
2946         look at DECL_DECLARED_INLINE and reverse logic.
2947         * print-tree.c (print_node): Likewise.
2948         * toplev.c (rest_of_handle_inlining): Don't use DID_INLINE_FUNC.
2949         * tree-inline.h (tree_inlinable_function_p): Make a bool.  Update
2950         prototype.
2951         * tree-inline.c (inlinable_function_p): Split up in this function to
2952         check for basic inlining inhibiting conditions, and new
2953         limits_allow_inlining() function.  Warn if inlining is impossible
2954         because the inline candidate calls alloca or uses sjlj exceptions.
2955         (limits_allow_inlining): this new function to check if the inlining
2956         limits are satisfied.  Throttle from currfn_max_inline_insns, not from
2957         MAX_INLINE_INSNS_SINGLE.  The latter only makes sense if
2958         MAX_INLINE_INSNS_AUTO and MAX_INLINE_INSNS_SINGLE are equal.
2959         Update prototypes.
2960         (tree_inlinable_function_p): Make a bool.  Update call to
2961         inlinable_function_p
2962         (expand_call_inline): Use limits_allow_inlining() when not in
2963         unit-at-a-time mode to decide on inlining.  Don't use DID_INLINE_FUNC,
2964         instead see if the function was declared `inline'.
2965
2966 2003-08-05  Josef Zlomek  <zlomekj@suse.cz>
2967
2968         * gcse.c (try_replace_reg): Fix updating of note.
2969
2970 2003-08-04  Roger Sayle  <roger@eyesopen.com>
2971
2972         PR middle-end/11771
2973         * fold-const.c (negate_expr_p <MINUS_EXPR>): Change to match the
2974         logic in negate_expr, i.e. we don't invert (A-B) for floating
2975         point types unless flag_unsafe_math_optimizations.
2976
2977 2003-08-04  Roger Sayle  <roger@eyesopen.com>
2978
2979         * fold-const.c (fold <PLUS_EXPR>): Transform x+x into x*2.0.
2980         Optimize x*c+x and x+x*c into x*(c+1) and x*c1+x*c2 into x*(c1+c2)
2981         for floating point expressions with -ffast-math.
2982         (fold <MULT_EXPR>): Don't transform x*2.0 into x+x.
2983         * expmed.c (expand_mult): Wrap long line.  Expand x*2.0 as x+x.
2984
2985 2003-08-04  Roger Sayle  <roger@eyesopen.com>
2986
2987         * c-common.c (flag_noniso_default_format_attributes): Delete.
2988         (built_in_attribute): Don't define/undefine DEF_FN_ATTR.
2989         (c_attrs_initialized): Delete.
2990         (c_common_nodes_and_builtins): Don't test c_attrs_initialized,
2991         always call c_init_attributes.
2992         (c_init_attributes): Don't define/undefine DEF_FN_ATTR.  Don't
2993         set c_attrs_initialized when done.
2994         (c_common_insert_default_attributes): Delete.
2995         * c-common.h (flag_noniso_default_format_attributes): Delete.
2996         (c_coomon_insert_default_attributes): Delete prototype.
2997         * c-opts.c (set_std_c89, set_std_c99, set_std_cxx98): Dont set
2998         flag_noniso_default_format_attributes.
2999
3000         * c-decl.c (c_insert_default_attributes): Delete.
3001         * c-tree.h (c_insert_default_attributes): Delete prototype.
3002
3003         * attribs.c (decl_attributes): Don't call insert_default_attributes
3004         langhook.  Update function description comment.
3005         * langhooks.h (lang_hooks): Remove insert_default_attributes field.
3006         * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Delete.
3007         * c-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Don't define.
3008         * system.h: Poison LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES macro.
3009
3010         * objc/objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Don't
3011         define.
3012
3013 2003-08-04  Richard Sandiford  <rsandif@redhat.com>
3014
3015         * config/mips/mips.c (override_options): Disable -G on targets that
3016         have no .section support.
3017         (mips_select_section): Use default_select_section for such targets.
3018
3019 2003-08-04  Nathanael Nerode  <neroden@gcc.gnu.org>
3020
3021         * fixinc/inclhack.def (svr4_undeclared_getrnge): Introduce and enable.
3022         * fixinc/inclhack.def (static_getrnge): Remove disabled hack.
3023         * fixinc/fixincl.x: Rebuild.
3024         * fixinc/tests/base/regexp.h: New test.
3025
3026 2003-08-04  Alexandre Oliva  <aoliva@redhat.com>
3027
3028         * c-ppoutput.c (cb_line_change): Don't skip line changing while
3029         parsing macro arguments in the top-level context.
3030
3031 2003-08-04  Neil Booth  <neil@daikokuya.co.uk>
3032
3033         * config.in: Remove HAVE_LSTAT.
3034         * configure, configure.in: Don't test for lstat.
3035
3036 2003-08-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3037
3038         * opts.c (decode_options): Do language-specific initialization for
3039         the global diagnostic context.
3040         * langhooks-def.h (lhd_initialize_diagnostics): Declare.
3041         (LANG_HOOKS_INITIALIZE_DIAGNOSTITCS): New macro.
3042         (LANG_HOOKS_INITIALIZER): Adjust.
3043         * langhooks.h (struct lang_hooks): Add new field
3044         initialize_diagnostics.
3045         * langhooks.c (lhd_initialize_diagnostics): Define.
3046
3047 2003-08-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3048
3049         * pretty-print.h:   Adjust macro definitions.
3050         * pretty-print.c (pp_newline): Rename to pp_base_newline.
3051         (pp_character): Rename to pp_base_character.
3052         (pp_string): Rename to pp_base_string.
3053         * c-pretty-print.c (pp_buffer): Move to pretty-print.h
3054         (pp_newline):  Likewise.  Adjust.
3055         (pp_c_char): Adjust.
3056
3057 2003-08-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3058
3059         * builtins.def (BUILT_IN_ABS, BUILT_IN_IMAXABS, BUILT_IN_LABS,
3060         BUILT_IN_LLABS): Move to miscellaneous section.
3061
3062 2003-08-03  Neil Booth  <neil@daikokuya.co.uk>
3063
3064         PR preprocessor/11534
3065         * cppexp.c (parse_defined): Warn only if -pedantic.
3066
3067 2003-08-03  Neil Booth  <neil@daikokuya.co.uk>
3068
3069         * cppfiles.c (stack_file): Use file path.
3070
3071 2003-08-02  Roger Sayle  <roger@eyesopen.com>
3072
3073         * builtin-types.def (BT_SSIZE): New primitive type.
3074         (BT_FN_INT_PTR_CONST_STRING_VALIST_ARG,
3075         BT_FN_STRING_CONST_STRING_CONST_STRING_INT,
3076         BT_FN_SIZE_STRING_SIZE_CONST_STRING_CONST_PTR,
3077         BT_FN_SSIZE_STRING_SIZE_CONST_STRING_VAR): New function types.
3078         * builtins.def (BUILT_IN_DCGETTEXT, BUILT_IN_DGETTEXT,
3079         BUILT_IN_FSCANF, BUILT_IN_GETTEXT, BUILT_IN_STRFMON,
3080         BUILT_IN_STRFTIME, BUILT_IN_VFPRINTF, BUILT_IN_VFSCANF): New builtins.
3081         * builtin-attrs.def: Remove DEF_FN_ATTR construct and the last
3082         few functions that define default attributes using it.
3083         * c-common.c (c_common_insert_default_attributes): Do nothing.
3084
3085         * doc/extend.texi: Document these "new" builtins.
3086
3087 2003-08-02  Kaz Kojima  <kkojima@gcc.gnu.org>
3088
3089         * config/sh/linux.h (SUBTARGET_LINK_SPEC): Don't set rpath.
3090         (LIB_SPEC): Set -lpthread always when -pthread set.  Set -lieee
3091         when -mieee-fp set and -shared not set.
3092         (SH_FALLBACK_FRAME_FLOAT_STATE): Don't define for SH5.
3093
3094 2003-08-02  Neil Booth  <neil@daikokuya.co.uk>
3095
3096         * cppfiles.c (struct _cpp_file): Rename once_only_next to
3097         next_file.  Remove import and pragma_once, add once_only.
3098         (find_file): Add new file structures to the all_files list.
3099         (should_stack_file): Mark #import-ed files once-only, and
3100         don't stack them if the file has already been stacked.
3101         (_cp_mark_file_once_only): Simplify.
3102         * cpphash.h (struct cpp_reader): Rename once_only_files
3103         to all_files.  Rename saw_pragma_once to seen_once_only.
3104         (_cpp_mark_file_once_only): Update prototype.
3105         * cpplib.c (do_pragma_once): Update.
3106
3107 2003-08-02  Neil Booth  <neil@daikokuya.co.uk>
3108
3109         * cppfiles.c (ENOTDIR): Remove.
3110         (open_file_in_dir): Rename find_file_in_dir.  Handle errors
3111         other than ENOENT here.
3112         (once_only_file_p): Rename should_stack_file.
3113         (find_file, open_file_failed, read_file_guts): Report errors
3114         with full path name.
3115         (read_file): Move pch handling to should_stack_file.
3116         (should_stack_file): Handle PCH and once-only issues, and
3117         reading the file.
3118         (stack_file): Don't do file reads.
3119
3120 2003-08-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3121
3122         * libgcov.c (gcov_exit): Cleanup and fix.
3123         * profile.c (compute_value_histograms): Don't try to read profiles
3124         that are not present.
3125
3126 2003-08-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3127
3128         * builtins.def: Categorize.
3129
3130         * builtins.def (BUILT_IN_CABS, BUILT_IN_CABSF, BUILT_IN_CABSL):
3131         Mind fp rounding.
3132         (BUILT_IN_FFSL): Use DEF_EXT_LIB_BUILTIN.
3133
3134 2003-08-02  Andreas Tobler  <a.tobler@schweiz.ch>
3135
3136         * config.gcc: Enable posix threads by default on darwin.
3137
3138 2003-08-01  Jakub Jelinek  <jakub@redhat.com>
3139
3140         * cfgcleanup.c (outgoing_edges_match): Check REG_EH_REGION notes
3141         even if nehedges1 is 0.
3142
3143 2003-08-01  Nathanael Nerode  <neroden@gcc.gnu.org>
3144
3145         * fixinc/fixfixes.c, fixinc/fixlib.c, fixinc/fixlib.h,
3146         fixinc/fixtests.c, fixinc/procopen.c, fixinc/server.c,
3147         fixinc/server.h, fixinc/fixincl.c: ANSIfy function prototypes
3148         and defintions.
3149
3150         * fixinc/inclhack.def (broken_cabs): Make matching more generous.
3151         * fixinc/fixincl.x: Regenerate.
3152         * fixinc/tests/base/math.h: Regenerate to match test_text change.
3153
3154 2003-08-01  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3155
3156         * ggc-common.c (gt_pch_restore): Case MAP_FAILED to void *.
3157
3158 2003-08-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3159
3160         * except.c (sjlj_emit_dispatch_table): Use ptr_mode, not Pmode,
3161         for accesses to exc_ptr.
3162
3163 2003-08-01  Geoffrey Keating  <geoffk@apple.com>
3164
3165         * doc/sourcebuild.texi (Front End Directory): Don't make references
3166         to libsubdir, it's not part of the interface to frontends.
3167         * doc/install.texi (Configuration): Help users read faster by saying
3168         that GCC's configure options are the standard autoconf ones.
3169         Mention --libdir.  Update the default rules for finding the
3170         assembler.  Don't use libsubdir since we haven't said what it means.
3171         (Specific): In the Solaris 7 notes, update the place to put the
3172         assembler.
3173         * doc/invoke.texi: Update lib/gcc-lib to lib/gcc.
3174         * doc/cpp.texi (Search Path): Actually, the search path
3175         depends on libdir, which can relocate with cpp.
3176         * doc/tm.texi (Driver): Don't document STANDARD_EXEC_PREFIX, it's
3177         now a private interface between the Makefile and the driver.
3178
3179 2003-08-01  Richard Henderson  <rth@redhat.com>
3180
3181         * system.h: Poison ASM_SIMPLIFY_DWARF_ADDR.
3182
3183         * varasm.c (lookup_constant_def): New function.
3184         * rtl.h (lookup_constant_def): Declare it.
3185         * dwarf2out.c (loc_descriptor_from_tree): Use it.
3186         Use targetm.delegitimize_address, not ASM_SIMPLIFY_DWARF_ADDR.
3187
3188 2003-08-01  Zack Weinberg  <zack@codesourcery.com>
3189
3190         * c-decl.c (gettags, pushdecl_function_level): Delete.
3191         (last_function_parm_vars): Rename last_function_parm_others.
3192         (current_function_parm_vars): Rename current_function_parm_others.
3193         (struct c_scope): Rewrite comment explaining this data structure.
3194         Add names_last, blocks_last, parms_last fields.  Rename
3195         incomplete_list to incomplete.
3196         (SCOPE_LIST_APPEND, SCOPE_LIST_CONCAT): New macros.
3197         (poplevel): Ignore second argument.  No need to nreverse
3198         anything.  Restructure such that each list is processed
3199         exactly once.  Use 'const location_t *locus' syntactic sugar
3200         variable where useful.  Issue unused variable warnings
3201         ourselves, do not rely on function.c.
3202         (insert_block, pushdecl, bind_label): Use SCOPE_LIST_APPEND.
3203         (pushdecl_top_level): Likewise.  Don't call duplicate_decls.
3204         (implicitly_declare): decl cannot be error_mark_node.
3205         (undeclared_variable): Manipulate scope structure directly.
3206         (c_make_fname_decl): Likewise.
3207         (getdecls, c_init_decl_processing): Fix comment.
3208         (mark_forward_parm_decls): Use SCOPE_LIST_CONCAT.  No need
3209         for 'last' variable.
3210         (grokparms): No need to nreverse parms list.
3211         (store_parm_decls_newstyle): Set up the parms_last and
3212         names_last fields of the new scope too.
3213         (store_parm_decls_oldstyle): Can assume DECL_WEAK is not set
3214         on parms to begin with; check this under ENABLE_CHECKING.  Set
3215         up parms_last.
3216         (check_for_loop_decls): Refer directly to current_scope->tags.
3217         Use consistent quote style in diagnostics.
3218         (c_write_global_declarations): The names list is not backward.
3219
3220         * c-common.h: Don't prototype gettags.
3221         * c-parse.in: Call poplevel with second argument 0 always.
3222
3223 2003-08-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3224
3225         * builtins.def: Resort builtins.
3226
3227 2003-08-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3228
3229         * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN,
3230         DEF_EXT_LIB_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN):
3231         Prepend "__builtin_" onto NAME with string concatenation.  Remove
3232         explicit "__builtin_" from each macro call.
3233
3234         Reformat entire file.
3235
3236 2003-08-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3237
3238         * builtins.def (ATTR_MATHFN_ERRNO, ATTR_MATHFN_FPROUNDING,
3239         ATTR_MATHFN_FPROUNDING_ERRNO): New macros.  Use throughout.
3240
3241 2003-08-01  Andreas Krebbel  <krebbel1@de.ibm.com>
3242
3243         * config/s390/s390.c (s390_select_ccmode): Do not attempt to use CCL,
3244         CCL1, or CCL2 modes with floating point operations.
3245
3246         * config/s390/s390.md ("*addsf3_cc", "*addsf3_cconly", "*adddf3_cc",
3247         "*adddf3_cconly", "*subsf3_cc", "*subsf3_cconly", "*subdf3_cc",
3248         "*subdf3_cconly"): New insns.
3249         ("*negabssi2", "*negabsdi2", "*negabsdf2", "*negabssf2"): Likewise.
3250
3251 2003-08-01  Neil Booth  <neil@daikokuya.co.uk>
3252
3253         * Makefile.in: Refine dependencies.
3254         * c-opts.c (c_common_handle_option): Do nothing for -Wimport.
3255         * c.opt: Update help for -Wimport.
3256         * cppfiles.c: Include hashtab.h.  Update comments.
3257         (stack_file): Read the file before updating dependencies.
3258         (once_only_file_p): Be smarter about marking once-only files.
3259         (_cpp_mark_file_once_only): Correct the check for existence on
3260         the list.
3261         (open_file_failed): Use name not path, which is NULL.
3262         * cpphash.h: Don't include hashtab.h.
3263         (struct _cpp_file): Remove.
3264         (struct cpp_reader): Update.
3265         * cppinit.c (cpp_create_reader): Don't initialize warn_import.
3266         * cpplib.h (struct cpp_options): Remove warn_import.
3267         (cpp_simplify_path): Remove.
3268
3269 2003-08-01  Nathan Sidwell  <nathan@codesourcery.com>
3270
3271         PR c++/11295
3272         * doc/extend.texi (Statement Expressions): Document C++ semantics.
3273
3274 2003-07-31  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
3275
3276         * config.gcc (sh-*-linux*): Do not override sh/t-linux with sh/t-le.
3277
3278 2003-07-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3279
3280         * builtin-types.def: Use `LONGDOUBLE' instead of `LONG_DOUBLE'
3281         throughout.
3282         * builtins.def: Likewise.
3283
3284 2003-07-31  Jason Merrill  <jason@redhat.com>
3285
3286         * Makefile.in (bubblestrap): Don't require a previous full
3287         bootstrap.
3288
3289         * expr.c (mostly_zeros_p): No longer static.
3290         * tree.h: Declare it.
3291         * stmt.c (resolve_asm_operand_names): Don't copy the pattern
3292         unless we need to do substitutions.
3293
3294 2003-07-31  Roger Sayle  <roger@eyesopen.com>
3295
3296         * fold-const.c (fold <MULT_EXPR>): Optimize both x*pow(x,c) and
3297         pow(x,c)*x as pow(x,c+1) for constant values c.  Optimize x*x
3298         as pow(x,2.0) when the latter will be expanded back into x*x.
3299         (fold <RDIV_EXPR>): Optimize pow(x,c)/x as pow(x,c-1).
3300         * builtins.c (expand_builtin_pow): Ignore flag_errno_math as
3301         pow can never set errno when used with an integer exponent.
3302         Always use expand_powi when exponent is -1, 0, 1 or 2.
3303         (fold_builtin): Don't rewrite pow(x,2.0) as x*x nor pow(x,-2.0)
3304         as 1.0/(x*x).  This avoids unbounded recursion as we now prefer
3305         the pow forms of these expressions.
3306
3307 2003-07-31  Geoffrey Keating  <geoffk@apple.com>
3308
3309         * Makefile.in (libexecdir): New.
3310         (libsubdir): Use gcc instead of gcc-lib.
3311         (libexecsubdir): New.
3312         (ORDINARY_FLAGS_TO_PASS): Add libexecsubdir.
3313         (DRIVER_DEFINES): Add STANDARD_LIBEXEC_PREFIX, use gcc instead of
3314         gcc-lib.
3315         (installdirs): Make libexecsubdir.
3316         (install-common): Put executables in libexecsubdir.
3317         (itoolsdir): Use libexecsubdir.
3318         (itoolsdatadir): New.
3319         (install-mkheaders): Separate data files and executables.
3320         (install-collect2): Put executables in libexecsubdir.
3321         (uninstall): Remove libexecsubdir.
3322         * mkheaders.in: Update for new arrangement of files.
3323         (libexecdir): New.
3324         (libexecsubdir): New.
3325         (itoolsdir): Use libexecsubdir.
3326         (itoolsdatadir): New.
3327         * gcc.c (gcc_libexec_prefix): New.
3328         (STANDARD_LIBEXEC_PREFIX): Use gcc instead of gcc-lib.
3329         (standard_exec_prefix_1): Use libexec.
3330         (standard_exec_prefix_2): New.
3331         (standard_libexec_prefix): New.
3332         (process_command): Update for new arrangement of files.  Compute
3333         gcc_libexec_prefix.  Update for change from gcc-lib to gcc.
3334
3335 2003-07-31  Nathanael Nerode  <neroden@gcc.gnu.org>
3336
3337         * inclhack.def (stdio_va_list): Avoid bogus replacement which
3338         triggers on Interix.
3339         * fixincl.x: Regenerate.
3340
3341 2003-07-31  Jakub Jelinek  <jakub@redhat.com>
3342
3343         * config/i386/i386.c (legitimate_pic_address_disp_p): Disallow TLS
3344         SYMBOL_REFs not inside UNSPEC even in PLUS rtx.
3345
3346 2003-07-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3347
3348         * dwarf2out.c (loc_descriptor_from_tree, case CONSTRUCTOR): New case.
3349
3350 2003-07-31  Per Bothner  <pbothner@apple.com>
3351
3352         * opts.c (in_fnames, num_in_fnames):  Moved here from c-opts.
3353         (add_input_filename):  New function.
3354         (handle_options):  Call add_input_filename directly instead of
3355         with a lang hook.
3356         * opts.h (in_fnames, num_in_fnames):  Moved here.
3357         (add_input_filename):  Declare.
3358         * c-decl.c:  Need to #include opts.h.
3359         * Makefile.in (c-decl.o):  Also depends on opts.h.
3360         * c-opts.c (in_fnames, num_in_fnames):  Moved to opts.c.
3361         (c_common_handle_filename):  Replaced by add_input_filename.
3362         * c-common.h (in_fnames, num_in_fnames, c_common_handle_filename):
3363         Remove.
3364         * langhooks.h (struct lang_hooks):  Remove handle_filename hook.
3365         * langhooks-def.h (LANG_HOOKS_HANDLE_FILENAME):  Remove macro.
3366         (LANG_HOOKS_INITIALIZER):  Remove use of LANG_HOOKS_HANDLE_FILENAME.
3367         * c-lang.c (LANG_HOOKS_HANDLE_FILENAME):  Remove macro.
3368
3369 2003-07-31  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3370
3371         * combine.c (try_combine): Set JUMP_LABEL for newly created
3372         unconditional jump.
3373
3374 2003-07-31  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3375
3376         * fold-const.c (fold): Fold some comparisons of bit operations.
3377
3378 Thu Jul 31 19:49:53 CEST 2003  Jan Hubicka  <jh@suse.cz>
3379
3380         * cgraph.c (create_edge): Fix typo.
3381         * i386.c (pic_symbolic_operand): Reorder tests.
3382
3383 2003-07-31  Nathan Sidwell  <nathan@codesourcery.com>
3384
3385         * doc/gcov.texi (Invoking Gcov): Describe output name mangling
3386         more fully.
3387         (Gcov Data Files): Update.
3388
3389 2003-07-31  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3390
3391         * config.gcc (alpha*-dec-osf[45]*): Enable POSIX thread support by
3392         default.
3393
3394         * gthr-posix.c: New file.
3395         * gthr-posix.h: Define _REENTRANT if missing.
3396         Make _LIBOBJC #pragma weak visible with _LIBOBJC_WEAK.
3397
3398         * config/alpha/t-osf4 (SHLIB_LINK): Hide dummy functions provided
3399         by gthr-posix.o.
3400         * config/alpha/t-osf-pthread: New file.
3401
3402         * fixinc/inclhack.def (alpha_pthread): New fix.
3403         * fixinc/fixincl.x: Regenerate.
3404         * fixinc/tests/base/pthread.h [ALPHA_PTHREAD_CHECK]: New testcase.
3405
3406         * doc/install.texi (alpha*-dec-osf*): Remove --enable-threads
3407         warning.
3408         Fixes PR bootstrap/9330.
3409
3410 2003-07-31  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3411
3412         * configure.in (gcc_cv_ld_hidden): Also disable on mips-sgi-irix5*
3413         without GNU ld.
3414         Update comment.
3415         * configure: Regenerate.
3416
3417 2003-07-31  Vladimir Makarov  <vmakarov@redhat.com>
3418
3419         * sched-deps.c (sched_analyze_2): Prevent interblock move of CC0
3420         setter.
3421
3422 2003-07-30  Roger Sayle  <roger@eyesopen.com>
3423
3424         * builtins.def: Alphabetize.
3425
3426 2003-07-30  Matt Kraa