OSDN Git Service

* Makefile.in, configure.in, config.host, mkheaders.in: Replace
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2003-10-13  Nathanael Nerode  <neroden@gcc.gnu.org>
2
3         * Makefile.in, configure.in, config.host, mkheaders.in: Replace
4         uses of ${target_alias} for directory names (and other places which
5         won't like the empty string) with ${target_noncanonical}.  Introduce
6         call early in configure.in to _GCC_TOPLEV_NONCANONICAL_TARGET so it's
7         available.
8         * configure: Regenerate.
9
10 2003-10-13  Ian Lance Taylor  <ian@wasabisystems.com>
11
12         * config/arm/iwmmxt.md (cond_iwmmxt_movsi_insn): New pattern.
13         * config/arm/arm.md: For splits which rely on conditional moves,
14         remove ! TARGET_IWMMXT condition.
15
16 2003-10-13  David S. Miller  <davem@redhat.com>
17
18         * ifcvt.c (num_removed_blocks): Rename to num_true_changes.
19         (find_cond_trap): Always increment if we emit a conditional
20         trap insn.
21
22 2003-10-13  Zack Weinberg  <zack@codesourcery.com>
23
24         * Makefile.in (BUILD_RTL): Replace $(BUILD_PREFIX)insn-modes.o
25         with min-insn-modes.o.
26         (STAGESTUFF): Add min-insn-modes.c.
27         (genobjs): Add genmodes.o.
28         (print-rtl.o, print-rtl1.o): Depend on $(TM_P_H).
29         (insn-modes.o): Depend on $(TM_H) not $(GTM_H); also real.h.
30         (min-insn-modes.c, min-insn-modes.o): New rules.
31         (s-modes): Also generate min-insn-modes.c.
32         ($(BUILD_PREFIX_1)insn-modes.o): Kill.
33         * genmodes.c (struct mode_data): Add format field.
34         (blank_mode, validate_mode, complete_mode): Update to match.
35         (make_scalar_mode): Separate into make_int_mode and make_float_mode.
36         (_SCALAR_MODE): Kill.
37         (FLOAT_MODE, FRACTIONAL_FLOAT_MODE): Add format argument.
38         (emit_insn_modes_c_header): Adjust.
39         (emit_min_insn_modes_c_header, emit_real_format_for_mode)
40         (emit_min_insn_modes_c): New functions.
41         (emit_insn_modes_c): Call emit_real_format_for_mode.
42         (main): Add -m option to generate min-insn-modes.c.
43         * machmode.h: Update documentation.  Add format argument to
44         all uses of FLOAT_MODE.
45         * real.c: Don't define real_format_for_mode here.
46
47         * dwarfout.c: Move default definition of PRINT_REG...
48         * defaults.h: ...here.
49         * print-rtl.c: Include tm_p.h.
50         (DEBUG_PRINT_REG, DEBUG_REGISTER_NAMES, debug_reg_names, reg_names):
51         Kill.
52         (print_rtx): Use PRINT_REG, not DEBUG_PRINT_REG.  But surround
53         this entire block with #ifndef GENERATOR_FILE.
54         * regclass.c: Unconditionally define reg_names.
55         * config/mips/mips.h, config/rs6000/rs6000.h, config/sh/sh.h
56         Don't define DEBUG_REGISTER_NAMES.
57         * config/rs6000/darwin.h: Don't use DEBUG_REGISTER_NAMES in
58         redefinition of REGISTER_NAMES.
59         * config/i386/i386.h: Don't define DEBUG_PRINT_REG.
60
61         * combine.c: Change all preprocessor conditionals on
62         EXTRA_CC_MODES to use SELECT_CC_MODE instead; rearrange a bit
63         for clarity.
64         * genopinit.c: Remove mention of EXTRA_CC_MODES in comment.
65         * configure.in: Don't define EXTRA_CC_MODES.
66         * configure, config.in: Regenerate.
67         * doc/tm.texi: Remove documentation of EXTRA_CC_MODES.
68
69         * config/arc/arc.c, config/m32r/m32r.c, config/sparc/sparc.c:
70         May assume that GET_MODE_CLASS is accurate for extra CC modes
71         at all times.
72
73         * config/i860/i860.h (INIT_CUMULATIVE_ARGS): Pass correct
74         number of arguments to aggregate_value_p.
75
76         * genmodes.c (RESET_FLOAT_FORMAT, reset_float_format): New.
77         * machmode.def: Explain ARCH-modes.def.  Document
78         RESET_FLOAT_FORMAT.  Improve commentary on various mode
79         clusters.  Do not define OI, PQI, PHI, PSI, PDI, QF, HF, TQF,
80         XF, or TF modes here.  Remove backward-compatibility
81         definition of CC.
82
83         * config/alpha/alpha-modes.def: New file; define TF mode.
84         * config/arc/arm-modes.def: Define XF mode.
85         * config/c4x/c4x-modes.def: Define QF and HF modes.  Unset
86         float format for SF and DF modes.
87         * config/dsp16xx/dsp16xx-modes.def: New file; define HF mode.
88         * config/i386/i386-modes.def: Define XF and TF modes.
89         * config/i960/i960-modes.def: Define TF mode.
90         * config/ia64/ia64-modes.def: Define TF and OI modes.
91         * config/m68k/m68k-modes.def: New file; define XF mode.
92         * config/mips/mips-modes.def: New file; define TF mode, reset
93         formats for SF and DF modes.
94         * config/pa/pa-modes.def: Define TF mode.
95         * config/rs6000/rs6000.c: Define TF and PSI modes.
96         * config/s390/s390-modes.def: Define OI mode.
97         * config/sh/sh-modes.def: New file; define PSI mode.
98         * config/sparc/sparc-modes.def: Define TF mode.
99         * config/vax/vax-modes.def: New file; reset formats for SF and
100         DF modes.
101
102         * config/c4x/c4x.c (c4x_override_options): No need to mess
103         with real_format_for_mode or set REAL_MODE_FORMATs.
104         (c4x_immed_int_constant): Don't apply GET_MODE_CLASS to rtx
105         variable.
106         * config/i386/i386.c (override_options): No need to set
107         REAL_MODE_FORMATs here.
108         * config/i960/i960.c (i960_initialize): Likewise.
109         * config/m68k/m68k.c (m68k_override_options): Likewise.
110         * config/ia64/ia64.c (ia64_override_options): Set REAL_MODE_FORMAT
111         for TFmode only if not the default.
112         * config/mips/mips.c (override_options): Likewise.
113         * config/vax/vax.c (override_optionms): Set REAL_MODE_FORMAT for
114         DFmode only if not the default.
115
116         * config/i370/i370.h (RET_REG): Don't consider TFmode.
117         * config/m68hc11/m68hc11.c (print_operand): Don't consider XFmode.
118         * config/dsp16xx/dsp16xx.c (hard_regno_mode_ok): #if 0 out use
119         of modes that don't appear anywhere in the machine description.
120
121         * config/arc/arc-modes.def, config/arm/arm-modes.def
122         * config/c4x/c4x-modes.def, config/frv/frv-modes.def
123         * config/i386/i386-modes.def, config/i960/i960-modes.def
124         * config/ia64/ia64-modes.def, config/mmix/mmix-modes.def
125         * config/pa/pa-modes.def, config/pdp11/pdp11-modes.def
126         * config/rs6000/rs6000-modes.def, config/s390/s390-modes.def
127         * config/sparc/sparc-modes.def: Convert to new style for
128         declaring extra CC modes.
129
130 2003-10-13  Zack Weinberg  <zack@codesourcery.com>
131
132         * cpplex.c (_cpp_clean_line): In the common case of a line
133         with no trigraphs and no \-newline, avoid writing to memory.
134         (_cpp_skip_block_comment): Use a local 'cur' pointer instead
135         of the buffer member.  Make c an uchar to avoid unnecessary
136         sign extensions.
137
138 2003-10-13  Nathanael Nerode  <neroden@gcc.gnu.org>
139
140         * configure.in: Remove unnecessary test.
141         * configure: Regenerate.
142
143         * configure.in: Fix grammatical error.  Move UWIN host error to...
144         * config.host: Here.
145         * configure: Regenerate.
146
147 2003-10-13  Andreas Krebbel  <krebbel1@de.ibm.com>
148
149         * config/s390/s390.md ("*fmadddf4", "*fmsubdf4", "*fmaddsf4",
150         "*fmsubsf4"): Insns are now dependent on TARGET_FUSED_MADD instead
151         of flag_unsafe_math_optimizations.
152         * config/s390/s390.h ("MASK_NO_FUSED_MADD", "TARGET_NO_FUSED_MADD",
153         "TARGET_FUSED_MADD", "TARGET_SWITCHES"): Introduced new target flags
154         fused-madd and no-fused-madd.
155         * doc/invoke.texi: Documented the new options fused-madd and
156         no-fused-madd for S/390.
157
158 2003-10-14  Alan Modra  <amodra@bigpond.net.au>
159
160         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Choose
161         MASK_ALIGN_NATURAL if rs6000_alignment_string not given.  Don't
162         assign DEFAULT_ABI.
163         (ADJUST_FIELD_ALIGN, ROUND_TYPE_ALIGN): Update comment.
164         * config/rs6000/rs6000.c: Formatting.
165         (rs6000_parse_alignment_option): Only set rs6000_alignment_flags
166         when rs6000_alignment_string given.
167
168 2003-10-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
169
170         PR target/12538
171         * config/sparc/sparc.c (MUST_SAVE_REGISTER): Delete.
172         (sparc_flat_must_save_register_p): New function to decide whether
173         a register must be saved/restored in the function prologue/epilogue.
174         (sparc_flat_compute_frame_size): Use it instead of MUST_SAVE_REGISTER.
175
176 2003-10-12  Steven Bosscher  <steven@gcc.gnu.org>
177
178         * config/avr/avr.c, config/avr/avr-protos.h: Convert to
179         ISO C90 function declarations and definitions.
180         * config/sh/sh.c, config/sh/sh-protos.h: Likewise.
181
182 2003-10-12  Nathanael Nerode  <neroden@gcc.gnu.org>
183
184         * config.gcc (*-*-freebsd*): Use tm_defines instead of tiny
185         config files which do the same thing.
186         * config/freebsd3.h, config/freebsd4.h, config/freebsd5.h,
187         config/freebsd6.h: Remove now unnecessary files.
188
189 2003-10-12  Steven Bosscher  <steven@gcc.gnu.org>
190
191         * c-common.c (c_common_truthvalue_conversion): Warn if the
192         address of a non-weak function is used as a truth value.
193
194 2003-10-12  Kazu Hirata  <kazu@cs.umass.edu>
195
196         * config/h8300/h8300.c (WORD_REG_USED): Use SP_REG instead of
197         a literal.
198         * config/h8300/h8300.h (REGNO_OK_FOR_BASE_P): Use MAC_REG
199         instead of a literal.
200
201 2003-10-12  Hans-Peter Nilsson  <hp@bitrange.com>
202
203         * doc/extend.texi (Function Attributes): Mention the exceptional
204         path for noreturn-marked functions.
205
206 2003-10-12  Jan Hubicka  <jh@suse.cz>
207
208         * cgraphunit.c (cgraph_decide_inlining): Fix uninitialized variable
209         warning.
210
211 2003-10-12  Danny Smith  <dannysmith@users.sourceforge.net>
212
213         * config/i386/i386.c (x86_this_parameter): Fix typo.
214
215 2003-10-11  Jan Hubicka  <jh@suse.cz>
216
217         * Makefile.in (web.o): New.
218         * web.c: New file.
219         * rtl.h (web_main): Declare.
220         * timervar.def (TV_WEB): New.
221         * toplev.c (dump_file_index, dump_file_info): Add DFI_web.
222         (rest_of_hanle_web): New.
223         (flag_web): New static variable.
224         (lang_independent_options): Add "web".
225         (rest_of_compilation): Call rest_of_handle_web.
226         * invoke.texi (-fweb): Document.
227         * common.opt (fweb): New.
228         * flags.h (flag_web): New.
229         * opts.c (decode_options): Set flag_web at -O3.
230
231         * passes.texi (web construction):  Document.
232         * invoke.texi (-O3): Document that -fweb is enabled.
233
234         * regrename.c (regrename_optimize): Deal better with situation when
235         replacement failed.
236
237         * sched-ebb.c: Include params.h and profile.h
238         (schedule_ebbs):  Use tracer parameters to discover superblocks
239         * Makefile.in (sched-ebb.o):  Add dependencies.
240
241 2003-10-11  Roger Sayle  <roger@eyesopen.com>
242
243         * fold-const.c (negate_mathfn_p): New function to determine whether
244         a built-in mathematical function is sign preserving, f(-x) == -f(x).
245         Add support for BUILT_IN_ASIN, BUILT_IN_ASINF and BUILT_IN_ASINL.
246         (tree_swap_operands_p): Change API to take an additional argument
247         indicating that the swapped operands evaluate in reverse order.
248         Canonicalize VAR_DECLs and PARM_DECLs last if we can, i.e. neither
249         operand side-effects or we don't care about flag_evaluation_order.
250         (reorder_operands_p): New function to check whether its safe to
251         evaluate the given operands in reverse order.
252         (negate_expr_p):  We can always negate integer constants unless
253         we honor -ftrapv and the signed type would overflow.  Only allow
254         -(A-B) into B-A if reorder_operands_p says that its OK.  Allow
255         negation of COMPLEX_CST if both real and imaginary parts can be
256         negated.  Allow negation through floating point extensions and
257         sign-preserving built-in functions.
258         (negate_expr):  Move the code to negate integers from "fold" to
259         here.  Always negate integer constants unless we honor -ftrapv
260         and the signed type would overflow.  Always negate real constants
261         unless we honor -ftrapping-math.  Only convert -(A-B) into B-A
262         if allowed by reorder_operands_p.  Add support for COMPLEX_CST.
263         Optimize negation through floating point extensions and
264         sign-preserving built-in functions (as defined by negate_mathfn_p).
265         (fold): Adjust calls to tree_swap_operands_p.
266         (fold <NEGATE_EXPR>): Move the remaining negation optimizations
267         to negate_expr_p/negate_expr.
268         (fold <MINUS_EXPR>): Use reorder_operands_p to check whether we're
269         allowed to convert (-A) - B into (-B) - A.
270
271 2003-10-11  Roger Sayle  <roger@eyesopen.com>
272
273         * builtins.c (expand_builtin_strcmp): Defend against the possibility
274         that gen_cmpstrsi may fail: Stabilize the argument list against
275         re-evaluation and expand the library call directly using this saved
276         argument list if a cmpstrsi sequence can't be generated.
277         (expand_builtin_strncmp): Likewise.
278
279         * config/i386/i386.md (cmpstrsi, movstrsi): Disable with -Os.
280
281 2003-10-11  Roger Sayle  <roger@eyesopen.com>
282
283         PR optimization/12260
284         * simplify-rtx.c (simplify_unary_operation): Simplify all unary
285         operations through CONST nodes.  Optimize (neg (plus X C)) as
286         (minus -C X) for constant values C.
287         (simplify_binary_operation): Optimize (minus (neg X) C) as
288         (minus -C X) for constant values C.
289         (simplify_plus_minus): Avoid creating (neg (const (plus X C)),
290         instead create (minus -C X).
291
292 2003-10-11  Roger Sayle  <roger@eyesopen.com>
293
294         * expr.c (expand_expr <PLUS_EXPR>): Let expand_operands call
295         safe_from_p for us, once it chooses an evaluation order.
296         (expand_expr <MULT_EXPR>): Likewise.
297         (expand_expr <MIN_EXPR> <MAX_EXPR>): Likewise.  If expand_operands
298         places the second operand in "target", swap the operands.
299         (do_store_flag): Let expand_operands call safe_from_p for us.
300
301 2003-10-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
302
303         PR optimization/12544
304         * function.c (put_var_into_stack): Don't generate ADDRESSOFs
305         for DECL_NONLOCAL decls.
306
307 2003-10-11  Kazu Hirata  <kazu@cs.umass.edu>
308
309         * expr.c: Follow spelling conventions.
310         * final.c: Likewise.
311         * optabs.c: Likewise.
312         * sched-deps.c: Likewise.
313         * sdbout.c: Likewise.
314
315 Sat Oct 11 12:24:23 CEST 2003  Jan Hubicka  <jh@suse.cz>
316
317         * varasm.c (notice_global_symbol):  Fix handling of variables; avoid
318         re-computing of variable.
319
320 2003-10-11  Richard Henderson  <rth@redhat.com>
321
322         * config/alpha/alpha.c (alpha_return_in_memory): Rename from
323         return_in_memory, make static, change signature to match target hook.
324         (alpha_setup_incoming_varargs): Make static, change signature to
325         match target hook, add code for vms and unicos.
326         (TARGET_PROMOTE_FUNCTION_ARGS, TARGET_PROMOTE_FUNCTION_RETURN,
327         TARGET_PROMOTE_PROTOTYPES, TARGET_STRUCT_VALUE_RTX,
328         TARGET_RETURN_IN_MEMORY, TARGET_SETUP_INCOMING_VARARGS,
329         TARGET_STRICT_ARGUMENT_NAMING,
330         TARGET_PRETEND_OUTGOING_VARARGS_NAMED): New.
331         * config/alpha/alpha-protos.h: Update.
332         * config/alpha/alpha.h (PROMOTE_FUNCTION_ARGS,
333         PROMOTE_FUNCTION_RETURN, RETURN_IN_MEMORY,
334         SETUP_INCOMING_VARARGS): Remove.
335         * config/alpha/unicosmk.h (SETUP_INCOMING_VARARGS): Remove.
336         * config/alpha/vms.h (SETUP_INCOMING_VARARGS): Remove.
337
338 2003-10-11  Ian Lance Taylor  <ian@wasabisystems.com>
339
340         * config/arm/arm.c (arm_regno_class): Handle IWMMXT_GR_REGS.
341
342 2003-10-11  Kazu Hirata  <kazu@cs.umass.edu>
343
344         * config/m68k/lb1sf68.asm: Follow spelling conventions.
345         * config/m68k/m68k.c: Likewise.
346         * config/m68k/m68k.h: Likewise.
347         * config/m68k/m68k.md: Likewise.
348
349 2003-10-11  Roger Sayle  <roger@eyesopen.com>
350
351         * builtins.c (expand_builtin_memcpy): Optimize case when the two
352         pointer arguments are the equal, non-volatile and side-effect free.
353         (expand_builtin_mempcpy): Likewise.
354         (expand_builtin_memmove): Likewise.
355         (expand_builtin_strcpy): Likewise.
356         (expand_builtin_memcmp): Likewise.
357         (expand_builtin_strcmp): Likewise.
358         (expand_builtin_strncmp): Likewise.
359
360 2003-10-11  Roger Sayle  <roger@eyesopen.com>
361
362         * combine.c (apply_distributive_law): Enable "distributive" floating
363         point optimizations with -funsafe-math-optimizations.
364
365 2003-10-11  Andrew Pinski <pinskia@physics.uc.edu>
366
367         * genmodes.c (emit_mode_mask) Change MASK to MODE_MASK.
368
369 2003-10-11  Kazu Hirata  <kazu@cs.umass.edu>
370
371         * config/m68k/m68k-protos.h: Remove the prototype for
372         finalize_pic.
373
374 2003-10-11  Kazu Hirata  <kazu@cs.umass.edu>
375
376         * config/m68k/m68k.c: Fix comment typos.
377
378 2003-10-11  Bernardo Innocenti  <bernie@develer.com>
379
380         * config/m68k/m68k-protos.h (use_return_insn): Change return type from
381         int to bool.
382         * config/m68k/m68k.c (struct m68k_frame): Add funcdef_no member.
383         (current_frame): New global var.
384         (m68k_compute_frame_layout): Cache computations in current_frame.
385         (m68k_initial_elimination_offset): Use values from current_frame
386         instead of recomputing them.
387         (use_return_insn): Likewise.
388         (m68k_output_function_prologue): Likewise.
389         (m68k_output_function_epilogue): Likewise.
390         * config/m68k/m68k.h (TARGET_CPU_CPP_PREDEFINES): Fold __PIC__ handling
391         inside the block for __pic__.
392
393 2003-10-11  Peter Barada <peter@baradas.org>
394             Bernardo Innocenti  <bernie@develer.com>
395
396         * config/m68k/m68k.c (m68k_frame): Move before protos referencing it.
397         (m68k_save_reg): Add boolean parameter `interrupt_handler'.
398         (m68k_interrupt_function_p): New function.
399         (m68k_handle_fndecl_attribute): Ditto.
400         (m68k_compute_frame_layout): Ditto.
401         (m68k_attribute_table): Define back-end specific attributes.
402         (m68k_output_function_epilogue): Emit RTE instruction for interrupt
403         functions.
404
405 2003-10-11  Bernardo Innocenti  <bernie@develer.com>
406
407         * config/m68k/t-uclinux: New target Makefile fragment.
408         * config/m68k/uclinux.h: New target macro file.
409         * config.gcc (m68k-*-uclinux): New target definition.
410
411 2003-10-10  Roger Sayle  <roger@eyesopen.com>
412
413         * builtins.c (builtin_mathfn_code): Generalize to check whether
414         the call is to any built-in function by comparing the call's
415         argument list against the builtin decl's function type.
416
417 2003-10-10  Roger Sayle  <roger@eyesopen.com>
418
419         * cse.c (constant_pool_entries_regcost): New global variable to
420         hold the register cost component of constant_pool_entries_cost.
421         (fold_rtx): Calculate constant_pool_entries_regcost at the same
422         time as constant_pool_entries_cost.
423         (cse_insn): Set both src_folded_cost and src_folded_regcost from
424         constant_pool_entries_cost and constant_pool_entries_regcost.
425         (cse_main): Initialize constant_pool_entries_regcost to zero.
426
427         * optabs.c (expand_unop): Attach a REG_EQUAL note describing
428         the semantics of the sequence of bit operations used to negate
429         a floating-point value.
430         (expand_abs_nojump): Likewise attach a REG_EQUAL note describing
431         the semantics of the bit operations used to abs a floating point
432         value.
433
434 2003-10-11  Bernardo Innocenti  <bernie@develer.com>
435             Paul Dale  <pauli@snapgear.com>
436
437         * config/m68k/lb1sf68.asm: Add __PIC__ and __ID_SHARED_LIBRARY__
438         support.
439         * config/m68k/m68k-none.h (ASM_SPEC): Pass --pcrel to assembler on
440         -fpic, -fPIC, -msep-data and -mid-shared-library.
441         * config/m68k/m68k.c (m68k_library_id_string): New global variable.
442         (override_options): Add -msep-data and -mshared-library-id support.
443         (m68k_output_function_prologue): Generate code to load A5 for
444         TARGET_ID_SHARED_LIBRARY and TARGET_SEP_DATA.
445         (m68k_output_mi_thunk): Emit indirect jump on TARGET_ID_SHARED_LIBRARY.
446         (m68k_output_pic_call): New function.
447         * gcc/config/m68k/m68k.h (TARGET_SEP_DATA): New target flag.
448         (TARGET_ID_SHARED_LIBRARY): Ditto.
449         (TARGET_SWITCHES): Add switches for -mid-shared-library and -msep-data.
450         * gcc/config/m68k/m68k.md (call): Call m68k_output_pic_call().
451         (call_value): Likewise.
452
453 2003-10-10  Zack Weinberg  <zack@codesourcery.com>
454
455         * gengenrtl.c (find_formats, genheader): Make i an unsigned
456         int, remove cast of NUM_RTX_CODE.
457         * machmode.h: Make the HAVE_MACHINE_MODES #ifdef encompass the
458         entire file.  Remove the #ifs on GET_MODE_MASK etc and
459         GET_MODE_WIDER_MODE etc.
460
461 2003-10-10  Eric Christopher  <echristo@redhat.com>
462
463         * lcm.c (optimize_mode_switching): Change NORMAL_MODE
464         to MODE_ENTRY and MODE_EXIT. Add MODE_AFTER for insns
465         that set mode.
466         * config/sh/sh.h (MODE_ENTRY): New macro.
467         (MODE_EXIT): Ditto.
468         (MODE_AFTER): Ditto.
469         * config/sh/sh.md: Change for MODE_AFTER. Add
470         fp_set attribute.
471         * doc/tm.texi: Document MODE_AFTER, MODE_ENTRY, and MODE_EXIT.
472
473 2003-10-10  Zack Weinberg  <zack@codesourcery.com>
474
475         * genmodes.c, mode-classes.def: New files.
476         * machmode.def: Rewritten to genmodes.c interface.
477         * Makefile.in (extra_modes_file): New substitution variable.
478         (MACHMODE_H): No longer includes machmode.def or
479         @extra_modes_file@; instead, mode-classes.def and insn-modes.h.
480         (BUILD_RTL): Add $(BUILD_PREFIX)insn-modes.o.
481         (OBJS-common): Add insn-modes.o.
482         (STAGESTUFF): Add insn-modes.c, insn-modes.h, s-modes, and
483         genmodes$(build_exeext).
484         (insn-modes.o, insn-modes.c, insn-modes.h, s-modes, genmodes.o,
485         genmodes$(build_exeext), $(BUILD_PREFIX_1)insn-modes.o): New targets.
486         (s-genrtl): Don't depend on $(RTL_BASE_H).
487         (gengenrtl.o): Don't depend on coretypes.h, $(GTM_H), real.h,
488         or $(RTL_BASE_H); just rtl.def.
489         * gengenrtl.c: Don't include coretypes.h, tm.h, rtl.h, or
490         real.h.  Give fake definition of CONST_DOUBLE_FORMAT and
491         substitute definition of NUM_RTX_CODE.  Add casts to avoid
492         warnings.
493         * machmode.h: Include insn-modes.h, not machmode.def.  Include
494         mode-classes.def to define enum mode_class.  Tweak definitions
495         of GET_MODE_CLASS, GET_MODE_SIZE, GET_MODE_BITSIZE, GET_MODE_MASK,
496         GET_MODE_INNER, GET_MODE_WIDER_MODE, GET_CLASS_NARROWEST_MODE.
497         (inner_mode_array): Renamed mode_inner.
498         (mode_base_align): New.
499         * rtl.c (mode_name, mode_class, mode_bitsize, mode_size,
500         mode_unit_size, mode_wider_mode, mode_mask_array,
501         inner_mode_array, class_narrowest_mode): Delete definitions.
502         * stor-layout.c (get_mode_alignment): Use mode_base_align.
503         * real.h: Use MIN_MODE_FLOAT and MAX_MODE_FLOAT, not QFmode
504         and TFmode, in real_format_for_mode and REAL_MODE_FORMAT.
505
506         * config/ip2k/ip2k.h, config/iq2000/iq2000.h:
507         No need to define BITS_PER_UNIT.
508
509 2003-10-10  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
510
511         * config/ia64/ia64.c (ia64_vms_init_libfuncs): New function.
512         (ia64_output_function_prologue): Only write .prologue if --with-gnu-as.
513         (ia64_initialize_trampoline): If not using GAS, declare trampoline
514         as global.
515         * config/ia64/ia64.h (ASM_APP_ON, ASM_APP_OFF): Add vers for not GAS.
516         (ASM_OUTPUT_DEBUG_LABEL): Likewise.
517
518         * stor-layout.c (compute_record_mode): Don't force BLKmode if
519         field is zero-length BLKmode.
520         * expr.c (expand_expr, case COMPONENT_REF): Handle case of BLKmode
521         zero-size references.
522
523         * combine.c (distribute_links): Properly test for REG being set.
524
525         * config/alpha/alpha.c (alpha_expand_block_mode): Don't use
526         gen_lowpart and company except for REG.
527
528 2003-10-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
529
530         * pa64-hpux.h (LINK_SPEC): Use `-z' option with HP ld.
531
532 2003-10-10  Nathanael Nerode  <neroden@gcc.gnu.org>
533
534         * config.gcc (mips*-*-netbsd*): Remove content-free line.
535
536 2003-10-10  Herman A.J. ten Brugge <hermantenbrugge@home.nl>
537
538         * gcov-io.h: Check BITS_PER_UNIT when defining gcov_unsigned_t,
539         gcov_position_t and gcov_type.
540
541 2003-10-09  Kaz Kojima  <kkojima@gcc.gnu.org>
542
543         * configure.in (HAVE_AS_TLS): Add sh-*-* and sh[34]*-*-* cases.
544         * configure: Regenerate.
545
546 2003-10-09  Kazu Hirata  <kazu@cs.umass.edu>
547
548         * config/h8300/h8300.md (define_asm_attributes): Specify
549         the length of an asm insn more precisely.
550
551 2003-10-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
552
553         * config/mips/iris6.h (SUBTARGET_CPP_SPEC): Define.
554
555 2003-10-09  Bob Wilson  <bob.wilson@acm.org>
556
557         * config/xtensa/xtensa.c (xtensa_dbx_register_number): Change first
558         FP register number to 48 and MAC16 accumulator to 0x210.
559
560 2003-10-09  Nathanael Nerode  <neroden@gcc.gnu.org>
561
562         * config.gcc: Remove redundant thread_file setting clauses for
563         various *-*-linux* targets.
564
565 2003-10-09  Kazu Hirata  <kazu@cs.umass.edu>
566
567         * config/h8300/h8300.md (define_asm_attributes): New.
568
569 2003-10-09  Roger Sayle  <roger@eyesopen.com>
570
571         * optabs.c (prepare_float_lib_cmp): Always attach a REG_EQUAL note
572         to the comparison, as emit_libcall_block calls copy_rtx on equiv.
573
574 2003-10-09  Dorit Naishlos  <dorit@il.ibm.com>
575
576         * haifa-sched.c (ok_for_early_schedule): New function.
577         (early_queue_to_ready): New function.
578         (schedule_block): Allow early removal of insns from Q.
579         (schedule_insn): Update INSN_TICK in case of premature
580         issue.
581         * common.opt (sched_stalled_insns): New flag.
582         (sched_stalled_insns_dep): New flag.
583         * flags.h: Same above flags.
584         * opts.c: Same as above.
585         * toplev.c: Same as above.
586         * target.h (targetm.sched.is_costly_dependence): New
587         hook.
588         * target-def.h: Same as above.
589         * config/rs6000/rs6000.h: (rs6000_sched_costly_dep):
590         Support new flag -msched-costly-dep.
591         (DEFAULT_SCHED_COSTLY_DEP): Define.
592         * config/rs6000/rs6000.c:
593         (rs6000_is_costly_dependence): New function.
594         (is_load_insn, is_store_insn): New functions.
595         (is_load_insn1, is_store_insn1, is_mem_ref): New
596         functions.
597         * doc/invoke.texi (-fsched-stalled-insns-dep)
598         (-fsched-stalled-insns, -msched-costly-dep): Document
599         options.
600         * doc/tm.texi (is_costly_dependence): Define new
601         scheduler target hook.
602
603 2003-10-09  Jason Merrill  <jason@redhat.com>
604
605         PR c++/6392
606         * c-common.c (c_build_qualified_type): Look through arrays first.
607         (c_apply_type_quals_to_decl): Look through arrays.
608
609         * c-common.c (c_apply_type_quals_to_decl): Unset TREE_READONLY for
610         types with constructors.
611
612         * coverage.c (build_ctr_info_value): Use build_decl to make a
613         VAR_DECL.
614         (create_coverage): Likewise.
615
616         * stmt.c (resolve_asm_operand_names): Call check_unique_operand_names
617         here.
618         (expand_asm_operands): Not here.
619         (parse_input_constraint): No longer static.
620         * tree.h: Declare it.
621
622 2003-10-08  Kaz Kojima  <kkojima@gcc.gnu.org>
623
624         * config/sh/t-linux (SHLIB_LINK): Override to use a linker script
625         libgcc_s.so.
626         (SHLIB_INSTALL): Likewise.
627
628 2003-10-08  Nathanael Nerode  <neroden@gcc.gnu.org>
629
630         * doc/install.texi: Remove reference to removed 'pthreads' thread
631         option.
632
633 2003-10-08  Aldy Hernandez  <aldyh@redhat.com>
634
635         * config/rs6000/rs6000.md ("abssi2_isel"): Add early clobber to
636         operand 2.
637
638 2003-10-08  Nathanael Nerode  <neroden@gcc.gnu.org>
639
640         * config.gcc: Don't accept --enable-threads=pthreads.  Clean
641         up related case statements.
642         * configure.in: Don't accept --enable-threads=pthreads,
643         decosf1, mach, or os2 (none of which work anyway).  Alphabetize
644         supported thread files in case clause.
645         * configure: Regenerate.
646
647 2003-10-08  Geoffrey Keating  <geoffk@apple.com>
648
649         * function.c (pad_to_arg_alignment): Move 'boundary_in_bytes'
650         definition to above SPARC_STACK_BOUNDARY_HACK.
651
652 2003-10-08  Jason Merrill  <jason@redhat.com>
653
654         * c-pretty-print.c (pp_c_postfix_expression)
655         <COMPOUND_LITERAL_EXPR>: Fix thinko.
656
657 2003-10-08  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
658
659         * mklibgcc.in: Don't hide undefined or typeless symbols.
660
661 2003-10-08  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
662
663         PR optimization/12142
664         * cse.c (count_reg_usage): In a SET with a REG SET_DEST, count the
665         uses of the register in the SET_SRC.  Remove unnecessary argument.
666         * pa.c (legitimize_pic_address): Before reload, use a scratch register
667         for the intermediate result in loading the address of a SYMBOL_REF.
668         Set the MEM_NOTRAP_P flag for the MEM.  Add a REG_EQUAL to the insn
669         which loads the SYMBOL_REF address.
670
671 2003-10-08  Timo Kokkonen  <tjko@iki.fi>
672             Eric Botcazou  <ebotcazou@libertysurf.fr>
673
674         PR bootstrap/12490
675         * scan-decls.c (MAX_EXTERN_C_BRACES): New preprocessor constant
676         to define the size of the extern_C_braces array.  Set it to 200.
677         (scan_decls): Abort when extern_C_braces_length is out-of-bounds.
678
679 2003-10-08  Carlo Wood  <carlo@alinoe.com>
680
681         * Makefile.in (gengtype-lex.c): flex 2.5.4[a] doesn't understand
682         a space after the -o option.  flex 2.5.31 understands both, with
683         and without the space. Removed that space.
684
685 2003-10-08  Richard Sandiford  <rsandifo@redhat.com>
686
687         * config/mips/mips.c (mips_frame_info): Add cprestore_size field.
688         (compute_frame_size): Initialize it.  Remove the .cprestore slot
689         from args_size.
690         (mips_output_function_prologue): Simplify accordingly.
691         (mips_debugger_offset): Change the mips16 frame pointer offset from
692         current_function_outgoing_args to cfun->machine->frame.args_size.
693         (mips_initial_elimination_offset): Likewise.
694         (mips_expand_prologue): Likewise.
695         (mips_expand_epilogue): Likewise.
696
697 2003-10-08  Richard Sandiford  <rsandifo@redhat.com>
698
699         * config/mips/mips.h (EXTRA_CONSTRAINT): Add 'W' constraint.
700         (EXTRA_MEMORY_CONSTRAINT): Define.
701         (CAN_ELIMINATE): Remove lwu workaround.
702         * config/mips/mips.md (*zero_extendsidi2_mem): Enable for mips16 too.
703         Use a 'W' constraint for the source operand.
704
705 2003-10-08  Kazu Hirata  <kazu@cs.umass.edu>
706
707         * genopinit.c (main): Output code to declare undefined
708         variables.
709
710 2003-10-07  Kelley Cook  <kcook@gcc.gnu.org>
711
712         * gengtype-lex.l: Remove -Wtraditional cruft.
713         * Makefile.in (gengtype-lex.c): Likewise.
714
715 2003-10-07  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
716
717         * cfgloopmanip.c (fix_irreducible_loops): Initialize e correctly.
718
719 2003-10-07  Jason Merrill  <jason@redhat.com>
720
721         PR c++/12519
722         * c-semantics.c (genrtl_cleanup_stmt): Ignore the CLEANUP_DECL if
723         it isn't a decl.
724
725 2003-10-07  Alexandre Oliva  <aoliva@redhat.com>
726
727         * gcc.c (cpp_options): Only pass -fworking-directory for -g* if
728         not overridden.
729         Fixes PR bootstrap/12173.
730
731 2003-10-07  Zack Weinberg  <zack@codesourcery.com>
732
733         * errors.c: Don't include coretypes.h or tm.h.
734         (trim_filename): Use IS_DIR_SEPARATOR.
735         * Makefile.in: Update dependencies of errors.o and
736         $(BUILD_PREFIX_1)errors.o.
737
738 2003-10-07  Geoffrey Keating  <geoffk@apple.com>
739
740         * function.c (pad_to_arg_alignment): Take STACK_POINTER_OFFSET into
741         account when aligning arguments.
742         * calls.c (STACK_POINTER_OFFSET): Move default from here ...
743         * defaults.h (STACK_POINTER_OFFSET): ... to here.
744         * config/sparc/sparc.h (STACK_BOUNDARY): Add comment about how
745         it's wrong when TARGET_ARCH64 && TARGET_STACK_BIAS.
746         (SPARC_STACK_BOUNDARY_HACK): Define.
747         * config/rs6000/rs6000.c (function_arg): On non-SVR4 systems,
748         arrange for vector parameters to varargs functions to be passed
749         in both memory and GPRs when appropriate.
750         (rs6000_va_arg): Vector arguments passed in memory are 16-byte
751         aligned.
752
753         * hooks.c (hook_bool_tree_true): New.
754         (hook_rtx_tree_int_null): New.
755         (hook_rtx_rtx_null): Use NULL, not 0.
756         * hooks.h: Add 'extern' to everything.
757         (hook_bool_tree_true): New.
758         (hook_rtx_tree_int_null): New.
759         * targhooks.c (hook_bool_CUMULATIVE_ARGS_true): New.
760         * targhooks.h (hook_bool_CUMULATIVE_ARGS_true): New.
761         * config/rs6000/rs6000-protos.h (setup_incoming_varargs): Remove
762         prototype.
763         * config/rs6000/rs6000.c (rs6000_return_in_memory): New.
764         (setup_incoming_varargs): Prototype.
765         (TARGET_PROMOTE_FUNCTION_ARGS): Define.
766         (TARGET_PROMOTE_FUNCTION_RETURN): Define.
767         (TARGET_STRUCT_VALUE_RTX): Define.
768         (TARGET_RETURN_IN_MEMORY): Define.
769         (TARGET_SETUP_INCOMING_VARARGS): Define.
770         (TARGET_STRICT_ARGUMENT_NAMING): Define.
771         (TARGET_PRETEND_OUTGOING_VARARGS_NAMED): Define.
772         (init_cumulative_args): Use rs6000_return_in_memory.
773         (setup_incoming_varargs): Make 'static'.
774         * config/rs6000/rs6000.h (PROMOTE_FUNCTION_ARGS): Delete.
775         (PROMOTE_FUNCTION_RETURN): Delete.
776         (STRUCT_VALUE): Delete.
777         (RETURN_IN_MEMORY): Delete.
778         (SETUP_INCOMING_VARARGS): Delete.
779
780 2003-10-07  Gerald Pfeifer  <gerald@pfeifer.com>
781
782         * doc/invoke.texi (Warning Options): Simplify and clarify the
783         descriptions of -Wnonnull and -Winit-self.
784
785 2003-10-07  Richard Earnshaw  <rearnsha@arm.com>
786
787         * optabs.c (init_intraclass_conv_libfuncs): Fix order of array
788         indicees for floating-point conversersion libcalls.
789
790 2003-10-07  Nathanael Nerode  <neroden@gcc.gnu.org>
791
792         * Makefile.in: Add more comments separating large conceptually
793         separate sections.
794
795         * configure.in: Clean up thread file logic.
796         * configure: Regenerate.
797
798 2003-10-07  Danny Smith  <dannysmith@users.sourceforge.net>
799
800         * config/i386/cygming.h (READONLY_DATA_SECTION_ASM_OP): Define.
801         (switch_to_section): Handle in_readonly_data.
802         * config/i386/winnt.c (i386_pe_asm_named_section): Handle
803         readonly data.
804
805 2003-10-07  Richard Earnshaw  <rearnsha@arm.com>
806
807         * arm.md (cmpsi2_addneg): New ARM pattern. Add peephole2 to generate
808         it.
809         (cbranchne_decr1): New Thumb pattern.
810         * arm.c (arm_addimm_operand): New insn predicate.
811         * arm-protos.h: Add a prototype for it.
812         * arm.h (PREDICATE_CODES): Add it.
813
814 2003-10-07  Dorit Naishlos <dorit@il.ibm.com>
815
816         * sched-int.h (sched_info): New field
817         sched_max_insns_priority.
818         * sched-rgn.c (init_ready_list): Add invocations to
819         targetm.sched.adjust_priority.
820         (sched_max_insns_priority): Init new field.
821         * sched-ebb.c (sched_max_insns_priority): Init new field.
822         * haifa-sched.c (set_priorities): Set
823         sched_info->sched_max_insns_priority.
824         * config/rs6000/rs6000.h:
825         (rs6000_sched_restricted_insns_priority_str): Support new
826         flag -mprioritize-restricted-insns.
827         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Define.
828         * config/rs6000/rs6000.c (is_dispatch_slot_restricted): New
829         function.
830         (rs6000_adjust_priority): Change priority of restricted
831         insns, using above new function and new flag.
832         * doc/invoke.texi (-mprioritize-restricted-insns): Document
833         new option.
834
835 2003-10-07  Zack Weinberg  <zack@codesourcery.com>
836
837         * expr.c (cmpstr_optab, cmpmem_optab): New.
838         * genopinit.c: Initialize them.
839         * optabs.h: Declare them.
840         * optabs.c (init_optabs): Clear them.
841         (prepare_cmp_insn):  Use cmpstr_optab and cmpmem_optab to find
842         block memory compare insns, not conditional chains.  Restructure
843         the fallback generation of a call to memcmp/bcmp for better
844         readability.
845
846 2003-10-07  Richard Sandiford  <rsandifo@redhat.com>
847
848         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): New macro.
849         (mips_save_restore_fn): New typedef.
850         (mips_add_large_offset_to_sp, mips_emit_frame_related_store): Remove.
851         (mips_set_frame_expr, mips_frame_set): Move above prologue code.
852         (save_restore_insns): Remove, replacing with...
853         (mips_save_restore_reg, mips_for_each_saved_reg): ...these new fns.
854         (mips_save_reg, mips_restore_reg): New function.
855         (mips_expand_prologue, mips_expand_epilogue): Rework.
856         * config/mips/mips.h (MIPS_TEMP1_REGNUM, MIPS_TEMP2_REGNUM): Remove.
857         (MIPS_PROLOGUE_TEMP_REGNUM, MIPS_EPILOGUE_TEMP_REGNUM): New macros.
858         (MIPS_PROLOGUE_TEMP, MIPS_EPILOGUE_TEMP): New macros.
859
860 2003-10-07  Richard Sandiford  <rsandifo@redhat.com>
861
862         * config/mips/mips.c (mips_expand_prologue): Remove unused
863         traversal of function arguments.
864
865 2003-10-07  Richard Sandiford  <rsandifo@redhat.com>
866
867         * doc/invoke.texi: Remove documentation of -mentry.
868         * config/mips/mips.c (mips_entry_string, mips_entry): Remove.
869         (override_options, mips_save_reg_p): Remove handling.
870         (compute_frame_size, mips_output_function_prologue): Likewise.
871         (mips_expand_prologue, mips_expand_epilogue): Likewise.
872         * config/mips/mips.h (mips_entry_string): Remove declaration.
873         (TARGET_OPTIONS): Remove -mentry.
874         * config/mips/mips16.S: Remove mention of -mentry.
875
876 2003-10-06  Zack Weinberg  <zack@codesourcery.com>
877
878         * libfuncs.h (LTI_extendsfdf2, LTI_extendsfxf2, LTI_extendsftf2)
879         (LTI_extenddfxf2, LTI_extenddftf2, LTI_truncdfsf2, LTI_truncxfsf2)
880         (LTI_trunctfsf2, LTI_truncxfdf2, LTI_trunctfdf2, LTI_floatsisf)
881         (LTI_floatdisf, LTI_floattisf, LTI_floatsidf, LTI_floatdidf)
882         (LTI_floattidf, LTI_floatsixf, LTI_floatdixf, LTI_floattixf)
883         (LTI_floatsitf, LTI_floatditf, LTI_floattitf, LTI_fixsfsi, LTI_fixsfdi)
884         (LTI_fixsfti, LTI_fixdfsi, LTI_fixdfdi, LTI_fixdfti, LTI_fixxfsi)
885         (LTI_fixxfdi, LTI_fixxfti, LTI_fixtfsi, LTI_fixtfdi, LTI_fixtfti)
886         (LTI_fixunssfsi, LTI_fixunssfdi, LTI_fixunssfti, LTI_fixunsdfsi)
887         (LTI_fixunsdfdi, LTI_fixunsdfti, LTI_fixunsxfsi, LTI_fixunsxfdi)
888         (LTI_fixunsxfti, LTI_fixunstfsi, LTI_fixunstfdi, LTI_fixunstfti)
889         (extendsfdf2_libfunc, extendsfxf2_libfunc, extendsftf2_libfunc)
890         (extenddfxf2_libfunc, extenddftf2_libfunc, truncdfsf2_libfunc)
891         (truncxfsf2_libfunc, trunctfsf2_libfunc, truncxfdf2_libfunc)
892         (trunctfdf2_libfunc, floatsisf_libfunc, floatdisf_libfunc)
893         (floattisf_libfunc, floatsidf_libfunc, floatdidf_libfunc)
894         (floattidf_libfunc, floatsixf_libfunc, floatdixf_libfunc)
895         (floattixf_libfunc, floatsitf_libfunc, floatditf_libfunc)
896         (floattitf_libfunc, fixsfsi_libfunc, fixsfdi_libfunc, fixsfti_libfunc)
897         (fixdfsi_libfunc, fixdfdi_libfunc, fixdfti_libfunc, fixxfsi_libfunc)
898         (fixxfdi_libfunc, fixxfti_libfunc, fixtfsi_libfunc, fixtfdi_libfunc)
899         (fixtfti_libfunc, fixunssfsi_libfunc, fixunssfdi_libfunc)
900         (fixunssfti_libfunc, fixunsdfsi_libfunc, fixunsdfdi_libfunc)
901         (fixunsdfti_libfunc, fixunsxfsi_libfunc, fixunsxfdi_libfunc)
902         (fixunsxfti_libfunc, fixunstfsi_libfunc, fixunstfdi_libfunc)
903         (fixunstfti_libfunc): Delete.
904         * optabs.h (struct optab_handlers): Break out of struct optab.
905         (struct convert_optab, convert_optab, enum convert_optab_index,
906         convert_optab_table, sext_optab, zext_optab, trunc_optab,
907         sfix_optab, ufix_optab, sfixtrunc_optab, ufixtrunc_optab,
908         sfloat_optab, ufloat_optab): New.
909         (set_conv_libfunc): Prototype.
910         (GEN_FCN): Use C90 indirect call syntax, remove unnecessary cast.
911         (trunc_optab): Renamed btrunc_optab.
912         * builtins.c (expand_builtin_mathfn): Update to match.
913         * optabs.c (extendtab, fixtab, fixtrunctab, floattab): Delete.
914         (convert_optab_table, new_convert_optab, init_convert_optab)
915         (init_interclass_conv_libfuncs, init_intraclass_conv_libfuncs)
916         (set_conv_libfunc): New.
917         (can_extend_p, gen_extend_insn, can_fix_p, can_float_p)
918         (expand_float, expand_fix): Use new conversion optabs,
919         not old insn code tables or long chains of ifs.
920         (init_optabs): No need to clear old insn code tables.
921         Initialize the new optabs, not the old libfunc array entries.
922         Don't handle FIXUNS_TRUNC_LIKE_FIX_TRUNC here.
923         * genopinit.c: Initialize conversion optabs, not the
924         former insn code tables.  Remove unnecessary casts.
925         Handle FIXUNS_TRUNC_LIKE_FIX_TRUNC here.
926         * expr.c (convert_move): Remove redundant check that
927         to_real==from_real.  Use the conversion optabs instead
928         of long chains of tests of modes.  Move partial-integer-mode
929         interconversion above all integer conversion.  Do not recurse
930         on a value forced into a register in the original mode.
931
932         * config/gofast.h, config/frv/frv.c, config/ia64/ia64.c
933         * config/mips/mips.c, config/pa/pa.c, config/rs6000/rs6000.c
934         * config/sparc/sparc.c: Use set_conv_libfunc to adjust entries
935         in new conversion optabs; do not reference the old libfunc
936         array entries.  No need to include libfuncs.h.
937
938 2003-10-06  Roger Sayle  <roger@eyesopen.com>
939
940         * config/i386/i386.c (ix86_expand_setcc): Annotate the floating
941         point comparison sequence with a REG_EQUAL note that describes
942         the comparison's semantics.
943
944 2003-10-06  Roger Sayle  <roger@eyesopen.com>
945
946         * expr.c (expand_expr <COND_EXPR>): Handle the void type semantics
947         of COND_EXPR when expanding the "A op 0 ? FOO : A" optimizations.
948
949 2003-10-06  Roger Sayle  <roger@eyesopen.com>
950             Zack Weinberg  <zack@codesourcery.com>
951
952         * optabs.c (prepare_float_lib_cmp): Avoid searching for REG_RETVAL
953         instruction by using LCT_CONST and then calling emit_libcall_block
954         ourselves.
955
956 2003-10-06  Falk Hueffner  <falk.hueffner@student.uni-tuebingen.de>
957
958         PR optimization/11974
959         * optabs.c (expand_unop): Promote libcall outmode according to
960         hard_libcall_value.
961
962 2003-10-06  Zack Weinberg  <zack@codesourcery.com>
963
964         * real.h (REAL_MODE_FORMAT): New macro.
965         * c-cppbuiltin.c, optabs.c, real.c, config/alpha/alpha.c
966         * config/c4x/c4x.c, config/i370/i370.c, config/i386/freebsd.h
967         * config/i386/i386.c, config/i960/i960.c, config/ia64/ia64.c
968         * config/m68k/m68k.c, config/mips/mips.c, config/rs6000/rs6000.c
969         * config/vax/vax.c: Use REAL_MODE_FORMAT instead of referring
970         directly to real_format_for_mode array, wherever possible.
971
972 2003-10-06  Devang Patel  <dpatel@apple.com>
973
974         * dwarf2out.c (is_main_source): Remove variable.
975         (dwarf2out_start_source_file): Do not check is_main_source.
976         Do not reset is_main_source.
977         (dwarf2out_init): Do not initialize is_main_source.
978
979 2003-10-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
980
981         * fixinc/inclhack.def (stdio_va_list): Removed _ap fix.
982         (irix_stdio_va_list): Don't require leading printf, IRIX 6.5.21
983         introduced some multi-line prototypes.
984         * fixinc/fixincl.x: Regenerate.
985
986 2003-10-06  Richard Sandiford  <rsandifo@redhat.com>
987
988         * config/mips/mips.h (PREDICATE_CODES): Add stack_operand.
989         * config/mips/mips.c (stack_operand): New predicate.
990         * config/mips/mips.md: Use it for the destination of mips16 insns
991         that store $31.
992
993 2003-10-06  Richard Sandiford  <rsandifo@redhat.com>
994
995         * config/mips/mips.md (*lowsi): Renamed from lowsi.
996         (*lowdi): Likewise lowdi.
997         (*lowsi_mips16, *lowdi_mips16): New patterns.
998         * config/mips/mips.c (mips_const_insns, mips_output_move): Remove
999         mips16 CONSTANT_RELOC handling.
1000         (mips_delegitimize_address): Adjust for new sdata representation.
1001
1002 2003-10-06  Richard Sandiford  <rsandifo@redhat.com>
1003
1004         * config/mips/mips.c (mips_arg_info): If MUST_PASS_IN_STACK,
1005         skip any remaining register arguments.
1006
1007 2003-10-06  Ulrich Weigand  <uweigand@de.ibm.com>
1008
1009         * reload.c (find_reloads_subreg_address): Use correct offset for
1010         paradoxical MEM subregs on big-endian targets.
1011
1012 2003-10-06  Andrew Haley  <aph@redhat.com>
1013
1014         * tree.c (get_callee_fndecl): Call
1015         lang_hooks.lang_get_callee_fndecl.
1016         * langhooks-def.h (LANG_HOOKS_GET_CALLEE_FNDECL): New.
1017         (lhd_get_callee_fndecl): New.
1018
1019 2003-10-06  Andrew Pinski  <apinski@apple.com>
1020
1021         * config/darwin.c (machopic_non_lazy_ptr_name): Fix off by one
1022         error in calculating the length of the string.
1023         (machopic_stub_name): Likewise.
1024
1025 2003-10-06  Roger Sayle  <roger@eyesopen.com>
1026
1027         * optabs.c (prepare_float_lib_cmp):  Attach a REG_EQUAL note
1028         describing the return value of the comparison libcall to the
1029         REG_RETVAL instruction of the emitted sequence.
1030
1031 2003-10-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
1032
1033         PR optimization/12215
1034         * cse.c (cse_set_around_loop): Emit the move at the beginning
1035         of the next basic block for trapping sets.
1036
1037 2003-10-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
1038
1039         PR optimization/11637
1040         * combine.c (adjust_for_new_dest): New function to adjust the
1041         notes and LOG_LINKS when the dest of an insn has changed.
1042         (try_combine): Use it when deleting the first insn of a two-insn
1043         parallel or splitting a two-load parallel.
1044
1045 2003-10-06  Richard Sandiford  <rsandifo@redhat.com>
1046
1047         * config/mips/mips.c (mips_classify_constant): Only allow UNSPECs
1048         if TARGET_EXPLICIT_RELOCS.
1049
1050 2003-10-06  Mark Mitchell  <mark@codesourcery.com>
1051
1052         PR bootstrap/12512
1053         * Makefile.in (info): Use double-colon rules.
1054         (dvi): Likewise.
1055         (generated-manpages): Likewise.
1056         * configure.in: Do not create lang.info, lang.dvi, or
1057         lang.generated-manpages hooks.
1058         * configure: Regenerated.
1059         * objc/Make-lang.in (objc.info): Remove.
1060         (objc.dvi): Remove.
1061         (objc.generated-manpages): Remove.
1062         * doc/sourcebuild.texi: Update description of info, dvi, and
1063         generated-manpages hooks.
1064
1065 2003-10-06  Richard Sandiford  <rsandifo@redhat.com>
1066
1067         * config/mips/mips.md: Merge mips16 lw/srl pattern with its splitter.
1068
1069 2003-10-05  Andrew Pinski  <apinski@apple.com>
1070
1071         * config/darwin.c (machopic_non_lazy_ptr_name): Fix off by one
1072         errors in memcpy destinations.
1073         (machopic_stub_name): Likewise.
1074
1075 2003-10-05  Andrew Pinski <apinski@apple.com>
1076
1077         * config/darwin.c (machopic_non_lazy_ptr_name):
1078         Change strcat to memcpy and add length together.
1079         (machopic_stub_name): Likewise.
1080
1081 2003-10-05  Kaz Kojima  <kkojima@gcc.gnu.org>
1082
1083         * config/sh/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Handle new
1084         signal trampoline codes.
1085
1086 2003-10-05  Chris Demetriou  <cgd@broadcom.com>
1087
1088         * config/mips/mips.md (*divsf3): Move description of
1089         SB-1 F2 erratum from here to...
1090         (divsf3): Here.  Disable if TARGET_FIX_SB1 is set and
1091         flag_unsafe_math_optimizations is not.
1092
1093 2003-10-05  Aldy Hernandez  <aldyh@redhat.com>
1094
1095         * config/rs6000/linuxspe.h: Define TARGET_SPE_ABI, TARGET_SPE,
1096         TARGET_E500, TARGET_ISEL, and TARGET_FPRS.
1097
1098 2003-10-05  Kazu Hirata  <kazu@cs.umass.edu>
1099
1100         * c-pretty-print.c: Fix comment typos.
1101         * c-pretty-print.h: Likewise.
1102         * calls.c: Likewise.
1103         * cfgloopmanip.c: Likewise.
1104         * cgraphunit.c: Likewise.
1105         * cppfiles.c: Likewise.
1106         * final.c: Likewise.
1107         * function.c: Likewise.
1108         * gcov-io.h: Likewise.
1109         * gcse.c: Likewise.
1110         * genoutput.c: Likewise.
1111         * loop.c: Likewise.
1112         * postreload.c: Likewise.
1113         * reg-stack.c: Likewise.
1114         * regmove.c: Likewise.
1115         * sched-int.h: Likewise.
1116         * sched-rgn.c: Likewise.
1117         * simplify-rtx.c: Likewise.
1118         * tree-inline.c: Likewise.
1119         * config/m68hc11/m68hc11.h: Likewise.
1120         * config/mmix/mmix.c: Likewise.
1121         * config/mn10300/mn10300.md: Likewise.
1122         * config/sh/sh.h: Likewise.
1123
1124 2003-10-05  Richard Henderson  <rth@redhat.com>
1125
1126         * tree-inline.c (remap_type): New.
1127         (remap_decl): Use it.  Remap DECL_SIZE*.
1128         (copy_body_r): Use it.
1129         (walk_tree): Walk TREE_TYPE too.
1130         (copy_tree_r): Don't walk subtrees of types.
1131         * tree.c (variably_modified_type_p): Restructure.  Consider integer
1132         types with non-const bounds variably modified.
1133
1134 2003-10-05  Kazu Hirata  <kazu@cs.umass.edu>
1135
1136         * doc/invoke.texi: Fix typos.
1137
1138 2003-10-05  Kazu Hirata  <kazu@cs.umass.edu>
1139
1140         * fold-const.c: Follow spelling conventions.
1141         * function.c: Likewise.
1142         * config/c4x/c4x.h: Likewise.
1143         * config/c4x/c4x.md: Likewise.
1144         * config/frv/frv.md: Likewise.
1145         * config/rs6000/aix.h: Likewise.
1146         * config/rs6000/linux64.h: Likewise.
1147         * config/xtensa/xtensa.c: Likewise.
1148
1149 2003-10-05  Kazu Hirata  <kazu@cs.umass.edu>
1150
1151         * c-pretty-print.c: Fix comment formatting.
1152         * cfglayout.c: Likewise.
1153         * cfgloopanal.c: Likewise.
1154         * cppcharset.c: Likewise.
1155         * dbxout.c: Likewise.
1156         * ggc-page.c: Likewise.
1157         * ggc.h: Likewise.
1158         * target.h: Likewise.
1159
1160 2003-10-04  Kelley Cook  <kelleycook@wideopenwest.com>
1161
1162         * gengtype-lex.l: Recognize typedef of functions without PARAMS macro.
1163
1164 2003-10-04  Nathanael Nerode  <neroden@gcc.gnu.org>
1165
1166         * config/v850/v850-c.c, config/v850/v850-protos.h, config/v850/v850.c:
1167         Convert to ISO C90 function declarations and definitions.
1168
1169 2003-10-04  Zack Weinberg  <zack@codesourcery.com>
1170
1171         * libfuncs.h
1172         (LTI_eqhf2, LTI_nehf2, LTI_gthf2, LTI_gehf2, LTI_lthf2)
1173         (LTI_lehf2, LTI_unordhf2, LTI_eqsf2, LTI_nesf2, LTI_gtsf2)
1174         (LTI_gesf2, LTI_ltsf2, LTI_lesf2, LTI_unordsf2, LTI_eqdf2)
1175         (LTI_nedf2, LTI_gtdf2, LTI_gedf2, LTI_ltdf2, LTI_ledf2)
1176         (LTI_unorddf2, LTI_eqxf2, LTI_nexf2, LTI_gtxf2, LTI_gexf2)
1177         (LTI_ltxf2, LTI_lexf2, LTI_unordxf2, LTI_eqtf2, LTI_netf2)
1178         (LTI_gttf2, LTI_getf2, LTI_lttf2, LTI_letf2, LTI_unordtf2)
1179         (eqhf2_libfunc, nehf2_libfunc, gthf2_libfunc, gehf2_libfunc)
1180         (lthf2_libfunc, lehf2_libfunc, unordhf2_libfunc, eqsf2_libfunc)
1181         (nesf2_libfunc, gtsf2_libfunc, gesf2_libfunc, ltsf2_libfunc)
1182         (lesf2_libfunc, unordsf2_libfunc eqdf2_libfunc, nedf2_libfunc)
1183         (gtdf2_libfunc, gedf2_libfunc, ltdf2_libfunc, ledf2_libfunc)
1184         (unorddf2_libfunc eqxf2_libfunc, nexf2_libfunc, gtxf2_libfunc)
1185         (gexf2_libfunc, ltxf2_libfunc, lexf2_libfunc, unordxf2_libfunc
1186         (eqtf2_libfunc, netf2_libfunc, gttf2_libfunc, getf2_libfunc)
1187         (lttf2_libfunc, letf2_libfunc, unordtf2_libfunc):
1188         Delete.
1189         * optabs.h (OTI_eq, OTI_ne, OTI_gt, OTI_ge, OTI_lt, OTI_le)
1190         (OTI_unord, eq_optab, ne_optab, gt_optab, ge_optab, lt_optab)
1191         (le_optab, unord_optab): New.
1192
1193         * optabs.c (prepare_float_lib_cmp): Rewrite.  Get the libfuncs
1194         from the code_to_optab table, not a giant switch; use
1195         swap_condition; do widening only if a comparison function that
1196         we can call exists in a wider mode, not if a cmp_optab insn or
1197         libfunc exists in a wider mode; call protect_from_queue
1198         exactly once on each operand.
1199         (init_optabs): Initialize the new optabs, not the deleted libfuncs.
1200
1201         * config/gofast.h, config/ia64/ia64.c, config/mips/mips.c
1202         * config/pa/pa.c, config/rs6000/rs6000.c, config/sparc/sparc.c:
1203         Set floating point comparison libfuncs using set_optab_libfunc
1204         on the appropriate optab.
1205
1206         * config/ia64/ia64.c (ia64_hpux_init_libfuncs): Fix typo.
1207         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Correct ABI
1208         selector conditionals.
1209
1210 2003-10-04  Stephane Carrez  <stcarrez@nerim.fr>
1211
1212         * config/m68hc11/t-m68hc11-gas (MULTILIB_MATCHES): m68hcs12 is
1213         identical to m68hc12 as far as libraries are concerned.
1214
1215 2003-10-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
1216
1217         PR c/12446
1218         * c-typeck.c (convert_for_assignment): Issue an error for
1219         array to pointer assignment after default conversion.
1220         (digest_init): Likewise.
1221
1222 2003-10-04  Fariborz Jahanian  <fjahanian@apple.com>
1223
1224         * c-decl.c (duplicate_decls): retain DECL_COMMON of old declaration
1225
1226 2003-10-03  Gerald Pfeifer  <gerald@pfeifer.com>
1227
1228         * doc/extend.texi (Function Attributes): Fix title of GNU C
1229         Preprocessor manual.
1230         (C++ Extensions): Fix reference to "Predefined Macros" in the
1231         GNU C Preprocessor manual.
1232
1233 2003-10-04  Richard Earnshaw  <reanrsha@arm.com>
1234
1235         * doc/extend.texi: Document how GCC estimates and relies on the size
1236         of an asm.
1237
1238 2003-10-04  Richard Sandiford  <rsandifo@redhat.com>
1239
1240         * config/mips/mips.c (mips_pad_arg_upward): Pad floating-point
1241         arguments downward for big-endian o64.
1242
1243 2003-10-03  Robert Bowdidge <bowdidge@apple.com>
1244
1245         * ggc-page.c (ggc_pch_write_object): Replace fseek() with fwrite() in
1246         PCH generation, avoiding too-frequent flushes when writing to NFS
1247         file system.
1248
1249 2003-10-03  Ziemowit Laski  <zlaski@apple.com>
1250
1251         * objc/objc-act.c (lookup_category): Mark as 'inline'.
1252
1253 2003-10-03  Alexander Malmberg  <alexander@malmberg.org>
1254             Ziemowit Laski  <zlaski@apple.com>
1255
1256         * objc/objc-act.c (add_method_to_hash_list, lookup_category):
1257         New functions.
1258         (lookup_method_in_hash_lists): New parameter indicating whether
1259         we are messaging 'Class' or 'id'.
1260         (check_duplicates): Likewise; do not assume all methods will
1261         be either class or instance methods.
1262         (generate_category, finish_class): Use lookup_category().
1263         (add_method): Use add_method_to_hash_list(); insert instance
1264         methods of root classes into the global class method hash table.
1265         (add_category): Use lookup_category(); avoid constructing
1266         duplicate categories.
1267         (really_start_method): Add method to corresponding @interface,
1268         if not already there (and if the @interface exists).
1269         (finish_message_expr, finish_objc): Adjust calls to
1270         check_duplicates().
1271
1272 2003-10-03  Roger Sayle  <roger@eyesopen.com>
1273
1274         PR optimization/9325, PR java/6391
1275         * fold-const.c (fold_convert): For floating point to integer
1276         conversions, return the maximum/minimum representable integer
1277         value if the real constant overflows the destination type.
1278         * tree.c (real_value_from_int_cst): Allow the type to be NULL,
1279         meaning don't truncate the result to a floating point mode.
1280         Simplify the logic by calling real_from_integer directly.
1281         * simplify-rtx.c (simplify_unary_operation):  Implement the
1282         same semantics for folding floating point to integer conversions
1283         in RTL.
1284
1285 2003-10-03  Chris Demetriou  <cgd@broadcom.com>
1286
1287         * config/mips/mips.c (mips_emit_prefetch): Restructure
1288         to avoid use of arrays, handle indexed prefetch.
1289         * config/mips/mips.h (ISA_HAS_FP4, ISA_HAS_PREFETCH): Update comments.
1290         (ISA_HAS_PREFETCHX): New deffine.
1291         * config/mips/mips.md ("type" attr): Add new "prefetchx" value,
1292         update comments.
1293         (prefetch_indexed_di, prefetch_indexed_si): New insns.
1294
1295 2003-10-03  Jeff Sturm  <jsturm@one-point.com>
1296             Roger Sayle  <roger@eyesopen.com>
1297
1298         PR optimization/12289
1299         * calls.c (emit_call_1): Pretend to have popped the arguments
1300         to noreturn and longjmp functions instead of ignoring them.
1301         (expand_call): Don't adjust stack_pointer_dela while
1302         inhibit_defer_pop is set.
1303
1304 2003-10-03  Andreas Schwab  <schwab@suse.de>
1305
1306         PR bootstrap/12276
1307         * configure.in: Check for libunwind on the host only if building
1308         a native compiler.
1309         * configure: Regenerated.
1310
1311 2003-10-03  Paolo Carlini  <pcarlini@unitus.it>
1312
1313         * unwind-pe.h (read_encoded_value_with_base): Constify u and
1314         its inizialization cast.
1315
1316 2003-10-03  Richard Sandiford  <rsandifo@redhat.com>
1317
1318         PR target/12485
1319         * config/mips/mips.c (mips_load_got): GOT accesses can't trap.
1320
1321 2003-10-02  Mark Mitchell  <mark@codesourcery.com>
1322
1323         PR optimization/12180
1324         * tree-inline.c (inline_forbidden_p_1): Do not permit inlining of
1325         functions containing calls to __builtin_next_arg.
1326
1327 2003-10-02  Chris Demetriou  <cgd@broadcom.com>
1328
1329         * config/mips/mips.c (mips_emit_prefetch): Use operand 3
1330         in instructions being output.
1331         * config/mips/mips.md (prefetch_si_address): Change third
1332         operand's constraint letter to 'I'.
1333         (prefetch_di_address): Likewise.
1334         (prefetch_si, prefetch_di): Set third operand to const0_rtx.
1335
1336 2003-10-02  Zack Weinberg  <zack@codesourcery.com>
1337
1338         * system.h: Poison macros obsoleted by earlier patch.
1339         * config/cris/cris.c: C90-ify a function definition.
1340
1341 2003-10-02  Josef Zlomek  <zlomekj@suse.cz>
1342
1343         PR/12292
1344         * combine.c (make_field_assignment): Check whether rtx's code
1345         is CONST_INT before using INTVAL.
1346
1347 2003-10-02  Josef Zlomek  <zlomekj@suse.cz>
1348
1349         * cgraph.c (cgraph_node): Use INSERT instead of 1 in
1350         htab_find_slot_with_hash.
1351         (cgraph_node_for_identifier): Use NO_INSERT.
1352         (cgraph_remove_node): Use NO_INSERT.
1353         (cgraph_varpool_node): Use INSERT.
1354         (cgraph_varpool_node_for_identifier): Use NO_INSERT.
1355
1356 2003-10-02  Josef Zlomek  <zlomekj@suse.cz>
1357
1358         Waldek Hebisch <hebisch@math.uni.wroc.pl>
1359         PR/12072
1360         * varasm.c (compare_constant): Fix thinko.
1361
1362 2003-10-02  Richard Sandiford  <rsandifo@redhat.com>
1363
1364         * config/frv/frv.c (frv_issue_rate): New function.
1365         (frv_pack_insns): Use it.
1366         (TARGET_SCHED_ISSUE_RATE): Define.
1367
1368 2003-10-02  Steven Bosscher <s.bosscher@student.tudelft.nl>
1369
1370         * config/mcore/mcore.c: Convert to ISO C90 function declarations
1371         and definitions.
1372         * config/mcore/mcore.h: Likewise.
1373         * config/mcore/mcore-protos.h: Likewise.
1374
1375 2003-10-02  Richard Sandiford  <rsandifo@redhat.com>
1376
1377         * config/frv/frv.c (frv_use_dfa_pipeline_interface): New function.
1378         (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define.
1379
1380 2003-10-01  Per Bothner  <pbothner@apple.com>
1381
1382         * c-lex.c (src_line):   Remove unneeded static variable.
1383         (cb_line_change):  Set input_line directly, instead of src_line.
1384         (get_non_padding_token):  We no longer need to compensate for the
1385         "horrible things" the C++ front-end does with the current line number,
1386
1387         * cpplib.c (_cpp_pop_buffer):  Do generate a _cpp_do_file_change
1388         callback even when popping the main file.
1389         * c-lex.c (fe_file_change):  Handle a NULL new_map.
1390         * fix-header.c (cb_file_change):  Likewise.
1391         * c-ppoutput.c (pp_file_change):  Likewise.
1392
1393         * cppinit.c (cpp_read_main_file):  Split into two functions:
1394         Distribute _cpp_stack_file call over the two functions.
1395         (cpp_find_main_file):  New function.
1396         Don't call _cpp_do_file_change even if working_directory flag set.
1397         (cpp_push_main_file):  New function.
1398         * cppfiles.c (_cpp_find_failed):  New helper function.
1399         (find_file):  Made non-static and renamed to _cpp_find_file.
1400         (_cpp_stack_file):  No longer needed.  But note the following.
1401         (stack_file):  Made non-static and renamed to _cpp_stack_file.
1402         * fix-header.c (cpp_read_main_file):  Replace cpp_read_main_file
1403         call with calls to cpp_find_main_file and cpp_push_main_file.
1404         (search_path_head):  If there is no current buffer, use main_file.
1405         * cpphash.h:  Update function declarations.
1406         * cpplib.h:  Update function declarations.
1407
1408         * c-opts.c (c_common_post_options):  Don't call cpp_find_main_file yet.
1409         (c_common_parse_file):  No longer need to call cpp_read_main_file
1410         when file_index > 0 (as in multi-file or server compiation).
1411         (finish_options):  Change to <built-in> is an LC_ENTER, not LC_RENAME
1412         as this now happens before cpp_push_main_file.
1413         (push_command_line_include):  When done with options, pass LC_LEAVE
1414         instead of LC_RENAME to cpp_change_file and finally cpp_push_main_file.
1415         (fe_file_change):  Handle NULL new_map, and simplify.
1416         * cpplex.c (_cpp_get_fresh_line):  Revert my no-longer-needed
1417         08-28 change, since we're never called with a NULL buffer.
1418         (_cpp_lex_direct):  Likewise.
1419         * cpptrad.c (_cpp_read_logical_line_trad):  Likewise.
1420         Return false if buffer is NULL at end.
1421
1422         * cpplex.c (_cpp_get_fresh_line):  Return value now just depends on
1423         whether pfile->buffer is NULL after pop, ignoring return_at_eof.
1424         * cpphash.h (struct cpp_buffer):  Remove unused return_at_eof field.
1425         * cpplib.c (cpp_push_buffer):  Since we no longer set return_at_eof,
1426         remove the unused return_at_eof parameter.
1427         * cppfiles.c, cpplib.c, cppmacro.c, cpppch.c, fix-header.c:
1428         Update callers of cpp_push_buffer.
1429
1430 2003-10-01  Zack Weinberg  <zack@codesourcery.com>
1431
1432         * target.h (init_libfuncs): New hook.
1433         * target-def.h: Default TARGET_INIT_BUILTINS and
1434         TARGET_INIT_LIBFUNCS to hook_void_void.  Add
1435         TARGET_INIT_LIBFUNCS to TARGET_INITIALIZER.
1436         * builtins.c (default_init_builtins): Delete.
1437         * expr.h (default_init_builtins): Delete prototype.
1438         * doc/tm.texi: Document TARGET_INIT_LIBFUNCS and US_SOFTWARE_GOFAST.
1439         Tweak documentation of TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL.
1440         Remove documentation of INIT_TARGET_OPTABS, MULSI3_LIBCALL,
1441         DIVSI3_LIBCALL, UDIVSI3_LIBCALL, MODSI3_LIBCALL, UMODSI3_LIBCALL,
1442         MULDI3_LIBCALL, DIVDI3_LIBCALL, UDIVDI3_LIBCALL, MODDI3_LIBCALL,
1443         and UMODDI3_LIBCALL,
1444
1445         * Makefile.in (optabs.o): Depends on target.h.
1446         * defaults.h: Provide default for FLOAT_LIB_COMPARE_RETURNS_BOOL.
1447         * optabs.c: Include target.h.
1448         (prepare_float_lib_cmp): No need for #ifdef around use of
1449         FLOAT_LIB_COMPARE_RETURNS_BOOL.
1450         (set_optab_libfunc): New function.
1451         (init_optabs): Delete use of all *_LIBCALL defines.
1452         Call targetm.init_libfuncs not INIT_TARGET_OPTABS.
1453         * optabs.h: Prototype set_optab_libfunc.
1454
1455         * config.gcc: Remove all references to pa/long_double.h,
1456         ia64/hpux_longdouble.h, and gofast.h.
1457         (mips-*-*): When --enable-gofast, just add US_SOFTWARE_GOFAST
1458         to tm_defines; don't set INIT_SUBTARGET_OPTABS or change tm_file.
1459
1460         * config/alpha/alpha.c, config/c4x/c4x.c, config/cris/cris.c
1461         * config/frv/frv.c, config/h8300/h8300.c, config/i860/i860.c
1462         * config/ia64/ia64.c, config/ip2k/ip2k.c, config/m68hc11/m68hc11.c
1463         * config/mips/mips.c, config/pa/pa.c, config/rs6000/rs6000.c
1464         * config/sparc/sparc.c, config/vax/vax.c:
1465         Provide a definition for TARGET_INIT_LIBFUNCS.  Where
1466         necessary, include optabs.h, libfuncs.h, and/or config/gofast.h.
1467
1468         * config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.h
1469         * config/avr/avr.h, config/cris/cris.h, config/frv/frv.h
1470         * config/h8300/h8300.h, config/i860/i860.h, config/ip2k/ip2k.h
1471         * config/iq2000/iq2000.h, config/m68hc11/m68hc11.h, config/mips/mips.h
1472         * config/rs6000/aix.h, config/rs6000/sysv4.h, config/sparc/elf.h
1473         * config/sparc/lite.h, config/sparc/netbsd-elf.h, config/sparc/sol2.h
1474         * config/sparc/sparc.h, config/v850/v850.h, config/vax/vax.h
1475         * config/vax/elf.h: Don't define or use INIT_TARGET_OPTABS,
1476         INIT_SUBTARGET_OPTABS, or any *_LIBCALL macros.
1477
1478         * config/ia64/hpux.h: Redefine INTEL_EXTENDED_IEEE_FORMAT to 0.
1479         Set TARGET_INIT_LIBFUNCS and FLOAT_LIB_COMPARE_RETURNS_BOOL here.
1480         * config/pa/pa-hpux.h: Define LONG_DOUBLE_TYPE_SIZE,
1481         HPUX_LONG_DOUBLE_LIBRARY, and FLOAT_LIB_COMPARE_RETURNS_BOOL here.
1482         * config/ia64/hpux_longdouble.h, config/pa/long_double.h: Delete.
1483
1484         * config/rs6000/xcoff.h: Don't define RS6000_ITRUNC nor RS6000_UITRUNC.
1485         * config/sparc/sparc.h: Default SUN_CONVERSION_LIBFUNCS and
1486         SUN_INTEGER_MULTIPLY_64 to 0.
1487         * config/sparc/sol2.h: Redefine SUN_CONVERSION_LIBFUNCS and
1488         SUN_INTEGER_MULTIPLY_64 to 1.
1489         * config/sparc/elf.h: Redefine SUN_CONVERSION_LIBFUNCS and
1490         SUN_INTEGER_MULTIPLY_64 to 0.
1491         * config/sparc/lite.h, config/sparc/liteelf.h, config/sparc/sp86x-elf.h:
1492         Define US_SOFTWARE_GOFAST.
1493         * config/vax/vax.h: Default TARGET_ELF to 0.
1494         * config/vax/elf.h: Redefine TARGET_ELF to 1.
1495
1496         * config/gofast.h: Don't define any macros here.  Provide one
1497         static function, gofast_maybe_init_libfuncs, which does what
1498         INIT_GOFAST_LIBFUNCS used to do but only if US_SOFTWARE_GOFAST
1499         is already defined.  Do not clear negation libfuncs.  Do
1500         not mess with HFmode, XFmode, or TFmode libfuncs.
1501
1502         * config/avr/avr.c (avr_init_once): #if 0 out; mark FIXME.
1503
1504 2003-10-01  Kelley Cook  <kelleycook@wideopenwest.com>
1505
1506         PR C/12466
1507         * c-parse.in (parmlist_2): Mark declaration with an ellipsis as ISO C.
1508
1509 2003-10-01  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1510
1511         * config/mips/xm-iris5.h: Remove, unnecessary.
1512         * config.build (mips-sgi-irix5*): Remove.
1513         (mips-sgi-irix6*o32): Likewise.
1514         * config.gcc (mips-sgi-irix6*o32): Remove xm_file.
1515         (mips-sgi-irix5cross64): Likewise.
1516         (mips-sgi-irix5*): Likewise.
1517         * config.host (mips-sgi-irix5*): Remove.
1518         (mips-sgi-irix6*o32): Likewise.
1519
1520 2003-10-01  Zack Weinberg  <zack@codesourcery.com>
1521
1522         * dbxout.c (dbxout_fptype_value): Delete.
1523         (dbxout_type): Emit R3 for all COMPLEX_TYPEs.
1524
1525 2003-10-01  Alexandre Oliva  <aoliva@redhat.com>
1526
1527         * output.h (compute_reloc_for_constant): Declare.
1528         * varasm.c (compute_reloc_for_constant): Extract from...
1529         (output_addressed_constants): ... here.  Adjust all callers.
1530
1531 2003-10-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1532
1533         * aclocal.m4: Add hpux10* and hpux11.00 to /dev/zero blacklist.
1534         * configure: Rebuilt.
1535
1536 2003-10-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1537
1538         * fold-const.c (make_range): When handling unsigned, don't reverse
1539         range if high bound is zero.
1540
1541 2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
1542
1543         * config/frv/frv.h (PREDICATE_CODES): Added
1544         condexec_si_media_operator, condexec_sf_add_operator and
1545         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
1546         and condexec_sf_unary_operator.
1547
1548 2003-10-01  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1549
1550         * aclocal.m4: Add ultrix* to /dev/zero blacklist.
1551         * configure: Rebuilt.
1552
1553 2003-10-01  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1554
1555         * except.h (MUST_USE_SJLJ_EXCEPTIONS): Revert 2003-09-23 change.
1556         Allow override.
1557         * doc/tm.texi (MUST_USE_SJLJ_EXCEPTIONS): Document.
1558
1559 2003-09-23  David S. Miller  <davem@redhat.com>
1560
1561         * config/sparc/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Undefine
1562         before redefining.
1563         * config/sparc/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Likewise.
1564
1565 2003-10-01  Steven Bosscher  <steven@gcc.gnu.org>
1566
1567         * config/cris/cris-protos.h, config/cris/cris.c: Convert to ISO
1568         C90 function declarations and definitions.
1569
1570 2003-10-01  Nathanael Nerode  <neroden@gcc.gnu.org>
1571
1572         * config.gcc (cris-*-linux*): Revert mistaken commit.
1573
1574 2003-10-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
1575
1576         PR optimization/11753
1577         * config/sparc/sparc.md (length attribute) [fcc branch]: Add 1 to
1578         the length in the non-V9 case.
1579
1580 2003-09-30  Richard Henderson  <rth@redhat.com>
1581
1582         * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Honor
1583         DWARF_ALT_FRAME_RETURN_COLUMN.
1584         * unwind-dw2.c (dwarf_reg_size_table): Expand by one.
1585         (_Unwind_GetGR, _Unwind_SetGR): Validate lookup column.
1586         (uw_frame_state_for): Return end-of-stack for null return address.
1587         * doc/tm.texi (DWARF_ALT_FRAME_RETURN_COLUMN): Add.
1588
1589         * config/alpha/alpha.c (alpha_sa_mask): Add r31 for eh_return.
1590         (alpha_expand_prologue): Store a zero for it.
1591         (alpha_expand_epilogue): Don't reload it.
1592         * config/alpha/alpha.h (DWARF_ALT_FRAME_RETURN_COLUMN): New.
1593         * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Use column 64
1594         for the sigframe return address.
1595
1596 2003-09-30  Kelley Cook  <kelleycoook@wideopenwest.com>
1597
1598         * sdbout.c: Convert to ISO C90 prototypes.
1599         * objc/objc-act.c: Likewise.
1600
1601 2003-09-30  Kelley Cook  <kelleycoook@wideopenwest.com>
1602
1603         * config/i386/cygwin1.c: Convert to ISO C90 prototypes.
1604         * config/i386/winnt.c: Likewise.
1605         * config/i386/cygming.h: Likewise.
1606
1607 2003-09-30  Kazu Hirata  <kazu@cs.umass.edu>
1608
1609         * fold-const.c (fold): Fold (A & ~B) - (A & B) into
1610         (A ^ B) - B for any B.
1611
1612 2003-09-30  Nathanael Nerode  <neroden@gcc.gnu.org>
1613
1614         * config.gcc (arm*-*-kaos*, i[34567]86-*-kaos*, powerpc-*-kaos*,
1615         powerpcle-*-kaos*, strongarm-*-kaos*): Disable fixproto.
1616
1617 2003-09-30  Richard Earnshaw  <rearnsha@arm.com>
1618
1619         * arm/ieee754-sf.S: Tidy formatting.
1620
1621 2003-09-30  Nicolas Pitre  <nico@cam.org>
1622
1623         * arm/lib1funcs.asm (ARM_DIV_MOD_BODY): Split into ARM_DIV_BODY
1624         and ARM_MOD_BODY.
1625         (ARM_MOD_BODY): Rewritten. added clz insns for __ARM_ARCH__ >= 5.
1626         (ARM_DIV_BODY): Added clz insns for __ARM_ARCH__ >= 5,
1627         added better divisor alignment in the other case.
1628         (ARM_DIV2_ORDER): Added, finds the order of a single bit divisor.
1629         (__divsi3, __udivsi3, __modsi3, __umodsi3): rewritten using the
1630         macros above, add fast exits for divisor >= dividend, etc.
1631
1632 2003-09-30  Nicolas Pitre  <nico@cam.org>
1633
1634         * arm/ieee754-df.S: Split compilation of fixunsdfsi from
1635         L_fixdfsi target.
1636         * arm/t-arm-elf (LIB1ASMFUNCS): Add _fixunsdfsi.
1637
1638 2003-09-30  Nathanael Nerode  <neroden@gcc.gnu.org>
1639
1640         * config.gcc: Default use_fixproto to 'no'.
1641
1642 2003-09-30  Richard Sandiford  <rsandifo@redhat.com>
1643
1644         PR optimization/12345
1645         * config/mips/mips-protos.h (mips_restore_gp): Remove.
1646         (mips_gp_save_slot): Declare.
1647         * config/mips/mips.c (mips_restore_gp): Remove in favor of...
1648         (mips_gp_save_slot): ...this new function.
1649         * config/mips/mips.md (exception_receiver): Use mips_gp_save_slot
1650         and mips_output_move to generate the output template.
1651         (call_internal): Force splitting if TARGET_SPLIT_CALLS.  Don't emit
1652         a gp load after a noreturn call.  Load the gp using a move rather
1653         than an exception_receiver pattern.
1654         (call_value_internal, call_value_multiple_internal): Likewise.
1655         (call_split, call_value_split, call_value_multiple_split): Clobber $28.
1656
1657 2003-09-30  Carlo Wood  <carlo@alinoe.com>
1658
1659         PR debug/12319
1660         * cfglayout.c (insn_scope):  Use prologue_locator and
1661         epilogue_locator; return the outer function scope for
1662         pro- and epilogue insns.
1663
1664 2003-09-29  Zack Weinberg  <zack@codesourcery.com>
1665
1666         * objc/objc-act.c (encode_type): Encode INTEGER_TYPEs and
1667         REAL_TYPEs based on the bitsize of the type's mode, not the
1668         mode directly.
1669
1670 2003-09-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1671
1672         * dwarf2out.c (default_eh_frame_section): Split into ...
1673         (named_section_eh_frame_section, collect2_eh_frame_section): ... new
1674         functions.
1675         * output.h (named_section_eh_frame_section): Declare.
1676         (collect2_eh_frame_section): Likewise.
1677
1678 2003-09-29  Zack Weinberg  <zack@codesourcery.com>
1679
1680         * real.c (real_sqrt): Use get_canonical_qnan directly.
1681
1682         * dwarf2out.c (add_const_value_attribute): Use real_to_target.
1683
1684         * varasm.c (assemble_real): Use real_to_target directly,
1685         calculate the number of significant elements of the result
1686         array and write them out in a loop, instead of using a giant
1687         switch statement to pick the correct REAL_VALUE_TO_TARGET_*
1688         macro.
1689
1690 2003-09-29  Jan Hubicka  <jh@suse.cz>
1691
1692         PR c++/12175
1693         * varasm.c (notice_global_symbol): Discard external symbols.
1694
1695         PR optimization/12286
1696         * gcov-io.c (gcov_read_words): Fix memmove call.
1697         * profile.c (compute_branch_probabilities): Add extra sanity checks.
1698
1699 2003-09-29  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1700
1701         * config.gcc (sparc-*-solaris2*): Handle Solaris 10 and up like
1702         Solaris 7-9.
1703
1704         * fixinc/inclhack.def (solaris_widec): Replace solaris2.[0-5]* by
1705         wildcards which explicitly match micro versions.
1706         * fixinc/fixincl.x: Regenerate.
1707
1708 2003-09-29  Kazu Hirata  <kazu@cs.umass.edu>
1709
1710         * fold-const.c (fold): Fold (A & ~B) - (A & B) into
1711         (A ^ B) - B, where B is any power of 2 minus 1.
1712
1713 2003-09-29  Jan Hubicka  <jh@suse.cz>
1714
1715         * libgcov.c (gcov_exit): Fix two pastos.
1716
1717 2003-09-29  Kazu Hirata  <kazu@cs.umass.edu>
1718
1719         * config/h8300/h8300.md (*tst_extzv_1_n): Combine with the
1720         define_split immediately below to form define_insn_and_split.
1721
1722 2003-09-29  Kazu Hirata  <kazu@cs.umass.edu>
1723
1724         * config/h8300/h8300.md (*tstsi_variable_bit): New.
1725         (*tstsi_variable_bit_qi): Likewise.
1726
1727 2003-09-28  Phil Edwards  <phil@codesourcery.com>
1728
1729         * doc/cppopts.texi:  Use 'dashMP' instead of '-MP' as a cross-
1730         reference name.
1731
1732 2003-09-28  Richard Henderson  <rth@redhat.com>
1733
1734         * c-decl.c (duplicate_decls): Copy DECL_SOURCE_LOCATION, not
1735         file and line separately.
1736
1737 2003-09-28  Ulrich Weigand  <uweigand@de.ibm.com>
1738
1739         * config/s390/s390.md ("*adddi3_carry1_cc", "*adddi3_carry1_cconly",
1740         "*adddi3_carry2_cc", "*adddi3_carry2_cconly", "*subdi3_borrow_cc",
1741         "*subdi3_borrow_cconly"): New insns.
1742         ("*addsi3_sub", "*subsi3_sub"): Remove.
1743         ("*subdi3_cc", *subdi3_cconly"): Use only if TARGET_64BIT.
1744         ("*subsi3_cc"): Fix op_type attribute.
1745
1746 2003-09-28  Richard Henderson  <rth@redhat.com>
1747
1748         * stmt.c (expand_asm_operands): Take a location_t, instead of
1749         individual file and line.
1750         * c-typeck.c (c_expand_asm_operands): Likewise.
1751         * tree.h (expand_asm_operands): Update decl.
1752         * c-common.h (c_expand_asm_operands): Likewise.
1753         * c-semantics (genrtl_asm_stmt): Update call.
1754
1755 2003-09-28  Philip Blundell  <philb@gnu.org>
1756
1757         * config/arm/arm.c (legitimize_pic_address): Check
1758         SYMBOL_REF_LOCAL_P, not ENCODED_SHORT_CALL_ATTR_P.
1759         (arm_assemble_integer): Likewise.
1760
1761 2003-09-28  Steven Bosscher  <steven@gcc.gnu.org>
1762
1763         * config/pdp11/pdp11-protos.h, config/pdp11/pdp11.c,
1764         config/c4x/c4x-c.c, config/c4x/c4x-protos.h, config/c4x/c4x.c,
1765         config/c4x/c4x.h:
1766         Convert to ISO C90 function declarations and definitions.
1767
1768 2003-09-28  Steven Bosscher  <steven@gcc.gnu.org>
1769
1770         *  config/stormy16/stormy16.c, config/stormy16/stormy16-protos.h:
1771         Convert to ISO C90 function declarations and definitions.
1772
1773 2003-09-28  Richard Sandiford  <rsandifo@redhat.com>
1774
1775         * config/mips/mips.c (mips_constant_info): Add reloc field.
1776         (mips_classify_constant): Initialize it.  Always set SYMBOL to the
1777         underlying symbol, not to an unspec.
1778         (mips_delegitimize_address, print_operand): Clean up accordingly.
1779
1780 2003-09-28  Richard Sandiford  <rsandifo@redhat.com>
1781
1782         * config/mips/mips-protos.h (mips16_gp_pseudo_reg): Remove.
1783         * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Remove orphaned comment.
1784         * config/mips/mips.c (mips_reloc_offset_ok_p): New function.
1785         (mips_classify_constant): Use it.
1786         (mips_splittable_symbol_p): Add an offset argument.
1787         (mips_classify_address): Adjust call accordingly.
1788         (mips_legitimize_symbol): Handle sdata references with LO_SUM rather
1789         than a relocation unspec.  Update call to mips_splittable_symbol_p.
1790         Generalize the code that copes with symbols + invalid offsets.
1791         (print_operand): Allow '%R' to be applied to small data addresses.
1792         (mips_reloc_string): Remove RELOC_GPREL16.
1793         (mips_sdata_pointer): Renamed from mips16_gp_pseudo_reg.  Return $gp
1794         for TARGET_EXPLICIT_RELOCS.  Return null if we can't use gp-relative
1795         relocation operators.
1796         * config/mips/mips.md (RELOC_GPREL16): Remove.  Shuffle other reloc
1797         constants accordingly.
1798
1799 2003-09-27  Roger Sayle  <roger@eyesopen.com>
1800
1801         * toplev.c (flag_evaluation_order): New global variable.
1802         * flags.h (flag_evaluation_order): Prototype here.
1803         * expr.c (expand_operands): If we need to preserve observable
1804         evaluation order, protect exp1 from clobbering exp0's result.
1805
1806 2003-09-28  Andreas Jaeger  <aj@suse.de>
1807
1808         * c-decl.c (finish_function): Convert definition to ISO C90.
1809         * ifcvt.c (mark_loop_exit_edges): Likewise.
1810         * ra-rewrite.c (emit_colors): Likewise.
1811
1812 2003-09-27  Nathanael Nerode  <neroden@gcc.gnu.org>
1813
1814         * config.gcc (alpha*-dec-osf[45]*): Disable fixproto.
1815         * config.gcc (arm*-*-uclinux*): Disable fixproto.
1816         * config.gcc (powerpc-*-eabispe*, powerpc-*-eabisimaltivec*,
1817         powerpc-*-eabialtivec*): Disable fixproto.
1818
1819 2003-09-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
1820
1821         PR optimization/12340
1822         * loop.h (struct induction): Document the new semantics
1823         of the 'same' field for bivs.
1824         * unroll.c (biv_total_increment): Don't count the same
1825         biv increment several times.
1826         (loop_iterations) [GENERAL_INDUCT]: Likewise.
1827
1828 2003-09-27  Graham Stott  <graham.stott@btinternet.com>
1829
1830         * unroll.c (loop_interations)[GT]: Add missing break.
1831
1832 2003-09-27  Kelley Cook  <kcook@gcc.gnu.org>
1833
1834         * config/chorus.h, config/darwin-c.c, config/darwin-protos.h,
1835         config/darwin.c, config/darwin.h, config/dbx.h, config/dbxcoff.h,
1836         config/dbxelf.h, config/elfos.h, config/fp-bit.h,
1837         config/freebsd-nthr.h, config/freebsd-spec.h, config/freebsd.h,
1838         config/freebsd3.h, config/freebsd4.h, config/freebsd5.h,
1839         config/freebsd6.h, config/netbsd-aout.h, config/netbsd-elf.h,
1840         config/netbsd.h, config/netware.h, config/openbsd-oldgas.h,
1841         config/openbsd.h, config/ptx4.h, config/alpha/alpha-protos.h,
1842         config/alpha/alpha.c, config/alpha/alpha.h, config/alpha/alpha.md,
1843         config/alpha/elf.h, config/alpha/ev4.md, config/alpha/ev5.md,
1844         config/alpha/ev6.md, config/alpha/freebsd.h, config/alpha/linux-elf.h,
1845         config/alpha/linux.h, config/alpha/netbsd.h, config/alpha/openbsd.h,
1846         config/alpha/osf.h, config/alpha/osf5.h, config/alpha/unicosmk.h,
1847         config/alpha/vms-cc.c, config/alpha/vms-crt0-64.c,
1848         config/alpha/vms-crt0.c, config/alpha/vms-dwarf2.asm,
1849         config/alpha/vms-dwarf2eh.asm, config/alpha/vms-ld.c,
1850         config/alpha/vms-psxcrt0-64.c, config/alpha/vms-psxcrt0.c,
1851         config/alpha/vms.h, config/alpha/vms64.h, config/alpha/vms_tramp.asm,
1852         config/alpha/xm-vms.h, config/arc/arc-modes.def,
1853         config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h,
1854         config/arc/arc.md, config/arc/initfini.c, config/arc/lib1funcs.asm,
1855         config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h,
1856         config/avr/avr.md, config/d30v/d30v-protos.h, config/d30v/d30v.h,
1857         config/d30v/d30v.md, config/fr30/fr30-protos.h, config/fr30/fr30.c,
1858         config/fr30/fr30.h, config/fr30/fr30.md, config/fr30/lib1funcs.asm,
1859         config/frv/cmovd.c, config/frv/cmovh.c, config/frv/cmovw.c,
1860         config/frv/frv-abi.h, config/frv/frv-asm.h, config/frv/frv-modes.def,
1861         config/frv/frv-protos.h, config/frv/frv.c, config/frv/frv.h,
1862         config/frv/frv.md, config/frv/frvbegin.c, config/frv/frvend.c,
1863         config/frv/lib1funcs.asm, config/h8300/clzhi2.c, config/h8300/ctzhi2.c,
1864         config/h8300/parityhi2.c, config/h8300/popcounthi2.c,
1865         config/i370/i370-c.c, config/i370/i370-protos.h, config/i370/i370.c,
1866         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
1867         config/i370/mvs.h, config/i370/oe.h, config/i386/darwin.h,
1868         config/i960/i960-c.c, config/i960/i960-coff.h,
1869         config/i960/i960-modes.def, config/i960/i960-protos.h,
1870         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
1871         config/i960/rtems.h, config/ia64/elf.h, config/ia64/ia64.h,
1872         config/m32r/initfini.c, config/m32r/m32r-protos.h, config/m32r/m32r.c,
1873         config/m32r/m32r.h, config/m32r/m32r.md, config/m68hc11/larith.asm,
1874         config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c,
1875         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
1876         config/m68hc11/m68hc12.h, config/m68k/coff.h, config/m68k/crti.s,
1877         config/m68k/crtn.s, config/m68k/hp320.h, config/m68k/hp320base.h,
1878         config/m68k/lb1sf68.asm, config/m68k/linux.h, config/m68k/m68020-elf.h,
1879         config/m68k/m68k-aout.h, config/m68k/m68k-none.h,
1880         config/m68k/m68k-protos.h, config/m68k/m68k.c, config/m68k/m68k.h,
1881         config/m68k/m68k.md, config/m68k/m68kelf.h, config/m68k/m68kv4.h,
1882         config/m68k/netbsd-elf.h, config/m68k/openbsd.h,
1883         config/m68k/rtemself.h, config/m68k/sgs.h, config/mcore/lib1.asm,
1884         config/mcore/mcore-elf.h, config/mcore/mcore-pe.h,
1885         config/mcore/mcore-protos.h, config/mcore/mcore.c,
1886         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
1887         config/mips/elforion.h, config/mips/iris5.h, config/mips/iris6.h,
1888         config/mips/iris6gld.h, config/mips/irix6-libc-compat.c,
1889         config/mips/linux.h, config/mips/mips-protos.h, config/mips/mips.c,
1890         config/mips/mips.h, config/mips/mips.md, config/mips/netbsd.h,
1891         config/mips/openbsd.h, config/mips/r3900.h, config/mips/rtems.h,
1892         config/mips/vr.h, config/mn10300/linux.h,
1893         config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
1894         config/mn10300/mn10300.h, config/mn10300/mn10300.md,
1895         config/ns32k/__unorddf2.c, config/ns32k/__unordsf2.c,
1896         config/ns32k/netbsd.h, config/ns32k/ns32k-protos.h,
1897         config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/ns32k/ns32k.md,
1898         config/pdp11/2bsd.h, config/pdp11/pdp11-modes.def,
1899         config/pdp11/pdp11-protos.h, config/pdp11/pdp11.c,
1900         config/pdp11/pdp11.h, config/pdp11/pdp11.md, config/rs6000/biarch64.h,
1901         config/rs6000/default64.h, config/sh/coff.h, config/sh/crt1.asm,
1902         config/sh/crti.asm, config/sh/crtn.asm, config/sh/elf.h,
1903         config/sh/embed-elf.h, config/sh/linux.h, config/sh/little.h,
1904         config/sh/netbsd-elf.h, config/sh/rtems.h, config/sh/rtemself.h,
1905         config/sh/sh-protos.h, config/sh/sh.c, config/sh/sh.h,
1906         config/sh/sh.md, config/sh/sh64.h, config/sh/shmedia.h,
1907         config/sh/sshmedia.h, config/sh/ushmedia.h, config/sparc/pbd.h,
1908         config/sparc/sparc.h, doc/install-old.texi, fixinc/fixinc.ptx,
1909         fixinc/fixinc.svr4: GNU CC -> GCC.
1910
1911 2003-09-26  Loren James Rittle  <ljrittle@acm.org>
1912
1913         * objc/objc-act.c (tm_p.h): Tweak order.
1914         * objc/Make-lang.in (objc/objc-act.o): Add $(TM_P_H).
1915
1916 2003-09-26  Nathanael Nerode  <neroden@gcc.gnu.org>
1917
1918         * config.gcc (hppa*64*-*-linux* | parisc*64*-*-linux*):
1919         Include t-slibgcc-elf-ver and t-linux in tmake_file.
1920         * config.gcc (hppa*64*-*-linux* | parisc*64-*-linux*):
1921         Disable fixproto.
1922         * config.gcc (i960-*-coff*, m68k-*-aout*, sparclite-*-coff*):
1923         Disable fixproto.
1924         * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*,
1925         sparcv9-*-solaris2*, sparc-*-solaris2*): Disable fixproto.
1926
1927         * config/i386/unix.h: Remove (unused) DEFAULT_ASSEMBLER_DIALECT.
1928
1929 2003-09-26  Loren James Rittle  <ljrittle@acm.org>
1930
1931         * config/i386/i386.h (ix86_return_in_memory): Revert my last patch.
1932         * objc/objc-act.c (tm_p.h): Include.
1933
1934 2003-09-26  Per Bothner  <pbothner@apple.com>
1935
1936         * dbxout.c (dbxout_typedefs):  Output typedefs in forward order.
1937         No longer any need to reverse by recursion.
1938
1939 2003-09-26  Roger Sayle  <roger@eyesopen.com>
1940             Richard Henderson  <rth@redhat.com>
1941
1942         PR optimization/11741
1943         * gcse.c (pre_insert_copy_insn): Tweak the logic for finding the
1944         appropriate set to match that in hash_scan_insn.  Fall back to
1945         the original copy method, if we can't validate changing insn.
1946         (pre_delete): Only delete instructions that have a single_set,
1947         instead of aborting when we encounter an PARALLEL insn with more
1948         then one SET.
1949
1950 2003-09-26  Andreas Krebbel  <krebbel1@de.ibm.com>
1951
1952         * config/s390/s390.md ("builtin_setjmp_setup"): Insn deleted.
1953         ("builtin_longjmp"): Insn deleted.
1954         ("save_stack_nonlocal"): Save literal pool base pointer behind
1955         backchain and stack pointer.
1956         ("restore_stack_nonlocal"): Restore literal pool base pointer.
1957         * config/s390/s390.h (STACK_SAVEAREA_MODE): Double size of
1958         the stack save area for the nonlocal goto case.
1959
1960 2003-09-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1961
1962         PR bootstrap/12358
1963         * pa.c (output_bvb): Fix typo.
1964
1965 2003-09-26  Richard Sandiford  <rsandifo@redhat.com>
1966
1967         * expmed.c (store_bit_field): Don't search for an integer mode
1968         unless we need the result.
1969
1970 2003-09-26  Richard Sandiford  <rsandifo@redhat.com>
1971
1972         * expr.c (emit_move_insn_1): If there is no move pattern for the
1973         original mode, try using a pattern for the corresponding integer mode.
1974
1975 2003-09-26  Richard Sandiford  <rsandifo@redhat.com>
1976
1977         PR middle-end/9200
1978         * combine.c (if_then_else_cond): Tighten mode check.
1979
1980 2003-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
1981
1982         * cppcharset.c, cpphash.h: Rename 'struct strbuf' to
1983         'struct _cpp_strbuf'.
1984
1985         * config/i386/netbsd-elf.h, config/i386/netbsd64.h,
1986         config/i386/netware.h, config/i386/nto.h, config/i386/openbsd.h,
1987         config/i386/pentium.md, config/i386/pmmintrin.h, config/i386/ppro.md,
1988         config/i386/ptx4-i.h, config/i386/rtemself.h, config/i386/sco5.h,
1989         config/i386/sol2.h, config/i386/svr3gas.h, config/i386/sysv3.h,
1990         config/i386/sysv4-cpp.h, config/i386/sysv4.h, config/i386/sysv5.h,
1991         config/i386/unix.h, config/i386/uwin.h, config/i386/vsta.h,
1992         config/i386/xm-cygwin.h, config/i386/xm-djgpp.h,
1993         config/i386/xm-mingw32.h, config/i386/xmmintrin.h: Replace
1994         "GNU CC", "GNU compiler", and "GNU C-compiler" with "GCC".
1995         * config/i386/i386-aout.h, config/i386/i386-coff.h,
1996         config/i386/i386-interix.h, config/i386/i386-interix3.h,
1997         config/i386/i386-modes.def, config/i386/i386-protos.h,
1998         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
1999         config/i386/i386elf.h, config/i386/k6.md, config/i386/kaos-i386.h,
2000         config/i386/linux-aout.h, config/i386/linux.h, config/i386/linux64.h,
2001         config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mingw32.h,
2002         config/i386/mmintrin.h, config/i386/moss.h: GNU CC -> GCC.
2003         "GNU compiler" -> GCC.
2004         * config/i386/att.h, config/i386/beos-elf.h, config/i386/biarch64.h,
2005         config/i386/bsd.h, config/i386/crtdll.h, config/i386/cygming.h,
2006         config/i386/cygwin.h, config/i386/cygwin1.c, config/i386/cygwin2.c,
2007         config/i386/darwin.h, config/i386/djgpp.h, config/i386/emmintrin.h,
2008         config/i386/freebsd-aout.h, config/i386/freebsd.h,
2009         config/i386/freebsd64.h, config/i386/gas.h: GNU CC -> GCC.
2010
2011 2003-09-25  Kelley Cook  <kelleycook@wideopenwest.com>
2012
2013         * cgraph.c (dump_cgraph):  Don't output newline before dump.  Add in
2014         "local" to the callgraph dump.  Output "after inlining" earlier.
2015         * cgraphunit.c: Fix dumpfile whitespace and commonize headers of the
2016         callgraph dumps.  Correct misspellings.
2017         (cgraph_decide_inlining):  Output number of insns before inlining.
2018         Output the calling function into which a function is inlined.
2019         (cgraph_decide_small_functions): Format dump file like always_inline.
2020
2021 2003-09-25  Loren James Rittle  <ljrittle@acm.org>
2022
2023         * config/i386/i386.h (ix86_return_in_memory): Add prototype.
2024
2025 2003-09-25  Ulrich Weigand  <uweigand@de.ibm.com>
2026
2027         * config/s390/s390.c (s390_emit_prologue): Simplify accesses to
2028         FPR slots in the save area.
2029         (s390_emit_epilogue): Likewise.
2030
2031 2003-09-25  Richard Sandiford  <rsandifo@redhat.com>
2032
2033         * cgraph.h (cgraph_remove_edge): Declare.
2034         * cgraph.c (cgraph_remove_edge): Make extern.
2035         * cgraphunit.c (cgraph_finalize_function): Call cgraph_remove_edge
2036         instead of cgraph_remove_call.
2037
2038 2003-09-25  Ulrich Weigand  <uweigand@de.ibm.com>
2039
2040         * objc/objc-act.c (gen_declaration_1): Fix printf format.
2041
2042 2003-09-25  Richard Earnshaw  <rearnsha@arm.com>
2043
2044         * arm.c (all_cores): arm710t, arm720t and arm740t are all based on the
2045         arm7tdmi core.
2046
2047 2003-09-25  Ziemowit Laski  <zlaski@apple.com>
2048
2049         * config/darwin-protos.h (objc_image_info_section):
2050         New prototype.
2051
2052 2003-09-25  Ziemowit Laski  <zlaski@apple.com>
2053
2054         * Makefile.in (stub-objc.o): Depend on $(GGC_H).
2055
2056 2003-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
2057
2058         * config.gcc: Get rid of more gratuitious 'x'es.  Actually allow
2059         tsc701 as a --with-cpu, --with-tune setting for sparc.
2060
2061 2003-09-25  Ziemowit Laski  <zlaski@apple.com>
2062
2063         * c-parse.in (objc_try_stmt): Do not specify a %type.
2064
2065 2003-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
2066
2067         * config.gcc: New 'widely ported system' clause for rtems.
2068         Set thread file there, not in individual clauses.
2069
2070 2003-09-25  Richard Sandiford  <rsandifo@redhat.com>
2071
2072         PR target/6222
2073         * config/mips/mips.c (mips_va_arg): Handle arguments that must be
2074         passed on the stack.
2075
2076 2003-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
2077
2078         * config.gcc (widely ported systems section): Mostly alphabetize
2079         by system.  Comment the case where we can't.
2080         * config.gcc (widely ported systems section): Reindent and clean up.
2081
2082         * config.gcc: Remove some unnecessary uses of 'x' in case statements.
2083         Actually allow ep9312 as an arm --with-arch setting.
2084
2085         * config.gcc (*-hpux11): Disable fixproto.
2086
2087 2003-09-24  Phil Edwards  <phil@codesourcery.com>
2088
2089         PR pch/12112
2090         * gcc/cppfiles.c (pch_open_file): Return based on combined
2091         result of all files.
2092         (validate_pch): Return validate flag for current file.
2093
2094 2003-09-24  Roger Sayle  <roger@eyesopen.com>
2095
2096         PR bootstrap/12358
2097         * fold-const.c (tree_swap_operands_p): Only reorder operands when
2098         one of the operands is constant.
2099
2100 2003-09-24  Ziemowit Laski  <zlaski@apple.com>
2101
2102         MERGE OF objc-improvements-branch into MAINLINE:
2103         * Makefile.in (C_OBJS): Add in stub-objc.o.
2104         (c-parse.y): Change sed demarcations to begin with '@@'.
2105         (stub-objc.o): New rule.
2106         * c-common.c (flag_nil_receivers, flag_objc_exceptions, flag_zero_link,
2107         flag_replace_objc_classes): New flags.
2108         * c-common.h (RID_AT_THROW, RID_AT_TRY, RID_AT_CATCH, RID_AT_FINALLY,
2109         RID_AT_SYNCHRONIZED): New keywords.
2110         (flag_nil_receivers, flag_objc_exceptions, flag_zero_link,
2111         flag_replace_objc_classes): New flags.
2112         (lookup_interface, is_class_name, objc_is_object_ptr, objc_check_decl,
2113         objc_comptypes, objc_message_selector, lookup_objc_ivar,
2114         get_current_scope, objc_mark_locals_volatile): New prototypes,
2115         some moved from c-tree.h.
2116         * c-decl.c (get_current_scope, objc_mark_locals_volatile): New functions.
2117         (finish_decl): Adjust where objc_check_decl() gets called.
2118         * c-lang.c (lookup_interface, is_class_name, objc_is_id,  objc_check_decl,
2119         objc_comptypes, objc_message_selector, lookup_objc_ivar): Remove stubs.
2120         * c-opts.c (c_common_handle_option): Add handling for  flag_nil_receivers,
2121         flag_objc_exceptions, flag_replace_objc_classes and flag_zero_link.
2122         * c-parse.in: Replace 'ifc' and 'end ifc' sed markers with '@@ifc' and
2123         '@@end_ifc', respectively.
2124         (AT_THROW, AT_TRY, AT_CATCH, AT_FINALLY, AT_SYNCHRONIZED): New %tokens.
2125         (objc_try_stmt, superclass, class_ivars, objc_try_catch-stmt,
2126         objc_finally_block): New rules.
2127         (component_decl_list2): Clean up semantic action for @defs construct.
2128         (component_decl, c99_block_start): Remove call to add_objc_decls().
2129         (poplevel): Add call to objc_clear_super_receiver().
2130         (stmt): Add rules for @throw, @try..@catch..@finally and @synchronized
2131         constructs.
2132         (classdef, methodprotolist): Clean up/simplify.
2133         (methodprotolist2): Eliminate.
2134         (methodproto): Call add_method() instead of add_class_method() and
2135         add_instance_method().
2136         (receiver): Add TYPENAME production.
2137         (reswords): Add "throw", "try", "catch", "finally" and "synchronized".
2138         (rid_to_yy): Add AT_THROW, AT_TRY, AT_CATCH, AT_FINALLY and
2139         AT_SYNCHRONIZED.
2140         * c-tree.h (lookup_interface, is_class_name, objc_is_id, objc_check_decl,
2141         objc_comptypes, objc_message_selector)
2142         * c-typeck.c (comptypes): In ObjC mode, call objc_comptypes() for
2143         struct and pointer types.
2144         (build_c_cast): Do not discard ObjC protocol qualifiers.
2145         (convert_for_assignment): Cache result of comp_target_types() instead
2146         of calling it more than once.
2147         * c.opt (fnext-runtime): Update description string.
2148         (fnil-receivers, fobjc-exceptions, freplace-objc-classes, fzero-link):
2149         New ObjC/ObjC++-specific flags.
2150         * function.h (GCC_FUNCTION_H): Header guard.
2151         * gengtype-lex.l: Teach lexer about new @@... sed demarcations.
2152         * stub-objc.c: New file, to be used to satisfy references to ObjC
2153         functions by the C and C++ front-ends.
2154         * config/darwin.c (_OBJC_IMAGE_INFO): New global metadata.
2155         * config/darwin.h (FUNCTION): Add in_objc_image_info.
2156         (SECTION_FUNCTION): Add objc_image_info_section.
2157         * doc/invoke.texi: Link to GCC web site for Objective-C information.
2158         (-fconstant-string-class): Update documentation.
2159         (-fno-nil-receivers, -fobjc-exceptions, -freplace-objc-classes,
2160         -fzero-link): New documentation.
2161         * objc/Make-lang.in (objc-parse.y): Change sed demarcations to begin
2162         with '@@'.
2163         * objc/lang-specs.h (@objective-c-header): Fix -E spec.
2164         * objc/objc/objc-act.c: Replace TYPE_NAME with OBJC_TYPE_NAME
2165         throughout; provide casts for return values from memory allocation
2166         functions (xmalloc, alloca, ggc_alloc, etc.).
2167         (OBJC_VOID_AT_END): New macro.
2168         (rtl.h): Do not #include any more.
2169         (STRING_OBJECT_GLOBAL_NAME): Replaced with STRING_OBJECT_GLOBAL_FORMAT.
2170         (TAG_MSGSEND_STRET, TAG_MSGSENDSUPER_STRET, TAG_MSGSEND_NONNIL,
2171         TAG_MSGSEND_NONNIL_STRET, TAG_EXCEPTIONEXTRACT, TAG_EXCEPTIONTRYENTER,
2172         TAG_EXCEPTIONTRYEXIT, TAG_EXCEPTIONMATCH, TAG_EXCEPTIONTHROW,
2173         TAG_SYNCENTER, TAG_SYNCEXIT): New NeXT runtime entry points.
2174         (struct val_stack, catch_count_stack, exc_binding_stack,  val_stack_push,
2175         val_stack_pop): New.
2176         (objc_check_decl): Fix precondition for error message, along with
2177         the message itself.
2178         (lookup_and_install_protocols): Remove nonexistent protocols from
2179         protocol list instead of returning error_mark_node.
2180         (create_builtin_decl): Use DECL_ARTIFICIAL only for VAR_DECLs.
2181         (setup_string_decl): Generalize to use STRING_OBJECT_GLOBAL_FORMAT.
2182         (synth_module_prologue): General clean-up; construct NeXT-specific
2183         runtime API prototypes if needed.
2184         (build_string_class_template): Remove.
2185         (check_string_class_template, string_layout_checked): New.
2186         (build_objc_string_object): Generalize to work with
2187         -fconstant-string-class.
2188         (build_objc_symtab_template): Fix layout for the NeXT runtime.
2189         (build_metadata_decl): New.
2190         (forward_declare_categories): Call build_metadata_decl() instead of
2191         create_builtin_decl() et al.
2192         (build_module_descriptor): Use OBJC_VOID_AT_END instead of
2193         void_list_node_1.
2194         (build_selector_reference_decl, build_class_reference_decl,
2195         build_objc_string_decl): Do not set TREE_READONLY.
2196         (get_proto_encoding): Do not call hack_method_prototype().
2197         (get_class_reference): Add failure mode for invalid class names;
2198         support -fzero-link; defer if in an ObjC++ template declaration.
2199         (objc_declare_alias, objc_declare_class): Fix up duplicate name
2200         lookup; check for global scope if in ObjC++.
2201         (is_class_name): Generalize to work with various tree nodes (TYPE_DECL,
2202         RECORD_TYPE, IDENTIFIER_NODE, etc.)
2203         (objc_is_id): Removed.
2204         (objc_is_object_ptr): New function.
2205         (get_class_ivars_from_name): New function, used for @defs construct.
2206         (get_class_ivars): Add option to return raw ivars; create a
2207         ClASS_OWN_IVARS list for each class as needed.
2208         (objc_enter_block, objc_exit_block, objc_declare_variable,
2209         objc_build_throw_stmt, val_stack_push, val_stack_pop,
2210         objc_build_try_enter_fragment, objc_build_extract_expr,
2211         objc_build_try_exit_fragment, objc_build_extract_fragment,
2212         objc_build_try_prologue, objc_build_try_epilogue,
2213         objc_build_catch_stmt, objc_build_catch_epilogue,
2214         objc_build_finally_prologue, objc_build_finally_epilogue,
2215         objc_build_try_catch_finally_stmt, objc_build_synchronized_prologue,
2216         objc_build_synchronized_epilogue, build_objc_exception_stuff):
2217         New functions.
2218         (_JBLEN): _setjmp jmpbuf size (needs to be made a target hook in
2219         the future).
2220         (build_private_template): Fix up calls to get_class_ivars().
2221         (offset_is_register, forwarding_offset): Remove.
2222         (objc_method_parm_type, objc_encoded_type_size): New functions.
2223         (encode_method_prototype): Simplify to no longer depend on
2224         back-end information.
2225         (build_tmp_function_decl_xxx, build_tmp_function_decl,
2226         hack_method_prototype): Removed.
2227         (generate_protocol_references): Remove calls to
2228         build_tmp_function_decl().
2229         (generate_protocols): Adjust calls to encode_method_prototype().
2230         (build_class_template): Generate sel_id' and 'gc_object_type' fields
2231         for the NeXT runtime.
2232         (synth_forward_declarations): Call build_metadata_decl().
2233         (check_ivars): Check that the number of ivars matches also.
2234         (build_super_template): Modify super_type directly; disable debugging
2235         output while generating decl.
2236         (build_ivar_list_initializer): Skip list elements that are not
2237         FIELD_DECLs.
2238         (ivar_list_length): New function.
2239         (generate_ivar_lists): Call ivar_list_length() instead of list_length()
2240         and encode_method_prototype() instead of encode_method_def().
2241         (build_shared_structure_initializer): Generate 'sel_id' field for
2242         the NeXT runtime.
2243         (generate_category): Do not set TREE_USED.
2244         (build_keyword_selector): Ditto; transform into a function argument
2245         chain.
2246         (get_arg_type_list): If there are no user-specified arguments, use
2247         '...'; use OBJC_VOID_AT_END.
2248         (check_duplicates): Add a parameter indicating whether methods or
2249         selectors are being checked.
2250         (receiver_is_class_object): Add parameters indicating whether
2251         receiver is 'self' or 'super'; robustify.
2252         (build_message_expr): Defer call to finish_message_expr() if
2253         inside an ObjC++ template.
2254         (lookup_method_in_hash_lists): New function.
2255         (finish_message_expr): Complete rewrite/fix.
2256         (build_objc_method_call): Ditto; factor out commonalities between
2257         the GNU and NeXT runtimes; acccommodate ..._stret and ...NonNil
2258         messenger variants on the NeXT.
2259         (lookup_instance_method_static, lookup_class_method_static):
2260         Fold into a single lookup_method_static() function with an
2261         additional parameter.
2262         (add_class_method, add_instance_method): Fold into a single
2263         add_method() function with an additional parameter.
2264         (add_category): Make duplicate categories a hard error in ObjC++.
2265         (add_instance_variable): Properly handle unnamed ivars, arrays of
2266         zero or no size and bitfields.  In ObjC++, check for nontrivial
2267         C++ class instances.
2268         (is_public): Allow C functions to access non-@public ivars, with
2269         a warning.
2270         (start_class): Move common initializations to
2271         synth_module_prologue(); check for global scope if in ObjC++.
2272         (continue_class): Fix calls to finish_struct().
2273         (objc_declare_protocols, start_protocol): Check for global scope
2274         if in ObjC++.
2275         (encode_pointer): Encode 'BOOL *' specially on the NeXT.
2276         (encode_aggregate_within): Rewrite to properly distinguish
2277         struct tags from typedefs in both ObjC and ObjC++.
2278         (encode_bitfield, encode_complete_bitfield): Remove.
2279         (encode_next_bitfield, encode_gnu_bitfield): New functions.
2280         (encode_field_decl): Call encode_next_bitfield() or
2281         encode_gnu_bitfield() as needed.
2282         (synth_self_and_ucmd_args): New function.
2283         (start_method_def): Use it.
2284         (objc_types_are_equivalent): New function.
2285         (comp_proto_with_proto): Use it instead of comptypes(), since
2286         we need symmetry.
2287         (really_start_method): Use lookup_method_static() instead of
2288         lookup_class_method_static() and lookup_instance_method_static();
2289         Emit 'extern "C"' if in ObjC++ mode.
2290         (add_objc_decls): Removed.
2291         (UOBJC_SUPER_scope): New variable.
2292         (get_super_receiver): Move construction of 'super' from
2293         add_objc_decls(); remove dependency on struct objc_class.
2294         (encode_method_def): Removed; encode_method_prototype() is
2295         used instead.
2296         (objc_clear_super_receiver): New function.
2297         (objc_expand_function_end): Do not do anything for ordinary
2298         C functions.
2299         (finish_method_def): Mark ObjC methods as un-inlinable.
2300         (gen_declaration_1): Emit widths of bitfields.
2301         (finish_objc): Call generate_objc_image_info() if needed;
2302         use check_duplicates() when checking for selector duplicates.
2303         (generate_objc_image_info): New function.
2304         * objc/objc-act.h (add_instance_method, add_class_method,
2305         get_class_ivars): Remove prototypes.
2306         (objc_build_throw_stmt, objc_build_try_catch_finally_stmt,
2307         objc_build_synchronized_prologue, objc_build_synchronized_epilogue,
2308         objc_build_catch_stmt, objc_build_catch_epilogue,
2309         objc_build_finally_prologue, objc_build_finally_epilogue,
2310         add_method, get_class_ivars_from_name): New prototypes.
2311         (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): New.
2312         (TYPE_PROTOCOL_LIST): Robustify to distinguish from
2313         TRANSLATION_UNIT_DECLs.
2314         (OBJC_TYPE_NAME): New.
2315         (objc_tree_code): Ensure that either <c-tree.h> or <cp/cp-tree.h>
2316         got included.
2317         (IS_SUPER): Robustify.
2318         (umsg_stret_decl, umsg_super_stret_decl, umsg_nonnil_decl,
2319         umsg_nonnil_stret_decl, objc_storage_class, objc_exception_extract_decl,
2320         objc_exception_try_enter_decl, objc_exception_try_exit_decl,
2321         objc_exception_match_decl, objc_exception_throw_decl,
2322         objc_sync_enter_decl, objc_sync_exit_decl, objc_exception_data_template,
2323         objc_setjmp_decl, objc_stack_exception_data, objc_caught_exception,
2324         objc_rethrow_exception, objc_eval_once, objc_exception_block_stack,
2325         objc_catch_type): New ObjC/ObjC++ roots.
2326         * objc/objc-tree.def (MESSAGE_SEND_EXPR, CLASS_REFERENCE_EXPR): New
2327         ObjC/ObjC++ tree node codes.
2328
2329 2003-09-24  Alexandre Oliva  <aoliva@redhat.com>
2330
2331         * cpplib.c (do_pragma): Reintroduce cb_line_change call in the
2332         code path that calls a handler.
2333
2334 2003-09-24  Nathanael Nerode  <neroden@gcc.gnu.org>
2335
2336         * config.gcc (c4x-*, tic4x-*, d30v-*, mmix-knuth-mmixware):
2337         Disable fixproto.
2338
2339         * config.gcc: Clean up and reindent $with_cpu=yes|no clause and
2340         the section giving $with_cpu defaults by target.
2341
2342         * config.gcc (arm-*-coff*, armel-*-coff*, arm*-*-ecos-elf,
2343         arm*-*-elf, ep9312-*-elf, arm*-wince-pe*, arm*-*-pe*, arm*-*-pe*,
2344         rs6000-ibm-aix4.[3456789]*, powerpc-ibm-aix4.[3456789]*,
2345         rs6000-ibm-aix5.1.*, powerpc-ibm-aix5.1.*,
2346         rs6000-ibm-aix[56789].*, powerpc-ibm-aix[56789].*,
2347         i[34567]86-pc-msdosdjgpp*): Disable fixproto.
2348
2349 2003-09-24  David Edelsohn  <edelsohn@gnu.org>
2350
2351         * config/rs6000/rs6000.md (movti_power): Collapse case 1 and 2
2352         together.  Protect load string instruction with TARGET_STRING.
2353         (movti_string): Collapse case 1 and 2 together.
2354
2355 2003-09-24  Nathan Sidwell  <nathan@codesourcery.com>
2356
2357         * c-common.c (c_common_type_for_mode): Check for VOIDmode.
2358
2359 2003-09-24  Richard Earnshaw  <rearnsha@arm.com>
2360
2361         * arm.h (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Wrap in
2362         do...while(0)
2363
2364 2003-09-23  Nathanael Nerode  <neroden@gcc.gnu.org>
2365
2366         * config.gcc: Move use_fixproto=no from generic vxworks clause to
2367         specific one.
2368
2369         * config.gcc (powerpc-*-gnu-gnualtivec*): Disable fixproto
2370         (accidentally missed in last pass).
2371
2372 2003-09-23  Andrew Pinski  <apinski@apple.com>
2373
2374         PR bootstrap/12383
2375         * configure: Regenerate.
2376
2377 2003-09-23  Nathanael Nerode  <neroden@gcc.gnu.org>
2378
2379         * config.gcc (x86_64-*-freebsd*): Disable fixproto (accidentally
2380         missed in last pass).
2381
2382 2003-09-23  Alexandre Oliva  <aoliva@redhat.com>
2383
2384         * config/mn10300/mn10300.md (andsi3): Fix cut&pasto in 0xfffffffe
2385         constant.
2386
2387 2003-09-23  Nathanael Nerode  <neroden@gcc.gnu.org>
2388
2389         * config.gcc: Move vax-*-vms* unsupported notice up with the rest.
2390
2391         * config.gcc (alpha64*-dec-*vms*, alpha*-dec-*vms*,
2392         powerpc-*-eabisim*, powerpc-*-eabi*, powerpcle-*-eabisim*,
2393         powerpcle-*-eabi*): Disable fixproto.
2394
2395         * config.gcc: Move use_fixproto=no from generic FreeBSD clause to
2396         specific FreeBSD clauses.
2397         * config.gcc: Move use_fixproto=no from generic NetBSD clause to
2398         specific NetBSD clauses.
2399         * config.gcc: Move use_fixproto=no from generic OpenBSD clause
2400         to specific OpenBSD clauses.
2401
2402 2003-09-23  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2403
2404         * pa.c (hppa_expand_prologue): Do pic register save in frame marker
2405         without adding a frame note.
2406         * pa.md (allocate_stack): Save pic register in new frame marker when
2407         generating pic code.
2408
2409 2003-09-23  Kelley Cook  <kelleycook@wideopenwest.com>
2410
2411         * cgraphunit.c (cgraph_expand_all_functions): Renamed from
2412         cgraph_expand_functions.
2413
2414 2003-09-23  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2415
2416         * Makefile.in (gnucompare*): Merge into ...
2417         (slowcompare*): ... here.
2418         (fastcompare*): New targets.
2419         * aclocal.m4 (gcc_AC_PROG_CMP_IGNORE_INITIAL): Add checks for
2420         other "fast" cmp programs.
2421         * configure: Regenerate.
2422
2423 2003-09-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2424
2425         * targhooks.c: Include output.h.
2426         * Makefile.in (targhooks.o): Add output.h to dependency list.
2427
2428 2003-09-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2429
2430         * config.host: Removed superfluous newline.
2431
2432 2003-09-23  Nathanael Nerode  <neroden@gcc.gnu.org>
2433
2434         * config.gcc: Use ${target}, not $machine.
2435         * configure.in: Don't set $machine.
2436         * configure: Regenerate.
2437
2438 2003-09-23  Geoffrey Keating  <geoffk@apple.com>
2439
2440         * config/t-darwin (crt2.o): Add stmp-int-hdrs to dependencies.
2441
2442         * config/rs6000/rs6000.c (function_arg_pass_by_reference): Don't
2443         pass zero-size arrays by reference.
2444         (rs6000_va_arg): Likewise.
2445
2446 2003-09-23  Nathanael Nerode  <neroden@gcc.gnu.org>
2447
2448         * config.gcc: Set use_fixproto=no in each specific *-gnu*
2449         configuration, rather than the generic one.
2450
2451 2003-09-23  Richard Henderson  <rth@redhat.com>
2452
2453         * tree-inline.c (remap_save_expr): Map new save_expr to identity
2454         rather than to error_mark_node.
2455
2456 2003-09-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2457
2458         * configure.in (HAVE_GAS_SHF_MERGE): Always define to test result.
2459         Update description.
2460         * configure: Regenerate.
2461         * config.in: Likewise.
2462         * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Test for
2463         HAVE_GAS_SHF_MERGE value.
2464         * varasm.c (mergeable_string_section): Likewise.
2465         (mergeable_constant_section): Likewise.
2466
2467 2003-09-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2468
2469         * except.h (MUST_USE_SJLJ_EXCEPTIONS): Test for DWARF2_UNWIND_INFO
2470         value.
2471
2472 2003-09-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2473
2474         * target.h (struct gcc_target): New member external_libcall.
2475         * target-def.h (TARGET_ASM_EXTERNAL_LIBCALL): Provide default.
2476         (TARGET_ASM_OUT): Use it.
2477         * doc/tm.texi (TARGET_ASM_EXTERNAL_LIBCALL): Document.
2478         * targhooks.c: Convert to ISO C 90.
2479         (default_external_libcall): New function.
2480         * targhooks.h (default_external_libcall): Declare.
2481         * varasm.c (assemble_external_libcall): Use
2482         targetm.asm_out.external_libcall instead of
2483         ASM_OUTPUT_EXTERNAL_LIBCALL.
2484         * config/mips/mips-protos.h [TARGET_IRIX5 || TARGET_IRIX 6]
2485         (mips_output_external_libcall): Declare.
2486         * config/mips/mips.c (mips_output_external_libcall): Change
2487         definition guard.
2488         Change to match TARGET_ASM_EXTERNAL_LIBCALL.
2489         Only operate for O32 ABI.
2490         * config/mips/iris5.h (TARGET_ASM_EXTERNAL_LIBCALL): Define
2491         instead of ASM_OUTPUT_EXTERNAL_LIBCALL.
2492         * config/mips/iris6.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Don't undef,
2493         superceded by TARGET_ASM_EXTERNAL_LIBCALL.
2494
2495 2003-09-22  Nathnael Nerode  <neroden@gcc.gnu.org>
2496
2497         * config.gcc: Do per-target disabling of fixproto here in clauses,
2498         not in t- fragments.
2499         * configure.in: Adjust to set STMP_FIXPROTO correctly.
2500         * configure: Regenerate.
2501         * config/arm/t-semi, config/cris/t-cris, config/i386/t-beos,
2502         config/i386/t-cygming, config/i386/t-nto, config/ia64/t-hpux,
2503         t-freebsd, t-linux, t-netbsd, t-openbsd, t-rtems, t-vxworks,
2504         xtensa/t-xtensa: Remove setting of STMP_FIXPROTO.
2505         * config/i370/t-oe, config/i386/t-netware, config/pa/t-bsd,
2506         t-interix, t-linux-aout:  Delete files consisting only of
2507         setting of STMP_FIXPROTO.
2508
2509         * config.host: Allow unknown hosts (not targets).  Allow
2510         ns32k-*-netbsdelf* as a host (not a target).  Remove redundant
2511         empty clauses.  Remove useless obsolete-configuration clause.
2512         Prune unsupported configuration list.  Collapse identical
2513         clauses for closely related systems.  Rewrite comment for
2514         unsupported hosts list.  Reorganize a little.
2515
2516 2003-09-22  Richard Henderson  <rth@redhat.com>
2517
2518         * c-common.c (c_common_signed_or_unsigned_type): Examine mode,
2519         not precision.
2520
2521 2003-09-22  David Edelsohn  <edelsohn@gnu.org>
2522             Hartmut Penner  <hpenner@de.ibm.com>
2523             Segher Boessenkool  <boessen@de.ibm.com>
2524
2525         * config/rs6000/rs6000.c (altivec_in_gprs_p): Rename to ...
2526         (gpr_or_gpr_p): Test INT_REGNO_P and convert to boolean.
2527         (rs6000_split_altivec_in_gprs): Rename to ...
2528         (rs6000_split_multireg_move): Add support for update addressing.
2529         * config/rs6000/rs6000-protos.h: Same.
2530         * config/rs6000/altivec.md: Same.
2531         * config/rs6000/rs6000.md (movdi_internal32): Use new splitter for
2532         multiple GPRs.
2533         (movti): Remove TARGET_STRING || TARGET_POWERPC64 final condition.
2534         (movti_power): Use new splitter for multiple GPRs.
2535         (movti_string): Same.
2536         (movti_ppc64): Same.
2537
2538 2003-09-22  Bob Wilson  <bob.wilson@acm.org>
2539
2540         * config/xtensa/xtensa-protos.h: Convert to ISO C90.
2541         * config/xtensa/xtensa.c: Convert to ISO C90.  Minor formatting fixes.
2542
2543 2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
2544
2545         * config/mn10300/mn10300.md: Revert 2003-09-17's patch.
2546         (andsi3): Set attr cc to set_zn when using shifts or adds.
2547
2548 2003-09-22  Bernardo Innocenti <bernie@develer.com>
2549
2550         * doc/contrib.texi: Add Peter Barada, Paul Dale and myself.
2551
2552 2003-09-22  Bernardo Innocenti  <bernie@develer.com>
2553
2554         * config/m68k/m68k.h (MASK_RTD, TARGET_RTD, RETURN_POPS_ARGS):
2555         Resurrect -mrtd option.
2556
2557 2003-09-21  Andrew Pinski  <pinskia@physics.uc.edu>
2558
2559         PR target/12281
2560         * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Call
2561         mark_referenced instead of setting TREE_SYMBOL_REFERENCED.
2562
2563 2003-09-22  Olivier Hainque  <hainque@act-europe.fr>
2564
2565         PR target/9786
2566         * reg-stack.c (convert_regs_1): Purge possible dead eh edges
2567         after potential deletion of trapping insn. Avoids later ICE
2568         from call to fixup_abnormal_edges.
2569         (convert_regs_2): Stack the current block successors before
2570         processing this block, that is, before the potential deletion of
2571         dead edges by convert_regs_1, because these edges have been used
2572         to initialize the predecessors count.
2573
2574 2003-09-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
2575
2576         * real.c: Fix several nits in the head comment.
2577
2578 2003-09-21  Richard Henderson  <rth@redhat.com>
2579
2580         * tree.h c-aux-info.c, c-decl.c, c-parse.in, coverage.c, dbxout.c,
2581         diagnostic.c, dwarf2out.c, dwarfout.c, function.c, integrate.c,
2582         print-tree.c, stmt.c, toplev.c, tree-dump.c, tree-inline.c,
2583         tree-optimize.c, tree.c, tree.def, xcoffout.c, config/alpha/alpha.c,
2584         config/mips/mips.c, doc/c-tree.texi, objc/objc-act.c: Revert.
2585
2586 2003-09-21  Richard Henderson  <rth@redhat.com>
2587
2588         * tree.h (TREE_LOCUS): Rename from DECL_SOURCE_LOCATION; make const.
2589         (TREE_FILENAME, TREE_LINENO): Likewise.
2590         (set_tree_locus, copy_tree_locus, set_tree_file_line): New.
2591         (TREE_LOCUS_SET_P): New.
2592         * c-aux-info.c, c-decl.c, c-parse.in, coverage.c, dbxout.c,
2593         diagnostic.c, dwarf2out.c, dwarfout.c, function.c, integrate.c,
2594         print-tree.c, stmt.c, toplev.c, tree-dump.c, tree-inline.c,
2595         tree-optimize.c, tree.c, tree.def, xcoffout.c, config/alpha/alpha.c,
2596         config/mips/mips.c, doc/c-tree.texi, objc/objc-act.c: Update to match.
2597
2598 2003-09-21  Nathanael Nerode  <neroden@gcc.gnu.org>
2599
2600         * config/vax/vax-protos.h: Convert to ISO C90.
2601         * config/vax/vax.c: Convert to ISO C90.
2602
2603 2003-09-21  Graham Stott  <grahams@btinternet.com>
2604
2605        PR target/12353
2606        * config/i386/i386.md(ffs_no_cmove): Fix operand 2 constraint.
2607
2608 2003-09-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
2609
2610         PR target/12301
2611         * reorg.c (stop_search_p): Return 1 for insns that can
2612         throw internally.
2613
2614 2003-09-20  Richard Henderson  <rth@redhat.com>
2615
2616         * c-format.c (gcc_diag_char_table): Add %J.
2617         (gcc_cdiag_char_table, gcc_cxxdiag_char_table): Likewise.
2618         (check_format_types): Fix wanted_type name lookup.
2619         (init_dynamic_diag_info): Setup %J.
2620         * diagnostic.c (text_specifies_location): Implement %J.
2621         * c-common.c, c-decl.c, c-objc-common.c, c-pragma.c, calls.c,
2622         dwarfout.c, expr.c, function.c, stmt.c, stor-layout.c, toplev.c,
2623         tree-inline.c, tree-optimize.c, varasm.c, config/arm/pe.c,
2624         config/i386/winnt.c, config/ia64/ia64.c, config/mcore/mcore.c,
2625         config/v850/v850.c, objc/objc-act.c: Use %J in diagnostics.
2626
2627         * tree-inline.c: Include intl.h
2628         (inline_forbidden_p_1): Fix i18n of inline_forbidden_reason.
2629         * Makefile.in (tree-inline.o): Update.
2630
2631 2003-09-20  Roger Sayle  <roger@eyesopen.com>
2632
2633         * config/i386/i386.c (ix86_expand_carry_flag_compare): Fix
2634         transformation of a>=0 into (unsigned)a<0x80000000.
2635
2636 2003-09-20  Andrew Pinski <apinski@apple.com>
2637
2638         * config/darwin.c (machopic_select_rtx_section): Fix check for PIC code.
2639
2640 2003-09-20  Nathanael Nerode  <neroden@gcc.gnu.org>
2641
2642         * Makefile.in: Don't set (unused) DLLTOOL.
2643
2644         * config/arm/t-linux, config/arm/t-netbsd, config/arm-t-semi:
2645         Remove obsolete references to ENQUIRE.
2646
2647 2003-09-19  Nathanael Nerode  <neroden@gcc.gnu.org>
2648
2649         * configure.in: Remove --with-elf, which doesn't work.
2650         * configure: Regenerate.
2651         * config.gcc: Remove references to $elf, which does nothing.
2652
2653         * config/i386/xm-vsta.h: Remove xm-file believed useless.
2654         * config.build (i386-vsta): Remove reference to it.
2655         * config.host (i386-vsta): Remove reference to it.
2656
2657 2003-09-19  Phil Edwards  <phil@codesourcery.com>
2658
2659         * doc/install.texi:  Document the multiple testsuite options.
2660
2661 2003-09-19  Gerald Pfeifer  <gerald@pfeifer.com>
2662
2663         * doc/install.texi (Specific): Add the specific versions of GCC
2664         where support for FreeBSD 1, HP-UX version 9 and older, and AIX
2665         version 3 and older was discontinued.
2666
2667 2003-09-19      Joel Sherrill <joel@oarcorp.com>
2668
2669         * config/m68k/t-m68kbare, config/m68k/t-rtems: Change 68681 to
2670         68881.
2671
2672 2003-09-19  Bernardo Innocenti  <bernie@develer.com>
2673
2674         * config/m68k/m68k.h (TARGET_CPU_CPP_PREDEFINES): Add predefines
2675         for -m68030, -m68020-60 and -m68020-40.
2676         * config/m68k/m68k.h (TARGET_68030): New target flag.
2677         * config/m68k/m68k.h (MASK_RTD, TARGET_RTD, MASK_REGPARM,
2678         TARGET_REGPARM): Remove.
2679         * config/m68k/m68k.h: Regroup and renumber target flags.
2680         * config/m68k/m68k.h (TARGET_SWITCHES): Fix some tabulations.
2681         * config/m68k/m68k.h (RETURN_POPS_ARGS): Always evaluate to 0.
2682         * config/m68k/m68k.h (FUNCTION_ARG): Likewise.
2683         * config/m68k/m68k.h (FUNCTION_ARG_PARTIAL_NREGS): Likewise.
2684         * config/m68k/m68k-none.h: Use MASK_xxx values in M68K_CPU_xxx macros.
2685
2686 2003-09-19  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
2687
2688         * config/m68k/t-rtems (m68k-*-rtems*): New.
2689         * config.gcc: Use config/m68k/t-rtems.
2690
2691 2003-09-19  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
2692
2693         * config/mips/t-rtems: New.
2694         * config.gcc (mips*-*-rtems*): Use config/mips/t-rtems.
2695
2696 2003-09-19  Kelley Cook  <kelleycook@wideopenwest.com>
2697
2698         * cgraph.c: Fix typo in debugging output.
2699
2700 2003-09-19  T. Papadopoulo <Theodore.Papadopoulo@sophia.inria.fr>
2701             Eric Botcazou <ebotcazou@libertysurf.fr>
2702
2703         PR target/12166
2704         * config/sparc/sol2-c1.asm (start): Set __Argv if GCRT1.
2705
2706 2003-09-18  Mike Stump  <mrs@apple.com>
2707
2708         * c-ppoutput.c (print):  Use fileline typedef for field 'line'.
2709         (print_line, maybe_print_line, cb_define, cb_undef, cb_include,
2710         cb_ident, cb_def_pragma):  Use fileline typedef.
2711         * cpphash.h (struct cpp_reader):  Likewise for field out.first_line.
2712
2713 2003-09-18  Danny Smith  <dannysmith@users.sourceforge.net>
2714
2715         * config/i386/winnt.c (gen_stdcall_suffix): Quit summation of
2716         total parm size if a parm has incomplete type.
2717         (gen_fastcall_suffix): Likewise.
2718
2719 2003-09-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2720
2721         * except.c (output_function_exception_table): Adjust last change
2722         to handle TYPE of INTEGER_CST.
2723
2724 2003-09-18  Mark Mitchell  <mark@codesourcery.com>
2725
2726         PR target/11184
2727         * builtins.c (expand_builtin_apply): Use convert_memory_address
2728         before returning the value.
2729
2730         * alias.c (find_base_value): Simplify use of
2731         convert_memory_address.
2732         (find_base_term): Likewise.
2733         * builtins.c (expand_builtin_stejmp_setup): Likewise.
2734         (expand_builtin_longjmp): Likewise.
2735         (expand_builtin_prefetch): Likewise.
2736         (get_memory_rtx): Likewise.
2737         (expand_builtin_return): Likewise.
2738         (expand_builtin_memcpy): Likewise.
2739         (expand_builtin_strncpy): Likewise.
2740         (expand_builtin_memset): Likewise.
2741         (expand_builtin_va_arg): Likewise.
2742         (expand_builtin_va_copy): Likewise.
2743         (expand_builtin_alloca): Likewise.
2744         * calls.c (expand_call): Likewise.
2745         * except.c (expand_builtin_extract_return_addr): Likewise.
2746         (expand_builtin_eh_return): Likewise.
2747         * explow.c (convert_memory_address): Define even when
2748         POINTER_EXTEND_UNSIGNED is not defined.  Do nothing if the address
2749         is already in the right mode.
2750         * explow.c (memory_address): Simplify use of convert_memory_address.
2751         (probe_stack_range): Likewise.
2752         * expmed.c (make_tree): Likewise.
2753         * expr.c (emit_block_move_in_libcall): Likewise.
2754         (expand_assignment): Likewise.
2755         (expand_expr): Likewise.
2756         * function.c (assign_parms): Likewise.
2757         (expand_function_end): Likewise.
2758         * integrate.c (copy_rtx_and_substitute): Likewise.
2759         * stmt.c (expand_computed_goto): Likewise.
2760
2761 2003-09-18  Roger Sayle  <roger@eyesopen.com>
2762
2763         * simplify-rtx.c (simplify_unary_operation): Only transform
2764         (not (eq X Y)) into (ne X Y) when mode is BImode or STORE_FLAG_VALUE
2765         is -1.  RTL "not" is a bit-wise not, "~", not a logical not "!".
2766
2767 2003-09-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2768
2769         PR target/11674
2770         * config/i386/i386.c (x86_emit_floatuns): Also handle SImode operand.
2771
2772 2003-09-18  Roger Sayle  <roger@eyesopen.com>
2773
2774         * tree.def (FFS_EXPR, CLZ_EXPR, CTZ_EXPR, POPCOUNT_EXPR,
2775         PARITY_EXPR): Delete unused tree codes.
2776         * c-common.c (c_common_truthvalue_conversion): Delete references
2777         to FFS_EXPR and POPCOUNT_EXPR.
2778         * c-pretty-print.c (pp_c_postfix_expression): Remove FFS_EXPR.
2779         (pp_c_expression): Likewise.
2780         * expr.c (expand_expr): Delete RTL expansion of FFS_EXPR, CLZ_EXPR,
2781         CTZ_EXPR, POPCOUNT_EXPR and PARITY_EXPR.
2782         * fold-const.c (tree_expr_nonnegative_p): Remove FFS_EXPR, CLZ_EXPR,
2783         CTZ_EXPR, POPCOUNT_EXPR and PARITY_EXPR.  Add support for calls to
2784         BUILT_IN_FFS, BUILT_IN_PARITY and BUILT_IN_POPCOUNT and their long
2785         and long long variants.
2786
2787 2003-09-18  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2788
2789         * c-pretty-print.h (pp_type_specifier_seq): Fix thinko.
2790         * c-pretty-print.c: Fix formatting.
2791         (pp_c_integer_constant): Append type annotation to literals.  Tidy.
2792         (pp_c_type_specifier): Tidy.
2793         (pp_c_compound_literal): New function.
2794         (pp_c_initializer): Simplify..
2795         (pp_c_initializer_list): Likewise.
2796         (pp_c_brace_enclosed_initializer_list): New function.
2797         (pp_c_postfix_expression): Simplify.
2798
2799 2003-09-17  Alexandre Oliva  <aoliva@redhat.com>
2800
2801         * config/mn10300/mn10300.md (andsi3, iorsi3, xorsi3,
2802         one_complsi2, bit-clear, bit-set, iorqi3): Make them set_zn.
2803
2804 2003-09-17  Richard Henderson  <rth@redhat.com>
2805
2806         * tree-optimize.c (tree_rest_of_compilation): Save and restore
2807         input_location.
2808
2809 2003-09-17  Daniel Jacobowitz  <drow@mvista.com>
2810
2811         * config/rs6000/sysv4.h (LIB_LINUX_SPEC): Give -lpthread before -lc.
2812
2813 2003-09-17  Richard Henderson  <rth@redhat.com>
2814
2815         * cfg.c (dump_flow_info): Skip register dump if reg_n_info null.
2816
2817 2003-09-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2818
2819         * configure.in (gcc_cv_ld_hidden): Don't test gnu_ld_flag.
2820         * configure: Regenerate.
2821
2822 2003-09-17  Mark Mitchell  <mark@codesourcery.com>
2823
2824         PR debug/12066
2825         * dbxout.c (dbxout_init): Use a langhook to find builtin types.
2826         * langhooks-def.h (lhd_return_null_tree_v): New function.
2827         (LANG_HOOKS_BUILTIN_TYPE_DECLS): New macro.
2828         (LANG_HOOKS_DECLS): Add it to the intializer.
2829         * langhooks.c (lhd_return_null_tree_v): New function.
2830         * langhooks.h (lang_hooks_for_decls): Add builtin_type_decls.
2831
2832 2003-09-17  Daniel Jacobowitz  <drow@mvista.com>
2833
2834         * configure.in: Quote gcc_config_arguments for configargs.h.
2835         * configure: Regenerated.
2836         * gccbug.in: Don't shell-expand gcc_config_arguments.
2837
2838 2003-09-17  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2839
2840         PR c++/11357
2841         * c-pretty-print.c (pp_c_floating_constant): Append
2842         type-annotation to floating constants.
2843
2844 2003-09-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2845
2846         * config/mips/iris5.h (TARGET_OS_CPP_BUILTINS): Define _LONGLONG.
2847         Define _ABIO32.
2848         Use it for _MIPS_SIM.
2849         * config/mips/iris6-o32.h (TARGET_OS_CPP_BUILTINS): Removed.
2850
2851         * config/mips/iris6-o32-as.h (SUBTARGET_ASM_OPTIMIZING_SPEC):
2852         Moved ...
2853         * config/mips/iris5.h (SUBTARGET_ASM_OPTIMIZING_SPEC): ... here,
2854         updating comment.
2855         Fixes PR target/10190.
2856
2857 2003-09-17  Daniel Jacobowitz  <drow@mvista.com>
2858
2859         * config/rs6000/sysv4.h (LIB_LINUX_SPEC): Make -pthread apply
2860         to shared libraries.
2861
2862 2003-09-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
2863
2864         PR optimization/11646
2865         * cfgrtl.c (purge_dead_edges) [JUMP_INSN]: Rematerialize the
2866         EDGE_ABNORMAL flag for EH edges.
2867         * toplev.c (rest_of_handle_cse): Delete unreachable blocks
2868         if dead edges were purged.
2869
2870 2003-09-16  Bernardo Innocenti  <bernie@develer.com>
2871
2872         * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Add target predefines.
2873         * config/m68k/m68k-none.h (CPP_CPU_DEFAULT_SPEC): Kill all definitions.
2874         * config/m68k/m68k-none.h (CPP_FPU_SPEC): Remove.
2875         * config/m68k/m68k-none.h (CPP_SPEC): Likewise.
2876
2877 2003-09-16  Ian Lance Taylor  <ian@wasabisystems.com>
2878
2879         * cfgcleanup.c (label_is_jump_target_p): Correct use of table
2880         returned by tablejump_p.
2881
2882 2003-09-16  Joel Brobecker  <brobecker@gnat.com>
2883
2884         * dwarf2asm.c (dw2_asm_output_nstring): Add comment.
2885
2886 2003-09-16  Roger Sayle  <roger@eyesopen.com>
2887
2888         PR bootstrap/12269
2889         * simplify-rtx.c (simplify_gen_relational): Allow the cmp_mode
2890         argument to be VOIDmode, taking the mode of the comparison from
2891         the operands.  Only call simplify_relational_operation if we
2892         know the mode of the comparison.  Honor FLOAT_STORE_FLAG_VALUE
2893         if comparison has a floating point result.  Ensure that the
2894         result is always of the specified mode.
2895         (simplify_replace_rtx): Simplify call to simplify_gen_relational.
2896         (simplify_unary_operation): Ensure the correct mode and cmp_mode
2897         are always passed to simplify_gen_relational.  Simplify NOT of
2898         comparison operator in any mode, not just BImode.
2899         (simplify_ternary_operation): Correct tests on the return value
2900         of simplify_relational_operation to use const_true_rtx, not
2901         const1_rtx.  Abort if it ever returns a non-constant result.
2902
2903         * cfgloopanal.c (count_strange_loop_iterations): Use the function
2904         simplify_relational_operation, not simplify_gen_relational, if
2905         we're only interested in constant comparisons and will ignore
2906         non-constant results.
2907
2908 2003-09-16  Roger Sayle  <roger@eyesopen.com>
2909
2910         * fold-const.c (tree_swap_operands_p): New function to determine
2911         the prefered ordering of operands.
2912         (fold): Numerous clean-ups.  Use tree_swap_operands_p when swapping
2913         operands to commutative, comparison or ternary operators.  Replace
2914         uses of TREE_SET_CODE with recursive call to fold.  Remove duplicate
2915         transformation of A ? B : C into !A ? C : B.
2916
2917 2003-09-16  Jakub Jelinek  <jakub@redhat.com>
2918
2919         * config/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
2920         * config/alpha/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
2921         * config/arm/linux-elf.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
2922         * config/rs6000/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
2923         * config/rs6000/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
2924         * config/sh/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
2925         * config/sparc/linux.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
2926         * config/sparc/linux64.h (LINK_GCC_C_SEQUENCE_SPEC): Define.
2927
2928 2003-09-16  Jason Merrill  <jason@redhat.com>
2929             Jakub Jelinek  <jakub@redhat.com>
2930
2931         * c-common.c (handle_warn_unused_result_attribute): New function.
2932         (c_common_attribute_table): Add warn_unused_result.
2933         (c_expand_expr): Issue warning when result of inlined function
2934         with warn_unused_result attribute is ignored.
2935         * calls.c (expand_call): Issue warning when result of function
2936         with warn_unused_result attribute is ignored.
2937         * c-common.h (STMT_EXPR_WARN_UNUSED_RESULT): Define.
2938         * expr.c (expr_wfl_stack): Define.
2939         (expand_expr) <case EXPR_WITH_FILE_LOCATION>: If ignore,
2940         pass const0_rtx as target.  Chain locations into expr_wfl_stack.
2941         * tree-inline.c (expand_call_inline): Set STMT_EXPR_WARN_UNUSED_RESULT
2942         bit if inlined function has warn_unused_result attribute.
2943         * input.h (expr_wfl_stack): Declare.
2944         * doc/extend.texi: Document warn_unused_result attribute.
2945
2946 2003-09-15  Alexandre Oliva  <aoliva@redhat.com>
2947
2948         * cpplib.c (do_pragma): Remove unnecessary cb_line_change.
2949
2950 2003-09-15  Bob Wilson  <bob.wilson@acm.org>
2951
2952         * config/xtensa/xtensa.c (xtensa_multibss_section_type_flags): Add
2953         ATTRIBUTE_UNUSED.
2954         (call_insn_operand): For PIC, don't allow a direct call to a
2955         function in a different section than the current one.
2956
2957 2003-09-16  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2958
2959         * doc/invoke.texi (Warning Options): Add missing hyphen before
2960         "Wimport".  Change "-Wno-endif-labels" to "-Wendif-labels".
2961         Move "-Wold-style-definition" to the C-only section.
2962         Fix the ordering of the warning options.
2963
2964 2003-09-15  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2965             Jeff Law  <law@redhat.com>
2966
2967         * gcse.c (remove_reachable_equiv_notes): New.
2968         replace_store_insn): Call it.  Update antic list.
2969         (store_killed_in_insn): Take REG_EQUAL notes into account.
2970         (build_store_vectors, delete_store): Add parameter to
2971         replace_store_insn call.
2972
2973 2003-09-15  Bob Wilson  <bob.wilson@acm.org>
2974
2975         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND_P): Use
2976         SYMBOL_REF_LOCAL_P.
2977
2978 2003-09-15  Kazu Hirata  <kazu@cs.umass.edu>
2979
2980         * expr.h (DEFAULT_FUNCTION_ARG_PADDING): New.
2981         (FUNCTION_ARG_PADDING): Use DEFAULT_FUNCTION_ARG_PADDING.
2982         * config/ia64/ia64.c (ia64_hpux_function_arg_padding):
2983         Likewise.
2984         * config/m68hc11/m68hc11.c (m68hc11_function_arg_padding):
2985         Likewise.
2986         * config/rs6000/rs6000.c (function_arg_padding): Likewise.
2987         * config/sparc/sparc.c (function_arg_padding): Likewise.
2988
2989 2003-09-15  Vladimir Makarov  <vmakarov@redhat.com>
2990
2991         * haifa-sched.c (schedule_block): Use ready_remove_first instead
2992         of choose_ready for non-dfa insn scheduling.
2993
2994 2003-09-15  Andreas Jaeger  <aj@suse.de>
2995             Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2996
2997         * doc/invoke.texi (Warning Options): Describe -Wold-style-definition.
2998         * c-opts.c (c_common_handle_option): Handle OPT_Wold_style_definition.
2999         * c-parse.in: Warn about old-style parameter definition.
3000         * c-common.c: Define warn_old_style_defintion.
3001         * c-common.h: Declare it.
3002         * c.opt: Add Wold-style-defintion.
3003
3004 2003-09-15  Andreas Jaeger  <aj@suse.de>
3005
3006         * config/rs6000/altivec.h: Convert () prototypes to ISO C90.
3007         * config/rs6000/rs6000.c: Likewise.
3008
3009 2003-09-12  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3010
3011         PR optimization/10914
3012         * expr.h (get_condition, canonicalize_condition): Declaration changed.
3013         * cfgloopanal.c (simple_loop_exit_p): Add parameter to a get_condition
3014         and canonicalize_condition calls.
3015         * gcse.c (fis_get_condition, delete_null_pointer_checks_1,
3016         delete_null_pointer_checks): Ditto.
3017         * ifcvt.c (noce_get_alt_condition, noce_get_condition): Ditto.
3018         * predict.c (estimate_probability, expected_value_to_br_prob): Ditto.
3019         * loop.c (check_dbra_loop, get_condition_for_loop): Ditto.
3020         (canonicalize_condition, get_condition): Allow to return comparisons
3021         of cc mode registers.
3022         * loop-unswitch.c (may_unswitch_on_p, unswitch_single_loop): Allow
3023         cc mode registers comparison in condition.
3024
3025 2003-09-12  Mark Mitchell  <mark@codesourcery.com>
3026
3027         * coverage.c (create_coverage): Do not call pushlevel/poplevel.
3028         * langhooks-def.h (lhd_do_nothing_iii_return_null_tree): New
3029         function.
3030         * langhooks.c (lhd_do_nothing_iii_return_null_tree): Define it.
3031
3032 2003-09-14  Kazu Hirata  <kazu@cs.umass.edu>
3033
3034         * combine.c (simplify_comparison): Convert
3035         (ne (and (lshiftrt (xor X CST) Y) 1) 0) into
3036         (eq (and (lshiftrt X Y) 1) 0).
3037
3038 2003-09-14  Kazu Hirata  <kazu@cs.umass.edu>
3039
3040         * alias.c: Follow spelling conventions.
3041         * cpphash.h: Likewise.
3042         * fold-const.c: Likewise.
3043
3044 2003-09-14  Alexandre Oliva  <aoliva@redhat.com>
3045
3046         * c-ppoutput.c (cb_line_change): Revert 2003-08-04's change.
3047         * c-lex.c (cb_line_change): Skip line changing whenever
3048         c-ppoutput.c would.
3049
3050 2003-09-14  Steven Bosscher  <steven@gcc.gnu.org>
3051
3052         * ra.c: Convert to ISO C90 prototypes.
3053         * ra-build.c: Likewise.
3054         * ra-colorize.c: Likewise.
3055         * ra-debug.c: Likewise.
3056         * ra-rewrite.c: Likewise.
3057
3058 2003-09-14  Richard Sandiford  <rsandifo@redhat.com>
3059
3060         * Makefile.in (%.dvi): Remove excess $(docdir).
3061
3062 2003-09-14  Richard Sandiford  <rsandifo@redhat.com>
3063
3064         * function.c (STACK_BYTES): Move definition to head of file.
3065         (assign_parms): Don't pass current_function_pretend_args_size
3066         directly to SETUP_INCOMING_VARARGS.  For partial register arguments,
3067         round current_function_pretend_args_size up to STACK_BYTES.  Skip any
3068         excess before laying out the argument.
3069
3070 2003-09-14  Andreas Jaeger  <aj@suse.de>
3071
3072         * objc/objc-act.c: Convert to ISO C90 prototypes.
3073         * objc/objc-act.h: Likewise.
3074
3075 2003-09-14  Olaf Hering  <olh@suse.de>
3076
3077         * config/rs6000/rs6000.c: Fix typo: Remove extra ')'.
3078
3079 2003-09-13  Andrew Pinski <pinskia@physics.uc.edu>
3080
3081         PR target/12021
3082         * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Remove the asserts
3083         as they already are done in config/m68k/m68k.h.
3084         * config/m68k/netbsd.h (TARGET_OS_CPP_BUILTINS): Likewise
3085
3086         * config/rs6000/rs6000.c (GEN_LOCAL_LABEL_FOR_SYMBOL): Remove.
3087         (machopic_output_stub): Only generate pic base symbols when using pic
3088         and generate them in the form L00000000$spb.
3089
3090 2003-09-13  Richard Henderson  <rth@redhat.com>
3091
3092         * cgraphunit.c (cgraph_assemble_pending_functions): Export.
3093         (cgraph_finalize_function): Revert TREE_ASM_WRITTEN check.
3094         * cgraph.h: Update.
3095
3096 2003-09-12  Dale Johannesen  <dalej@apple.com>
3097
3098         * config/rs6000/rs6000.c: Fix typos in previous.
3099
3100 2003-09-12  Ziemowit Laski  <zlaski@apple.com>
3101
3102         * pretty-print.c (pp_construct): Use xcalloc instead of xmalloc
3103         when allocating pp->buffer.
3104
3105 2003-09-12  Geoffrey Keating  <geoffk@apple.com>
3106
3107         * config/darwin.c (machopic_select_rtx_section): Use
3108         const_data_section for things that might require relocation.
3109
3110 2003-09-12  H.J. Lu  <hongjiu.lu@intel.com>
3111
3112         PR bootstrap/12264
3113         * tree-inline.c (inline_forbidden_p_1): Cast the 3rd arg to tree.
3114
3115 2003-09-12  Bob Wilson  <bob.wilson@acm.org>
3116
3117         * config/xtensa/elf.h (ASM_SPEC): Remove no-density option.  Reformat.
3118         * config/xtensa/linux.h (ASM_SPEC): Likewise.
3119         * config/xtensa/xtensa.h (TARGET_SWITCHES): Remove -mbig-endian,
3120         -mlittle-endian, -m[no-]density, -m[no-]abs, -m[no-]addx, -m[no-]mac16,
3121         -m[no-]mul16, -m[no-]mul32, -m[no-]nsa, -m[no-]minmax, -m[no-]sext,
3122         -m[no-]booleans, -mhard-float, -msoft-float, -m[no-]hard-float-div,
3123         -m[no-]hard-float-recip, -m[no-]hard-float-sqrt, and
3124         -m[no-]hard-float-rsqrt options.  Delete corresponding MASK_* macros
3125         and redefine corresponding TARGET_* macros with constants from the
3126         xtensa-config.h header.
3127         * doc/invoke.texi (Option Summary, Xtensa Options): Remove documention
3128         for the options listed above.
3129
3130 2003-09-12  Dale Johannesen  <dalej@apple.com>
3131
3132         * config/rs6000/rs6000-protos.h:  Use C90 prototypes.
3133         * config/rs6000/rs6000-c.c:  Ditto.
3134         * config/rs6000/rs6000.c:  Ditto.
3135         * config/rs6000/ sysv4.h:  Ditto.
3136
3137 2003-09-12  Chris Lattner <sabre@nondot.org>
3138
3139         * loop.c: Move comments describing BIV's and GIV's to top of file
3140
3141 2003-09-12  Roger Sayle  <roger@eyesopen.com>
3142
3143         PR optimization/8967
3144         * alias.c (write_dependence_p): Modify to take an additional constp
3145         argument that controls whether the UNCHANGING_RTX_P flags are used.
3146         (anti_dependence, output_dependence): Adjust write_dependence_p
3147         callers to pass this additional argument, to return the same result.
3148         (unchanging_anti_dependence): New variant of anti_dependence that
3149         ignores the UNCHANGING_RTX_P property on memory references.
3150         * rtl.h (unchaning_anti_dependence): Prototype here.
3151         * flow.c (init_propagate_block): Place fake constant mem writes on
3152         the mem_set_list so that dead writes to const variables are deleted.
3153         (insn_dead_p): Change anti_dependence to unchanging_anti_dependence.
3154         (mark_used_regs): Likewise.
3155
3156 2003-09-12  Richard Sandiford  <rsandifo@redhat.com>
3157
3158         * config/mcore/mcore-protos.h (mcore_r15_operand_p): Declare.
3159         (mcore_secondary_reload_class): Declare.
3160         (mcore_output_inline_const_forced): Remove.
3161         * config/mcore/mcore.md (movsi): Remove the code that forced
3162         non-inlineable constants into a register if the target was r15
3163         or the stack pointer.  Remove constant restrictions from the main
3164         define_insn.  Remove r <- I, r <- M and r <- N alternatives in favor
3165         of an r <- P alternative.  Remove fallback define_insn for reload.
3166         (movhi, movqi): Use gen_lowpart rather than gen_SUBREG.  Remove reload
3167         define_insn.  Use mcore_output_move in the remaining define_insn.
3168         Adjust condition and constraints in the way as for movsi.
3169         (movdi): Always split unacceptable constants into two.  Use
3170         simplify_gen_subreg instead of operand_subword{,_force}.
3171         * config/mcore/mcore.c (mcore_output_inline_const_forced): Remove.
3172         (mcore_output_move): Support HImode and QImode moves as well.
3173         (mcore_m15_operand_p): New function.
3174         (mcore_reload_class): Use it to detect cases where LRW_REGS are better.
3175         (mcore_secondary_reload_class): New function.
3176         * config/mcore/mcore.h (SECONDARY_RELOAD_CLASS): Redefine in
3177         terms of mcore_secondary_reload_class.
3178
3179 2003-09-11  Mike Stump  <mrs@apple.com>
3180
3181         * c-lex.c (fe_file_change): Don't transform to_line with SOURCE_LINE.
3182
3183 2003-09-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3184
3185         * builtins.c (fold_builtin_logarithm): if N can't be truncated to
3186         MODE exactly, then only convert logN(N) -> 1.0 if
3187         flag_unsafe_math_optimizations is set.
3188
3189         * builtins.c (builtin_dconsts_init, dconstpi, dconste,
3190         init_builtin_dconsts): Delete.
3191         * emit-rtl.c (dconstpi, dconste): Define.
3192         (init_emit_once): Initialize dconstpi & dconste.
3193         * real.h (dconstpi, dconste): Declare.
3194
3195 2003-09-11  Alexandre Oliva  <aoliva@redhat.com>
3196
3197         PR fortran/11522
3198         * dwarf2out.c (gen_inlined_subroutine_die): Emit abstract function
3199         for ultimate origin even if block is abstract.
3200
3201 2003-09-11  Roger Sayle  <roger@eyesopen.com>
3202
3203         * combine.c (combine_simplify_rtx): Move several NOT and NEG
3204         optimizations from here...
3205         * simplify-rtx.c (simplify_unary_operation): to here.  Recursively
3206         simplify expressions using simplify_gen_*ary instead of gen_rtx_*.
3207
3208 2003-09-11  Richard Henderson  <rth@redhat.com>
3209
3210         * cgraphunit.c (cgraph_finalize_function): Add nested arg.
3211         Tweek tests for function already generated.
3212         (cgraph_expand_function): Don't double announce in !unit-at-a-time.
3213         * cgraph.h (cgraph_finalize_function): Update for extra arg.
3214         * c-decl.c (finish_function): Likewise.
3215
3216 2003-09-10  Joe Buck  <jbuck@welsh-buck.org>
3217
3218         * c-decl.c (poplevel): Eliminate use of |= in function_body assignment.
3219
3220 2003-09-10  Jerry Quinn  <jlquinn@optonline.net>
3221
3222         * real.c: Update URL to VAX floating point docs.
3223         (decode_vax_d): Extract 8 exponent bits instead of 7.
3224
3225 2003-09-10  Ian Lance Taylor  <ian@wasabisystems.com>
3226
3227         * combine.c (force_to_mode): Set fuller_mask based only on mask,
3228         not op_mode.
3229
3230 2003-09-11  Jan Hubicka  <jh@suse.cz>
3231
3232         * c-objc-common.c (c_cannot_inline_tree_fn): Warn
3233         on why function is not inlinable; do not check
3234         the body.
3235         (inline_forbidden_p): Move to...
3236         * tree-inline.c (inline_forbidden_p_1): ... here; Add warnings;
3237         deal with alloca, longjmp.
3238         (inline_forbidden_p): New static function.
3239         (find_alloca_call_1, find_alloca_call, find_builtin_longjmp_call_1,
3240         find_builtin_longjmp_call): Kill.
3241
3242 2003-09-10  Richard Henderson  <rth@redhat.com>
3243
3244         * cgraph.h (struct cgraph_node): Rename lowered to analyzed.
3245         * cgraphunit.c: Update to match.
3246         (record_call_1): Rearrange.  Call lang hook for language nodes.
3247         (cgraph_analyze_function): Don't call lower_function.
3248         * langhooks.h (struct lang_hooks_for_callgraph): Replace
3249         lower_function with analyze_expr.
3250         * langhooks-def.h: Update to match.
3251         * langhooks.c (lhd_callgraph_analyze_expr): New.
3252
3253 2003-09-10  Martin Husemann  <martin@duskware.de>
3254
3255         PR target/11965
3256         * config/sparc/sparc.c (sparc_v8plus_shift): Protect against
3257         constants greater than 63.
3258         * config/sparc/sparc.md (ashlsi3, ashrsi3, lshrsi3): Protect
3259         against constants greater than 31.
3260         (*ashldi3_sp64, *ashrdi3_sp64, *lshrdi3_sp64): Protect against
3261         constants greater than 63.
3262
3263 2003-09-09  Richard Henderson  <rth@redhat.com>
3264
3265         * cgraphunit.c (cgraph_finalize_function): Remove unused argument.
3266         * cgraph.h (cgraph_finalize_function): Update.
3267         * c-decl.c (finish_function): Update.
3268
3269 2003-09-09  Devang Patel  <dpatel@apple.com>
3270
3271         * config/darwin.h (LINK_SPEC): Pass -nofixprebinding to linker.
3272         * doc/invoke.texi: Document new Darwin linker option -nofixprebinding.
3273
3274 2003-09-09  Eric Christopher  <echristo@redhat.com>
3275
3276         * configure.in: Change usage of 'head' to 'sed 1q'.
3277         * configure: Regenerate.
3278
3279 2003-09-09  Richard Henderson  <rth@redhat.com>
3280
3281         * except.c: Include cgraph.h.
3282         (output_function_exception_table): Invoke
3283         cgraph_varpool_mark_needed_node.
3284         * Makefile.in (except.o): Update.
3285
3286 2003-09-07  Kelley Cook  <kelleycook@wideopenwest.com>
3287
3288         * Makefile.in: Define REMAKEFLAGS for LANGUAGES & BOOT_CFLAGS
3289         and use it throughout.
3290
3291 2003-09-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3292
3293         * builtins.c (real_dconstp, fold_builtin_logarithm,
3294         fold_builtin_exponent): New, split out from fold_builtin.  Also
3295         generalize to add log2, log10, exp2 and exp10/pow10 equivalents.
3296         * emit-rtl.c (dconst3, dconst10, dconstthird): New.
3297         (init_emit_once): Initialize new dconsts, use ARRAY_SIZE in lieu
3298         of hardcoded array size.
3299         * fold-const.c (fold): Add cases for exp2, exp10 and pow10.
3300         (tree_expr_nonnegative_p): Likewise.
3301         * real.h (dconst3, dconst10, dconstthird): New.
3302
3303 2003-09-09  Jan Hubicka  <jh@suse.cz>
3304
3305         * cgraphunit.c (cgraph_finalize_function): Fix handling of extern
3306         inline functions.
3307         (cgraph_finalize_compilation_unit): Fix crash when dealing with lost
3308         DECL_SAVED_TREE.
3309
3310 2003-09-09  Roger Sayle  <roger@eyesopen.com>
3311
3312         * builtins.c (fold_builtin_cabs): Protect the complex argument
3313         against multiple evaluation when optimizing cabs* into sqrt*.
3314
3315 2003-09-09  Jan Hubicka  <jh@suse.cz>
3316
3317         * varasm.c (notice_global_symbol):  Properly deal with weak symbols.
3318
3319 2003-09-08  Kelley Cook <kelleycook@wideopenwest.com>
3320
3321         * Makefile.in: Revert yesterday's change.
3322
3323 2003-09-08  Bernardo Innocenti  <bernie@develer.com>
3324             Peter Barada <peter@baradas.org>
3325
3326         * config/m68k/coff.h (REGISTER_NAMES): Add fake register `argptr'
3327         * config/m68k/hp320.h (REGISTER_NAMES): Likewise.
3328         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
3329         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
3330         * gcc/config/m68k/sgs.h (REGISTER_NAMES): Likewise.
3331         * config/m68k/m68k-protos.h (m68k_initial_elimination_offset): Add prototype.
3332         * config/m68k/m68k.c (m68k_frame): New struct, simular to ix86 back-end.
3333         (m68k_compute_frame_layout): New function.
3334         (m68k_initial_elimination_offset): New function.
3335         (m68k_output_function_prologue): ColdFire-specific movem handling.
3336         (m68k_output_function_epilogue): Likewise.
3337         * config/m68k/m68k.h (FIRST_PSEOUDO_REGISTER): Make room for argptr reg.
3338         (ARG_POINTER_REGNUM): Add new definition.
3339         (INITIAL_FRAME_POINTER_OFFSET): Remove macro.
3340         (ELIMINABLE_REGS): Define new macro, like in ix86 back-end.
3341         (CAN_ELIMINATE): Likewise.
3342         (INITIAL_ELIMINATION_OFFSET): Likewise.
3343
3344 2003-09-08  Bernardo Innocenti  <bernie@develer.com>
3345
3346         * config/m68k/m68k.c (m68k_output_function_prologue): Simplify
3347         by removing redundant variable cfa_store_offset.
3348
3349 2003-09-08  Mark Mitchell  <mark@codesourcery.com>
3350
3351         * langhooks-def.h (lhd_register_builtin_type): New function.
3352         (LANG_HOOKS_REGISTER_BUILTIN_TYPE): New macro.
3353         (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update.
3354         * langhooks.h (lang_hooks_for_types): Add register_builtin_type.
3355         * langhooks.c (lhd_register_builtin_type): New function.
3356         * c-common.h (c_register_builtin_type): Declare.
3357         * c-common.c (c_register_builtin_type): New function.
3358         * c-lang.c (LANG_HOOKS_REGISTER_BUILTIN_TYPE): Define to
3359         c_register_builtin_type.
3360         * config/ia64/hpux.h (TARGET_OS_CPP_BUILTINS): Remove __fpreg,
3361         __float80, and __float128 macros.
3362         * config/ia64/ia64.c (ia64_init_builtins): Create __fpreg,
3363         __float80, and __float128 types.
3364
3365 2003-09-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3366
3367         * builtin-types.def
3368         (BT_FN_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE_COMPLEX_LONGDOUBLE,
3369         BT_FN_COMPLEX_DOUBLE_COMPLEX_DOUBLE_COMPLEX_DOUBLE,
3370         BT_FN_COMPLEX_FLOAT_COMPLEX_FLOAT_COMPLEX_FLOAT): New.
3371         * builtins.def (BUILT_IN_CACOS, BUILT_IN_CACOSF, BUILT_IN_CACOSH,
3372         BUILT_IN_CACOSHF, BUILT_IN_CACOSHL, BUILT_IN_CACOSL,
3373         BUILT_IN_CARG, BUILT_IN_CARGF, BUILT_IN_CARGL, BUILT_IN_CASIN,
3374         BUILT_IN_CASINF, BUILT_IN_CASINH, BUILT_IN_CASINHF,
3375         BUILT_IN_CASINHL, BUILT_IN_CASINL, BUILT_IN_CATAN,
3376         BUILT_IN_CATANF, BUILT_IN_CATANH, BUILT_IN_CATANHF,
3377         BUILT_IN_CATANHL, BUILT_IN_CATANL, BUILT_IN_CCOS, BUILT_IN_CCOSF,
3378         BUILT_IN_CCOSH, BUILT_IN_CCOSHF, BUILT_IN_CCOSHL, BUILT_IN_CCOSL,
3379         BUILT_IN_CEXP, BUILT_IN_CEXPF, BUILT_IN_CEXPL, BUILT_IN_CPOW,
3380         BUILT_IN_CPOWF, BUILT_IN_CPOWL, BUILT_IN_CPROJ, BUILT_IN_CPROJF,
3381         BUILT_IN_CPROJL, BUILT_IN_CSIN, BUILT_IN_CSINF, BUILT_IN_CSINH,
3382         BUILT_IN_CSINHF, BUILT_IN_CSINHL, BUILT_IN_CSINL, BUILT_IN_CSQRT,
3383         BUILT_IN_CSQRTF, BUILT_IN_CSQRTL, BUILT_IN_CTAN, BUILT_IN_CTANF,
3384         BUILT_IN_CTANH, BUILT_IN_CTANHF, BUILT_IN_CTANHL, BUILT_IN_CTANL):
3385         New.
3386         * doc/extend.texi: Document new builtins.
3387
3388 2003-09-09  Jan Hubicka  <jh@suse.cz>
3389
3390         * cgraph.c (cgraph_varpool_finalize_decl): Sanity check duplicated
3391         finalization.
3392         * cgraphunit.c (decide_is_fnction_needed): Avoid special case of nested
3393         functions, check for COMDAT.
3394         (cgraph_assemble_pending_functions): Break out from...
3395         (cgraph_finalize_function): ... here; allow redefinig of extern inline
3396         functions.
3397         (record_call_1): Record function references only in non-unit-at-a-time
3398         mode.
3399         (cgraph_analyze_function): Reset current_function_decl.
3400         (cgraph_finalize_compilation_unit):  Assemble pending functions.
3401
3402 2003-09-08  Mark Mitchell  <mark@codesourcery.com>
3403
3404         * mklibgcc.in (libcc.a): Depend on stmp-dirs.
3405         (libgov.a): Likewise.
3406         (libgcc_eh.a): Likewise.
3407
3408 2003-09-08  Roger Sayle  <roger@eyesopen.com>
3409
3410         * fold-const.c (operand_equal_p): Clarify documentation.
3411
3412 2003-09-08  Richard Henderson  <rth@redhat.com>
3413
3414         * c-decl.c (c_expand_body_1): Push and pop function context here.
3415         * tree-optimize.c (tree_rest_of_compilation): ... not here.  Take
3416         nested argument instead of computing nesting ourselves.
3417
3418 2003-09-08  Jakub Jelinek  <jakub@redhat.com>