OSDN Git Service

* loop.c (force_movables): Transitively increase the priorities of
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
2
3         * loop.c (force_movables): Transitively increase the priorities of
4         all insns forces by an insn, not just the first one.
5
6 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
7             Daniel Berlin <dberlin@dberlin.org>
8
9         Josef Zlomek  <zlomekj@suse.cz>
10         * Makefile.in (var-tracking.o): New.
11         * common.opt (fvar-tracking): New.
12         * flags.h (flag_var_tracking): New.
13         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
14         * opts.c (common_handle_option): Add OPT_fvar_tracking.
15         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
16         * rtl.c (note_insn_name): Likewise.
17         * rtl.def (VAR_LOCATION): New.
18         * rtl.h (NOTE_VAR_LOCATION): New.
19         (NOTE_VAR_LOCATION_DECL): New.
20         (NOTE_VAR_LOCATION_LOC): New.
21         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
22         (variable_tracking_main): New exported function.
23         * timevar.def (TV_VAR_TRACKING): New.
24         * toplev.c (enum dump_file_index): Added DFI_vartrack.
25         (dump_file): "vartrack" was added (-dV).
26         (flag_var_tracking): New.
27         (f_options): "var-tracking" was added.
28         (rest_of_handle_variable_tracking): New function.
29         (rest_of_compilation): Run variable tracking.
30         (process_options): If user has not specified flag_var_tracking set it
31         according to optimize, debug_info_level and debug_hooks.
32         * tree.h (frame_base_decl): New.
33         * var-tracking.c: New file.
34         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
35         (ia64_override_options): Set flags to run variable tracking in machine
36         dependent reorg instead of toplev.c.
37         (ia64_reorg): Run variable tracking if wanted.
38         * doc/invoke.texi: Mention variable tracking in -dV,
39         add and -fvar-tracking.
40         * doc/passes.texi: Added variable tracking pass.
41
42         Daniel Berlin <dberlin@dberlin.org>
43         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
44         * dbxout.c (dbx_debug_hooks): Likewise.
45         (xcoff_debug): Likewise.
46         * debug.c (do_nothing_debug_hooks): Likewise.
47         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
48         * dwarfout.c (dwarf_debug_hooks): Likewise.
49         * sdbout.c (sdb_debug_hooks): Likewise.
50         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
51         * final.c (final_scan_insn): Call var_location debug hook for each 
52         NOTE_INSN_VAR_LOCATION. 
53
54 2004-02-06  Jan Hubicka  <jh@suse.cz>
55
56         * flow.c (update_life_info): Allocate reg_deaths when called from
57         scheudler.
58         (attempt_auto_inc):  Update life ranges accordingly.
59
60 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
61
62         PR debug/11816
63         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
64
65 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
66
67         * cfganal.c (flow_call_edges_add): Never split a libcall block.
68
69 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
70
71         * dwarf2out.c (output_loc_list): Don't use deltas if we have
72         a separate line info table in use.
73         Use the correct size for terminators.
74         (output_die): Use offset, not delta.
75
76 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
77
78         * doc/invoke.texi: Remove the pni option from -mfpmath=.
79
80 2004-02-06  Jan Hubicka  <jh@suse.cz>
81
82         * recog.c (split_all_insns): Do not update reg info.
83         * regrename.c (regrename_optimize): Likewise.
84         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
85         * flow.c (struct propagate_block_info): Add insn_num field.
86         (reg_deaths): New array.
87         (life_analysis): Free reg_deaths info.
88         (allocate_reg_life_data): Allocate reg_deaths array.
89         (propagate_one_insn): Use new array.
90         (init_propagate_block): Initialize it.
91         (free_propagate_block_info): Finish compuation of
92         REG_LIVE_LENGTH
93         (attempt_auto_inc): Sanity check that REG_INFO is not
94         computed at same time.
95         (mark_used_regs): Update new array.
96
97         * reg-stack.c (subst_stack_regs): Unshare clobbers before
98         substitution.
99
100 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
101
102         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
103         *extendqisi2_short_displ.
104
105 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
106
107         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
108         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
109         (emit_library_call_value_1): Likewise pass nargs.
110         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
111         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
112         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
113         parameter instead of scanning TYPE_ARGS_TYPES to count args.
114         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
115         prototype.
116         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
117         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
118         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
119         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
120         INIT_CUMULATIVE_ARGS.
121         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
122         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
123         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
124         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
125         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
126         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
127         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
128         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
129         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
130         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
131         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
132         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
133
134 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
135
136         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
137         possible.
138
139 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
140
141         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
142         note containing (plus (reg) (const_int)), where reg is an
143         eliminable reg, then perform the register elimination without
144         depending on eliminate_regs().
145
146 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
147
148         * config/arc/arc.c (arc_return_in_memory): Check the return
149         value of int_size_in_bytes against -1.  Don't check
150         TREE_ADDRESSABLE.
151         * config/avr/avr.c (avr_return_in_memory): Check the return
152         value of int_size_in_bytes against -1.
153         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
154         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
155         Likewise.
156         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
157         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
158         Likewise.
159
160 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
161
162         * config/frv/frv-protos.h: Remove the prototype for
163         frv_setup_incoming_varargs.
164         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
165         (frv_setup_incoming_varargs): Make it static.
166         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
167
168 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
169
170         * config/fr30/fr30-protos.h: Remove the prototype for
171         fr30_setup_incoming_varargs.
172         Update the prototypes for fr30_num_arg_regs and
173         fr30_function_arg_partial_nregs.
174         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
175         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
176         (fr30_setup_incoming_varargs): Make it static.
177         Add argument second_time.  Don't do anything when second_time
178         is nonzero.
179         (fr30_num_arg_regs): Change the type of the first argument to
180         enum machine_mode.
181         (fr30_function_arg_partial_nregs): Change the type of the
182         second argument to enum machine_mode.
183         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
184         (SETUP_INCOMING_VARARGS): Remove.
185
186 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
187
188         * config/arc/arc-protos.h: Remove the prototype for
189         arc_setup_incoming_varargs.
190         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
191         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
192         (arc_setup_incoming_varargs): Make it static.
193         (arc_external_libcall): Likewise.
194         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
195         Remove the commented-out definition of
196         ASM_OUTPUT_EXTERNAL_LIBCALL.
197
198 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
199
200         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
201         to $$(slibdir) in the installation commands.
202
203 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
204
205         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
206         with inner_regno, not regno.
207         * rtlanal.c (refers_to_regno_p): Same.
208
209 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
210
211         * config.gcc: Remove i370 support.
212
213 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
214
215         * doc/install.texi:  Update automake and autoconf version
216         requirements.  Note where to find gcj automake version.
217
218 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
219
220         * Makefile.in (generate-manpages): Move dependencies to ...
221         (man): here.
222         * doc/makefile.texi: Document new targets.
223         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
224
225 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
226
227         PR/13485
228         Makefile.in (srcextra):  Add a level of indirection to ...
229         (gcc.srcextra): ... here.
230         (po-generated): Delete.
231         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
232         options.c.
233         (start.encap): Remove superfluous lang.srcextra dependency.
234         objc/Make-lang.in (po-generated):  Delete.
235
236 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
237
238         * config/ia64/ia64.c (REG_GP): Remove.
239
240 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
241
242         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
243
244 2004-02-05  Devang Patel  <dpatel@apple.com>
245
246         * dwarf2out.c (force_type_die): Look up input type itself
247         instead of root_type() of type.
248         
249 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
250
251         * config/s390/s390.md ("*tmqidi_ext"): New insn.
252         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
253         pre-reload splitters are transformed to post-reload
254         define_insn_and_split patterns.
255         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
256
257 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
258
259         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
260         TARGET_PROMOTE_PROTOTYPES.
261
262 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
263
264         PR middle-end/13750
265         Revert:
266         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
267         PR pch/13361
268         * c-typeck.c (constructor_asmspec): Delete.
269         (struct initializer_stack): Delete field 'asmspec'.
270         (start_init): Delete saving of asmspec.
271         (finish_init): Don't update constructor_asmspec.
272         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
273         * stmt.c (expand_asm): Duplicate strings from tree.
274         (expand_asm_operands): Likewise.
275         * tree.c (tree_size): Update computation of size of STRING_CST.
276         (make_node): Don't make STRING_CST nodes.
277         (build_string): Allocate string with tree node.
278         * tree.def (STRING_CST): Update comment.
279         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
280         (tree_string): Place contents of string in tree node.
281         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
282         from tree.
283
284 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
285
286         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
287         msgid.
288
289 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
290
291         * config/rs6000/altivec.md (*movv4si_internal): At least one
292         operand must be altivec_register_operand.
293         (*movv8hi_internal1): Likewise.
294         (*movv16qi_internal1): Likewise.
295         (*movv4sf_internal1): Likewise.
296
297 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
298
299         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
300         * configure: Regenerate.
301
302 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
303
304         * doc/install.texi: Update description of --gxx-include-dir to
305         give correct default value.
306
307 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
308
309         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
310         8 with MAC_REG.
311
312 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
313
314         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
315         gen_rtx_PARALLEL.
316
317 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
318
319         * emit-rtl.c: Update the comment about the file.
320
321 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
322
323         * sourcebuild.texi (Test Idioms): Update testcase naming
324         conventions.
325
326 2004-02-04  Per Bothner  <per@bothner.com>
327
328         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
329         * c-ppoutput.c (pp_dir_change):  New function.
330         * c-common.h (pp_dir_change):  New declaration.
331         * cpplib.h (struct cpp_options):  Remove working_directory field.
332         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
333         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
334         Don't handle -fworking_directory here, but in c_common_post_options.
335         (read_original_directory): Don't back up when done.
336         Don't clear no-longer used working_directory flag.
337         * cpplib.h:  Update declarations to match.
338         * c-lex.c (cb_dir_change):  Move to c-opts.c.
339         (init_c_lex):  Don't set dir_change callback here, since we want
340         to set it even if flag_preprocess_only.
341         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
342         (c_common_post_options):  Set dir_change callback.
343         Call pp_dir_change if approporiate.
344         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
345         unneeded parameter and result. Do LC_RENAME for <built-in>.
346         (c_common_post_options):  Call cpp_read_main_file here instead.
347         (c_common_init):  Update accordingly.
348         (push_command_line_include):  Don't cpp_push_main_file.
349         Do LC_RENAME rather than LC_LEASE to get back to main file.
350         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
351         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
352         files, but call finish_options for all files.
353         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
354         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
355         cpp_find_main_file + cpp_push_main_file.
356         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
357         * opts.c (handle_options):  Only set main_input_filename first time.
358
359 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
360
361         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
362
363 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
364
365         * reload.c (find_equiv_reg): When checking for register overlap,
366         don't index hard_regno_nregs with a pseudo-reg.
367
368 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
369
370         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
371
372 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
373
374         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
375         against FIRST_PSEUDO_REGISTER.
376
377 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
378
379         * Makefile.in: Move target, host overrides after per-language
380         fragments.
381
382         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
383         (GNATLIBCFLAGS): Remove -g.
384
385 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
386
387         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
388         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
389         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
390         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
391         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
392         config/sparc/sparc.c, config/vax/vax.c: Revert the
393         replacements of "FALLTHRU" with "Fall through" done in the
394         previous patch.
395
396 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
397
398         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
399         config/arm/arm.c, config/arm/arm.md,
400         config/cris/cris-protos.h, config/fr30/fr30.c,
401         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
402         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
403         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
404         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
405         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
406         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
407         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
408         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
409         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
410         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
411         config/s390/s390.md, config/sparc/netbsd-elf.h,
412         config/sparc/openbsd.h, config/sparc/sparc.c,
413         config/xtensa/lib2funcs.S: Fix comment formatting.
414
415 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
416
417         * config/alpha/alpha.c, config/arc/arc.c,
418         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
419         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
420         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
421         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
422         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
423         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
424         config/iq2000/iq2000.c, config/m32r/m32r.c,
425         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
426         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
427         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
428         config/rs6000/rs6000.h, config/sparc/sparc.c,
429         config/vax/vax.c: Fix comment typos.  Follow spelling
430         conventions.
431
432 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
433
434         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
435         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
436         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
437         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
438         config/arm/fpa.md, config/arm/iwmmxt.md,
439         config/arm/netbsd-elf.h, config/arm/netbsd.h,
440         config/m68hc11/m68hc11.md, config/mips/iris5.h,
441         config/mn10300/mn10300.md, config/rs6000/altivec.md,
442         config/sparc/netbsd-elf.h: Update copyright.
443
444 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
445
446         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
447         for all modes whose size is greater than 8 bytes if ARCH32.
448         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
449         by reference if ARCH32.
450
451 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
452  
453         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
454
455 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
456
457         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
458         to before adddi3 insn patterns.
459         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
460         "reload_insi"): Move to before addsi3 insn patterns.
461
462 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
463
464         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
465         parameter.  Use it instead of current_function_is_thunk.
466         * function.h (struct function): Update documentation for is_thunk.
467         * tree.h (CALL_FROM_THUNK_P): New macro.
468         * config/alpha/alpha.c (alpha_sa_mask): Do not check
469         no_new_pseudos when testing current_function_is_thunk.
470         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
471
472 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
473
474         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
475         TARGET_SETUP_INCOMING_VARARGS.
476
477 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
478
479         * emit-rtl.c (gen_rtx): Remove.
480         * genattrtab.c: Don't mention gen_rtx in a comment.
481         * rtl.h: Remove the prototype for gen_rtx.
482         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
483
484 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
485
486         * config/arc/arc.h, config/fr30/fr30.h
487         (SETUP_INCOMING_VARARGS): Remove the target-independent
488         comments.
489         * doc/tm.texi: Don't mention deprecated target macros.
490
491 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
492
493         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
494         target-independent comment.
495
496 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
497
498         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
499         mention deprecated target macros.
500
501 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
502
503         * config.gcc: Remove obsolete ports and configurations.
504         * config/linux-aout.h, config/netware.h,
505         config/t-linux-gnulibc1, config/d30v/abi,
506         config/d30v/d30v-protos.h, config/d30v/d30v.c,
507         config/d30v/d30v.h, config/d30v/d30v.md,
508         config/d30v/libgcc1.asm, config/d30v/t-d30v,
509         config/dsp16xx/dsp16xx-modes.def,
510         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
511         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
512         config/i370/README, config/i370/i370-c.c,
513         config/i370/i370-protos.h, config/i370/i370.c,
514         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
515         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
516         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
517         config/i386/moss.h, config/i386/netware.h,
518         config/i386/svr3.ifile, config/i386/svr3dbx.h,
519         config/i386/svr3gas.h, config/i386/svr3z.ifile,
520         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
521         config/i960/i960-c.c, config/i960/i960-coff.h,
522         config/i960/i960-modes.def, config/i960/i960-protos.h,
523         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
524         config/i960/rtems.h, config/i960/t-960bare,
525         config/m68k/hp310.h, config/m68k/hp320.h,
526         config/m68k/hp320base.h, config/m68k/m68kv4.h,
527         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
528         Remove.
529         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
530         doc/md.texi: Remove mentions of obsolete ports.
531
532 2004-02-04  Jan Hubicka  <jh@suse.cz>
533
534         * alias.c (find_base_term, get_addr):  Do not dereference NULL
535         pointer when all VALUE's locations has been invalidated.
536         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
537
538 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org> 
539
540         * doc/invoke.texi (x86 options): Fix spelling/wording.
541
542 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
543
544         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
545         put the original string in a comment.
546         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
547         * config/mips/mips.c (mips_output_ascii): Likewise.
548         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
549
550 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
551
552         * system.h (GIV_SORT_CRITERION): Poison.
553         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
554         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
555
556 2004-02-03  Roger Sayle  <roger@eyesopen.com>
557
558         PR target/9348
559         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
560         multiplies with a multiplication of the wrong signedness, its the
561         signedness of the multiplication that we've performed that needs to
562         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
563         if expand_mult_highpart_adjust places the result in target.
564
565 2004-02-03  Richard Henderson  <rth@redhat.com>
566
567         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
568
569 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
570
571         * config.gcc (sh[234]l): Use little endian fragments.
572
573 2004-02-03  Paul Koning  <pkoning@equallogic.com>
574
575         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
576         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
577         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
578         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
579         floating point format.
580         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
581         the above functions.
582         (output_move_quad): Output float values in correct target format.
583         (legitimate_const_double_p): New function.
584         * config/pdp11/pdp11.h: Fix typos.
585         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
586         (TARGET_FLOAT_FORMAT): Ditto.
587         (pdp11_f_format, pdp11_d_format): Add external declarations.
588         (MAX_REGS_PER_ADDRESS): Corrected.
589         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
590         (PRINT_OPERAND): Output float literals in target format.
591
592 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
593
594         PR c++/13975
595         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
596         TI_PRIVATE.
597         (access_public_node): Redefine.
598         (access_protected_node): Likewise.
599         (access_private_node): Likewise.
600         * tree.c (build_common_tree_nodes): Create access_public_node,
601         access_protected_node, and access_private_node.
602
603 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
604
605         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
606         (MASK_INLINE_INT_DIV_THR): Ditto.
607         (MASK_INLINE_SQRT_LAT): Ditto.
608         (MASK_INLINE_SQRT_THR): Ditto.
609         (MASK_DWARF2_ASM): Ditto.
610         (MASK_EARLY_STOP_BITS): Ditto.
611
612 2004-02-02  Paul Brook  <paul@codesourcery.com>
613
614         Merge from csl-arm-branch.
615
616         2004-01-30  Paul Brook  <paul@codesourcery.com>
617
618         * aof.h (REGISTER_NAMES): Add vfp reg names
619         (ADDITIONAL_REGISTER_NAMES): Ditto.
620         * aout.h (REGISTER_NAMES): Ditto.
621         (ADDITIONAL_REGISTER_NAMES): Ditto.
622         * arm-protos.h: Update/Add Prototypes.
623         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
624         Only allow 0.0 for VFP.
625         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
626         (values_fp): Rename from values_fpa.  Update Users.
627         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
628         Update users.  Only check valid constants for this hardware.
629         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
630         Only allow consts for FPA.
631         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
632         Only allow consts for FPA.
633         (use_return_insn): Check for saved VFP regs.
634         (arm_legitimate_address_p): Handle VFP DFmode addressing.
635         (arm_legitimize_address): Ditto.
636         (arm_general_register_operand): New function.
637         (vfp_mem_operand): New function.
638         (vfp_compare_operand): New function.
639         (vfp_secondary_reload_class): New function.
640         (arm_float_compare_operand): New function.
641         (vfp_print_multi): New function.
642         (vfp_output_fstmx): New function.
643         (vfp_emit_fstm): New function.
644         (arm_output_epilogue): Output VPF reg restore code.
645         (arm_expand_prologue): Output VFP reg save code.
646         (arm_print_operand): Add 'P'.
647         (arm_hard_regno_mode_ok): Return modes for VFP regs.
648         (arm_regno_class): Return classes for VFP regs.
649         (arm_compute_initial_elimination_offset): Include space for VFP regs.
650         (arm_get_frame_size): Ditto.
651         * arm.h (FIXED_REGISTERS): Add VFP regs.
652         (CALL_USED_REGISTERS): Ditto.
653         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
654         (FIRST_VFP_REGNUM): Define.
655         (LAST_VFP_REGNUM): Define.
656         (IS_VFP_REGNUM): Define.
657         (FIRST_PSEUDO_REGISTER): Include VFP regs.
658         (HARD_REGNO_NREGS): Handle VFP regs.
659         (REG_ALLOC_ORDER): Add VFP regs.
660         (enum reg_class): Add VFP_REGS.
661         (REG_CLASS_NAMES): Ditto.
662         (REG_CLASS_CONTENTS): Ditto.
663         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
664         (REG_CLASS_FROM_LETTER): Add 'w'.
665         (EXTRA_CONSTRAINT_ARM): Add 'U'.
666         (EXTRA_MEMORY_CONSTRAINT): Define.
667         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
668         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
669         (REGISTER_MOVE_COST): Ditto.
670         (PREDICATE_CODES): Add arm_general_register_operand,
671         arm_float_compare_operand and vfp_compare_operand.
672         * arm.md (various): Rename as above.
673         (divsf3): Enable when TARGET_VFP.
674         (divdf3): Ditto.
675         (movdfcc): Ditto.
676         (sqrtsf2): Ditto.
677         (sqrtdf2): Ditto.
678         (arm_movdi): Disable when TARGET_VFP.
679         (arm_movsi_insn): Ditto.
680         (movsi): Only split with general regs.
681         (cmpsf): Use arm_float_compare_operand.
682         (push_fp_multi): Restrict to TARGET_FPA.
683         (vfp.md): Include.
684         * vfp.md: New file.
685         * fpa.md (various): Rename as above.
686         * doc/md.texi: Document ARM w and U constraints.
687
688         2004-01-15  Paul Brook  <paul@codesourcery.com>
689
690         * config.gcc: Add with_fpu.  Allow with-float=softfp.
691         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
692         Break out of loop when we find a float-abi.  Fix typo.
693         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
694         Set -mfloat-abi=.
695         * doc/install.texi: Document --with-fpu.
696
697         2003-01-14  Paul Brook  <paul@codesourcery.com>
698
699         * config.gcc (with_arch): Add armv6.
700         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
701         * config/arm/arm.c (arm_overrride_options): Ditto.
702
703         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
704
705         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
706         (FL_ARCH6): Renamed from FL_ARCH6J.
707         (arm_arch3m): Renamed from arm_fast_multiply.
708         (arm_arch6): Renamed from arm_arch6j.
709         * arm.h: Update all uses of above.
710         * arm-cores.def: Likewise.
711         * arm.md: Likewise.
712
713         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
714         not arm6j.  Add entry for arch armv6.
715
716         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
717
718         * arm.c (arm_emit_extendsi): Delete.
719         * arm-protos.h (arm_emit_extendsi): Delete.
720         * arm.md (zero_extendhisi2): Also handle zero-extension of
721         non-subregs.
722         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
723         (thumb_zero_extendhisi2): Only match if not v6.
724         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
725         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
726         (thumb_extendqisi2): Likewise.
727         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
728         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
729         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
730         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
731         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
732         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
733         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
734         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
735         (arm_extendqisi2addsi): Likewise.
736
737         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
738
739         Revert this change:
740         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
741         + REG addressing modes.
742
743         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
744         + REG addressing modes.
745
746         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
747
748         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
749         CONSTANT_P_RTX.
750
751         2003-30-12  Paul Brook  <paul@codesourcery.com>
752
753         * longlong.h: protect arm inlines with !defined (__thumb__)
754
755         2003-30-12  Paul Brook  <paul@codesourcery.com>
756
757         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
758
759         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
760
761         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
762         change.
763
764         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
765
766         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
767         to the virtual incoming args pointer for downward stacks.
768
769         2003-12-29  Paul Brook  <paul@codesourcery.com>
770
771         * config/arm/arm-cores.def: Add cost function.
772         * config/arm/arm.c (arm_*_rtx_costs): New functions.
773         (arm_rtx_costs): Remove
774         (struct processors): Add rtx_costs field.
775         (all_cores, all_architectures): Ditto.
776         (arm_override_options): Set targetm.rtx_costs.
777         (thumb_rtx_costs): New function.
778         (arm_rtx_costs_1): Remove cases handled elsewhere.
779         * config/arm/arm.h (processor_type): Add COSTS parameter.
780
781         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
782
783         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
784         (arm926ejs.md): Include it.
785         * config/arm/arm926ejs.md: New pipeline description.
786
787         2003-12-24  Paul Brook  <paul@codesourcery.com>
788
789         * config/arm/arm.c (arm_arch6j): New variable.
790         (arm_override_options): Set it.
791         (arm_emit_extendsi): New function.
792         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
793         * config/arm/arm.h (arm_arch6j): Declare.
794         * config/arm/arm.md: Add sign/zero extend insns.
795
796         2003-12-23  Paul Brook  <paul@codesourcery.com>
797
798         * config/arm/arm.c (all_architectures): Add armv6.
799         * doc/invoke.texi: Document it.
800
801         2003-12-19  Paul Brook  <paul@codesourcery.com>
802
803         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
804         insn patterns to match.
805         * config/arm/arm-generic.md: Ditto.
806         * config/arm/cirrus.md: Ditto.
807         * config/arm/fpa.md: Ditto.
808         * config/amm/iwmmxt.md: Ditto.
809         * config/arm/arm1026ejs.md: Ditto.
810         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
811         for 11_loadb.
812
813         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
814
815         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
816         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
817         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
818         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
819         arm_no_early_mul_dep): Correctly deal with conditional execution,
820         parallels and single shift operations.
821         (arm_no_early_alu_shift_value_dep): Define.
822         * arm.md (attr type): Replace 'normal' with 'alu',
823         'alu_shift' and 'alu_shift_reg'.
824         (attr core_cycles): Adjust.
825         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
826         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
827         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
828         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
829         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
830         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
831         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
832         attribute appropriately.
833         * config/arm/arm1026ejs.md (alu_op): Adjust.
834         (alu_shift_op, alu_shift_reg_op): New.
835         * config/arm/arm1136.md: Add better bypasses for early
836         registers. Remove load[234] and store[234] bypasses.
837         (11_alu_op): Adjust.
838         (11_alu_shift_op, 11_alu_shift_reg_op): New.
839
840         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
841
842         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
843         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
844         * config/arm/arm.c (arm_no_early_store_addr_dep,
845         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
846         * config/arm/arm1026ejs.md: Add load-store bypass.
847         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
848         Add bypasses between instructions.
849
850         2003-12-10  Paul Brook  <paul@codesourcery.com>
851
852         * config/arm/arm.c (arm_fpu_model): New variable.
853         (arm_fload_abi): New variable.
854         (target_fpe_name): Rename from target_fp_name.
855         (target_fpu_name): New variable.
856         (arm_is_cirrus): Remove.
857         (fpu_desc): New struct.
858         (all_fpus): Define.
859         (pf_model_for_fpu): Define.
860         (all_loat_abis): Define.
861         (arm_override_options): Set fp arch flags based on -mfpu=
862         and -float-abi=.
863         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
864         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
865         (*): Use new TARGET_* flags.
866         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
867         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
868         (TARGET_SOFT_FLOAT): Ditto.
869         (TARGET_SOFT_FLOAT_ABI): New.
870         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
871         TARGET_HARD_FLOAT.
872         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
873         (TARGET_OPTIONS): Add -mfpu=.
874         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
875         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
876         (arm_pf_model): Define.
877         (arm_float_abi_type): Define.
878         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
879         * config/arm/arm.md: Use new TARGET_* flags.
880         * config/arm/cirrus.md: Ditto.
881         * config/arm/fpa.md: Ditto.
882         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
883         * config/arm/semi.h (ASM_SPEC): Ditto.
884         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
885         (FPUTYPE_DEFAULT): Set to VFP.
886         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
887
888         2003-11-22  Phil Edwards  <phil@codesourcery.com>
889
890         PR target/12476
891         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
892         'bx' instead of 'b' to avoid branch range restrictions.  Output
893         the thunk immediately before the thunked-to function.
894         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
895         .thumb_func if a thunk is being generated.  Emit .code 16 along
896         with .thumb_func if a thunk is not being generated.
897
898         2003-11-15  Nicolas Pitre <nico@cam.org>
899
900         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
901         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
902         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
903         (lshrdi3_iwmmxt): Renamed from lshrdi3.
904         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
905
906         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
907             Ian Lance Taylor  <ian@wasabisystems.com>
908
909         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
910         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
911
912         2003-11-05  Phil Edwards  <phil@codesourcery.com>
913
914         * config/arm/arm.md (insn):  Add new V6 instruction names.
915         (generic_sched):  New attr.
916         * config/arm/arm-generic.md:  Use generic_sched here.
917         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
918         stages of pipeline.  Adjust latency counts accordingly.
919         * config/arm/arm1136jfs.md:  New file.
920
921         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
922
923         * config/arm/arm.h (processor_type): New enumeration type.
924         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
925         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
926         (CPP_CPU_ARCH_SPEC): Likewise.
927         * config/arm/arm.c (arm_tune): New variable.
928         (all_cores): Use cores.def.
929         (all_architectures): Add representative processor.
930         (arm_override_options): Restructure way in which tuning
931         information is deduced.
932         * arm.md: Update "insn" and "type" attributes throughout.
933         (insn): New attribute.
934         (type): Compute "mult" from "insn" attribute.  Add load2,
935         load3, load4 alternatives.
936         (arm automaton): Move to arm-generic.md.
937         * config/arm/arm-cores.def: New file.
938         * config/arm/arm-generic.md: Likewise.
939         * config/arm/arm1026ejs.md: Likewise.
940
941 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
942
943         * doc/invoke.texi (SPARC options): Remove -mflat and
944         all -mxxx (xxx:chip) options.
945         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
946         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
947         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
948         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
949         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
950         * config/sparc/sparc.c: Likewise.
951         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
952         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
953         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
954         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
955         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
956         (sparc_flat_must_save_register_p): Likewise.
957         (sparc_flat_compute_frame_size): Likewise.
958         (sparc_flat_save_restore): Likewise.
959         (sparc_flat_function_prologue): Likewise.
960         (sparc_flat_function_epilogue): Likewise.
961         (sparc_flat_epilogue_delay_slots): Likewise.
962         (sparc_flat_eligible_for_epilogue_delay): Likewise.
963         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
964         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
965         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
966         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
967         (CONDITIONAL_REGISTER_USAGE): Likewise.
968         (FRAME_POINTER_REQUIRED): Likewise.
969         (INITIAL_ELIMINATION_OFFSET): Likewise.
970         (BASE_RETURN_VALUE_REG): Likewise.
971         (BASE_OUTGOING_VALUE_REG): Likewise.
972         (BASE_PASSING_ARG_REG): Likewise.
973         (BASE_INCOMING_ARG_REG): Likewise.
974         (INCOMING_REGNO): Likewise.
975         (OUTGOING_REGNO): Likewise.
976         (LOCAL_REGNO): Likewise.
977         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
978         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
979         (EPILOGUE_USES): Likewise.
980         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
981         ("flat" attribute): Delete.
982         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
983         handling.
984         (call followed by jump define_peephole's): Delete.
985         (exception_receiver): Likewise.
986         (builtin_setjmp_receiver): Likewise.
987         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
988
989 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
990
991         PR c/11658
992         PR c/13994
993         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
994         on langhooks.h.
995         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
996         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
997         Include langhooks.h.  Replace c_common_truthvalue_conversion
998         with the truthvalue_conversion language hook throughout.
999         (expr_no_commas): Call default_conversion before save_expr
1000         for the first term of the production 'x ? : y'.
1001         * c-common.c (c_common_truthvalue_conversion): Remove
1002         obsolete block.  Invoke recursively the hook instead
1003         of this function.
1004         * c-convert.c (convert): handle ERROR_MARK_NODE.
1005         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
1006         returned by the truthvalue_conversion language hook.
1007         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
1008         c_objc_common_truthvalue_conversion.
1009         * c-objc-common.c (c_objc_common_truthvalue_conversion):
1010         New function.
1011         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
1012         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
1013         c_objc_common_truthvalue_conversion.
1014
1015 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
1016
1017         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
1018         of gen_rtx.
1019         (LIBCALL_VALUE): Likewise.
1020         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
1021         gen_rtx_CC0 instead of gen_rtx.
1022         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
1023         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
1024         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
1025         gen_rtx.
1026         (m68hc11_emit_logical): Likewise.
1027
1028 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
1029
1030         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
1031         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
1032         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
1033         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
1034         config/mips/mips.md, config/mmix/mmix.c,
1035         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
1036         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
1037         config/rs6000/altivec.md, config/s390/s390.c,
1038         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
1039         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
1040         Use const0_rtx instead of GEN_INT (0).  Do the same for other
1041         constants that are readily available.
1042
1043 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
1044
1045         * doloop.c, optabs.c, regmove.c, sched-deps.c,
1046         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
1047         instead of GEN_INT (0).  Do the same for other constants that
1048         are readily available.
1049
1050 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
1051
1052         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
1053         gen_rtx.
1054         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
1055         instead of gen_rtx.
1056         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
1057         gen_rtx.
1058         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
1059         gen_rtx_ASHIFT instead of gen_rtx.
1060         (udivmodqi4): Likewise.
1061
1062 2004-02-02  Richard Henderson  <rth@redhat.com>
1063
1064         PR target/13789
1065         * expr.c (store_expr): Use force_operand before emit_move_insn.
1066
1067 2004-02-02  Jeff Law  <law@redhat.com>
1068             Roger Sayle  <roger@eyesopen.com>
1069
1070         * tree.c (commutative_tree_code, associative_tree_code): New
1071         functions.
1072         (iterative_hash_expr): Use commutative_tree_code.
1073         * tree.h (commutative_tree_code, associative_tree_code): Declare.
1074         * fold-const.c (operand_equal_p): Use commutative_tree_code
1075         rather than inlining the commutativity check.
1076         (fold): Likewise.
1077
1078 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
1079
1080         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
1081         * config/frv/frv-protos.h: Remove the prototype for
1082         frv_function_arg_keep_as_reference.
1083         * config/frv/frv.c (frv_function_arg_keep_as_reference):
1084         Remove.
1085         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
1086         * config/stormy16/stormy16.h: Remove the commented-out
1087         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
1088
1089 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
1090
1091         PR target/13914
1092         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
1093         for retaddr_column.
1094
1095 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
1096
1097         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
1098         gen_rtx.
1099
1100 2004-02-02  Eric Christopher  <echristo@redhat.com>
1101             Zack Weinberg  <zack@codesourcery.com>
1102
1103         * c-opts.c (c_common_handle_option): Add -finput-charset.
1104         * c.opt: Ditto.
1105         * cppcharset.c (one_iso88591_to_utf8): Remove.
1106         (convert_iso88591_utf8): Ditto.
1107         (conversion_tab): Remove 8859-1 converter.
1108         (_cpp_input_to_utf8): Remove.
1109         (_cpp_init_iconv_buffer): Ditto.
1110         (_cpp_close_iconv_buffer): Ditto.
1111         (_cpp_convert_input): New function.
1112         (_cpp_default_encoding): Ditto.
1113         * cpphash.h: Add/remove prototypes for above.
1114         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
1115         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
1116         for narrow execution and input character sets.
1117         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
1118         * doc/cppopts.texi: Document -finput-charset.
1119
1120 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
1121
1122         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
1123         against FIRST_PSEUDO_REGISTER.
1124
1125 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
1126
1127         * doc/invoke.texi (SPARC options): Further improve.
1128
1129 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
1130
1131         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
1132         config/h8300/h8300.c, config/ip2k/ip2k.md,
1133         config/iq2000/iq2000.c, config/mips/mips.c,
1134         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
1135         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
1136         config/v850/v850.md: Fix indentation.
1137
1138 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
1139
1140         * config/sparc/sparc.c (function_arg_slotno): Align TImode
1141         arguments on a 16-byte boundary in the parameter array if ARCH64.
1142         Split handling of TFmode.
1143
1144 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
1145
1146         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
1147         Don't test CONSTANT_P (x).
1148         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
1149         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
1150         Fix misindentation.
1151
1152 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
1153
1154         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
1155
1156 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
1157
1158         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
1159         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
1160         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
1161         config/iq2000/iq2000.c, config/m32r/m32r.c,
1162         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
1163         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
1164         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
1165         config/stormy16/stormy16.c, config/v850/v850.md,
1166         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
1167
1168 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
1169
1170         * config/mcore/mcore.c (block_move_sequence): Replace
1171         gen_rtx_CONST_INT with GEN_INT.
1172
1173 2004-02-02  Jan Hubicka  <jh@suse.cz>
1174
1175         * alias.c (record_set): Use hard_regno_nregs.
1176         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
1177         * builtins.c (apply_args_size): Likewise.
1178         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
1179         mark_set_regs, add_stored_regs, mark_referenced_regs,
1180         insert_restore, insert_save, insert_one_insn): Likewise.
1181         * cfgcleanup.c: Include regs.h
1182         (mark_effect, mentions_nonequal_regs): Likewise.
1183         * cfgrtl.c (mark_killed_regs): Likewise
1184         * combine.c (update_table_tick, record_value_for_reg,
1185         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
1186         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
1187         reg_bitfield_target_p, distribute_notes): Likewise.
1188         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
1189         exp_equiv_p, cse_insn): Likewise.
1190         * cselib.c (cselib_lookup): Likewise.
1191         (cselib_invalidate_regno, cselib_record_set): Likewise.
1192         * df.c (df_ref_record): Likewise.
1193         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
1194         Likewise.
1195         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
1196         count_or_remove_death_notes_bb): Likewise.
1197         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
1198         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
1199         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
1200         * integrate.c (mark_stores): Likewise.
1201         * jump.c (delete_prior_computation): Likewise.
1202         * lcm.c (reg_dies, reg_becomes_live): Likewise.
1203         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
1204         * loop.c (LOOP_REGNO_NREGS): Likewise.
1205         * postreload.c (reload_combine, reload_combine_note_store,
1206         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
1207         * ra-colorize.c (combine, color_usable_p, get_free_reg,
1208         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
1209         try_recolor_web, insert_coalesced_conflicts, check_colors,
1210         break_precolored_alias): Likewise.
1211         * ra-debug.c: Include regs.h
1212         (ra_print_rtx_object): Likewise.
1213         * ra-rewrite (choose_spill_colors): Likewise.
1214         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
1215         * ra.c (init_ra): Likewise.
1216         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
1217         peep2_find_free_register): Likewise.
1218         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
1219         * regclass.c (hard_regno_nregs): New array.
1220         (init_reg_modes_once): Initialize it.
1221         (choose_hard_reg_mode): Use it.
1222         (record_reg_classes): Likewise.
1223         * regmove.c (mark_flags_life_zones): Likewise.
1224         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
1225         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
1226         copy_value, maybe_mode_change, find_oldest_value_reg,
1227         copyprop_hardreg_forward_1):
1228         * regs.h (hard_regno_nregs): Declare.
1229         * realod.c (reload_inner_reg_of_subreg): Use it.
1230         (push_reload, combine_reloads, find_dummy_reload,
1231         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
1232         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
1233         reload_adjust_reg_for_mode): Likewise.
1234         * reload1.c (compute_use_by_pseudos, count_pseudo,
1235         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
1236         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
1237         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
1238         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
1239         delete_output_reload): Likewise.
1240         * resource.c (update_live_status, mark_referenced_resources,
1241         mark_set_resources, mark_target_live_regs): Likewise.
1242         * rtlanal.c:  Include regs.h
1243         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
1244         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
1245         subreg_regno_offset, subreg_offset_representable_p,
1246         hoist_test_store): Likewise.
1247         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
1248         * sched-rgn.c (check_live_1, update_live_1): Likewise.
1249         * stmt.c: Include regs.h
1250         (decl_conflicts_with_clobbers_p): Likewise.
1251         * varasm.c (make_decl_rtl): Likewise.
1252         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
1253
1254 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
1255
1256         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
1257         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
1258         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
1259         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
1260         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
1261         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
1262         config/iq2000/iq2000.h, config/m32r/m32r.c,
1263         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
1264         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
1265         config/mcore/mcore.c, config/mcore/mcore.h,
1266         config/mcore/mcore.md, config/mips/mips.c,
1267         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
1268         config/rs6000/rs6000.c, config/s390/s390.c,
1269         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
1270         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
1271         "gen_rtx (FOO, " with "gen_rtx_FOO (".
1272
1273 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
1274
1275         * config/h8300/h8300.md (two peephole2's): New.
1276
1277 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
1278
1279         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
1280         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
1281         (ASM_CPU_SPEC): Likewise
1282         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
1283         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
1284
1285 2004-02-01  Roger Sayle  <roger@eyesopen.com>
1286
1287         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
1288         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
1289         (expand_builtin): Always call expand_builtin_pow.
1290
1291 2004-02-01  Roger Sayle  <roger@eyesopen.com>
1292
1293         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
1294         BUILT_IN_SIGNBITL): New GCC builtins.
1295         * builtins.c (expand_builtin_signbit): New function to RTL expand
1296         calls to signbit, signbitf and signbitl as inline intrinsics.
1297         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
1298         (fold_builtin_signbit): New function to perform constant folding
1299         of signbit, signbitf and signbitl.
1300         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
1301
1302         * doc/extend.texi: Document new signbit{,f,l} builtins.
1303
1304 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
1305
1306         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
1307
1308 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
1309
1310         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
1311         "mips_const_double_ok" and "simple_memory_operand", which were
1312         removed from the MIPS port with the mips-3_4-rewrite branch merge.
1313         * config/mips/mips.c (mips16_lay_out_constants): Update comment
1314         for removal of simple_memory_operand.
1315
1316 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
1317
1318         * config/c4x/c4x.md: Use GEN_INT instead of
1319         gen_rtx (CONST_INT, ...).
1320
1321 2004-01-31  Richard Henderson  <rth@redhat.com>
1322
1323         * varasm.c (output_constant_pool): Don't zap the pool.
1324
1325 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
1326
1327         * genrecog.c (decision_type): Add DT_const_int.
1328         (write_cond) [DT_const_int]: Print a comparison against small
1329         constant.
1330         (write_node): Simplify comparisons against small constants
1331         before printing tests.
1332
1333 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
1334
1335         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
1336         instead of gen_rtx_CONST_INT.
1337
1338 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
1339
1340         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
1341         instead of gen_rtx_CONST_INT.
1342
1343 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
1344
1345         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
1346         hook_bool_CUMULATIVE_ARGS_false.
1347         * targhooks.c (default_strict_argument_naming): Rename to
1348         hook_bool_CUMULATIVE_ARGS_false.
1349         * targhooks.h: Update the prototype for
1350         default_strict_argument_naming.
1351
1352 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
1353
1354         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
1355         * config/sh/sh.h: Likewise.
1356         * config/sh/sh.md: Likewise.
1357
1358 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
1359
1360         * doc/invoke.texi (SPARC options): Restructure and update.
1361
1362 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
1363
1364         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
1365         STRICT_ARGUMENT_NAMING): Poison.
1366         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
1367         hook_bool_tree_false.
1368         * targhooks.c (default_promote_function_args): Remove.
1369         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
1370         Don't check incoming.
1371         (default_strict_argument_naming): Don't use
1372         STRICT_ARGUMENT_NAMING.
1373         * targhooks.h: Remove the prototype for
1374         default_promote_function_args.
1375
1376 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
1377
1378         * config/i386/i386-protos.h: Remove the prototype for
1379         ix86_setup_incoming_varargs.
1380         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
1381         (ix86_setup_incoming_varargs): Make it static.
1382         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
1383
1384 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
1385
1386         * alloc-pool.c: Fix comment typos.
1387         * builtin-types.def: Likewise.
1388         * builtins.def: Likewise.
1389         * c-pretty-print.c: Likewise.
1390         * df.h: Likewise.
1391         * reload1.c: Likewise.
1392
1393 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
1394
1395         * doc/invoke.texi: Follow spelling conventions.
1396         * doc/tm.texi: Likewise.
1397
1398 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
1399
1400         * doc/install.texi: Fix typos.
1401         * doc/invoke.texi: Likewise.
1402
1403 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
1404
1405         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
1406         registers as pointers.
1407         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
1408
1409 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
1410
1411         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
1412         and restore it to gen_lowpart_general on exit.
1413         (gen_lowpart_for_combine): Adjust all callers to go through
1414         gen_lowpart.
1415         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
1416         and restore it to gen_lowpart_general on exit.
1417         (gen_lowpart_if_possible): Adjust all callers to go through
1418         gen_lowpart.
1419         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
1420         (gen_lowpart): Declare as pointer to function, initialized to
1421         gen_lowpart_general.
1422         * rtl.h (gen_lowpart): Declare as pointer to function.
1423
1424 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
1425
1426         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
1427         * calls.c: Likewise.
1428         * emit-rtl.c: Likewise.
1429         * function.c: Likewise.
1430         * reload1.c: Likewise.
1431         * config/i386/cygming.h: Likewise.
1432         * config/i386/i386.c: Likewise.
1433         * config/i386/winnt.c: Likewise.
1434
1435 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
1436
1437         PR bootstrap/9249
1438         * doc/install.texi: document --enable-__cxa_atexit option.
1439         * configure.ac: Disable __cxa_atexit if not supported.
1440         * configure: Regenerate.
1441
1442 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
1443
1444         * ggc-zone.c (ggc_free): New function.
1445
1446 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
1447
1448         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
1449         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
1450         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
1451         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
1452         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
1453         config/alpha/alpha.c, config/alpha/alpha.h,
1454         config/alpha/alpha.md, config/alpha/unicosmk.h,
1455         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
1456         config/c4x/c4x-protos.h, config/c4x/c4x.md,
1457         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
1458         config/frv/frvend.c, config/i386/cygming.h,
1459         config/i386/djgpp.h, config/i386/emmintrin.h,
1460         config/i386/gthr-win32.c, config/i386/i386-interix.h,
1461         config/i386/i386-protos.h, config/i386/openbsd.h,
1462         config/i386/winnt.c, config/i386/xm-mingw32.h,
1463         config/i386/xmmintrin.h, config/ia64/ia64.md,
1464         config/iq2000/iq2000.md, config/m32r/m32r.md,
1465         config/m68k/m68k.md, config/mcore/mcore-elf.h,
1466         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
1467         config/mips/iris5gas.h, config/mips/iris6.h,
1468         config/mips/iris6gas.h, config/mips/linux.h,
1469         config/mips/mips.md, config/mips/netbsd.h,
1470         config/mips/openbsd.h, config/mips/windiss.h,
1471         config/pa/fptr.c, config/rs6000/aix.h,
1472         config/rs6000/altivec.h, config/rs6000/darwin.h,
1473         config/rs6000/xcoff.h, config/s390/s390-protos.h,
1474         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
1475         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
1476         config/sparc/sol2.h: Update copyright.
1477
1478 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
1479
1480         * Makefile.in (abs_docdir, abs_srcdir): Define.
1481         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
1482
1483 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
1484
1485         * genconfig.c (main): Have CC0_P check its operand even on a
1486         target without cc0.
1487
1488 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
1489
1490         * config/alpha/alpha.c: Remove mentions of deprecates macros
1491         in comments, remove some target-independent comments about target
1492         macros, and/or add minimal function comments for target hook
1493         implementations.
1494         * config/avr/avr.c: Likewise.
1495         * config/ia64/ia64.h: Likewise.
1496         * config/ip2k/ip2k.c: Likewise.
1497         * config/iq2000/iq2000.c: Likewise.
1498         * config/m32r/m32r.h: Likewise.
1499         * config/m68hc11/m68hc11.c: Likewise.
1500         * config/mcore/mcore.c: Likewise.
1501         * config/mmix/mmix.c: Likewise.
1502         * config/mn10300/mn10300.c: Likewise.
1503         * config/pa/pa.c: Likewise.
1504         * config/pdp11/pdp11.c: Likewise.
1505         * config/rs6000/rs6000.h: Likewise.
1506         * config/sh/sh.c: Likewise.
1507         * config/sh/sh.h: Likewise.
1508         * config/sparc/sparc.c: Likewise.
1509         * config/sparc/sparc.h: Likewise.
1510         * config/stormy16/stormy16.c: Likewise.
1511         * config/xtensa/xtensa.c: Likewise.
1512
1513 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
1514
1515         PR optimization/12147
1516         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
1517         RELOAD_FOR_OPADDR_ADDR.
1518         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
1519         might be reused as RELOAD_FOR_OPADDR_ADDR register.
1520
1521 2004-01-30  Jan Hubicka  <jh@suse.cz>
1522
1523         * reload.c (get_secondary_mem): Fix updating of
1524         secondary_memlocs_elim_used.
1525
1526 2004-01-30  Richard Henderson  <rth@redhat.com>
1527
1528         * varasm.c (struct rtx_const, struct pool_constant): Remove.
1529         (MAX_RTX_HASH_TABLE): Remove.
1530         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
1531         (first_pool, last_pool, pool_offset): Remove.
1532         (struct rtx_constant_pool): Split out from ...
1533         (struct varasm_status): ... here.  Reference one via pointer.
1534         (struct constant_descriptor_rtx): Merge struct pool_constant.
1535         (SYMHASH): Remove.
1536         (decode_rtx_const): Remove.
1537         (const_hash_rtx, compare_constant_rtx): Remove.
1538         (record_constant_rtx): Remove.
1539         (const_desc_rtx_hash, const_desc_rtx_eq): New.
1540         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
1541         (const_rtx_hash_1, const_rtx_hash): New.
1542         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
1543         (simplify_subtraction): Use simplify_rtx.
1544         (force_const_mem): Rewrite to use new data structures.
1545         (find_pool_constant): Likewise.
1546         (get_pool_constant, get_pool_constant_mark,
1547         get_pool_constant_for_function, get_pool_mode,
1548         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
1549         (output_constant_pool_2): Split out from output_constant_pool.
1550         (output_constant_pool_1): Likewise.  Use new pool datastructures.
1551         (output_constant_pool): Zap entire pool datastructure.
1552         (mark_constant): Use new pool datastructures.
1553         (mark_constants): Use for_each_rtx.
1554         (mark_constant_pool): Use new pool datastructures.
1555
1556 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
1557
1558         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
1559         Copy operands[1] to pseudo for simplify_gen_subreg.
1560
1561 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
1562
1563         * gcse.c (bypass_block): Fix a typo in the previous check-in
1564         to the file.
1565
1566 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
1567
1568         * toplev.c: Include alloc-pool.h.
1569         * Makefile.in (toplev.c): Update dependencies.
1570
1571 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1572
1573         * combine.c (simplify_shift_const, case XOR): Be careful when
1574         commuting XOR with ASHIFTRT.
1575
1576 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
1577             Eric Botcazou  <ebotcazou@libertysurf.fr>
1578
1579         * config/sparc/sparc-protos.h: Remove the prototype for
1580         sparc_builtin_saveregs.
1581         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
1582         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
1583         (TARGET_PROMOTE_PROTOTYPES): Likewise.
1584         (TARGET_STRUCT_VALUE_RTX): Likewise.
1585         (TARGET_RETURN_IN_MEMORY): Likewise.
1586         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
1587         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
1588         (sparc_builtin_saveregs): Make it static.
1589         (sparc_promote_prototypes): New.
1590         (sparc_struct_value_rtx): Likewise.
1591         (sparc_return_in_memory): Likewise.
1592         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
1593         (PROMOTE_FUNCTION_RETURN): Likewise.
1594         (RETURN_IN_MEMORY): Likewise.
1595         (STRUCT_VALUE): Likewise.
1596         (STRUCT_VALUE_INCOMING): Likewise.
1597         (EXPAND_BUILTIN_SAVEREGS): Likewise.
1598         (STRICT_ARGUMENT_NAMING): Likewise.
1599         (PROMOTE_PROTOTYPES): Likewise.
1600
1601         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
1602
1603 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
1604
1605         PR c/12818
1606         * varasm.c (const_hash_1) <STRING_CST>: Use the
1607         address to compute the hash value if flag_writable_strings.
1608         (compare_constant) <STRING_CST>: Compare the addresses
1609         if flag_writable_strings.
1610         (build_constant_desc): Do not copy the expression for a
1611         STRING_CST if flag_writable_strings.
1612
1613 2004-01-30  Jan Hubicka  <jh@suse.cz>
1614
1615         * alloc-pool.c: Include hashtab.h
1616         (alloc_pool_descriptor): New structure
1617         (alloc_pool_hash): New global variable.
1618         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
1619         (create_alloc_pool): Update statistics.
1620         (free_alloc_pool): Likewise.
1621         (pool_alloc): Likewise.
1622         (output_info): New structure
1623         (print_statistics, dump_alloc_pool_statistics): New function.
1624         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
1625         (dump_alloc_pool_statistics): Declare.
1626         * toplev.c (finalize):  Dump statistics.
1627
1628         * reload.c (secondary_memlocs_elim_used): New static variable.
1629         (get_secondary_mem): Update it.
1630         (find_reloads): Use it.
1631
1632 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
1633
1634         * toplev.c: Fix broken checkin of 2003-12-30, again.
1635
1636 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
1637
1638         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
1639         s390*-*-* targets by specifying a 'nop' insn.
1640         * configure: Regenerate.
1641
1642 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
1643
1644         PR target/11475
1645         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
1646
1647 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
1648
1649         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
1650         of addr when creating MEM copy.
1651
1652 2004-01-29  Devang Patel  <dpatel@apple.com>
1653
1654         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
1655
1656 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
1657
1658         PR inline-asm/6162
1659         * reload.c (find_reloads): Only support one pair of commutative
1660         operands.
1661
1662 2004-01-29  Roger Sayle  <roger@eyesopen.com>
1663
1664         PR java/13824
1665         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
1666         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
1667         recursion.
1668
1669 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
1670
1671         * config/frv/frv.c: Don't mention deprecated macros in
1672         comments.  Remove some target-independent comments about
1673         target macros.
1674         * config/frv/frv.h: Likewise.
1675
1676 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1677
1678         * cfghooks.c (split_block): Set probability and count of the
1679         new edge.
1680
1681 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
1682
1683         * dwarf2out.c (struct die_struct): Added field decl_id.
1684         (decl_die_table): Changed to hash table.
1685         (decl_die_table_allocated): Deleted.
1686         (decl_die_table_in_use): Deleted.
1687         (DECL_DIE_TABLE_INCREMENT): Deleted.
1688         (decl_die_table_hash): New function.
1689         (decl_die_table_eq): New function.
1690         (lookup_decl_die): Lookup in a hash table.
1691         (equate_decl_number_to_die): Insert into a hash table.
1692         (dwarf2out_init): Init hash table decl_die_table.
1693
1694 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
1695
1696         PR optimization/13424
1697         * expr.c (store_constructor): Revert 2003-12-03 change.
1698
1699         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
1700         expected before returning early.  Avoid sharing RTL if they
1701         need to be changed.
1702
1703         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
1704         handling so that memory attributes are preserved.  Don't call
1705         ix86_set_move_mem_attrs.
1706         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
1707         (ix86_expand_clrstr): Rename src argument to
1708         dst.  Rework rep_stos and strset handling so that memory attributes
1709         are preserved.
1710         (ix86_expand_strlen): Pass src argument to
1711         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
1712         memory attributes are preserved.
1713         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
1714         change_address instead of gen_rtx_MEM.
1715         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
1716         expanders.
1717         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
1718         strmovqi, strmovqi_rex64): Remove.
1719         (rep_mov*, strmov*): Prefix insn names with *.
1720         (strset, strset_singleop, rep_stos): New expanders.
1721         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
1722         strsetqi, strsetqi_rex64): Remove.
1723         (rep_stos*, strset*): Prefix insn names with *.
1724         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
1725         to SImode.
1726         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
1727         are preserved.
1728         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
1729         Prefix insn names with *.
1730         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
1731         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
1732         (strlenqi_1): New expander.
1733         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
1734
1735 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1736
1737         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
1738         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
1739         verify_flow_info): Declaration removed.
1740         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
1741         (debug_bb, debug_bb_n): Add argument to dump_bb call.
1742         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
1743         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
1744         instead of delete_block.
1745         * cfghooks.c: Include timevar.h and toplev.h.
1746         (cfg_hooks): Define here.
1747         (verify_flow_info, dump_bb): Moved from cfg.c.
1748         (redirect_edge_and_branch, redirect_edge_and_branch_force,
1749         split_block, split_block_after_labels, move_block_after,
1750         delete_basic_block, split_edge, create_basic_block,
1751         create_empty_bb, can_merge_blocks_p, merge_blocks,
1752         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
1753         New functions.
1754         * cfghooks.h (struct cfg_hooks): Added fields name,
1755         make_forwarder_block, tidy_fallthru_edge and
1756         move_block_after. Changed type of verify_flow_info, dump_bb,
1757         split_block fields. Renamed cfgh_split_edge and delete_block
1758         fields.
1759         (redirect_edge_and_branch, redirect_edge_and_branch_force,
1760         split_block, delete_block, split_edge, create_basic_block,
1761         can_merge_blocks_p, merge_blocks): Macros removed.
1762         (cfg_hooks): Do not export.
1763         (verify_flow_info, dump_bb, redirect_edge_and_branch,
1764         redirect_edge_and_branch_force, split_block, split_block_after_labels,
1765         move_block_after, delete_basic_block, split_edge, create_basic_block,
1766         create_empty_bb, can_merge_blocks_p, merge_blocks,
1767         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
1768         Declare.
1769         (cfg_layout_rtl_cfg_hooks): Declare.
1770         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
1771         New functions.
1772         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
1773         (redirect_edge_with_latch_update): Removed.
1774         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
1775         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
1776         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
1777         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
1778         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
1779         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
1780         cfghooks.c.
1781         (rtl_create_basic_block): Coding style fix.
1782         (rtl_tidy_fallthru_edge, rtl_move_block_after,
1783         rtl_make_forwarder_block): New functions.
1784         (update_cfg_after_block_merging): Removed.
1785         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
1786         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
1787         to dump_bb.
1788         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
1789         find_if_case_2): Don't update dominators.
1790         * timevar.def (TV_CFG_VERIFY): New.
1791         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
1792         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
1793         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
1794         (remove_bbs): Don't call remove_bbs.
1795         (create_preheader): Use make_forwarder_block.
1796         (mfb_keep_just, mfb_update_loops): New static functions.
1797
1798 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
1799
1800         * config/avr/avr.h: Remove target-independent comments about
1801         target macros.
1802
1803 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
1804
1805         * timevar.c (timevar_print): Mention when checking is enabled.
1806
1807 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
1808
1809         * c-lex.c (c_lex): Rename to...
1810         (c_lex_with_flags): Add new parameter to get CPP flags.
1811         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
1812         * c-pragma.h (c_lex_with_flags): Declare.
1813
1814 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
1815
1816         * config/mcore/mcore.c (mcore_external_libcall): Add a
1817         comment.
1818         (mcore_return_in_memory): Likewise.
1819
1820 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
1821
1822         * config/mcore/mcore-protos.h: Remove the prototype for
1823         mcore_setup_incoming_varargs.
1824         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
1825         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
1826         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
1827         (TARGET_PROMOTE_PROTOTYPES): Likewise.
1828         (TARGET_STRUCT_VALUE_RTX): Likewise.
1829         (TARGET_RETURN_IN_MEMORY): Likewise.
1830         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
1831         (mcore_setup_incoming_varargs): Make it static.  Receive the
1832         first argument by reference.  Add argument second_time.
1833         (mcore_external_libcall): New.
1834         (mcore_return_in_memory): Likewise.
1835         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
1836         (PROMOTE_FUNCTION_RETURN): Likewise.
1837         (STRUCT_VALUE): Likewise.
1838         (RETURN_IN_MEMORY): Likewise.
1839         (SETUP_INCOMING_VARARGS): Likewise.
1840         (PROMOTE_PROTOTYPES): Likewise.
1841         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
1842
1843 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
1844
1845         * config/m32r/m32r-protos.h: Remove the prototype for
1846         m32r_setup_incoming_varargs.
1847         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
1848         (TARGET_STRUCT_VALUE_RTX): Likewise.
1849         (TARGET_RETURN_IN_MEMORY): Likewise.
1850         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
1851         (m32r_return_in_memory): New.
1852         (m32r_setup_incoming_varargs): Make it static.
1853         * config/m32r/m32r.h: Remove #undef of
1854         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
1855         definitions of PROMOTE_FUNCTION_ARGS and
1856         PROMOTE_FUNCTION_RETURN.
1857         (PROMOTE_PROTOTYPES): Remove.
1858         (RETURN_IN_MEMORY): Likewise.
1859         (STRUCT_VALUE): Likewise.
1860
1861 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
1862
1863         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
1864         (TARGET_STRUCT_VALUE_RTX): Likewise.
1865         (m68k_struct_value_rtx): Likewise.
1866         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
1867         STRUCT_VALUE_REGNUM.
1868         (PROMOTE_PROTOTYPES): Remove.
1869         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
1870         STRUCT_VALUE_REGNUM.
1871         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
1872         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
1873
1874 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
1875
1876         * config/stormy16/stormy16.c
1877         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
1878         TARGET_BUILD_BUILTIN_VA_LIST.
1879
1880 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
1881
1882         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
1883         (TARGET_STRUCT_VALUE_RTX): Likewise.
1884         (TARGET_RETURN_IN_MEMORY): Likewise.
1885         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
1886         (v850_return_in_memory): Likewise.
1887         (v850_setup_incoming_varargs): Likewise.
1888         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
1889         (SETUP_INCOMING_VARARGS): Likewise.
1890         (RETURN_IN_MEMORY): Likewise.
1891         (STRUCT_VALUE): Likewise.
1892
1893 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
1894
1895         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
1896         (fr30_setup_incoming_varargs): Don't use
1897         STRICT_ARGUMENT_NAMING.
1898         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
1899         (STRICT_ARGUMENT_NAMING): Likewise.
1900
1901 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
1902
1903         * config/frv/frv-protos.h: Remove the prototype for
1904         frv_expand_builtin_saveregs.
1905         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
1906         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
1907         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
1908         STRUCT_VALUE_REGNUM.
1909         (frv_expand_builtin_saveregs): Make it static.
1910         (frv_struct_value_rtx): New.
1911         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
1912
1913 2004-01-29  Jan Hubicka  <jh@suse.cz>
1914
1915         PR c++/12850
1916         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
1917         initial pointers.
1918         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
1919         for functions that will be only inlined.
1920         (cgraph_mark_function_to_output): Likewise.
1921         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
1922         do not clear function body.
1923         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
1924         (tree_rest_of_compilation): Reorganize the logic releasing function
1925         body to use callgraph datastructure.
1926
1927 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1928
1929         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
1930         to register_operand.
1931
1932 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
1933
1934         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
1935         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
1936         match_operand expressions so that all match_dups appear
1937         lexically after their corresponding match_operands.
1938
1939 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
1940
1941         * config/h8300/h8300.c (WORD_REG_USED): Use
1942         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
1943         (compute_saved_regs): Likewise.
1944         (h8300_expand_prologue): Likewise.  Allocate locals after
1945         saving registers.
1946         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
1947         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
1948         registers.
1949         (h8300_initial_elimination_offset): Adjust for the new frame
1950         layout, which swaps flips the order of locals and saved
1951         registers.
1952         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
1953         (HARD_FRAME_POINTER_REGNUM): New.
1954         (ELIMINABLE_REGS): Add an elimination rule from
1955         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
1956         (REGISTER_NAMES): Add fp.
1957         * config/h8300/h8300.md (FP_REG): Change to 11.
1958         (HFP_REG): New.
1959
1960 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
1961
1962         * genrecog.c (write_node): Remove a useless local variable.
1963
1964 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
1965
1966         * Makefile.in (options.c options.h): Use stamp file s-options to
1967         avoid unnecessary rebuilds.
1968         (options.o): New target listing dependencies.
1969         (gtyp-gen.h): Use stamp file s-gtyp-gen.
1970         (STAGESTUFF): Add s-gtyp-gen.
1971
1972 2004-01-28  Richard Henderson  <rth@redhat.com>
1973
1974         * ggc.h (ggc_free): Declare.
1975         * ggc-common.c (ggc_realloc): Use it.
1976         * ggc-page.c: Remove lots of inline markers.
1977         (globals): Add free_object_list.
1978         (ggc_alloc): Tidy.
1979         (ggc_free, validate_free_objects): New.
1980         (poison_pages): Provide default.
1981         (ggc_collect): Call validate_free_objects; emit markers to
1982         the debug file.
1983
1984 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
1985             Jim Wilson  <wilson@specifixinc.com>
1986
1987         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
1988         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
1989         scratch pointer.
1990         (ia64_secondary_reload_class): Delete case GR_REGS.
1991         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
1992         Do not allocate a scratch register.
1993         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
1994
1995 2004-01-28  Jan Hubicka  <jh@suse.cz>
1996
1997         * gcse.c (bypass_block): Prevent edges to be unified when we are
1998         about to emit compenstation code.
1999
2000 2004-01-28  Nick Clifton  <nickc@redhat.com>
2001
2002         * config/arm/arm.c (arm_expand_builtin): Force second argument of
2003         the setcwx insn into a register.
2004
2005 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
2006
2007         * config/fp-bit.c (pack_d): When using paired doubles to implement
2008         a long double, round the high part separately.
2009         (unpack_d): Fix the case in which the high part is a power of two
2010         and the low part is a nonzero value of the opposite sign.
2011
2012 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
2013
2014         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
2015         (TARGET_STRUCT_VALUE_RTX): Likewise.
2016         (c4x_external_libcall): Likewise.
2017         (c4x_struct_value_rtx): Likewise.
2018         * config/c4x/c4x.h: Remove.
2019         (STRUCT_VALUE_REGNUM): Likewise.
2020         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
2021
2022 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
2023
2024         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
2025         (TARGET_STRUCT_VALUE_RTX): Likewise.
2026         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
2027         (STRUCT_VALUE): Likewise.
2028         (PROMOTE_PROTOTYPES): Likewise.
2029
2030 2004-01-27  Roger Sayle  <roger@eyesopen.com>
2031
2032         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
2033         CONST_INT before using INTVAL.
2034
2035 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
2036
2037         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
2038         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
2039         frame if !TARGET_BACKCHAIN.
2040         * config/s390/s390.md ("allocate_stack"): Use pattern only if
2041         TARGET_BACKCHAIN.
2042         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
2043
2044 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
2045
2046         * ia64.c (ia64_function_arg): When placing HFAs in integer
2047         registers, do not special case the mode used for complex
2048         types.  Do not advance int_regs until the current register
2049         is full.
2050
2051 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
2052
2053         PR target/7297
2054         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
2055
2056 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
2057
2058         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
2059         slow, unaligned loads and stores while debugging.  Fix formatting.
2060
2061 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
2062
2063         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
2064         of computing wmode.
2065         (restore_stack_nonlocal): Same.
2066
2067 2004-01-27  Devang Patel <dpatel@apple.com>
2068
2069         * Makefile.in (dwarf2out.o): Depend on input.h
2070         * dbxout.c (dbx_debug_hooks): Add new empty hook for
2071         imported_module_or_decl.
2072         (xcoff_debug_hooks): Same.
2073         * sdbout.c (sdb_debug_hooks): Same.
2074         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
2075         * debug.c (do_nothing_debug_hooks): Same.
2076         (debug_nothing_tree_tree): New function.
2077         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
2078         * dwarf2out.c: Include input.h.
2079         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
2080         (remove_child_TAG): New function.
2081         (dwarf_tag_name): Handle DW_TAG_imported_module.
2082         (gen_subprogram_die): Equate decl number to declaration die. Do not
2083         remove all children dies while reusing declaration die for definition.
2084         Instead, selectively remove only formal parameters.
2085         (gen_variable_die): Equate variable decl to declaration die.
2086         (gen_field_die): Equate field decl to line number.
2087         (force_namespace_die): Replace it with ...
2088         (force_decl_die): ... this.
2089         (force_type_die): New function.
2090         (setup_namespace_context): Replace use of force_namespace_die() with
2091         force_decl_die().
2092         (gen_namespace_die): Same.
2093         (dwarf2out_imported_module_or_decl): New function.
2094
2095 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
2096
2097         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
2098         on CQImode and CHImode incoming arguments in register a7.
2099         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
2100         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
2101         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
2102         xtensa_copy_incoming_a7 before reload.
2103
2104 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
2105
2106         * coverage.c (get_coverage_counts): Give a different message
2107         if flag_guess_branch_prob is set.
2108         * predict.c (counts_to_freqs): Return an int.
2109         (estimate_bb_frequencies): If counts_to_freqs returns zero,
2110         calculate estimates.
2111
2112 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
2113
2114         * config/iq2000/iq2000-protos.h: Remove the prototype for
2115         iq2000_setup_incoming_varargs.
2116         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
2117         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
2118         (TARGET_PROMOTE_PROTOTYPES): Likewise.
2119         (TARGET_STRUCT_VALUE_RTX): Likewise.
2120         (TARGET_RETURN_IN_MEMORY): Likewise.
2121         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
2122         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
2123         (iq2000_return_in_memory): Likewise.
2124         (iq2000_setup_incoming_varargs): Make it static.  Receive the
2125         first argument by reference.
2126         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
2127         (PROMOTE_FUNCTION_RETURN): Likewise.
2128         (PROMOTE_PROTOTYPES): Likewise.
2129         (RETURN_IN_MEMORY): Likewise.
2130         (STRUCT_VALUE): Likewise.
2131         (SETUP_INCOMING_VARARGS): Likewise.
2132         (STRICT_ARGUMENT_NAMING): Likewise.
2133
2134 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
2135
2136         * fixinc/fixinc.c (test_test): Initialize res.
2137         (start_flexer): Initialize pz_cmd_save.
2138
2139 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
2140
2141         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
2142         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
2143
2144 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
2145
2146         PR 7198
2147         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
2148         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
2149         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
2150         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
2151         Possibly rename pattern for consistency.
2152         Remove ??? comments suggesting that this be done.
2153         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
2154         New patterns.
2155         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
2156         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
2157         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
2158         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
2159         Update to match.
2160
2161 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
2162
2163         * config/arm/arm.c (output_return_instruction): Only restore IP
2164         into SP if frame_pointer_needed.
2165
2166 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
2167
2168         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
2169         for SCmode and DCmode if ARCH32.
2170         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
2171         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
2172         if ARCH32.
2173         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
2174         if ARCH32.
2175         (BASE_OUTGOING_VALUE_REG): Likewise.
2176
2177 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
2178
2179         PR target/10904
2180         PR target/13058
2181         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
2182         Forbid mode changes from SImode for lower FP regs if ARCH64.
2183
2184 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
2185
2186         * Makefile.in (bt-load.o): Depend on except.h.
2187         * bt-load.c (except.h): #include.
2188         (compute_defs_uses_and_gen): If insn at end of BB can throw
2189         within this function, consider registers used by it unavailable for
2190         btr migration.
2191         (move_btr_def): If insn at end of BB can throw, insert before rather
2192         than after.
2193
2194         * flags.h (flag_btr_bb_exclusive): Declare.
2195         * toplev.c (flag_btr_bb_exclusive): New variable.
2196         (f_options): Add btr-bb-exclusive.
2197         * bt-load.c (augment_live_range): Restore old behaviour if
2198         flag_btr_bb_exclusive is set.
2199         * common.opt: Add entry for -fbtr-bb-exclusive.
2200         * opts.c (common_handle_options): Same.
2201         * doc/invoke.texi: Document -fbtr-bb-exclusive.
2202
2203         * bt-load.c (btrs_live_at_end): New variable.
2204         (compute_defs_uses_and_gen): Compute its pointed-to array.
2205         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
2206         (augment_live_range): When augmenting with a new dominator,
2207         use only its btrs_live_at_end set, but also add in the full set
2208         of the old dominator.
2209         (btr_def_live_range): Use btrs_live_at_end.
2210         (move_btr_def): Set other_btr_uses_before_def, and move new set
2211         to the end of the basic block, if appropriate.
2212         (migrate_btr_defs): Allocate and free btrs_live_at_end.
2213
2214         * bt-load.c (basic_block_freq): Remove outdated comment.
2215
2216 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
2217
2218         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
2219         (PREDICATE_CODES): Remove duplicate.
2220         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
2221         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
2222         (MASK_PROFILE_KERNEL): Adjust define.
2223
2224 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
2225
2226         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
2227         of long string literals from 32 bytes to sizeof (void *) when !-Os
2228         and to 1 with -Os.
2229
2230 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
2231
2232         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
2233         constant addresses in the normal mode.
2234
2235 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2236
2237         * system.h (CHAR_BITFIELD): Delete.
2238         (BOOL_BITFIELD): New.
2239         * c-decl.c (c_scope): Use BOOL_BITFIELD.
2240         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
2241
2242 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
2243
2244         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
2245         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
2246         (TARGET_PROMOTE_PROTOTYPES): Likewise.
2247         (TARGET_STRUCT_VALUE_RTX): Likewise.
2248         (TARGET_RETURN_IN_MEMORY): Likewise.
2249         (arc_return_in_memory): Likewise.
2250         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
2251         (PROMOTE_FUNCTION_RETURN): Likewise.
2252         (RETURN_IN_MEMORY): Likewise.
2253         (STRUCT_VALUE): Likewise.
2254
2255 2004-01-26  Richard Henderson  <rth@redhat.com>
2256
2257         * c-parse.in (extension): Use itype.
2258         (SAVE_EXT_FLAGS): Don't allocate a tree.
2259         (RESTORE_EXT_FLAGS): Don't read a tree.
2260
2261 2004-01-26  Jan Hubicka  <jh@suse.cz>
2262
2263         * cselib.c (discard_useless_values):  Clear out value pointer pointing
2264         to datastructure to be recycled.
2265
2266 2004-01-25  Jan Hubicka  <jh@suse.cz>
2267
2268         * genextract.c (main): Do not output the memset when not checking.
2269
2270 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
2271
2272         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
2273         switch statement instead of a chain of if statements.
2274
2275 2004-01-26  Jeff Law  <law@redhat.com>
2276
2277         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
2278         acute accents for Petur Runolfsson's entry.
2279
2280 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
2281
2282         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
2283         (TARGET_RETURN_IN_MEMORY): Likewise.
2284         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
2285         (RETURN_IN_MEMORY): Likewise.
2286
2287 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
2288
2289          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
2290          unaligned load/store into smaller loads and stores.
2291
2292 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
2293
2294         * function.c (assign_parms): Do not assign
2295         long long argument to memory in prologue if
2296         is it loaded into register.
2297
2298 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
2299
2300          PR middle-end/13779
2301          * expr.c (emit_group_load): split constant
2302          correctly into register components of PARALLEL insn.
2303
2304 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
2305
2306         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
2307         Use adjust_address_nv directly with appropriate mode.
2308         (restore_stack_nonlocal): Ditto.
2309
2310 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
2311
2312         * config/xtensa/xtensa-protos.h: Remove the prototype for
2313         xtensa_builtin_saveregs.
2314         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
2315         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
2316         (TARGET_PROMOTE_PROTOTYPES): Likewise.
2317         (TARGET_STRUCT_VALUE_RTX): Likewise.
2318         (TARGET_RETURN_IN_MEMORY): Likewise.
2319         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
2320         (xtensa_builtin_saveregs): Make it static.
2321         (xtensa_return_in_memory): New.
2322         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
2323         (PROMOTE_FUNCTION_RETURN): Likewise.
2324         (PROMOTE_PROTOTYPES): Likewise.
2325         (STRUCT_VALUE): Likewise.
2326         (RETURN_IN_MEMORY): Likewise.
2327         (EXPAND_BUILTIN_SAVEREGS): Likewise.
2328
2329 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
2330
2331         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
2332         (arm_setup_incoming_varargs): Likewise.
2333         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
2334
2335 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
2336
2337         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
2338         (cris_setup_incoming_varargs): Likewise.
2339         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
2340
2341 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
2342
2343         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
2344         (ns32k_struct_value_rtx): Likewise.
2345         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
2346         NS32K_STRUCT_VALUE_REGNUM.
2347
2348 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
2349
2350         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
2351         (TARGET_PROMOTE_PROTOTYPES): Likewise.
2352         (TARGET_STRUCT_VALUE_RTX): Likewise.
2353         (arm_struct_value_rtx): Likewise.
2354         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
2355         (STRUCT_VALUE): Likewise.
2356         (STRUCT_VALUE_REGNUM): Likewise.
2357         (PROMOTE_PROTOTYPES): Likewise.
2358
2359 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
2360
2361         * config/ia64/ia64-protos.h: Remove the prototype for
2362         ia64_setup_incoming_varargs and ia64_return_in_memory.
2363         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
2364         (TARGET_RETURN_IN_MEMORY): Likewise.
2365         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
2366         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
2367         (ia64_setup_incoming_varargs): Adjust the arguments to meet
2368         the requirement of TARGET_SETUP_INCOMING_VARARGS.
2369         (ia64_return_in_memory): Make it static.  Change the return
2370         type to bool from int.  Add an argument.
2371         (ia64_struct_value_rtx): New.
2372         * config/ia64/ia64.h: Remove commented-out definitions of
2373         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
2374         PROMOTE_PROTOTYPES.
2375         (RETURN_IN_MEMORY): Remove.
2376         (STRUCT_VALUE_REGNUM): Likewise.
2377         (STRICT_ARGUMENT_NAMING): Likewise.
2378
2379 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
2380
2381         PR target/13666
2382         * config/sparc/sparc.c (function_arg_union_value): New function.
2383         (function_arg): Use it to deal with unions.
2384         (function_value): Likewise.  Define 'regbase' only for ARCH64.
2385         Replace a conditional statement by a simpler one.
2386
2387 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
2388
2389         * config/mips/mips.c (mips16_optimize_gp): Delete.
2390         (mips_reorg): Don't call it.
2391
2392 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2393
2394         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
2395         (floatunsqihf2): Remove operand 6.
2396         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
2397         fix patterns.
2398         (ldi_conditional, ldf_conditional): Validate operands.
2399
2400 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2401
2402         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
2403         (HAVE_GAS_HIDDEN): Undefine as interim measure.
2404
2405 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2406
2407         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
2408         memory references if TARGET_EXPOSE_LDP nonzero.
2409
2410 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2411
2412         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
2413
2414 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2415
2416         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
2417         invalid operand combinations.
2418
2419 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2420
2421         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
2422         c4x_legitimate_address_p.  Fix post_modify check.
2423
2424         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
2425         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
2426
2427 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
2428
2429         * config/pa/pa-protos.h: Remove the prototype for
2430         hppa_builtin_saveregs.  Add a prototype for
2431         pa_return_in_memory.
2432         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
2433         (TARGET_PROMOTE_PROTOTYPES): Likewise.
2434         (TARGET_STRUCT_VALUE_RTX): Likewise.
2435         (TARGET_RETURN_IN_MEMORY): Likewise.
2436         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
2437         (pa_struct_value_rtx): Likewise.
2438         (pa_return_in_memory): Likewise.
2439         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
2440         PA_STRUCT_VALUE_REGNUM.
2441         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
2442         (EXPAND_BUILTIN_SAVEREGS): Remove.
2443         (PROMOTE_PROTOTYPES): Likewise.
2444         (PROMOTE_FUNCTION_RETURN): Likewise.
2445
2446 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
2447
2448         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
2449         (TARGET_STRUCT_VALUE_RTX): Likewise.
2450         (vax_struct_value_rtx): Likewise.
2451         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
2452         VAX_STRUCT_VALUE_REGNUM.
2453         (PROMOTE_PROTOTYPES): Remove.
2454
2455 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
2456
2457         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
2458
2459 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
2460
2461         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
2462         and MIPS64 have HI/LO interlocks.  Update comment.
2463
2464 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
2465
2466         * config/stormy16/stormy16-protos.h: Remove the prototype for
2467         xstormy16_setup_incoming_varargs.
2468         * config/stormy16/stormy16.c
2469         (xstormy16_setup_incoming_varargs): Remove.
2470         (xstormy16_return_in_memory): New.
2471         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
2472         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
2473         (TARGET_PROMOTE_PROTOTYPES): Likewise.
2474         (TARGET_STRUCT_VALUE_RTX): Likewise.
2475         (TARGET_RETURN_IN_MEMORY): Likewise.
2476         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
2477         (PROMOTE_FUNCTION_RETURN): Likewise
2478         (PROMOTE_PROTOTYPES): Likewise
2479         (RETURN_IN_MEMORY): Likewise
2480         (STRUCT_VALUE): Likewise
2481         (SETUP_INCOMING_VARARGS): Likewise
2482
2483 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
2484
2485         * config/mips/mips.c (mips_offset_within_object_p): New function.
2486         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
2487         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
2488         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
2489
2490 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
2491
2492         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
2493         (PROMOTE_FUNCTION_RETURN): Likewise.
2494
2495 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
2496
2497         * config/mn10300/mn10300-protos.h: Remove the prototype for
2498         mn10300_builtin_saveregs.
2499         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
2500         (TARGET_STRUCT_VALUE_RTX): Likewise.
2501         (TARGET_RETURN_IN_MEMORY): Likewise.
2502         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
2503         (mn10300_return_in_memory): Likewise.
2504         (mn10300_builtin_saveregs): Make it static.
2505         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
2506         (RETURN_IN_MEMORY): Likewise.
2507         (STRUCT_VALUE): Likewise.
2508         (EXPAND_BUILTIN_SAVEREGS): Likewise.
2509
2510 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
2511
2512         PR bootstrap/13853
2513         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
2514
2515 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
2516
2517         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
2518         using ccr.
2519
2520 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
2521
2522         * config/i860/i860-protos.h: Remove the prototype for
2523         i860_saveregs.
2524         * config/i860/i860.c (i860_saveregs): Make it static.
2525         (i860_struct_value_rtx): New.
2526         (TARGET_STRUCT_VALUE_RTX): Likewise.
2527         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
2528         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
2529         I860_STRUCT_VALUE_REGNUM.
2530         (EXPAND_BUILTIN_SAVEREGS): Remove.
2531
2532 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
2533
2534         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
2535         (TARGET_RETURN_IN_MEMORY): Likewise.
2536         (m68hc11_struct_value_rtx): Likewise.
2537         (m68hc11_return_in_memory): Likewise.
2538         * config/m68hc11/m68hc11.h: Remove a commented-out definition
2539         of PROMOTE_PROTOTYPES.
2540         (RETURN_IN_MEMORY): Remove.
2541         (STRUCT_VALUE_REGNUM): Likewise.
2542
2543 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
2544
2545         * config/mmix/mmix-protos.h: Remove the prototype for
2546         mmix_setup_incoming_varargs.
2547         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
2548         (TARGET_STRUCT_VALUE_RTX): Likewise.
2549         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
2550         (mmix_setup_incoming_varargs): Make it static.
2551         (mmix_struct_value_rtx): New.
2552         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
2553         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
2554         (STRUCT_VALUE_REGNUM): Remove.
2555         (SETUP_INCOMING_VARARGS): Likewise.
2556
2557 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
2558
2559         * config/mips/mips-protos.h: Remove the prototypes for
2560         mips_setup_incoming_varargs and mips_return_in_memory.
2561         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
2562         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
2563         (TARGET_PROMOTE_PROTOTYPES): Likewise.
2564         (TARGET_STRUCT_VALUE_RTX): Likewise.
2565         (TARGET_RETURN_IN_MEMORY): Likewise.
2566         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
2567         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
2568         (mips_setup_incoming_varargs): Match the prototype for
2569         TARGET_SETUP_INCOMING_VARARGS.
2570         (mips_return_in_memory): Make it static.  Add argument fntype.
2571         (mips_strict_argument_naming): New.
2572         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
2573         (PROMOTE_FUNCTION_ARGS): Likewise.
2574         (PROMOTE_FUNCTION_RETURN): Likewise.
2575         (STRUCT_VALUE): Likewise.
2576         (RETURN_IN_MEMORY): Likewise.
2577         (SETUP_INCOMING_VARARGS): Likewise.
2578         (STRICT_ARGUMENT_NAMING): Likewise.
2579
2580 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
2581
2582         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
2583         (TARGET_RETURN_IN_MEMORY): Likewise.
2584         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
2585         (ip2k_return_in_memory): Likewise.
2586         (ip2k_setup_incoming_varargs): Likewise.
2587         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
2588         (STRUCT_VALUE): Likewise.
2589         (STRUCT_VALUE_INCOMING): Likewise.
2590         (SETUP_INCOMING_VARARGS): Likewise.
2591
2592 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
2593
2594         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
2595         (TARGET_RETURN_IN_MEMORY): Likewise.
2596         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
2597         (avr_return_in_memory): Remove.
2598         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
2599         (STRUCT_VALUE): Likewise.
2600         (STRUCT_VALUE_INCOMING): Likewise.
2601         (STRICT_ARGUMENT_NAMING): Likewise.
2602
2603 2004-01-25  Jan Hubicka  <jh@suse.cz>
2604
2605         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
2606
2607 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
2608
2609         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
2610         (mips_regno_mode_ok_for_base_p): Declare.
2611         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
2612         (FRAME_POINTER_REGNUM): Renumber to 78.
2613         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
2614         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
2615         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
2616         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
2617         (REG_MODE_OK_FOR_BASE_P): Likewise.
2618         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
2619         entry for 77 to "$arg" and entry for 78 to "$frame".
2620         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
2621         (mips_reg_mode_ok_for_base_p): Remove.
2622         (mips_regno_mode_ok_for_base_p): New function, derived from old
2623         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
2624         restrictions unless we're being strict.
2625         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
2626
2627 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
2628
2629         * c-common.h: Fix comment typos.
2630         * c-decl.c: Likewise.
2631         * cgraphunit.c: Likewise.
2632         * combine.c: Likewise.
2633         * et-forest.c: Likewise.
2634         * flow.c: Likewise.
2635         * function.c: Likewise.
2636         * ifcvt.c: Likewise.
2637         * integrate.c: Likewise.
2638         * jump.c: Likewise.
2639         * postreload.c: Likewise.
2640         * varray.c: Likewise.
2641
2642 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
2643
2644         * doc/frontends.texi: Update copyright.
2645         * doc/gcov.texi: Likewise.
2646         * doc/gty.texi: Likewise.
2647         * doc/sourcebuild.texi: Likewise.
2648         * doc/standards.texi: Likewise.
2649
2650 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
2651
2652         PR target/12978
2653         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
2654         Remove movstrqi_small because it conflicts with movstrqi_large.
2655
2656 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
2657
2658         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
2659         (TARGET_STRUCT_VALUE_RTX): Likewise.
2660         (cris_struct_value_rtx): Likewise.
2661         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
2662         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
2663         STRUCT_VALUE_REGNUM.
2664         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
2665
2666 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
2667
2668         PR bootstrap/13848
2669         * cse.c (cse_cc_succs): Change the mode of the source expression
2670         as soon as decide we need a new mode.  Don't permit changing modes
2671         if we found a match in a successor block.
2672         (cse_condition_code_reg): Save original mode of source expression
2673         so that we know whether we have to change the mode in other
2674         insns.
2675
2676 2004-01-24  Jan Hubicka  <jh@suse.cz>
2677
2678         * emit-rtl.c (change_address, adjust_address_1, offset_address,
2679         widen_memory_access):  Return early when there is nothing to change.
2680
2681 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
2682
2683         * simplify-rtx.c (simplify_relational_operation): Don't
2684         simplify address == constant into address + -constant == 0.
2685
2686 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
2687
2688         * gcc.c (process_command): Don't internationalize the
2689         Copyright message.
2690         * mips-tfile.c (main): Likewise.
2691
2692 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
2693
2694         * cse.c: (cse_cc_succs) Fix comparison warning.
2695
2696 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
2697
2698         * config/h8300/h8300.md: Remove extraneous USE in expanders.
2699
2700 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
2701
2702         * config/h8300/h8300-protos.h: Provide prototypes for
2703         h8300_legitimate_constant_p and h8300_legitimate_address_p.
2704         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
2705         (h8300_rtx_ok_for_base_p): Likewise.
2706         (h8300_legitimate_address_p): Likewise.
2707         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
2708         h8300_legitimate_constant_p.
2709         (RTX_OK_FOR_BASE_P): Remove.
2710         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
2711
2712 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
2713
2714         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
2715         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
2716         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
2717         (REG_OK_FOR_BASE_STRICT_P): Likewise.
2718         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
2719         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
2720         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
2721         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
2722
2723 2004-01-24  Jan Hubicka  <jh@suse.cz>
2724
2725         * cselib.c (remove_useless_values):  Do not access discarded values.
2726
2727 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
2728
2729         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
2730         arrays.
2731
2732 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
2733
2734         * recog.c: Fix a typo in copyright.
2735
2736 2004-01-23  Andrew Pinski  <apinski@apple.com>
2737
2738         * config/rs6000/rs6000.md (call): Fix misappiled patch.
2739         (call_value): Likewise.
2740
2741 2004-01-23  Richard Henderson  <rth@redhat.com>
2742
2743         PR opt/12941
2744         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
2745         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
2746         if SHIFT_COUNT_TRUNCATED is set.
2747
2748 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
2749
2750         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
2751         separate real and imaginary parts.
2752         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
2753
2754 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
2755
2756         PR target/13674
2757         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
2758         loading into GPR.
2759
2760 2004-01-23  Jan Hubicka  <jh@suse.cz>
2761
2762         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
2763         change.
2764
2765         * alloc-pool.c (align_four): Kill.
2766         (create_alloc_pool): Align size to eight.
2767         (free_alloc_pool, free_pool): Invalidate deallocated data.
2768
2769 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
2770
2771         PR gcc/1532
2772         * cse.c (cse_change_cc_mode): New static function.
2773         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
2774         (cse_condition_code_reg): New function.
2775         * rtl.h (cse_condition_code_reg): Declare.
2776         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
2777         * target.h (struct gcc_target): Add fixed_condition_code_regs and
2778         cc_modes_compatible.
2779         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
2780         (TARGET_CC_MODES_COMPATIBLE): Define.
2781         (TARGET_INITIALIZER): Add new initializers.
2782         * targhooks.c (default_cc_modes_compatible): New function.
2783         * targhooks.c (default_cc_modes_compatible): Declare.
2784         * hooks.c (hook_bool_intp_intp_false): New function.
2785         * hooks.h (hook_bool_intp_intp_false): Declare.
2786         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
2787         (TARGET_CC_MODES_COMPATIBLE): Define.
2788         (ix86_fixed_condition_code_regs): New static function.
2789         (ix86_cc_modes_compatible): Likewise.
2790         * doc/tm.texi (Condition Code): Document new hooks.
2791
2792 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2793
2794         * fixinc/inclhack.def (bad_lval): Renamed to ...
2795         (alpha_bad_lval): ... this.
2796         Removed file list.
2797         Restrict to alpha*-dec-osf*.
2798         * fixinc/fixincl.x: Regenerate.
2799         * fixinc/tests/base/dirent.h: Remove, moving test ...
2800         * fixinc/tests/base/testing.h: ... here, reflecting new name.
2801
2802 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
2803
2804         PR c/13814
2805         * c-decl.c (diagnose_mismatched_decls): Also discard a
2806         built-in if we encounter an old-style definition with the
2807         same name.
2808
2809 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
2810
2811         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
2812         set to default{32,64}.
2813
2814 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
2815
2816         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
2817         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
2818
2819 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
2820             Olivier Hainque  <hainque@act-europe.fr>
2821
2822         * fold-const.c (fold_binary_op_with_conditional_arg): Only
2823         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
2824
2825 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
2826
2827         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
2828         size for minipool references.
2829
2830 2004-01-23  Roger Sayle  <roger@eyesopen.com>
2831
2832         * real.c (real_floor, real_ceil): Tweak to allow input and output
2833         arguments to overlap.
2834         (real_round): New function to implement round(3m) semantics.
2835         * real.h (real_round): Prototype here.
2836         * builtins.c (fold_builtin_round): New function to constant fold
2837         round, roundf and roundl.
2838         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
2839
2840 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
2841
2842         PR optimization/13819
2843         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
2844         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
2845         (sh_handle_sp_switch_attribute): Remove warning.
2846
2847 2003-11-30  Jan Hubicka  <jh@suse.cz>
2848
2849         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
2850
2851 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
2852
2853         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
2854         may or may not return non-NIL.
2855         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
2856         check CANNOT_CHANGE_MODE_CLASS
2857
2858 2004-01-23  Jan Hubicka  <jh@suse.cz>
2859
2860         * basic-block.h (PROP_POSTRELOAD): New macro.
2861         (CLEANUP_LOG_LINKS): New.
2862         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
2863         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
2864
2865         * cselib.c (value_pool): New.
2866         (new_cselib_val): Use pool.
2867         (cselib_init): Initialize value_pool
2868         (cselib_finish): Free pool.
2869
2870 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
2871
2872         * config/sparc/sparc.c (scan_record_type): New function.
2873         (function_arg_slotno): Use it to determine which kinds of
2874         registers the record can be passed in.
2875
2876 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
2877
2878         * config/pa/fptr.c: Fix old-style definition.
2879
2880 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
2881
2882         PR optimization/13724
2883         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
2884         represents the zero bits produced by a ZERO_EXTEND operation.
2885
2886 2004-01-22  Roger Sayle  <roger@eyesopen.com>
2887
2888         PR optimization/13821
2889         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
2890         correctly calculate the lowpart offset of the contracted subreg.
2891
2892 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
2893
2894         * doc/invoke.texi (Optimize Options): Note that --param arguments
2895         are subject to change without notice.
2896
2897 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2898
2899         * config.gcc (mips-sgi-irix6*o32): Removed.
2900         * config/mips/iris6-o32-as.h: Likewise.
2901         * config/mips/iris6-o32-gas.h: Likewise.
2902         * config/mips/iris6-o32.h: Likewise.
2903
2904 2004-01-22  Jan Hubicka  <jh@suse.cz>
2905
2906         * cfgcleanup.c (first_pass): New static variable.
2907         (try_forward_edges):  Add work limiting check for threading.
2908         (try_crossjump_bb):  Add work limiting check for crossjumping.
2909         (try_optimize_cfg):  Maintain first pass variable.
2910
2911 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
2912
2913         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
2914         handles complex and vector modes.
2915
2916 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
2917
2918         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
2919         (REG_OK_FOR_BASE_P_STRICT): Likewise.
2920         (STRICT): Likewise.
2921
2922 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
2923
2924         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
2925         (genrtl_for_stmt): Remove emit_nop calls.
2926
2927 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2928
2929         PR target/13713
2930         PR target/13324
2931         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
2932         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
2933         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
2934
2935 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
2936
2937         * config/arm/arm.c: Include "debug.h".
2938         (thumb_pushpop): Take two new arguments.  Add some commentary.
2939         Output frame information when pushing.
2940         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
2941         thumb_pushpop.
2942         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
2943         offset, and pass it to thumb_pushpop.  Output CFI information.
2944         (thumb_expand_prologue): Add some frame-related markers and notes.
2945
2946 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
2947
2948         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
2949         for TARGET_64BIT.
2950         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
2951         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
2952
2953 2004-01-22  Roger Sayle  <roger@eyesopen.com>
2954             Paolo Bonzini  <bonzini@gnu.org>
2955
2956         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
2957         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
2958         * rtl.h (subreg_lsb_1): Prototype here.
2959         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
2960         sign extensions.
2961
2962 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
2963
2964         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
2965         macro need not be defined if jump-tables should contain
2966         relative addresses only when -fPIC or -fPIC is in effect.
2967
2968 2004-01-22  Jan Hubicka  <jh@suse.cz>
2969
2970         * alias.c (reg_base_value): Turn into varray.
2971         (reg_base_value_size): Kill.
2972         (old_reg_base_value): New deletable varray.
2973         (alias_invariant_size): New variable.
2974         (REG_BASE_VALUE): Update to use varray.
2975         (find_base_value): Likewise.
2976         (record_set): Likewise.
2977         (record_base_value): Likewise.
2978         (memrefs_conflict_p): Likewise.
2979         (record_set): Likewise
2980         (record_base_value): Likewise.
2981         (memrefs_conflict_p): Use alias_invariant_size.
2982         (init_alias_analysis): Use varray; set alias_invariant_size;
2983         rescale other arrays to be sized by maxreg.
2984         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
2985
2986 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
2987
2988         * config/sparc/sparc.c (function_arg_slotno): Use
2989         FLOAT_TYPE_P to detect FP fields in structures.
2990         (function_arg_record_value_1): Likewise.
2991         (function_arg_record_value_2): Likewise.
2992
2993 2004-01-22  Jan Hubicka  <jh@suse.cz>
2994
2995         * function.c (allocate_struct_function): Do not initialize expr, emit
2996         and varasm.
2997         (prepare_function_start): Do it here.
2998         * c-parse.in (maybe_type_qual): Do not produce line number notes.
2999
3000 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
3001
3002         PR target/13559
3003         * config/sparc/sparc.c (function_arg_record_value_3): Revert
3004         to 'word_mode' once the first slot has been filled.
3005
3006 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
3007
3008         * config/sparc/sparc.c (function_arg_record_value_1): Fix
3009         computation of the number of integer registers required.
3010
3011 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
3012
3013         * config/i386/i386.md: Simplify certain comparisons of
3014         const_int.
3015
3016 2004-01-21  Andrew Pinski  <apinski@apple.com>
3017
3018         PR target/13785
3019         * config/rs6000/rs6000.md (call_value): Force operand
3020         1 not operand 0 into a register.
3021
3022 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
3023
3024         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
3025         unwind-dw2-fde.h: Update copyright.
3026
3027 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3028
3029         * pa-protos.h: Update copyright.
3030         * pa.h: Likewise.
3031         * pa.md: Likewise.
3032
3033 2004-01-21  Caroline Tice  <ctice@apple.com>
3034
3035         PR target/12308
3036         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
3037         flags register.
3038         (fix_truncdfdi2): Likewise.
3039         (fix_truncsfdi2): Likewise.
3040         (*fix_truncdi_1): Likewise.
3041         (fix_truncxfsi2): Likewise.
3042         (fix_truncdfsi2): Likewise.
3043         (fix_truncsfsi2): Likewise.
3044         (*fix_truncsi_1): Likewise.
3045         (fix_truncxfhi2): Likewise.
3046         (fix_truncdfhi2): Likewise.
3047         (fix_truncsfhi2): Likewise.
3048         (*fix_trunchi_1): Likewise.
3049
3050 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
3051
3052         * alias.c, basic-block.h, c-common.c, c-common.h,
3053         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
3054         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
3055         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
3056         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
3057         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
3058         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
3059         genautomata.c, genconditions.c, genemit.c, genflags.c,
3060         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
3061         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
3062         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
3063         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
3064         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
3065         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
3066         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
3067         unwind.h, varray.c, varray.h: Update copyright.
3068
3069 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
3070
3071         * config/h8300/coff.h: Update copyright.
3072         * config/h8300/elf.h: Likewise.
3073         * config/h8300/h8300-protos.h: Likewise.
3074         * config/h8300/h8300.c: Likewise.
3075         * config/h8300/h8300.h: Likewise.
3076         * config/h8300/h8300.md: Likewise.
3077
3078 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3079
3080         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
3081         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
3082         ultrix_unistd): New hacks.
3083         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
3084         ULTRIX_CONST2_CHECK): Add checks.
3085         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
3086         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
3087         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
3088         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
3089         * fixinc/tests/base/locale.h: New file.
3090         * fixinc/fixincl.x: Rebuilt.
3091
3092 2004-01-21  Andreas Jaeger  <aj@suse.de>
3093             Michael Matz  <matz@suse.de>
3094
3095         * doc/extend.texi (Extended Asm): Clarify memory clobber.
3096
3097 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
3098
3099         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
3100         _Jv_RegisterClasses through a function pointer.
3101
3102 2004-01-21  Falk Hueffner  <falk@debian.org>
3103
3104         PR target/12898
3105         * config/alpha/alpha.c (alpha_emit_set_const_1): If
3106         no_new_pseudos, use gen_rtx_SET directly for SImode constants
3107         which need multiple instructions to emit.
3108
3109 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
3110
3111         * config/m32r/m32r.h (CPP_SPEC): Define.
3112
3113 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
3114
3115         * c-decl.c (merge_decls): Kill different_binding_level and
3116         different_tu arguments; simplify throughout.
3117         (duplicate_decls): Likewise.
3118         (pushdecl, merge_translation_unit_decls): Update calls to
3119         duplicate_decls.
3120
3121 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3122
3123         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
3124         $(SYSTEM_H).
3125         (print-rtl1.o): Depend on $(SYSTEM_H).
3126
3127 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
3128
3129         PR bootstrap/12730
3130         * configure.ac: Delete definition and subsitution of docdir.
3131         Add info, man, srcman and srcinfo to target hooks. Create doc/
3132         directory.
3133         * configure: Regenerate.
3134         * Makefile.in: Don't substitute docdir and delete all references
3135         throughout.
3136         (MAKEINFOFLAGS): Define.
3137         (stmp-docobjdir): Delete.
3138         (INFOFILES, MANFILES): Define.
3139         (info): Call lang.info, srcinfo and lang.srcinfo.
3140         (generated-manpages): Call lang.man, srcman and lang.srcman.
3141         (srcinfo, srcman): New rules to copy back files to source directory.
3142         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
3143         (install-man): Revamp rule.
3144         (clean): Update dvi directory.
3145         (distclean): Delete TAGS from front end directorys.
3146         (maintainer-clean): Delete all document files in source directory.
3147
3148         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
3149         (objc.srcman, objc.srcinfo): Likewise.
3150
3151 2004-01-20  Bruce Korb  <bkorb@gnu.org>
3152
3153         * fixinc/inclhack.def(math_exception): bypass only for glibc.
3154         (matherr_decl): rename & relocate as exception_structure.
3155         This fix must precede the math_exception fix.
3156
3157 2004-01-20  Roger Sayle  <roger@eyesopen.com>
3158
3159         * fold-const.c (fold_convert): Rename to fold_convert_const.
3160         (fold_convert_const): Change arguments to take a tree_code,
3161         a type and the operand/expression to be converted.  Return
3162         NULL_TREE if no simplification is possible.  Add support for
3163         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
3164         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
3165         Adjust call to fold_convert to match new fold_convert_const.
3166         Avoid modifying the tree passed to fold in-place.
3167
3168 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
3169
3170         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
3171         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
3172         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
3173
3174 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3175
3176         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
3177         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
3178         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
3179         (emit_move_sequence): Check scratch_reg first in various if statements.
3180         Extend source simplification to handle all 64-bit CONST_INTs.
3181         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
3182         frame size.
3183         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
3184         frame offset calculations.
3185         * pa.h (NEW_HP_ASSEMBLER): Add comment.
3186         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
3187         LEGITIMATE_64BIT_CONST_INT_P): Define.
3188         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
3189         any CONST_INT as legitimate during and after reload.
3190         (VAL_32_BITS_P, INT_32_BITS): Define.
3191         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
3192
3193 2004-01-20  Jan Hubicka  <jh@suse.cz>
3194
3195         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
3196         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
3197         containing hard regs are shared.
3198         (gen_hard_reg_clobber): New function.
3199         (hard_reg_clobbers): New array.
3200         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
3201         (copy_rtx): Do not copy clobbers containing hard regs.
3202         * rtl.h (gen_hard_reg_clobber): Declare.
3203
3204 2004-01-20  Jan Hubicka  <jh@suse.cz>
3205
3206         * varray.c:  Include hashtab.h
3207         (varray_descriptor): New structure.
3208         (hash_descriptor, eq_descriptor, varray_descriptor,
3209         print_statistics): New static functions
3210         (varray_init, varray_grow): Update statistics
3211         (dump_varray_statistics): New function.
3212         * varray.h (dump_varray_statistics): Declare.
3213         * toplev.c (finalize): Call it.
3214         * Makefile.in (varray.o): Add dependency.
3215
3216 2004-01-20  Jan Hubicka  <jh@suse.cz>
3217
3218         * cselib.c: Include alloc-pool.h
3219         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
3220         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
3221         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
3222         unchain_one_elt_loc_list_pool, unchain_one_value,
3223         new_cselib_val): Simplify using allocpool.
3224         (cselib_init): Initialize allocpools.
3225         (cselib_finish): Finish allocpools.
3226         * Makefile.in (cselib.o): Depend on alloc-pool.h
3227
3228 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
3229
3230         * config/mips/mips.c (mips_load_call_address): Make the call insn
3231         use $gp if it could be calling a lazy binding stub.
3232
3233 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
3234
3235         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
3236         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
3237         (TARGET_STRUCT_VALUE_RTX): Likewise.
3238         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
3239         (PROMOTE_FUNCTION_RETURN): Remove.
3240         (STRUCT_VALUE): Remove.
3241
3242 2004-01-20  Denis Chertykov  <denisc@overta.ru>
3243
3244         PR bootstrap/13735
3245         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
3246         register as pointer after reload.
3247
3248 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3249
3250         PR optimization/12440
3251         * loop.c: Include ggc.h.
3252         (loop_optimize): Run garbage collector between optimization of loops.
3253         * Makefile.in (loop.o): Add GGC_H dependency.
3254
3255 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
3256
3257         * gcc/config/rs6000/rs6000.c (function_arg) Handle
3258         vector register special in function without prototype.
3259         (function_arg_advance): Vector parameters get always
3260         GPRs allocated for the linux64 target.
3261
3262 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
3263
3264         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
3265         not TARGET_M32RX_MASK.
3266
3267 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
3268
3269         PR target/13557
3270         * config/sparc/sparc.c (function_arg): Reorder the cases.
3271
3272 2004-01-19  Per Bothner  <per@bothner.com>
3273
3274         Move cpp_reader's line_maps field to a shared global.
3275         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
3276         and change the type to a pointer rather than a struct.
3277         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
3278         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
3279         Likewise.
3280         * cppfiles.c (validate_pch):  Likewise.
3281         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
3282         Likewise.
3283         * cpperror.c (print_location):  Likewise.
3284         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
3285         * cppinit.c (cpp_create_reader):  Handle new parameter.
3286         (cpp_destroy):  Don't free line_maps - that's no longer our job.
3287         * input.h (line_table):  New variable.
3288         * toplev.c (line_table):  Declare variable.
3289         (general_init):  Initialize line_table.
3290         * c-opts.c (c_common_init_options):  Pass line_table to
3291         cpp_create_reader.
3292         * fix-header.c (read_scan_file):  New local variable line_table.
3293         Initialize, and pass it to cpp_create_reader.
3294         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
3295         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
3296
3297 2004-01-19  Per Bothner  <per@bothner.com>
3298
3299         Implement a cache for linemap_lookup.
3300         * line-map.h (struct_line_maps):  Add cache field.
3301         * line-map.c (linemap_init):  Zero cache field.
3302         (linemap_add):  Set cache field to offset of newly allocated map.
3303         (linemap_lookup):  Use and set cache field.
3304
3305 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
3306
3307         PR optimization/13567
3308         * cse.c (cse_basic_block): Call cse_insn with a non-null
3309         libcall_insn for the last SET insn of a no-confilict block.
3310
3311 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
3312
3313         * Makefile.in (target_noncanonical, program_transform_name): Use
3314         immediate define instead of deferred.
3315         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
3316         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
3317         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
3318         deferred backquote.
3319
3320 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
3321
3322         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
3323         true unconditionally.
3324         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
3325         Remove.
3326         (build_unary_op, build_modify_expr): Don't handle extended
3327         lvalues.
3328         (build_component_ref, build_conditional_expr): Call non_lvalue
3329         instead of pedantic_non_lvalue.
3330         (build_c_cast): Don't condition use of non_lvalue on pedantic.
3331         * fold-const.c (fold): Don't check pedantic directly for
3332         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
3333         passed to pedantic_non_lvalue.
3334         * doc/extend.texi: Remove documentation of extended lvalues.
3335
3336 2004-01-19  Roger Sayle  <roger@eyesopen.com>
3337
3338         PR optimization/5263
3339         * simplify-rtx.c (associative_constant_p): Delete.
3340         (simplify_associative_operation): Rewrite to linearize terms, and
3341         attempt to simplify new term against both left and right subterms.
3342         (simplify_binary_operation): Call swap_commutative_operands_p on
3343         op0 and op1, not trueop0 and trueop1.  Move the initialization of
3344         trueop0 and trueop1 down to where first needed.
3345         (simplify_relational_operation): Likewise.
3346         * rtlanal.c (commutative_operand_precedence): Also order constant
3347         operands using avoid_constant_pool_reference.
3348
3349 2004-01-19  Richard Henderson  <rth@redhat.com>
3350
3351         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
3352         don't check memory mode.
3353         (unaligned_memory_operand): Likewise.
3354         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
3355         abort for op0 not MEM.
3356
3357         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
3358         is not a reg, copy to a scratch first.
3359         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
3360         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
3361         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
3362         (reload_inqi, reload_inhi): Fix mode of op0.
3363         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
3364         reload_outhi_help): Likewise.  Use define_insn_and_split.
3365
3366         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
3367         as well as $29 dead.
3368
3369 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
3370
3371         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
3372         "tls_object" for thread-local objects.
3373         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
3374         "#tls" for thread-local sections.
3375         * configure.ac (thread-local checks): Specify --fatal-warnings in
3376         every binutils-specific checks.  For sparc*-*-*, test whether the
3377         OS is Solaris and the tools are native and act accordingly.
3378         * configure: Rebuild.
3379
3380 2004-01-19  Jeff Law  <law@redhat.com>
3381
3382         * contrib.texi: Update Paolo Carlini's entry.  New entries for
3383         Jerry Quinn and Petur Runolfsson.
3384
3385 2004-01-19  Roger Sayle  <roger@eyesopen.com>
3386
3387         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
3388         size, don't use the larger zero-extending loads.
3389
3390 2004-01-19  Richard Henderson  <rth@redhat.com>
3391
3392         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
3393         * alpha.md (UNSPEC_NT_LDA): Remove.
3394         (UNSPEC_CVTLQ, cvtlq): New.
3395         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
3396         (extendsidi2_fix): Remove.
3397         (extendsidi2 splitter): Use cvtlq.
3398         (extendsidi2 fp peepholes): Remove.
3399         (cvtql): Use SFmode instead of SImode.
3400         (fix_trunc?fsi): Update to match.
3401         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
3402         (movsi): Rename from movsi_nofix, remove f alternatives.
3403         (movsi_nt_vms): Similarly.
3404         (movsi_fix, movsi_nt_vms_fix): Remove.
3405         (nt_lda): Remove.
3406         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
3407
3408 2004-01-19  Jan Hubicka  <jh@suse.cz>
3409
3410         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
3411         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
3412         list.
3413         (cgraph_remove_unreachable_nodes): New function
3414         (cgraph_decide_inlining_of_small_function): Fix pasto.
3415         (cgraph_decide_inlining_incrementally): Fix pasto.
3416         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
3417
3418 2004-01-19  Steven Bosscher  <stevenb@suse.de>
3419
3420         * gengtype.c (header_file): Make it static.
3421         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
3422         * gengtype.h (header_file): No longer extern.
3423
3424 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
3425
3426         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
3427         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
3428         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
3429
3430 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
3431
3432         * stmt.c (HAVE_casesi): Define it not already defined.
3433         (HAVE_tablejump): Likewise.
3434         (expand_end_case_type): Resort to the binary tree method if
3435         neither casesi or tablejump is available.
3436
3437 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
3438
3439         * final.c (final_scan_insn): Make non-static again.
3440         * output.h (final_scan_insn): Re-add prototype.
3441         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
3442         to final_scan_insn call.
3443         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
3444         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
3445         * config/pa/pa.c (output_lbranch, output_call): Likewise.
3446         * config/sh/sh.c (print_slot): Likewise.
3447         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
3448         (output_sibcall, sparc_flat_function_epilogue): Likewise.
3449
3450 2004-01-18  Jan Hubicka  <jh@suse.cz>
3451
3452         * basic-block.h (try_redirect_by_replacing_jump): Declare.
3453         * cfgcleanup.c (try_optimize_cfg): Use it.
3454         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
3455         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
3456         Kill hack.
3457         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
3458
3459         Revert:
3460         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
3461
3462                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
3463                 even after reload, just don't remove the actual jump tables.
3464
3465 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
3466
3467         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
3468
3469 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
3470
3471         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
3472         the size of a pointer in bytes.
3473
3474 2004-01-18  Roger Sayle  <roger@eyesopen.com>
3475
3476         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
3477         live "next" variable, which could lead to an infinite loop.
3478
3479 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
3480
3481         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
3482         block.
3483
3484         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
3485         Check for NULL in the chain and remove repeated code.
3486
3487 2004-01-18  Jan Hubicka  <jh@suse.cz>
3488
3489         * coverage.c (checksum_string): Rename to ...
3490         (coverage_checksum_string): ... this one, Use crc32_string; recognize
3491         names containing random number and zero the number out in order to get
3492         match.
3493
3494 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
3495
3496         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
3497
3498 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
3499
3500         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
3501         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
3502         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
3503         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
3504         doc/trouble.texi: Remove trailing whitespace.
3505
3506 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
3507
3508         PR target/7618
3509         * config/mips/mips.c: Include cfglayout.h.
3510         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
3511         (mips_unspec_offset_high): Add temporary register argument.
3512         (mips_load_call_address): New function, split out from...
3513         (mips_expand_call): ...here.
3514         (mips_output_cplocal): New function.
3515         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
3516         (mips_emit_loadgp): New function, split out from...
3517         (mips_expand_prologue): ...here.
3518         (mips_output_mi_thunk): New function.
3519
3520 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
3521
3522         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
3523         mcpu32): Remove redundant checks for implied target predefines.
3524
3525 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
3526
3527         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
3528         Return type is unsigned int not int.
3529         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
3530         Likewise.
3531
3532 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
3533
3534         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
3535         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
3536         "GNU/Linux" and "Microsoft Windows" terminology.
3537
3538 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
3539
3540         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
3541         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
3542         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
3543         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
3544         @smallexample instead of @example.
3545
3546 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
3547
3548         * objc/objc-act.c (build_objc_method_call): Use target
3549         hooks instead of macros to determine if ..._stret
3550         dispatchers should be used (NeXT runtime only).
3551
3552 2004-01-17  Roger Sayle  <roger@eyesopen.com>
3553
3554         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
3555         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
3556
3557 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
3558
3559         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
3560         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
3561         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
3562         macros.
3563         * reload1.c (emit_reload_insns): Use them.
3564         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
3565         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
3566         for NULL PATTERN.
3567
3568 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
3569
3570         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
3571         (final_scan_insn): Update to take an additional SEEN argument.  Emit
3572         a line note after the prologue.  Make static.
3573         (line_note_exists): Remove.
3574         (final): Don't initialize line_note_exists.  Update call to
3575         final_scan_insn.
3576         * output.h (final_scan_insn): Remove prologue.
3577         * function.c (set_insn_locators): Update comment.
3578         (thread_prologue_and_epilogue_insns): Add a comment.
3579
3580 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
3581
3582         PR target/10781
3583         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
3584         Prototype.
3585         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
3586         New function.
3587         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
3588         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
3589         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
3590
3591 2004-01-17  Jan Hubicka  <jh@suse.cz>
3592
3593         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
3594         commit.
3595
3596         * toplev.c (HAVE_conditional_execution): Provide default.
3597         (rest_of_handle_reorder_blocks): For conditional_execution target
3598         update liveness once after all transformations
3599         (rest_of_compilation): Do crossjumping before ce3.
3600
3601 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
3602
3603         * alias.c (new_alias_set): Mark last_alias_set for PCH.
3604         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
3605         for PCH.
3606         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
3607         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
3608         (get_TOC_alias_set): Mark 'set' for PCH.
3609
3610 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
3611
3612         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
3613         even after reload, just don't remove the actual jump tables.
3614
3615 2004-01-17  J. Brobecker  <brobecker@gnat.com>
3616
3617         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
3618         Remove checks for is_ada() and TREE_UNSIGNED.
3619         (subrange_type_die): Emit a byte_size attribute if the subrange
3620         type size is different from the base type size.
3621         (modified_type_die): Replace call to is_ada_subrange_type() by
3622         call to is_subrange_type().
3623
3624 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
3625
3626         * config/sh/sh.c: Include ggc.h.
3627
3628 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
3629
3630         * Makefile.in (MD5_H): New.
3631         (fold-const.o): Depend on md5.h.
3632         (dwarf2out.o): Likewise.
3633         (cppfiles.o): Likewise.
3634         * cppfiles.c: Include md5.h.
3635         (should_stack_file): Check against list read from PCH file.
3636         (struct pchf_data): New.
3637         (pchf): New variable.
3638         (struct pchf_adder_info): New.
3639         (pchf_adder): New.
3640         (pchf_save_compare): New.
3641         (_cpp_save_file_entries): New.
3642         (_cpp_read_file_entries): New.
3643         (struct pchf_compare_data): New.
3644         (pchf_compare): New.
3645         (check_file_against_entries): New.
3646         * cpphash.h (_cpp_save_file_entries): Prototype.
3647         (_cpp_read_file_entries): Prototype.
3648         * cpppch.c (cpp_write_pch_state): Write the list of headers.
3649         (cpp_read_state): Read the list of headers.
3650
3651 2004-01-17  Jan Hubicka  <jh@suse.cz>
3652
3653         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
3654         builtin_expect specially.
3655         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
3656         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
3657         * invoke.texi (max-inline-insns-single): Set to 100.
3658         (large-function-insns): Set to 3000.
3659
3660 2004-01-16  Eric Christopher  <echristo@redhat.com>
3661             Chandrakala Chavva <cchavva@redhat.com>
3662
3663         * cppcharset.c (one_iso88591_to_utf8): New function.
3664         (convert_iso88591_utf8): Ditto. Use.
3665         (conversion_tab): Use.
3666         (_cpp_input_to_utf8): New function.
3667         (_cpp_init_iconv_buffer): Ditto.
3668         (_cpp_close_iconv_buffer): Ditto.
3669         * cpphash.h: Prototype new functions.
3670         (cpp_buffer): Add input_cset_desc.
3671         * cppinit.c: Add input_charset default.
3672         * cpplib.c (cpp_push_buffer): Support init and
3673         close of iconv.
3674         * cpplib.h (cpp_options): Add input_charset.
3675
3676 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
3677
3678         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
3679         * config/alpha/unicosmk.h: Remove a commented-out definition
3680         of ASM_OUTPUT_SECTION_NAME.
3681         * config/stormy16/stormy16.h: Likewise.
3682
3683 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
3684
3685         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
3686         (alpha___extern_prefix_sys_stat): ... this.
3687         Apply to <sys/mount.h>, too.
3688         Tweak to match more variations.
3689         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
3690
3691         * fixinc/inclhack.def (alpha___extern_prefix,
3692         alpha___extern_prefix_standards): New hacks to obey
3693         __PRAGMA_EXTERN_PREFIX.
3694         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
3695         test.
3696         * fixinc/tests/base/standards.h: Likewise.
3697
3698         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
3699         variations.
3700         New testcase.
3701         * fixinc/tests/base/pthread.h: Handle it.
3702
3703         * fixincl/inclhack.def (bad_lval): Sort file list.
3704         Add many missing files up to Tru64 UNIX V5.1B.
3705         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
3706         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
3707         order.
3708
3709         * fixinc/fixincl.x: Regenerate.
3710
3711 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
3712
3713         * version.c (version_string): Change to 3.5.0.
3714         * doc/include/gcc-common.texi (version-GCC): Likewise.
3715
3716 2004-01-16  Jan Hubicka  <jh@suse.cz>
3717
3718         * i386.md (load_tp_di): Fix pasto.
3719
3720         PR opt/13608
3721         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
3722
3723         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
3724         pp_c_character_constant, pp_c_floating_constant,
3725         pp_c_additive_expression, pp_c_shift_expression,
3726         pp_c_equality_expression, pp_c_and_expression,
3727         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
3728         pp_c_logical_and_expression): Remove inline modifier.
3729         * dwarf2out.c (get_AT): Likewise.
3730         * et-forest.c (et_splay): Likewise.
3731         * ra.h (ra_alloc, ra_calloc): Likewise
3732
3733 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
3734
3735         * config/frv/frv-protos.h: Fix comment formatting.
3736         * config/frv/frv.c: Likewise.
3737         * config/frv/frv.h: Likewise.
3738         * config/frv/frv.md: Likewise.
3739         * config/frv/frvbegin.c: Likewise.
3740         * config/frv/frvend.c: Likewise.
3741
3742 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
3743
3744         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
3745         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
3746         LINKER_DOES_NOT_WORK_WITH_DWARF2.
3747         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
3748
3749 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
3750
3751         PR 11864
3752         * postreload.c (reload_cse_simplify_operands): Don't remove
3753         implicit extension from LOAD_EXTEND_OP.
3754
3755 2004-01-16  Jan Hubicka  <jh@suse.cz>
3756
3757         PR opt/11350
3758         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
3759         after reload.
3760         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
3761         rtl_try_redirect_by_replacing_branch): Likewise.
3762
3763 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
3764
3765         PR pch/13689
3766         * alias.c (struct alias_set_entry): Mark for GC.
3767         (alias_sets): Make static, mark for GC.
3768         (record_alias_subset): Use GC to allocate alias structures.
3769         * varray.c (element): Make generic varrays GCed.
3770
3771         PR pch/13361
3772         * c-typeck.c (constructor_asmspec): Delete.
3773         (struct initializer_stack): Delete field 'asmspec'.
3774         (start_init): Delete saving of asmspec.
3775         (finish_init): Don't update constructor_asmspec.
3776         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
3777         * stmt.c (expand_asm): Duplicate strings from tree.
3778         (expand_asm_operands): Likewise.
3779         * tree.c (tree_size): Update computation of size of STRING_CST.
3780         (make_node): Don't make STRING_CST nodes.
3781         (build_string): Allocate string with tree node.
3782         * tree.def (STRING_CST): Update comment.
3783         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
3784         (tree_string): Place contents of string in tree node.
3785         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
3786         from tree.
3787
3788         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
3789         altivec operands.
3790
3791 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
3792
3793         * c-common.h: Fix comment formatting.
3794         * c-cppbuiltin.c: Likewise.
3795         * c-pragma.c: Likewise.
3796         * calls.c: Likewise.
3797         * collect2.c: Likewise.
3798         * cppcharset.c: Likewise.
3799         * cpptrad.c: Likewise.
3800         * dbxout.c: Likewise.
3801         * defaults.h: Likewise.
3802         * dwarf2out.c: Likewise.
3803         * fold-const.c: Likewise.
3804         * genautomata.c: Likewise.
3805         * genconditions.c: Likewise.
3806         * genflags.c: Likewise.
3807         * gengtype.c: Likewise.
3808         * integrate.c: Likewise.
3809         * loop.c: Likewise.
3810         * predict.c: Likewise.
3811         * sdbout.c: Likewise.
3812
3813 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
3814
3815         * config/ia64/ia64.md (*movti_internal): C output template
3816         extracted to ia64.c.
3817         (*movti_internal_reg): Delete.
3818         (reload_inti, reload_outti): Use the correct mode on operand 2
3819         in the first place, don't fix it up in the output template.
3820         (movtf, reload_ointf, reload_outtf): New expanders.
3821         (*movtf_internal): New define_insn_and_split.
3822         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
3823         make static; do not hand TFmode CONST_DOUBLEs to split_double.
3824         (ia64_split_tmode_move): New function, body mostly pulled
3825         from ia64.md:*movti_internal.
3826         (ia64_function_arg_words): New function, extracted common
3827         logic from ia64_function_arg et seq.
3828         (ia64_function_arg_offset): Likewise.  Handle correctly the
3829         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
3830         (ia64_function_arg, ia64_function_arg_partial_nregs)
3831         (ia64_function_arg_advance): Use ia64_function_arg_words and
3832         ia64_function_arg_offset.
3833         (ia64_function_value): TCmode does not go in float regs.
3834         (ia64_secondary_reload_class): Also handle TFmode.
3835         * config/ia64/ia64-protos.h: Remove prototype for
3836         ia64_split_timode; add prototype for ia64_split_tmode_move.
3837
3838 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
3839
3840         * Makefile.in (MAINT): Make it an immediate assignment.
3841
3842 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
3843
3844         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
3845
3846 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
3847
3848         * config/h8300/coff.h: Replace Hitachi with Renesas.
3849         * config/h8300/elf.h: Likewise.
3850         * config/h8300/h8300-protos.h: Likewise.
3851         * config/h8300/h8300.c: Likewise.
3852         * config/h8300/h8300.h: Likewise.
3853         * config/h8300/h8300.md: Likewise.
3854         * config/h8300/lib1funcs.asm: Likewise.
3855
3856 2004-01-15  Andrew Pinski  <apinski@apple.com>
3857
3858         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
3859         around it.
3860
3861 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
3862
3863         * config/h8300/h8300.c (h8300_return_in_memory): New.
3864         (TARGET_STRUCT_VALUE_RTX): Likewise.
3865         (TARGET_RETURN_IN_MEMORY): Likewise.
3866         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
3867         (RETURN_IN_MEMORY): Likewise.
3868
3869 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
3870
3871         PR optimization/13375
3872         * gcse.c (handle_avail_expr): Just return if the source is not a
3873         single set.
3874
3875 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
3876             Daniel Jacobowitz  <drow@mvista.com>
3877
3878         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
3879         (EQUIV): Define.
3880         (ARM_FUNC_ALIAS): New macro.
3881         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
3882         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
3883
3884 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3885
3886         PR optimization/12372
3887         * calls.c (expand_call): Add call_fusage data for stack arguments in
3888         constant calls.
3889
3890 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
3891
3892         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
3893         (rs6000_elf_declare_function_name): Formatting.
3894         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
3895
3896 2004-01-15  Jan Hubicka  <jh@suse.cz>
3897
3898         PR bootstrap/13692
3899         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
3900         previous patch.
3901
3902 2004-01-15  Richard Henderson  <rth@redhat.com>
3903
3904         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
3905         integer regs of the same call-savedness.
3906
3907 2004-01-15  Andreas Schwab  <schwab@suse.de>
3908
3909         PR bootstrap/13562
3910         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
3911         status for NOTB/NOTW/NEGW methods.
3912
3913 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
3914
3915         * doc/invoke.texi: Update dump file names.  Fix a typo.
3916
3917 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
3918
3919         * builtins.c (expand_builtin_va_end): Don't use
3920         EXPAND_BUILTIN_VA_END.
3921         * system.h (EXPAND_BUILTIN_VA_END): Poison.
3922         * config/d30v/d30v.h: Remove a commented-out definition of
3923         EXPAND_BUILTIN_VA_END.
3924         * config/stormy16/stormy16.h: Likewise.
3925
3926 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
3927
3928         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
3929         * targhooks.c (default_struct_value_rtx): Don't use
3930         STRUCT_VALUE_INCOMING_REGNUM.
3931
3932 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
3933
3934         PR bootstrap/12744
3935         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
3936         GENINSRC and not parsedir.  Define srcextra as a langhook.
3937         * configure: Regenerate.
3938         * Makefile.in: Suppress default .l.c rule.  Don't substitute
3939         parsedir and delete all references throughout.  Conditionally define
3940         rule for srcextra dependent on GENINSRC.
3941         (stmp-docobjdir): Delete.
3942         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
3943         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
3944         and gengtype-yacc.h back to source directory.
3945         (maintainer-clean): Delete all parse files in source directory.
3946         (distclean): Delete generated files.
3947
3948         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
3949         (objc-parse.c, objc-parse.y): Don't use parsedir.
3950         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
3951         directory if requested.
3952         (po-generated): Don't use parsedir.
3953         (objc.maintainer-clean): Delete above files from source directory.
3954
3955 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
3956
3957         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
3958
3959 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
3960
3961         * doc/tm.texi: Replace RETURN_IN_MEMORY with
3962         TARGET_RETURN_IN_MEMORY.
3963
3964 2004-01-15  Jan Hubicka  <jh@suse.cz>
3965
3966         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
3967         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
3968         functions accepting SSE arguments
3969         (function_arg): Warn only when asked to warn.
3970         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
3971
3972 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
3973
3974         * c-parse.in (stmts_and_decls): Make label at end of compound
3975         statement a hard error.
3976
3977 2004-01-14  Jan Hubicka  <jh@suse.cz>
3978
3979         * cgraph.c (create_edge): Use local.redefined_extern_inline.
3980         * cgraph.h (cgraph_local_info): Sort fields by size; add
3981         redefined_extern_inline
3982         (cgraph_global_info): Sort fields by size.
3983         (cgraph_node): Likewise.
3984         * cgraphunit.c (cgraph_finalize_function): Se
3985         local.redefined_extern_inline on redefinition.
3986         (cgraph_analyze_function): Use it; fix formating.
3987
3988 2004-01-14  Jan Hubicka  <jh@suse.cz>
3989
3990         PR c++/10776
3991         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
3992         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
3993         bitmaps
3994         (cache_size): New variable
3995         (add_dependence): Update use; canonize early memory locations
3996         (sched_analyze_1): Likewise.
3997         (sched_analyze_2): Likewise.
3998         (init_dependency_caches): Initialize bitmaps.
3999         (free_dependency_caches): Free bitmaps
4000
4001 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
4002
4003         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
4004         targetm.calls.strict_argument_naming().
4005         * target.h: Likewise.
4006
4007 2004-01-14  Richard Henderson  <rth@redhat.com>
4008
4009         PR debug/13231
4010         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
4011         instructions.
4012
4013 2004-01-14  Richard Henderson  <rth@redhat.com>
4014
4015         PR c++/12491
4016         * except.c (struct eh_region): Add u.fixup.resolved.
4017         (resolve_one_fixup_region): Split out from ...
4018         (resolve_fixup_regions): ... here.
4019
4020 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
4021
4022         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
4023
4024 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
4025
4026         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
4027         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
4028         (STRUCT_VALUE): Remove.
4029
4030 2004-01-14  Steven Bosscher  <stevenb@suse.de>
4031
4032         * system.h: Poison PROMOTED_MODE
4033         * integrate.c (expand_inline_function): Don't mention the
4034         PROMOTED_MODE.
4035         * loop.c (update_giv_derive): Same.
4036         * tree.h (DECL_RTL): Same.
4037
4038 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
4039
4040         PR target/9365
4041         * sh.c (gen_block_redirect): Add special handling of RETURN.
4042         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
4043         far branch target (i.e. it's a return).
4044
4045 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
4046
4047         * regrename.c (find_oldest_value_reg): Fix a warning.
4048
4049 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
4050
4051         PR bootstrap/12527
4052         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
4053         Move linux-gas.h and linux-elf.h before aout.h.
4054         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
4055         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
4056
4057 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
4058
4059         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
4060         (CONST_INT, VOIDmode, ...).
4061
4062 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
4063
4064         * regrename.c (find_oldest_value_reg): If the replacement uses
4065         multiple hard registers, check that all of them are in CLASS.
4066
4067 2004-01-14  Jan Hubicka  <jh@suse.cz>
4068
4069         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
4070         impossible.
4071
4072 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
4073
4074         * Makefile.in: Define MAINT from --enable-maintainer-mode.
4075
4076 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
4077
4078         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
4079         Calculate always vrsave_mask if TARGET_ALTIVEC.
4080         (rs6000_emit_prologue): Emit code for vrsave
4081         only if TARGET_ALTIVEC_VRSAVE.
4082         (rs6000_emit_epilogue): Likewise.
4083
4084 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
4085
4086         * config/sparc/sparc.md (tie_add32): Fix pasto.
4087         (tie_add64): Likewise.
4088
4089 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4090
4091         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
4092
4093 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
4094
4095         * config/iq2000/iq2000-protos.h: Fix comment formatting.
4096         * config/iq2000/iq2000.c: Likewise.
4097         * config/iq2000/iq2000.md: Likewise.
4098
4099 2004-01-14  J. Brobecker  <brobecker@gnat.com>
4100
4101         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
4102         (subrange_type_die): Add handle for nameless subrange types.
4103
4104 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
4105
4106         * config/h8300/h8300-protos.h: Replace do_movsi with
4107         h8300_expand_movsi.
4108         * config/h8300/h8300.c (do_movsi): Change to
4109         h8300_expand_movsi.
4110         * config/h8300/h8300.md (movsi): Replace do_movsi with
4111         h8300_expand_movsi.
4112         (movsf): Likewise.
4113
4114 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
4115
4116         * config/h8300/h8300.c (dosize): Change to
4117         h8300_emit_stack_adjustment.  Update callers.
4118
4119 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
4120
4121         * config/h8300/h8300.md (movstrictqi): Add an alternative with
4122         the source being post_inc.  Tighten the predicate for the
4123         destination to register_operand.
4124         (movstricthi): Likewise.
4125
4126 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
4127
4128         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
4129         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
4130         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
4131
4132 2004-01-14  Jan Hubicka  <jh@suse.cz>
4133
4134         Partial fix PR c++/12850
4135         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
4136         at zero nest level.
4137
4138 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
4139
4140         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
4141         pseudo-register.
4142
4143 2004-01-13  Devang Patel <dpatel@apple.com
4144
4145         PR debug/7078
4146         * dbxout.c (dbxout_symbol_name): Emit mangled names for
4147         NAMESPACE_DECL memebers.
4148
4149 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
4150
4151         PR c++/12709
4152         * c-common.c (finish_fname_decls): Use the chain only if the
4153         tree is an expr_stmt.
4154
4155 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
4156
4157         * rtl.def: Add comment about new option in automata_option.
4158
4159         * genautomata.c (PROGRESS_OPTION): New macro.
4160         (progress_flag): New global variable.
4161         (gen_automata_option): Process `progress'.
4162         (transform_insn_regexps, check_unit_distributions_to_automata,
4163         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
4164         expand_automata, write_automata): Print about the progress only if
4165         progress_flag.  Remove fflush.
4166         (initiate_automaton_gen): Process command line flag `-progress'.
4167
4168         * doc/md.texi: Describe the new option.
4169
4170 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4171
4172         * cfg.c (dump_bb): Dump entry edges.
4173
4174 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
4175
4176         * arm.c (thumb_legitimate_address_p): Only allow constant pool
4177         references from SImode.
4178         * arm.md (thumb_movhi_insn): Don't allow minipool references.
4179
4180 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
4181
4182         * system.h (TEXT_SECTION): Poison.
4183         * varasm.c (text_section): Don't use TEXT_SECTION.
4184         * config/sh/sh.c (sh_file_start): Fix a comment typo.
4185         * doc/tm.texi (TEXT_SECTION): Remove.
4186
4187 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
4188
4189         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
4190
4191 2004-01-12  James E Wilson  <wilson@specifixinc.com>
4192
4193         * unwind-libunwind.c: Delete.
4194
4195 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
4196
4197         PR 13656
4198         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
4199         oldtype is set, set *newtypep or *oldtypep too.  Do not set
4200         them at the very end.
4201         (validate_proto_after_old_defn): Restructure for comprehensibility;
4202         make error messages clearer.
4203
4204 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
4205
4206         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
4207         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
4208         * varray.c: No need to prototype error.
4209         (varray_check_failed): Wrap long string onto two lines.
4210         (varray_underflow): New function.
4211
4212 2004-01-13  Steven Bosscher  <stevenb@suse.de>
4213
4214         PR c++/13376
4215         * function.h (struct function): Kill `name' field.
4216         (current_function_name): Make it an extern function.
4217         * function.c (current_function_name): New function.
4218         * graph.c: Update all uses of current_function_name.
4219         * gcse.c: Likewise.
4220         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
4221         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
4222         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
4223         instead of a strcmp with "main".
4224
4225 2004-01-13  Jan Hubicka  <jh@suse.cz>
4226
4227         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
4228
4229         * cgraphunit.c (cgraph_optimize_function):  Always do
4230         optimize_inline_calls when there is always_inline callee.
4231         (cgraph_decide_inlining): Fix formating.
4232         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
4233         functions.
4234         (expand_call_inline): Likewise.
4235         * toplev.h (sorry): Fix prototype.
4236
4237 2004-01-12  Roger Sayle  <roger@eyesopen.com>
4238
4239         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
4240         conditional jumps that drop through to unconditional jumps or the
4241         end of the sequence.
4242
4243 2004-01-13  Jan Hubicka  <jh@suse.cz>
4244
4245         * alias.c (new_alias_set): Construct the alias_set varray.
4246         (init_alias_once): Don't do it here.
4247
4248 2004-01-12  Marc Espie <espie@openbsd.org>
4249
4250         * system.h: handle YYBYACC like YYBISON.
4251
4252 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
4253
4254         PR target/10847
4255         * config.gcc: No longer includes conflicting header sparc/sol2.h when
4256         building on sparc64-*-openbsd*.
4257
4258 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
4259
4260         PR debug/13539
4261         * dbxout.c (dbxout_type): Protected inheritance is not
4262         private but protected.
4263
4264 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
4265
4266         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
4267
4268 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
4269
4270         PR optimization/12508.
4271         * combine.c (try_combine): Remove a dead set in a parallel
4272         even if its destination is a subreg.
4273
4274         Revert:
4275         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
4276         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
4277         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
4278
4279 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
4280
4281         * real.c: Update copyright date.
4282         * emit-rtl.c: Likewise.
4283         * rtl.h: Likewise.
4284         * dwarf2out.c: Likewise.
4285         * config/rs6000/darwin-ldouble.c: Likewise.
4286         * config/rs6000/rs6000.md: Likewise.
4287
4288 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
4289
4290         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
4291         TFmode to SImode libfuncs.
4292
4293 2004-01-12  Roger Sayle  <roger@eyesopen.com>
4294
4295         PR middle-end/11397
4296         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
4297
4298 2004-01-12  Jan Hubicka  <jh@suse.cz>
4299
4300         PR opt/12826
4301         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
4302         stored.
4303
4304         PR opt/12863
4305         * cfgcleanup.c (label_is_jump_target_p): Move to...
4306         * rtlanal.c (label_is_jump_target_p): ... here.
4307         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
4308         edges unified with branch edges.
4309
4310 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
4311
4312         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
4313         high word of an integral CONST_DOUBLE.
4314
4315 2004-01-12  Paul Brook  <paul@codesourcery.com>
4316
4317         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
4318
4319 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
4320
4321         PR target/13585
4322         * sh-protos.h (check_use_sfunc_addr): Declare.
4323         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
4324         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
4325
4326 2004-01-12  Jan Hubicka  <jh@suse.cz>
4327
4328         * alias.c:  Invlude varray.h
4329         (alias_sets): Turn into varray.
4330         (get_alias_set_entry): Use VARRAY; mark inline.
4331         (mems_in_disjoint_alias_sets_p): Mark inline.
4332         (record_alias_subset): Use varray.
4333         (init_alias_once): Initialize varray.
4334         (new_alias_set): Grow array.
4335         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
4336
4337 2004-01-12  Jan Hubicka  <jh@suse.cz>
4338
4339         Partial fix for PR opt/10776 II
4340         * cselib.c: Include params.h
4341         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
4342         locations.
4343         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
4344         * Makefile.in (cselib.o): Depend on params.h
4345
4346 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
4347
4348         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
4349         simplify_unary_operation if the operand has a known mode.
4350
4351 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
4352
4353         PR target/13534
4354         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
4355         predicate to handle 'ld' conform addresses.
4356         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
4357         contraint.
4358         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
4359         are memory contraints.
4360         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
4361         New prototype.
4362         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
4363         Change 'o' to 'Y' constraint.
4364         (*movdf_softfloat64): Ditto.
4365
4366 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
4367
4368         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
4369         brace-enclosed syntax in all C output statements.
4370
4371 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
4372
4373         PR target/13401
4374         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
4375         Objective-C language type value is 14.
4376
4377 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
4378
4379         PR c/12148
4380         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
4381         `int' in a number of places to make sure we always have a SImode
4382         and not a HImode.  Add a 'L' suffix to a number of constants.
4383
4384 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4385
4386         * pa.c: Don't include obstack.h.
4387
4388         * pa.md: Correct constraint in pattern for loading PIC label address.
4389
4390 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
4391
4392         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
4393          before defining.
4394
4395 2004-01-11  Steven Bosscher  <stevenb@suse.de>
4396
4397         PR fortran/9972
4398         * toplev.c (rest_of_handle_inline): Also consider functions
4399         for deferral if the language is GNU F77.
4400
4401 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
4402
4403         * c-decl.c (diagnose_arglist_conflict): Add missing space to
4404         diagnostic messages.
4405
4406 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
4407
4408         PR middle-end/13392
4409         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
4410         to drop through label.  Don't fall back to SCC even when conditional
4411         jump has not been found.
4412
4413 2004-01-11  Jan Hubicka  <jh@suse.cz>
4414
4415         * invoke.texi: Fix syntax error in previous patch.
4416
4417         Partial fix for PR opt/10776
4418         * Makefile.in (reload.o): Include param.h
4419         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
4420         * reload.c: Include params.h.
4421         (find_equiv_reg): Work limiting check.
4422         * invoke.texi: Document.
4423
4424 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
4425
4426         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
4427         out-of-bounds accesses to string constants.  Simplify mips16
4428         case accordingly.
4429
4430 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
4431
4432         PR optimization/13469
4433         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
4434         reload_cse_regs (-fnon-call-exceptions only).
4435
4436 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
4437
4438         * config/mcore/lib1.asm: Fix comment formatting.
4439         * config/mcore/mcore-elf.h: Likewise.
4440         * config/mcore/mcore.c: Likewise.
4441         * config/mcore/mcore.h: Likewise.
4442         * config/mcore/mcore.md: Likewise.
4443
4444 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
4445
4446         * c-decl.c (duplicate_decls): Break apart into...
4447         (diagnose_arglist_conflict, validate_proto_after_old_defn)
4448         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
4449         ... these new functions.  Restructure for comprehensibility.
4450         Remove various archaic special cases.  Always report the
4451         location of the previous declaration when a diagnostic is issued.
4452         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
4453         (match_builtin_function_types): Delete unnecessary forward declaration.
4454
4455 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
4456
4457         * genautomata.c (make_automaton, NDFA_to_DFA):
4458         Print progress bars with '.' characters instead of '*'.
4459         (build_automaton): Change notes to match.
4460
4461 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
4462
4463         * config/m32r/m32r.md: Use define_constants for unspec and
4464         unspec_volatile.
4465
4466 2004-01-10  Jan Hubicka  <jh@suse.cz>
4467
4468         PR opt/11635
4469         * expr.c (expand_expr_real):  More curefully expand union casts.
4470
4471 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
4472
4473         * config/m32r/m32r.md (flush_icache): Use 1 for
4474         unspec_volatile.
4475
4476 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
4477             James E Wilson  <wilson@specifixinc.com>
4478
4479         PR debug/12860
4480         * dbxout.c (dbxout_symbol): Remove initialization of
4481         current_sym_code, current_sym_value, and current_sym_addr.
4482         (dbxout_symbol_location): Same.
4483         (dbxout_prepare_symbol): Zero current_sym_code,
4484         current_sym_value, and current_sym_addr.
4485
4486 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
4487
4488         * tree.c (get_unwidened): Reorder conditions so that the null pointer
4489         check is done first.
4490
4491 2004-01-09  Eric Christopher  <echristo@redhat.com>
4492
4493         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
4494         if we're running mark_constant_function.
4495
4496 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
4497
4498         PR target/12561
4499         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
4500
4501 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
4502
4503         PR debug/11231
4504         * dbxout.c (dbxout_type_fields): Return if any item is
4505         error_mark_node or the type is error_mark_node.
4506
4507 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
4508
4509         * config/rs6000/darwin-ldouble.c: Add big comment explaining
4510         exactly what is expected as a 'long double'.
4511         (_xlqadd): When a value to be returned is representable as a
4512         'double', just return it directly, do not construct it using a union.
4513         Also, correct final fixup.
4514         (_xlqmul): Likewise.
4515         (_xlqdiv): Likewise.
4516         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
4517
4518         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
4519
4520 2004-01-09  Richard Henderson  <rth@redhat.com>
4521
4522         * recog.c (constrain_operands): Validate mem operands.
4523
4524 2004-01-09   James E Wilson  <wilson@specifixinc.com>
4525
4526         * gcc.c (init_spec): Remove -lunwind from shared case.
4527         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
4528
4529 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
4530
4531         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
4532         * configure: Regenerate
4533
4534 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
4535
4536         PR c/11234
4537         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
4538         between function and object pointers.
4539         (digest_init): When comparing a pointer to function type to the
4540         target type, only apply TREE_TYPE once to the pointer to function
4541         type.
4542         * except.c (for_each_eh_label_1): Treat data as a pointer to a
4543         function pointer rather than casting it to a function pointer.
4544         (for_each_eh_label): Update caller.
4545         * recog.h (struct insn_data): Use a struct or union for output.
4546         * genoutput.c (output_insn_data): Update.
4547         * final.c (get_insn_template): Update.
4548
4549 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
4550
4551         * expr.h (expand_expr): Make it a macro, not a function.
4552         (expand_expr_real): New function.
4553         * expr.c (store_expr): Adjust logic for deciding whether or not to
4554         copy the value returned by expand_expr.
4555         (expand_expr): Rename to ...
4556         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
4557         calls to language hooks.
4558         * c-common.h (c_expand_expr): Adjust prototype.
4559         * c-common.c (c_expand_expr): Add alt_rtl parameter.
4560         * langhooks-def.h (lhd_expand_expr): Change prototype.
4561         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
4562         * langhooks.h (lang_hooks): Change type of expand_expr.
4563         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
4564         (last_expr_alt_rtl): Likewise.
4565         (expand_expr_stmt_value): Set last_expr_alt_rtl.
4566         (clear_last_expr): Clear it.
4567         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
4568         (expand_end_bindings): Save and restor last_expr_alt_rtl.
4569         * tree.def (RTL_EXPR): Give it an additional operand.
4570         * tree.h (RTL_EXPR_ALT_RTL): New macro.
4571
4572 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
4573
4574         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
4575         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
4576
4577 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
4578
4579         PR target/13380.
4580         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
4581         or (ne:SI (reg:CC 17) (const_int 0)).
4582         Be specific about modes wherever possible.
4583
4584 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
4585
4586         * config/m32r/m32r.c (m32r_expand_block_move): Call
4587         gen_movestrsi_internal with two more arguments.
4588         (m32r_output_block_move): Adjust operand numbers.
4589         Properly update the source and destination pointers.
4590         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
4591         'r+'.  Change the set detinations to match_operand.
4592
4593 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
4594
4595         * final.c (FIRST_INSN_ADDRESS): Remove.
4596         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
4597         * system.h (FIRST_INSN_ADDRESS): Poison.
4598         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
4599         * config/m32r/m32r-protos.h: Remove the prototype for
4600         m32r_first_insn_address.
4601         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
4602         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
4603         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
4604
4605 2004-01-09  J. Brobecker  <brobecker@gnat.com>
4606
4607         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
4608         we just created.
4609         (is_ada_subrange_type): DIEs for enumeration subtypes should be
4610         emitted as subrange types too.
4611         (subrange_type_die): Add handling of enumeration subtypes.
4612
4613 2004-01-08  Richard Henderson  <rth@redhat.com>
4614
4615         PR opt/12441
4616         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
4617         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
4618         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
4619         (ix86_address_cost): Be prepared for SUBREGed registers.
4620         (legitimate_address_p): Accept SUBREGed registers.
4621
4622 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
4623
4624         * Makefile.in: Rename configure.in to configure.ac
4625         * doc/sourcebuild.texi: Likewise.
4626         * configure: Regenerate.
4627         * config.in: Regenerate.
4628
4629 2004-01-08  Stuart Hastings  <stuart@apple.com>
4630
4631         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
4632
4633 2004-01-08  Jan Hubicka  <jh@suse.cz>
4634
4635         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
4636
4637 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
4638
4639         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
4640         (UNSPEC_FIX_TRUNC_TF): New constant.
4641         (movtf_internal): Make splitter active only when insn is active.
4642         (extenddftf2): Rewrite to properly load zero into low part.
4643         (extenddftf2_internal): New.
4644         (extendsftf2): Rewrite.
4645         (truncdftf2): Correct length.
4646         (floatditf2): Delete.
4647         (fix_trunc_helper): New.
4648         (fix_trunctfdi2): Use fix_trunc_helper.
4649         (fix_trunctfsi2): Likewise.fix_trunc
4650         (fix_trunctfsi2_internal): New.
4651
4652         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
4653         addresses are legitimate on Darwin even when flag_pic.
4654         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
4655         non-offsettable addresses for loads of TFmode constants.
4656
4657 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
4658
4659         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
4660         variables in the appropriate bss section.
4661
4662 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
4663
4664         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
4665         target_flags has MASK_POWERPC64 when -m64.
4666         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
4667         to 620, 630, power3, power4 and rs64a entries.
4668         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
4669
4670 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
4671
4672         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
4673         floating-point constants.
4674
4675 2004-01-08  J. Brobecker  <brobecker@gnat.com>
4676
4677         * dwarf2out.c (subrange_type_die): Add context_die parameter.
4678         Create the subrange_type DIE using the given context DIE.
4679         (modified_type_die): Update call to subrange_type_die.
4680
4681 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
4682
4683         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
4684         Add multiple-include guard.
4685
4686 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
4687
4688         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
4689         all vector constant loadable by vsplt*.
4690         (output_vec_const_move): Likewise.
4691
4692 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
4693
4694         PR c/6024
4695         * c-typeck.c (comptypes): Only treat enumerated types in the same
4696         translation unit as compatible with each other when they are the
4697         same type.
4698         * doc/extend.texi: Update.
4699
4700 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
4701
4702         PR c/12165
4703         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
4704         array type from the array element type.
4705
4706 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
4707
4708         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
4709         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
4710         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
4711         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
4712         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
4713
4714 2004-01-06  Eric Christopher  <echristo@redhat.com>
4715
4716         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
4717         (DWARF2_DEBUGGING_INFO): Define.
4718         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
4719         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
4720         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
4721         for irix as.
4722         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
4723         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
4724         * config/mips/iris5gas.h: Ditto.
4725         (DBX_DEBUGGING_INFO): Remove.
4726         (DWARF2_DEBUGGING_INFO): Ditto.
4727         (MIPS_DEBUGGING_INFO): Ditto.
4728         (PREFERRED_DEBUGGING_TYPE): Ditto.
4729         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
4730         (PREFERRED_DEBUGGING_TYPE): Ditto.
4731         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
4732         * config/mips/elf64.h: Ditto.
4733
4734 2004-01-06  Jan Hubicka  <jh@suse.cz>
4735
4736         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
4737         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
4738
4739 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
4740
4741         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
4742         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
4743         * config/rs6000/darwin-ldouble.c: New.
4744
4745         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
4746         for constants.
4747         (constant_subword): Delete.
4748         * rtl.h (constant_subword): Delete prototype.
4749         (immed_double_const): Is not in varasm.c.
4750         * simplify-rtx.c (simplify_immed_subreg): New.
4751         (simplify_subreg): Use simplify_immed_subreg.
4752
4753         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
4754         than trying to generate RTL directly.
4755         (fix_trunctfsi2): Use expand_fix rather than trying to generate
4756         RTL directly.
4757
4758         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
4759
4760 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
4761
4762         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
4763         function into a separate macro.
4764         (read_only_data_section): Add void argument.
4765         (private_data_section): Same.
4766         (read_only_private_data_section): Same.
4767         (toc_section): Same.
4768
4769 2004-01-06  Jan Hubicka  <jh@suse.cz>
4770
4771         * invoke.texi:  Remove typo in last change.
4772
4773         PR target/10301
4774         * config.gcc: Accept opteron and athlon-64 as variants
4775         of k8.
4776         * i386.c (override_options): Likewise.
4777         * invoke.texi (i386 -mtune): Expand documentation.
4778
4779 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
4780
4781         * alias.c: Fix comment typos.
4782         * builtins.c: Likewise.
4783         * cfg.c: Likewise.
4784         * df.c: Likewise.
4785         * dominance.c: Likewise.
4786         * dwarf2out.c: Likewise.
4787         * emit-rtl.c: Likewise.
4788         * expr.c: Likewise.
4789         * final.c: Likewise.
4790         * fold-const.c: Likewise.
4791         * gcse.c: Likewise.
4792         * genattrtab.c: Likewise.
4793         * genrecog.c: Likewise.
4794         * gensupport.c: Likewise.
4795         * ggc-zone.c: Likewise.
4796         * integrate.c: Likewise.
4797         * local-alloc.c: Likewise.
4798         * loop.c: Likewise.
4799         * recog.c: Likewise.
4800         * regmove.c: Likewise.
4801         * reg-stack.c: Likewise.
4802         * reorg.c: Likewise.
4803         * rtlanal.c: Likewise.
4804         * rtl.h: Likewise.
4805         * sched-ebb.c: Likewise.
4806         * simplify-rtx.c: Likewise.
4807         * toplev.c: Likewise.
4808         * varasm.c: Likewise.
4809
4810 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
4811
4812         * doc/install.texi: Fix typos.
4813         * doc/invoke.texi: Likewise.
4814         * doc/md.texi: Likewise.
4815
4816 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
4817
4818         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
4819
4820 2004-01-06  Jan Hubicka  <jh@suse.cz>
4821
4822         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
4823         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
4824         of MMX_REGPARM.
4825         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
4826         add MMX_REGPARM.
4827         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
4828         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
4829         (MMX_REGPARM_MAX): Similarly for -mmmx.
4830
4831 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
4832
4833         * config/sh/linux.h: Fix comment formatting.
4834         * config/sh/netbsd-elf.h: Likewise.
4835         * config/sh/sh.c: Likewise.
4836         * config/sh/sh.h: Likewise.
4837         * config/sh/vxworks.h: Likewise.
4838
4839 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
4840
4841         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
4842         * toplev.c (output_file_directive): Don't use
4843         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
4844
4845 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
4846
4847         * toplev.c: Fix broken checkin of 2003-12-30.
4848
4849 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
4850
4851         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
4852         (USING_MMAP): We don't support non-mmap.
4853         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
4854         large objects.
4855         (struct page_entry): Remove bytes_free.
4856         (struct page_table_chain): Remove.
4857         (struct globals): Remove page_table member.
4858         (loookup_page_table_entry): Function deleted.
4859         (set_page_table_entry): Ditto.
4860         (ggc_allocated_p): No longer need page table lookups.
4861         (ggc_marked_p): Ditto.
4862         (alloc_small_page): Don't care about bytes_free anymore.
4863         (alloc_large_page): Round up size.
4864         (ggc_alloc_zone_1): Mark large objects as such, and calculate
4865         their size the new way.
4866         Remove page table lookups and setting.
4867         (ggc_get_size): Calculate large object size the new way.
4868         (sweep_pages): Redo to account for fact that we no longer have
4869         bytes_free.
4870         (ggc_collect): No longer need to reincrement bytes_free.
4871         (ggc_pch_alloc_object): Handle new large objects properly.
4872         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
4873
4874 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
4875
4876         * doc/invoke.texi: Remove a page break.
4877
4878 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
4879
4880         * config/avr/avr.c (avr_output_function_prologue): Remove an
4881         extra pair of curly braces.
4882
4883 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
4884
4885         * config/mn10300/mn10300.c: Fix comment formatting.
4886         * config/mn10300/mn10300.h: Likewise.
4887
4888 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4889
4890         * tree.h: Update documentation on nothrow_flag.
4891         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
4892         types.
4893
4894 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
4895
4896         * doc/invoke.texi: Remove traces of dead ports.
4897
4898 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
4899
4900         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
4901         option.
4902
4903 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
4904
4905         PR target/12945
4906         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
4907         counter labels.
4908         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
4909         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
4910         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
4911         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
4912         (mips_symbol_insns): Don't trust the local/global classification.
4913         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
4914         (override_options): Make -mabicalls -fno-unit-at-a-time imply
4915         -mno-explicit-relocs.
4916         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
4917         between local and global symbols.
4918
4919 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
4920
4921         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
4922         (mips_preferred_reload_class): Declare.
4923         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
4924         (EXTRA_CONSTRAINT): Update accordingly.
4925         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
4926         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
4927         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
4928         mips_dangerous_for_la25_p.
4929         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
4930         if mips_dangerous_for_la25_p.
4931
4932 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
4933
4934         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
4935         warning.
4936
4937 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
4938
4939         * configure.ac: Use AC_PROG_CPP_WERROR.
4940         * configure: Regenerate.
4941
4942 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
4943
4944         * .cvsignore: Add autom4te.cache.
4945
4946 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
4947
4948         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
4949         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
4950         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
4951         then architecture options, then ABI options.  General rewording.
4952
4953 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
4954
4955         PR c/3414
4956         * doc/extend.texi: Clarify definition of malloc attribute.
4957
4958 2004-01-04  Jan Hubicka  <jh@suse.cz>
4959
4960         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
4961         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
4962         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
4963         (cgraph_inline_p): Add extra argument reason.
4964         * cgraphunit.c: Minor formating fixes.
4965         cgraph_first_inlined_callee): New functions.
4966         (record_call_1): Record builtins too.
4967         (cgraph_analyze_function): Update inline_failed messages.
4968         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
4969         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
4970         (cgraph_check_inline_limits): Likewise; Add argument reason.
4971         (cgraph_set_inline_failed): New static function.
4972         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
4973         reasons.
4974         (cgraph_inline_p): Add new argument reason.
4975         * tree-inline.c (expand_call_inline):  Update warning.
4976
4977 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
4978
4979         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
4980         with modern equivalents.
4981         * configure: Regenerate.
4982
4983         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
4984         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
4985         * configure: Regenerate.
4986
4987         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
4988
4989         * configure.in: Rename to configure.ac.
4990         * configure.ac: Renamed from configure.in; make minimum necessary
4991         changes for autoconf 2.5x.
4992         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
4993         * configure: Regenerate with autoconf 2.57.
4994
4995 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
4996
4997         * config/mips/linux.h: Fix comment formatting.
4998         * config/mips/mips.c: Likewise.
4999         * config/mips/mips.h: Likewise.
5000         * config/mips/mips.md: Likewise.
5001         * config/mips/netbsd.h: Likewise.
5002         * config/mips/windiss.h: Likewise.
5003
5004 2004-01-02  Richard Henderson  <rth@redhat.com>
5005
5006         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
5007         for sse and 387; add suppression for mmx.
5008
5009 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
5010
5011         * loop.c (loop_optimize): Free all loops_info's mems.
5012
5013         * c-typeck.c (finish_init): Free spelling_base before
5014         setting it again.
5015
5016         * cfgloop.c (flow_loops_find): Always free the sbitmap
5017         headers.
5018
5019         * predict.c (estimate_probability): Free bbs after being
5020         done with it.
5021
5022 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
5023
5024         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
5025         const_8bit_operand and call_address_operand.
5026
5027 2004-01-02  Jan Hubicka  <jh@suse.cz>
5028
5029         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
5030         when there is nothing to inline but warnings are requested.
5031         (cgraph_decide_inlining):  Fix memory leak.
5032
5033 2004-01-02  Jan Hubicka  <jh@suse.cz>
5034
5035         * expr.c (store_constructor):  Fix pasto in previous patch.
5036
5037 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
5038
5039         * config/i386/cygming.h: Fix comment formatting.
5040         * config/i386/djgpp.h: Likewise.
5041         * config/i386/gthr-win32.c: Likewise.
5042         * config/i386/i386-interix.h: Likewise.
5043         * config/i386/i386.c: Likewise.
5044         * config/i386/i386.h: Likewise.
5045         * config/i386/openbsd.h: Likewise.
5046         * config/i386/winnt.c: Likewise.
5047         * config/i386/xm-mingw32.h: Likewise.
5048
5049 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
5050
5051         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
5052         copyright and last modification dates.
5053
5054 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
5055
5056         * doc/install.texi (Specific): Mention x86_64.
5057
5058 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
5059
5060         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
5061         Call force_operand on plus_constant result.
5062
5063 2004-01-01  Jan Hubicka  <jh@suse.cz>
5064
5065         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
5066         * expr.c (store_constructor): Use vec_init pattern.
5067         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
5068         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
5069         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
5070         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
5071         New patterns.
5072         (sse2_unpc?pd): Fix pattern.
5073         (sse2_movlpd): Kill.
5074         (sse2_movsd): Deal with movlpd too.
5075         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
5076         (ix86_expand_vector_init): New.
5077         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
5078         * md.texi (vec_set, vec_extract): Document
5079
5080 2003-12-31  Jan Hubicka  <jh@suse.cz>
5081
5082         PR opt/13473
5083         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
5084         ASM input operands
5085
5086         PR opt/12617
5087         * toplev.c (dump_file_index): Reorder ce3 and bbro.
5088         (dump_file): Likewise.
5089         (rest_of_compilation): Likewise.
5090
5091         PR debug/13367
5092         * cgraph.c (cgraph_function_possibly_inlined):  Even with
5093         flag_really_no_inline we inline always_inline functions.
5094         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
5095         for non-always_inline functions when there is flag_really_no_inline.
5096         (cgraph_decide_inlining): Limit work done when not inlining.
5097         (cgraph_decide_inlining_incrementally): Likewise.
5098         (cgraph_optimize_function): Check whether something got inlined.
5099         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
5100         extern inline functions when not inlining.
5101
5102         * opts.c (decode_options):  Disable crossjumping at -O1
5103         * invoke.texi (-O1): Document change.
5104
5105 See ChangeLog.10 for earlier changes.