OSDN Git Service

2004-04-12 Andrew Pinski <pinskia@physics.uc.edu>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-04-12  Andrew Pinski  <pinskia@physics.uc.edu>
2
3         PR debug/15033
4         * dwarf2out.c (rtl_for_decl_location): Check for NULL
5         rtl.
6
7 2004-04-20  James E Wilson  <wilson@specifixinc.com>
8
9         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
10         (vall_value_gp): Likewise.
11
12 2004-04-20  DJ Delorie  <dj@redhat.com>
13         
14         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
15         variables stored in word registers, then in memory.
16
17 2004-04-20  Eric Christopher  <echristo@redhat.com>
18
19         * cp/parser.c (cp_parser_declaration): Move translate
20         up before tokens are lexed.
21
22 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
23
24         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
25         (asin_optab, acos_optab): Define corresponding macros.
26         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
27         * genopinit.c (optabs): Implement asin_optab and acos_optab
28         using asin?f2 and acos?f2 patterns.
29         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
30         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
31         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
32         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
33
34         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
35         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
36         acos, acosf and acosl built-ins as inline x87 intrinsics.
37
38 2004-04-20  Paul Brook  <paul@codesourcery.com>
39
40         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
41
42 2004-04-20  Paul Brook  <paul@codesourcery.com>
43
44         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
45
46 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
47
48         Revert part of 2004-04-17 change that moved -frename-registers
49         to -O1.  -frename-registers is buggy.
50
51         * toplev.c (flag_rename_registers): Initialize to 0.
52         * doc/invoke.texi (Optimize options): Move -frename-registers
53         to "Not triggered by any -O level" section.  Adjust commentary
54         accordingly.
55
56 2004-04-20  Anil Paranjpe   <anilp1@kpitcummins.com>
57
58         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
59
60 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
61
62         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
63         for mflo and mfhi instructions.
64         (mips_output_move): Remove mflo and mfhi handling.
65         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
66         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
67         Likewise various define_peephole2s.
68         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
69         alternatives.
70         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
71         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
72         (mfhilo_di, mfhilo_si): New patterns.
73
74 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
75
76         * function.c (assign_parms): Force
77         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
78
79 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
80
81         * var-tracking.c (variable_part_different_p): Variable parts differ
82         when the most recent locations differ.
83
84 2004-04-19  James E Wilson  <wilson@specifixinc.com>
85
86         * rtl.h (reg_set_last): Delete declaration.
87         * rtlanal.c (reg_set_last): Delete.
88
89 2004-04-19  Roger Sayle  <roger@eyesopen.com>
90
91         * fold-const.c (fold_convert): Make function extern/public.
92         * tree.h (fold_convert): Prototype here.
93         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
94         expand_builtin_strrchr, expand_builtin_strpbrk,
95         expand_builtin_mempcpy, expand_builtin_bcopy,
96         expand_builtin_bzero, expand_builtin_memcmp,
97         expand_builtin_strcmp, expand_builtin_strncmp,
98         stabilize_va_list, expand_builtin_sprintf,
99         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
100         fold_builtin_exponent, fold_builtin_mempcpy,
101         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
102         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
103         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
104
105 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
106
107         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
108         (move_from_CR_gt_bit): New.
109         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
110         E500.
111         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
112         E500.
113
114         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
115         (tstsfeq_gpr): Same.
116         (cmpsfgt_gpr): Same.
117         (tstsfgt_gpr): Same.
118         (cmpsflt_gpr): Same.
119         (tstsflt_gpr): Same.
120         (e500_cceq_ior_compare): New.
121         (e500_flip_gt_bit): New.
122
123         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
124         (print_operand): Add 'c' and 'D'.
125         (rs6000_generate_compare): Rewrite to generate correct rtl.
126         (rs6000_emit_sCOND): Handle E500.
127         (output_cbranch): Adjust for changes in rs6000_generate_compare.
128         (output_e500_flip_gt_bit): New.
129
130         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
131         Protoize.
132
133 2004-04-19  Eric Christopher  <echristo@redhat.com>
134
135         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
136
137 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
138
139         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
140         fix information.
141
142 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
143
144         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
145         download URL.
146
147 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
148
149         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
150         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
151
152 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
153
154         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
155         (fold_builtin): Update caller to match.
156
157         PR bootstrap/15009
158         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
159
160         PR bootstrap/14999
161         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
162
163 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
164
165         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
166
167         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
168         (expand_mult_highpart_optab): Likewise.
169         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
170
171 2004-04-19  Paul Brook  <paul@codesourcery.com>
172
173         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
174         floatunssisf2, floatunssidf2): New patterns.
175
176 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
177
178         PR other/14918
179         * doc/invoke.texi (-fprofile-generate): Document requirement to
180         use -fprofile-generate when linking.
181
182         * doc/extend.texi (Strong Using): Warn users against using this
183         feature.
184
185 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
186
187         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
188         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
189         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
190         * config/mips/mips.c (struct mips16_constant): Renamed from struct
191         constant.  Propogate change throughout file.
192         (struct machine_function): Remove insns_len.
193         (mips_string_length, mips16_strings, string_constants): Delete.
194         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
195         when generating mips16 code.  Remove special mips16 treatment of
196         string constants.
197         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
198         to have the form LABEL+CONSTANT.
199         (mips_symbolic_address_p): Fix comment.
200         (m16_usym8_4, m16_usym5_4): Delete.
201         (mips_output_function_epilogue): Remove mips16 string handling.
202         (mips_output_mi_thunk): Call mips16_lay_out_constants.
203         (mips_select_section, mips_encode_section_info): Remove mips16
204         string handling.
205         (struct mips16_constant_pool): New.
206         (add_constant): Take a mips16_constant_pool structure.  Keep pool
207         sorted into order of ascending mode size.  Keep track of the highest
208         possible start address, taking padding and the masking of the base PC
209         value into account.
210         (dump_constants_1): New function, split out from dump_constants.
211         Handle vector constants.  Use gen_consttable_{int,float} rather than
212         separate functions for each mode.
213         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
214         rather than separate functions for each alignment.
215         (mips_find_symbol): Delete.
216         (mips16_insn_length): New function, split out from
217         mips16_lay_out_constants.
218         (mips16_rewrite_pool_refs): New function.
219         (mips16_lay_out_constants): Rework. Remove string handling.
220         Always create an inline constant pool.
221         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
222         (UNSPEC_ALIGN): New constants.
223         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
224         (UNSPEC_ALIGN_[248]): Delete.
225         (consttable_int, consttable_float, align): New patterns.
226         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
227
228 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
229
230         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
231         __unn_args_eq.
232
233 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
234
235         PR target/14715
236         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
237         with STARTING_FRAME_OFFSET.
238
239 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
240
241         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
242         * config/mips/mips.c (macc_msac_operand): New function.
243         * config/mips/mips.md (*msac): Move after *macc.
244         (*msac2): New.  Generalize macc-related peepholes so that they apply
245         to msac too.
246
247 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
248
249         * opts.c (decode_options): Do not enable flag_rename_registers
250         and flag_web at -O3.
251         * toplev.c (flag_rename_registers): Initialize
252         flag_rename_registers and flag_web to
253         AUTODETECT_FLAG_VAR_TRACKING.
254         (default_debug_hooks): New global.
255         (process_options): Initialize default_debug_hooks.  Warn if
256         -fvar-tracking specified but not supported by the current
257         debug format.  Do not run var tracking at -O0 or if not
258         supported by the current debug format, even if
259         -fvar-tracking was given.  If -fno-rename-registers
260         is not specified, always run register renaming if var
261         tracking is supported by the default debugging information
262         format for the target, and we are at -O1 or higher; similarly
263         for -fweb, but only at -O2 or higher.
264         * doc/invoke.texi (Optimize Options): Document this.
265
266 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
267
268         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
269         * configure: Regenerate.
270
271 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
272
273         * gcc.c (used_arg): Check whether an option has been removed.
274
275 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
276
277         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
278         debugging on Solaris 7 and up.
279
280 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
281
282         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
283         IRIX 5 port.
284         Remove -save-temps workaround, handled automatically.
285         Require GNU binutils 2.15 for debugging.
286         Remove SGI make warnings since GNU make is now required.
287         (Specific, mips-sgi-irix6): Some markup fixes.
288         Describe MIPSpro C problems and workarounds.
289         Mention working O32 ABI support.
290         Recommend GNU as 2.15 for O32 with debugging.
291         Remove description of fixed structure pass/return bug.
292
293 2004-04-16  DJ Delorie  <dj@redhat.com>
294
295         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
296         TYPE_FIELDS.
297         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
298
299 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
300
301         * pa.md: Remove unnecessary declarations for asm_out_file.
302
303         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
304         SAR register.  Fix comment.
305         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
306         (%cr11).
307
308         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
309
310 2004-04-16  Nick Clifton  <nickc@redhat.com>
311
312         * config/arm/arm.c (arm_override_options): Revert previous patch.
313         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
314         be safely built.
315
316 2004-04-16  Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
317
318         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
319         bug.
320         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
321         TARGET_DEFAULT): Changed. Ditto.
322         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
323         TARGET_ENDIAN_DEFAULT): Added. Ditto.
324         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
325         (TARGET_ENDIAN_DEFAULT): Added.
326
327 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
328
329         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
330         ATTR_CONST_NOTHROW_LIST.
331
332 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
333
334         PR/middle-end 14915
335         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
336         BITS_BIG_ENDIAN.
337
338 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
339
340         * ra-debug.c (ra_print_rtx): Add break's to case legs.
341
342 2004-04-14  James E Wilson  <wilson@specifixinc.com>
343
344         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
345
346 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
347
348         * libada-mk.in: New file.
349         * configure.ac: Create libada-mk from libada-mk.in.
350         * configure: Regenerate.
351
352 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
353
354         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
355         (logb_optab, ilogb_optab): Define corresponding macros.
356         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
357         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
358         using logb?f2 and ilogb?i2 patterns.
359         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
360         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
361         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
362         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
363
364         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
365         and UNSPEC_XTRACT_EXP.
366
367         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
368         patterns to implement fxtract x87 instruction.
369         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
370         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
371         intrinsics.
372         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
373         x87's fxtract insn.
374
375 2004-04-14  Eric Christopher  <echristo@redhat.com>
376
377         * config/mips/t-elf: Enable multilibs by default.
378
379 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
380
381         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
382         previous fix to check HAVE_return at runtime too.
383
384 2004-04-14  Nick Clifton  <nickc@redhat.com>
385
386         * config/arm/arm.c (arm_override_options): If the user has not
387         specified an ABI, then default to AAPCS for the iWMMXt processor.
388         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
389         * config/arm/t-xscale-coff: Likewise.
390
391 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
392
393         * builtins.c (fold_builtin_isdigit): New.
394         (fold_builtin): Handle BUILT_IN_ISDIGIT.
395         * defaults.h: Add TARGET_DIGIT0 and sort.
396         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
397
398 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
399
400         * builtins.c (fold_builtin_cabs, fold_builtin): Use
401         `mathfn_built_in' to determine the new builtin.
402         * fold-const.c (fold): Likewise.
403
404 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
405
406         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
407         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
408         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
409         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
410         (ASM_SPEC): Update accordingly.
411         * config/mips/mips.c: Update after above renaming.
412         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
413         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
414
415 2004-04-13  James E Wilson  <wilson@specifixinc.com>
416
417         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
418         increment errorcount and return false instead of true.
419
420 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
421
422         * optabs.c (expand_twoval_unop): Reorder function arguments.
423         * builtins.c (expand_builtin_mathfn_3): Update calls to
424         expand_twoval_unop.
425
426         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
427         and UNSPEC_TAN_TAN. Add missing comment.
428
429         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
430         patterns to implement fptan x87 instruction.
431         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
432         and tanl built-ins as inline x87 intrinsics. Define corresponding
433         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
434         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
435         x87's fptan insn.
436
437 2004-03-13  Richard Henderson  <rth@redhat.com>
438
439         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
440         for LABEL_REFs.
441
442         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
443         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
444         * doc/invoke.texi: Update to match.
445
446         * varasm.c (unlikely_text_section): Use assemble_align instead of
447         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
448         correct alignment argument.
449
450 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
451
452         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
453         after setting reg_last_reload_reg for optional output reloads.
454
455 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
456
457         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
458         Definition of these two macros are corrected by adding
459         matchine right paren.
460
461 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
462
463         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
464
465 2004-04-12  Roger Sayle  <roger@eyesopen.com>
466
467         * config/i386/i386.c (output_387_reg_move): New function.
468         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
469         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
470         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
471         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
472         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
473
474 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
475
476         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
477         TYPE_DECL.
478         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
479         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
480         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
481         Use skip_simple_arithmetic to find SAVE_EXPR.
482         (force_type_save_exprs, force_type_save_exprs_1): New functions.
483         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
484         Properly chain multiple pointers.
485         (copy_tree_r): Copy a TYPE_DECL.
486         * tree.c (variably_modified_type_p): Add some missing tests and
487         make some other minor changes.
488         * tree.h (force_type_save_exprs): New declaration.
489
490 2004-04-12  Roger Sayle  <roger@eyesopen.com>
491
492         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
493         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
494         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
495         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
496         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
497         x%-1 into 0 (or x&0 if x has side-effects).
498
499 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
500
501         * config/rs6000/rs6000.md: Document why a pattern is not
502         available.
503
504         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
505         of floats on the E500.
506         (branch_positive_comparison_operator): Do not allow NE even on the
507         E500.
508
509 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
510
511         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
512         in_text_unlikely_section to in_unlikely_text_section.
513
514 2004-04-11  Roger Sayle  <roger@eyesopen.com>
515
516         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
517         calling convention to allow a NULL_TREE to be returned.  Factor
518         sanity checks from callers, return NULL_TREE when appropriate.
519         (fold): Handle COMPOUND_EXPR operands of binary expressions
520         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
521         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
522         calls to fold_binary_op_with_conditional_arg.
523
524 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
525
526         * config/mips/iris5.h (current_section_flags):  Add
527         in_unlikely_executed_text and default case.
528
529 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
530
531         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
532         failure on solaris. Place ifdef HAVE_return around gen_ret call.
533         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
534         HAVE_return and place it around the place where it is needed.
535
536 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
537
538         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
539         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
540         and NORMAL_TEXT_SECTION_NAME.
541         (unlikely_text_section): Check targetm.have_named_sections
542         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
543         instead of SECTION_FORMAT_STRING.
544         * config/mips/iris5.h (current_section_name): Add
545         in_unlikely_executed_text case and move the abort into the switch.
546         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
547         (NORMAL_TEXT_SECTION_NAME): Remove.
548         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
549         (SECTION_FORMAT_STRING): Remove.
550         * defaults.h (SECTION_FORMAT_STRING): Remove.
551         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
552         (SECTION_FORMAT_STRING): Remove.
553
554 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
555
556         * c-typeck.c (common_type): Prefer long long to long when same
557         precision.
558
559 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
560
561         PR 14887
562         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
563         mode argument.
564         * config/ia64/ia64.c (ia64_hpux_file_end): Check
565         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
566
567 2004-04-09  Roger Sayle  <roger@eyesopen.com>
568
569         * simplify-rtx.c (mode_signbit_p): New function to check whether
570         an RTX is an immediate constant that represents the most significant
571         bit of a given machine mode.
572         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
573         C is the sign bit.
574         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
575         when C2 is the sign bit.
576         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
577         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
578         sign bit.
579
580 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
581
582         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
583         TYPE_MODE.
584
585 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
586
587         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
588         of TREE_READONLY for types.
589
590 2004-04-09  Caroline Tice  <ctice@apple.com>
591
592         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
593         (struct basic_block_def):  Add new field, partition.
594         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
595         definitions.
596         (partition_hot_cold_basic_blocks): Add extern function
597         declaration.
598         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
599         include statements.
600         (N_ROUNDS): Increase the maximum number of rounds by 1.
601         (branch_threshold): Add array value for new round.
602         (exec_threshold): Add array value for new round.
603         (push_to_next_round_p): New function.
604         (add_unlikely_executed_notes): New function.
605         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
606         (mark_bb_for_unlikely_executed_section): New function.
607         (add_labels_and_missing_jumps): New function.
608         (add_reg_crossing_jump_notes): New function.
609         (fix_up_fall_thru_edges): New function.
610         (find_jump_block): New function.
611         (fix_crossing_conditional_branches): New function.
612         (fix_crossing_unconditional_branches): New function.
613         (fix_edges_for_rarely_executed_code): New function.
614         (partition_hot_cold_basic_blocks): New function.
615         (find_traces):  Add an extra round for partitioning hot/cold
616         basic blocks.
617         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
618         and only cold blocks, into the last (extra) round of collecting traces.
619         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
620         over crossing edges.
621         (bb_to_key):  Add code to correctly identify cold blocks when
622         doing partitioning.
623         (connect_traces): Modify to connect all the non-cold traces first, then
624         go back and connect up all the cold traces.
625         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
626         * cfg.c (entry_exit_blocks): Add initialization for partition field in
627         entry and exit blocks.
628         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
629         if we are doing hot/cold partitioning.
630         * cfgcleanup.c (cfglayout.h): Add new include statement.
631         (try_simplify_condjump): Modify to not attempt on blocks with jumps
632         that cross section boundaries.
633         (try_forward_edges): Likewise.
634         (merge_blocks_move_predecessor_nojumps): Likewise.
635         (merge_blocks_move_successor_nojumps): Likewise.
636         (merge_blocks_move): Likewise.
637         (try_crossjump_to_edge): Modify to not attempt after we have done
638         the block partitioning.
639         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
640         cross section boundaries.
641         (try_optimize_cfg): Likewise.
642         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
643         jumps that cross section boundaries.
644         * cfglayout.c (flags.h): Add new include statement.
645         (update_unlikely_executed_notes):  New function.
646         (fixup_reorder_chain):  Add code so when a new jumping basic block is
647         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
648         updated appropriately.
649         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
650         introduced by this optimization.
651         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
652         extern function declaration.
653         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
654         list of notes that can be deleted.
655         (create_basic_block_structure):  Add initialization for partition field.
656         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
657         section boundaries.
658         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
659         cross section boundaries.
660         (commit_one_edge_insertion): Add code so newly created basic block
661         ends up in correct (hot or cold) section.  Modify to disallow
662         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
663         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
664         crosses section boundaries.
665         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
666         cross section boundaries.
667         (force_nonfallthru_and_redirect): Modify to make sure new basic block
668         ends up in correct section, with correct notes attached.
669         * common.opt (freorder-blocks-and-partition):  Add new flag for this
670         optimization.
671         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
672         the end of functions are written into the correct (hot or cold)
673         section.
674         (dbx_source_file): Add code so writing debug file information
675         doesn't incorrectly change sections.
676         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
677         in partitioning hot/cold basic blocks into separate sections.
678         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
679         section partitioning.
680         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
681         conditional branches can span all of memory.
682         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
683         unconditional branches can span all of memory.
684         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
685         (final_scan_insn):  Add code to check for NOTE instruction indicating
686         whether basic block belongs in hot or cold section, and to make sure
687         the current basic block is being written to the appropriate section.
688         Also added code to ensure that jump table basic blocks end up in the
689         correct section.
690         * flags.h (flag_reorder_blocks_and_partition):  New flag.
691         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
692         one of the branches has a jump that crosses between sections.
693         (find_if_case_2): Likewise.
694         (ifcvt): Modify to not attempt to mark loop exit edges after
695         hot/cold partitioning has occurred.
696         * opts.c (decode_options): Code to handle new flag,
697         flag_reorder_blocks_and_partition; also to turn it off if
698         flag_exceptions is on.
699         (common_handle_option): Code to handle new flag,
700         flag_reorder_blocks_and_partition.
701         * output.h (unlikely_text_section): New extern function declaration.
702         (in_unlikely_text_section): New extern function declaration.
703         * passes.c (rest_of_handle_stack_regs):  Add
704         flag_reorder_blocks_and_partition as an 'or' condition for calling
705         reorder_basic_blocks.
706         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
707         as an 'or' condition for calling reorder_basic_blocks.
708         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
709         * print-rtl.c (print_rtx): Add code for handling new note,
710         NOTE_INSN_UNLIKELY_EXECUTED_CODE
711         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
712         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
713         cross between section boundaries.
714         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
715         indicating the basic block containing it belongs in the cold section.
716         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
717         between hot and cold sections.
718         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
719         initialize this flag, and to tie it to the command-line option
720         freorder-blocks-and-partition.
721         * varasm.c (cfglayout.h):  Add new include statement.
722         (unlikely_section_label_printed):  New global variable, used for
723         determining when to output section name labels for cold sections.
724         (in_section):  Add in_unlikely_executed_text to enum data structure.
725         (text_section):  Modify code to use SECTION_FORMAT_STRING and
726         NORMAL_TEXT_SECTION_NAME macros.
727         (unlikely_text_section):  New function.
728         (in_unlikely_text_section):  New function.
729         (function_section):  Add code to make sure beginning of function is
730         written into correct section (hot or cold).
731         (assemble_start_function):  Add code to make sure stuff is written to
732         the correct section.
733         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
734         to an if statement that was checking 'in_text_section'.
735         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
736         condition to an if statement that was checking 'in_text_section'.
737         (default_section_type_flags_1):  Add check: if in cold section
738         flags = SECTION_CODE.
739         * config/darwin.c (darwin_asm_named_section):  Modify to use
740         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
741         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
742         specifically for the i386.
743         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
744         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
745         text string to something more informative.
746         (NORMAL_TEXT_SECTION_NAME): Add new definition.
747         (SECTION_FORMAT_STRING):  Add new definition.
748         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
749         '!in_unlikely_text_section' as an 'and' condition to an if statement
750         that was already checking '!in_text_section'.
751         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
752         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
753         sure these are properly defined for linux on ppc.
754         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
755         for this new flag.
756         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
757         reg_note.
758         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
759         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
760         these new macros.
761
762 2004-04-08  Roger Sayle  <roger@eyesopen.com>
763
764         * function.c (gen_mem_addressof): When changing the RTX from a REG
765         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
766
767 2004-04-08  Roger Sayle  <roger@eyesopen.com>
768
769         PR target/14888
770         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
771         truncxfdf2_noop): Provide dummy "fmov" implementations.
772
773 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
774
775         * gcc.c (default_compilers): Add missing initializers.
776
777         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
778         Return 1 if file was successfully mapped.
779
780 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
781
782         PR pch/13419
783         PR pch/14137
784         Radar #: 3315288
785         * doc/invoke.texi (Precompiled Headers): Suggest -o
786         to put an output file in a particular place.  Be more detailed
787         about which options affect PCH validity and which options
788         might not work.
789         * c-pch.c (pch_matching): New.
790         (MATCH_SIZE): New.
791         (struct c_pch_validity): New field 'match'.
792         (pch_init): Handle pch_matching.
793         (c_common_valid_pch): Check pch_matching.
794
795         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
796
797 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
798
799         * doc/invoke.texi (Precompiled Headers): Warn about known
800         problems.
801
802 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
803
804         PR c++/14808
805         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
806         to 1 if ASM_OUTPUT_DEF is defined.
807         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
808         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
809         Set to non-zero iff not a one_only decl.
810
811 2004-04-08  Paul Brook  <paul@codesourcery.com>
812
813         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
814
815 2004-04-08  Paul Brook  <paul@codesourcery.com>
816
817         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
818         PROMOTE_FOR_CALL_ONLY.
819         * config/arm/arm-protos.h (arm_function_value): Declare.
820         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
821         (TARGET_PROMOTE_PROTOTYPES): Return false.
822         (arm_function_value): New function.
823         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
824         (FUNCTION_VALUE): Call arm_function_value.
825         * config/cris/cris.h (PROMOTE_MODE): Rename ...
826         (PROMOTE_FUNCTION_MODE): ... to this.
827         (PROMOTE_FOR_CALL_ONLY): Remove.
828         * config/mmix/mmix.h: Likewise.
829         * config/s390/s390.h: Likewise.
830         * config/sparc/sparc.h: Likewise.
831         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
832         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
833         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
834         (PROMOTE_FOR_CALL_ONLY): Remove.
835
836 2004-04-08  Joel Sherrill <joel@oarcorp.com>
837
838         PR ada/14538
839         * ada/5rosinte.adb: Remove fake mprotect() body.
840         * ada/5rosinte.ads: Add SA_SIGINFO.
841         * ada/5rtpopsp.adb: Rewrite to use new interface.
842         * ada/init.c: Reorder so the simple single OS conditional __rtems__
843         is tested before more complex ones which mix UNIX and embedded
844         systems in the conditional.
845
846 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
847
848         PR ada/14665
849         * ada/osint.adb (Find_Program_Name): Rework to properly handle
850         filenames which end in .exe or have versioning suffixes like VMS.
851
852 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
853
854         PR target/10129
855         * config/darwin.c (darwin_encode_section_info): When the decl has
856         a DECL_INITIAL, it is only defined also when it is not a common.
857
858 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
859
860         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
861         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
862
863 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
864
865         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
866         global register variables.
867
868 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
869
870         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
871         rpc_xdr_lvalue_cast_b): New fixes.
872         * fixinc/fixincl.x: Regenerate.
873         * fixinc/tests/base/rpc/xdr.h: Add new tests.
874
875 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
876
877         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
878         to power4 and power5 entries.
879
880 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
881
882         * c-common.h (pending_lang_change): Mark for PCH.
883
884 2004-04-07  Caroline Tice  <ctice@apple.com>
885
886         * gcc.c (main): Move 'break' in main loops (on an error)
887         to wait until error processing has occurred.
888
889 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
890
891         * config.gcc: Stop changing enable_threads midstream.
892         Replace uses of enable_threads_flag with enable_threads.
893         * configure.ac: Replace uses of enable_threads_flag with
894         enable_threads.  Improve autoconf quotation in one place.
895         * configure: Regenerate.
896
897 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
898
899         * builtins.c: Implement support for sincos function.
900         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
901         BUILT_IN_COS{,F,L}.
902         (expand_builtin_mathfn_3): New function.
903         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
904         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
905         flag_unsafe_math_optimization is set.
906
907         * optabs.h (enum optab_index): Add new OTI_sincos.
908         (sincos_optab): Define corresponding macro.
909
910         * optabs.c (init_optabs): Initialize sincos_optab.
911         (expand_twoval_unop): New function.
912
913         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
914         patterns.
915
916         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
917         and UNSPEC_SINCOS_SIN.
918
919         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
920         sincosxf3): New patterns to implement sincos, sincosf and sincosl
921         built-ins as inline x87 intrinsics. Define splits for
922         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
923         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
924         sincos patterns.
925         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
926         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
927
928         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
929         x87's fsincos insn.
930
931 2004-04-06  Devang Patel  <dpatel@apple.com>
932
933         PR 14467
934         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
935
936 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
937
938         * doc/install.texi: Update HP-UX 11 installation procedure.
939
940 2004-04-06  Paul Brook  <paul@codesourcery.com>
941
942         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
943
944 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
945
946         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
947         when the TLS address is generated by a function call.
948         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
949         (tls_local_dynamic): Likewise.
950
951 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
952
953         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
954         and TYPE_VOLATILE.
955
956 2004-04-05  Caroline Tice  <ctice@apple.com>
957
958         * gcc.c (combine_flag): New global variable, for new driver option.
959         (struct compiler): Add two new fields, to be used when
960         combining multiple input files in a single pass (IMA).
961         (default_compilers):  Add values for the new fields to all
962         compiler entries. Modify the "@c" compiler entry for doing IMA
963         properly with "-save-temps" and the "combine" flag.
964         (option_map):  Add new driver option, "--combine", to tell driver
965         to pass multiple input files to compiler at one time.
966         (have_o_argbuf_index): New global variable.
967         (store_arg): Modify to assign value to have_o_argbuf_index.
968         (struct infile):  Add three new fields, to help with IMA.
969         (display_help): Add help for new "combine" option.
970         (process_command): Remove local variable have_o; add code to check
971         for new "combine" option; remove assignment to combine_inputs.
972         (do_spec_1):  Modify to deal with IMA better.
973         (main): Make variable 'lang_n_infiles' local to entire function
974         rather than to a single block.  Use flag combine_flag to
975         determine whether to do IMA or not; Modify loop initializing
976         infiles to deal properly with linker files.
977         Add code for doing preprocessing in presence of
978         IMA with "-save-temps" flag.  Modify "main" loop to handle
979         multiple input files, in multiple languages, with or without
980         preprocessing,  gracefully.
981         * toplev.c (set_src_pwd): Modify to not complain if attempting to
982         re-set it to same directory it's previously been set to (avoid
983         irritating, meaningless warning messages when doing IMA with
984         save-temps).
985         * doc/invoke.texi: Add "-combine" to list of Overall Options;
986         remove documentation about IMA that is no longer accurate; Add
987         documentation explaining what "-combine" does.
988         * ada/lang-specs.h: Add initialization values for new fields in
989         "struct compiler".
990         * cp/lang-specs.h: Likewise.
991         * f/lang-specs.h: Likewise.
992         * java/lang-specs.h: Likewise.
993         * objc/lang-specs.h: Likewise.
994         * treelang/lang-specs.h: Likewise.
995
996 2004-04-05  David Edelsohn
997
998         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
999         symbol handling.
1000
1001 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
1002             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1003
1004         PR optimization/13424 (hppa), bootstrap/14462, c/14828
1005         * pa.md: Use replace_equiv_address to retain the attributes of the
1006         memory operands used in the split and peephole2 patterns for optimizing
1007         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
1008
1009 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1010
1011         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
1012         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
1013         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
1014         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
1015         PARM_DECL.
1016         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
1017         for a type.
1018         * print-tree.c (print_node): Properly handle side-effects, readonly,
1019         and constant flags.
1020         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
1021         and TREE_CONSTANT if not a type.
1022         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
1023         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
1024         (NON_TYPE_CHECK): New macro.
1025         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
1026
1027 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
1028
1029         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
1030         to DWARF2_DEBUG unconditionally.
1031         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
1032
1033 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
1034             Nathanael Nerode  <neroden@gcc.gnu.org>
1035
1036         PR target/14548
1037         * config.host: Set the shell variable host_can_use_collect2.
1038         Set it to yes by default, and to no for alpha*-dec-*vms*,
1039         i[34567]86-*-mingw32*, and powerpc-*-beos*.
1040         * configure.ac: Set and substitute the shell variable collect2.
1041         Give an error if use_collect2 is yes and host_can_use_collect2 is
1042         no.
1043         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
1044         uses.  Initialize to @collect2@.
1045         (STAGESTUFF): Remove $(USE_COLLECT2).
1046         * config/alpha/x-vms (USE_COLLECT2): Don't set.
1047         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
1048         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
1049         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
1050         * configure: Regenerate.
1051
1052 2004-04-04  Roger Sayle  <roger@eyesopen.com>
1053
1054         * simplify-rtx.c (simplify_binary_operation): Constant fold
1055         DIV, MOD, UDIV and UMOD using div_and_round_double.
1056
1057 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
1058
1059         PR c++/14804
1060         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
1061         RECORD_TYPEs.
1062
1063 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
1064
1065         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
1066         documentation.
1067
1068 2004-04-04  Roger Sayle  <roger@eyesopen.com>
1069
1070         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
1071         updating the REG_EQUAL note on an insn's libcall_insn.
1072
1073 2004-04-04  Roger Sayle  <roger@eyesopen.com>
1074
1075         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
1076
1077 2004-04-03  Roger Sayle  <roger@eyesopen.com>
1078
1079         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
1080         with reorder_operands_p.
1081
1082 2004-04-03  Jan Hubicka  <jh@suse.cz>
1083
1084         * md.texi (vec_set, vec_extract, vec_init): Document.
1085
1086 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
1087
1088        * opts.c (decode_options): Do function inlining with very small
1089        max-inline-insns-* parameters when optimizing for size.
1090
1091 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
1092
1093         * config/i386/i386.h (TARGET_NOCONA): New macro.
1094         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
1095         (processor_type): Add PROCESSOR_NOCONA.
1096
1097         * config/i386/i386.md (cpu): Add nocona to the attribute values.
1098
1099         * config/i386/i386.c (nocona_cost): New variable.
1100         (m_NOCONA): New macro.
1101         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
1102         x86_branch_hints, x86_use_sahf, x86_single_stringop,
1103         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
1104         x86_integer_DFmode_moves, x86_partial_reg_dependency,
1105         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
1106         x86_decompose_lea, x86_arch_always_fancy_math_387,
1107         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
1108         x86_ext_80387_constants, x86_four_jump_limit):
1109         (override_options): Add nocona_cost to processor_target_table.
1110         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
1111         (incdec_operand): Prevent inc/dec generation for Nocona too.
1112         (ix86_issue_rate): Add PROCESSOR_NOCONA.
1113
1114 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
1115
1116         * rtlanal.c (find_reg_note): Manually
1117         unswitch the loop.
1118
1119 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
1120
1121         * genemit.c (gen_split): Change prototype of generated code.
1122         * genrecog.c (write_action): Adjust prototype for and calls to
1123         gen_split_*.
1124         * gensupport.c (struct queue_elem): Add split field.
1125         (queue_pattern): Return a value.  Clear the split field.
1126         (process_rtx): Maintain an association between an insn and the
1127         split generated from it for a define_insn_and_split.
1128         (process_one_cond_exec): Generate a new split for a
1129         define_insn_and_split.
1130         * config/arm/arm-protos.h (arm_split_constant): Add insn
1131         parameter.
1132         (emit_constant_insn): New function.
1133         (arm_gen_constant): Use it.
1134         * config/arm/arm.md: Adjust calls to arm_split_constant.
1135
1136 2004-04-02  Jan Hubicka  <jh@suse.cz>
1137
1138         * cgraph.c: Add overall comment.
1139         (cgraph_inline_hash): New global variable.
1140         (cgraph_create_node): Break out from ...
1141         (cgraph_node): ... here.
1142         (cgraph_edge): New function.
1143         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
1144         (cgraph_remove_edge): Accept edge, intead of source and destination.
1145         (cgraph_redirect_edge_callee): New.
1146         (cgraph_remove_node): Update all new datastructures.
1147         (cgraph_record_call, cgraph_remove_call): Kill.
1148         (dump_cgraph_node): Break out from ... ; dump new datastructures.
1149         (dump_cgraph): ... here.
1150         (cgraph_function_possibly_inlined_p): Use new hashtable.
1151         (cgraph_clone_edge, cgraph_clone_node): New.
1152         * cgraph.h: Include hashtab.h
1153         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
1154         fields, add inlined_to pointer.
1155         (cgraph_node): Add pointer to next_clone.
1156         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
1157         (cgraph_remove_call, cgraph_record_call): Kill.
1158         (cgraph_inline_hash): Declare.
1159         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
1160         cgraph_redirect_edge_callee): Declare.
1161         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
1162         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
1163         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
1164         * cgraphunit.c: Add overall comment.
1165         (cgraph_optimize_function): Kill.
1166         (cgraph_assemble_pending_functions): Do not assemble inline clones.
1167         (cgraph_finalize_function): Update call of cgraph_remove_node
1168         (record_call_1): Record call sites.
1169         (cgraph_create_edges): Accept node instead of decl argument.
1170         (error_found): New static variable.
1171         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
1172         (cgraph_analyze_function): Update for new datastructures.
1173         (cgraph_finalize_compilation_unit): Plug memory leak.
1174         (cgraph_optimize_function): Kill.
1175         (cgraph_expand_function): Do not use cgraph_optimize_function.
1176         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
1177         cgraph_inlined_callees): Kill.
1178         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
1179         clones.
1180         (estimate_growth): Simplify.
1181         (cgraph_clone_inlined_nodes): New function.
1182         (cgraph_mark_inline_edge): Re-implement.
1183         (cgraph_mark_inline): Likewise.
1184         (cgraph_check_inline_limits): Simplify.
1185         (cgraph_recursive_inlining_p): New.
1186         (update_callee_keys): Break out from ...
1187         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
1188         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
1189         Likewise.
1190         (cgraph_expand_all_functions):  Remove inline clones from the ordered
1191         list.
1192         (cgraph_preserve_function_body_p): New predicate.
1193         (cgraph_optimize): Verify cgraph.
1194         * function.h (struct function): Add fields saved_tree/saved_args.
1195         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
1196         * toplev.c (rest_of_compilation): Do not free cfun.
1197         * tree-inline.c: Include function.h
1198         (struct inline_data): Add saving_p field; replace decl/current_decl by
1199         node/current_node.
1200         (insert_decl_map): New function.
1201         (copy_body_r): Handle saving; update cgraph datastructure.
1202         (copy_body): Handle recursive inlining.
1203         (initialize_inlined_parameters): Likewise.
1204         (expand_call_inline): Propagate node attributes; update cgraph.
1205         (optimize_inline_calls): Verify that datastructure still match.
1206         (save_body): New function.
1207         * tree-inline.h (save_body): New.
1208         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
1209         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
1210         * langhooks.c (lang_hooks): Add update_decl_after_saving.
1211
1212 2004-04-01  Serge Belyshev  <1319@bot.ru>
1213
1214         PR target/14702
1215         * config/i386/i386.md: fix source operand constraints in
1216         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
1217
1218 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
1219
1220         * fold-const.c (folda): Preserve types of comparisons.
1221
1222 2004-04-01  Richard Henderson  <rth@redhat.com>
1223
1224         * toplev.c (backend_init): Move init_optimization_passes call ...
1225         (lang_dependent_init): ... here.
1226
1227 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
1228             Jakub Jelinek  <jakub@redhat.com>
1229
1230         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
1231         -lgcc --as-needed -lgcc_s --no-as-needed by default.
1232         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
1233         * configure: Rebuilt.
1234         * config.in: Rebuilt.
1235         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
1236         (stage2-start, stage3-start, stage4-start): Likewise.
1237         (stageprofile-start, stagefeedback-start): Likewise.
1238
1239 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
1240
1241         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
1242         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
1243         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
1244         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
1245         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
1246         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
1247         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
1248         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
1249         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
1250         * config/sparc/t-linux: Removed.
1251
1252 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
1253
1254         PR c++/14755
1255         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
1256         "bitfld++ == const" to "++bitfld == const + incr" transformations.
1257
1258 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1259
1260         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
1261         * stor-layout.c (layout_decl): Likewise.
1262         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
1263         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
1264         * print-tree.c (print_node): Handle various used of unsigned_flag.
1265         * tree.def (BIT_FIELD_REF): Update comment.
1266         * tree.h (TREE_UNSIGNED): Deleted.
1267         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
1268
1269 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1270
1271         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
1272         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
1273         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
1274         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
1275         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
1276         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
1277         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
1278         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
1279         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
1280         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
1281         REAL_TYPE, not INTEGER_TYPE.
1282         (layout_type, case VECTOR_TYPE): Simplify code.
1283         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
1284         * tree.h: Update comments.
1285         (STRIP_NOPS): Use TYPE_UNSIGNED.
1286         (TYPE_UNSIGNED): New macro.
1287         (TYPE_TRAP_SIGNED): Remove now redundant check.
1288         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
1289
1290 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1291
1292         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
1293
1294 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
1295
1296         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
1297         Add darwin-fpsave.asm, darwin-vecsave.asm,
1298         and darwin-world.asm.
1299         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
1300         as the asm files contain altivec instructions.
1301         * config/rs6000/darwin-fpsave.asm: New file.
1302         * config/rs6000/darwin-vecsave.asm: New file.
1303         * config/rs6000/darwin-world.asm: New file.
1304
1305 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
1306
1307         * gengtype-yacc.y (option, stringseq): Add missing
1308         terminating semicolon.
1309
1310 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
1311
1312         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
1313         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
1314         tls_dtprel_ha_32, tls_dtprel_ha_64,
1315         tls_dtprel_lo_32, tls_dtprel_lo_64,
1316         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
1317         tls_tprel_ha_32, tls_tprel_ha_64,
1318         tls_tprel_lo_32, tls_tprel_lo_64,
1319         tls_got_tprel_32, tls_got_tprel_64,
1320         tls_tls_32, tls_tls_64): Replace register_operand with
1321         gpc_reg_operand.
1322
1323 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
1324
1325         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
1326         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
1327         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
1328         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
1329         *ctrdi_internal6): Replace register_operand with
1330         nonimmediate_operand.
1331
1332 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
1333
1334         * fold-const.c (fold): Reassociate multiply expression
1335         with an adjacent non-multiply expression to use
1336         architecture's multiply-add instruction.
1337
1338 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
1339
1340         * gengtype.c (create_option): New function.
1341         * gengtype.h: Prototype it.
1342         * gengtype-yacc.y (stringseq): New rule.
1343         (option): Use create_option.  Add new bare ID production.  Use
1344         stringseq, not STRING directly.
1345
1346         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
1347         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
1348         * varray.h, config/alpha/alpha.c:
1349         Use new shorter form of GTY markers.
1350
1351         * doc/gty.texi: Rewrite.
1352
1353 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
1354
1355         * config/darwin.c (machopic_function_base_name):
1356         Remove current_name and getting the name of the
1357         current function.
1358
1359 2004-03-30  Nick Clifton  <nickc@redhat.com>
1360
1361         * config/arm/arm.md (thumb_jump): Reduce the backward branch
1362         range, and increase the forward branch range, to allow for
1363         the fact that the PC will be off by 4.
1364
1365 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
1366
1367         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
1368
1369 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
1370
1371         * config/rs6000/rs6000.c (output_vec_const_move):
1372         Find all cases of EASY_VECTOR_15_ADD_SELF.
1373         (easy_vector_constant_add_self): Accept
1374         all vector constant loadable by vsplt* and vadd*.
1375         (easy_vector_same): Use easy_vector_splat_const.
1376         (easy_vector_const): Use easy_vector_splat_const.
1377         (easy_vector_splat_const): New function.
1378         (gen_easy_vector_constant_add_self): New function.
1379
1380         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
1381         New prototype.
1382
1383         * config/rs6000/altivec.md (movv4si splitter): Change to
1384         emit move insn with halfed vector constant.
1385         (*movv8hi splitter): Likewise.
1386         (*movv16qi splitter): Likewise.
1387
1388 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
1389
1390         PR 11591
1391         * config/rs6000/rs6000.c (rs6000_legitimate_address):
1392         Allow any offset to argument pointer in no-strict case.
1393
1394 2004-03-30  Jan Hubicka  <jh@suse.cz>
1395
1396         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
1397         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
1398         dump file in non-unit-at-a-time mode.
1399
1400 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
1401
1402         * config/cris/cris.h: Correct #ifdef to test for
1403         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
1404         HAVE_AS_MUL_BUG_ABORT_OPTION.
1405
1406 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1407
1408         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
1409         the address inside the old RTL.
1410
1411 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
1412
1413         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
1414         (struct c_binding, struct c_scope): Add chain_next
1415         attributes to GTY markers.
1416         (struct lang_identifier, struct lang_tree_node): Define
1417         here...
1418         * c-tree.h: ... not here.  No longer need to declare struct
1419         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
1420         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
1421         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
1422
1423         PR 14734, 11944
1424         * c-decl.c (get_parm_info): If error_mark_node is encountered
1425         in the bindings chain, unbind and discard it; don't abort.
1426
1427 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
1428             Dorit Naishlos <dorit@il.ibm.com>
1429
1430         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
1431         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
1432
1433 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
1434
1435         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
1436
1437         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
1438         (m68hc11_attribute_table): New attribute "page0" to mark a global
1439         variable as being allocated from within page0 section.
1440         (m68hc11_encode_label): New function.
1441         (m68hc11_strip_name_encoding): New function.
1442         (m68hc11_page0_symbol_p): New function.
1443         (m68hc11_indirect_p): Accept global variables marked in page0.
1444         (m68hc11_encode_section_info): Lookup "page0" attribute.
1445
1446         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
1447         represents access to page0 variables.
1448
1449         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
1450         ("*logicalsi3_silshl16_zext"): Likewise.
1451         ("*ashldi3_const32"): Likewise.
1452         (peephole2 ashift): Likewise.
1453
1454 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
1455
1456         * c-tree.h (C_DECL_REGISTER): New.
1457         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
1458         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
1459         (build_array_ref, c_mark_addressable): Set and use it.
1460         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
1461         Allow structures with volatile fields to be declared register.
1462         Don't check TREE_ADDRESSABLE before warning about taking address
1463         of register.
1464         * c-decl.c (finish_decl): Don't allow structures with volatile
1465         fields to be placed in named register.
1466         * doc/trouble.texi: Remove reference to structures with volatile
1467         fields in registers.
1468
1469 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
1470
1471         * function.c (thread_prologue_and_epilogue): Move
1472         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
1473         before the epilogue.
1474
1475 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
1476
1477         * expr.c (store_constructor): Use gen_int_mode to correctly
1478         sign-extend CONST_INT value.
1479
1480 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1481
1482         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
1483         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
1484         * doc/extend.texi: Likewise.
1485
1486 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
1487
1488         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
1489           with TYPE_ORIG_SIZE_TYPE.
1490
1491 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
1492
1493         PR 14219
1494         * c-typeck.c (build_binary_op): Do not allow comparisons of
1495         vectors.
1496
1497 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
1498
1499         * config.gcc: Remove sparc-tti-*.
1500         * config/sparc/pbd.h: Delete.
1501
1502         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
1503         * config/sparc/aout.h: Likewise.
1504
1505         * config/sparc/sparc.h: Remove if 0'd code.
1506         * config/sparc/sparc.md (call): Remove if 0'd code.
1507         (call_value): Likewise.
1508         (nonlocal_goto): Likewise.
1509         (unimp_insn): Delete.
1510
1511 2004-03-25  Roger Sayle  <roger@eyesopen.com>
1512
1513         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
1514         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
1515
1516 2004-03-25  Richard Henderson  <rth@redhat.com>
1517
1518         PR 11527
1519         * c-typeck.c (pop_init_level): Emit pending init elements earlier
1520         rather than later.
1521
1522 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1523
1524         * builtins.c (fold_builtin): Fix error in last change.
1525
1526 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
1527
1528         * config/mips/mips.h: Formatting fix.
1529
1530 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1531
1532         * builtins.def: Add ctype builtins.
1533         * doc/extend.texi: Likewise.
1534
1535 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1536
1537         * builtins.c (fold_builtin): Add new builtin optimizations for
1538         sqrt and/or cbrt.
1539         * fold-const.c (fold): Likewise.
1540
1541 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
1542
1543         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
1544         (rs6000_sched_groups): New variable.
1545         (processor_target_table): Add power5.
1546         (rs6000_override_options): Set rs6000_sched_insert_nops,
1547         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
1548         from rs6000_sched_groups.
1549         (output_cbranch): Use rs6000_always_hint.
1550         (rs6000_variable_issue): Use rs6000_sched_groups.
1551         (rs6000_adjust_cost): Add CPU_POWER5.
1552         (is_microcoded_insn): Use rs6000_sched_groups.
1553         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
1554         Return 2 for POWER5 cracked instructions.
1555         (is_cracked_insn): Use rs6000_sched_groups.
1556         (is_branch_slot_insn): Use rs6000_sched_groups.
1557         (rs6000_issue_rate): Add CPU_POWER5.
1558         (rs6000_sched_finish): Use rs6000_sched_groups.
1559         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
1560         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
1561         (DEFAULT_SCHED_COSTLY_DEP): Delete.
1562         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
1563         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
1564         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
1565         * config/rs6000/power5.md: New file.
1566         * doc/invoke.texi: Add power5 option.
1567
1568 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
1569
1570         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
1571         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
1572         * doc/invoke.texi: Fix a typo.
1573
1574 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
1575
1576         PR optimization/9707.
1577         * stmt.c (emit_case_nodes): Emit equality comparisons instead
1578         of recursing if both children are single-valued cases with no
1579         children.
1580
1581 2004-03-25  Paul Brook  <paul@codesourcery.com>
1582
1583         * config/arm/arm.c (vfp_print_multi): Remove.
1584         (arm_output_fldmx): New function.
1585         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
1586         (arm_expand_prologue): Update to match.
1587         (arm_get_vfp_saved_size): New Function.
1588         (arm_get_frame_offsets): Use it.
1589         (arm_output_epilogue): Use new functions.
1590
1591 2004-03-24  Richard Henderson  <rth@redhat.com>
1592
1593         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
1594         (reg_known_value, reg_known_value_size): Likewise; make static.
1595         (reg_known_equiv_p): Make static.
1596         (clear_reg_alias_info): Update for new indexing.
1597         (get_reg_known_value, set_reg_known_value): New.
1598         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
1599         (canon_rtx): Use them.
1600         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
1601         Don't play queer offsetting games with reg_known_value and
1602         reg_known_equiv_p.
1603         (end_alias_analysis): Free reg_known_value with gc.
1604         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
1605         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
1606         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
1607         functions instead.
1608
1609 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
1610
1611         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
1612         config/i386/mmintrin.h: Update copyright.
1613
1614 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
1615
1616         * configure.ac: Add --enable-werror-always (for top level bootstrap
1617         support).
1618         * configure: Regenerate.
1619
1620 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
1621
1622         * objc/objc-act.c (objc_comptypes): Treat comparisons
1623         between 'Class' and '<class> *' as explicitly invalid.
1624
1625 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
1626
1627         * doc/invoke.texi (-frename-registers: Add enabled at -O3.
1628         (-fprofile-values): Add enabled with profile-{generate,use}.
1629         (-fvpt): Same.
1630         (-ftracer): Add enabled with profile-use.
1631         (-funit-at-a-time): Add enabled at -O2,-O3.
1632         (-funroll-loops): Add enabled with profile-use.
1633         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
1634         (max-gcse-passes): Mention default.
1635         (max-cse-path-length): Mention default.
1636
1637 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
1638
1639         * Makefile.in (STRICT2_WARN): Reorder.
1640         * configure.ac: Check for -Wold-style-definition, and use it
1641         in strict1_warn if it's available.
1642         * configure: Regnerate.
1643
1644 2004-03-24  Paul Brook  <paul@nowt.org>
1645
1646         * config.gcc <arm>: Add --with-abi=
1647         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
1648         thumb_far_jump_used): Remove prototypes.
1649         (arm_needs_doubleword_align): Add prototype.
1650         (thumb_compute_initial_elimination_offset): Ditto.
1651         * config/arm/arm.c (arm_get_frame_offsets): New function.
1652         (use_return_insn, output_return_instruction, arm_output_epilogue,
1653         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
1654         arm_expand_prologue, thumb_expand_epilogue): Use it.
1655         (arm_abi, target_abi_name, all_arm_abis): New variables.
1656         (arm_override_options): Set them.  Set structure padding for AAPCS.
1657         (arm_return_in_memory): Update ABI check.
1658         (arm_init_cumulative_args): Initialize can_split.
1659         (arm_needs_doubleword_align): New function.
1660         (arm_function_arg): Don't split args after pushing to stack. Handle
1661         doubleword/even reg alignment.
1662         (arm_va_arg): Handle all doubleword aligned args.
1663         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
1664         on ABI, not CPU.
1665         (arm_compute_save_reg0_reg12_mask): Fix comment.
1666         (thumb_get_frame_size, thumb_get_frame_size): Remove.
1667         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
1668         value for alignment.
1669         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
1670         to match.
1671         (thumb_compute_initial_elimination_offset): New function.
1672         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
1673         unneccessary rounding.
1674         * config/arm/arm.h (target_abi_name): Declare.
1675         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
1676         arm_abi_type, ARM_DEFAULT_ABI): Define.
1677         (ARM_FLAG_ATPCS): Remove.
1678         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
1679         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
1680         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
1681         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
1682         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
1683         Contitionalize on ABI, not CPU.
1684         (struct arm_stack_offsets): Define.
1685         (struct machine_function): Add stack_offsets.  Remove frame_size.
1686         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
1687         pushed.
1688         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
1689         doubleword alignment.
1690         (THUMB_INITIAL_ELIMINATION_OFFSET,
1691         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
1692         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
1693         * config/arm/arm.md (align_8): Enable for all targets.
1694         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
1695         (ARM_DEFAULT_ABI): Define.
1696         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
1697         -mstructure-size-boundary.
1698
1699 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
1700
1701         * configure.ac: Check for -Wno-variadic-macros; don't use
1702         -pedantic (in stage 1 or a simple 'make all') unless it's available,
1703         and if it's available, use it.  Also, clean up check for
1704         -Wno-long-long.
1705         * configure: Regenerate.
1706
1707 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
1708
1709         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
1710         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
1711         (MULTILIB_DEFAULTS): Use it.
1712         (MIPS_CPU_STRING_DEFAULT): Remove.
1713         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
1714         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
1715         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
1716         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
1717         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
1718         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
1719         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
1720         accordingly.
1721
1722 2004-03-24  DJ Delorie  <dj@redhat.com>
1723             Richard Sandiford  <rsandifo@redhat.com>
1724
1725         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
1726         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
1727         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
1728         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
1729         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
1730         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
1731         if TARGET_FIX_VR4122.
1732         * config/mips/mips.md (define_attr length): Account for nops inserted
1733         after macc and dmult when using -mfix-vr4122-bugs.
1734         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
1735         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
1736         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
1737         * config/mips/vr4122-div.S: New file.
1738         * doc/invoke.texi: Document -mfix-vr4122-bugs.
1739
1740 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
1741
1742         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
1743         (TARGET_MIPS4130): New macro.
1744         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
1745         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
1746         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
1747         with PROCESSOR_R4130.
1748         * config/mips/mips.md (define_attr cpu): Add r4130.
1749         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
1750
1751 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
1752             Richard Sandiford  <rsandifo@redhat.com>
1753
1754         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
1755
1756 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
1757
1758         PR preprocessor/14438
1759         * cpplib.c (do_pragma): Remove line_change call after pragma
1760         handler.
1761
1762 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
1763
1764         * doc/extend.texi (ARM Built-in Functions): Replace with correct
1765         declarations.
1766
1767 2004-03-23  Roger Sayle  <roger@eyesopen.com>
1768
1769         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
1770         if flag_unsafe_math_optimizations.
1771         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
1772         and TARGET_80387 expand using truncdfsf2_noop pattern.
1773         (truncxfsf2): Likewise using truncxfsf2_noop.
1774         (truncxfdf2): Likewise using truncxfdf2_noop.
1775         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
1776
1777 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
1778
1779         * hooks.c (hook_constcharptr_tree_null): New hook.
1780         * hooks.h (hook_constcharptr_tree_null): New prototype.
1781         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
1782         * target.h (mangle_fundamental_type): New target hook.
1783         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
1784         target hook at rs6000_mangle_fundamental_type.
1785         (rs6000_mangle_fundamental_type): New function.
1786         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
1787
1788 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
1789
1790         PR 12267, 12391, 12560, 13129, 14114, 14133
1791         * c-tree.h: Forward declare struct c_binding.  Declare
1792         c_override_bindings_to_false.  Update prototypes.
1793         (struct lang_identifier): Update comments.  Change fields to be
1794         struct c_binding *.
1795         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
1796         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
1797         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
1798         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
1799         * c-common.h: Update prototypes.
1800         * c-decl.c (struct c_scope): Update commentary.  Remove names,
1801         names_last, parms, parms_last, tags, and shadowed fields.  Add
1802         bindings and depth fields.
1803         (scope_freelist): Move to more appropriate location.
1804         (c_print_identifier): Update for changes to struct lang_identifier.
1805         (objc_mark_locals_volatile): Update for new bindings structures.
1806         (global_bindings_p): Honor c_override_global_bindings_to_false.
1807         (pushlevel): Rename to push_scope; take no arguments; use the
1808         scope_freelist; initialize scope->depth and check for overflow.
1809         (poplevel): Rename to pop_scope; totally rewritten for new bindings
1810         structures.
1811         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
1812         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
1813         Improve some commentary.  Adjust handling of forward parm decls.
1814         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
1815         Preserve C_DECL_IN_EXTERNAL_SCOPE.
1816         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
1817         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
1818         decls.  Rewrite for new bindings structures.  Improve commentary.
1819         Eliminate the copy_node call.
1820         (implicit_decl_warning): Use the "diag" idiom (as seen in
1821         locate_old_decl) to reduce code duplication; call locate_old_decl
1822         if appropriate.  Relocate to remove need for forward declaration.
1823         (implicitly_declare): Adjust for new bindings structures.  Kludge
1824         around Objective-C not-really-builtin functions.
1825         (undeclared_variable): Improve diagnostics.  If current_function_decl
1826         is nonnull but current_function_scope is null, use current_scope.
1827         Use bind.
1828         (lookup_tag): Adjust for new bindings structures.  Kludge around
1829         Objective-C's tag declarations that wind up in the external scope.
1830         (lookup_name): Adjust for new bindings structures.  Kludge around
1831         c-common.c's pseudo-typedefs that wind up in the external scope.
1832         (lookup_name_current_level): Rename lookup_name_in_scope; take a
1833         second argument indicating the scope to examine; rewrite for
1834         new bindings structures.
1835         (c_init_decl_processing): Adjust for renamed functions.  Do not
1836         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
1837         First scope pushed is the external scope, not the global scope.
1838         (builtin_function): Use bind, not pushdecl.  Adjust other bits
1839         for new data structures.  Keep track of builtins that should be
1840         made visible automatically.
1841         (start_decl): Adjust diagnostics.  Remove unnecessary call to
1842         expand_decl.
1843         (grokparms): Return 0 if arg_types is error_mark_node.
1844         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
1845         reversed sense.  Rewrite for new bindings structures.  Do not
1846         leave any decls in the scope, to prevent pop_scope from doing
1847         contradictory things with them.
1848         (finish_struct, finish_enum): Remove redundant diagnostics.
1849         (build_enumerator): Don't cascade diagnostics for error_mark_node.
1850         Mark location where -pedantic changes the meaning of the program.
1851         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
1852         parameter decls into the function's scope structure using bind.
1853         Warn here about function definitions in the wrong style.
1854         Adjust diagnostics.
1855         (store_parm_decls): Correct the determination of whether a
1856         function was defined with a prototype.
1857         (c_write_global_declarations): Operate on all file decls and on
1858         the external scope.  Split body of the loop to...
1859         (c_write_global_declarations_1): ... this new function, to avoid
1860         code duplication.
1861         (truly_local_externals, first_builtin_decl, last_builtin_decl)
1862         (make_scope, pop_scope, in_parm_level_p, set_block)
1863         (any_external_decl, record_external_decl, bind_label, getdecls)
1864         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
1865         (c_reset_state): Delete.
1866         (visible_builtins, c_override_global_bindings_to_false)
1867         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
1868         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
1869         (external_scope, binding_freelist, bind, free_binding_and_advance)
1870         (push_file_scope, pop_file_scope): New.
1871         (pushtag, pushdecl_top_level, lookup_label, declare_label)
1872         (define_label, c_make_fname_decl, finish_decl)
1873         (mark_forward_parm_decls, build_compound_literal)
1874         (grokdeclarator, start_function, check_for_loop_decls)
1875         (identifier_global_value, record_builtin_type): Minor adjustments
1876         for new bindings structures.  Improve diagnostics and commentary.
1877         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
1878         pushlevel/poplevel respectively.
1879         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
1880         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
1881         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
1882         correct loop over multiple translation units; call fatal_error if
1883         requested to compile more than one file at once.  (This disables
1884         IMA temporarily - an up-front error being preferable to a crash.)
1885         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
1886         (all actions): Adjust calls to pushlevel/poplevel.
1887         (parsing_iso_function_signature): Delete.
1888         (extdef_1): Fold into extdef.
1889         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
1890         warn here about function definitions in the wrong style.
1891         (after_tyle_declarator, parm_declarator_starttypename)
1892         (parm_declarator_nostarttypename, notype_declarator): Remove
1893         commented-out productions.
1894         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
1895         an empty TREE_LIST node.  Adjust calls to get_parm_info.
1896         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
1897         to suppress -Wold-style-definition after this error.
1898         (c_parse_file): Don't clear the binding stack or call
1899         finish_fname_decls here.  Correct comment.
1900         * c-typeck.c (same_translation_unit_p): Export.
1901         (common_type): Use c_override_global_bindings_to_false, not
1902         pushlevel/poplevel/declare_parm_level.
1903         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
1904         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
1905         and LANG_HOOKS_GETDECLS with do-nothing stubs.
1906         * objc/objc-lang.c: Likewise.
1907         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
1908         get_parm_info.
1909         (OBJC_VOID_AT_END): Delete; replace all uses
1910         with void_list_node.
1911         (generate_forward_declaration_to_string_table): Delete.
1912         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
1913
1914         * coverage.c (create_coverage): Don't pushdecl anything.
1915         * langhooks.c (lhd_clear_binding_stack): Call
1916         lang_hooks.decls.poplevel, not poplevel.
1917         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
1918         circular list rather than going into an infinite loop.
1919
1920 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
1921
1922         * optabs.c (expand_binop): When synthesizing double word rotates
1923         from single word shifts, use a new register target if the provided
1924         target is not a REG already.
1925
1926 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1927
1928         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
1929         * c-common.c (handle_mode_attribute): Add extra arg to
1930         build_pointer_type_for_mode and build_reference_type_for_mode.
1931         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
1932         for INTEGER_CST.
1933         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
1934         Chain pointers via TYPE_NEXT_PTR_TO.
1935         (build_reference_type_for_mode): Similarly.
1936         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
1937         and build_reference_type_for_mode.
1938         (tree_check4_failed): New function.
1939         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
1940         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
1941         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
1942         Add check.
1943
1944 2004-03-23  Roger Sayle  <roger@eyesopen.com>
1945
1946         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
1947         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
1948         when both A and B are nonnegative.
1949         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
1950         nonzero.
1951
1952 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
1953
1954         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
1955         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
1956
1957 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
1958
1959         PR optimization/14669
1960         * fold-const.c (fold): Only unwiden integer comparisons for equality
1961         and inequality operators, or when the signedness doesn't change.
1962
1963 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
1964
1965         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
1966         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
1967         * config/sparc/t-linux: New file.
1968
1969 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
1970
1971         * gcse.c (can_assign_to_reg_p): New function, split out from...
1972         (want_to_gcse_p): ...here.
1973         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
1974         the rhs of a store.
1975
1976 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
1977
1978         * c-typeck.c (same_translation_unit_p): Fix pasto.
1979
1980 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
1981
1982         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
1983         (PARAM_MAX_SCHED_REGION_INSNS): New.
1984         * sched-rgn.c: Include params.h
1985         (MAX_RGN_BLOCKS): Delete.
1986         (MAX_RGN_INSNS): Delete.
1987         (too_large): Return bool.  Convert to PARAM_VALUE.
1988         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
1989         * doc/invoke.texi (param): Document max-sched-region-blocks and
1990         max-sched-region-insns.
1991
1992 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
1993
1994         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
1995         for base types.
1996
1997 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
1998
1999         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
2000         change.
2001
2002 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
2003
2004         PR c/14069
2005         * c-decl.c (finish_struct): Change type of incorrect flexible array
2006         field into error_mark_node.
2007
2008 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
2009
2010         PR target/14580
2011         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
2012         who are not local for Darwin PIC.
2013
2014 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
2015
2016         * regrename.c (regrename_optimize): Set regs_ever_live for all
2017         registers introduced as replacement.
2018
2019 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
2020
2021         PR middle-end/14470
2022         * expr.c (mark_queue): New function.
2023         (emit_insns_enqueued_after_mark): New function replacing
2024         emit_queue.  Clear the body of emitted queued insns.
2025         (emit_queue): Call emit_insns_enqueued_after_mark.
2026         (store_expr): Mark the increment queue on entry.  Emit
2027         only the incrementations queued when expanding the source.
2028
2029 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
2030
2031         * configure.ac: Allow --disable-coverage-flags (for the future benefit
2032         of top level bootstrap, and consistency).  Reindent.
2033         * configure: Regenerate.
2034
2035 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
2036
2037         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
2038         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
2039         unnecessary casts.
2040
2041 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
2042
2043         PR target/14291
2044         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
2045         __MINGW32__.
2046
2047 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
2048
2049         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
2050         to nonimmediate_operand.
2051         ("*doloop_di"): Likewise.
2052
2053 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
2054
2055         * real.h (struct real_value): Use the same type for all
2056         bitfields.  Rename exp to uexp.
2057         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
2058         Adjust all uses of exp...
2059         * builtins.c: ... here, ...
2060         * emit-rtl.c: ... here, and ...
2061         * real.c: ... and here.
2062
2063 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2064
2065         * pretty-print.c (pp_base_maybe_space): New function.
2066         * pretty-print.h (pp_base_maybe_space): Declare.
2067         (pp_maybe_space): New macro.
2068
2069 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
2070
2071         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
2072
2073 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
2074
2075         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
2076         of using register multiplication cost.
2077         (expand_mult): Adapt choose_mult_variant call.
2078         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
2079         of MODE; pass appropriate cost bound.  Adjust result when
2080         performing signed multiplication by a negative constant.
2081         Don't use intermediate modes larger than word_mode.
2082
2083 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2084
2085         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
2086         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
2087         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
2088         * explow.c (expr_size): Likewise.
2089         * expr.h (placeholder_list, find_placeholder): Deleted.
2090         * expr.c (store_constructor): Likewise.
2091         (get_inner_reference): Likewise.  Also don't call find_placeholder.
2092         (placeholder_list, find_placeholder): Deleted.
2093         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
2094         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
2095         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
2096         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
2097         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
2098         Likewise.
2099         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
2100         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
2101         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
2102         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
2103         Clean up by using first_rtl_op.
2104         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
2105         (substitute_placeholder_in_expr): New function.
2106         * tree.def (WITH_RECORD_EXPR): Deleted.
2107         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
2108         (substitute_placeholder_in_expr): New.
2109
2110 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
2111
2112         * dojump.c (prefer_and_bit_test): Fix which part of
2113         the and_test is replaced.
2114
2115 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
2116
2117         * frontends.texi: Add missing line.
2118
2119 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
2120             Chris Devers  <cdevers@pobox.com>
2121             Joseph S. Myers  <jsm@polyomino.org.uk>
2122
2123         * doc/frontends.texi: Rewrite.
2124         * doc/gcc.texi: Update last modification date.
2125
2126 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
2127
2128         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
2129         message before redirecting the edge.
2130
2131 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2132
2133         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
2134         flag.
2135         * explow.c (force_not_mem): Set REG_POINTER flag according to
2136         MEM_POINTER one.
2137         * rtl.h (MEM_POINTER): New macro.
2138         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
2139         for MEM_POINTER.
2140
2141 2004-03-20  Roger Sayle  <roger@eyesopen.com>
2142
2143         PR target/13889
2144         * cse.c (fold_rtx): Avoid substituting constants into unary
2145         conversion operations.
2146
2147 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2148
2149         * fold-const.c (fold): Replace "expr" with "t".
2150
2151 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
2152
2153         PR c/12373
2154         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
2155         DECL_ORIGINAL_TYPE if there isn't one.
2156
2157 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2158
2159         * fold-const.c (fold): Replace "final_type" with "type".
2160         Remove variable "final_type".
2161
2162 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2163
2164         * fold-const.c (fold): Constify "type".
2165         Replace "TREE_TYPE (t)" with "type".
2166
2167 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2168
2169         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
2170         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
2171         via (*targetm.foo) () with targetm.foo ().
2172
2173 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
2174
2175         PR other/14630
2176         * doc/install.texi: Add info directory category and entry.
2177
2178 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2179
2180         * fold-const.c (fold): Replace "t" with "tem" where it is used
2181         as a temporary variable.  Remove "orig_t" and all of its uses.
2182
2183 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2184
2185         * fold-const.c (fold): Remove variable "invert".
2186         Move the handling of relational expressions that can be folded
2187         to a constant ...
2188         (fold_relational_const): ... here.
2189         (tree_expr_nonzero_p): New.
2190
2191 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
2192
2193         PR c/14635
2194         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
2195         DEF_GCC_BUILTIN.
2196
2197 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
2198
2199         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
2200         (GTFILES): Add $(srcdir)/dojump.h.
2201         (gt-dojump.h): New dependency.
2202         * dojump.c (and_reg, and_test, shift_test): New static variables.
2203         (prefer_and_bit_test): New function.
2204         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
2205
2206 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2207
2208         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
2209         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
2210         reorg.c, tree.h: Fix comment typos.
2211
2212 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
2213
2214         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
2215         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
2216         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
2217         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
2218         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
2219         vmsdbgout.c: Replace calls via (*targetm.foo) () with
2220         targetm.foo ().
2221
2222 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
2223
2224         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
2225         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
2226         always_inline attribute.
2227         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
2228         Treat expansion as completed even if literal argument is
2229         invalid (so that other expansions are not tried in vain).
2230
2231 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
2232
2233         * loop-doloop.c (add_test): Replace GEN_INT (0) with
2234         const0_rtx.
2235
2236 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
2237
2238         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
2239         ...
2240         (fold_abs_const): ... here.
2241
2242 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2243
2244         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
2245
2246 2004-03-19  Denis Chertykov  <denisc@overta.ru>
2247
2248         PR target/11520
2249         * config/avr/avr.md ("call_insn"): Handle explicit integer
2250         specially.
2251         (call_value_insn): Likewise.
2252
2253 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2254
2255         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
2256
2257 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
2258
2259         * fold-const.c (negate_expr): Move the handling of constants
2260         ...
2261         (fold_negate_const): ... here.
2262
2263 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2264
2265         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
2266         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
2267         * tree.c (debug_no_type_hash): Deleted.
2268         (type_hash_canon): Abort if passed a variant.
2269         Check lang_hooks.types.hash_types.
2270         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
2271         (build_array_type): Remove unnecessary allocation of pointer type.
2272         (build_complex_type): Properly qualify resulting type.
2273
2274 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
2275
2276         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
2277
2278 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
2279
2280         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
2281         (expand_mult): ...here.
2282         (extract_high_half): New, split out from expand_mult_highpart.
2283         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
2284         (expand_highpart): Evaluate the cost of a shift/add sequence,
2285         then see if any of the specialized optabs are cheaper.
2286
2287 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
2288
2289         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
2290
2291 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2292
2293         * convert.c (convert_to_real): Add more math builtins.
2294
2295 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2296
2297         * convert.c (convert_to_real): Reformat using switch stmt.
2298
2299 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
2300
2301         * c-common.c (pointer_int_sum): Do not complain about using
2302         pointers to pointers-to-members.
2303
2304 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
2305
2306         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
2307         have moved to the target hooks structure".
2308
2309 2004-03-18  James E Wilson  <wilson@specifixinc.com>
2310
2311         * config/mips/mips.md (type): Split move into arith and fmove.  Split
2312         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
2313         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
2314         Likewise.
2315         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
2316         Likewise.
2317         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
2318         rm7_fp_quick): Likewise.
2319         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
2320         rm9k_fquick): Likewise.
2321         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
2322         Likewise.
2323         (ir_sr70_icmp): Delete.
2324
2325 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2326
2327         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
2328         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
2329         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
2330         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
2331         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
2332         Protect with proper check.
2333         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
2334         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
2335         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
2336         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
2337         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
2338         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
2339         not TYPE_FIELDS.
2340         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
2341
2342 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
2343
2344         * gcse.c (eliminate_partially_redundant_loads): Reject change if
2345         dest is set between beginning and current insn.
2346
2347 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
2348
2349         * c-decl.c (grokdeclarator): Do not complain about redeclaring
2350         visible "static" identifiers "extern" in a local scope.
2351         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
2352         post-increments/decrements.
2353
2354 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
2355
2356         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
2357         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
2358         (xtensa_va_start): Remove assignment to current_function_arg_words.
2359
2360 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
2361
2362         * alias.c (record_set): Detect the case where a register is assigned
2363         a new value that has the same base term as the old one.
2364
2365 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2366
2367         * doloop.c: Removed.
2368         * loop-doloop.c: New file.
2369         * Makefile.in (doloop.o): Remove.
2370         (loop-doloop.o): New.
2371         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
2372         * cfgloopanal.c (get_loop_level): New function.
2373         * loop-iv.c (iv_number_of_iterations): Handle case when loop
2374         is leaved immediatelly.
2375         * loop.c (strength_reduce): Do not call doloop optimization.
2376         * loop.h (LOOP_BCT): Removed.
2377         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
2378         (rest_of_handle_loop2): Call doloop_optimize_loops.
2379         (rest_of_compilation): Test for optimizations moved to
2380         rest_of_handle_loop2.
2381
2382 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
2383
2384         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
2385         for mixed mode.
2386         (rs6000_emit_prologue): Ditto.
2387         (rs6000_emit_epilogue): Ditto.
2388         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
2389         macro for mixed mode.
2390
2391 2004-03-18  Jan Hubicka  <jh@suse.cz>
2392
2393         * predict.c (propagate_freq): Compute correctly frequency of
2394         EXIT_BLOCK.
2395
2396 2004-03-17  Eric Christopher  <echristo@redhat.com>
2397
2398         * builtins.c (apply_args_size): Use reg_raw_mode.
2399         (apply_result_size): Ditto.
2400
2401 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
2402
2403         PR target/14620
2404         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
2405
2406 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
2407
2408         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
2409         32-bit builds when defaulting to 32-bit.
2410
2411 2004-03-17  Jan Hubicka  <jh@suse.cz>
2412
2413         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
2414         array.
2415
2416 2004-03-17  James E Wilson  <wilson@specifixinc.com>
2417
2418         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
2419         (hazard_nop): Change type to nop.
2420         (type): Split arith into arith, shift, slt, clz.  Delete darith.
2421         Fix all uses.  Change arith to multi if more than one insn emitted.
2422         * config/mips/5400.md (ir_vr54_arith): Likewise.
2423         * config/mips/5500.md (ir_vr55_arith): Likewise.
2424         * config/mips/7000.md (rm7_int_other): Likewise.
2425         * config/mips/9000.md (rm9k_int): Likewise.
2426         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
2427
2428 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
2429
2430         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
2431         to hold the subtype tree instead of recomputing it several times.
2432
2433 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
2434
2435         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
2436         CC_INVERT.
2437         * config/mn10300/mn10300.md (cc): Remove "invert".
2438
2439 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2440
2441         * builtins.c (integer_valued_real_p): Add builtin rint.
2442         (fold_builtin): Likewise.
2443         * convert.c (convert_to_real): Likewise.
2444
2445         * convert.c (convert_to_real): Fix typos in `long double'
2446         builtins.
2447
2448 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
2449
2450         PR c++/14481
2451         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
2452         generated COMPOUND_EXPRs.
2453
2454 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
2455
2456         * config/h8300/t-rtems (h8300-*-rtems*): New.
2457
2458 2004-03-16  Eric Christopher  <echristo@redhat.com>
2459
2460         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
2461
2462 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
2463
2464         * config/i386/i386-protos.h: Add a prototype for
2465         ix86_reverse_condition.
2466         * config/i386/i386.c (ix86_reverse_condition): New.
2467         * config/i386/i386.h (REVERSE_CONDITION): Use
2468         ix86_reverse_condition.
2469         * config/i386/i386.md: Use ix86_reverse_condition instead of
2470         REVERSE_CONDITION.
2471
2472 2004-03-16  J. Brobecker  <brobecker@gnat.com>
2473
2474         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
2475
2476 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
2477
2478         PR bootstrap/12974
2479         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
2480
2481 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
2482
2483         * c-common.c (c_common_type_for_mode): Build vector types on
2484         demand.
2485         (handle_mode_attribute): Deprecate using the mode attribute
2486         to create vector types.  Fix indentation.
2487         (vector_type_node_list): Remove.
2488         (handle_vector_size_attribute): Create vector types on demand.
2489         Strip a NON_LVALUE_EXPR from the attribute if there is one.
2490         * c-typeck.c (comptypes): Make vector types compatible if they
2491         have the same underlying mode.
2492         (convert_for_assignment): Use comptypes to convert between
2493         vector types.
2494         * tree.c (build_common_tree_nodes_2): Do not create vector types.
2495         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
2496         vector types.
2497         * tree.h: Remove vector types.
2498         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
2499         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
2500         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
2501         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
2502         * doc/extend.texi (Vector Types): Document how to use the
2503         vector_size attribute to create vectors, rather than mode.
2504
2505         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
2506         * config/i386/emmintrin.h: Likewise.
2507         * config/i386/mmintrin.h: Likewise.
2508         * config/i386/xmmintrin.h: Likewise.
2509         * config/sh/ushmedia.h: Likewise.
2510
2511 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
2512
2513         * config/freebsd-spec.h, config/arc/arc-protos.h,
2514         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
2515         config/arm/linux-gas.h, config/arm/semi.h,
2516         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
2517         config/ia64/freebsd.h, config/mips/7000.md,
2518         config/mips/9000.md, config/ns32k/ns32k-protos.h,
2519         config/sparc/pbd.h: Update copyright.
2520
2521 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
2522
2523         PR target/14577
2524         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
2525
2526 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
2527
2528         * combine.c (combine_simplify_rtx): Remove the "last"
2529         parameter and its documentation.  Adjust recursive calls.
2530         (simplify_logical): Always perform the only simplification
2531         controlled by "last", if the simplified expression is
2532         actually different.
2533         (try_combine): Do not pass the "last" parameter to
2534         combine_simplify_rtx.
2535
2536 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
2537
2538         PR target/14599
2539         * config/mips/mips.md (UNSPEC_GP): New constant.
2540         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
2541         an UNSPEC instead of (reg $gp).
2542         (mips16_gp_pseudo_reg): Change accordingly.
2543         (print_operand): Print $gp directly when handling CONST_GP_P.
2544
2545 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
2546
2547         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
2548         * longlong.h: Make code 68060 clean when compiling for m68060.
2549
2550 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
2551
2552         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
2553         * doc/md.texi: Clarify description of "i" constraint.
2554
2555 2004-03-15  James E Wilson  <wilson@specifixinc.com>
2556
2557         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
2558         Split store into store, fpstore, fpidxstore.  Fix all uses.
2559         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
2560         Likewise.
2561         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
2562         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
2563         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
2564         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
2565         ir_sr70_fstore): Likewise.
2566
2567 2004-03-15  Richard Henderson  <rth@redhat.com>
2568
2569         PR middle-end/14535
2570         * except.c (collect_one_action_chain): Record action for cleanup
2571         outer of exception spec.
2572
2573 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
2574
2575         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
2576         Fix the check for abort and only do the mmap if we can.
2577
2578 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
2579
2580         * config/sparc/sparc.h: Rework comments about the code model
2581         in 64-bit environment and the mode 'Pmode'.
2582         * doc/invoke.texi (SPARC options): Rework description of the
2583         different code models supported in 64-bit environment.
2584
2585 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
2586
2587         * defaults.h (REVERSIBLE_CC_MODE): Define.
2588         * jump.c (reversed_comparison_code_parts): Don't check if
2589         REVERSIBLE_CC_MODE is defined.
2590
2591 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
2592
2593         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
2594         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
2595         hosthooks.h, params.h, ra-colorize.c, web.c,
2596         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
2597         config/avr/avr-protos.h, config/avr/avr.md,
2598         config/fr30/fr30-protos.h, config/fr30/fr30.md,
2599         config/h8300/fixunssfsi.c, config/i386/darwin.h,
2600         config/i386/freebsd.h, config/i386/freebsd64.h,
2601         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
2602         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
2603         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
2604         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
2605         config/pa/pa64-regs.h, config/rs6000/aix41.h,
2606         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
2607         config/sparc/aout.h, config/sparc/freebsd.h,
2608         config/sparc/litecoff.h, config/vax/vax-protos.h,
2609         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
2610         copyright.
2611
2612 2004-03-15  Paul Brook  <paul@codesourcery.com>
2613
2614         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
2615
2616 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2617
2618         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
2619         (pp_c_cv_qualifier): Document.
2620         (pp_c_space_for_pointer_operator): Likewise.
2621         (pp_c_integer_constant): Likewise.
2622         (pp_c_identifier): Likewise.
2623         (pp_c_init_declarator): Don't print function body.
2624
2625 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
2626
2627         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
2628         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
2629         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
2630         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
2631         wording and grammar.
2632
2633 2004-03-14  Roger Sayle  <roger@eyesopen.com>
2634
2635         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
2636         with lang_hooks.foo ().
2637         * builtins.c (expand_builtin_va_arg): Likewise.
2638         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
2639         c_common_type_for_mode, c_common_nodes_and_builtins,
2640         handle_mode_attribute, handle_vector_size_attribute): Likewise.
2641         * c-convert.c (convert): Likewise.
2642         * c-format.c (check_format_types): Likewise.
2643         * c-objc-common.c (c_tree_printer): Likewise.
2644         * c-typeck.c (build_unary_op, build_conditional_expr,
2645         build_binary_op): Likewise.
2646         * calls.c (try_to_integrate, expand_call,
2647         emit_library_call_value_1): Likewise.
2648         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
2649         Likewise.
2650         * cgraphunit.c (record_call_1, cgraph_analyze_function,
2651         cgraph_expand_function): Likewise.
2652         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
2653         * coverage.c (build_fn_info_type, build_ctr_info_type,
2654         build_gcov_info, create_coverage): Likewise.
2655         * dbxout.c (dbxout_init): Likewise.
2656         * diagnostic.c (diagnostic_report_current_function): Likewise.
2657         * dojump.c (do_jump): Likewise.
2658         * dwarf2out.c (dwarf2_name): Likewise.
2659         * except.c (init_eh): Likewise.
2660         * explow.c (expr_size, int_expr_size): Likewise.
2661         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
2662         Likewise.
2663         * expr.c (store_expr, store_constructor, safe_from_p,
2664         expand_expr_real, do_store_flag, try_casesi): Likewise.
2665         * function.c (push_function_context_to, pop_function_context_from,
2666         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
2667         put_var_into_stack, allocate_struct_function, current_function_name):
2668         Likewise.
2669         * integrate.c (copy_decl_for_inlining, expand_inline_function):
2670         Likewise.
2671         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
2672         lhd_print_error_function): Likewise.
2673         * opts.c (handle_option, decode_options): Likewise.
2674         * passes.c (open_dump_file): Likewise.
2675         * print-tree.c (print_node): Likewise.
2676         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
2677         expand_decl_cleanup, emit_case_nodes): Likewise.
2678         * stor-layout.c (variable_size): Likewise.
2679         * toplev.c (announce_function, wrapup_global_declarations,
2680         check_global_declarations, compile_file, default_tree_printer,
2681         process_options, lang_dependent_init, finalize): Likewise.
2682         * tree-dump.c (dequeue_and_dump): Likewise.
2683         * tree-inline.c (remap_decl, remap_block, copy_body_r,
2684         initialize_inlined_parameters, declare_return_variable,
2685         inlinable_function_p, expand_call_inline, optimize_inline_calls,
2686         walk_tree, copy_tree_r): Likewise.
2687         * tree-optimize.c (tree_rest_of_compilation): Likewise.
2688         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
2689         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
2690         variably_modified_type_p, dump_tree_statistics): Likewise.
2691         * varasm.c (assemble_variable, compare_constant, copy_constant,
2692         force_const_mem, compute_reloc_for_constant, output_constant,
2693         output_addressed_constants, initializer_constant_valid_p): Likewise.
2694
2695 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
2696
2697         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
2698
2699 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
2700
2701         * doc/install.texi: Reflect autoconf and automake version for
2702         libffi. Update autoconf version to 2.59.
2703
2704 2004-03-13  Roger Sayle  <roger@eyesopen.com>
2705
2706         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
2707         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
2708         make_range, build_range_check, fold_range_test, unextend,
2709         constant_boolean_node, fold_binary_op_with_conditional_arg,
2710         fold_truthop, fold_mathfn_compare, fold_inf_compare,
2711         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
2712         with lang_hooks.foo ().
2713
2714 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
2715
2716         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
2717
2718 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
2719
2720         * doc/install.texi: Note status of -fnew-ra.
2721
2722 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
2723
2724         PR middle-end/14470
2725         * expr.c (store_expr): Call emit_queue before generating the move
2726         from the temporary to the original target.  Protect the temporary
2727         from emit_queue.
2728
2729 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
2730
2731         PR target/14533
2732         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
2733         other than UNSPEC_GOTOFF.
2734
2735 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
2736
2737         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
2738         to arm_legitimate_index_p.  Update all callers with SET as default
2739         value.
2740         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
2741         range if OUTER is a sign-extend operation on QImode.  Correctly
2742         reject shift operations on sign-extended QImode addresses.
2743         (bad_signed_byte_operand): Delete.
2744         (arm_extendqisi_mem_op): New function.
2745         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
2746         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
2747         constraints.
2748         (CONSTRAINT_LEN): New.
2749         (EXTRA_CONSTRAINT): Delete.  Replace with...
2750         (EXTRA_CONSTRAINT_STR): ... this.
2751         (PREDICATE_CODES): Remove bad_signed_byte_operand.
2752         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
2753         is now always default.
2754         (define_splits for bad sign-extend loads): Delete.
2755         (arm_extendqisi, arm_extendqisi_v5): Likewise.
2756         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
2757         Rework 'U' constraint to 'Uv'.
2758         * arm-protos.h: Remove bad_signed_byte_operand.  Add
2759         arm_extendqisi_mem_op.
2760         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
2761         Add Uq constraint.
2762
2763 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
2764
2765         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
2766         with targetm version.
2767
2768         PR target/14567
2769         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
2770         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
2771         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
2772         Update all users of RS6000_ARG_SIZE.
2773         (function_arg_advance): Count fregno using mode size.
2774         (function_arg): Handle long double split over regs and memory.
2775         (function_arg_partial_nregs): Likewise.
2776         (rs6000_va_arg): Repackage complex args.
2777
2778 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
2779
2780         PR target/14047
2781         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
2782         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
2783         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
2784
2785 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
2786
2787         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
2788         prototype.
2789         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
2790         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
2791
2792 2003-03-12  Andrew Pinski  <apinski@apple.com>
2793
2794         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
2795         Use ret instead of result. Use addr instead of base.
2796
2797 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
2798
2799         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
2800         fixes required by libstdc++ and update installation instructions
2801         for libstdc++.a.
2802
2803 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
2804
2805         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
2806         leading '@' on fastcall symbols before stripping suffix.
2807
2808 2004-03-12  Roger Sayle  <roger@eyesopen.com>
2809
2810         * combine.c (unmentioned_reg_p): New function to check whether an
2811         expression is a "specialization" of another, i.e. that there are
2812         no registers or memory references mentioned in the first that don't
2813         appear in the second.
2814         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
2815         (combine_instructions): Also try combining instructions using the
2816         REG_EQUAL note from a preceding log-linked instruction.
2817
2818 2004-03-12  Roger Sayle  <roger@eyesopen.com>
2819
2820         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
2821
2822 2004-03-12  Matt Austern  <austern@apple.com>
2823
2824         * target.h (struct gcc_target): New target hook, unwind_label.
2825         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
2826         * output.h (default_emit_unwind_label): New function.
2827         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
2828         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
2829         (TARGET_SUPPORTS_HIDDEN): New target macro.
2830         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
2831         that corresponds to this FDE.
2832         (FRAME_BEGIN_LABEL): Allow target to override default label.
2833         (output_call_frame_info): If FDEs are linknonce, then use extra
2834         indirection for FDE encoding, output a label for each FDE, and
2835         output an empty label for each function without an FDE.
2836         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
2837         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
2838         decls with DECL_ONE_ONLY set, if that macro is defined.
2839         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
2840         for a SUPPORTS_ONE_ONLY target.
2841         * config/darwin-protos.h (darwin_unique_section): Declare.
2842         (darwin_asm_named_section): Likewise.
2843         (darwin_section_type_flags): Likewise.
2844         (darwin_non_lazy_pcrel): Likewise.
2845         (darwin_emit_unwind_label): Likewise.
2846         (darwin_make_decl_one_only): Likewise.
2847         * config/darwin.c (machopic_finish): Get rid of tweak that
2848         eliminate stubs for symbols that are defined.
2849         (darwin_encode_section_info): Don't treat weak functions as defined.
2850         (darwin_make_decl_one_only): Define.
2851         (darwin_asm_named_section): Likewise.
2852         (darwin_section_type_flags): Likewise.
2853         (darwin_unique_section): Likewise.
2854         (darwin_emit_unwind_label): Likewise.
2855         (darwin_non_lazy_pcrel): Likewise.
2856         (darwin_asm_output_dwarf_delta): Difference between two labels is
2857         local only if both labels are local.
2858         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
2859         (ASM_MAKE_LABEL_LINKONCE): Likewise.
2860         (TARGET_SUPPORTS_HIDDEN): Likewise.
2861         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
2862         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
2863         (FRAME_BEGIN_LABEL): Likewise.
2864         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
2865         (ASM_DECLARE_FUNCTION_NAME): Likewise.
2866         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
2867         (TARGET_ASM_UNIQUE_SECTION): Define.
2868         (EH_FRAME_SECTION_NAME): Define.
2869         (EH_FRAME_SECTION_ATTR): Likewise.
2870         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
2871         (TARGET_ASM_NAMED_SECTION): Likewise.
2872         (TARGET_SECTION_TYPE_FLAGS): Likewise.
2873         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
2874         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
2875         TARGET_ASM_EMIT_UNWIND_LABEL.
2876
2877 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2878
2879         * builtins.c (expand_builtin_mathfn): Add pow10* to the
2880         existing exp10* case.
2881         (expand_builtin): Likewise.
2882
2883 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
2884
2885         * doc/tm.texi (registers) <Values in Registers>: Add
2886         entry for REGMODE_NATURAL_SIZE.
2887
2888 2004-03-12  Richard Henderson  <rth@redhat.com>
2889
2890         PR target/14547
2891         * target.h (struct gcc_target): Move calls substructure before
2892         booleans.  Add split_complex_arg.
2893         * function.c (assign_parms, split_complex_args): Use it.
2894         * calls.c (expand_call): Likewise.
2895         (split_complex_values): Likewise.  Check for splittable types
2896         before allocating memory.
2897         (split_complex_types): Likewise.
2898         * system.h (SPLIT_COMPLEX_ARGS): Poison.
2899         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
2900         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
2901         * config/alpha/alpha.c (alpha_split_complex_arg): New.
2902         (TARGET_SPLIT_COMPLEX_ARG): New.
2903         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
2904         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
2905         (rs6000_override_options): Zap it for non-AIX.
2906         (rs6000_function_value): Use targetm.calls.split_complex_arg.
2907         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
2908         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
2909         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
2910         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
2911         SPLIT_COMPLEX_ARGS entry.
2912
2913 2004-03-11  Richard Henderson  <rth@redhat.com>
2914
2915         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
2916         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
2917         (alpha_emit_xfloating_arith): Update to match.
2918         (alpha_emit_xfloating_compare): Likewise.
2919         (alpha_emit_xfloating_cvt): Likewise.
2920         (alpha_emit_xfloating_libcall): Take already built symbol,
2921         mark call const.
2922         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
2923         op1 in a register.
2924
2925 2004-03-11  Richard Henderson  <rth@redhat.com>
2926
2927         PR target/14539
2928         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
2929
2930         * simplify-rtx.c (simplify_relational_operation): Fix typo.
2931
2932 2004-03-11  Richard Henderson  <rth@redhat.com>
2933
2934         PR middle-end/14477
2935         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
2936
2937 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
2938
2939         PR target/14262
2940         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
2941         defined, pass small BLKmode values in registers in the low-order part.
2942
2943 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
2944
2945         * combine.c (if_then_else_cond): Check for NULL return value of
2946         simplify_gen_subreg.
2947
2948 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
2949
2950         PR target/14496
2951         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
2952         TARGET_SINGLE_FLOAT.
2953
2954 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
2955
2956         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
2957         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
2958         * config/ia64/ia64.c (ia64_init_libfuncs): New.
2959         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
2960
2961 2004-03-11  Roger Sayle  <roger@eyesopen.com>
2962
2963         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
2964         -((int)X>>C) where C is an integer constant one bit less than the
2965         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
2966         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
2967
2968         * simplify-rtx.c (simplify_unary_operation): Also implement the
2969         above transformations at the RTL level.
2970
2971 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
2972
2973         * real.c (encode_ibm_extended): Do round low word.
2974
2975 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
2976
2977         * config/arm/arm.md (is_xscale): Comment this attribute and move
2978         it a bit further up in the file, closer to related attributes.
2979
2980 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
2981
2982         * config/host-solaris.c (sol_gt_pch_use_address): Add
2983         missing terminating marker to comment.
2984
2985 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
2986
2987         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
2988         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
2989         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
2990         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
2991         move_operand as source predicate in all cases.
2992         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
2993         Test reg_or_0_operand.  Use move_operand as source predicate.
2994         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
2995         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
2996         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
2997         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
2998         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
2999         Use move_operand as source predicate.  Remove 'K' constraint.
3000         (*movqi_internal): Likewise movqi_internal.
3001         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
3002         reg_or_0_operand.  Use move_operand as source predicate.
3003         (*movsf_softfloat): Likewise movsf_internal2.
3004         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
3005         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
3006         (*movdf_softfloat): Likewise movdf_internal2.
3007         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
3008         for DImode if !TARGET_64BIT.
3009         (mips_legitimize_move): Simplify accordingly.
3010
3011 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
3012
3013         PR/14362
3014         * var-tracking.c (struct variable_def): Added field refcount.
3015         (variable_htab_free): Decrease the refcount and delete variable
3016         only if there are no more references.
3017         (unshare_variable): New function.
3018         (vars_copy_1): Increase refcount instead of copying the variable.
3019         (variable_union): Share the variables where possible, unshare
3020         the variables if needed.
3021         (variable_different_p): Return false if var1 and var2 are
3022         the same structure.
3023         (variable_was_changed): Init the refcount of new variable.
3024         (set_frame_base_location): Unshare variable if needed.
3025         (set_variable_part): Init the refcount of new variable.
3026         Unshare the variables if needed.
3027         (delete_variable_part): Unshare the variables if needed.
3028         (emit_notes_for_differences_1): Init the refcount of new variable.
3029         (vt_add_function_parameters): Do not add function parameters to
3030         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
3031         (vt_initialize): Do not add frame_base_decl to IN set of
3032         ENTRY_BLOCK_PTR because it is unused anyway.
3033
3034 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
3035
3036         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
3037         (vars_copy): Likewise.
3038         (variable_union): Likewise.
3039         (set_variable_part): Likewise.
3040         (delete_variable_part): Likewise.
3041
3042 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
3043
3044         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
3045         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
3046         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
3047         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
3048         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
3049         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
3050         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
3051         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
3052         config/stormy16/stormy16.c: Fix comment typos and formatting.
3053
3054 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
3055
3056         * configure: Regenerate, since I forgot to while committing Paolo's
3057         changes.
3058
3059 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
3060
3061         PR ada/14131
3062         Move language detection to the top level.
3063         * configure.ac: Remove code to detect languages,
3064         it now lives exclusively in the top level.
3065         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
3066         top level, renamed to ACX_PROG_GNAT.
3067
3068 2004-03-10  Richard Henderson  <rth@redhat.com>
3069
3070         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
3071         extra arguments.
3072         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
3073         and host_xmake_file fragments.
3074         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
3075         (gt_pch_restore): Similarly for gt_pch_use_address.
3076         (default_gt_pch_get_address): New.
3077         (mmap_gt_pch_get_address): Split out of gt_pch_save.
3078         (default_gt_pch_use_address): Split out of gt_pch_restore.
3079         (mmap_gt_pch_use_address): Likewise.
3080         * hooks.c (hook_voidp_size_t_null): Remove.
3081         (hook_bool_voidp_size_t_false): Remove.
3082         * hooks.h: Likewise.
3083         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
3084         default_ or mmap_ definitions.
3085         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
3086         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
3087         and gt_pch_use_address.
3088         * config/host-linux.c, config/host-solaris.c: New files.
3089         * config/x-linux, config/x-solaris: New files.
3090         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
3091         Update for changed definition.
3092         (darwin_rs6000_gt_pch_use_address): Likewise.
3093         * doc/hostconfig.texi: Update docs.
3094
3095 2004-03-10  Richard Henderson  <rth@redhat.com>
3096
3097         PR c/14517
3098         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
3099         except for pedantic c90 mode.
3100
3101 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
3102
3103         * configure.ac: Bump AC_PREREQ to 2.59.
3104         * configure: Regenerate.
3105
3106 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
3107
3108         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
3109         (exp10_optab, exp2_optab): Define corresponding macros.
3110         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
3111         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
3112         using exp10?f2 and exp2?f2 patterns.
3113         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
3114         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
3115         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
3116         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
3117
3118         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
3119         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
3120         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
3121
3122 2004-03-10  Anthony Green  <green@redhat.com>
3123
3124         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
3125
3126 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
3127
3128         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
3129         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
3130         __LONGDOUBLE128.
3131         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
3132         TARGET_OS_AIX_CPP_BUILTINS.
3133         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
3134         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
3135         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
3136         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
3137         previous change.
3138
3139 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3140
3141         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
3142
3143 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
3144
3145         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
3146         __LONGDOUBLE128 on AIX.
3147
3148 2004-03-10  Andrew Haley  <aph@redhat.com>
3149
3150         PR optimization/14381
3151         * function.c (expand_function_end): Emit a blockage insn before
3152         the epilogue when -fnon-call-exceptions is used.
3153
3154         * except.c (expand_start_all_catch): Make comment more accurate.
3155
3156 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
3157
3158         PR target/14480
3159         * config/rs6000/t-rtems: Add missing file on branch.
3160
3161 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
3162
3163         * dbxout.c (dbxout_symbol_location): Do not output references
3164         to optimized-out constant pool symbols.
3165
3166 2004-03-10  Andreas Schwab  <schwab@suse.de>
3167
3168         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
3169         twon34_r.
3170
3171 2004-03-09  James E Wilson  <wilson@specifixinc.com>
3172
3173         * alias.c (alias_sets_might_conflict_p): New.
3174         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
3175         * common.opt (Wstrict-aliasing=): New.
3176         * flags.h (warn_strict_aliasing): Change type to int.
3177         * opts.c (warn_strict_aliasing): Change type to int.
3178         (common_handle_option): Handle OPT_Wstrict_aliasing_.
3179         * tree.h (alias_sets_might_conflict_p): Declare it.
3180         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
3181
3182 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
3183
3184         PR bootstrap/12371
3185         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
3186         (CALL_USED_REGISTERS): Likewise.
3187         (REG_CLASS_CONTENTS): Likewise.
3188         (REG_ALLOC_ORDER): New.
3189         (REGNO_REG_CLASS): Use regno_reg_class.
3190         * config/m68k/m68k.c: Add regno_reg_class array.
3191
3192 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
3193
3194         * config/ia64/ia64.md (divsi3): Fix algorithm.
3195           (udivsi3): Ditto.
3196           (setf_exp_xf): Remove '*' from name.
3197         * testsuite/gcc.dg/20040309-1.c: New test.
3198
3199 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
3200
3201         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
3202         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
3203         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
3204         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
3205         (sparc_aout_select_rtx_section): Don't check
3206         SUNOS4_SHARED_LIBRARIES.
3207         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
3208
3209 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
3210
3211         PR other/14474
3212         * doc/md.texi (Pattern Ordering, Dependent Patterns)
3213         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
3214         INTERNALS".
3215
3216 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
3217
3218         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
3219         (LIBGCC_SPEC): Update to match.
3220
3221 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
3222
3223         * c-decl.c (last_function_parms, last_function_parm_tags)
3224         (last_function_parm_others, current_function_parms)
3225         (current_function_parm_tags, current_function_parm_others):
3226         Delete.
3227         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
3228         New macros.
3229         (grokdeclarator): For function definitions, save the arg-info
3230         block from the declarator in DECL_ARGUMENTS.
3231         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
3232         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
3233         contains only PARM_DECLs.  Improve diagnostics.
3234         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
3235         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
3236         (store_parm_decls_newstyle): Take the function to operate on,
3237         and an arg-info block, as arguments; don't get anything from
3238         current_function_* globals.
3239         (store_parm_decls_oldstyle): Likewise.
3240         (store_parm_decls): Pass fndecl and its arg-info block down to
3241         store_parm_decls_newstyle/oldstyle.  Send functions with empty
3242         argument lists through store_parm_decls_newstyle to reduce
3243         overhead.
3244         (pushdecl): Comment on the problems with the call to copy_node.
3245         Clear DECL_ARGUMENTS of the old node after copying it, if it
3246         is an arg-info block instead of a chain of decls.
3247         (start_function): Do not manipulate current_function_parm* or
3248         last_function_parm*.
3249
3250 2004-03-09  Roger Sayle  <roger@eyesopen.com>
3251             Andrew Pinski  <pinskia@physics.uc.edu>
3252
3253         * ifcvt.c (noce_try_sign_mask): New function to transform
3254         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
3255         (noce_process_if_block): Call noce_try_sign_mask.
3256
3257 2004-03-09  Andrew Pinski  <apinski@apple.com>
3258
3259         * c-typeck.c (tagged_types_tu_compatible_p):
3260         Fix typo.
3261
3262 2004-03-09  Roger Sayle  <roger@eyesopen.com>
3263
3264         * simplify-rtx.c (simplify_const_relational_operation): New function
3265         renamed from simplify_relational_operation.
3266         (simplify_relational_operation): Change prototype to accept an
3267         additional mode argument.  Call simplify_const_relational_operation.
3268         (simplify_gen_relational): Update simplify_relational_operation call.
3269         (simplify_ternary_operation): Update simplify_relational_operation
3270         subroutine call to use simplify_const_relational_operation instead.
3271
3272         * rtl.h (simplify_const_relational_operation): Prototype here.
3273         (simplify_relational_operation): Add addtional mode argument.
3274
3275         * combine.c (combine_simplify_rtx): Update calls to
3276         simplify_relational_operation.
3277         (simplify_set): Likewise.
3278         (gen_binary): Likewise.
3279         * cse.c (fold_rtx): Likewise.
3280         * dojump.c (compare_from_rtx): Likewise.
3281         (do_compare_rtx_and_jump): Likewise.
3282         * integrate.c (subst_constants): Likewise.
3283         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
3284
3285 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
3286
3287         * config/m32r/m32r.md: Remove all define_peephole's.
3288
3289 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
3290
3291         * config/rs6000/rs6000.md: Remove trailing whitespace.
3292
3293 2004-03-08  Eric Christopher  <echristo@redhat.com>
3294
3295         * Makefile.in (site.exp): Add libiconv variable definition.
3296
3297 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
3298
3299         * configure: Regenerate for config/accross.m4 correction.
3300
3301 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
3302
3303         PR target/14480
3304         * config/rs6000/t-rtems: Add missing file on branch.
3305
3306 2004-03-08  Roger Sayle  <roger@eyesopen.com>
3307
3308         PR middle-end/14289
3309         * c-typeck.c (c_mark_addressable): A register variable should
3310         be considered global if its not automatic, i.e. TREE_PUBLIC,
3311         TREE_STATIC or DECL_EXTERNAL.
3312         * function.c (put_var_into_stack): Call abort when placing a
3313         hard register into the stack, if x_parm_reg_stack_loc is NULL.
3314
3315 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
3316
3317         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
3318         ("*extendqisi2_short_displ"): Likewise.
3319
3320 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
3321
3322         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
3323         (comp_operator): Likewise.
3324         * config/pdp11/pdp11-protos.h: Remove corresponding
3325         prototypes.
3326
3327 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
3328
3329         * expr.c (highest_pow2_factor_for_type): Rename into
3330         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
3331         TYPE_ALIGN when the target is a COMPONENT_REF.
3332         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
3333
3334 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
3335
3336         * config/rs6000/rs6000.c: Formatting fix.
3337         (legitimate_offset_address_p): Correct offset range check.
3338
3339         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
3340         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
3341         and MASK_STRING.
3342
3343 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
3344
3345         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
3346         for little endian.
3347         ("ashrdi3_no_power"): Disable for little endian.
3348         (ashrdi3): Same.
3349
3350 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3351
3352         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
3353         builtins.
3354
3355 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
3356
3357         PR target/14471
3358         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
3359         case, checking for -no-mul-bug-abort option.
3360         * configure, config.in: Regenerate.
3361         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
3362         and -mno-mul-bug-workaround.
3363         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
3364         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
3365         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
3366         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
3367         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
3368         sure mulu.d is not last on cache-line.
3369         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
3370         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
3371         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
3372         (TARGET_SWITCHES): New options -mmul-bug-workaround and
3373         -mno-mul-bug-workaround.
3374         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
3375         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
3376         * config/cris/cris.c (cris_operand_extend_operator): Clarify
3377         relation to MULT in head comment.
3378         (cris_op_str): Abort for MULT.
3379         (cris_print_operand) <case '!'>: New case.
3380
3381 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
3382
3383         PR debug/11983
3384         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
3385         dw_val_class_vec.  Replace use throughout file.
3386         (dw_float_const): Delete.
3387         (dw_vec_const): New.
3388         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
3389         throughout file.
3390         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
3391         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
3392         (size_of_die): Adjust dw_val_class_vec sizing.
3393         (output_die): Output dw_val_class_vec.
3394         (insert_int, extract_int, insert_float): New functions.
3395         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
3396         Handle CONST_VECTOR.
3397         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
3398
3399 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
3400
3401         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
3402         AltiVec abi cannot co-exist.
3403
3404         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
3405
3406 2004-03-07  Jan Hubicka  <jh@suse.cz>
3407
3408         * except.c (emit_to_new_bb_before):  Break fallthru edges.
3409
3410 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
3411
3412         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
3413         ("*lshrsi3"): Also accept an immediate for 68HC12.
3414         ("*ashrsi3_const"): Likewise.
3415         ("*ashrsi3"): Likewise.
3416         ("*ashlsi3_const"): Likewise.
3417         ("*ashlsi3"): Likewise.
3418         ("cmphi_1_hc12"): Compare two hard register by pushing them and
3419         comparing with a pop; don't use a split for that.
3420         ("cmphi split"): Disable compare split for 68HC12.
3421
3422         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
3423         the status operands if they have side effects.
3424
3425 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
3426
3427         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
3428         definition.
3429         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
3430         config/h8300/h8300.h, config/ia64/ia64.h,
3431         config/mcore/mcore.h, config/mmix/mmix.h,
3432         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
3433         config/stormy16/stormy16.h, config/v850/v850.h,
3434         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
3435         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
3436         definition.
3437
3438 2004-03-07  Roger Sayle  <roger@eyesopen.com>
3439
3440         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
3441         <XOR_EXPR>: Fold x ^ x as zero.
3442         <AND_EXPR>: Fold x & x as x.
3443
3444 2004-03-07  Roger Sayle  <roger@eyesopen.com>
3445
3446         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
3447         "foo++ == const" into "++foo == const+incr".
3448
3449 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
3450
3451         * config/mips/mips.c (mips_in_small_data_p): Return false if
3452         TARGET_ABICALLS.
3453
3454 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
3455
3456         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
3457         the stack register.
3458         (expand_prologue): Don't make an interrupt or a trap handler a far
3459         symbol.
3460         (m68hc11_initial_elimination_offset): Likewise.
3461
3462 2004-03-06  Richard Henderson  <rth@redhat.com>
3463
3464         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
3465
3466 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
3467
3468         * config/ns32k/ns32k-protos.h: Add a prototype for
3469         ns32k_notice_update_cc.
3470         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
3471         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
3472         ns32k_notice_update_cc.
3473
3474 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
3475
3476         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
3477         "*load_multiple_si"): Allow only if reload_completed.
3478         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
3479         Likewise.
3480
3481 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
3482
3483         * config/vax/vax-protos.h: Add a prototype for
3484         vax_notice_update_cc.
3485         * config/vax/vax.c (vax_notice_update_cc): New.
3486         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
3487         vax_notice_update_cc.
3488
3489 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
3490
3491         * collect2.c (main): Only export initfunc and finifunc if
3492         LD_INIT_SWITCH not defined.
3493         (scan_prog_file): Only export constructors and destructors if
3494         LD_INIT_SWITCH not defined.  Only export symbols not found in
3495         shared objects.
3496
3497 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3498
3499         * pa.md (icacheflush): Reorder operands to make match_scratch operand
3500         last.
3501         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
3502         from calls to gen_icacheflush.
3503
3504 2004-03-06  Richard Henderson  <rth@redhat.com>
3505
3506         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
3507         (TARGET_LONG_DOUBLE_128): New.
3508         (TARGET_SWITCHES): Add long-double-{128,64}.
3509         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
3510         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
3511         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
3512         (WIDEST_HARDWARE_FP_SIZE): New.
3513         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
3514         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
3515         if TARGET_VAX_FLOAT.
3516         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
3517         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
3518
3519 2004-03-06  Richard Henderson  <rth@redhat.com>
3520
3521         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
3522         botched rtx class conversion.
3523
3524 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3525
3526         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
3527         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
3528
3529         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
3530         macros.
3531         * fold-const.c (fold_mathfn_compare, fold): Likewise.
3532
3533 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
3534
3535         PR target/14343
3536         * config/i386/i386.md (movv2di_internal): Conditionalize on
3537         TARGET_SSE, not TARGET_SSE2.
3538
3539 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
3540
3541         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
3542         duplicated line.
3543
3544 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3545
3546         * builtins.c: Consistently use logN not log* in comments.
3547
3548 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
3549
3550         * rtl.h (mem_expr_equal_p): Function prototype added.
3551         * cfgcleanup.c (merge_memattrs): New function.
3552         (flow_find_cross_jump): Call merge_memattrs for matching insns.
3553         * emit-rtl.c (mem_expr_equal_p): New function.
3554
3555 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
3556
3557         * objc/objc-act.c (synth_module_prologue): Const-qualify
3558         objc_selector type if using the GNU runtime; fix generated
3559         signatures for objc_msg_lookup and objc_msg_lookup_super
3560         to match what GNU ObjC headers provide; reformat and clean up.
3561         (synth_self_and_ucmd_args): Use previously constructed (and
3562         hence possibly const-qualified) objc_selector type.
3563
3564 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
3565
3566         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
3567
3568 2004-03-05  Jason Merrill  <jason@redhat.com>
3569
3570         * tree.h (TYPE_HASH): Use TYPE_UID.
3571         (TREE_HASH): New macro with old definition of TYPE_HASH.
3572         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
3573         (build_array_type, build_function_type): Likewise.
3574         (build_method_type_directly): Likewise.
3575         (build_offset_type, build_complex_type): Likewise.
3576         (type_hash_list, attribute_hash_list): Likewise. Now static.
3577         * except.c: s/TYPE_HASH/TREE_HASH/.
3578
3579 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
3580
3581         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
3582         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
3583         __va_ndx by 2 words when referencing an argument on the stack.
3584         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
3585         words when an arg on the stack is first seen.
3586
3587 2004-03-05  Paul Brook  <paul@codesourcery.com>
3588
3589         * arm.h (ARM_FLAG_VFP): Remove.
3590         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
3591         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
3592
3593 2004-03-05  Paul Brook  <paul@codesourcery.com>
3594
3595         * function.c (assign_parms): Include pretend alignment offset.
3596
3597 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3598
3599         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
3600         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
3601
3602 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
3603
3604         * configure.ac: When passing --enable-languages to subdir
3605         configure when host != build, make sure we don't pass an empty
3606         value.
3607         * configure: Regenerate.
3608
3609 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
3610
3611         PR 13577
3612         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
3613         options.
3614
3615 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
3616
3617         * simplify-rtx.c (simplify_relational_operation): If
3618         flag_wrapv is set, do not move terms between the two
3619         side of a relational operator.
3620
3621 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
3622
3623         * rtlanal.c: Include target.h and output.h
3624         (rtx_cost, address_cost, default_address_cost): Move from...
3625         * cse.c (rtx_cost, address_cost, default_address_cost):
3626         ... this file.
3627         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
3628         * Makefile.in: Adjust dependencies.
3629
3630 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
3631
3632         * cse.c (cse_end_of_basic_block): Make static.
3633         * local-alloc.c (function_invariant_p): Move to
3634         reload1.c.
3635         * loop.c (libcall_other_reg, record_excess_regs):
3636         Make static.
3637         * reload1.c (function_invariant_p): Moved here
3638         from local-alloc.c, made static.
3639         * rtl.h (cse_end_of_basic_block, function_invariant_p,
3640         libcall_other_reg, record_excess_regs): Remove
3641         declarations.
3642
3643 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
3644
3645         * config/m32r/m32r.c (signed_comparison_operator): Add a
3646         missing parenthesis.
3647
3648 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
3649
3650         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
3651         going to call mmap again.  Read the file into the right place.
3652         Give a fatal error if we have to relocate.
3653
3654 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
3655
3656         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
3657         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
3658
3659 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
3660
3661         PR other/14354
3662         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
3663         round the same.  When rounding, clear bits that would cause a
3664         second rounding in pack_d.
3665         (_fpmul_parts): Ditto.  Remove #if 0:d code.
3666
3667 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
3668
3669         PR c++/14425, c++/14426
3670         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
3671         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
3672         Change C++ definitions to accept a 'const int' argument;
3673         the prototypes already do.
3674         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
3675         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
3676         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
3677         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
3678         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
3679         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
3680         end in ..._int; change them to accept an int instead of a char
3681         as the last parameter.
3682
3683 2004-03-04  Phil Edwards  <phil@codesourcery.com>
3684
3685         * genmultilib:  Change '=' to '-' when translating option names
3686         to directory names.
3687
3688 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3689
3690         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
3691         stack slot for temp used for result of BLKmode but in integral mode.
3692
3693 2004-03-04  Jan Hubicka  <jh@suse.cz>
3694
3695         * reload.c (find_reloads): Reorganize if seqeunce to switch.
3696
3697         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
3698         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
3699
3700 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
3701
3702         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
3703         * testsuite/gcc.dg/20040303-1.c: New test.
3704
3705 2004-03-04  Steven Bosscher  <stevenb@suse.de>
3706
3707         * ppro.md: Rewrite as a DFA pipeline description.
3708         * i386.md: Remove all uses of the ppro_uops attribute.
3709         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
3710         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
3711         ix86_sched_reorder, ix86_variable_issue,
3712         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
3713         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
3714         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
3715         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
3716         * athlon.md (athlon_ssecmp_load): Fix comment
3717
3718 2004-03-04  Stuart Hastings  <stuart@apple.com>
3719
3720         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
3721
3722 2004-03-04  Stuart Hastings  <stuart@apple.com>
3723
3724         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
3725         686, tell Darwin assembler to allow prefetch insns, non-empty def
3726         of SUBTARGET_OPTION_TRANSLATE_TABLE.
3727
3728 2004-03-04  DJ Delorie  <dj@redhat.com>
3729
3730         PR optimization/14282
3731         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
3732         between a call and the assignment of its return value.
3733
3734 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
3735
3736         * config/h8300/h8300.c: Put a comment for every function.
3737
3738 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
3739
3740         * config/h8300/h8300.md: Add comments about peephole2's.
3741
3742 2004-03-04  Steven Bosscher  <stevenb@suse.de>
3743
3744         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
3745
3746 2004-03-04  Jan Hubicka  <jh@suse.cz>
3747
3748         * cfgcleanup.c (thread_jump): Update call of cselib_init.
3749         * cselib.c (cselib_record_memory): New static variable.
3750         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
3751         Give up on memories when asked for.
3752         (cselib_init): Accept new argument.
3753         * cselib.h (cselib_init): Update prototype.
3754         * gcse.c (local_cprop_pass): Update call of cselib_init.
3755         * loop.c (load_mems): Update call of cselib_init.
3756         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
3757         * sched-deps.c (sched_analyze): Update call of cselib_init.
3758
3759 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
3760             GP <gp@qnx.com>
3761
3762         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
3763         when compiling PIC.
3764
3765 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
3766
3767         PR/14362
3768         * var-tracking.c (track_expr_p): Do not track variables which
3769         should be ignored for debugging purposes.
3770
3771 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
3772
3773         * real.c (encode_ibm_extended): Don't bother rounding low double.
3774         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
3775         when fmt->pnan < fmt->p.
3776
3777 2004-03-04  Eric Christopher  <echristo@redhat.com>
3778
3779         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
3780         only range of valid arg registers and fixed_regs.
3781
3782 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
3783
3784         PR target/14406
3785         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
3786         (abstf2, abstf2_internal): New define_expand.
3787
3788 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
3789
3790         PR optimization/14235
3791         * expr.c (convert_move): Copy the source to a new pseudo
3792         when converting from a sub-word source to a larger-than-word
3793         register which conflicts with the source.
3794
3795 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
3796
3797         PR 13728
3798         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
3799         parameters with the same name, unless one is a forward decl.
3800         Do not issue a redundant-redeclaration warning for forward
3801         decls of parameters.
3802
3803 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
3804
3805         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
3806         configuration.
3807
3808 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
3809
3810         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
3811
3812 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
3813
3814         * target-def.h (TARGET_OPTF): Delete.
3815         * c-opts.c (TARGET_OPTF): Define.
3816
3817 2004-03-04  Jan Hubicka  <jh@suse.cz>
3818
3819         * cselib.c (cselib_finish): Fix another miss-application of my previous
3820         patch.
3821
3822 2004-03-03  Mike Stump  <mrs@apple.com>
3823
3824         Add framework support for darwin.
3825
3826         * c-incpath.c: Include target.h and machmode.h.
3827         (add_path): Use a consistent style for cpp_dir.  Initialize
3828         p->construct to 0.
3829         (add_cpp_dir_path): New.
3830         (register_include_chains): Add use of extra_includes callback.
3831         (hook_void_int): Add.
3832         (target_c_incpath): Add.
3833         * c-incpath.h (add_cpp_dir_path): New.
3834         (target_c_incpath_s): Add.
3835         (target_c_incpath): Add.
3836         (C_INCPATH_INIT): Add.
3837         * c-opts.c (c_common_missing_argument,
3838         c_common_handle_option): Add -F argument processing.
3839         * c.opt: Add -F argument processing.
3840         * gcc.c (trad_capable_cpp): Add -F argument processing.
3841         * cppfiles.c (find_file_in_dir): Update to use construct
3842         callback.
3843         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
3844         cpp_get_prev): New.
3845         (_cpp_find_file): Use search_path_exhausted.
3846         (make_cpp_dir): Initialize construct to 0.
3847         * cpplib.h (missing_header_cb
3848         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
3849         (cpp_callbacks): Add missing_header
3850         (cpp_dir): Add construct.
3851         * target-def.h: (TARGET_OPTF): New.
3852         * hooks.c (hook_void_int, hook_void_charptr): Add.
3853         * hooks.h (hook_void_int, hook_void_charptr): Add.
3854         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
3855         $(MACHMODE_H) dependencies.
3856         * doc/invoke.texi (Darwin Options): Document -F.
3857         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
3858         (TARGET_OPTF): Add.
3859         * fix-header.c (target_c_incpath): Add.
3860
3861         * config/darwin-c.c: Add c-incpath.h include.
3862         (using_frameworks, find_subframework_file,
3863         find_subframework_header, add_system_framework_path,
3864         frameworks_in_use, num_frameworks, max_frameworks,
3865         add_framework, find_framework, struct framework_header,
3866         framework_header_dirs, framework_construct_pathname,
3867         find_subframework_file, add_system_framework_path,
3868         add_framework_path, framework_defaults,
3869         darwin_register_frameworks, find_subframework_header): Add.
3870         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
3871         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
3872         (CPP_SPEC): Add __APPLE_CC__ support.
3873         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
3874
3875 2004-03-04  Jan Hubicka  <jh@suse.cz>
3876
3877         * cselib.c (cselib_finish): Fix miss-application of my previous
3878         patch.
3879
3880 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
3881
3882         * hooks.c (hook_tree_tree_identity): New.
3883         * hooks.h: Add a prototype for hook_tree_tree_identity.
3884         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
3885         instead of MD_ASM_CLOBBERS.
3886         * system.h (MD_ASM_CLOBBERS): Poison.
3887         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
3888         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
3889         * target.h (gcc_target): Add md_asm_clobbers.
3890         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
3891         (ix86_md_asm_clobbers): New.
3892         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
3893         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
3894         TARGET_MD_ASM_CLOBBERS.
3895
3896 2004-03-03  Stuart Hastings  <stuart@apple.com>
3897
3898         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
3899
3900 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
3901
3902         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
3903
3904         * config/sparc/sparc.h (ASM_FLOAT): Delete.
3905         (ASM_DOUBLE): Likewise.
3906         (ASM_LONGDOUBLE): Likewise.
3907         * config/sparc/pbd.h (ASM_INT_OP): Delete.
3908
3909 2003-03-03  Richard Henderson  <rth@redhat.com>
3910
3911         PR opt/13862
3912         * cselib.c (cselib_record_sets): Don't record multiple sets in
3913         asm insns.
3914
3915 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
3916
3917         * common.opt: Add description of the new -fgcse-after-reload flag.
3918
3919         * flags.h (flag_gcse_after_reload): Declaration of global variable.
3920
3921         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
3922         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
3923         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
3924         get_bb_avail_insn, hash_scan_set_after_reload,
3925         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
3926         gcse_after_reload, get_bb_avail_insn): New functions to implement
3927         gcse-after-reload.
3928         (gcse_after_reload_main): New function, the main entry point to
3929         gcse-after-reload.
3930
3931         * rtl.h (gcse_after_reload_main): Declaration of the new function.
3932
3933         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
3934
3935         * toplev.c (flag_gcse_after_reload): Initialization.
3936
3937         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
3938
3939         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
3940         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
3941         the gcse after reload optimization.
3942
3943         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
3944         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
3945         parameters.
3946
3947         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
3948
3949 2004-03-03  Nicolas Pitre <nico@cam.org>
3950
3951         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
3952         small negative values.
3953
3954 2004-03-03  Jan Hubicka  <jh@suse.cz>
3955
3956         * cselib.c (hash_table):  Remove GTY marker.
3957         (reg_values): Turn into array.
3958         (used_regs): Likewise.
3959         (n_used_regs): New static variable.
3960         (reg_values_old): Kill.
3961         (clear_table): Update uses of arrays.
3962         (cselib_lookup): Likewise.
3963         (cselib_record_set): Likewise.
3964         (cselib_init): Likewise.
3965         (cselib_finish): Likewise.
3966         (cselib_udpate_varray_sizes): Kill.
3967         * cselib.h (cselib_update_varray_sizes): Kill.
3968
3969 2004-03-03  Paul Brook  <paul@codesourcery.com>
3970
3971         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
3972
3973 2004-03-03  Jan Hubicka  <jh@suse.cz>
3974
3975         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
3976         Rename from ...; make statistics transparent.
3977         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
3978         (loc_descriptor): New structure.
3979         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
3980         add_statistics):
3981         New static function.
3982         (ggc_record_overhead, dump_statistics): New global function.
3983         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
3984         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
3985         from ...; accept locations
3986         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
3987         ggc_realloc, ggc_alloc_typed):  ... this one.
3988         from ...; accept locations
3989         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
3990         ggc_alloc_stat): Rename from ... ; pass locations
3991         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
3992         ... this one.
3993         (ggc_alloc_stat): Record overehead.
3994         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
3995         ggc_realloc, ggc_alloc_typed):  Turn to macros
3996         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
3997         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
3998         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
3999         * langhooks.h (lhd_make_node): Declare.
4000         (LANG_HOOKS_MAKE_TYPE): Default to new function,
4001         * langhooks.c (lhd_make_node): New.
4002         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
4003         locations.
4004         (rtx_alloc, swallow_copy_rtx): ... this one.
4005         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
4006         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
4007         * toplpev.c (finalize): Dump stats.
4008         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
4009         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
4010         Rename from ... ; pass locators.
4011         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
4012         build?,  build_decl): Declare.
4013         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
4014         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
4015         Declare.
4016         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
4017         build?,  build_decl): New macros.
4018         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
4019         * statistics.h: New file.
4020
4021 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
4022             Richard Sandiford  <rsandifo@redhat.com>
4023
4024         * config/mips/mips.h (MASK_FIX_SB1): Bump.
4025         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
4026         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
4027         * config/mips/mips.c (mips_output_division): Fill the branch delay
4028         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
4029         TARGET_FIX_R4400.
4030         (mips_output_division): Adjust accordingly.
4031         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
4032         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
4033
4034 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
4035
4036         * alias.c (rtx_equal_for_memref_p): Use predicates
4037         to test rtx classes and new rtx class codes, possibly
4038         splitting conditionals that tested against '<' and 'o'.
4039         * caller-save.c (save_call_clobbered_regs): Likewise.
4040         * combine.c (contains_muldiv, find_split_point, subst,
4041         combine_simplify_rtx, simplify_if_then_else,
4042         simplify_set, simplify_logical, expand_compound_operation,
4043         make_compound_operation, if_then_else_cond, known_cond,
4044         apply_distributive_law, cached_nonzero_bits,
4045         cached_num_sign_bit_copies, simplify_shift_const,
4046         gen_binary, simplify_comparison, update_table_tick,
4047         record_value_for_reg, get_lsat_value_validate): Likewise.
4048         * cse.c (mention_regs, find_best_addr, find_comparison_args,
4049         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
4050         Likewise.
4051         * emit-rtl.c (copy_insn_1): Likewise.
4052         * expr.c (force_operand): Likewise.
4053         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
4054         * flow.c (notice_stack_pointer_modification_1,
4055         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
4056         and_reg_cond, elim_reg_cond): Likewise.
4057         * function.c (update_epilogue_consts): Likewise.
4058         * genattrtab.c (attr_rtx_1): Likewise.
4059         * genopinit.c (gen_insn): Likewise.
4060         * integrate.c (subst_constants): Likewise.
4061         * jump.c (reversed_comparison_code_parts,
4062         reversed_comparison_code, delete_related_insns,
4063         rtx_renumbered_equal_p): Likewise.
4064         * local-alloc.c (block_alloc): Likewise.
4065         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
4066         canonicalize_condition): Likewise.
4067         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
4068         Likewise.
4069         * optabs.c (add_equal_node, expand_binop): Likewise.
4070         * predict.c (estimate_probability): Likewise.
4071         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
4072         * recog.c (validate_replace_rtx_1, comparison_operator,
4073         offsettable_address_p, constrain_operands): Likewise.
4074         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
4075         Likewise.
4076         * regclass.c (scan_one_insn): Likewise.
4077         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
4078         * regrename.c (kill_autoinc_value): Likewise.
4079         * reload.c (find_reusable_reload, find_reloads,
4080         reg_overlap_mentioned_for_reload_p): Likewise.
4081         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
4082         * rtl.c (copy_rtx): Likewise.
4083         * rtl.h (CONSTANT_P, INSN_P): Likewise.
4084         * rtlanal.c (commutative_operand_precedence): Likewise.
4085         * sched-deps.c (conditions_mutex_p): Likewise.
4086         * sched-rgn.c (is_cfg_nonregular): Likewise.
4087         * simplify-rtx.c (simplify_gen_binary,
4088         simplify_gen_relational, simplify_replace_rtx,
4089         simplify_unary_operation, simplify_binary_operation,
4090         simplify_ternary_operation, simplify_rtx): Likewise.
4091         * unroll.c (reg_dead_after_loop): Likewise.
4092         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
4093         print_operand): Likewise.
4094         * config/arc/arc.c (proper_comparison_operator): Likewise.
4095         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
4096         Likewise.
4097         * config/avr/avr.c (_reg_unused_after): Likewise.
4098         * config/frv/frv.c (frv_ifcvt_modify_tests,
4099         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
4100         * config/i386/i386.c (ix86_comparison_operator,
4101         ix86_carry_flag_operator, fcmov_comparison_operator,
4102         arith_or_logical_operator, print_operand,
4103         ix86_expand_binary_operator, ix86_binary_operator_ok):
4104         Likewise.
4105         * config/i386/i386.md: Likewise.
4106         * config/ia64/ia64.c (not_postinc_memory_operand,
4107         ia64_print_operand, update_set_flags, errata_emit_nops):
4108         Likewise.
4109         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
4110         CONSTRAINT_OK_FOR_S): Likewise.
4111         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
4112         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
4113         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
4114         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
4115         Likewise.
4116         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
4117         eqne_comparison_operator, signed_comparison_operator):
4118         Likewise.
4119         * config/mips/mips.c (cmp_op, symbolic_expression_p):
4120         Likewise.
4121         * config/mmix/mmix (mmix_foldable_comparison_operator,
4122         mmix_comparison_operator): Likewise.
4123         * config/pa/pa.c (hppa_legitimize_address): Likewise.
4124         * config/rs6000/rs6000.c (stmw_operation,
4125         branch_comparison_operator, trap_comparison_operator,
4126         ccr_bit): Likewise.
4127         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
4128         * config/s390/s390.c (s390_alc_comparison,
4129         s390_slb_comparison):L Likewise.
4130         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
4131         Likewise.
4132         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
4133         noov_compare_op, noov_compare64_op, v9_regcmp_op,
4134         emit_hard_tfmode_operation, reg_unused_after)
4135         * doc/md.texi, doc/rtl.texi: Likewise.
4136
4137         * ra-debug.c: Add 2004 to list of copyright years.
4138         * unroll.c: Likewise.
4139
4140         * combine.c (simplify_logical): Remove dummy test,
4141         (apply_distributive_law): Fix typo in comment.
4142         GET_CODE (x) == AND so x is a commutative binary op.
4143         * jump.c (delete_related_insns): simplify loop
4144         condition, move testing of RTX codes inside the loop.
4145         (rtx_renumbered_equal_p): do not use RTX_CODE.
4146         * rtl.c (rtx_class): Declare as enum rtx_class.
4147         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
4148         Move to RTX_COMM_COMPARE class.
4149         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
4150         Move to RTX_CONST_OBJ class.
4151         * rtl.h (enum rtx_class): New declaration,
4152         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
4153         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
4154         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
4155         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
4156         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
4157         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
4158         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
4159         OBJECT_P): New macros.
4160         * config/sparc/sparc.c (noov_compare_op): Remove register
4161         from parameter.
4162
4163 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
4164
4165         * target.h: Remove texi jargons in comments.
4166
4167 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4168
4169         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
4170         threshold to 0x4f.
4171
4172         Revert:
4173         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
4174         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
4175         as well.
4176         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
4177         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
4178
4179 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4180
4181         * doc/md.texi (cbranchmode4): New.
4182
4183 2004-03-02  Eric Christopher  <echristo@redhat.com>
4184
4185         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
4186         fix_trunc.
4187         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
4188         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
4189         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
4190         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
4191
4192 2004-03-02  Richard Henderson  <rth@redhat.com>
4193
4194         PR middle-end/11767
4195         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
4196         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
4197         before the compare, if flag_non_call_exceptions.
4198
4199 2004-03-02  Richard Henderson  <rth@redhat.com>
4200
4201         PR middle-end/14327
4202         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
4203         emitting the label, not after.
4204
4205 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
4206
4207         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
4208         (m68hc11_mov_addr_mode): Likewise.
4209         (m68hc11_override_options): Initialize them based on target.
4210         (register_indirect_p): Allow a MEM for indirect addressing modes and
4211         use flags to control what is allowed.
4212         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
4213         supported addressing modes.
4214         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
4215         (go_if_legitimate_address_internal): Likewise.
4216         (m68hc11_indirect_p): Likewise and check the mode.
4217         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
4218
4219 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4220
4221         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
4222         (expand_builtin_setjmp_setup): Use
4223         targetm.builtin_setjmp_frame_value instead of
4224         BUILTIN_SETJMP_FRAME_VALUE.
4225         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
4226         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
4227         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
4228         * target.h (gcc_target): Add builtin_setjmp_frame_value.
4229         * targhooks.c (default_builtin_setjmp_frame_value): New.
4230         * targhooks.h: Add a prototype for
4231         default_builtin_setjmp_frame_value.
4232         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
4233         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
4234
4235 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
4236
4237         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
4238         sequences of moves.
4239         (add peepholes): New peepholes to optimize sequences adding small
4240         constants.
4241         (bset peepholes): New peepholes to transform an OR in a bset form
4242         (bclr peepholes): Likewise for bclr form.
4243         (cmp peepholes): New peepholes to avoid register copies when comparing.
4244
4245 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
4246
4247         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
4248         to separate push from moves.
4249         ("*pushdf_internal"): Likewise.
4250         ("*pushsf_internal"): Likewise.
4251         ("*pushsi_internal"): Likewise.
4252         ("movdi_internal"): Use define_insn_and_split; non push operand.
4253         ("movdf_internal"): Likewise.
4254         ("movsf_internal"): Likewise.
4255         ("movsi_internal"): Likewise.
4256         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
4257         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
4258         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
4259
4260 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
4261
4262         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
4263         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
4264         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
4265         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
4266         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
4267         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
4268         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
4269         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
4270         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
4271         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
4272         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
4273
4274 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
4275
4276         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
4277         (SOFT_XY_REGNUM): Define.
4278         (cmp split): Use the above instead of hard coded numbers.
4279         (8-bit op split): No need to check the mode; allow Q_REG.
4280         (ashift split): Adjust the first operand if it uses the SP and we
4281         are pushing the shifted value.
4282         (plus shift split): Fix when a source is in register D+X.
4283         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
4284
4285 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
4286
4287         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
4288         comparing with Z register.
4289
4290 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4291
4292         * cfgloop.h (struct loop_desc): Removed.
4293         (struct loop): Fields simple, desc and has_desc removed.
4294         (simple_loop_p, count_loop_iterations): Declaration removed.
4295         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
4296         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
4297         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
4298         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
4299         simple_loop_exit_p, variable_initial_value, variable_initial_values,
4300         simple_condition_p, simple_increment, count_strange_loop_iterations,
4301         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
4302         Removed.
4303         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
4304
4305 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4306
4307         * genattrtab.c: Don't handle MATCH_INSN.
4308         * genrecog.c: Likewise.
4309         * gensupport.c: Likewise.
4310         * rtl.def (match_insn): Remove.
4311         * doc/md.texi (match_insn, match_insn2): Remove.
4312
4313 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
4314
4315         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
4316         macro results in memory allocation.
4317
4318 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
4319
4320         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
4321         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
4322         %(fbsd_dynamic_linker),
4323         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
4324         config/i386/freebsd.h
4325         * config/arm/freebsd.h: Ditto.
4326         * config/i386/freebsd.h: Ditto.
4327         * config/i386/freebsd64.h: Ditto.
4328         * config/ia64/freebsd.h: Ditto.
4329         * config/rs6000/sysv4.h: Ditto.
4330         * config/sparc/freebsd.h: Ditto.
4331
4332 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
4333
4334         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
4335
4336 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4337
4338         * rtl.def (define_combine): Remove.
4339
4340 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4341
4342         * config/h8300/h8300.md: Tweak formatting.
4343
4344 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4345
4346         * config/h8300/h8300.md (*cmphi_h8300): Rename to
4347         *cmphi_h8300_znvc.
4348         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
4349
4350 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
4351
4352         PR bootstrap/14356
4353         * gcc.c (process_command): Remove const-qualification from argv.
4354         (main): Likewise.
4355
4356 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4357
4358         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
4359         pushqi1_h8300hs_advanced.  Adjust its caller.
4360         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
4361         Adjust its caller.
4362
4363 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
4364
4365         * Makefile.in (install-libgcc, install-multilib): Pass
4366         mkinstalldirs var to libgcc.mk.
4367
4368 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
4369
4370         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
4371         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
4372
4373 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
4374
4375         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
4376         * config/h8300/h8300.md: Split several peephole2's, each into
4377         two.
4378
4379 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4380
4381         * dominance.c (recount_dominator): Handle postdominators.
4382
4383 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
4384
4385         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
4386         (NUM_SYMBOL_TYPES): Likewise.
4387         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
4388         (mips_unspec_address): Declare.
4389         (mips_gotoff_page, mips_gotoff_global): Delete.
4390         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
4391         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
4392         (mips_symbolic_constant_p, mips_symbolic_address_p)
4393         (mips_symbol_insns): Handle new symbol types.
4394         (general_symbolic_operand): New predicate.
4395         (mips_unspec_address): Make extern.
4396         (mips_gotoff_page, mips_gotoff_global): Delete.
4397         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
4398         Handle new symbol types.
4399         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
4400         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
4401         mips_unspec_address directly.
4402         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
4403         the documentation of -mexplicit-relocs.
4404
4405 2004-03-01  Jeff Law  <law@redhat.com>
4406
4407         * fold-const.c (fold): An equality comparison of a non-weak object
4408         against zero has a known result.  Similarly an equality comparison
4409         of the address of two non-weak, unaliased symbols has a known result.
4410
4411         * ggc-page.c (struct page_entry): New field PREV.
4412         (ggc_alloc): Update PREV field appropriately.
4413         (sweep_pages): Likewise.
4414         (ggc_free): Likewise.  Use PREV field rather than loop to
4415         improve ggc_free performance.
4416
4417 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
4418
4419         * config/mips/mips.c (mips_output_division): Use the division
4420         instruction to fill the delay slot of a zero check.
4421         (mips_idiv_insns): Adjust accordingly.
4422
4423 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
4424
4425         * config.gcc: Create a default tmake_file for linux, and use
4426         it in all but two linux clauses.  Comment those two.
4427
4428 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
4429
4430         * combine.c (try_combine):  Do not refer to is_replaced.
4431         (gen_lowpart_for_combine):  Perverse subregs now have a
4432         more politically correct name.
4433         * cse.c (cse_insn): Likewise.
4434         * jump.c: Fix bogus reference to delete_insn.
4435
4436 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
4437
4438         PR debug/14328
4439         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
4440         constants as signed values.
4441
4442         PR middle-end/13448
4443         * c-tree.h (readonly_warning): Rename to ...
4444         (readonly_error): ... this.
4445         * c-typeck.c (build_unary_op): Adjust accordingly.
4446         (readonly_warning): Rename to ...
4447         (readonly_error): ... this and issue errors, not warnings.
4448         (build_modify_expr): Call readonly_error, not readonly_warning.
4449         (c_expand_asm_operands): Likewise.
4450         * tree-inline.c (optimize_inline_calls): Do not inline functions
4451         after errors have occurred.
4452
4453 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
4454
4455         * configure.ac: Rearrange some threading code for clarity;
4456         add section comment.
4457         * configure: Regenerate.
4458
4459 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4460
4461         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
4462         typos.
4463         * doc/cppopts.texi: Fix a typo.
4464
4465 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4466
4467         * config/i386/i386.md: Fix formatting.
4468
4469 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
4470
4471         * configure.ac: Add some comments delineating sections of code.
4472
4473         * doc/install.texi: Note that libada uses autoconf 2.57 also.
4474
4475         * doc/install.texi: Fix idiot typo in previous commit.
4476
4477         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
4478
4479 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4480
4481         * config/h8300/h8300.md: Add comments about peephole2's.
4482
4483 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4484
4485         * config/h8300/h8300.md: Tweak operand numbers of some
4486         peephole2's.
4487
4488 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4489
4490         * config/h8300/h8300.md: Tweak comments about peephole2's.
4491
4492 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
4493
4494         PR middle-end/14203
4495         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
4496         instead of testing whether DECL_RTL is not NULL.
4497
4498 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
4499
4500         * config/sh/sh.c: Fix formatting.
4501
4502 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
4503
4504         * config/sh/sh.c: Convert to ISO-C.
4505
4506 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
4507
4508         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
4509         my previous patch.
4510
4511         * config/darwin.h (machopic_finish): Output stub even if the
4512         symbol is already defined.
4513
4514 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4515
4516         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
4517
4518 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
4519
4520         * genattr.c (main): Don't define
4521         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
4522         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
4523         (DFA_PIPELINE_INTERFACE): Likewise.
4524         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
4525         (DFA_PIPELINE_INTERFACE): Likewise.
4526
4527 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
4528
4529         * config/mips/mips.md (tstsi, tstdi): Delete.
4530
4531 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
4532
4533         * config/mips/mips.c (override_options): Remove an obsolete
4534         duplicate definition of the "e" constraint.
4535         * config/mips/mips.h: Update a comment accordingly.
4536
4537 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
4538
4539         * config/mips/mips.md: Complete the unfinished R4000
4540         multiply/shift errata workaround.  Improve documentation.
4541         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
4542         has a hilo hazard.
4543         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
4544         (muldi3, muldi3_internal): Likewise.
4545         (muldi3_internal2): Remove, replacing with...
4546         (muldi3_mult3, muldi3_r4000): ...these new patterns.
4547         (mulsidi3): Take the errata into account.
4548         (mulsidi3_32bit): Remove, replacing with...
4549         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
4550         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
4551         (umulsidi3): Take the errata into account.
4552         (umulsidi3_32bit): Remove, replacing with..
4553         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
4554         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
4555         TARGET_FIX_R4000.
4556         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
4557         (smuldi3_highpart, umuldi3_highpart): Likewise.
4558         * doc/invoke.texi: Document the errata workaround.
4559
4560 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
4561
4562         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
4563         * config/mips/mips.h (MASK_FIX_SB1): Bump.
4564         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
4565         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
4566         * config/mips/mips.c (mips_idiv_insns): New function.
4567         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
4568         (mips_output_division): Add a workaround for the R4000 divide/shift
4569         errata.
4570         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
4571         the length of an "idiv" instruction.
4572         * doc/invoke.texi: Document the new switches.
4573
4574 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
4575
4576         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
4577         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
4578
4579 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4580
4581         PR optimization/14229
4582         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
4583
4584 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
4585
4586         * fold-const.c (fold): Strip NOPs that change the signedness
4587         for RSHIFT too.  Expand comment.
4588
4589 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
4590
4591         PR optimization/7871
4592         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
4593         from or to call insns.
4594
4595 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
4596
4597         PR optimization/7871
4598         * flow.c (propagate_one_insn): Interpret calls as setting global
4599         registers, not merely clobbering them.
4600
4601 2004-02-27  Dale Johannesen  <dalej@apple.com>
4602
4603         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
4604         config/darwin-protos.h:  Ditto.
4605         config/darwin.h:  Remove call to it.
4606         * combine.c (distribute_notes): Do not place a REG_DEAD note
4607         when value is both set and used.
4608
4609 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
4610
4611         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
4612         as well.
4613         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
4614         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
4615
4616 2004-02-27  Andrew Pinski  <apinski@apple.com>
4617
4618         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
4619         Speedup common case of the type values being in the same order.
4620
4621 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
4622
4623         * config/ia64/ia64.h (no-inline-float-divide): New option.
4624         * config/ia64/ia64.h (no-inline-int-divide): New option.
4625         * config/ia64/ia64.h (no-inline-sqrt): New option.
4626         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
4627         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
4628         * config/ia64/ia64.c (ia64_override_options): Modify error
4629         checking for inlined division/sqrt.
4630
4631 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
4632
4633         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
4634         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
4635         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
4636         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
4637         copyright.
4638
4639 2004-02-27  Paul Brook  <paul@codesourcery.com>
4640
4641         * function.c (assign_parms): Don't count pretend args for alignment.
4642
4643 2004-02-27  Richard Henderson  <rth@redhat.com>
4644
4645         * passes.c: New file.
4646         * Makefile.in (OBJS-common): Add it.
4647         * diagnostic.c (rtl_dump_and_exit): Move decl ...
4648         * flags.h (rtl_dump_and_exit): ... here.
4649         * output.h (size_directive_output, last_assemble_variable_decl):
4650         Move from toplev.c.
4651         * rtl.h (reg_alloc): Move from toplev.c.
4652         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
4653         struct dump_file_info, enum dump_file_index, dump_file_tbl,
4654         open_dump_file, close_dump_file, rest_of_decl_compilation,
4655         rest_of_type_compilation, rest_of_handle_final,
4656         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
4657         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
4658         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
4659         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
4660         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
4661         rest_of_handle_tracer, rest_of_handle_if_conversion,
4662         rest_of_handle_if_after_combine, rest_of_handle_web,
4663         rest_of_handle_branch_prob,
4664         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
4665         rest_of_handle_addressof, rest_of_handle_sibling_calls,
4666         rest_of_handle_jump_bypass, rest_of_handle_inlining,
4667         rest_of_handle_null_pointer, rest_of_handle_combine,
4668         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
4669         rest_of_handle_gcse, rest_of_handle_loop_optimize,
4670         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
4671         (decode_d_option): Use enable_rtl_dump_file.
4672         (compile_file, finalize, do_compile): Move profile+combine+graph
4673         cleanup to finish_optimization_passes.
4674         * toplev.h (init_optimization_passes, finish_optimization_passes,
4675         enable_rtl_dump_file): Declare.
4676
4677 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
4678             Roger Sayle  <roger@eyesopen.com>
4679
4680         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
4681         operands to build a tree with swapped operands.
4682         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
4683         'unsignedp' predicate to specify the signedness.
4684
4685 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
4686
4687         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
4688         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
4689         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
4690         comment typos and formatting.  Follow spelling conventions.
4691
4692 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
4693
4694         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
4695         fix_truncsfsi2.
4696
4697         * config/rs6000/spe.md: Delete spe_efsctuiz.
4698         Add spe_fixuns_truncsfsi2.
4699         Add spe_fix_truncsfsi2.
4700
4701 2004-02-26  Eric Christopher  <echristo@redhat.com>
4702
4703         * c-lex.c (c_lex_string_translate): New variable.
4704         (lex_string): Use to determine string translation.
4705         * c-pragma.h: Prototype.
4706         * c-parse.in (start_string_translation): New. Set above.
4707         (stop_string_translation): Ditto.
4708         (attribute, attribute_list, asm_def, asm_stmt,
4709         asm_operand): Use above functions.
4710         * cp/parser.c (cp_parser_declaration): Translate strings
4711         unless token is RID_EXTERN. Set c_lex_string_translate
4712         for recursive use.
4713         (cp_parser_asm_definition): Only translate argument strings
4714         to asms.
4715         (cp_parser_asm_operand_list): Ditto.
4716         (cp_parser_attribute_list): Do not translate attribute strings.
4717
4718 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4719
4720         * stmt.c (expand_start_case_dummy): Remove.
4721         * tree.h: Remove the corresponding prototype.
4722
4723 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4724
4725         * builtins.c (apply_args_register_offset): Remove.
4726         * tree.h: Remove the corresponding prototype.
4727
4728 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4729
4730         * stor-layout.c (is_pending_size): Remove.
4731         * tree.h: Remove the corresponding prototype.
4732
4733 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4734
4735         * recog.c (validate_replace_src): Remove.
4736         * recog.h: Remove the corresponding prototype.
4737
4738 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4739
4740         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
4741         MAYBE_REG_PARM_STACK_SPACE.
4742         * function.c: Likewise.
4743         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
4744         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
4745         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
4746         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
4747
4748 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4749
4750         * c-decl.c (c_expand_deferred_function): Remove.
4751         * c-tree.h: Remove the corresponding prototype.
4752
4753 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4754
4755         * postreload.c (reload_cse_move2add): Generate just a PLUS
4756         instead of an entire SET.
4757
4758 2004-02-26  Jan Hubicka  <jh@suse.cz>
4759
4760         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
4761         /pentium4m.
4762         * i386.c (override_options): Add support for new CPUs.
4763         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
4764         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
4765         constants.
4766         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
4767
4768 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
4769
4770         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
4771
4772 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
4773
4774         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
4775         (sparc_emit_fixunsdi): New prototype.
4776         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
4777         (sparc_emit_fixunsdi): New function.
4778         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
4779         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
4780         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
4781         to sparc_emit_floatunsdi.
4782         (fixuns_truncsfdi2): New expander.
4783         (fixuns_truncdfdi2): Likewise.
4784
4785 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
4786
4787         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
4788         unless HAVE_cc0.
4789
4790 2004-02-25  Richard Henderson  <rth@redhat.com>
4791
4792         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
4793         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
4794         use (op0-op1) == 0 if op0 is a pointer.
4795         * config/alpha/alpha.md (cmpdi): Use some_operand.
4796         (three comparison combine splits): Remove.
4797
4798 2004-02-25  Richard Henderson  <rth@redhat.com>
4799
4800         PR c/12794
4801         * c-common.c (handle_alias_attribute): Reject the attribute if
4802         current_function_decl is set.
4803
4804 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
4805
4806         * config.gcc: Add comment describing extra_gcc_objs.
4807         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
4808         * configure.ac (extra_gcc_objs): New substitution variable.
4809         (host_extra_gcc_objs): Don't substitute.
4810         * configure: Regenerate.
4811         * Makefile.in: Use extra_gcc_objs.
4812
4813 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
4814
4815         * doc/contrib.texi: Add an entry for myself.
4816
4817 2004-02-25  Jan Hubicka  <jh@suse.cz>
4818
4819         * basic-block.h (make_eh_edge, break_superblocks): Declare.
4820         * cfgbuild.c (make_eh_edge):  Make global.
4821         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
4822         * except.c (build_post_landing_pads, connect_post_landing_pads,
4823         dw2_build_landing_pads, sjlj_emit_function_enter,
4824         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
4825         sjlj_build_landing_pads): Update CFG.
4826         (emit_to_new_bb_before): New function.
4827         (finish_eh_generation): Do not rebuild the CFG.
4828
4829 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4830
4831         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
4832         target_cpu_default defines.
4833         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
4834         * pa.h (TARGET_DEFAULT): Likewise.
4835
4836 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
4837
4838         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
4839         comparisons with regard to signedness.
4840
4841 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
4842
4843         * arm.c (thumb_legitimize_address): New function.
4844         * arm-protos.h: Prototype it.
4845         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
4846         (LEGITIMIZE_ADDRESS): Use it.
4847
4848 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
4849
4850         * reload1.c (reload): Only spill eliminable register with multiple
4851         adjacent elimination alternatives if all alternatives fail.
4852
4853 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
4854
4855         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
4856         is -4095...+4095 inclusive.
4857
4858 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
4859
4860         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
4861         the bootstrap failure with Sun CC 5.4 and 5.5.
4862
4863 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
4864
4865         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
4866         which modifies NEWREG.
4867         (cse_condition_code_reg): Update the mode of CC_REG in
4868         CC_SRC_INSN on our own.
4869
4870 2004-02-24  Michael Matz  <matz@suse.de>
4871
4872         * config/i386/i386.c (ix86_comp_type_attributes): Check for
4873         regparm attributes.
4874
4875 2004-02-24  Richard Henderson  <rth@redhat.com>
4876
4877         * toplev.c (dump_file_tbl): Rename from dump_file.
4878         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
4879         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
4880         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
4881         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
4882         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
4883         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
4884         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
4885         s/rtl_dump_file/dump_file/g.
4886
4887 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
4888
4889         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
4890         (spe_fixuns_truncsfsi2): Delete.
4891
4892         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
4893         (fixuns_truncsfsi2): Delete.
4894
4895 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
4896
4897         PR/14240
4898         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
4899
4900 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
4901
4902         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
4903
4904 2004-02-24  Jason Merrill  <jason@redhat.com>
4905
4906         * tree.c (check_qualified_type): New fn.
4907         (get_qualified_type): Use it.  If type already has the desired
4908         quals, just return it.
4909         * tree.h: Declare it.
4910
4911 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
4912
4913         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
4914         TARGET_SCHED_FINISH_GLOBAL): New macros.
4915
4916         * target.h (md_init_global, md_finish_global): Function
4917         declarations corresponding to new target macros.
4918
4919         * haifa-sched.c (sched_init, sched_finish): Allow target to
4920         call the new schedular hooks.
4921
4922         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
4923         call to update_life_info.
4924
4925         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
4926         flag_schedule_insns for SH4.
4927
4928         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
4929         find_set_regmode_weight, find_insn_regmode_weight,
4930         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
4931         sh_variable_issue, high_pressure, ready_reorder,
4932         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
4933         functions used to throttle the insn movement in first
4934         scheduling pass for SH.
4935
4936         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
4937         TARGET_SCHED_FINISH_GLOBAL.
4938
4939 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
4940
4941         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
4942         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
4943         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
4944         symbols in sections named by the user.
4945         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
4946         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
4947         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
4948         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
4949         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
4950         the above.
4951         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
4952         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
4953         one more pseudo to further improve code generation.
4954         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
4955         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
4956         inside UNSPEC.
4957         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
4958         * config/frv/frv.c (frv_legitimate_address_p): Added
4959         allow_double_reg_p argument.  Adjust all callers.  Use it to
4960         decide whether to enable double-register indirect addressing.
4961         (frv_funcdesc_alias_set): Remove.
4962         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
4963         register.  Emit movdi_ldd.
4964         (ldd_address_operand): New.
4965         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
4966         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
4967         (PREDICATE_CODES): Add ldd_address_operand.
4968         * config/frv/frv.md (movdi_ldd): New.
4969         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
4970         intermediate computations if possible.
4971         (symGOTOFF2reg_i): Fix harmless typo.
4972         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
4973         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
4974         relocated p_vaddr to vaddr type.
4975         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
4976         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
4977         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
4978         MEM, or use a funcdesc alias set.  Use regular move instead of
4979         ldd.
4980         (dbl_memory_one_insn_operand): Recognize function descriptors by
4981         type or by alias set, and don't split them.
4982         * config/frv/frv.md (call, call_value): Never use call_internal
4983         for fdpic.
4984         (call_internal, call_value_internal): Never match for FDPIC.
4985         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
4986         call_value_fdpicsi): Require FDPIC.
4987         (ldd): Removed.
4988         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
4989         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
4990         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
4991         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
4992         FDPIC.  Compute data base address.
4993         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
4994         before the other self-specs are processed.
4995         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
4996         Build with -fPIC.
4997         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
4998         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
4999         inhibit_libc is defined.
5000         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
5001         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
5002         __FRV_FDPIC__.
5003         (__RELOC_POINTER): Define.
5004         (_Unwind_IteratePhdrCallback): Use it.
5005         * config/frv/frv.h (Twrite): Define.
5006         (TRANSFER_FROM_TRAMPOLINE): Use it.
5007         * config/frv/linux.h (INVOKE__main): Undefine.
5008         (Twrite): Override.
5009         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
5010         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
5011         (-mlibrary-pic): Emphasize that this option generates EABI code.
5012         (-mcpu): Add fr550.
5013         (-mpack): Remove.
5014         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
5015         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
5016         and CONSTs in FDPIC mode.
5017         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
5018         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
5019         * config/frv/frv.c (move_source_operand): Don't accept symbolic
5020         constants.
5021         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
5022         rather than 'i' constraint for the 2-instruction alternative.
5023         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
5024         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
5025         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
5026         EXTRA_CONSTRAINT_FOR_Y.
5027         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
5028         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
5029         (addsi3): Change 'Y' constraint to 'Q'.
5030         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
5031         * reload.c (CONST_POOL_OK_P): New macro.
5032         (find_reloads): Use it to decide whether a constant can be forced
5033         into memory.
5034         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
5035         constant satisfies got12_operand.
5036         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
5037         (frv_legitimate_address_p): Check for valid unspec offsets using
5038         got12_operand rather than frv_legitimate_fdpic_operand_p.
5039         (frv_legitimate_fdpic_operand_p): Delete.
5040         (frv_emit_movsi): Abort if we try to use the FDPIC register during
5041         or after reload.
5042         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
5043         TARGET_FDPIC.
5044         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
5045         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
5046         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
5047         (frv_fdpic_fptr_operand): Don't declare here.
5048         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
5049         rather than fdpic_got12_operand.
5050         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
5051         got12_operand and const_unspec_operand.
5052         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
5053         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
5054         (symbolic_operand): Remove.
5055         (const_unspec_operand): New predicate.
5056         * config/frv/frv.md (*movsi_got): Use got12_operand.
5057         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
5058         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
5059         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
5060         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
5061         * config/frv/frv.c (frv_unspec): New structure.
5062         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
5063         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
5064         validate CONST indices.  Use frv_output_const_unspec to print them.
5065         (frv_print_operand): Update call to unspec_got_name.  Use
5066         frv_output_const_unspec to print constant unspecs.
5067         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
5068         Reject UNSPECs otherwise.
5069         (unspec_got_name): Take the relocation number as argument, not an
5070         rtx containing it.
5071         (frv_output_addr_const_extra): Remove, replacing with...
5072         (frv_output_const_unspec): ...this new function.
5073         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
5074         (gpr_or_int12_operand): Use fdpic_got12_operand.
5075         (dbl_memory_one_insn_operand): Likewise.
5076         (fdpic_got12_operand): Use frv_const_unspec_p.
5077         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
5078         are already legitimate.  Use frv_small_data_reloc_p when deciding
5079         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
5080         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
5081         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
5082         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
5083         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
5084         label, for real this time.
5085         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
5086         representation of visibility.
5087         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
5088         such.
5089         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
5090         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
5091         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
5092         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
5093         it was explicitly disabled.
5094         (frv_stack_info): There is no need to save the link register in every
5095         frame unless TARGET_LINKED_FP is true.
5096         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
5097         frame pointer if the stack pointer might change value.
5098         (frv_return_addr_rtx): Check and process "count" argument.
5099         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
5100         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
5101         (frv_find_base_term): Declare.
5102         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
5103         (FIND_BASE_TERM): Define.
5104         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
5105         small_data_register_operand, small_data_symbolic_operand.  Add
5106         symbolic_operand.
5107         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
5108         (frv_print_operand_memory_reference, output_move_single): Remove
5109         special handling for unlegitimized sdata addresses.
5110         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
5111         and symbolic addresses.
5112         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
5113         (frv_find_base_term): New function.
5114         (int_2word_operand): Check specifically for symbolic address constants.
5115         (pic_register_operand, pic_symbolic_operand): Delete.
5116         (small_data_register_operand, small_data_symbolic_operand): Delete.
5117         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
5118         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
5119         (move_source_operand): Only accept CONSTs if they're a two-insn
5120         symbolic constant.
5121         (fdpic_got12_operand): Don't require TARGET_FDPIC.
5122         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
5123         using gen_symGOTOFF2reg*.
5124         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
5125         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
5126         themselves a cost of 3 insns.
5127         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
5128         Change predicate to symbolic_operand.
5129         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
5130         (*movsi_lda_sdata): Delete.
5131         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
5132         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
5133         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
5134         frv-*-*linux*.
5135         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
5136         label.
5137         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
5138         -multilib-library-pic.
5139         (LINK_SPEC): Add -z text for -mfdpic.
5140         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
5141         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
5142         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
5143         Override.
5144         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
5145         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
5146         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
5147         crtstuff-generated files.
5148         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
5149         * config.gcc: Add frv-*-*linux*.
5150         * config/frv/linux.h, config/frv/t-linux: New.
5151         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
5152         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
5153         when -mfdpic even if a linker script is explicitly listed.
5154         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
5155         * config/frv/frv.c (frv_override_options): Clear asm_out
5156         unaligned_op for SImode on FDPIC.
5157         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
5158         argument passed to decl_readonly_section.
5159         (frv_assemble_integer): Revert 2003-09-30's change, but make the
5160         whole block run with FDPIC even with -fno-PIC.
5161         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
5162         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
5163         symbol or label plus offset to memory.
5164         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
5165         GOTOFF and GPREL for LABEL_REF.
5166         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
5167         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
5168         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
5169         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
5170         * doc/invoke.texi: Document them.
5171         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
5172         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
5173         (frv_splittable_got_operand): Removed.
5174         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
5175         LO_SUM.  Add comments.
5176         (frv_override_options): Moved enabling of FDPIC to
5177         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
5178         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
5179         (frv_legitimize_fdpic_address): Don't duplicate logic in
5180         frv_emit_movsi.
5181         (frv_gen_GPsym2reg): New.
5182         (unspec_got_name): Added gprel.
5183         (frv_expand_fdpic_call): Add support for inlining PLTs.
5184         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
5185         (gpr_or_int12_operand): Added GPREL12.
5186         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
5187         (small_data_symbolic_operand): Fail if FDPIC.
5188         (fdpic_splittable_got_operand): Removed.
5189         (fdpic_got12_operand): Added GPREL12.
5190         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
5191         when appropriate.  Fix sdata GOTOFF.
5192         (frv_legitimate_constant_p): Require legitimate PIC operand for
5193         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
5194         (frv_assemble_integer): Move FDPIC funcdesc handling out of
5195         flag_pic case.
5196         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
5197         frv_assemble_integer fails.
5198         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
5199         (SUBTARGET_DRIVER_SELF_SPECS): New.
5200         (ASM_SPEC): Don't pass -mno-fdpic.
5201         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
5202         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
5203         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
5204         -multilib-library-pic.
5205         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
5206         condexec_si_media_operator, condexec_sf_add_operator and
5207         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
5208         and condexec_sf_unary_operator.
5209         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
5210         New.
5211         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
5212         movsi_internal.  Give them internal names.  movsi_got has type
5213         int.
5214         (fdpic got splitters): Remove.
5215         (symGPREL2reg, symGPREL2reg_hilo): New.
5216         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
5217         to -mlibrary-pic.  Map -multilib-library-pic to it.
5218         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
5219         Document.
5220         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
5221         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
5222         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
5223         (frv_cannot_force_const_mem): New function.
5224         (const_small_data_p, plus_small_data_p): Update comments on sdata
5225         on FDPIC.
5226         (frv_override_options): Set flag_pie for FDPIC too.
5227         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
5228         call-saved registers on FDPIC.
5229         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
5230         don't force LR to be preserved.
5231         (frv_expand_prologue): Likewise.
5232         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
5233         (frv_frame_pointer_required): Don't force it just because the
5234         FDPIC register is used.
5235         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
5236         operand only if !condexec_p.
5237         (frv_legitimize_address): Return the FDPIC-legitimized address.
5238         Don't match small data here on FDPIC.
5239         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
5240         symbols.  Use TRUE/FALSE instead of 1/0.
5241         (frv_local_funcdesc_p): New.
5242         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
5243         immediates when possible.
5244         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
5245         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
5246         an UNSPEC_GOT.
5247         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
5248         12-bit immediates when possible.
5249         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
5250         are not legitimate pic operands.
5251         (frv_in_small_data_p): Re-enable for FDPIC.
5252         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
5253         (FRV_GLOBAL_P): Removed.
5254         * config/frv/frv.md: Add modes to CONSTs.
5255         (movsi_got): New.
5256         (movsi_lo_sum_got): Use separate matches instead of match_dup.
5257         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
5258         (fdpic splittable operations): Match on flag_pic != 1.
5259         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
5260         * config/frv/frv.c (frv_asm_out_constructor,
5261         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
5262         bytes, not bits.
5263         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
5264         * config/frv/frv.c (frv_assemble_integer): Reject complex
5265         expressions referencing function SYMBOL_REFs.
5266         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
5267         (move_source_operand): Reject CONSTs that reference function
5268         SYMBOL_REFs on FDPIC.
5269         (frv_emit_movsi): If we get such a CONST, break it up.
5270         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
5271         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
5272         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
5273         MEM.
5274         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
5275         (frv_trampoline_size): Increase for FDPIC.
5276         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
5277         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
5278         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
5279         Disable use of GOTOFF for now.
5280         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
5281         Disable use of small data in FDPIC for now.
5282         (frv_asm_output_mi_thunk): Implement for FDPIC.
5283         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
5284         * config/frv/frv.c (frv_asm_out_constructor): Use
5285         frv_assemble_integer for FDPIC pointers.
5286         (frv_asm_out_destructor): Likewise.
5287         * config/frv/frv.md (ldd): Fix order of operands.  Use
5288         address_operand for input.
5289         2003-09-18  DJ Delorie  <dj@redhat.com>
5290         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
5291         (unspec_got_name): Correct typo.
5292         (frv_emit_movsi): Pre-expand splittable GOTs.
5293         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
5294         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
5295         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
5296         * config/frv/t-frv: Add -mfdpic multilibs.
5297         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
5298         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
5299         * config/frv/frv.c (frv_override_options): -mfdpic assumes
5300         flag_pic, default to 32-bit pics, require DWORD ops.
5301         (frv_override_options): Add W and Z constraints.
5302         (frv_expand_prologue): No pic prologue for -mfdpic.
5303         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
5304         (frv_print_operand_memory_reference): Handle GOT constants.
5305         (frv_legitimate_address_p): Allow GOT constants.
5306         (frv_legitimize_address): Handle GOT addresses too.
5307         (frv_legitimate_fdpic_operand_p): New.
5308         (frv_legitimize_fdpic_address): New.
5309         (unspec_got_name): New.
5310         (frv_output_addr_const_extra): New.
5311         (frv_expand_fdpic_call): New.
5312         (frv_fdpic_fptr_operand): New.
5313         (gpr_or_int12_operand): Handle GOT operands.
5314         (int_2word_operand): Handle GOT operands.
5315         (fdpic_operand): New.
5316         (fdpic_splittable_got_operand): New.
5317         (fdpic_got12_operand): New.
5318         (frv_emit_movsi): Handle GOT operands.
5319         (frv_assemble_integer): -mfdpic doesn't use rofixups.
5320         (frv_print_operand): Support 'g' code for GOT operands.
5321         * config/frv/frv-protos.h: Add prototypes as needed.
5322         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
5323         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
5324         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
5325         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
5326         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
5327         R_FRV_GOTOFFLO): New.
5328         (movsi_high_got, movsi_lo_sum_got): New.
5329         (*movsi_pic): Don't use this splitter for -mfdpic.
5330         (addsi3): Allow GOT references also.
5331         (call, call_value): Handle -mfdpic separately.
5332         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
5333         call_value_fdpicsi): New.
5334         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
5335         symGOTOFF2reg_i): New.
5336         * config/frv/frv.h (MASK_FDPIC): New.
5337         (TARGET_FDPIC): New.
5338         (TARGET_SWITCHES): Add -mfdpic.
5339         (FDPIC_FPTR_REGNO): New.
5340         (FDPIC_REGNO): New.
5341         (OUR_FDPIC_REG): New.
5342         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
5343         FDPIC_CALL_REGS.
5344         (REG_CLASS_NAMES): Likewise.
5345         (REG_CLASS_CONTENTS): Likewise.
5346         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
5347         (EXTRA_CONSTRAINT): Add it here.
5348         (FRV_GLOBAL_P): New.
5349         (OUTPUT_ADDR_CONST_EXTRA): New.
5350
5351 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
5352
5353         * config/sparc/sparc.h: Remove commented-out definitions of
5354         TARGET_EDOM and GEN_ERRNO_RTX.
5355
5356 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
5357
5358         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
5359         df_analyse with df_analyze.
5360
5361 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
5362
5363         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
5364         beginning of block.
5365
5366 2004-02-23  James E Wilson  <wilson@specifixinc.com>
5367
5368         * calls.c (precompute_arguments): Update comment.
5369
5370 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
5371
5372         * et-forest.c: Replace et_occurences with et_occurrences.
5373
5374 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
5375
5376         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
5377         with iv_analyze.
5378
5379 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
5380
5381         * config/i386/i386.c: Rename pni to sse3.
5382         * config/i386/i386.h: Likewise.
5383         * config/i386/i386.md: Likewise.
5384         * config/i386/pmmintrin.h: Likewise.
5385         * doc/extend.texi: Likewise.
5386         * doc/invoke.texi: Likewise.
5387
5388 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
5389             Kazu Hirata  <kazu@cs.umass.edu>
5390
5391         Remove -fwritable-strings.
5392         * c-common.c (fix_string_type): Don't check
5393         flag_writable_strings.
5394         (fix_string_type): Likewise.
5395         * c-opts.c (set_std_c89): Don't initialize
5396         flag_writable_strings.
5397         (set_std_c99): Likewise.
5398         * common.opt (fwritable-strings): Remove.
5399         * flags.h: Remove the external declaration of
5400         flag_writable_strings.
5401         * opts.c (common_handle_option) <OPT_fwritable_strings>:
5402         Remove.
5403         * toplev.c (flag_writable_strings): Remove.
5404         (f_options): Remove an entry for writable-strings.
5405         * varasm.c (const_hash_1) <STRING_CST>: Don't check
5406         flag_writable_strings.
5407         (compare_constant) <STRING_CST>: Likewise.
5408         (build_constant_desc): Likewise.
5409         * config/darwin.c (machopic_select_section): Likewise.
5410         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
5411         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
5412         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
5413         * config/mips/mips.c (mips_select_section): Likewise.
5414         (mips_encode_section_info): Likewise.
5415         * config/pa/pa.c (pa_select_section): Likewise.
5416         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
5417         * config/v850/v850.c (v850_select_section): Likewise.
5418         * doc/invoke.texi (-fwritable-strings): Remove.
5419         (-fno-const-strings): Don't mention -fwritable-strings.
5420         * doc/trouble.texi: Don't mention -fwritable-strings.
5421
5422 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
5423
5424         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
5425
5426 2004-02-23  Dale Johannesen  <dalej@apple.com>
5427
5428         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
5429         (movdf_hardfloat64):  Ditto.
5430         (movdf_softfloat64):  Ditto.
5431
5432 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
5433         * config/rs6000/rs6000.c (function_arg): call to
5434         rs6000_mixed_function_arg for DFmode moved to allow
5435         normal DFmode incoming register assignment.
5436
5437 2004-02-23  Dale Johannesen  <dalej@apple.com>
5438
5439         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
5440         (movdf_hardfloat64):  Ditto.
5441
5442 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
5443
5444         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
5445         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
5446         copyright.
5447
5448 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
5449
5450         PR c/14156
5451         * c-typeck.c (c_expand_return): Change check for VAR_DECL
5452         to use DECL_P instead.
5453
5454         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
5455         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
5456
5457 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
5458
5459         * Makefile.in (opts.o): Depend on target.h.
5460         * opts.c (decode_options): Use targetm.default_short_enums
5461         instead of DEFAULT_SHORT_ENUMS.
5462         * system.h (DEFAULT_SHORT_ENUMS): Poison.
5463         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
5464         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
5465         * target.h (gcc_target): Add default_short_enums.
5466         * config/cris/cris.h: Remove a comment about
5467         DEFAULT_SHORT_ENUMS.
5468         * config/ip2k/ip2k.h: Likewise.
5469         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
5470         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
5471
5472 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
5473             Falk Hueffner  <falk@debian.org>
5474
5475         PR c/14188
5476         * builtins.c (expand_builtin_va_arg): Emit an informative message
5477         if a trap is generated.
5478         * c-typeck.c (build_function_call): Likewise.
5479
5480 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
5481
5482         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
5483         fopen.
5484         * libgcov.c: Include sys/stat.h.
5485         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
5486         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
5487         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
5488         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
5489
5490 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
5491
5492         * reorg.c: Remove comments about dead ports.
5493
5494 2004-02-22  Christopher Faylor  <cgf@redhat.com>
5495
5496         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
5497         extra host object file when targetting cygwin rather than generic
5498         object files.
5499
5500 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
5501
5502         Merge from tree-ssa:
5503         2003-11-20  Richard Henderson  <rth@redhat.com>
5504
5505                 * tree-inline.c (insert_decl_map): New.
5506                 (remap_decl, remap_type, remap_block, copy_body_r,
5507                 initialize_inlined_parameters, declare_return_variable,
5508                 remap_save_expr): Use it.
5509
5510         * function.c (copy_body_r): Add mapping from id->ret_label to
5511         id->ret_label.  Revert test for ret_label.
5512
5513 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
5514
5515         * genoutput.c (process_template): Strip trailing whitespace in @
5516         templates and issue a warning if there was any.
5517
5518 2004-02-21  Christopher Faylor  <cgf@redhat.com>
5519
5520         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
5521         object file when targetting cygwin.
5522         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
5523         overridden by top-level Makefile.
5524
5525 2004-02-21  Roger Sayle  <roger@eyesopen.com>
5526
5527         * config/i386/i386.c (standard_80387_constant_p): Also prefer
5528         the x87's load constant instructions when optimizing for size.
5529
5530 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
5531
5532         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
5533         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
5534         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
5535         * fold-const.c: Likewise.
5536         * simplify-rtx.c: Likewise.
5537
5538 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
5539
5540         * combine.c (can_combine_p): Don't ignore SETs marked with
5541         REG_EH_REGION notes.
5542         (try_combine): When attemting to fix unrecognized insns, don't
5543         split a PARALLEL that contains the original i2.
5544
5545 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
5546
5547         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
5548         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
5549         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
5550         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
5551         (vector, pixel, bool): #define to __vector, __pixel and __bool.
5552         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
5553         portion of header.
5554         (__altivec_link_error_invalid_argument): Remove prototype; will use
5555         __builtin_altivec_compiletime_error("vec_*") instead.
5556         (vec_*): Fix/complete set of available operation overloads given the
5557         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
5558         cv-correctness of pointer arguments; in C, always check for correct
5559         argument types before macro expansion.
5560         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
5561         defining Darwin/PowerPC-specific '-f[no-]altivec' and
5562         '-W[no-]altivec-long-deprecated' switches.
5563         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
5564         '__vector', '__pixel' and '__bool' macros using
5565         '__attribute__((altivec(...)))' types.
5566         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
5567         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
5568         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
5569         New type nodes.
5570         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
5571         handling '-W[no-]altivec-long-deprecated'.
5572         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
5573         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
5574         altivec_expand_dst_builtin): Remove casts from integer literals.
5575         (altivec_expand_builtin): Likewise; handle expansion of new
5576         '__builtin_altivec_compiletime_error' function.
5577         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
5578         types, and make them distinct from other vector types; register
5579         '__builtin_altivec_compiletime_error' function.
5580         (print_operand): For 'P', print a full target register name instead of
5581         merely its number.
5582         (rs6000_attribute_table): Add "altivec" attribute.
5583         (rs6000_handle_altivec_attribute): New function.
5584         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
5585         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
5586         maps to).
5587         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
5588         declare.
5589         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
5590
5591 2004-02-20  James E Wilson  <wilson@specifixinc.com>
5592
5593         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
5594         check.
5595         (shift_mix4left+2): Delete redundant pattern.
5596
5597 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
5598
5599         * alias.c (OUTGOING_REGNO): Don't define the default.
5600         * builtins.c (OUTGOING_REGNO): Likewise.
5601         (INCOMING_REGNO): Likewise.
5602         (apply_args_register_offset): Always use OUTGOING_REGNO.
5603         * combine.c (OUTGOING_REGNO): Likewise.
5604         * sibcall.c (OUTGOING_REGNO): Likewise.
5605         * defaults.h (INCOMING_REGNO): Provide the default.
5606         (OUTGOING_REGNO): Likewise.
5607
5608 2004-02-21  Jan Hubicka  <jh@suse.cz>
5609
5610         * params.def (max-peeled-insns, max-completely-peeled-insns,
5611         max-once-peeled-insns): Set to 400.
5612
5613 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5614
5615         PR c++/12007
5616         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
5617         are set for parameters before outputing debugging information.
5618
5619 2004-02-20  Falk Hueffner  <falk@debian.org>
5620
5621         PR target/14201
5622         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
5623         numbers.
5624
5625 2004-02-20  Per Bothner  <per@bothner.com>
5626
5627         * input.h:  Don't #include line-map.h.  It may cause link problems
5628         with undefined linemap_line_start when line-map.h is included but
5629         line-map.o is not linked, as currently happens with gengtype on
5630         compilers that don't support inline.
5631         * toplev.c:  So we do have to explicitly #include line-map.h here.
5632
5633 2004-02-20  Richard Henderson  <rth@redhat.com>
5634
5635         * doc/invoke.texi: Add -Wvariadic-macros.
5636
5637 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
5638
5639         * haifa-sched.c (sched_emit_insn): Remove.
5640         * sched-int.h: Remove the corresponding prototype.
5641
5642 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
5643
5644         Revert:
5645         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5646         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
5647         * system.h (DEFAULT_SHORT_ENUMS): Poison.
5648         * config/cris/cris.h: Remove a comment about
5649         DEFAULT_SHORT_ENUMS.
5650         * config/ip2k/ip2k.h: Likewise.
5651         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
5652
5653 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
5654             Tom Tromey  <tromey@redhat.com>
5655
5656         * doc/install.texi: Moved --disable-libgcj and
5657         --with-system-zlib documentation to new section for
5658         Java-specific options.
5659         Added explicit Cross-Compiler-Specific Options subheading.
5660         Added section for Java-specific options.
5661
5662 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
5663
5664         * doc/install.texi (Building the Ada compiler): Remove
5665         example.
5666
5667 2004-02-20  James E Wilson  <wilson@specifixinc.com>
5668
5669         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
5670
5671 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
5672
5673         * gcc.c (process_command): Allow translation of the copyright
5674         symbol but not the rest of the copyright message.
5675         * gcov.c (print_version): Likewise.  Allow translation of the
5676         message about warranty.
5677
5678 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
5679
5680         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
5681         predicate.
5682         ("*andsi_clear"): Tweak constraints to not match postincrement.
5683         Adjust the predicate to exclude a volatile memory reference.
5684         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
5685         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
5686
5687 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
5688
5689         * move-if-change: Remove.
5690         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
5691         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
5692         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
5693         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
5694         (s-gtyp-gen, s-iov): Use the top level move-if-change.
5695         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
5696
5697 2004-02-19  James E Wilson  <wilson@specifixinc.com>
5698
5699         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
5700         for operand2.  Add condition that requires register_operand operand2
5701         before reload.
5702
5703 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
5704             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5705
5706         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
5707         * config/mips/mips.md: Expand comment above unaligned loads and stores.
5708
5709 2004-02-19  Richard Henderson  <rth@redhat.com>
5710
5711         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
5712         * tree.c (build0, build1, build2, build3, build4): Split out from...
5713         (build): ... here.  Call them.
5714         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
5715
5716         * convert.c (convert_to_integer): Remove extra build argument.
5717         * tree-inline.c (expand_call_inline): Likewise.
5718
5719 2004-02-19  Richard Henderson  <rth@redhat.com>
5720
5721         * c-opts.c (warn_variadic_macros): New.
5722         (c_common_handle_option): Set it.
5723         (sanitize_cpp_opts): Copy it to cpp_opts.
5724         * c.opt (Wvariadic-macros): New.
5725         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
5726         * cppinit.c (cpp_create_reader): Initialize it.
5727         * cppmacro.c (parse_params): Check it.
5728
5729 2004-02-19  David Daney <ddaney@avtrex.com>
5730
5731         PR preprocessor/14198
5732         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
5733         builtin_assert ("machine=mips")
5734
5735 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5736
5737         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
5738         * system.h (DEFAULT_SHORT_ENUMS): Poison.
5739         * config/cris/cris.h: Remove a comment about
5740         DEFAULT_SHORT_ENUMS.
5741         * config/ip2k/ip2k.h: Likewise.
5742         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
5743
5744 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
5745
5746         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
5747         when passing single SFmode quantities in general registers,
5748         put them in the high half.
5749
5750 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
5751
5752         * doc/md.texi (Standard Names): Document additional dependency on
5753         fix pattern.
5754
5755         * optabs.c (ftruncify): Remove.
5756         (expand_fix): Manually inline ftruncify above.
5757         (can_fix_p): Add FIXME note.
5758
5759 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
5760
5761         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
5762         spe_fixuns_truncsfsi2.
5763
5764         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
5765         fixuns_truncsfsi2.
5766
5767 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
5768
5769         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
5770         * testsuite/gcc.dg/20040219-1.c: New test.
5771
5772 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
5773
5774         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
5775         "*subsf3_cconly"): Subtraction is not commutative.
5776
5777 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
5778
5779         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
5780         (sdbout_symbol): If called before sdbout_init, queue DECL for
5781         later and return.
5782         (sdbout_init): Set sdbout_initialized true, process decls
5783         queued earlier by sdbout_symbol.
5784         (sdbout_finish): Use size_t for index variable.
5785
5786 2004-02-19  Jeff Law  <law@redhat.com>
5787
5788         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
5789         for unordered comparison codes.
5790
5791 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
5792
5793         * reload1.c (reload): Correct comment.
5794         (scan_paradoxical_subregs): Remove #if 0 and old comment.
5795         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
5796         register variables are not used by reload.
5797
5798 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
5799
5800         PR target/14209
5801         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
5802         constraints to not match postincrement.  Adjust the predicate to
5803         exclude a volatile memory reference.
5804
5805 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5806
5807         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
5808
5809 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5810
5811         * hooks.c (hook_void_tree_int): Remove.
5812         (hook_void_constcharptr): Likewise.
5813         (hook_int_void_0): Likewise.
5814         * hooks.h: Remove the prototypes for the above three
5815         functions.
5816         * targhooks.c (hook_bool_machine_mode_true): Remove.
5817         * targhooks.h: Remove the prototype for
5818         hook_bool_machine_mode_true.
5819
5820 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5821
5822         * emit-rtl.c (subreg_realpart_p): Remove.
5823         (reorder_insns_with_line_notes): Likewise.
5824         (end_full_sequence): Likewise.
5825         * rtl.h: Remove the prototype for the above functions.
5826
5827 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5828
5829         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
5830         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
5831         config/iq2000/iq2000.h, config/m32r/m32r.h,
5832         config/pdp11/pdp11.h, config/sparc/sparc.h,
5833         config/xtensa/xtensa.h: Remove commented-out or useless
5834         definitions of CASE_VECTOR_PC_RELATIVE.
5835
5836 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5837
5838         * loop.c (all_sets_invariant_p): Remove.
5839
5840 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
5841
5842         PR target/12916
5843         * config/sparc/sparc.h (NPARM_REGS): Delete.
5844         (BASE_RETURN_VALUE_REG): Likewise.
5845         (BASE_OUTGOING_VALUE_REG): Likewise.
5846         (BASE_PASSING_ARG_REG): Likewise.
5847         (BASE_INCOMING_ARG_REG): Likewise.
5848         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
5849         TARGET_ARCH64, not TARGET_V9.
5850         (function_arg_slotno): Dispatch based on the mode class.
5851         Handle vector modes like floating-point modes.
5852         (function_arg_record_value_1): Handle vector types like
5853         floating-point types.
5854         (function_arg_record_value_2): Likewise.
5855         Calculate regno after mode transformation.
5856         (function_arg): Handle vector modes like floating-point modes.
5857         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
5858         If ARCH64, do not recheck alignment.
5859         (function_arg_pass_by_reference): Reorder the conditions.
5860         (sparc_return_in_memory): Move after function_arg_padding.
5861         Implement calling conventions for vector modes.
5862         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
5863         (function_value): Move scope of 'regbase'.
5864         Implement calling conventions for vector modes.
5865         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
5866         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
5867         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
5868         the argument is passed by reference.
5869         (sparc_type_code): Handle vector types.
5870
5871 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
5872
5873         * function.c (assign_parms): When building decl_rtl for
5874         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
5875
5876 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
5877
5878         * expr.c (is_aligning_offset): Check if we are aligning the
5879         expressions's address over BIGGEST_ALIGNMENT in bytes, not
5880         in bits.
5881
5882 2003-02-18  Matt Austern  <austern@apple.com>
5883
5884         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
5885         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
5886         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
5887         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
5888         spec string.
5889         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
5890
5891 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
5892
5893         * dwarf2out.c (loclabel_num): Move outside #ifdef
5894         DWARF2_DEBUGGING_INFO and mark with GTY(()).
5895         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
5896         Mark with GTY(()).
5897         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
5898         Allocate memory with ggc_alloc.  No need to copy anything.
5899         (ia64_hpux_file_end): Update to match.
5900
5901 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
5902
5903         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
5904         by default.
5905
5906 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
5907
5908         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
5909         ("divmodtisi3"): Likewise.
5910         ("udivmoddi4", "udivmodtidi3"): Likewise.
5911         ("divmodsi4", "divmoddisi3"): Likewise.
5912         ("udivmodsi4", "udivmoddisi3"): Likewise.
5913         ("udivsi3", "umodsi3"): Likewise.
5914
5915 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
5916
5917         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
5918         placeholder insn when chunkifying the pool.
5919
5920 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5921
5922         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
5923         generating PIC code.
5924
5925 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
5926
5927         * config/h8300/h8300-protos.h: Add a prototype for
5928         h8300_expand_branch.
5929         * config/h8300/h8300.c (h8300_expand_branch): New.
5930         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
5931         bgtu, beq, bne): Call h8300_expand_branch().
5932
5933 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
5934
5935         * config/h8300/h8300-protos.h: Add prototypes for
5936         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
5937         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
5938         (h8300_hard_regno_mode_ok): Likewise.
5939         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
5940         h8300_hard_regno_nregs().
5941         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
5942
5943 2004-02-18  Per Bothner  <per@bothner.com>
5944
5945         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
5946         partly reverts my 2003-10-01 change, because we're back to logically
5947         including <command line> inside the main line.
5948         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
5949         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
5950         Fixes PR preprocessor/14103.
5951
5952         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
5953         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
5954         (cpp_push_include):  Don't need to increment pfile's line field.
5955         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
5956
5957         * c-ppoutput.c (print struct):  New first_time field.
5958         (init_pp_output):  Set print.first_time.
5959         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
5960         which is set also for (say) <command line>.  Clear print.first_time.
5961
5962         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
5963         does not match the code, so fix both.
5964         (should_stack_file):  Inline include_pch_p function.
5965         (include_pch_p):  Remove pointless function.
5966
5967         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
5968
5969 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
5970
5971         * config/h8300/h8300.md (four define_peephole2's): Use
5972         h8300_regs_ok_for_stm().
5973
5974 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
5975
5976         * config/h8300/h8300-protos.h: Update the prototype for
5977         expand_a_rotate().
5978         * config/h8300/h8300.c (expand_a_rotate): Remove the first
5979         argument.
5980         * config/h8300/h8300.md: Update all callers.
5981
5982 2004-02-18  Jan Hubicka  <jh@suse.cz>
5983
5984         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
5985         floats.
5986         (simplify_binary_operation): Deal with logicals on floats.
5987
5988         * i386.md (SSE fabs splitters): Emit new patterns.
5989         (SSE cmov splitters): Likewise.
5990         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
5991         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
5992         subregs.
5993         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
5994         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
5995
5996 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
5997
5998         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
5999         by hand.
6000         (output_a_rotate): Tweak a comment.
6001         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
6002         (*rotlhi3_1): Change to rotlhi3_1.
6003         (*rotlsi3_1): Change to rotlsi3_1.
6004
6005 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
6006
6007         PR target/13866
6008         * arm.c (load_multiple_operation): Don't insist that the source reg
6009         of a post-increment component is the same as the destination.
6010         (store_multiple_operation): Likewise.
6011
6012 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6013
6014         * config/h8300/h8300.md: Move movsf patterns into one section
6015         of the file.
6016
6017 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6018
6019         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
6020         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
6021         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
6022         config/mips/linux64.h, config/pa/pa-64.h,
6023         config/rs6000/aix51.h, config/rs6000/aix52.h,
6024         config/rs6000/spe.md, config/sparc/linux.h,
6025         config/sparc/linux64.h: Update copyright.
6026
6027 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6028
6029         * config/h8300/h8300.md: Move push patterns into one
6030         section of the file.
6031
6032 2004-02-18  Mark Mitchell <mark@codesourcery.com>
6033
6034         PR c++/11326
6035         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
6036         fntype.
6037
6038 2004-02-18  Paul Brook  <paul@codesourcery.com>
6039
6040         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
6041
6042 2004-02-18  Paul Brook  <paul@codesourcery.com>
6043
6044         PR debug/12934
6045         * dwarf2out.c (loc_descriptor_from_tree): Handle
6046         EXPR_WITH_FILE_LOCATION.
6047
6048 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
6049
6050         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
6051         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
6052         trailing whitespace from instructions.
6053
6054 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
6055
6056         * configure.ac: When generating auto-build.h, pass
6057         --enable-languages to the sub-configure.
6058         Put quotes around ${program_transform_name} when generating
6059         name of as, ld, nm, objdump.
6060         * configure: Regenerate.
6061
6062 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
6063
6064         * Makefile.in (s-check, s-config, s-conditions, s-flags)
6065         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
6066         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
6067         (s-preds, s-iov): Do not depend on move-if-change.
6068
6069 2004-02-17  James E Wilson  <wilson@specifixinc.com>
6070
6071         * caller-save.c (insert_restore): Pass mem through copy_rtx.
6072         (insert_save): Likewise.
6073
6074 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6075
6076         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
6077         warning.
6078
6079 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6080
6081         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
6082         *one_cmplsi2_h8300.
6083         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
6084
6085 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6086
6087         * config/h8300/h8300-protos.h: Update the prototype of
6088         fix_bit_operand().
6089         * config/h8300/h8300.c (fix_bit_operand): Remove the second
6090         argument "what".
6091         * config/h8300/h8300.md: Update all callers.
6092
6093 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6094
6095         * config/h8300/h8300.c (fix_bit_operand): Change the name of
6096         the last argument to "code" from "type".
6097
6098 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6099
6100         * config/h8300/h8300.c: Remove an extern declaration of
6101         rtx_equal_function_value_matters.
6102
6103 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6104
6105         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
6106         by hand.
6107         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
6108         (*iorqi3_1): Change to iorqi3_1.
6109         (*xorqi3_1): Change to xorqi3_1.
6110
6111 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6112
6113         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
6114         typos.
6115
6116 2004-02-17  Jan Hubicka  <jh@suse.cz>
6117
6118         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
6119
6120 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
6121
6122         PR optimization/14119
6123         * combine.c (try_combine): When attemting to fix unrecognized insns,
6124         don't delete SETs marked with REG_EH_REGION notes.
6125
6126 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
6127
6128         * combine.c (simplify_if_then_else): Do not replace
6129         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
6130         modes differ.
6131
6132 2004-02017  Steven Bosscher  <stevenb@suse.de>
6133
6134         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
6135         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
6136         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
6137         * ada/utils.c: Likewise.
6138         * cp/decl.c: Likewise.
6139         * f/com.c: Likewise.
6140         * java/class.c: Likewise.
6141
6142 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6143
6144         * config/h8300/h8300.md: Fix comment typos.
6145
6146 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6147
6148         * config/mips/t-iris6gld: Renamed to ...
6149         * config/mips/t-irix-gld: ... this.
6150         * config.gcc (mips-sgi-irix6*): Reflect this
6151         (mips-sgi-irix5*): Use it with GNU ld.
6152
6153         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
6154         to ...
6155         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
6156         * config/mips/t-irix-gld: Reflect this.
6157         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
6158
6159         * config/mips/iris5gld.h: New file.
6160         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
6161         Only use collect2 without gas.
6162
6163         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
6164         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
6165         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
6166         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
6167
6168         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
6169         * config/mips/iris5.h: ... here.
6170
6171         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
6172         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
6173         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
6174
6175         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
6176         using irix_startfile_spec, irix_endfile_spec.
6177
6178 2004-02-16  Gunther Nikl  <gni@gecko.de>
6179
6180         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
6181
6182 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6183
6184         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
6185         insns by hand.
6186
6187 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6188
6189         * cfghooks.c (split_edge): Speed up updating of dominators.
6190
6191 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
6192
6193         PR c++/11326
6194         * c-common.c (flag_abi_version): Remove.
6195         * c-common.h (flag_abi_version): Likewise.
6196         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
6197         * c.opt (fabi-version): Remove.
6198         * calls.c (expand_call): Always pass a function type to
6199         struct_value_rtx.  Use convert_memory_address.
6200         * common.opt (fabi-version): Add it.
6201         * flags.h (flag_abi_version): Likewise.
6202         (abi_version_at_least): New macro.
6203         * opts.c (common_handle_option): Add OPT_fabi_version.
6204         * toplev.c (flag_abi_version): Define it.
6205         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
6206         New function.
6207         (ia64_output_mi_thunk): Use it.
6208         (ia64_struct_value_rtx): Likewise.
6209
6210 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6211
6212         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
6213         Don't generate insns by hand.
6214
6215 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
6216
6217         PR c++/14178
6218         * doc/invoke.texi (fabi-version): The default is 2 now.
6219
6220 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6221
6222         * loop-iv.c: New file.
6223         * Makefile.in (loop-iv.o): New.
6224         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
6225         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
6226         num_loop_branches): New functions.
6227         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
6228         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
6229         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
6230         get_simple_loop_desc, free_simple_loop_desc): Declare.
6231         (simple_loop_desc): New inline function.
6232         (struct rtx_iv, struct niter_desc): New.
6233         * cfgloopmanip.c (loopify): Specify semantics more precisely.
6234         * expr.c (force_operand): Handle subregs of expressions created by
6235         loop unroller.
6236         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
6237         parts of the initialization to toplev.c
6238         * loop-unroll.c (loop_exit_at_end_p): New.
6239         (unroll_and_peel_loops): Call iv_analysis_done.
6240         (decide_peel_once_rolling, decide_peel_completely,
6241         decide_unroll_stupid, decide_unroll_constant_iterations,
6242         decide_unroll_runtime_iterations, decide_peel_simple,
6243         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
6244         unroll_loop_runtime_iterations): Use new simple loop analysis.
6245         * loop-unswitch.c (compare_and_jump_seq): New.
6246         (may_unswitch_on_p): Renamed to ...
6247         (may_unswitch_on): Use new iv analysis.
6248         (reversed_condition): Export.
6249         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
6250         * predict.c (estimate_probability): Use new simple loop analysis.
6251         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
6252         canon_condition, simplify_using_condition): Declare.
6253         * stor-layout.c (get_mode_bounds): New.
6254         * toplev.c (rest_of_handle_loop2): Some parts of
6255         initialization/finalization moved here from loop-init.c.
6256
6257 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6258
6259         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
6260         pointer.
6261         (CALL_USED_REGISTERS): Likewise.
6262         (REG_ALLOC_ORDER): Likewise.
6263         (REG_CLASS) <GENERAL_REGS>: Likewise.
6264
6265 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
6266
6267         * doc/md.texi (Insn Canonicalizations): Document left-chaining
6268         in associative operators.
6269         * rtlanal.c (commutative_operand_precedence): Create some new
6270         variables.  Prefer a commutative operand on the left, then
6271         binary expressions, then NEG and NOT.
6272
6273 2004-02-16  Matthias Klose  <doko@debian.org>
6274
6275         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
6276         in terms of SHLIB_SOVERSION.
6277         * config/m68k/t-slibgcc-elf-ver: New file.
6278         * config/pa/t-slibgcc-elf-ver: New file.
6279         * config.gcc (m68k-linux, parisc-linux): Use them when not
6280         sjlj exceptions are not configured.
6281
6282 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
6283
6284         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
6285
6286 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
6287
6288         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
6289
6290 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
6291
6292         * doc/sourcebuild.texi: Mention backends.html.
6293
6294 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
6295
6296         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
6297         line-map.c, line-map.h, var-tracking.c: Fix comment
6298         formatting.
6299
6300 2004-02-16  Richard Henderson  <rth@redhat.com>
6301
6302         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
6303
6304         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
6305
6306 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
6307
6308         * config/h8300/h8300.md: Remove unnecessary parallels from
6309         all define_insn and define_split patterns.
6310
6311 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
6312
6313         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
6314         "clobber").
6315
6316 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
6317
6318         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
6319         '%#'.
6320
6321 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
6322
6323         * config/ia64/ia64.c, config/mips/mips.c,
6324         config/mmix/mmix-modes.def: Fix comment typos.
6325
6326 2004-02-15  Roger Sayle  <roger@eyesopen.com>
6327
6328         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
6329         (get_directive_line): Remove unused function prototype.
6330
6331 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
6332
6333         * tree-inline.c (copy_body_r): Do not replace ret_label.
6334
6335 2004-02-14  Jan Hubicka  <jh@suse.cz>
6336
6337         * i386.c (x86_four_jump_limit): New variable.
6338         (k8_avoid_jump_misspredicts): Rename to ...
6339         (ix86_avoid_jump_misspredicts): .. this one.
6340         (ix86_pad_returns): Break out from ...
6341         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
6342         to.
6343         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
6344
6345 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
6346
6347         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
6348         PARALLEL is NULL.
6349
6350 2004-02-14  Per Bothner  <per@bothner.com>
6351
6352         * fix-header.c (line_table):  Move local variable in main to global.
6353         * scan.h (line_table):  Use it.
6354         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
6355         line (recently renamed to src_loc) before calling recognized_function.
6356
6357 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
6358
6359         * Makefile.in: Fix comment typos.
6360
6361 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
6362
6363         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
6364         for start_value when it is directly moved into reg, and factorize
6365         the retrieval of GET_MODE (reg).
6366
6367 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
6368
6369         * config/mips/mips-protos.h (mips_load_got_page): Delete.
6370         (mips_load_got_global): Delete.
6371         (mips_gotoff_page): Declare.
6372         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
6373         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
6374         UNSPEC_LOAD_GOT pattern rather than a MEM.
6375         (*load_got[sd]i): New patterns.
6376         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
6377         (mips_load_got_page, mips_load_got_global): Delete.
6378         (mips_gotoff_page): New function.
6379         (override_options): Don't initialize mips_got_alias_set.
6380
6381 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
6382
6383         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
6384         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
6385         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
6386         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
6387         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
6388         * config/mips/mips.c: Fix some overly-long lines.
6389         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
6390         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
6391
6392 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6393
6394         * configure.ac: Search for as, ld below libexec/gcc.
6395         * configure: Regenerate.
6396
6397 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
6398
6399         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
6400         __builtin_arm_setwcx ().
6401         * config/arm/arm.c (arm_expand_builtin): Generate operands
6402         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
6403
6404 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
6405
6406         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
6407         and "wmuluh" to "wmulsm" and "wmulum", respectively.
6408         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
6409         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
6410         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
6411         (_mm_mulhi_pu16): Likewise.
6412
6413 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
6414
6415         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
6416         DECL_NAME != 0 before dereferencing.
6417
6418 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
6419
6420         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
6421         (s390_output_addr_const_extra): Declare.
6422         (s390_output_pool_entry): Remove FILE * argument.
6423         * config/s390/s390.c (s390_output_symbolic_const): Remove.
6424         (s390_output_addr_const_extra): New function.
6425         (print_operand_address): Call output_addr_const instead of
6426         s390_output_symbolic_const.
6427         (print_operand): Likewise.
6428         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
6429         Remove FILE * argument.
6430         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
6431         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
6432         call.
6433
6434 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6435
6436         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
6437         (struct edge, struct vertex, struct graph): New.
6438         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
6439         free_graph): New functions.
6440
6441 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
6442
6443         * config/mips/mips.md (casesi_internal, casesi_internal_di):
6444         Use ".set macro" to avoid warnings about multi-instruction
6445         macros, since they're intentional.
6446
6447 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
6448
6449         * config/darwin.h: Add include guards.  Remove old, now incorrect,
6450         comment about STANDARD_EXEC_PREFIX.
6451
6452         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
6453         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
6454         for installing .1 manpages.  Add rules for installing cpp
6455         and gcov manpages under their installed names.
6456
6457 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
6458
6459         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
6460         host, but try LD_FOR_TARGET first.
6461         * configure: Rebuilt.
6462
6463 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
6464
6465         * dbxout.c: Move declaration of dbxout_type_decl outside
6466         #ifdef DBX_DEBUGGING_INFO.
6467         * c-parse.in: Don't give the asmdef production a type.
6468
6469 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
6470
6471         * debug.h (struct gcc_debug_hooks): Add type_decl field.
6472         (debug_nothing_tree_int): Prototype.
6473         (dwarf_debug_hooks): Delete, unused.
6474         * debug.c (do_nothing_debug_hooks): Update.
6475         (debug_nothing_tree_int): New function.
6476         * langhooks.h (struct lang_hooks_for_decls):
6477         Remove builtin_type_decls field.
6478         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
6479         (LANG_HOOKS_DECLS): Update.
6480         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
6481         Use debug_hooks->type_decl.
6482         * dbxout.c (preinit_symbols): New static.
6483         (dbx_debug_hooks, xcoff_debug_hooks): Update.
6484         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
6485         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
6486         for symbols to output.
6487         (dbxout_type_decl): New function.
6488         (dbxout_symbol): If called before dbxout_init has run, queue
6489         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
6490         to TYPE_DECLs before emitting them.
6491         * xcoffout.c (assign_type_number): Delete.
6492         (xcoff_type_numbers): New static table.
6493         (xcoff_assign_fundamental_type_number): New function.
6494         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
6495         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
6496         * sdbout.c: Include varray.h.
6497         (deferred_global_decls): New static.
6498         (sdb_debug_hooks): Update.
6499         (sdbout_global_decl): If we can't emit something right now,
6500         remember it in deferred_global_decls.
6501         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
6502         (sdbout_init): Initialize deferred_global_decls.
6503         * Makefile.in: Update dependencies of sdbout.o.
6504         * dwarf2out.c (dwarf2out_type_decl): New function.
6505         (dwarf2_debug_hooks): Update.
6506         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
6507         * c-decl.c (getdecls): Just return 0.
6508         (check_for_loop_decls): Don't use getdecls.
6509         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
6510         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
6511
6512 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
6513
6514         * config/s390/s390.c (s390_sched_reorder2): Remove.
6515         (TARGET_SCHED_REORDER2): Do not redefine.
6516
6517 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
6518
6519         * c-parse.in (maybe_type_qual): Delete.
6520         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
6521         (asm_argument): New grammar rules.
6522         (extdef_1): Use asmdef.
6523         (maybeasm): Move down with other asm rules; use simple_asm_expr.
6524         (xexpr): Move up with other expression rules.
6525         (stmt): Use asm_stmt.
6526
6527         * c-typeck.c (build_asm_expr): New function - body mostly
6528         pulled from build_asm_stmt.
6529         (build_asm_stmt): Just handle tacking on the volatile qualifier.
6530         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
6531
6532 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
6533
6534         PR bootstrap/13617
6535         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
6536         (mips_declare_object): Make variadic.
6537         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
6538         mips_output_aligned_decl_common.
6539         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
6540         (mips_declare_object): Make variadic.
6541
6542 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6543
6544         * function.c (update_epilogue_consts): Teach about binary operations.
6545
6546         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
6547         previous MEM_VOLATILE in REF.
6548         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
6549         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
6550
6551 2004-02-12  Gunther Nikl  <gni@gecko.de>
6552
6553         * config.gcc: Restore support for m68k-openbsd.
6554
6555 2004-02-12  Jan Hubicka  <jh@suse.cz>
6556
6557         * tree-optimize.c (tree_rest_of_compilation): Do not release
6558         DECL_ARGUMENTS.
6559
6560 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
6561
6562         * doc/install.texi: Fix the spelling of "explicitly".
6563
6564 2004-02-11  Eric Christopher  <echristo@redhat.com>
6565
6566         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
6567         duplicate argument structure of cpp_interpret_string.
6568         * cpphash.h: Move prototype...
6569         * cpplib.h: Here.
6570         * cpplib.c: Fix calls to match new function signature.
6571
6572 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
6573
6574         PR c/456
6575         * cppexp.c (num_binary_op): Don't allow comma operators in #if
6576         constant expressions at all outside C99 mode if pedantic.
6577
6578 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
6579
6580         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
6581         (log10_optab, log2_optab): Define corresponding macros.
6582         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
6583         * genopinit.c (optabs): Implement log10_optab and log2_optab
6584         using log10?f2 and log2?f2 patterns.
6585         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
6586         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
6587         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
6588         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6589
6590         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
6591         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
6592         log2, log2f and log2l built-ins as inline x87 intrinsics.
6593
6594 2004-02-11  Richard Henderson  <rth@redhat.com>
6595
6596         PR target/1532
6597         * flow.c (insn_dead_p): A clobber of a dead hard register is a
6598         dead insn after reload.
6599
6600 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
6601
6602         * tree.h (frame_base_decl): Add GTY marker.
6603         * var-tracking.c (frame_base_decl): Likewise.
6604
6605 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
6606
6607         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
6608         incorrect, hunk.
6609         (add_location_or_const_value_attribute): Use text_section_label,
6610         not TEXT_SECTION_NAME.
6611
6612 2004-02-11  Per Bothner  <per@bothner.com>
6613
6614         Represent column numbers using line-map's source_location.
6615         The "next available source_location" is now managed internally by
6616         line-maps.c rather than by clients.
6617         * line-map.h (struct line_map):  New field column_bits.
6618         <from_line>:  Rename field to start_location.
6619         (struct line_maps):  New fields highest_location and max_column_hint.
6620         (linemap_check_files_exited):  New declaration.
6621         (linemap_line_start):  New declaration.
6622         (linemap_add):  Remove from_line parameter; use highest_location field.
6623         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
6624         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
6625         (CURRENT_LINE_MAP):  Remove macro.
6626         (linemap_position_for_column):  New inline function.
6627         * line-map.c (linemap_init):  Clear new fields.
6628         (linemap_check_files_exited):  New function, extracted from ...
6629         (linemap_free):  Use linemap_check_files_exited.
6630         (linemap_add):  Remove from_line parameter.  Various updates.
6631         (linemap_line_start):  New function.
6632         (linemap_lookeup):  Update for new field names.
6633         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
6634         linemap_position_for_column may unpredictably change the current map,
6635         it is cleaner and simpler for us to not cache it in cpp_reader.
6636         (struct cpp_buffer):  New sysp field.
6637         Changed warned_cplusplus_comments and from_stage3 to bitfields.
6638         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
6639         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
6640         current map using linemap_lookup.
6641         (do_linemarker):  Also set buffer's sysp field.
6642         (destringize_and_run):  No longer need to decrement current line.
6643         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
6644         (search_path_head, open_file_failed):  Use buffer's sysp.
6645         (cpp_make_system_header):  Get current map using linemap_lookup.
6646         Also set buffer's sysp flag.
6647         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
6648         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
6649         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
6650         (struct cpp_reader):  ... and adding saved_line_base field.
6651         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
6652         Update accordingly.  Don't adjust line.
6653         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
6654         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
6655         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
6656         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
6657         * cpplex.c (_cpp_lex_direct):  Likewise.
6658         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
6659         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
6660         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
6661         Remove col field as it is now subsumed by src_loc.
6662         * cpperror.c:  Update various field, parameter, and macro names.
6663         (print_location):  If col==0, try SOURCE_COLUMN of line.
6664         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
6665         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
6666         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
6667         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
6668         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
6669         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
6670         (_cpp_lex_direct):  Use linemap_position_for_column.
6671         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
6672         parameter.  Instead get it from the line_table global.  Adjust callers.
6673         (print):  Remove map field.  Replace line field to src_line.
6674         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
6675         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
6676         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
6677         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
6678         * cpptrad.c (copy_comment):  Rename variable.
6679         * c-lex.c (map):  Remove static variable, for same reason we removed
6680         cpp_reader's map field.
6681         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
6682         to call linemap_lookup.
6683         (cb_line_change):  Token's line field replaced by src_loc.
6684         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
6685         Don't save new_map.
6686
6687         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
6688         source_location.
6689
6690 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
6691
6692         * config/rs6000/altivec.md (*movv4si_internal): At least one
6693         operand must be register_operand.
6694         (*movv8hi_internal1): Likewise.
6695         (*movv16qi_internal1): Likewise.
6696         (*movv4sf_internal1): Likewise.
6697
6698 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
6699
6700         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
6701         operand.
6702         (movv4hi_internal): Same.
6703         (movv2sf_internal): Same.
6704         (movv1di_internal): Same.
6705
6706 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
6707
6708         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
6709         TARGET_OLDABI consistently.
6710         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
6711         mips_va_arg,override_options,compute_frame_size,
6712         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
6713         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
6714         and TARGET_OLDABI consistently.
6715         * config/mips/mips.md (exception_receiver): Likewise.
6716         * config/mips/linux64.h: Likewise.
6717
6718 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
6719
6720         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
6721         Set AltiVec ABI and vrsave as default for ppc64 linux.
6722         (init_cumulative_args): Post error, if try to return
6723         value in AltiVec register without enable AltiVec.
6724         (function_arg_advance): Ditto for passing arguments.
6725
6726 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
6727
6728         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
6729         a label before updating its usage count.
6730
6731 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
6732
6733         * doc/install.texi: Remove extra cd.
6734
6735 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
6736
6737         * c-common.c (vector_size_helper): Remove; call
6738         reconstruct_complex_type() instead.
6739         * tree.c (reconstruct_complex_type): New function
6740         (formerly vector_size_helper() in c-common.c).
6741         (make_vector): Make externally visible.
6742         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
6743
6744 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
6745
6746         * config/h8300/h8300-protos.h: Add a prototype for
6747         h8300_regs_ok_for_stm.
6748         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
6749         * config/h8300/h8300.md (stm_h8300s_2_advanced,
6750         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
6751         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
6752         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
6753         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
6754         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
6755         ldm_h8300s_4_normal, ldm_h8300s_4): Use
6756         h8300_regs_ok_for_stm().
6757
6758 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
6759
6760         PR c/14088
6761         * real.c (real_from_string): Look for 'X' as well as 'x' in
6762         hexfloat strings.
6763
6764 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
6765
6766         * config/h8300/h8300.md: Remove an incorrect comment about
6767         peephole2.  Add comments.
6768
6769 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
6770
6771         PR/14058
6772         * emit-rtl.c (set_decl_incoming_rtl): New.
6773         * tree.h (set_decl_incoming_rtl): New.
6774         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
6775         DECL_INCOMING_RTL.
6776         * ada/misc.c (adjust_decl_rtl): Likewise.
6777
6778 2004-02-10  Per Bothner  <per@bothner.com>
6779
6780         * c-opts.c (c_common_post_options):   Don't emit working directory
6781         in cpp output if -P was specified.
6782
6783 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
6784
6785         PR c/14092
6786         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
6787         negate_expr back to the original type.
6788
6789 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
6790
6791         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
6792         bump retaddr here.
6793
6794 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
6795
6796         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
6797         gen_lowpart_SUBREG): Move under the file in which they
6798         are actually declared.
6799
6800 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
6801
6802         * doc/sourcebuild.texi: Add libada documentation.
6803
6804         * doc/install.texi: Update documentation on Ada build, now
6805         that the GNAT lib and tools are built automatically.
6806
6807 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
6808
6809         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
6810         && TARGET_IRIX.
6811
6812 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
6813
6814         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
6815         boundaries outside build_component_ref() call (a macro in ObjC++).
6816
6817 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
6818
6819         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
6820         (init_cumulative_args): Likewise.
6821         (a7_overlap_mentioned_p): Delete prototype.
6822         * config/xtensa/xtensa.c (struct machine_function): Replace
6823         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
6824         Add set_frame_ptr_insn field.
6825         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
6826         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
6827         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
6828         at the function entry and replace the operand with the pseudo.
6829         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
6830         argument and record this flag in CUMULATIVE_ARGS.
6831         (function_arg): Remove result_mode and special-case code to handle
6832         arguments in a7.  Instead, set need_a7_copy flag when there is an
6833         incoming argument in a7.
6834         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
6835         and use the value recorded in cfun->machine->set_frame_ptr_insn.
6836         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
6837         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
6838         special-case code.
6839         (a7_overlap_mentioned_p): Delete.
6840         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
6841         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
6842         arguments to init_cumulative_args and pass "incoming" flag instead.
6843         (BLOCK_REG_PADDING): Delete.
6844         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
6845         checks for reload_in_progress and reload_completed.  Update calls to
6846         xtensa_copy_incoming_a7.
6847         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
6848         to call xtensa_copy_incoming_a7.
6849
6850 2004-02-09  DJ Delorie  <dj@redhat.com>
6851
6852         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
6853         longer modify standard_exec_prefix, standard_bindir_prefix, or
6854         standard_startfile_prefix.
6855
6856 2004-02-09  James E Wilson  <wilson@specifixinc.com>
6857
6858         PR c++/11295
6859         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
6860         to expand_expr_real call, and pass in alt_rtl as last argument.
6861
6862         PR libstdc++/5625
6863         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
6864         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
6865         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
6866         * except.c (expand_builtin_extend_pointer): New.
6867         * except.h (expand_builtin_extend_pointer): Declare.
6868
6869 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
6870
6871         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
6872         unaligned loads and stores.
6873
6874 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6875
6876         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
6877         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
6878
6879         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
6880         * config/mips/iris5.h: ... here.
6881         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
6882
6883         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
6884         * config/mips/iris5.h: ... here.
6885
6886 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6887
6888         * configure.ac: Remove default executable files before AC_PROG_CC.
6889         * configure: Regenerate.
6890
6891 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
6892
6893         PR target/13721
6894         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
6895         print a operand other than a register.
6896
6897 2004-02-09  Roger Sayle  <roger@eyesopen.com>
6898
6899         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
6900         tree code rather than call fold_convert, which doesn't specify a
6901         default floating point to integer conversion.
6902
6903 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
6904
6905         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
6906         code to support SGS assembler.  Reformat adjacent code where possible.
6907         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
6908         definition.
6909         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
6910         for '%#'.
6911         * config/m68k/linux.h, config/m68k/m68k.c,
6912         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
6913         macros and asm_printf() format strings.
6914         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
6915         * config/m68k/linux.h: Update copyright.
6916         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
6917
6918 2004-02-08  Andreas Schwab  <schwab@suse.de>
6919             Bernardo Innocenti  <bernie@develer.com>
6920
6921         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
6922         REGISTER_PREFIX.
6923         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
6924         frame pointer register, overridable by OS targets.
6925         * (M68K_REGNAME): Macro to obtain register name for asm output,
6926         eventually replacing %a6 with M68K_FP_REG_NAME.
6927         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
6928         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
6929         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
6930         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
6931         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
6932
6933 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
6934
6935         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
6936         hook_rtx_tree_int_null.
6937         * targhooks.c (default_struct_value_rtx): Remove.
6938         * targhooks.h: Remove the prototype for
6939         default_struct_value_rtx.
6940         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
6941         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
6942         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
6943         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
6944         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
6945         config/rs6000/rs6000.c, config/s390/s390.c,
6946         config/stormy16/stormy16.c, config/v850/v850.c,
6947         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
6948         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
6949
6950 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
6951
6952         * README.Portability: Change "ISO C89" to "ISO C90".
6953         * c-parse.in (primary, initelt): Likewise.
6954
6955 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
6956
6957         * real.c (encode_ibm_extended): Normalize the input value before
6958         converting it to a double.  Handle the case where a normal value
6959         rounds to infinity.
6960
6961 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
6962
6963         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
6964         warning.
6965         * cse.c (preferrable): Change to preferable. Update all of its
6966         callers.
6967         * genautomata.c (ainsn): Change
6968         first_ainsn_with_given_equialence_num to
6969         first_ainsn_with_given_equivalence_num.  Update all of its
6970         references.
6971
6972 2004-02-08  Jan Hubicka  <jh@suse.cz>
6973
6974         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
6975
6976 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
6977
6978         * function.c (assign_parms): Fix formatting.
6979
6980 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
6981
6982         * default.h (PROMOTE_PROTOTYPES): Remove.
6983         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
6984         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
6985         EXPAND_BUILTIN_SAVEREGS): Poison.
6986         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
6987         hook_bool_tree_false.
6988         (TARGET_PROMOTE_PROTOTYPES): Likewise.
6989         * target.h: Replace SETUP_INCOMING_VARARGS with
6990         targetm.calls.setup_incoming_varargs().
6991         * targhooks.c (default_promote_function_return): Remove.
6992         (default_promote_prototypes): Likewise.
6993         (default_struct_value_rtx): Always abort().
6994         (default_expand_builtin_saveregs): Always print an error
6995         message.
6996         (default_setup_incoming_varargs): Do nothing.
6997         (default_pretend_outgoing_varargs_named): Don't depend on
6998         SETUP_INCOMING_VARARGS.
6999         * targhooks.h: Remove the prototype for
7000         default_promote_function_return and
7001         default_promote_prototypes.
7002
7003 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
7004
7005         * system.h (SHARED_SECTION_ASM_OP): Poison.
7006         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
7007         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
7008
7009 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
7010
7011         Bug 13856
7012         * c-decl.c (diagnose_mismatched_decls): Only give special
7013         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
7014         is also true.
7015         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
7016         DECL_FUNCTION_CODE when defining a built-in function.
7017         Don't update DECL_ESTIMATED_INSNS.
7018         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
7019         FUNCTION_DECLs.
7020         * tree.h: Delete DECL_ESTIMATED_INSNS.
7021         * tree-inline.c (struct inline_data): Delete inlined_insns field.
7022         (expand_call_inline, optimize_inline_calls): Don't update
7023         DECL_ESTIMATED_INSNS nor inlined_insns.
7024         * cgraphunit.c (cgraph_analyze_function): Don't update
7025         DECL_ESTIMATED_INSNS.
7026
7027 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
7028
7029         * c-common.c (shadow_warning): Delete.
7030         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
7031         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
7032         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
7033         * c-parse.in (free_parser_stacks): Delete.
7034
7035 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
7036
7037         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
7038         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
7039         Use the top level mkinstalldirs, not the one in the gcc subdir.
7040         * mkinstalldirs: Remove (from the gcc subdir).
7041
7042 2004-02-07  Roger Sayle  <roger@eyesopen.com>
7043
7044         PR middle-end/13696
7045         * fold-const.c (fold_convert): New function to provide type
7046         conversion to the middle-end without using convert.
7047         (negate_expr, associate_trees, size_diffop, omit_one_operand,
7048         operand_equal_for_comparison_p, pedantic_omit_one_operand,
7049         invert_truthvalue, optimize_bit_field_compare, range_binop,
7050         decode_field_reference, make_range, build_range_check, unextend,
7051         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
7052         fold_binary_op_with_conditional_arg, fold_inf_compare,
7053         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
7054         convert with calls to fold_convert.
7055
7056 2004-02-07  Jan Hubicka  <jh@suse.cz>
7057
7058         * genrecog.c (find_operand): add extra argument stop.
7059         (validate_pattern): Verify that mach_dup is duplicating operand
7060         defined lexically earlier.
7061
7062 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
7063
7064         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
7065         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
7066         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
7067         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
7068         config/ia64/ia64.h, config/ip2k/ip2k.h,
7069         config/iq2000/iq2000.h, config/mips/iris5.h,
7070         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
7071         config/rs6000/aix51.h, config/rs6000/aix52.h,
7072         config/rs6000/darwin.h, config/rs6000/rs6000.h,
7073         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
7074         config/sparc/linux.h, config/sparc/linux64.h,
7075         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
7076         config/xtensa/xtensa.h: Remove the definitions of
7077         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
7078         MAX_WCHAR_TYPE_SIZE.
7079         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
7080         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
7081
7082 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
7083
7084         PR bootstrap/13990
7085         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
7086         gen_rtx_NE.
7087
7088 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
7089
7090         * var-tracking.c (vt_add_function_parameters): Surround checkings by
7091         #ifdef ENABLE_CHECKING and #endif.
7092
7093 2004-02-07  Roger Sayle  <roger@eyesopen.com>
7094
7095         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
7096         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
7097         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
7098         integer types and floating point with unsafe_math_optimizations.
7099         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
7100         Optimize A - B as A + (-B), if B is easily negated.
7101
7102 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
7103
7104         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
7105         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
7106         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
7107         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
7108         Update copyright.
7109
7110 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
7111
7112         * c-ppoutput.c, var-tracking.c: Fix comment typos.
7113
7114 2004-02-06  James E Wilson  <wilson@specifixinc.com>
7115
7116         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
7117         glibc 2.3 or better.
7118
7119 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7120
7121         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
7122         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
7123
7124 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
7125
7126         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
7127         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
7128         (SHLIB_MKMAP_OPTS): Delete.
7129         (TARGET_LIBGCC2_CFLAGS): Add -specs.
7130         (bispecs): Add rule.
7131         * config/rs6000/libgcc-ppc64.ver: New file.
7132         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
7133         (__floatdidf, __floatdisf): Optimize multiply.
7134         (__fixunstfdi): New function.
7135         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
7136         real and imag parts larger than one register.
7137         (function_arg): Correct type of reg used when fp arg split partially
7138         to stack.
7139         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
7140         and __MACH__ or __powerpc64__.
7141
7142 2004-02-06  Roger Sayle  <roger@eyesopen.com>
7143             Ulrich Weigand  <uweigand@de.ibm.com>
7144
7145         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
7146         of gen_highpart or gen_lowpart when the floating point format is
7147         wider than the result mode.
7148
7149 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
7150
7151         * dwarf2out.c (loclabel_num): Move into #ifdef
7152         DWARF2_DEBUGGING_INFO.
7153
7154 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
7155
7156         * objc/objc-act.c (build_super_template) the 'class' field of
7157         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
7158         (get_super_receiver): Likewise.
7159
7160 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7161
7162         * reload1.c (check_eliminable_occurrences): Optimize the reset
7163         of can_eliminate.
7164         (eliminate_regs_in_insn): Likewise.
7165
7166 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
7167             Josef Zlomek  <zlomekj@suse.cz>
7168
7169         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
7170         at the beginning of function, call dwarf2out_var_location for
7171         NOTE_INSN_VAR_LOCATION note.
7172         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
7173         decl_loc_table): New.
7174         (lookup_decl_loc): New function.
7175         (add_var_loc_to_decl): New function.
7176         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
7177         only if can_use_fbreg.
7178         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
7179         functions.
7180         (loc_descriptor): Likewise. Process VAR_LOCATION.
7181         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
7182         (loc_descriptor_from_tree): Call mem_loc_descriptor with
7183         can_use_fbreg == true.
7184         (add_location_or_const_value_attribute): Added parameter enum
7185         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
7186         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
7187         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
7188         with attr == DW_AT_location.
7189         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
7190         if frame_base_decl is defined and has a location list.
7191         (gen_variable_die): Call add_location_or_const_value_attribute with
7192         attr == DW_AT_location.
7193         (dwarf2out_var_location): New function.
7194         (dwarf2out_begin_function): New function.
7195         (dwarf2out_init): Create decl_loc_table.
7196
7197 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
7198
7199         * loop.c (force_movables): Transitively increase the priorities of
7200         all insns forces by an insn, not just the first one.
7201
7202 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
7203             Daniel Berlin <dberlin@dberlin.org>
7204
7205         Josef Zlomek  <zlomekj@suse.cz>
7206         * Makefile.in (var-tracking.o): New.
7207         * common.opt (fvar-tracking): New.
7208         * flags.h (flag_var_tracking): New.
7209         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
7210         * opts.c (common_handle_option): Add OPT_fvar_tracking.
7211         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
7212         * rtl.c (note_insn_name): Likewise.
7213         * rtl.def (VAR_LOCATION): New.
7214         * rtl.h (NOTE_VAR_LOCATION): New.
7215         (NOTE_VAR_LOCATION_DECL): New.
7216         (NOTE_VAR_LOCATION_LOC): New.
7217         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
7218         (variable_tracking_main): New exported function.
7219         * timevar.def (TV_VAR_TRACKING): New.
7220         * toplev.c (enum dump_file_index): Added DFI_vartrack.
7221         (dump_file): "vartrack" was added (-dV).
7222         (flag_var_tracking): New.
7223         (f_options): "var-tracking" was added.
7224         (rest_of_handle_variable_tracking): New function.
7225         (rest_of_compilation): Run variable tracking.
7226         (process_options): If user has not specified flag_var_tracking set it
7227         according to optimize, debug_info_level and debug_hooks.
7228         * tree.h (frame_base_decl): New.
7229         * var-tracking.c: New file.
7230         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
7231         (ia64_override_options): Set flags to run variable tracking in machine
7232         dependent reorg instead of toplev.c.
7233         (ia64_reorg): Run variable tracking if wanted.
7234         * doc/invoke.texi: Mention variable tracking in -dV,
7235         add and -fvar-tracking.
7236         * doc/passes.texi: Added variable tracking pass.
7237
7238         Daniel Berlin <dberlin@dberlin.org>
7239         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
7240         * dbxout.c (dbx_debug_hooks): Likewise.
7241         (xcoff_debug): Likewise.
7242         * debug.c (do_nothing_debug_hooks): Likewise.
7243         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
7244         * dwarfout.c (dwarf_debug_hooks): Likewise.
7245         * sdbout.c (sdb_debug_hooks): Likewise.
7246         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
7247         * final.c (final_scan_insn): Call var_location debug hook for each
7248         NOTE_INSN_VAR_LOCATION.
7249
7250 2004-02-06  Jan Hubicka  <jh@suse.cz>
7251
7252         * flow.c (update_life_info): Allocate reg_deaths when called from
7253         scheudler.
7254         (attempt_auto_inc):  Update life ranges accordingly.
7255
7256 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
7257
7258         PR debug/11816
7259         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
7260
7261 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
7262
7263         * cfganal.c (flow_call_edges_add): Never split a libcall block.
7264
7265 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
7266
7267         * dwarf2out.c (output_loc_list): Don't use deltas if we have
7268         a separate line info table in use.
7269         Use the correct size for terminators.
7270         (output_die): Use offset, not delta.
7271
7272 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
7273
7274         * doc/invoke.texi: Remove the pni option from -mfpmath=.
7275
7276 2004-02-06  Jan Hubicka  <jh@suse.cz>
7277
7278         * recog.c (split_all_insns): Do not update reg info.
7279         * regrename.c (regrename_optimize): Likewise.
7280         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
7281         * flow.c (struct propagate_block_info): Add insn_num field.
7282         (reg_deaths): New array.
7283         (life_analysis): Free reg_deaths info.
7284         (allocate_reg_life_data): Allocate reg_deaths array.
7285         (propagate_one_insn): Use new array.
7286         (init_propagate_block): Initialize it.
7287         (free_propagate_block_info): Finish compuation of
7288         REG_LIVE_LENGTH
7289         (attempt_auto_inc): Sanity check that REG_INFO is not
7290         computed at same time.
7291         (mark_used_regs): Update new array.
7292
7293         * reg-stack.c (subst_stack_regs): Unshare clobbers before
7294         substitution.
7295
7296 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7297
7298         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
7299         *extendqisi2_short_displ.
7300
7301 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
7302
7303         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
7304         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
7305         (emit_library_call_value_1): Likewise pass nargs.
7306         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
7307         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
7308         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
7309         parameter instead of scanning TYPE_ARGS_TYPES to count args.
7310         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
7311         prototype.
7312         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
7313         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
7314         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
7315         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
7316         INIT_CUMULATIVE_ARGS.
7317         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
7318         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
7319         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
7320         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
7321         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
7322         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
7323         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
7324         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
7325         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
7326         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
7327         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
7328         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
7329
7330 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7331
7332         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
7333         possible.
7334
7335 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7336
7337         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
7338         note containing (plus (reg) (const_int)), where reg is an
7339         eliminable reg, then perform the register elimination without
7340         depending on eliminate_regs().
7341
7342 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7343
7344         * config/arc/arc.c (arc_return_in_memory): Check the return
7345         value of int_size_in_bytes against -1.  Don't check
7346         TREE_ADDRESSABLE.
7347         * config/avr/avr.c (avr_return_in_memory): Check the return
7348         value of int_size_in_bytes against -1.
7349         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
7350         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
7351         Likewise.
7352         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
7353         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
7354         Likewise.
7355
7356 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7357
7358         * config/frv/frv-protos.h: Remove the prototype for
7359         frv_setup_incoming_varargs.
7360         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
7361         (frv_setup_incoming_varargs): Make it static.
7362         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
7363
7364 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7365
7366         * config/fr30/fr30-protos.h: Remove the prototype for
7367         fr30_setup_incoming_varargs.
7368         Update the prototypes for fr30_num_arg_regs and
7369         fr30_function_arg_partial_nregs.
7370         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
7371         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
7372         (fr30_setup_incoming_varargs): Make it static.
7373         Add argument second_time.  Don't do anything when second_time
7374         is nonzero.
7375         (fr30_num_arg_regs): Change the type of the first argument to
7376         enum machine_mode.
7377         (fr30_function_arg_partial_nregs): Change the type of the
7378         second argument to enum machine_mode.
7379         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
7380         (SETUP_INCOMING_VARARGS): Remove.
7381
7382 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7383
7384         * config/arc/arc-protos.h: Remove the prototype for
7385         arc_setup_incoming_varargs.
7386         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
7387         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
7388         (arc_setup_incoming_varargs): Make it static.
7389         (arc_external_libcall): Likewise.
7390         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
7391         Remove the commented-out definition of
7392         ASM_OUTPUT_EXTERNAL_LIBCALL.
7393
7394 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
7395
7396         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
7397         to $$(slibdir) in the installation commands.
7398
7399 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
7400
7401         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
7402         with inner_regno, not regno.
7403         * rtlanal.c (refers_to_regno_p): Same.
7404
7405 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7406
7407         * config.gcc: Remove i370 support.
7408
7409 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
7410
7411         * doc/install.texi:  Update automake and autoconf version
7412         requirements.  Note where to find gcj automake version.
7413
7414 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
7415
7416         * Makefile.in (generate-manpages): Move dependencies to ...
7417         (man): here.
7418         * doc/makefile.texi: Document new targets.
7419         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
7420
7421 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
7422
7423         PR/13485
7424         Makefile.in (srcextra):  Add a level of indirection to ...
7425         (gcc.srcextra): ... here.
7426         (po-generated): Delete.
7427         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
7428         options.c.
7429         (start.encap): Remove superfluous lang.srcextra dependency.
7430         objc/Make-lang.in (po-generated):  Delete.
7431
7432 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7433
7434         * config/ia64/ia64.c (REG_GP): Remove.
7435
7436 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7437
7438         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
7439
7440 2004-02-05  Devang Patel  <dpatel@apple.com>
7441
7442         * dwarf2out.c (force_type_die): Look up input type itself
7443         instead of root_type() of type.
7444
7445 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
7446
7447         * config/s390/s390.md ("*tmqidi_ext"): New insn.
7448         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
7449         pre-reload splitters are transformed to post-reload
7450         define_insn_and_split patterns.
7451         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
7452
7453 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7454
7455         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
7456         TARGET_PROMOTE_PROTOTYPES.
7457
7458 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7459
7460         PR middle-end/13750
7461         Revert:
7462         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
7463         PR pch/13361
7464         * c-typeck.c (constructor_asmspec): Delete.
7465         (struct initializer_stack): Delete field 'asmspec'.
7466         (start_init): Delete saving of asmspec.
7467         (finish_init): Don't update constructor_asmspec.
7468         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
7469         * stmt.c (expand_asm): Duplicate strings from tree.
7470         (expand_asm_operands): Likewise.
7471         * tree.c (tree_size): Update computation of size of STRING_CST.
7472         (make_node): Don't make STRING_CST nodes.
7473         (build_string): Allocate string with tree node.
7474         * tree.def (STRING_CST): Update comment.
7475         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
7476         (tree_string): Place contents of string in tree node.
7477         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
7478         from tree.
7479
7480 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
7481
7482         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
7483         msgid.
7484
7485 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
7486
7487         * config/rs6000/altivec.md (*movv4si_internal): At least one
7488         operand must be altivec_register_operand.
7489         (*movv8hi_internal1): Likewise.
7490         (*movv16qi_internal1): Likewise.
7491         (*movv4sf_internal1): Likewise.
7492
7493 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
7494
7495         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
7496         * configure: Regenerate.
7497
7498 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
7499
7500         * doc/install.texi: Update description of --gxx-include-dir to
7501         give correct default value.
7502
7503 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7504
7505         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
7506         8 with MAC_REG.
7507
7508 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7509
7510         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
7511         gen_rtx_PARALLEL.
7512
7513 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7514
7515         * emit-rtl.c: Update the comment about the file.
7516
7517 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
7518
7519         * sourcebuild.texi (Test Idioms): Update testcase naming
7520         conventions.
7521
7522 2004-02-04  Per Bothner  <per@bothner.com>
7523
7524         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
7525         * c-ppoutput.c (pp_dir_change):  New function.
7526         * c-common.h (pp_dir_change):  New declaration.
7527         * cpplib.h (struct cpp_options):  Remove working_directory field.
7528         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
7529         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
7530         Don't handle -fworking_directory here, but in c_common_post_options.
7531         (read_original_directory): Don't back up when done.
7532         Don't clear no-longer used working_directory flag.
7533         * cpplib.h:  Update declarations to match.
7534         * c-lex.c (cb_dir_change):  Move to c-opts.c.
7535         (init_c_lex):  Don't set dir_change callback here, since we want
7536         to set it even if flag_preprocess_only.
7537         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
7538         (c_common_post_options):  Set dir_change callback.
7539         Call pp_dir_change if approporiate.
7540         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
7541         unneeded parameter and result. Do LC_RENAME for <built-in>.
7542         (c_common_post_options):  Call cpp_read_main_file here instead.
7543         (c_common_init):  Update accordingly.
7544         (push_command_line_include):  Don't cpp_push_main_file.
7545         Do LC_RENAME rather than LC_LEASE to get back to main file.
7546         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
7547         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
7548         files, but call finish_options for all files.
7549         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
7550         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
7551         cpp_find_main_file + cpp_push_main_file.
7552         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
7553         * opts.c (handle_options):  Only set main_input_filename first time.
7554
7555 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
7556
7557         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
7558
7559 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
7560
7561         * reload.c (find_equiv_reg): When checking for register overlap,
7562         don't index hard_regno_nregs with a pseudo-reg.
7563
7564 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
7565
7566         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
7567
7568 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
7569
7570         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
7571         against FIRST_PSEUDO_REGISTER.
7572
7573 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7574
7575         * Makefile.in: Move target, host overrides after per-language
7576         fragments.
7577
7578         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
7579         (GNATLIBCFLAGS): Remove -g.
7580
7581 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7582
7583         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
7584         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
7585         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
7586         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
7587         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
7588         config/sparc/sparc.c, config/vax/vax.c: Revert the
7589         replacements of "FALLTHRU" with "Fall through" done in the
7590         previous patch.
7591
7592 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7593
7594         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
7595         config/arm/arm.c, config/arm/arm.md,
7596         config/cris/cris-protos.h, config/fr30/fr30.c,
7597         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
7598         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
7599         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
7600         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
7601         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
7602         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
7603         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
7604         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
7605         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
7606         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
7607         config/s390/s390.md, config/sparc/netbsd-elf.h,
7608         config/sparc/openbsd.h, config/sparc/sparc.c,
7609         config/xtensa/lib2funcs.S: Fix comment formatting.
7610
7611 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7612
7613         * config/alpha/alpha.c, config/arc/arc.c,
7614         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
7615         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
7616         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
7617         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
7618         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
7619         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
7620         config/iq2000/iq2000.c, config/m32r/m32r.c,
7621         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
7622         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
7623         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
7624         config/rs6000/rs6000.h, config/sparc/sparc.c,
7625         config/vax/vax.c: Fix comment typos.  Follow spelling
7626         conventions.
7627
7628 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7629
7630         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
7631         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
7632         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
7633         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
7634         config/arm/fpa.md, config/arm/iwmmxt.md,
7635         config/arm/netbsd-elf.h, config/arm/netbsd.h,
7636         config/m68hc11/m68hc11.md, config/mips/iris5.h,
7637         config/mn10300/mn10300.md, config/rs6000/altivec.md,
7638         config/sparc/netbsd-elf.h: Update copyright.
7639
7640 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
7641
7642         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
7643         for all modes whose size is greater than 8 bytes if ARCH32.
7644         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
7645         by reference if ARCH32.
7646
7647 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
7648
7649         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
7650
7651 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
7652
7653         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
7654         to before adddi3 insn patterns.
7655         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
7656         "reload_insi"): Move to before addsi3 insn patterns.
7657
7658 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
7659
7660         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
7661         parameter.  Use it instead of current_function_is_thunk.
7662         * function.h (struct function): Update documentation for is_thunk.
7663         * tree.h (CALL_FROM_THUNK_P): New macro.
7664         * config/alpha/alpha.c (alpha_sa_mask): Do not check
7665         no_new_pseudos when testing current_function_is_thunk.
7666         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
7667
7668 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7669
7670         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
7671         TARGET_SETUP_INCOMING_VARARGS.
7672
7673 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7674
7675         * emit-rtl.c (gen_rtx): Remove.
7676         * genattrtab.c: Don't mention gen_rtx in a comment.
7677         * rtl.h: Remove the prototype for gen_rtx.
7678         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
7679
7680 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7681
7682         * config/arc/arc.h, config/fr30/fr30.h
7683         (SETUP_INCOMING_VARARGS): Remove the target-independent
7684         comments.
7685         * doc/tm.texi: Don't mention deprecated target macros.
7686
7687 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7688
7689         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
7690         target-independent comment.
7691
7692 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7693
7694         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
7695         mention deprecated target macros.
7696
7697 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7698
7699         * config.gcc: Remove obsolete ports and configurations.
7700         * config/linux-aout.h, config/netware.h,
7701         config/t-linux-gnulibc1, config/d30v/abi,
7702         config/d30v/d30v-protos.h, config/d30v/d30v.c,
7703         config/d30v/d30v.h, config/d30v/d30v.md,
7704         config/d30v/libgcc1.asm, config/d30v/t-d30v,
7705         config/dsp16xx/dsp16xx-modes.def,
7706         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
7707         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
7708         config/i370/README, config/i370/i370-c.c,
7709         config/i370/i370-protos.h, config/i370/i370.c,
7710         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
7711         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
7712         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
7713         config/i386/moss.h, config/i386/netware.h,
7714         config/i386/svr3.ifile, config/i386/svr3dbx.h,
7715         config/i386/svr3gas.h, config/i386/svr3z.ifile,
7716         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
7717         config/i960/i960-c.c, config/i960/i960-coff.h,
7718         config/i960/i960-modes.def, config/i960/i960-protos.h,
7719         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
7720         config/i960/rtems.h, config/i960/t-960bare,
7721         config/m68k/hp310.h, config/m68k/hp320.h,
7722         config/m68k/hp320base.h, config/m68k/m68kv4.h,
7723         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
7724         Remove.
7725         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
7726         doc/md.texi: Remove mentions of obsolete ports.
7727
7728 2004-02-04  Jan Hubicka  <jh@suse.cz>
7729
7730         * alias.c (find_base_term, get_addr):  Do not dereference NULL
7731         pointer when all VALUE's locations has been invalidated.
7732         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
7733
7734 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
7735
7736         * doc/invoke.texi (x86 options): Fix spelling/wording.
7737
7738 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
7739
7740         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
7741         put the original string in a comment.
7742         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
7743         * config/mips/mips.c (mips_output_ascii): Likewise.
7744         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
7745
7746 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
7747
7748         * system.h (GIV_SORT_CRITERION): Poison.
7749         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
7750         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
7751
7752 2004-02-03  Roger Sayle  <roger@eyesopen.com>
7753
7754         PR target/9348
7755         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
7756         multiplies with a multiplication of the wrong signedness, its the
7757         signedness of the multiplication that we've performed that needs to
7758         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
7759         if expand_mult_highpart_adjust places the result in target.
7760
7761 2004-02-03  Richard Henderson  <rth@redhat.com>
7762
7763         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
7764
7765 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
7766
7767         * config.gcc (sh[234]l): Use little endian fragments.
7768
7769 2004-02-03  Paul Koning  <pkoning@equallogic.com>
7770
7771         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
7772         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
7773         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
7774         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
7775         floating point format.
7776         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
7777         the above functions.
7778         (output_move_quad): Output float values in correct target format.
7779         (legitimate_const_double_p): New function.
7780         * config/pdp11/pdp11.h: Fix typos.
7781         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
7782         (TARGET_FLOAT_FORMAT): Ditto.
7783         (pdp11_f_format, pdp11_d_format): Add external declarations.
7784         (MAX_REGS_PER_ADDRESS): Corrected.
7785         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
7786         (PRINT_OPERAND): Output float literals in target format.
7787
7788 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
7789
7790         PR c++/13975
7791         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
7792         TI_PRIVATE.
7793         (access_public_node): Redefine.
7794         (access_protected_node): Likewise.
7795         (access_private_node): Likewise.
7796         * tree.c (build_common_tree_nodes): Create access_public_node,
7797         access_protected_node, and access_private_node.
7798
7799 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
7800
7801         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
7802         (MASK_INLINE_INT_DIV_THR): Ditto.
7803         (MASK_INLINE_SQRT_LAT): Ditto.
7804         (MASK_INLINE_SQRT_THR): Ditto.
7805         (MASK_DWARF2_ASM): Ditto.
7806         (MASK_EARLY_STOP_BITS): Ditto.
7807
7808 2004-02-02  Paul Brook  <paul@codesourcery.com>
7809
7810         Merge from csl-arm-branch.
7811
7812         2004-01-30  Paul Brook  <paul@codesourcery.com>
7813
7814         * aof.h (REGISTER_NAMES): Add vfp reg names
7815         (ADDITIONAL_REGISTER_NAMES): Ditto.
7816         * aout.h (REGISTER_NAMES): Ditto.
7817         (ADDITIONAL_REGISTER_NAMES): Ditto.
7818         * arm-protos.h: Update/Add Prototypes.
7819         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
7820         Only allow 0.0 for VFP.
7821         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
7822         (values_fp): Rename from values_fpa.  Update Users.
7823         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
7824         Update users.  Only check valid constants for this hardware.
7825         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
7826         Only allow consts for FPA.
7827         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
7828         Only allow consts for FPA.
7829         (use_return_insn): Check for saved VFP regs.
7830         (arm_legitimate_address_p): Handle VFP DFmode addressing.
7831         (arm_legitimize_address): Ditto.
7832         (arm_general_register_operand): New function.
7833         (vfp_mem_operand): New function.
7834         (vfp_compare_operand): New function.
7835         (vfp_secondary_reload_class): New function.
7836         (arm_float_compare_operand): New function.
7837         (vfp_print_multi): New function.
7838         (vfp_output_fstmx): New function.
7839         (vfp_emit_fstm): New function.
7840         (arm_output_epilogue): Output VPF reg restore code.
7841         (arm_expand_prologue): Output VFP reg save code.
7842         (arm_print_operand): Add 'P'.
7843         (arm_hard_regno_mode_ok): Return modes for VFP regs.
7844         (arm_regno_class): Return classes for VFP regs.
7845         (arm_compute_initial_elimination_offset): Include space for VFP regs.
7846         (arm_get_frame_size): Ditto.
7847         * arm.h (FIXED_REGISTERS): Add VFP regs.
7848         (CALL_USED_REGISTERS): Ditto.
7849         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
7850         (FIRST_VFP_REGNUM): Define.
7851         (LAST_VFP_REGNUM): Define.
7852         (IS_VFP_REGNUM): Define.
7853         (FIRST_PSEUDO_REGISTER): Include VFP regs.
7854         (HARD_REGNO_NREGS): Handle VFP regs.
7855         (REG_ALLOC_ORDER): Add VFP regs.
7856         (enum reg_class): Add VFP_REGS.
7857         (REG_CLASS_NAMES): Ditto.
7858         (REG_CLASS_CONTENTS): Ditto.
7859         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
7860         (REG_CLASS_FROM_LETTER): Add 'w'.
7861         (EXTRA_CONSTRAINT_ARM): Add 'U'.
7862         (EXTRA_MEMORY_CONSTRAINT): Define.
7863         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
7864         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
7865         (REGISTER_MOVE_COST): Ditto.
7866         (PREDICATE_CODES): Add arm_general_register_operand,
7867         arm_float_compare_operand and vfp_compare_operand.
7868         * arm.md (various): Rename as above.
7869         (divsf3): Enable when TARGET_VFP.
7870         (divdf3): Ditto.
7871         (movdfcc): Ditto.
7872         (sqrtsf2): Ditto.
7873         (sqrtdf2): Ditto.
7874         (arm_movdi): Disable when TARGET_VFP.
7875         (arm_movsi_insn): Ditto.
7876         (movsi): Only split with general regs.
7877         (cmpsf): Use arm_float_compare_operand.
7878         (push_fp_multi): Restrict to TARGET_FPA.
7879         (vfp.md): Include.
7880         * vfp.md: New file.
7881         * fpa.md (various): Rename as above.
7882         * doc/md.texi: Document ARM w and U constraints.
7883
7884         2004-01-15  Paul Brook  <paul@codesourcery.com>
7885
7886         * config.gcc: Add with_fpu.  Allow with-float=softfp.
7887         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
7888         Break out of loop when we find a float-abi.  Fix typo.
7889         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
7890         Set -mfloat-abi=.
7891         * doc/install.texi: Document --with-fpu.
7892
7893         2003-01-14  Paul Brook  <paul@codesourcery.com>
7894
7895         * config.gcc (with_arch): Add armv6.
7896         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
7897         * config/arm/arm.c (arm_overrride_options): Ditto.
7898
7899         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
7900
7901         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
7902         (FL_ARCH6): Renamed from FL_ARCH6J.
7903         (arm_arch3m): Renamed from arm_fast_multiply.
7904         (arm_arch6): Renamed from arm_arch6j.
7905         * arm.h: Update all uses of above.
7906         * arm-cores.def: Likewise.
7907         * arm.md: Likewise.
7908
7909         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
7910         not arm6j.  Add entry for arch armv6.
7911
7912         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
7913
7914         * arm.c (arm_emit_extendsi): Delete.
7915         * arm-protos.h (arm_emit_extendsi): Delete.
7916         * arm.md (zero_extendhisi2): Also handle zero-extension of
7917         non-subregs.
7918         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
7919         (thumb_zero_extendhisi2): Only match if not v6.
7920         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
7921         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
7922         (thumb_extendqisi2): Likewise.
7923         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
7924         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
7925         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
7926         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
7927         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
7928         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
7929         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
7930         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
7931         (arm_extendqisi2addsi): Likewise.
7932
7933         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
7934
7935         Revert this change:
7936         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
7937         + REG addressing modes.
7938
7939         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
7940         + REG addressing modes.
7941
7942         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
7943
7944         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
7945         CONSTANT_P_RTX.
7946
7947         2003-30-12  Paul Brook  <paul@codesourcery.com>
7948
7949         * longlong.h: protect arm inlines with !defined (__thumb__)
7950
7951         2003-30-12  Paul Brook  <paul@codesourcery.com>
7952
7953         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
7954
7955         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
7956
7957         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
7958         change.
7959
7960         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
7961
7962         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
7963         to the virtual incoming args pointer for downward stacks.
7964
7965         2003-12-29  Paul Brook  <paul@codesourcery.com>
7966
7967         * config/arm/arm-cores.def: Add cost function.
7968         * config/arm/arm.c (arm_*_rtx_costs): New functions.
7969         (arm_rtx_costs): Remove
7970         (struct processors): Add rtx_costs field.
7971         (all_cores, all_architectures): Ditto.
7972         (arm_override_options): Set targetm.rtx_costs.
7973         (thumb_rtx_costs): New function.
7974         (arm_rtx_costs_1): Remove cases handled elsewhere.
7975         * config/arm/arm.h (processor_type): Add COSTS parameter.
7976
7977         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
7978
7979         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
7980         (arm926ejs.md): Include it.
7981         * config/arm/arm926ejs.md: New pipeline description.
7982
7983         2003-12-24  Paul Brook  <paul@codesourcery.com>
7984
7985         * config/arm/arm.c (arm_arch6j): New variable.
7986         (arm_override_options): Set it.
7987         (arm_emit_extendsi): New function.
7988         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
7989         * config/arm/arm.h (arm_arch6j): Declare.
7990         * config/arm/arm.md: Add sign/zero extend insns.
7991
7992         2003-12-23  Paul Brook  <paul@codesourcery.com>
7993
7994         * config/arm/arm.c (all_architectures): Add armv6.
7995         * doc/invoke.texi: Document it.
7996
7997         2003-12-19  Paul Brook  <paul@codesourcery.com>
7998
7999         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
8000         insn patterns to match.
8001         * config/arm/arm-generic.md: Ditto.
8002         * config/arm/cirrus.md: Ditto.
8003         * config/arm/fpa.md: Ditto.
8004         * config/amm/iwmmxt.md: Ditto.
8005         * config/arm/arm1026ejs.md: Ditto.
8006         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
8007         for 11_loadb.
8008
8009         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
8010
8011         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
8012         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
8013         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
8014         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
8015         arm_no_early_mul_dep): Correctly deal with conditional execution,
8016         parallels and single shift operations.
8017         (arm_no_early_alu_shift_value_dep): Define.
8018         * arm.md (attr type): Replace 'normal' with 'alu',
8019         'alu_shift' and 'alu_shift_reg'.
8020         (attr core_cycles): Adjust.
8021         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
8022         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
8023         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
8024         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
8025         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
8026         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
8027         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
8028         attribute appropriately.
8029         * config/arm/arm1026ejs.md (alu_op): Adjust.
8030         (alu_shift_op, alu_shift_reg_op): New.
8031         * config/arm/arm1136.md: Add better bypasses for early
8032         registers. Remove load[234] and store[234] bypasses.
8033         (11_alu_op): Adjust.
8034         (11_alu_shift_op, 11_alu_shift_reg_op): New.
8035
8036         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
8037
8038         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
8039         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
8040         * config/arm/arm.c (arm_no_early_store_addr_dep,
8041         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
8042         * config/arm/arm1026ejs.md: Add load-store bypass.
8043         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
8044         Add bypasses between instructions.
8045
8046         2003-12-10  Paul Brook  <paul@codesourcery.com>
8047
8048         * config/arm/arm.c (arm_fpu_model): New variable.
8049         (arm_fload_abi): New variable.
8050         (target_fpe_name): Rename from target_fp_name.
8051         (target_fpu_name): New variable.
8052         (arm_is_cirrus): Remove.
8053         (fpu_desc): New struct.
8054         (all_fpus): Define.
8055         (pf_model_for_fpu): Define.
8056         (all_loat_abis): Define.
8057         (arm_override_options): Set fp arch flags based on -mfpu=
8058         and -float-abi=.
8059         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
8060         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
8061         (*): Use new TARGET_* flags.
8062         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
8063         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
8064         (TARGET_SOFT_FLOAT): Ditto.
8065         (TARGET_SOFT_FLOAT_ABI): New.
8066         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
8067         TARGET_HARD_FLOAT.
8068         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
8069         (TARGET_OPTIONS): Add -mfpu=.
8070         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
8071         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
8072         (arm_pf_model): Define.
8073         (arm_float_abi_type): Define.
8074         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
8075         * config/arm/arm.md: Use new TARGET_* flags.
8076         * config/arm/cirrus.md: Ditto.
8077         * config/arm/fpa.md: Ditto.
8078         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
8079         * config/arm/semi.h (ASM_SPEC): Ditto.
8080         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
8081         (FPUTYPE_DEFAULT): Set to VFP.
8082         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
8083
8084         2003-11-22  Phil Edwards  <phil@codesourcery.com>
8085
8086         PR target/12476
8087         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
8088         'bx' instead of 'b' to avoid branch range restrictions.  Output
8089         the thunk immediately before the thunked-to function.
8090         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
8091         .thumb_func if a thunk is being generated.  Emit .code 16 along
8092         with .thumb_func if a thunk is not being generated.
8093
8094         2003-11-15  Nicolas Pitre <nico@cam.org>
8095
8096         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
8097         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
8098         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
8099         (lshrdi3_iwmmxt): Renamed from lshrdi3.
8100         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
8101
8102         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
8103             Ian Lance Taylor  <ian@wasabisystems.com>
8104
8105         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
8106         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
8107
8108         2003-11-05  Phil Edwards  <phil@codesourcery.com>
8109
8110         * config/arm/arm.md (insn):  Add new V6 instruction names.
8111         (generic_sched):  New attr.
8112         * config/arm/arm-generic.md:  Use generic_sched here.
8113         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
8114         stages of pipeline.  Adjust latency counts accordingly.
8115         * config/arm/arm1136jfs.md:  New file.
8116
8117         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
8118
8119         * config/arm/arm.h (processor_type): New enumeration type.
8120         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
8121         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
8122         (CPP_CPU_ARCH_SPEC): Likewise.
8123         * config/arm/arm.c (arm_tune): New variable.
8124         (all_cores): Use cores.def.
8125         (all_architectures): Add representative processor.
8126         (arm_override_options): Restructure way in which tuning
8127         information is deduced.
8128         * arm.md: Update "insn" and "type" attributes throughout.
8129         (insn): New attribute.
8130         (type): Compute "mult" from "insn" attribute.  Add load2,
8131         load3, load4 alternatives.
8132         (arm automaton): Move to arm-generic.md.
8133         * config/arm/arm-cores.def: New file.
8134         * config/arm/arm-generic.md: Likewise.
8135         * config/arm/arm1026ejs.md: Likewise.
8136
8137 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
8138
8139         * doc/invoke.texi (SPARC options): Remove -mflat and
8140         all -mxxx (xxx:chip) options.
8141         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
8142         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
8143         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
8144         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
8145         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
8146         * config/sparc/sparc.c: Likewise.
8147         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
8148         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
8149         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
8150         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
8151         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
8152         (sparc_flat_must_save_register_p): Likewise.
8153         (sparc_flat_compute_frame_size): Likewise.
8154         (sparc_flat_save_restore): Likewise.
8155         (sparc_flat_function_prologue): Likewise.
8156         (sparc_flat_function_epilogue): Likewise.
8157         (sparc_flat_epilogue_delay_slots): Likewise.
8158         (sparc_flat_eligible_for_epilogue_delay): Likewise.
8159         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
8160         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
8161         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
8162         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
8163         (CONDITIONAL_REGISTER_USAGE): Likewise.
8164         (FRAME_POINTER_REQUIRED): Likewise.
8165         (INITIAL_ELIMINATION_OFFSET): Likewise.
8166         (BASE_RETURN_VALUE_REG): Likewise.
8167         (BASE_OUTGOING_VALUE_REG): Likewise.
8168         (BASE_PASSING_ARG_REG): Likewise.
8169         (BASE_INCOMING_ARG_REG): Likewise.
8170         (INCOMING_REGNO): Likewise.
8171         (OUTGOING_REGNO): Likewise.
8172         (LOCAL_REGNO): Likewise.
8173         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
8174         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
8175         (EPILOGUE_USES): Likewise.
8176         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
8177         ("flat" attribute): Delete.
8178         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
8179         handling.
8180         (call followed by jump define_peephole's): Delete.
8181         (exception_receiver): Likewise.
8182         (builtin_setjmp_receiver): Likewise.
8183         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
8184
8185 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
8186
8187         PR c/11658
8188         PR c/13994
8189         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
8190         on langhooks.h.
8191         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
8192         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
8193         Include langhooks.h.  Replace c_common_truthvalue_conversion
8194         with the truthvalue_conversion language hook throughout.
8195         (expr_no_commas): Call default_conversion before save_expr
8196         for the first term of the production 'x ? : y'.
8197         * c-common.c (c_common_truthvalue_conversion): Remove
8198         obsolete block.  Invoke recursively the hook instead
8199         of this function.
8200         * c-convert.c (convert): handle ERROR_MARK_NODE.
8201         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
8202         returned by the truthvalue_conversion language hook.
8203         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
8204         c_objc_common_truthvalue_conversion.
8205         * c-objc-common.c (c_objc_common_truthvalue_conversion):
8206         New function.
8207         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
8208         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
8209         c_objc_common_truthvalue_conversion.
8210
8211 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
8212
8213         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
8214         of gen_rtx.
8215         (LIBCALL_VALUE): Likewise.
8216         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
8217         gen_rtx_CC0 instead of gen_rtx.
8218         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
8219         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
8220         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
8221         gen_rtx.
8222         (m68hc11_emit_logical): Likewise.
8223
8224 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
8225
8226         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
8227         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
8228         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
8229         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
8230         config/mips/mips.md, config/mmix/mmix.c,
8231         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
8232         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
8233         config/rs6000/altivec.md, config/s390/s390.c,
8234         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
8235         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
8236         Use const0_rtx instead of GEN_INT (0).  Do the same for other
8237         constants that are readily available.
8238
8239 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
8240
8241         * doloop.c, optabs.c, regmove.c, sched-deps.c,
8242         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
8243         instead of GEN_INT (0).  Do the same for other constants that
8244         are readily available.
8245
8246 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
8247
8248         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
8249         gen_rtx.
8250         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
8251         instead of gen_rtx.
8252         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
8253         gen_rtx.
8254         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
8255         gen_rtx_ASHIFT instead of gen_rtx.
8256         (udivmodqi4): Likewise.
8257
8258 2004-02-02  Richard Henderson  <rth@redhat.com>
8259
8260         PR target/13789
8261         * expr.c (store_expr): Use force_operand before emit_move_insn.
8262
8263 2004-02-02  Jeff Law  <law@redhat.com>
8264             Roger Sayle  <roger@eyesopen.com>
8265
8266         * tree.c (commutative_tree_code, associative_tree_code): New
8267         functions.
8268         (iterative_hash_expr): Use commutative_tree_code.
8269         * tree.h (commutative_tree_code, associative_tree_code): Declare.
8270         * fold-const.c (operand_equal_p): Use commutative_tree_code
8271         rather than inlining the commutativity check.
8272         (fold): Likewise.
8273
8274 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
8275
8276         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
8277         * config/frv/frv-protos.h: Remove the prototype for
8278         frv_function_arg_keep_as_reference.
8279         * config/frv/frv.c (frv_function_arg_keep_as_reference):
8280         Remove.
8281         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
8282         * config/stormy16/stormy16.h: Remove the commented-out
8283         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
8284
8285 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
8286
8287         PR target/13914
8288         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
8289         for retaddr_column.
8290
8291 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
8292
8293         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
8294         gen_rtx.
8295
8296 2004-02-02  Eric Christopher  <echristo@redhat.com>
8297             Zack Weinberg  <zack@codesourcery.com>
8298
8299         * c-opts.c (c_common_handle_option): Add -finput-charset.
8300         * c.opt: Ditto.
8301         * cppcharset.c (one_iso88591_to_utf8): Remove.
8302         (convert_iso88591_utf8): Ditto.
8303         (conversion_tab): Remove 8859-1 converter.
8304         (_cpp_input_to_utf8): Remove.
8305         (_cpp_init_iconv_buffer): Ditto.
8306         (_cpp_close_iconv_buffer): Ditto.
8307         (_cpp_convert_input): New function.
8308         (_cpp_default_encoding): Ditto.
8309         * cpphash.h: Add/remove prototypes for above.
8310         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
8311         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
8312         for narrow execution and input character sets.
8313         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
8314         * doc/cppopts.texi: Document -finput-charset.
8315
8316 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
8317
8318         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
8319         against FIRST_PSEUDO_REGISTER.
8320
8321 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
8322
8323         * doc/invoke.texi (SPARC options): Further improve.
8324
8325 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
8326
8327         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
8328         config/h8300/h8300.c, config/ip2k/ip2k.md,
8329         config/iq2000/iq2000.c, config/mips/mips.c,
8330         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
8331         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
8332         config/v850/v850.md: Fix indentation.
8333
8334 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
8335
8336         * config/sparc/sparc.c (function_arg_slotno): Align TImode
8337         arguments on a 16-byte boundary in the parameter array if ARCH64.
8338         Split handling of TFmode.
8339
8340 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
8341
8342         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
8343         Don't test CONSTANT_P (x).
8344         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
8345         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
8346         Fix misindentation.
8347
8348 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
8349
8350         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
8351
8352 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
8353
8354         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
8355         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
8356         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
8357         config/iq2000/iq2000.c, config/m32r/m32r.c,
8358         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
8359         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
8360         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
8361         config/stormy16/stormy16.c, config/v850/v850.md,
8362         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
8363
8364 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
8365
8366         * config/mcore/mcore.c (block_move_sequence): Replace
8367         gen_rtx_CONST_INT with GEN_INT.
8368
8369 2004-02-02  Jan Hubicka  <jh@suse.cz>
8370
8371         * alias.c (record_set): Use hard_regno_nregs.
8372         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
8373         * builtins.c (apply_args_size): Likewise.
8374         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
8375         mark_set_regs, add_stored_regs, mark_referenced_regs,
8376         insert_restore, insert_save, insert_one_insn): Likewise.
8377         * cfgcleanup.c: Include regs.h
8378         (mark_effect, mentions_nonequal_regs): Likewise.
8379         * cfgrtl.c (mark_killed_regs): Likewise
8380         * combine.c (update_table_tick, record_value_for_reg,
8381         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
8382         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
8383         reg_bitfield_target_p, distribute_notes): Likewise.
8384         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
8385         exp_equiv_p, cse_insn): Likewise.
8386         * cselib.c (cselib_lookup): Likewise.
8387         (cselib_invalidate_regno, cselib_record_set): Likewise.
8388         * df.c (df_ref_record): Likewise.
8389         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
8390         Likewise.
8391         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
8392         count_or_remove_death_notes_bb): Likewise.
8393         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
8394         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
8395         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
8396         * integrate.c (mark_stores): Likewise.
8397         * jump.c (delete_prior_computation): Likewise.
8398         * lcm.c (reg_dies, reg_becomes_live): Likewise.
8399         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
8400         * loop.c (LOOP_REGNO_NREGS): Likewise.
8401         * postreload.c (reload_combine, reload_combine_note_store,
8402         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
8403         * ra-colorize.c (combine, color_usable_p, get_free_reg,
8404         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
8405         try_recolor_web, insert_coalesced_conflicts, check_colors,
8406         break_precolored_alias): Likewise.
8407         * ra-debug.c: Include regs.h
8408         (ra_print_rtx_object): Likewise.
8409         * ra-rewrite (choose_spill_colors): Likewise.
8410         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
8411         * ra.c (init_ra): Likewise.
8412         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
8413         peep2_find_free_register): Likewise.
8414         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
8415         * regclass.c (hard_regno_nregs): New array.
8416         (init_reg_modes_once): Initialize it.
8417         (choose_hard_reg_mode): Use it.
8418         (record_reg_classes): Likewise.
8419         * regmove.c (mark_flags_life_zones): Likewise.
8420         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
8421         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
8422         copy_value, maybe_mode_change, find_oldest_value_reg,
8423         copyprop_hardreg_forward_1):
8424         * regs.h (hard_regno_nregs): Declare.
8425         * realod.c (reload_inner_reg_of_subreg): Use it.
8426         (push_reload, combine_reloads, find_dummy_reload,
8427         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
8428         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
8429         reload_adjust_reg_for_mode): Likewise.
8430         * reload1.c (compute_use_by_pseudos, count_pseudo,
8431         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
8432         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
8433         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
8434         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
8435         delete_output_reload): Likewise.
8436         * resource.c (update_live_status, mark_referenced_resources,
8437         mark_set_resources, mark_target_live_regs): Likewise.
8438         * rtlanal.c:  Include regs.h
8439         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
8440         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
8441         subreg_regno_offset, subreg_offset_representable_p,
8442         hoist_test_store): Likewise.
8443         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
8444         * sched-rgn.c (check_live_1, update_live_1): Likewise.
8445         * stmt.c: Include regs.h
8446         (decl_conflicts_with_clobbers_p): Likewise.
8447         * varasm.c (make_decl_rtl): Likewise.
8448         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
8449
8450 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
8451
8452         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
8453         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
8454         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
8455         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
8456         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
8457         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
8458         config/iq2000/iq2000.h, config/m32r/m32r.c,
8459         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
8460         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
8461         config/mcore/mcore.c, config/mcore/mcore.h,
8462         config/mcore/mcore.md, config/mips/mips.c,
8463         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
8464         config/rs6000/rs6000.c, config/s390/s390.c,
8465         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
8466         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
8467         "gen_rtx (FOO, " with "gen_rtx_FOO (".
8468
8469 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
8470
8471         * config/h8300/h8300.md (two peephole2's): New.
8472
8473 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
8474
8475         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
8476         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
8477         (ASM_CPU_SPEC): Likewise
8478         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
8479         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
8480
8481 2004-02-01  Roger Sayle  <roger@eyesopen.com>
8482
8483         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
8484         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
8485         (expand_builtin): Always call expand_builtin_pow.
8486
8487 2004-02-01  Roger Sayle  <roger@eyesopen.com>
8488
8489         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
8490         BUILT_IN_SIGNBITL): New GCC builtins.
8491         * builtins.c (expand_builtin_signbit): New function to RTL expand
8492         calls to signbit, signbitf and signbitl as inline intrinsics.
8493         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
8494         (fold_builtin_signbit): New function to perform constant folding
8495         of signbit, signbitf and signbitl.
8496         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
8497
8498         * doc/extend.texi: Document new signbit{,f,l} builtins.
8499
8500 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
8501
8502         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
8503
8504 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
8505
8506         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
8507         "mips_const_double_ok" and "simple_memory_operand", which were
8508         removed from the MIPS port with the mips-3_4-rewrite branch merge.
8509         * config/mips/mips.c (mips16_lay_out_constants): Update comment
8510         for removal of simple_memory_operand.
8511
8512 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8513
8514         * config/c4x/c4x.md: Use GEN_INT instead of
8515         gen_rtx (CONST_INT, ...).
8516
8517 2004-01-31  Richard Henderson  <rth@redhat.com>
8518
8519         * varasm.c (output_constant_pool): Don't zap the pool.
8520
8521 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8522
8523         * genrecog.c (decision_type): Add DT_const_int.
8524         (write_cond) [DT_const_int]: Print a comparison against small
8525         constant.
8526         (write_node): Simplify comparisons against small constants
8527         before printing tests.
8528
8529 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8530
8531         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
8532         instead of gen_rtx_CONST_INT.
8533
8534 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8535
8536         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
8537         instead of gen_rtx_CONST_INT.
8538
8539 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8540
8541         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
8542         hook_bool_CUMULATIVE_ARGS_false.
8543         * targhooks.c (default_strict_argument_naming): Rename to
8544         hook_bool_CUMULATIVE_ARGS_false.
8545         * targhooks.h: Update the prototype for
8546         default_strict_argument_naming.
8547
8548 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8549
8550         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
8551         * config/sh/sh.h: Likewise.
8552         * config/sh/sh.md: Likewise.
8553
8554 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
8555
8556         * doc/invoke.texi (SPARC options): Restructure and update.
8557
8558 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8559
8560         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
8561         STRICT_ARGUMENT_NAMING): Poison.
8562         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
8563         hook_bool_tree_false.
8564         * targhooks.c (default_promote_function_args): Remove.
8565         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
8566         Don't check incoming.
8567         (default_strict_argument_naming): Don't use
8568         STRICT_ARGUMENT_NAMING.
8569         * targhooks.h: Remove the prototype for
8570         default_promote_function_args.
8571
8572 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8573
8574         * config/i386/i386-protos.h: Remove the prototype for
8575         ix86_setup_incoming_varargs.
8576         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
8577         (ix86_setup_incoming_varargs): Make it static.
8578         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
8579
8580 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8581
8582         * alloc-pool.c: Fix comment typos.
8583         * builtin-types.def: Likewise.
8584         * builtins.def: Likewise.
8585         * c-pretty-print.c: Likewise.
8586         * df.h: Likewise.
8587         * reload1.c: Likewise.
8588
8589 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8590
8591         * doc/invoke.texi: Follow spelling conventions.
8592         * doc/tm.texi: Likewise.
8593
8594 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8595
8596         * doc/install.texi: Fix typos.
8597         * doc/invoke.texi: Likewise.
8598
8599 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
8600
8601         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
8602         registers as pointers.
8603         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
8604
8605 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
8606
8607         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
8608         and restore it to gen_lowpart_general on exit.
8609         (gen_lowpart_for_combine): Adjust all callers to go through
8610         gen_lowpart.
8611         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
8612         and restore it to gen_lowpart_general on exit.
8613         (gen_lowpart_if_possible): Adjust all callers to go through
8614         gen_lowpart.
8615         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
8616         (gen_lowpart): Declare as pointer to function, initialized to
8617         gen_lowpart_general.
8618         * rtl.h (gen_lowpart): Declare as pointer to function.
8619
8620 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8621
8622         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
8623         * calls.c: Likewise.
8624         * emit-rtl.c: Likewise.
8625         * function.c: Likewise.
8626         * reload1.c: Likewise.
8627         * config/i386/cygming.h: Likewise.
8628         * config/i386/i386.c: Likewise.
8629         * config/i386/winnt.c: Likewise.
8630
8631 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
8632
8633         PR bootstrap/9249
8634         * doc/install.texi: document --enable-__cxa_atexit option.
8635         * configure.ac: Disable __cxa_atexit if not supported.
8636         * configure: Regenerate.
8637
8638 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
8639
8640         * ggc-zone.c (ggc_free): New function.
8641
8642 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8643
8644         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
8645         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
8646         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
8647         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
8648         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
8649         config/alpha/alpha.c, config/alpha/alpha.h,
8650         config/alpha/alpha.md, config/alpha/unicosmk.h,
8651         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
8652         config/c4x/c4x-protos.h, config/c4x/c4x.md,
8653         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
8654         config/frv/frvend.c, config/i386/cygming.h,
8655         config/i386/djgpp.h, config/i386/emmintrin.h,
8656         config/i386/gthr-win32.c, config/i386/i386-interix.h,
8657         config/i386/i386-protos.h, config/i386/openbsd.h,
8658         config/i386/winnt.c, config/i386/xm-mingw32.h,
8659         config/i386/xmmintrin.h, config/ia64/ia64.md,
8660         config/iq2000/iq2000.md, config/m32r/m32r.md,
8661         config/m68k/m68k.md, config/mcore/mcore-elf.h,
8662         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
8663         config/mips/iris5gas.h, config/mips/iris6.h,
8664         config/mips/iris6gas.h, config/mips/linux.h,
8665         config/mips/mips.md, config/mips/netbsd.h,
8666         config/mips/openbsd.h, config/mips/windiss.h,
8667         config/pa/fptr.c, config/rs6000/aix.h,
8668         config/rs6000/altivec.h, config/rs6000/darwin.h,
8669         config/rs6000/xcoff.h, config/s390/s390-protos.h,
8670         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
8671         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
8672         config/sparc/sol2.h: Update copyright.
8673
8674 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
8675
8676         * Makefile.in (abs_docdir, abs_srcdir): Define.
8677         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
8678
8679 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8680
8681         * genconfig.c (main): Have CC0_P check its operand even on a
8682         target without cc0.
8683
8684 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8685
8686         * config/alpha/alpha.c: Remove mentions of deprecates macros
8687         in comments, remove some target-independent comments about target
8688         macros, and/or add minimal function comments for target hook
8689         implementations.
8690         * config/avr/avr.c: Likewise.
8691         * config/ia64/ia64.h: Likewise.
8692         * config/ip2k/ip2k.c: Likewise.
8693         * config/iq2000/iq2000.c: Likewise.
8694         * config/m32r/m32r.h: Likewise.
8695         * config/m68hc11/m68hc11.c: Likewise.
8696         * config/mcore/mcore.c: Likewise.
8697         * config/mmix/mmix.c: Likewise.
8698         * config/mn10300/mn10300.c: Likewise.
8699         * config/pa/pa.c: Likewise.
8700         * config/pdp11/pdp11.c: Likewise.
8701         * config/rs6000/rs6000.h: Likewise.
8702         * config/sh/sh.c: Likewise.
8703         * config/sh/sh.h: Likewise.
8704         * config/sparc/sparc.c: Likewise.
8705         * config/sparc/sparc.h: Likewise.
8706         * config/stormy16/stormy16.c: Likewise.
8707         * config/xtensa/xtensa.c: Likewise.
8708
8709 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
8710
8711         PR optimization/12147
8712         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
8713         RELOAD_FOR_OPADDR_ADDR.
8714         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
8715         might be reused as RELOAD_FOR_OPADDR_ADDR register.
8716
8717 2004-01-30  Jan Hubicka  <jh@suse.cz>
8718
8719         * reload.c (get_secondary_mem): Fix updating of
8720         secondary_memlocs_elim_used.
8721
8722 2004-01-30  Richard Henderson  <rth@redhat.com>
8723
8724         * varasm.c (struct rtx_const, struct pool_constant): Remove.
8725         (MAX_RTX_HASH_TABLE): Remove.
8726         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
8727         (first_pool, last_pool, pool_offset): Remove.
8728         (struct rtx_constant_pool): Split out from ...
8729         (struct varasm_status): ... here.  Reference one via pointer.
8730         (struct constant_descriptor_rtx): Merge struct pool_constant.
8731         (SYMHASH): Remove.
8732         (decode_rtx_const): Remove.
8733         (const_hash_rtx, compare_constant_rtx): Remove.
8734         (record_constant_rtx): Remove.
8735         (const_desc_rtx_hash, const_desc_rtx_eq): New.
8736         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
8737         (const_rtx_hash_1, const_rtx_hash): New.
8738         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
8739         (simplify_subtraction): Use simplify_rtx.
8740         (force_const_mem): Rewrite to use new data structures.
8741         (find_pool_constant): Likewise.
8742         (get_pool_constant, get_pool_constant_mark,
8743         get_pool_constant_for_function, get_pool_mode,
8744         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
8745         (output_constant_pool_2): Split out from output_constant_pool.
8746         (output_constant_pool_1): Likewise.  Use new pool datastructures.
8747         (output_constant_pool): Zap entire pool datastructure.
8748         (mark_constant): Use new pool datastructures.
8749         (mark_constants): Use for_each_rtx.
8750         (mark_constant_pool): Use new pool datastructures.
8751
8752 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
8753
8754         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
8755         Copy operands[1] to pseudo for simplify_gen_subreg.
8756
8757 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8758
8759         * gcse.c (bypass_block): Fix a typo in the previous check-in
8760         to the file.
8761
8762 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
8763
8764         * toplev.c: Include alloc-pool.h.
8765         * Makefile.in (toplev.c): Update dependencies.
8766
8767 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8768
8769         * combine.c (simplify_shift_const, case XOR): Be careful when
8770         commuting XOR with ASHIFTRT.
8771
8772 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8773             Eric Botcazou  <ebotcazou@libertysurf.fr>
8774
8775         * config/sparc/sparc-protos.h: Remove the prototype for
8776         sparc_builtin_saveregs.
8777         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
8778         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
8779         (TARGET_PROMOTE_PROTOTYPES): Likewise.
8780         (TARGET_STRUCT_VALUE_RTX): Likewise.
8781         (TARGET_RETURN_IN_MEMORY): Likewise.
8782         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
8783         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
8784         (sparc_builtin_saveregs): Make it static.
8785         (sparc_promote_prototypes): New.
8786         (sparc_struct_value_rtx): Likewise.
8787         (sparc_return_in_memory): Likewise.
8788         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
8789         (PROMOTE_FUNCTION_RETURN): Likewise.
8790         (RETURN_IN_MEMORY): Likewise.
8791         (STRUCT_VALUE): Likewise.
8792         (STRUCT_VALUE_INCOMING): Likewise.
8793         (EXPAND_BUILTIN_SAVEREGS): Likewise.
8794         (STRICT_ARGUMENT_NAMING): Likewise.
8795         (PROMOTE_PROTOTYPES): Likewise.
8796
8797         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
8798
8799 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
8800
8801         PR c/12818
8802         * varasm.c (const_hash_1) <STRING_CST>: Use the
8803         address to compute the hash value if flag_writable_strings.
8804         (compare_constant) <STRING_CST>: Compare the addresses
8805         if flag_writable_strings.
8806         (build_constant_desc): Do not copy the expression for a
8807         STRING_CST if flag_writable_strings.
8808
8809 2004-01-30  Jan Hubicka  <jh@suse.cz>
8810
8811         * alloc-pool.c: Include hashtab.h
8812         (alloc_pool_descriptor): New structure
8813         (alloc_pool_hash): New global variable.
8814         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
8815         (create_alloc_pool): Update statistics.
8816         (free_alloc_pool): Likewise.
8817         (pool_alloc): Likewise.
8818         (output_info): New structure
8819         (print_statistics, dump_alloc_pool_statistics): New function.
8820         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
8821         (dump_alloc_pool_statistics): Declare.
8822         * toplev.c (finalize):  Dump statistics.
8823
8824         * reload.c (secondary_memlocs_elim_used): New static variable.
8825         (get_secondary_mem): Update it.
8826         (find_reloads): Use it.
8827
8828 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
8829
8830         * toplev.c: Fix broken checkin of 2003-12-30, again.
8831
8832 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
8833
8834         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
8835         s390*-*-* targets by specifying a 'nop' insn.
8836         * configure: Regenerate.
8837
8838 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
8839
8840         PR target/11475
8841         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
8842
8843 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
8844
8845         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
8846         of addr when creating MEM copy.
8847
8848 2004-01-29  Devang Patel  <dpatel@apple.com>
8849
8850         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
8851
8852 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
8853
8854         PR inline-asm/6162
8855         * reload.c (find_reloads): Only support one pair of commutative
8856         operands.
8857
8858 2004-01-29  Roger Sayle  <roger@eyesopen.com>
8859
8860         PR java/13824
8861         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
8862         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
8863         recursion.
8864
8865 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
8866
8867         * config/frv/frv.c: Don't mention deprecated macros in
8868         comments.  Remove some target-independent comments about
8869         target macros.
8870         * config/frv/frv.h: Likewise.
8871
8872 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8873
8874         * cfghooks.c (split_block): Set probability and count of the
8875         new edge.
8876
8877 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
8878
8879         * dwarf2out.c (struct die_struct): Added field decl_id.
8880         (decl_die_table): Changed to hash table.
8881         (decl_die_table_allocated): Deleted.
8882         (decl_die_table_in_use): Deleted.
8883         (DECL_DIE_TABLE_INCREMENT): Deleted.
8884         (decl_die_table_hash): New function.
8885         (decl_die_table_eq): New function.
8886         (lookup_decl_die): Lookup in a hash table.
8887         (equate_decl_number_to_die): Insert into a hash table.
8888         (dwarf2out_init): Init hash table decl_die_table.
8889
8890 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
8891
8892         PR optimization/13424
8893         * expr.c (store_constructor): Revert 2003-12-03 change.
8894
8895         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
8896         expected before returning early.  Avoid sharing RTL if they
8897         need to be changed.
8898
8899         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
8900         handling so that memory attributes are preserved.  Don't call
8901         ix86_set_move_mem_attrs.
8902         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
8903         (ix86_expand_clrstr): Rename src argument to
8904         dst.  Rework rep_stos and strset handling so that memory attributes
8905         are preserved.
8906         (ix86_expand_strlen): Pass src argument to
8907         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
8908         memory attributes are preserved.
8909         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
8910         change_address instead of gen_rtx_MEM.
8911         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
8912         expanders.
8913         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
8914         strmovqi, strmovqi_rex64): Remove.
8915         (rep_mov*, strmov*): Prefix insn names with *.
8916         (strset, strset_singleop, rep_stos): New expanders.
8917         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
8918         strsetqi, strsetqi_rex64): Remove.
8919         (rep_stos*, strset*): Prefix insn names with *.
8920         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
8921         to SImode.
8922         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
8923         are preserved.
8924         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
8925         Prefix insn names with *.
8926         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
8927         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
8928         (strlenqi_1): New expander.
8929         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
8930
8931 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8932
8933         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
8934         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
8935         verify_flow_info): Declaration removed.
8936         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
8937         (debug_bb, debug_bb_n): Add argument to dump_bb call.
8938         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
8939         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
8940         instead of delete_block.
8941         * cfghooks.c: Include timevar.h and toplev.h.
8942         (cfg_hooks): Define here.
8943         (verify_flow_info, dump_bb): Moved from cfg.c.
8944         (redirect_edge_and_branch, redirect_edge_and_branch_force,
8945         split_block, split_block_after_labels, move_block_after,
8946         delete_basic_block, split_edge, create_basic_block,
8947         create_empty_bb, can_merge_blocks_p, merge_blocks,
8948         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
8949         New functions.
8950         * cfghooks.h (struct cfg_hooks): Added fields name,
8951         make_forwarder_block, tidy_fallthru_edge and
8952         move_block_after. Changed type of verify_flow_info, dump_bb,
8953         split_block fields. Renamed cfgh_split_edge and delete_block
8954         fields.
8955         (redirect_edge_and_branch, redirect_edge_and_branch_force,
8956         split_block, delete_block, split_edge, create_basic_block,
8957         can_merge_blocks_p, merge_blocks): Macros removed.
8958         (cfg_hooks): Do not export.
8959         (verify_flow_info, dump_bb, redirect_edge_and_branch,
8960         redirect_edge_and_branch_force, split_block, split_block_after_labels,
8961         move_block_after, delete_basic_block, split_edge, create_basic_block,
8962         create_empty_bb, can_merge_blocks_p, merge_blocks,
8963         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
8964         Declare.
8965         (cfg_layout_rtl_cfg_hooks): Declare.
8966         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
8967         New functions.
8968         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
8969         (redirect_edge_with_latch_update): Removed.
8970         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
8971         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
8972         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
8973         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
8974         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
8975         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
8976         cfghooks.c.
8977         (rtl_create_basic_block): Coding style fix.
8978         (rtl_tidy_fallthru_edge, rtl_move_block_after,
8979         rtl_make_forwarder_block): New functions.
8980         (update_cfg_after_block_merging): Removed.
8981         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
8982         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
8983         to dump_bb.
8984         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
8985         find_if_case_2): Don't update dominators.
8986         * timevar.def (TV_CFG_VERIFY): New.
8987         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
8988         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
8989         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
8990         (remove_bbs): Don't call remove_bbs.
8991         (create_preheader): Use make_forwarder_block.
8992         (mfb_keep_just, mfb_update_loops): New static functions.
8993
8994 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
8995
8996         * config/avr/avr.h: Remove target-independent comments about
8997         target macros.
8998
8999 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
9000
9001         * timevar.c (timevar_print): Mention when checking is enabled.
9002
9003 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
9004
9005         * c-lex.c (c_lex): Rename to...
9006         (c_lex_with_flags): Add new parameter to get CPP flags.
9007         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
9008         * c-pragma.h (c_lex_with_flags): Declare.
9009
9010 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9011
9012         * config/mcore/mcore.c (mcore_external_libcall): Add a
9013         comment.
9014         (mcore_return_in_memory): Likewise.
9015
9016 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9017
9018         * config/mcore/mcore-protos.h: Remove the prototype for
9019         mcore_setup_incoming_varargs.
9020         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
9021         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
9022         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9023         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9024         (TARGET_STRUCT_VALUE_RTX): Likewise.
9025         (TARGET_RETURN_IN_MEMORY): Likewise.
9026         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9027         (mcore_setup_incoming_varargs): Make it static.  Receive the
9028         first argument by reference.  Add argument second_time.
9029         (mcore_external_libcall): New.
9030         (mcore_return_in_memory): Likewise.
9031         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
9032         (PROMOTE_FUNCTION_RETURN): Likewise.
9033         (STRUCT_VALUE): Likewise.
9034         (RETURN_IN_MEMORY): Likewise.
9035         (SETUP_INCOMING_VARARGS): Likewise.
9036         (PROMOTE_PROTOTYPES): Likewise.
9037         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
9038
9039 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9040
9041         * config/m32r/m32r-protos.h: Remove the prototype for
9042         m32r_setup_incoming_varargs.
9043         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
9044         (TARGET_STRUCT_VALUE_RTX): Likewise.
9045         (TARGET_RETURN_IN_MEMORY): Likewise.
9046         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9047         (m32r_return_in_memory): New.
9048         (m32r_setup_incoming_varargs): Make it static.
9049         * config/m32r/m32r.h: Remove #undef of
9050         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
9051         definitions of PROMOTE_FUNCTION_ARGS and
9052         PROMOTE_FUNCTION_RETURN.
9053         (PROMOTE_PROTOTYPES): Remove.
9054         (RETURN_IN_MEMORY): Likewise.
9055         (STRUCT_VALUE): Likewise.
9056
9057 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9058
9059         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
9060         (TARGET_STRUCT_VALUE_RTX): Likewise.
9061         (m68k_struct_value_rtx): Likewise.
9062         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
9063         STRUCT_VALUE_REGNUM.
9064         (PROMOTE_PROTOTYPES): Remove.
9065         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
9066         STRUCT_VALUE_REGNUM.
9067         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
9068         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
9069
9070 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9071
9072         * config/stormy16/stormy16.c
9073         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
9074         TARGET_BUILD_BUILTIN_VA_LIST.
9075
9076 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9077
9078         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
9079         (TARGET_STRUCT_VALUE_RTX): Likewise.
9080         (TARGET_RETURN_IN_MEMORY): Likewise.
9081         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9082         (v850_return_in_memory): Likewise.
9083         (v850_setup_incoming_varargs): Likewise.
9084         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
9085         (SETUP_INCOMING_VARARGS): Likewise.
9086         (RETURN_IN_MEMORY): Likewise.
9087         (STRUCT_VALUE): Likewise.
9088
9089 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9090
9091         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
9092         (fr30_setup_incoming_varargs): Don't use
9093         STRICT_ARGUMENT_NAMING.
9094         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
9095         (STRICT_ARGUMENT_NAMING): Likewise.
9096
9097 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9098
9099         * config/frv/frv-protos.h: Remove the prototype for
9100         frv_expand_builtin_saveregs.
9101         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
9102         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9103         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
9104         STRUCT_VALUE_REGNUM.
9105         (frv_expand_builtin_saveregs): Make it static.
9106         (frv_struct_value_rtx): New.
9107         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
9108
9109 2004-01-29  Jan Hubicka  <jh@suse.cz>
9110
9111         PR c++/12850
9112         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
9113         initial pointers.
9114         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
9115         for functions that will be only inlined.
9116         (cgraph_mark_function_to_output): Likewise.
9117         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
9118         do not clear function body.
9119         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
9120         (tree_rest_of_compilation): Reorganize the logic releasing function
9121         body to use callgraph datastructure.
9122
9123 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9124
9125         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
9126         to register_operand.
9127
9128 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
9129
9130         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
9131         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
9132         match_operand expressions so that all match_dups appear
9133         lexically after their corresponding match_operands.
9134
9135 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9136
9137         * config/h8300/h8300.c (WORD_REG_USED): Use
9138         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
9139         (compute_saved_regs): Likewise.
9140         (h8300_expand_prologue): Likewise.  Allocate locals after
9141         saving registers.
9142         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
9143         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
9144         registers.
9145         (h8300_initial_elimination_offset): Adjust for the new frame
9146         layout, which swaps flips the order of locals and saved
9147         registers.
9148         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
9149         (HARD_FRAME_POINTER_REGNUM): New.
9150         (ELIMINABLE_REGS): Add an elimination rule from
9151         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
9152         (REGISTER_NAMES): Add fp.
9153         * config/h8300/h8300.md (FP_REG): Change to 11.
9154         (HFP_REG): New.
9155
9156 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9157
9158         * genrecog.c (write_node): Remove a useless local variable.
9159
9160 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
9161
9162         * Makefile.in (options.c options.h): Use stamp file s-options to
9163         avoid unnecessary rebuilds.
9164         (options.o): New target listing dependencies.
9165         (gtyp-gen.h): Use stamp file s-gtyp-gen.
9166         (STAGESTUFF): Add s-gtyp-gen.
9167
9168 2004-01-28  Richard Henderson  <rth@redhat.com>
9169
9170         * ggc.h (ggc_free): Declare.
9171         * ggc-common.c (ggc_realloc): Use it.
9172         * ggc-page.c: Remove lots of inline markers.
9173         (globals): Add free_object_list.
9174         (ggc_alloc): Tidy.
9175         (ggc_free, validate_free_objects): New.
9176         (poison_pages): Provide default.
9177         (ggc_collect): Call validate_free_objects; emit markers to
9178         the debug file.
9179
9180 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
9181             Jim Wilson  <wilson@specifixinc.com>
9182
9183         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
9184         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
9185         scratch pointer.
9186         (ia64_secondary_reload_class): Delete case GR_REGS.
9187         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
9188         Do not allocate a scratch register.
9189         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
9190
9191 2004-01-28  Jan Hubicka  <jh@suse.cz>
9192
9193         * gcse.c (bypass_block): Prevent edges to be unified when we are
9194         about to emit compenstation code.
9195
9196 2004-01-28  Nick Clifton  <nickc@redhat.com>
9197
9198         * config/arm/arm.c (arm_expand_builtin): Force second argument of
9199         the setcwx insn into a register.
9200
9201 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
9202
9203         * config/fp-bit.c (pack_d): When using paired doubles to implement
9204         a long double, round the high part separately.
9205         (unpack_d): Fix the case in which the high part is a power of two
9206         and the low part is a nonzero value of the opposite sign.
9207
9208 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9209
9210         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
9211         (TARGET_STRUCT_VALUE_RTX): Likewise.
9212         (c4x_external_libcall): Likewise.
9213         (c4x_struct_value_rtx): Likewise.
9214         * config/c4x/c4x.h: Remove.
9215         (STRUCT_VALUE_REGNUM): Likewise.
9216         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
9217
9218 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9219
9220         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
9221         (TARGET_STRUCT_VALUE_RTX): Likewise.
9222         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
9223         (STRUCT_VALUE): Likewise.
9224         (PROMOTE_PROTOTYPES): Likewise.
9225
9226 2004-01-27  Roger Sayle  <roger@eyesopen.com>
9227
9228         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
9229         CONST_INT before using INTVAL.
9230
9231 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
9232
9233         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
9234         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
9235         frame if !TARGET_BACKCHAIN.
9236         * config/s390/s390.md ("allocate_stack"): Use pattern only if
9237         TARGET_BACKCHAIN.
9238         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
9239
9240 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
9241
9242         * ia64.c (ia64_function_arg): When placing HFAs in integer
9243         registers, do not special case the mode used for complex
9244         types.  Do not advance int_regs until the current register
9245         is full.
9246
9247 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
9248
9249         PR target/7297
9250         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
9251
9252 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
9253
9254         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
9255         slow, unaligned loads and stores while debugging.  Fix formatting.
9256
9257 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
9258
9259         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
9260         of computing wmode.
9261         (restore_stack_nonlocal): Same.
9262
9263 2004-01-27  Devang Patel <dpatel@apple.com>
9264
9265         * Makefile.in (dwarf2out.o): Depend on input.h
9266         * dbxout.c (dbx_debug_hooks): Add new empty hook for
9267         imported_module_or_decl.
9268         (xcoff_debug_hooks): Same.
9269         * sdbout.c (sdb_debug_hooks): Same.
9270         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
9271         * debug.c (do_nothing_debug_hooks): Same.
9272         (debug_nothing_tree_tree): New function.
9273         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
9274         * dwarf2out.c: Include input.h.
9275         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
9276         (remove_child_TAG): New function.
9277         (dwarf_tag_name): Handle DW_TAG_imported_module.
9278         (gen_subprogram_die): Equate decl number to declaration die. Do not
9279         remove all children dies while reusing declaration die for definition.
9280         Instead, selectively remove only formal parameters.
9281         (gen_variable_die): Equate variable decl to declaration die.
9282         (gen_field_die): Equate field decl to line number.
9283         (force_namespace_die): Replace it with ...
9284         (force_decl_die): ... this.
9285         (force_type_die): New function.
9286         (setup_namespace_context): Replace use of force_namespace_die() with
9287         force_decl_die().
9288         (gen_namespace_die): Same.
9289         (dwarf2out_imported_module_or_decl): New function.
9290
9291 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
9292
9293         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
9294         on CQImode and CHImode incoming arguments in register a7.
9295         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
9296         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
9297         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
9298         xtensa_copy_incoming_a7 before reload.
9299
9300 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
9301
9302         * coverage.c (get_coverage_counts): Give a different message
9303         if flag_guess_branch_prob is set.
9304         * predict.c (counts_to_freqs): Return an int.
9305         (estimate_bb_frequencies): If counts_to_freqs returns zero,
9306         calculate estimates.
9307
9308 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
9309
9310         * config/iq2000/iq2000-protos.h: Remove the prototype for
9311         iq2000_setup_incoming_varargs.
9312         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9313         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9314         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9315         (TARGET_STRUCT_VALUE_RTX): Likewise.
9316         (TARGET_RETURN_IN_MEMORY): Likewise.
9317         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9318         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
9319         (iq2000_return_in_memory): Likewise.
9320         (iq2000_setup_incoming_varargs): Make it static.  Receive the
9321         first argument by reference.
9322         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
9323         (PROMOTE_FUNCTION_RETURN): Likewise.
9324         (PROMOTE_PROTOTYPES): Likewise.
9325         (RETURN_IN_MEMORY): Likewise.
9326         (STRUCT_VALUE): Likewise.
9327         (SETUP_INCOMING_VARARGS): Likewise.
9328         (STRICT_ARGUMENT_NAMING): Likewise.
9329
9330 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
9331
9332         * fixinc/fixinc.c (test_test): Initialize res.
9333         (start_flexer): Initialize pz_cmd_save.
9334
9335 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
9336
9337         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
9338         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
9339
9340 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
9341
9342         PR 7198
9343         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
9344         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
9345         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
9346         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
9347         Possibly rename pattern for consistency.
9348         Remove ??? comments suggesting that this be done.
9349         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
9350         New patterns.
9351         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
9352         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
9353         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
9354         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
9355         Update to match.
9356
9357 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
9358
9359         * config/arm/arm.c (output_return_instruction): Only restore IP
9360         into SP if frame_pointer_needed.
9361
9362 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
9363
9364         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
9365         for SCmode and DCmode if ARCH32.
9366         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
9367         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
9368         if ARCH32.
9369         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
9370         if ARCH32.
9371         (BASE_OUTGOING_VALUE_REG): Likewise.
9372
9373 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
9374
9375         PR target/10904
9376         PR target/13058
9377         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
9378         Forbid mode changes from SImode for lower FP regs if ARCH64.
9379
9380 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
9381
9382         * Makefile.in (bt-load.o): Depend on except.h.
9383         * bt-load.c (except.h): #include.
9384         (compute_defs_uses_and_gen): If insn at end of BB can throw
9385         within this function, consider registers used by it unavailable for
9386         btr migration.
9387         (move_btr_def): If insn at end of BB can throw, insert before rather
9388         than after.
9389
9390         * flags.h (flag_btr_bb_exclusive): Declare.
9391         * toplev.c (flag_btr_bb_exclusive): New variable.
9392         (f_options): Add btr-bb-exclusive.
9393         * bt-load.c (augment_live_range): Restore old behaviour if
9394         flag_btr_bb_exclusive is set.
9395         * common.opt: Add entry for -fbtr-bb-exclusive.
9396         * opts.c (common_handle_options): Same.
9397         * doc/invoke.texi: Document -fbtr-bb-exclusive.
9398
9399         * bt-load.c (btrs_live_at_end): New variable.
9400         (compute_defs_uses_and_gen): Compute its pointed-to array.
9401         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
9402         (augment_live_range): When augmenting with a new dominator,
9403         use only its btrs_live_at_end set, but also add in the full set
9404         of the old dominator.
9405         (btr_def_live_range): Use btrs_live_at_end.
9406         (move_btr_def): Set other_btr_uses_before_def, and move new set
9407         to the end of the basic block, if appropriate.
9408         (migrate_btr_defs): Allocate and free btrs_live_at_end.
9409
9410         * bt-load.c (basic_block_freq): Remove outdated comment.
9411
9412 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
9413
9414         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
9415         (PREDICATE_CODES): Remove duplicate.
9416         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
9417         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
9418         (MASK_PROFILE_KERNEL): Adjust define.
9419
9420 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
9421
9422         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
9423         of long string literals from 32 bytes to sizeof (void *) when !-Os
9424         and to 1 with -Os.
9425
9426 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9427
9428         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
9429         constant addresses in the normal mode.
9430
9431 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9432
9433         * system.h (CHAR_BITFIELD): Delete.
9434         (BOOL_BITFIELD): New.
9435         * c-decl.c (c_scope): Use BOOL_BITFIELD.
9436         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
9437
9438 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9439
9440         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9441         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9442         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9443         (TARGET_STRUCT_VALUE_RTX): Likewise.
9444         (TARGET_RETURN_IN_MEMORY): Likewise.
9445         (arc_return_in_memory): Likewise.
9446         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
9447         (PROMOTE_FUNCTION_RETURN): Likewise.
9448         (RETURN_IN_MEMORY): Likewise.
9449         (STRUCT_VALUE): Likewise.
9450
9451 2004-01-26  Richard Henderson  <rth@redhat.com>
9452
9453         * c-parse.in (extension): Use itype.
9454         (SAVE_EXT_FLAGS): Don't allocate a tree.
9455         (RESTORE_EXT_FLAGS): Don't read a tree.
9456
9457 2004-01-26  Jan Hubicka  <jh@suse.cz>
9458
9459         * cselib.c (discard_useless_values):  Clear out value pointer pointing
9460         to datastructure to be recycled.
9461
9462 2004-01-25  Jan Hubicka  <jh@suse.cz>
9463
9464         * genextract.c (main): Do not output the memset when not checking.
9465
9466 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9467
9468         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
9469         switch statement instead of a chain of if statements.
9470
9471 2004-01-26  Jeff Law  <law@redhat.com>
9472
9473         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
9474         acute accents for Petur Runolfsson's entry.
9475
9476 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9477
9478         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
9479         (TARGET_RETURN_IN_MEMORY): Likewise.
9480         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
9481         (RETURN_IN_MEMORY): Likewise.
9482
9483 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
9484
9485          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
9486          unaligned load/store into smaller loads and stores.
9487
9488 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
9489
9490         * function.c (assign_parms): Do not assign
9491         long long argument to memory in prologue if
9492         is it loaded into register.
9493
9494 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
9495
9496          PR middle-end/13779
9497          * expr.c (emit_group_load): split constant
9498          correctly into register components of PARALLEL insn.
9499
9500 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
9501
9502         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
9503         Use adjust_address_nv directly with appropriate mode.
9504         (restore_stack_nonlocal): Ditto.
9505
9506 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9507
9508         * config/xtensa/xtensa-protos.h: Remove the prototype for
9509         xtensa_builtin_saveregs.
9510         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9511         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9512         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9513         (TARGET_STRUCT_VALUE_RTX): Likewise.
9514         (TARGET_RETURN_IN_MEMORY): Likewise.
9515         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9516         (xtensa_builtin_saveregs): Make it static.
9517         (xtensa_return_in_memory): New.
9518         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
9519         (PROMOTE_FUNCTION_RETURN): Likewise.
9520         (PROMOTE_PROTOTYPES): Likewise.
9521         (STRUCT_VALUE): Likewise.
9522         (RETURN_IN_MEMORY): Likewise.
9523         (EXPAND_BUILTIN_SAVEREGS): Likewise.
9524
9525 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9526
9527         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
9528         (arm_setup_incoming_varargs): Likewise.
9529         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
9530
9531 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9532
9533         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
9534         (cris_setup_incoming_varargs): Likewise.
9535         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
9536
9537 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9538
9539         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
9540         (ns32k_struct_value_rtx): Likewise.
9541         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
9542         NS32K_STRUCT_VALUE_REGNUM.
9543
9544 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9545
9546         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9547         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9548         (TARGET_STRUCT_VALUE_RTX): Likewise.
9549         (arm_struct_value_rtx): Likewise.
9550         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
9551         (STRUCT_VALUE): Likewise.
9552         (STRUCT_VALUE_REGNUM): Likewise.
9553         (PROMOTE_PROTOTYPES): Likewise.
9554
9555 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9556
9557         * config/ia64/ia64-protos.h: Remove the prototype for
9558         ia64_setup_incoming_varargs and ia64_return_in_memory.
9559         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
9560         (TARGET_RETURN_IN_MEMORY): Likewise.
9561         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9562         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
9563         (ia64_setup_incoming_varargs): Adjust the arguments to meet
9564         the requirement of TARGET_SETUP_INCOMING_VARARGS.
9565         (ia64_return_in_memory): Make it static.  Change the return
9566         type to bool from int.  Add an argument.
9567         (ia64_struct_value_rtx): New.
9568         * config/ia64/ia64.h: Remove commented-out definitions of
9569         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
9570         PROMOTE_PROTOTYPES.
9571         (RETURN_IN_MEMORY): Remove.
9572         (STRUCT_VALUE_REGNUM): Likewise.
9573         (STRICT_ARGUMENT_NAMING): Likewise.
9574
9575 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
9576
9577         PR target/13666
9578         * config/sparc/sparc.c (function_arg_union_value): New function.
9579         (function_arg): Use it to deal with unions.
9580         (function_value): Likewise.  Define 'regbase' only for ARCH64.
9581         Replace a conditional statement by a simpler one.
9582
9583 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
9584
9585         * config/mips/mips.c (mips16_optimize_gp): Delete.
9586         (mips_reorg): Don't call it.
9587
9588 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9589
9590         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
9591         (floatunsqihf2): Remove operand 6.
9592         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
9593         fix patterns.
9594         (ldi_conditional, ldf_conditional): Validate operands.
9595
9596 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9597
9598         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
9599         (HAVE_GAS_HIDDEN): Undefine as interim measure.
9600
9601 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9602
9603         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
9604         memory references if TARGET_EXPOSE_LDP nonzero.
9605
9606 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9607
9608         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
9609
9610 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9611
9612         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
9613         invalid operand combinations.
9614
9615 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9616
9617         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
9618         c4x_legitimate_address_p.  Fix post_modify check.
9619
9620         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
9621         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
9622
9623 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9624
9625         * config/pa/pa-protos.h: Remove the prototype for
9626         hppa_builtin_saveregs.  Add a prototype for
9627         pa_return_in_memory.
9628         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
9629         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9630         (TARGET_STRUCT_VALUE_RTX): Likewise.
9631         (TARGET_RETURN_IN_MEMORY): Likewise.
9632         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9633         (pa_struct_value_rtx): Likewise.
9634         (pa_return_in_memory): Likewise.
9635         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
9636         PA_STRUCT_VALUE_REGNUM.
9637         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
9638         (EXPAND_BUILTIN_SAVEREGS): Remove.
9639         (PROMOTE_PROTOTYPES): Likewise.
9640         (PROMOTE_FUNCTION_RETURN): Likewise.
9641
9642 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9643
9644         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
9645         (TARGET_STRUCT_VALUE_RTX): Likewise.
9646         (vax_struct_value_rtx): Likewise.
9647         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
9648         VAX_STRUCT_VALUE_REGNUM.
9649         (PROMOTE_PROTOTYPES): Remove.
9650
9651 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9652
9653         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
9654
9655 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
9656
9657         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
9658         and MIPS64 have HI/LO interlocks.  Update comment.
9659
9660 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9661
9662         * config/stormy16/stormy16-protos.h: Remove the prototype for
9663         xstormy16_setup_incoming_varargs.
9664         * config/stormy16/stormy16.c
9665         (xstormy16_setup_incoming_varargs): Remove.
9666         (xstormy16_return_in_memory): New.
9667         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
9668         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9669         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9670         (TARGET_STRUCT_VALUE_RTX): Likewise.
9671         (TARGET_RETURN_IN_MEMORY): Likewise.
9672         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
9673         (PROMOTE_FUNCTION_RETURN): Likewise
9674         (PROMOTE_PROTOTYPES): Likewise
9675         (RETURN_IN_MEMORY): Likewise
9676         (STRUCT_VALUE): Likewise
9677         (SETUP_INCOMING_VARARGS): Likewise
9678
9679 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
9680
9681         * config/mips/mips.c (mips_offset_within_object_p): New function.
9682         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
9683         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
9684         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
9685
9686 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9687
9688         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
9689         (PROMOTE_FUNCTION_RETURN): Likewise.
9690
9691 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9692
9693         * config/mn10300/mn10300-protos.h: Remove the prototype for
9694         mn10300_builtin_saveregs.
9695         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
9696         (TARGET_STRUCT_VALUE_RTX): Likewise.
9697         (TARGET_RETURN_IN_MEMORY): Likewise.
9698         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9699         (mn10300_return_in_memory): Likewise.
9700         (mn10300_builtin_saveregs): Make it static.
9701         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
9702         (RETURN_IN_MEMORY): Likewise.
9703         (STRUCT_VALUE): Likewise.
9704         (EXPAND_BUILTIN_SAVEREGS): Likewise.
9705
9706 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
9707
9708         PR bootstrap/13853
9709         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
9710
9711 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9712
9713         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
9714         using ccr.
9715
9716 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9717
9718         * config/i860/i860-protos.h: Remove the prototype for
9719         i860_saveregs.
9720         * config/i860/i860.c (i860_saveregs): Make it static.
9721         (i860_struct_value_rtx): New.
9722         (TARGET_STRUCT_VALUE_RTX): Likewise.
9723         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9724         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
9725         I860_STRUCT_VALUE_REGNUM.
9726         (EXPAND_BUILTIN_SAVEREGS): Remove.
9727
9728 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9729
9730         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
9731         (TARGET_RETURN_IN_MEMORY): Likewise.
9732         (m68hc11_struct_value_rtx): Likewise.
9733         (m68hc11_return_in_memory): Likewise.
9734         * config/m68hc11/m68hc11.h: Remove a commented-out definition
9735         of PROMOTE_PROTOTYPES.
9736         (RETURN_IN_MEMORY): Remove.
9737         (STRUCT_VALUE_REGNUM): Likewise.
9738
9739 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9740
9741         * config/mmix/mmix-protos.h: Remove the prototype for
9742         mmix_setup_incoming_varargs.
9743         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9744         (TARGET_STRUCT_VALUE_RTX): Likewise.
9745         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9746         (mmix_setup_incoming_varargs): Make it static.
9747         (mmix_struct_value_rtx): New.
9748         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
9749         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
9750         (STRUCT_VALUE_REGNUM): Remove.
9751         (SETUP_INCOMING_VARARGS): Likewise.
9752
9753 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9754
9755         * config/mips/mips-protos.h: Remove the prototypes for
9756         mips_setup_incoming_varargs and mips_return_in_memory.
9757         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9758         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9759         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9760         (TARGET_STRUCT_VALUE_RTX): Likewise.
9761         (TARGET_RETURN_IN_MEMORY): Likewise.
9762         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9763         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
9764         (mips_setup_incoming_varargs): Match the prototype for
9765         TARGET_SETUP_INCOMING_VARARGS.
9766         (mips_return_in_memory): Make it static.  Add argument fntype.
9767         (mips_strict_argument_naming): New.
9768         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
9769         (PROMOTE_FUNCTION_ARGS): Likewise.
9770         (PROMOTE_FUNCTION_RETURN): Likewise.
9771         (STRUCT_VALUE): Likewise.
9772         (RETURN_IN_MEMORY): Likewise.
9773         (SETUP_INCOMING_VARARGS): Likewise.
9774         (STRICT_ARGUMENT_NAMING): Likewise.
9775
9776 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9777
9778         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
9779         (TARGET_RETURN_IN_MEMORY): Likewise.
9780         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9781         (ip2k_return_in_memory): Likewise.
9782         (ip2k_setup_incoming_varargs): Likewise.
9783         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
9784         (STRUCT_VALUE): Likewise.
9785         (STRUCT_VALUE_INCOMING): Likewise.
9786         (SETUP_INCOMING_VARARGS): Likewise.
9787
9788 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9789
9790         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
9791         (TARGET_RETURN_IN_MEMORY): Likewise.
9792         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
9793         (avr_return_in_memory): Remove.
9794         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
9795         (STRUCT_VALUE): Likewise.
9796         (STRUCT_VALUE_INCOMING): Likewise.
9797         (STRICT_ARGUMENT_NAMING): Likewise.
9798
9799 2004-01-25  Jan Hubicka  <jh@suse.cz>
9800
9801         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
9802
9803 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
9804
9805         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
9806         (mips_regno_mode_ok_for_base_p): Declare.
9807         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
9808         (FRAME_POINTER_REGNUM): Renumber to 78.
9809         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
9810         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
9811         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
9812         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
9813         (REG_MODE_OK_FOR_BASE_P): Likewise.
9814         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
9815         entry for 77 to "$arg" and entry for 78 to "$frame".
9816         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
9817         (mips_reg_mode_ok_for_base_p): Remove.
9818         (mips_regno_mode_ok_for_base_p): New function, derived from old
9819         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
9820         restrictions unless we're being strict.
9821         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
9822
9823 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9824
9825         * c-common.h: Fix comment typos.
9826         * c-decl.c: Likewise.
9827         * cgraphunit.c: Likewise.
9828         * combine.c: Likewise.
9829         * et-forest.c: Likewise.
9830         * flow.c: Likewise.
9831         * function.c: Likewise.
9832         * ifcvt.c: Likewise.
9833         * integrate.c: Likewise.
9834         * jump.c: Likewise.
9835         * postreload.c: Likewise.
9836         * varray.c: Likewise.
9837
9838 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9839
9840         * doc/frontends.texi: Update copyright.
9841         * doc/gcov.texi: Likewise.
9842         * doc/gty.texi: Likewise.
9843         * doc/sourcebuild.texi: Likewise.
9844         * doc/standards.texi: Likewise.
9845
9846 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
9847
9848         PR target/12978
9849         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
9850         Remove movstrqi_small because it conflicts with movstrqi_large.
9851
9852 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9853
9854         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9855         (TARGET_STRUCT_VALUE_RTX): Likewise.
9856         (cris_struct_value_rtx): Likewise.
9857         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
9858         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
9859         STRUCT_VALUE_REGNUM.
9860         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
9861
9862 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
9863
9864         PR bootstrap/13848
9865         * cse.c (cse_cc_succs): Change the mode of the source expression
9866         as soon as decide we need a new mode.  Don't permit changing modes
9867         if we found a match in a successor block.
9868         (cse_condition_code_reg): Save original mode of source expression
9869         so that we know whether we have to change the mode in other
9870         insns.
9871
9872 2004-01-24  Jan Hubicka  <jh@suse.cz>
9873
9874         * emit-rtl.c (change_address, adjust_address_1, offset_address,
9875         widen_memory_access):  Return early when there is nothing to change.
9876
9877 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
9878
9879         * simplify-rtx.c (simplify_relational_operation): Don't
9880         simplify address == constant into address + -constant == 0.
9881
9882 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9883
9884         * gcc.c (process_command): Don't internationalize the
9885         Copyright message.
9886         * mips-tfile.c (main): Likewise.
9887
9888 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
9889
9890         * cse.c: (cse_cc_succs) Fix comparison warning.
9891
9892 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9893
9894         * config/h8300/h8300.md: Remove extraneous USE in expanders.
9895
9896 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9897
9898         * config/h8300/h8300-protos.h: Provide prototypes for
9899         h8300_legitimate_constant_p and h8300_legitimate_address_p.
9900         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
9901         (h8300_rtx_ok_for_base_p): Likewise.
9902         (h8300_legitimate_address_p): Likewise.
9903         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
9904         h8300_legitimate_constant_p.
9905         (RTX_OK_FOR_BASE_P): Remove.
9906         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
9907
9908 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9909
9910         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
9911         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
9912         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
9913         (REG_OK_FOR_BASE_STRICT_P): Likewise.
9914         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
9915         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
9916         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
9917         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
9918
9919 2004-01-24  Jan Hubicka  <jh@suse.cz>
9920
9921         * cselib.c (remove_useless_values):  Do not access discarded values.
9922
9923 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
9924
9925         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
9926         arrays.
9927
9928 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
9929
9930         * recog.c: Fix a typo in copyright.
9931
9932 2004-01-23  Andrew Pinski  <apinski@apple.com>
9933
9934         * config/rs6000/rs6000.md (call): Fix misappiled patch.
9935         (call_value): Likewise.
9936
9937 2004-01-23  Richard Henderson  <rth@redhat.com>
9938
9939         PR opt/12941
9940         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
9941         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
9942         if SHIFT_COUNT_TRUNCATED is set.
9943
9944 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
9945
9946         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
9947         separate real and imaginary parts.
9948         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
9949
9950 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
9951
9952         PR target/13674
9953         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
9954         loading into GPR.
9955
9956 2004-01-23  Jan Hubicka  <jh@suse.cz>
9957
9958         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
9959         change.
9960
9961         * alloc-pool.c (align_four): Kill.
9962         (create_alloc_pool): Align size to eight.
9963         (free_alloc_pool, free_pool): Invalidate deallocated data.
9964
9965 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
9966
9967         PR gcc/1532
9968         * cse.c (cse_change_cc_mode): New static function.
9969         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
9970         (cse_condition_code_reg): New function.
9971         * rtl.h (cse_condition_code_reg): Declare.
9972         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
9973         * target.h (struct gcc_target): Add fixed_condition_code_regs and
9974         cc_modes_compatible.
9975         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
9976         (TARGET_CC_MODES_COMPATIBLE): Define.
9977         (TARGET_INITIALIZER): Add new initializers.
9978         * targhooks.c (default_cc_modes_compatible): New function.
9979         * targhooks.c (default_cc_modes_compatible): Declare.
9980         * hooks.c (hook_bool_intp_intp_false): New function.
9981         * hooks.h (hook_bool_intp_intp_false): Declare.
9982         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
9983         (TARGET_CC_MODES_COMPATIBLE): Define.
9984         (ix86_fixed_condition_code_regs): New static function.
9985         (ix86_cc_modes_compatible): Likewise.
9986         * doc/tm.texi (Condition Code): Document new hooks.
9987
9988 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9989
9990         * fixinc/inclhack.def (bad_lval): Renamed to ...
9991         (alpha_bad_lval): ... this.
9992         Removed file list.
9993         Restrict to alpha*-dec-osf*.
9994         * fixinc/fixincl.x: Regenerate.
9995         * fixinc/tests/base/dirent.h: Remove, moving test ...
9996         * fixinc/tests/base/testing.h: ... here, reflecting new name.
9997
9998 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
9999
10000         PR c/13814
10001         * c-decl.c (diagnose_mismatched_decls): Also discard a
10002         built-in if we encounter an old-style definition with the
10003         same name.
10004
10005 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
10006
10007         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
10008         set to default{32,64}.
10009
10010 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
10011
10012         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
10013         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
10014
10015 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
10016             Olivier Hainque  <hainque@act-europe.fr>
10017
10018         * fold-const.c (fold_binary_op_with_conditional_arg): Only
10019         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
10020
10021 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
10022
10023         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
10024         size for minipool references.
10025
10026 2004-01-23  Roger Sayle  <roger@eyesopen.com>
10027
10028         * real.c (real_floor, real_ceil): Tweak to allow input and output
10029         arguments to overlap.
10030         (real_round): New function to implement round(3m) semantics.
10031         * real.h (real_round): Prototype here.
10032         * builtins.c (fold_builtin_round): New function to constant fold
10033         round, roundf and roundl.
10034         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
10035
10036 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
10037
10038         PR optimization/13819
10039         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
10040         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
10041         (sh_handle_sp_switch_attribute): Remove warning.
10042
10043 2003-11-30  Jan Hubicka  <jh@suse.cz>
10044
10045         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
10046
10047 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
10048
10049         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
10050         may or may not return non-NIL.
10051         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
10052         check CANNOT_CHANGE_MODE_CLASS
10053
10054 2004-01-23  Jan Hubicka  <jh@suse.cz>
10055
10056         * basic-block.h (PROP_POSTRELOAD): New macro.
10057         (CLEANUP_LOG_LINKS): New.
10058         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
10059         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
10060
10061         * cselib.c (value_pool): New.
10062         (new_cselib_val): Use pool.
10063         (cselib_init): Initialize value_pool
10064         (cselib_finish): Free pool.
10065
10066 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
10067
10068         * config/sparc/sparc.c (scan_record_type): New function.
10069         (function_arg_slotno): Use it to determine which kinds of
10070         registers the record can be passed in.
10071
10072 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
10073
10074         * config/pa/fptr.c: Fix old-style definition.
10075
10076 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
10077
10078         PR optimization/13724
10079         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
10080         represents the zero bits produced by a ZERO_EXTEND operation.
10081
10082 2004-01-22  Roger Sayle  <roger@eyesopen.com>
10083
10084         PR optimization/13821
10085         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
10086         correctly calculate the lowpart offset of the contracted subreg.
10087
10088 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
10089
10090         * doc/invoke.texi (Optimize Options): Note that --param arguments
10091         are subject to change without notice.
10092
10093 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10094
10095         * config.gcc (mips-sgi-irix6*o32): Removed.
10096         * config/mips/iris6-o32-as.h: Likewise.
10097         * config/mips/iris6-o32-gas.h: Likewise.
10098         * config/mips/iris6-o32.h: Likewise.
10099
10100 2004-01-22  Jan Hubicka  <jh@suse.cz>
10101
10102         * cfgcleanup.c (first_pass): New static variable.
10103         (try_forward_edges):  Add work limiting check for threading.
10104         (try_crossjump_bb):  Add work limiting check for crossjumping.
10105         (try_optimize_cfg):  Maintain first pass variable.
10106
10107 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
10108
10109         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
10110         handles complex and vector modes.
10111
10112 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
10113
10114         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
10115         (REG_OK_FOR_BASE_P_STRICT): Likewise.
10116         (STRICT): Likewise.
10117
10118 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
10119
10120         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
10121         (genrtl_for_stmt): Remove emit_nop calls.
10122
10123 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10124
10125         PR target/13713
10126         PR target/13324
10127         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
10128         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
10129         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
10130
10131 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
10132
10133         * config/arm/arm.c: Include "debug.h".
10134         (thumb_pushpop): Take two new arguments.  Add some commentary.
10135         Output frame information when pushing.
10136         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
10137         thumb_pushpop.
10138         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
10139         offset, and pass it to thumb_pushpop.  Output CFI information.
10140         (thumb_expand_prologue): Add some frame-related markers and notes.
10141
10142 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
10143
10144         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
10145         for TARGET_64BIT.
10146         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
10147         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
10148
10149 2004-01-22  Roger Sayle  <roger@eyesopen.com>
10150             Paolo Bonzini  <bonzini@gnu.org>
10151
10152         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
10153         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
10154         * rtl.h (subreg_lsb_1): Prototype here.
10155         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
10156         sign extensions.
10157
10158 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
10159
10160         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
10161         macro need not be defined if jump-tables should contain
10162         relative addresses only when -fPIC or -fPIC is in effect.
10163
10164 2004-01-22  Jan Hubicka  <jh@suse.cz>
10165
10166         * alias.c (reg_base_value): Turn into varray.
10167         (reg_base_value_size): Kill.
10168         (old_reg_base_value): New deletable varray.
10169         (alias_invariant_size): New variable.
10170         (REG_BASE_VALUE): Update to use varray.
10171         (find_base_value): Likewise.
10172         (record_set): Likewise.
10173         (record_base_value): Likewise.
10174         (memrefs_conflict_p): Likewise.
10175         (record_set): Likewise
10176         (record_base_value): Likewise.
10177         (memrefs_conflict_p): Use alias_invariant_size.
10178         (init_alias_analysis): Use varray; set alias_invariant_size;
10179         rescale other arrays to be sized by maxreg.
10180         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
10181
10182 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
10183
10184         * config/sparc/sparc.c (function_arg_slotno): Use
10185         FLOAT_TYPE_P to detect FP fields in structures.
10186         (function_arg_record_value_1): Likewise.
10187         (function_arg_record_value_2): Likewise.
10188
10189 2004-01-22  Jan Hubicka  <jh@suse.cz>
10190
10191         * function.c (allocate_struct_function): Do not initialize expr, emit
10192         and varasm.
10193         (prepare_function_start): Do it here.
10194         * c-parse.in (maybe_type_qual): Do not produce line number notes.
10195
10196 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
10197
10198         PR target/13559
10199         * config/sparc/sparc.c (function_arg_record_value_3): Revert
10200         to 'word_mode' once the first slot has been filled.
10201
10202 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
10203
10204         * config/sparc/sparc.c (function_arg_record_value_1): Fix
10205         computation of the number of integer registers required.
10206
10207 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
10208
10209         * config/i386/i386.md: Simplify certain comparisons of
10210         const_int.
10211
10212 2004-01-21  Andrew Pinski  <apinski@apple.com>
10213
10214         PR target/13785
10215         * config/rs6000/rs6000.md (call_value): Force operand
10216         1 not operand 0 into a register.
10217
10218 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
10219
10220         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
10221         unwind-dw2-fde.h: Update copyright.
10222
10223 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10224
10225         * pa-protos.h: Update copyright.
10226         * pa.h: Likewise.
10227         * pa.md: Likewise.
10228
10229 2004-01-21  Caroline Tice  <ctice@apple.com>
10230
10231         PR target/12308
10232         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
10233         flags register.
10234         (fix_truncdfdi2): Likewise.
10235         (fix_truncsfdi2): Likewise.
10236         (*fix_truncdi_1): Likewise.
10237         (fix_truncxfsi2): Likewise.
10238         (fix_truncdfsi2): Likewise.
10239         (fix_truncsfsi2): Likewise.
10240         (*fix_truncsi_1): Likewise.
10241         (fix_truncxfhi2): Likewise.
10242         (fix_truncdfhi2): Likewise.
10243         (fix_truncsfhi2): Likewise.
10244         (*fix_trunchi_1): Likewise.
10245
10246 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
10247
10248         * alias.c, basic-block.h, c-common.c, c-common.h,
10249         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
10250         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
10251         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
10252         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
10253         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
10254         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
10255         genautomata.c, genconditions.c, genemit.c, genflags.c,
10256         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
10257         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
10258         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
10259         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
10260         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
10261         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
10262         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
10263         unwind.h, varray.c, varray.h: Update copyright.
10264
10265 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
10266
10267         * config/h8300/coff.h: Update copyright.
10268         * config/h8300/elf.h: Likewise.
10269         * config/h8300/h8300-protos.h: Likewise.
10270         * config/h8300/h8300.c: Likewise.
10271         * config/h8300/h8300.h: Likewise.
10272         * config/h8300/h8300.md: Likewise.
10273
10274 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10275
10276         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
10277         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
10278         ultrix_unistd): New hacks.
10279         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
10280         ULTRIX_CONST2_CHECK): Add checks.
10281         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
10282         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
10283         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
10284         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
10285         * fixinc/tests/base/locale.h: New file.
10286         * fixinc/fixincl.x: Rebuilt.
10287
10288 2004-01-21  Andreas Jaeger  <aj@suse.de>
10289             Michael Matz  <matz@suse.de>
10290
10291         * doc/extend.texi (Extended Asm): Clarify memory clobber.
10292
10293 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
10294
10295         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
10296         _Jv_RegisterClasses through a function pointer.
10297
10298 2004-01-21  Falk Hueffner  <falk@debian.org>
10299
10300         PR target/12898
10301         * config/alpha/alpha.c (alpha_emit_set_const_1): If
10302         no_new_pseudos, use gen_rtx_SET directly for SImode constants
10303         which need multiple instructions to emit.
10304
10305 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
10306
10307         * config/m32r/m32r.h (CPP_SPEC): Define.
10308
10309 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
10310
10311         * c-decl.c (merge_decls): Kill different_binding_level and
10312         different_tu arguments; simplify throughout.
10313         (duplicate_decls): Likewise.
10314         (pushdecl, merge_translation_unit_decls): Update calls to
10315         duplicate_decls.
10316
10317 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10318
10319         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
10320         $(SYSTEM_H).
10321         (print-rtl1.o): Depend on $(SYSTEM_H).
10322
10323 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
10324
10325         PR bootstrap/12730
10326         * configure.ac: Delete definition and subsitution of docdir.
10327         Add info, man, srcman and srcinfo to target hooks. Create doc/
10328         directory.
10329         * configure: Regenerate.
10330         * Makefile.in: Don't substitute docdir and delete all references
10331         throughout.
10332         (MAKEINFOFLAGS): Define.
10333         (stmp-docobjdir): Delete.
10334         (INFOFILES, MANFILES): Define.
10335         (info): Call lang.info, srcinfo and lang.srcinfo.
10336         (generated-manpages): Call lang.man, srcman and lang.srcman.
10337         (srcinfo, srcman): New rules to copy back files to source directory.
10338         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
10339         (install-man): Revamp rule.
10340         (clean): Update dvi directory.
10341         (distclean): Delete TAGS from front end directorys.
10342         (maintainer-clean): Delete all document files in source directory.
10343
10344         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
10345         (objc.srcman, objc.srcinfo): Likewise.
10346
10347 2004-01-20  Bruce Korb  <bkorb@gnu.org>
10348
10349         * fixinc/inclhack.def(math_exception): bypass only for glibc.
10350         (matherr_decl): rename & relocate as exception_structure.
10351         This fix must precede the math_exception fix.
10352
10353 2004-01-20  Roger Sayle  <roger@eyesopen.com>
10354
10355         * fold-const.c (fold_convert): Rename to fold_convert_const.
10356         (fold_convert_const): Change arguments to take a tree_code,
10357         a type and the operand/expression to be converted.  Return
10358         NULL_TREE if no simplification is possible.  Add support for
10359         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
10360         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
10361         Adjust call to fold_convert to match new fold_convert_const.
10362         Avoid modifying the tree passed to fold in-place.
10363
10364 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
10365
10366         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
10367         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
10368         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
10369
10370 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10371
10372         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
10373         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
10374         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
10375         (emit_move_sequence): Check scratch_reg first in various if statements.
10376         Extend source simplification to handle all 64-bit CONST_INTs.
10377         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
10378         frame size.
10379         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
10380         frame offset calculations.
10381         * pa.h (NEW_HP_ASSEMBLER): Add comment.
10382         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
10383         LEGITIMATE_64BIT_CONST_INT_P): Define.
10384         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
10385         any CONST_INT as legitimate during and after reload.
10386         (VAL_32_BITS_P, INT_32_BITS): Define.
10387         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
10388
10389 2004-01-20  Jan Hubicka  <jh@suse.cz>
10390
10391         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
10392         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
10393         containing hard regs are shared.
10394         (gen_hard_reg_clobber): New function.
10395         (hard_reg_clobbers): New array.
10396         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
10397         (copy_rtx): Do not copy clobbers containing hard regs.
10398         * rtl.h (gen_hard_reg_clobber): Declare.
10399
10400 2004-01-20  Jan Hubicka  <jh@suse.cz>
10401
10402         * varray.c:  Include hashtab.h
10403         (varray_descriptor): New structure.
10404         (hash_descriptor, eq_descriptor, varray_descriptor,
10405         print_statistics): New static functions
10406         (varray_init, varray_grow): Update statistics
10407         (dump_varray_statistics): New function.
10408         * varray.h (dump_varray_statistics): Declare.
10409         * toplev.c (finalize): Call it.
10410         * Makefile.in (varray.o): Add dependency.
10411
10412 2004-01-20  Jan Hubicka  <jh@suse.cz>
10413
10414         * cselib.c: Include alloc-pool.h
10415         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
10416         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
10417         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
10418         unchain_one_elt_loc_list_pool, unchain_one_value,
10419         new_cselib_val): Simplify using allocpool.
10420         (cselib_init): Initialize allocpools.
10421         (cselib_finish): Finish allocpools.
10422         * Makefile.in (cselib.o): Depend on alloc-pool.h
10423
10424 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
10425
10426         * config/mips/mips.c (mips_load_call_address): Make the call insn
10427         use $gp if it could be calling a lazy binding stub.
10428
10429 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
10430
10431         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
10432         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10433         (TARGET_STRUCT_VALUE_RTX): Likewise.
10434         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
10435         (PROMOTE_FUNCTION_RETURN): Remove.
10436         (STRUCT_VALUE): Remove.
10437
10438 2004-01-20  Denis Chertykov  <denisc@overta.ru>
10439
10440         PR bootstrap/13735
10441         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
10442         register as pointer after reload.
10443
10444 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10445
10446         PR optimization/12440
10447         * loop.c: Include ggc.h.
10448         (loop_optimize): Run garbage collector between optimization of loops.
10449         * Makefile.in (loop.o): Add GGC_H dependency.
10450
10451 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
10452
10453         * gcc/config/rs6000/rs6000.c (function_arg) Handle
10454         vector register special in function without prototype.
10455         (function_arg_advance): Vector parameters get always
10456         GPRs allocated for the linux64 target.
10457
10458 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
10459
10460         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
10461         not TARGET_M32RX_MASK.
10462
10463 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
10464
10465         PR target/13557
10466         * config/sparc/sparc.c (function_arg): Reorder the cases.
10467
10468 2004-01-19  Per Bothner  <per@bothner.com>
10469
10470         Move cpp_reader's line_maps field to a shared global.
10471         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
10472         and change the type to a pointer rather than a struct.
10473         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
10474         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
10475         Likewise.
10476         * cppfiles.c (validate_pch):  Likewise.
10477         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
10478         Likewise.
10479         * cpperror.c (print_location):  Likewise.
10480         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
10481         * cppinit.c (cpp_create_reader):  Handle new parameter.
10482         (cpp_destroy):  Don't free line_maps - that's no longer our job.
10483         * input.h (line_table):  New variable.
10484         * toplev.c (line_table):  Declare variable.
10485         (general_init):  Initialize line_table.
10486         * c-opts.c (c_common_init_options):  Pass line_table to
10487         cpp_create_reader.
10488         * fix-header.c (read_scan_file):  New local variable line_table.
10489         Initialize, and pass it to cpp_create_reader.
10490         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
10491         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
10492
10493 2004-01-19  Per Bothner  <per@bothner.com>
10494
10495         Implement a cache for linemap_lookup.
10496         * line-map.h (struct_line_maps):  Add cache field.
10497         * line-map.c (linemap_init):  Zero cache field.
10498         (linemap_add):  Set cache field to offset of newly allocated map.
10499         (linemap_lookup):  Use and set cache field.
10500
10501 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10502
10503         PR optimization/13567
10504         * cse.c (cse_basic_block): Call cse_insn with a non-null
10505         libcall_insn for the last SET insn of a no-confilict block.
10506
10507 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
10508
10509         * Makefile.in (target_noncanonical, program_transform_name): Use
10510         immediate define instead of deferred.
10511         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
10512         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
10513         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
10514         deferred backquote.
10515
10516 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
10517
10518         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
10519         true unconditionally.
10520         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
10521         Remove.
10522         (build_unary_op, build_modify_expr): Don't handle extended
10523         lvalues.
10524         (build_component_ref, build_conditional_expr): Call non_lvalue
10525         instead of pedantic_non_lvalue.
10526         (build_c_cast): Don't condition use of non_lvalue on pedantic.
10527         * fold-const.c (fold): Don't check pedantic directly for
10528         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
10529         passed to pedantic_non_lvalue.
10530         * doc/extend.texi: Remove documentation of extended lvalues.
10531
10532 2004-01-19  Roger Sayle  <roger@eyesopen.com>
10533
10534         PR optimization/5263
10535         * simplify-rtx.c (associative_constant_p): Delete.
10536         (simplify_associative_operation): Rewrite to linearize terms, and
10537         attempt to simplify new term against both left and right subterms.
10538         (simplify_binary_operation): Call swap_commutative_operands_p on
10539         op0 and op1, not trueop0 and trueop1.  Move the initialization of
10540         trueop0 and trueop1 down to where first needed.
10541         (simplify_relational_operation): Likewise.
10542         * rtlanal.c (commutative_operand_precedence): Also order constant
10543         operands using avoid_constant_pool_reference.
10544
10545 2004-01-19  Richard Henderson  <rth@redhat.com>
10546
10547         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
10548         don't check memory mode.
10549         (unaligned_memory_operand): Likewise.
10550         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
10551         abort for op0 not MEM.
10552
10553         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
10554         is not a reg, copy to a scratch first.
10555         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
10556         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
10557         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
10558         (reload_inqi, reload_inhi): Fix mode of op0.
10559         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
10560         reload_outhi_help): Likewise.  Use define_insn_and_split.
10561
10562         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
10563         as well as $29 dead.
10564
10565 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
10566
10567         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
10568         "tls_object" for thread-local objects.
10569         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
10570         "#tls" for thread-local sections.
10571         * configure.ac (thread-local checks): Specify --fatal-warnings in
10572         every binutils-specific checks.  For sparc*-*-*, test whether the
10573         OS is Solaris and the tools are native and act accordingly.
10574         * configure: Rebuild.
10575
10576 2004-01-19  Jeff Law  <law@redhat.com>
10577
10578         * contrib.texi: Update Paolo Carlini's entry.  New entries for
10579         Jerry Quinn and Petur Runolfsson.
10580
10581 2004-01-19  Roger Sayle  <roger@eyesopen.com>
10582
10583         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
10584         size, don't use the larger zero-extending loads.
10585
10586 2004-01-19  Richard Henderson  <rth@redhat.com>
10587
10588         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
10589         * alpha.md (UNSPEC_NT_LDA): Remove.
10590         (UNSPEC_CVTLQ, cvtlq): New.
10591         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
10592         (extendsidi2_fix): Remove.
10593         (extendsidi2 splitter): Use cvtlq.
10594         (extendsidi2 fp peepholes): Remove.
10595         (cvtql): Use SFmode instead of SImode.
10596         (fix_trunc?fsi): Update to match.
10597         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
10598         (movsi): Rename from movsi_nofix, remove f alternatives.
10599         (movsi_nt_vms): Similarly.
10600         (movsi_fix, movsi_nt_vms_fix): Remove.
10601         (nt_lda): Remove.
10602         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
10603
10604 2004-01-19  Jan Hubicka  <jh@suse.cz>
10605
10606         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
10607         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
10608         list.
10609         (cgraph_remove_unreachable_nodes): New function
10610         (cgraph_decide_inlining_of_small_function): Fix pasto.
10611         (cgraph_decide_inlining_incrementally): Fix pasto.
10612         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
10613
10614 2004-01-19  Steven Bosscher  <stevenb@suse.de>
10615
10616         * gengtype.c (header_file): Make it static.
10617         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
10618         * gengtype.h (header_file): No longer extern.
10619
10620 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
10621
10622         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
10623         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
10624         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
10625
10626 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
10627
10628         * stmt.c (HAVE_casesi): Define it not already defined.
10629         (HAVE_tablejump): Likewise.
10630         (expand_end_case_type): Resort to the binary tree method if
10631         neither casesi or tablejump is available.
10632
10633 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
10634
10635         * final.c (final_scan_insn): Make non-static again.
10636         * output.h (final_scan_insn): Re-add prototype.
10637         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
10638         to final_scan_insn call.
10639         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
10640         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
10641         * config/pa/pa.c (output_lbranch, output_call): Likewise.
10642         * config/sh/sh.c (print_slot): Likewise.
10643         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
10644         (output_sibcall, sparc_flat_function_epilogue): Likewise.
10645
10646 2004-01-18  Jan Hubicka  <jh@suse.cz>
10647
10648         * basic-block.h (try_redirect_by_replacing_jump): Declare.
10649         * cfgcleanup.c (try_optimize_cfg): Use it.
10650         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
10651         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
10652         Kill hack.
10653         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
10654
10655         Revert:
10656         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
10657
10658                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
10659                 even after reload, just don't remove the actual jump tables.
10660
10661 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
10662
10663         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
10664
10665 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
10666
10667         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
10668         the size of a pointer in bytes.
10669
10670 2004-01-18  Roger Sayle  <roger@eyesopen.com>
10671
10672         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
10673         live "next" variable, which could lead to an infinite loop.
10674
10675 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
10676
10677         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
10678         block.
10679
10680         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
10681         Check for NULL in the chain and remove repeated code.
10682
10683 2004-01-18  Jan Hubicka  <jh@suse.cz>
10684
10685         * coverage.c (checksum_string): Rename to ...
10686         (coverage_checksum_string): ... this one, Use crc32_string; recognize
10687         names containing random number and zero the number out in order to get
10688         match.
10689
10690 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
10691
10692         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
10693
10694 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
10695
10696         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
10697         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
10698         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
10699         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
10700         doc/trouble.texi: Remove trailing whitespace.
10701
10702 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
10703
10704         PR target/7618
10705         * config/mips/mips.c: Include cfglayout.h.
10706         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
10707         (mips_unspec_offset_high): Add temporary register argument.
10708         (mips_load_call_address): New function, split out from...
10709         (mips_expand_call): ...here.
10710         (mips_output_cplocal): New function.
10711         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
10712         (mips_emit_loadgp): New function, split out from...
10713         (mips_expand_prologue): ...here.
10714         (mips_output_mi_thunk): New function.
10715
10716 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
10717
10718         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
10719         mcpu32): Remove redundant checks for implied target predefines.
10720
10721 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
10722
10723         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
10724         Return type is unsigned int not int.
10725         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
10726         Likewise.
10727
10728 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
10729
10730         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
10731         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
10732         "GNU/Linux" and "Microsoft Windows" terminology.
10733
10734 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
10735
10736         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
10737         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
10738         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
10739         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
10740         @smallexample instead of @example.
10741
10742 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
10743
10744         * objc/objc-act.c (build_objc_method_call): Use target
10745         hooks instead of macros to determine if ..._stret
10746         dispatchers should be used (NeXT runtime only).
10747
10748 2004-01-17  Roger Sayle  <roger@eyesopen.com>
10749
10750         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
10751         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
10752
10753 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
10754
10755         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
10756         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
10757         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
10758         macros.
10759         * reload1.c (emit_reload_insns): Use them.
10760         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
10761         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
10762         for NULL PATTERN.
10763
10764 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
10765
10766         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
10767         (final_scan_insn): Update to take an additional SEEN argument.  Emit
10768         a line note after the prologue.  Make static.
10769         (line_note_exists): Remove.
10770         (final): Don't initialize line_note_exists.  Update call to
10771         final_scan_insn.
10772         * output.h (final_scan_insn): Remove prologue.
10773         * function.c (set_insn_locators): Update comment.
10774         (thread_prologue_and_epilogue_insns): Add a comment.
10775
10776 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
10777
10778         PR target/10781
10779         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
10780         Prototype.
10781         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
10782         New function.
10783         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
10784         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
10785         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
10786
10787 2004-01-17  Jan Hubicka  <jh@suse.cz>
10788
10789         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
10790         commit.
10791
10792         * toplev.c (HAVE_conditional_execution): Provide default.
10793         (rest_of_handle_reorder_blocks): For conditional_execution target
10794         update liveness once after all transformations
10795         (rest_of_compilation): Do crossjumping before ce3.
10796
10797 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
10798
10799         * alias.c (new_alias_set): Mark last_alias_set for PCH.
10800         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
10801         for PCH.
10802         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
10803         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
10804         (get_TOC_alias_set): Mark 'set' for PCH.
10805
10806 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
10807
10808         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
10809         even after reload, just don't remove the actual jump tables.
10810
10811 2004-01-17  J. Brobecker  <brobecker@gnat.com>
10812
10813         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
10814         Remove checks for is_ada() and TREE_UNSIGNED.
10815         (subrange_type_die): Emit a byte_size attribute if the subrange
10816         type size is different from the base type size.
10817         (modified_type_die): Replace call to is_ada_subrange_type() by
10818         call to is_subrange_type().
10819
10820 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
10821
10822         * config/sh/sh.c: Include ggc.h.
10823
10824 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
10825
10826         * Makefile.in (MD5_H): New.
10827         (fold-const.o): Depend on md5.h.
10828         (dwarf2out.o): Likewise.
10829         (cppfiles.o): Likewise.
10830         * cppfiles.c: Include md5.h.
10831         (should_stack_file): Check against list read from PCH file.
10832         (struct pchf_data): New.
10833         (pchf): New variable.
10834         (struct pchf_adder_info): New.
10835         (pchf_adder): New.
10836         (pchf_save_compare): New.
10837         (_cpp_save_file_entries): New.
10838         (_cpp_read_file_entries): New.
10839         (struct pchf_compare_data): New.
10840         (pchf_compare): New.
10841         (check_file_against_entries): New.
10842         * cpphash.h (_cpp_save_file_entries): Prototype.
10843         (_cpp_read_file_entries): Prototype.
10844         * cpppch.c (cpp_write_pch_state): Write the list of headers.
10845         (cpp_read_state): Read the list of headers.
10846
10847 2004-01-17  Jan Hubicka  <jh@suse.cz>
10848
10849         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
10850         builtin_expect specially.
10851         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
10852         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
10853         * invoke.texi (max-inline-insns-single): Set to 100.
10854         (large-function-insns): Set to 3000.
10855
10856 2004-01-16  Eric Christopher  <echristo@redhat.com>
10857             Chandrakala Chavva <cchavva@redhat.com>
10858
10859         * cppcharset.c (one_iso88591_to_utf8): New function.
10860         (convert_iso88591_utf8): Ditto. Use.
10861         (conversion_tab): Use.
10862         (_cpp_input_to_utf8): New function.
10863         (_cpp_init_iconv_buffer): Ditto.
10864         (_cpp_close_iconv_buffer): Ditto.
10865         * cpphash.h: Prototype new functions.
10866         (cpp_buffer): Add input_cset_desc.
10867         * cppinit.c: Add input_charset default.
10868         * cpplib.c (cpp_push_buffer): Support init and
10869         close of iconv.
10870         * cpplib.h (cpp_options): Add input_charset.
10871
10872 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
10873
10874         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
10875         * config/alpha/unicosmk.h: Remove a commented-out definition
10876         of ASM_OUTPUT_SECTION_NAME.
10877         * config/stormy16/stormy16.h: Likewise.
10878
10879 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10880
10881         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
10882         (alpha___extern_prefix_sys_stat): ... this.
10883         Apply to <sys/mount.h>, too.
10884         Tweak to match more variations.
10885         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
10886
10887         * fixinc/inclhack.def (alpha___extern_prefix,
10888         alpha___extern_prefix_standards): New hacks to obey
10889         __PRAGMA_EXTERN_PREFIX.
10890         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
10891         test.
10892         * fixinc/tests/base/standards.h: Likewise.
10893
10894         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
10895         variations.
10896         New testcase.
10897         * fixinc/tests/base/pthread.h: Handle it.
10898
10899         * fixincl/inclhack.def (bad_lval): Sort file list.
10900         Add many missing files up to Tru64 UNIX V5.1B.
10901         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
10902         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
10903         order.
10904
10905         * fixinc/fixincl.x: Regenerate.
10906
10907 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
10908
10909         * version.c (version_string): Change to 3.5.0.
10910         * doc/include/gcc-common.texi (version-GCC): Likewise.
10911
10912 2004-01-16  Jan Hubicka  <jh@suse.cz>
10913
10914         * i386.md (load_tp_di): Fix pasto.
10915
10916         PR opt/13608
10917         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
10918
10919         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
10920         pp_c_character_constant, pp_c_floating_constant,
10921         pp_c_additive_expression, pp_c_shift_expression,
10922         pp_c_equality_expression, pp_c_and_expression,
10923         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
10924         pp_c_logical_and_expression): Remove inline modifier.
10925         * dwarf2out.c (get_AT): Likewise.
10926         * et-forest.c (et_splay): Likewise.
10927         * ra.h (ra_alloc, ra_calloc): Likewise
10928
10929 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
10930
10931         * config/frv/frv-protos.h: Fix comment formatting.
10932         * config/frv/frv.c: Likewise.
10933         * config/frv/frv.h: Likewise.
10934         * config/frv/frv.md: Likewise.
10935         * config/frv/frvbegin.c: Likewise.
10936         * config/frv/frvend.c: Likewise.
10937
10938 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
10939
10940         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
10941         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
10942         LINKER_DOES_NOT_WORK_WITH_DWARF2.
10943         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
10944
10945 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
10946
10947         PR 11864
10948         * postreload.c (reload_cse_simplify_operands): Don't remove
10949         implicit extension from LOAD_EXTEND_OP.
10950
10951 2004-01-16  Jan Hubicka  <jh@suse.cz>
10952
10953         PR opt/11350
10954         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
10955         after reload.
10956         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
10957         rtl_try_redirect_by_replacing_branch): Likewise.
10958
10959 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
10960
10961         PR pch/13689
10962         * alias.c (struct alias_set_entry): Mark for GC.
10963         (alias_sets): Make static, mark for GC.
10964         (record_alias_subset): Use GC to allocate alias structures.
10965         * varray.c (element): Make generic varrays GCed.
10966
10967         PR pch/13361
10968         * c-typeck.c (constructor_asmspec): Delete.
10969         (struct initializer_stack): Delete field 'asmspec'.
10970         (start_init): Delete saving of asmspec.
10971         (finish_init): Don't update constructor_asmspec.
10972         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
10973         * stmt.c (expand_asm): Duplicate strings from tree.
10974         (expand_asm_operands): Likewise.
10975         * tree.c (tree_size): Update computation of size of STRING_CST.
10976         (make_node): Don't make STRING_CST nodes.
10977         (build_string): Allocate string with tree node.
10978         * tree.def (STRING_CST): Update comment.
10979         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
10980         (tree_string): Place contents of string in tree node.
10981         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
10982         from tree.
10983
10984         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
10985         altivec operands.
10986
10987 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
10988
10989         * c-common.h: Fix comment formatting.
10990         * c-cppbuiltin.c: Likewise.
10991         * c-pragma.c: Likewise.
10992         * calls.c: Likewise.
10993         * collect2.c: Likewise.
10994         * cppcharset.c: Likewise.
10995         * cpptrad.c: Likewise.
10996         * dbxout.c: Likewise.
10997         * defaults.h: Likewise.
10998         * dwarf2out.c: Likewise.
10999         * fold-const.c: Likewise.
11000         * genautomata.c: Likewise.
11001         * genconditions.c: Likewise.
11002         * genflags.c: Likewise.
11003         * gengtype.c: Likewise.
11004         * integrate.c: Likewise.
11005         * loop.c: Likewise.
11006         * predict.c: Likewise.
11007         * sdbout.c: Likewise.
11008
11009 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
11010
11011         * config/ia64/ia64.md (*movti_internal): C output template
11012         extracted to ia64.c.
11013         (*movti_internal_reg): Delete.
11014         (reload_inti, reload_outti): Use the correct mode on operand 2
11015         in the first place, don't fix it up in the output template.
11016         (movtf, reload_ointf, reload_outtf): New expanders.
11017         (*movtf_internal): New define_insn_and_split.
11018         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
11019         make static; do not hand TFmode CONST_DOUBLEs to split_double.
11020         (ia64_split_tmode_move): New function, body mostly pulled
11021         from ia64.md:*movti_internal.
11022         (ia64_function_arg_words): New function, extracted common
11023         logic from ia64_function_arg et seq.
11024         (ia64_function_arg_offset): Likewise.  Handle correctly the
11025         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
11026         (ia64_function_arg, ia64_function_arg_partial_nregs)
11027         (ia64_function_arg_advance): Use ia64_function_arg_words and
11028         ia64_function_arg_offset.
11029         (ia64_function_value): TCmode does not go in float regs.
11030         (ia64_secondary_reload_class): Also handle TFmode.
11031         * config/ia64/ia64-protos.h: Remove prototype for
11032         ia64_split_timode; add prototype for ia64_split_tmode_move.
11033
11034 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
11035
11036         * Makefile.in (MAINT): Make it an immediate assignment.
11037
11038 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11039
11040         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
11041
11042 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11043
11044         * config/h8300/coff.h: Replace Hitachi with Renesas.
11045         * config/h8300/elf.h: Likewise.
11046         * config/h8300/h8300-protos.h: Likewise.
11047         * config/h8300/h8300.c: Likewise.
11048         * config/h8300/h8300.h: Likewise.
11049         * config/h8300/h8300.md: Likewise.
11050         * config/h8300/lib1funcs.asm: Likewise.
11051
11052 2004-01-15  Andrew Pinski  <apinski@apple.com>
11053
11054         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
11055         around it.
11056
11057 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11058
11059         * config/h8300/h8300.c (h8300_return_in_memory): New.
11060         (TARGET_STRUCT_VALUE_RTX): Likewise.
11061         (TARGET_RETURN_IN_MEMORY): Likewise.
11062         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
11063         (RETURN_IN_MEMORY): Likewise.
11064
11065 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
11066
11067         PR optimization/13375
11068         * gcse.c (handle_avail_expr): Just return if the source is not a
11069         single set.
11070
11071 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
11072             Daniel Jacobowitz  <drow@mvista.com>
11073
11074         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
11075         (EQUIV): Define.
11076         (ARM_FUNC_ALIAS): New macro.
11077         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
11078         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
11079
11080 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11081
11082         PR optimization/12372
11083         * calls.c (expand_call): Add call_fusage data for stack arguments in
11084         constant calls.
11085
11086 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
11087
11088         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
11089         (rs6000_elf_declare_function_name): Formatting.
11090         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
11091
11092 2004-01-15  Jan Hubicka  <jh@suse.cz>
11093
11094         PR bootstrap/13692
11095         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
11096         previous patch.
11097
11098 2004-01-15  Richard Henderson  <rth@redhat.com>
11099
11100         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
11101         integer regs of the same call-savedness.
11102
11103 2004-01-15  Andreas Schwab  <schwab@suse.de>
11104
11105         PR bootstrap/13562
11106         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
11107         status for NOTB/NOTW/NEGW methods.
11108
11109 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11110
11111         * doc/invoke.texi: Update dump file names.  Fix a typo.
11112
11113 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11114
11115         * builtins.c (expand_builtin_va_end): Don't use
11116         EXPAND_BUILTIN_VA_END.
11117         * system.h (EXPAND_BUILTIN_VA_END): Poison.
11118         * config/d30v/d30v.h: Remove a commented-out definition of
11119         EXPAND_BUILTIN_VA_END.
11120         * config/stormy16/stormy16.h: Likewise.
11121
11122 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11123
11124         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
11125         * targhooks.c (default_struct_value_rtx): Don't use
11126         STRUCT_VALUE_INCOMING_REGNUM.
11127
11128 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
11129
11130         PR bootstrap/12744
11131         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
11132         GENINSRC and not parsedir.  Define srcextra as a langhook.
11133         * configure: Regenerate.
11134         * Makefile.in: Suppress default .l.c rule.  Don't substitute
11135         parsedir and delete all references throughout.  Conditionally define
11136         rule for srcextra dependent on GENINSRC.
11137         (stmp-docobjdir): Delete.
11138         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
11139         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
11140         and gengtype-yacc.h back to source directory.
11141         (maintainer-clean): Delete all parse files in source directory.
11142         (distclean): Delete generated files.
11143
11144         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
11145         (objc-parse.c, objc-parse.y): Don't use parsedir.
11146         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
11147         directory if requested.
11148         (po-generated): Don't use parsedir.
11149         (objc.maintainer-clean): Delete above files from source directory.
11150
11151 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11152
11153         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
11154
11155 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11156
11157         * doc/tm.texi: Replace RETURN_IN_MEMORY with
11158         TARGET_RETURN_IN_MEMORY.
11159
11160 2004-01-15  Jan Hubicka  <jh@suse.cz>
11161
11162         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
11163         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
11164         functions accepting SSE arguments
11165         (function_arg): Warn only when asked to warn.
11166         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
11167
11168 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
11169
11170         * c-parse.in (stmts_and_decls): Make label at end of compound
11171         statement a hard error.
11172
11173 2004-01-14  Jan Hubicka  <jh@suse.cz>
11174
11175         * cgraph.c (create_edge): Use local.redefined_extern_inline.
11176         * cgraph.h (cgraph_local_info): Sort fields by size; add
11177         redefined_extern_inline
11178         (cgraph_global_info): Sort fields by size.
11179         (cgraph_node): Likewise.
11180         * cgraphunit.c (cgraph_finalize_function): Se
11181         local.redefined_extern_inline on redefinition.
11182         (cgraph_analyze_function): Use it; fix formating.
11183
11184 2004-01-14  Jan Hubicka  <jh@suse.cz>
11185
11186         PR c++/10776
11187         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
11188         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
11189         bitmaps
11190         (cache_size): New variable
11191         (add_dependence): Update use; canonize early memory locations
11192         (sched_analyze_1): Likewise.
11193         (sched_analyze_2): Likewise.
11194         (init_dependency_caches): Initialize bitmaps.
11195         (free_dependency_caches): Free bitmaps
11196
11197 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11198
11199         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
11200         targetm.calls.strict_argument_naming().
11201         * target.h: Likewise.
11202
11203 2004-01-14  Richard Henderson  <rth@redhat.com>
11204
11205         PR debug/13231
11206         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
11207         instructions.
11208
11209 2004-01-14  Richard Henderson  <rth@redhat.com>
11210
11211         PR c++/12491
11212         * except.c (struct eh_region): Add u.fixup.resolved.
11213         (resolve_one_fixup_region): Split out from ...
11214         (resolve_fixup_regions): ... here.
11215
11216 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11217
11218         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
11219
11220 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11221
11222         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
11223         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
11224         (STRUCT_VALUE): Remove.
11225
11226 2004-01-14  Steven Bosscher  <stevenb@suse.de>
11227
11228         * system.h: Poison PROMOTED_MODE
11229         * integrate.c (expand_inline_function): Don't mention the
11230         PROMOTED_MODE.
11231         * loop.c (update_giv_derive): Same.
11232         * tree.h (DECL_RTL): Same.
11233
11234 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
11235
11236         PR target/9365
11237         * sh.c (gen_block_redirect): Add special handling of RETURN.
11238         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
11239         far branch target (i.e. it's a return).
11240
11241 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11242
11243         * regrename.c (find_oldest_value_reg): Fix a warning.
11244
11245 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
11246
11247         PR bootstrap/12527
11248         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
11249         Move linux-gas.h and linux-elf.h before aout.h.
11250         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
11251         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
11252
11253 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11254
11255         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
11256         (CONST_INT, VOIDmode, ...).
11257
11258 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
11259
11260         * regrename.c (find_oldest_value_reg): If the replacement uses
11261         multiple hard registers, check that all of them are in CLASS.
11262
11263 2004-01-14  Jan Hubicka  <jh@suse.cz>
11264
11265         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
11266         impossible.
11267
11268 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
11269
11270         * Makefile.in: Define MAINT from --enable-maintainer-mode.
11271
11272 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
11273
11274         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
11275         Calculate always vrsave_mask if TARGET_ALTIVEC.
11276         (rs6000_emit_prologue): Emit code for vrsave
11277         only if TARGET_ALTIVEC_VRSAVE.
11278         (rs6000_emit_epilogue): Likewise.
11279
11280 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
11281
11282         * config/sparc/sparc.md (tie_add32): Fix pasto.
11283         (tie_add64): Likewise.
11284
11285 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11286
11287         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
11288
11289 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
11290
11291         * config/iq2000/iq2000-protos.h: Fix comment formatting.
11292         * config/iq2000/iq2000.c: Likewise.
11293         * config/iq2000/iq2000.md: Likewise.
11294
11295 2004-01-14  J. Brobecker  <brobecker@gnat.com>
11296
11297         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
11298         (subrange_type_die): Add handle for nameless subrange types.
11299
11300 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
11301
11302         * config/h8300/h8300-protos.h: Replace do_movsi with
11303         h8300_expand_movsi.
11304         * config/h8300/h8300.c (do_movsi): Change to
11305         h8300_expand_movsi.
11306         * config/h8300/h8300.md (movsi): Replace do_movsi with
11307         h8300_expand_movsi.
11308         (movsf): Likewise.
11309
11310 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
11311
11312         * config/h8300/h8300.c (dosize): Change to
11313         h8300_emit_stack_adjustment.  Update callers.
11314
11315 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
11316
11317         * config/h8300/h8300.md (movstrictqi): Add an alternative with
11318         the source being post_inc.  Tighten the predicate for the
11319         destination to register_operand.
11320         (movstricthi): Likewise.
11321
11322 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
11323
11324         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
11325         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
11326         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
11327
11328 2004-01-14  Jan Hubicka  <jh@suse.cz>
11329
11330         Partial fix PR c++/12850
11331         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
11332         at zero nest level.
11333
11334 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
11335
11336         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
11337         pseudo-register.
11338
11339 2004-01-13  Devang Patel <dpatel@apple.com
11340
11341         PR debug/7078
11342         * dbxout.c (dbxout_symbol_name): Emit mangled names for
11343         NAMESPACE_DECL memebers.
11344
11345 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
11346
11347         PR c++/12709
11348         * c-common.c (finish_fname_decls): Use the chain only if the
11349         tree is an expr_stmt.
11350
11351 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
11352
11353         * rtl.def: Add comment about new option in automata_option.
11354
11355         * genautomata.c (PROGRESS_OPTION): New macro.
11356         (progress_flag): New global variable.
11357         (gen_automata_option): Process `progress'.
11358         (transform_insn_regexps, check_unit_distributions_to_automata,
11359         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
11360         expand_automata, write_automata): Print about the progress only if
11361         progress_flag.  Remove fflush.
11362         (initiate_automaton_gen): Process command line flag `-progress'.
11363
11364         * doc/md.texi: Describe the new option.
11365
11366 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11367
11368         * cfg.c (dump_bb): Dump entry edges.
11369
11370 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
11371
11372         * arm.c (thumb_legitimate_address_p): Only allow constant pool
11373         references from SImode.
11374         * arm.md (thumb_movhi_insn): Don't allow minipool references.
11375
11376 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
11377
11378         * system.h (TEXT_SECTION): Poison.
11379         * varasm.c (text_section): Don't use TEXT_SECTION.
11380         * config/sh/sh.c (sh_file_start): Fix a comment typo.
11381         * doc/tm.texi (TEXT_SECTION): Remove.
11382
11383 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
11384
11385         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
11386
11387 2004-01-12  James E Wilson  <wilson@specifixinc.com>
11388
11389         * unwind-libunwind.c: Delete.
11390
11391 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
11392
11393         PR 13656
11394         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
11395         oldtype is set, set *newtypep or *oldtypep too.  Do not set
11396         them at the very end.
11397         (validate_proto_after_old_defn): Restructure for comprehensibility;
11398         make error messages clearer.
11399
11400 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
11401
11402         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
11403         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
11404         * varray.c: No need to prototype error.
11405         (varray_check_failed): Wrap long string onto two lines.
11406         (varray_underflow): New function.
11407
11408 2004-01-13  Steven Bosscher  <stevenb@suse.de>
11409
11410         PR c++/13376
11411         * function.h (struct function): Kill `name' field.
11412         (current_function_name): Make it an extern function.
11413         * function.c (current_function_name): New function.
11414         * graph.c: Update all uses of current_function_name.
11415         * gcse.c: Likewise.
11416         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
11417         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
11418         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
11419         instead of a strcmp with "main".
11420
11421 2004-01-13  Jan Hubicka  <jh@suse.cz>
11422
11423         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
11424
11425         * cgraphunit.c (cgraph_optimize_function):  Always do
11426         optimize_inline_calls when there is always_inline callee.
11427         (cgraph_decide_inlining): Fix formating.
11428         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
11429         functions.
11430         (expand_call_inline): Likewise.
11431         * toplev.h (sorry): Fix prototype.
11432
11433 2004-01-12  Roger Sayle  <roger@eyesopen.com>
11434
11435         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
11436         conditional jumps that drop through to unconditional jumps or the
11437         end of the sequence.
11438
11439 2004-01-13  Jan Hubicka  <jh@suse.cz>
11440
11441         * alias.c (new_alias_set): Construct the alias_set varray.
11442         (init_alias_once): Don't do it here.
11443
11444 2004-01-12  Marc Espie <espie@openbsd.org>
11445
11446         * system.h: handle YYBYACC like YYBISON.
11447
11448 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
11449
11450         PR target/10847
11451         * config.gcc: No longer includes conflicting header sparc/sol2.h when
11452         building on sparc64-*-openbsd*.
11453
11454 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
11455
11456         PR debug/13539
11457         * dbxout.c (dbxout_type): Protected inheritance is not
11458         private but protected.
11459
11460 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
11461
11462         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
11463
11464 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
11465
11466         PR optimization/12508.
11467         * combine.c (try_combine): Remove a dead set in a parallel
11468         even if its destination is a subreg.
11469
11470         Revert:
11471         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
11472         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
11473         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
11474
11475 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
11476
11477         * real.c: Update copyright date.
11478         * emit-rtl.c: Likewise.
11479         * rtl.h: Likewise.
11480         * dwarf2out.c: Likewise.
11481         * config/rs6000/darwin-ldouble.c: Likewise.
11482         * config/rs6000/rs6000.md: Likewise.
11483
11484 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
11485
11486         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
11487         TFmode to SImode libfuncs.
11488
11489 2004-01-12  Roger Sayle  <roger@eyesopen.com>
11490
11491         PR middle-end/11397
11492         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
11493
11494 2004-01-12  Jan Hubicka  <jh@suse.cz>
11495
11496         PR opt/12826
11497         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
11498         stored.
11499
11500         PR opt/12863
11501         * cfgcleanup.c (label_is_jump_target_p): Move to...
11502         * rtlanal.c (label_is_jump_target_p): ... here.
11503         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
11504         edges unified with branch edges.
11505
11506 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
11507
11508         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
11509         high word of an integral CONST_DOUBLE.
11510
11511 2004-01-12  Paul Brook  <paul@codesourcery.com>
11512
11513         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
11514
11515 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
11516
11517         PR target/13585
11518         * sh-protos.h (check_use_sfunc_addr): Declare.
11519         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
11520         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
11521
11522 2004-01-12  Jan Hubicka  <jh@suse.cz>
11523
11524         * alias.c:  Invlude varray.h
11525         (alias_sets): Turn into varray.
11526         (get_alias_set_entry): Use VARRAY; mark inline.
11527         (mems_in_disjoint_alias_sets_p): Mark inline.
11528         (record_alias_subset): Use varray.
11529         (init_alias_once): Initialize varray.
11530         (new_alias_set): Grow array.
11531         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
11532
11533 2004-01-12  Jan Hubicka  <jh@suse.cz>
11534
11535         Partial fix for PR opt/10776 II
11536         * cselib.c: Include params.h
11537         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
11538         locations.
11539         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
11540         * Makefile.in (cselib.o): Depend on params.h
11541
11542 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
11543
11544         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
11545         simplify_unary_operation if the operand has a known mode.
11546
11547 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
11548
11549         PR target/13534
11550         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
11551         predicate to handle 'ld' conform addresses.
11552         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
11553         contraint.
11554         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
11555         are memory contraints.
11556         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
11557         New prototype.
11558         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
11559         Change 'o' to 'Y' constraint.
11560         (*movdf_softfloat64): Ditto.
11561
11562 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
11563
11564         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
11565         brace-enclosed syntax in all C output statements.
11566
11567 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
11568
11569         PR target/13401
11570         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
11571         Objective-C language type value is 14.
11572
11573 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
11574
11575         PR c/12148
11576         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
11577         `int' in a number of places to make sure we always have a SImode
11578         and not a HImode.  Add a 'L' suffix to a number of constants.
11579
11580 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11581
11582         * pa.c: Don't include obstack.h.
11583
11584         * pa.md: Correct constraint in pattern for loading PIC label address.
11585
11586 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
11587
11588         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
11589          before defining.
11590
11591 2004-01-11  Steven Bosscher  <stevenb@suse.de>
11592
11593         PR fortran/9972
11594         * toplev.c (rest_of_handle_inline): Also consider functions
11595         for deferral if the language is GNU F77.
11596
11597 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
11598
11599         * c-decl.c (diagnose_arglist_conflict): Add missing space to
11600         diagnostic messages.
11601
11602 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
11603
11604         PR middle-end/13392
11605         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
11606         to drop through label.  Don't fall back to SCC even when conditional
11607         jump has not been found.
11608
11609 2004-01-11  Jan Hubicka  <jh@suse.cz>
11610
11611         * invoke.texi: Fix syntax error in previous patch.
11612
11613         Partial fix for PR opt/10776
11614         * Makefile.in (reload.o): Include param.h
11615         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
11616         * reload.c: Include params.h.
11617         (find_equiv_reg): Work limiting check.
11618         * invoke.texi: Document.
11619
11620 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
11621
11622         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
11623         out-of-bounds accesses to string constants.  Simplify mips16
11624         case accordingly.
11625
11626 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
11627
11628         PR optimization/13469
11629         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
11630         reload_cse_regs (-fnon-call-exceptions only).
11631
11632 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
11633
11634         * config/mcore/lib1.asm: Fix comment formatting.
11635         * config/mcore/mcore-elf.h: Likewise.
11636         * config/mcore/mcore.c: Likewise.
11637         * config/mcore/mcore.h: Likewise.
11638         * config/mcore/mcore.md: Likewise.
11639
11640 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
11641
11642         * c-decl.c (duplicate_decls): Break apart into...
11643         (diagnose_arglist_conflict, validate_proto_after_old_defn)
11644         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
11645         ... these new functions.  Restructure for comprehensibility.
11646         Remove various archaic special cases.  Always report the
11647         location of the previous declaration when a diagnostic is issued.
11648         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
11649         (match_builtin_function_types): Delete unnecessary forward declaration.
11650
11651 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
11652
11653         * genautomata.c (make_automaton, NDFA_to_DFA):
11654         Print progress bars with '.' characters instead of '*'.
11655         (build_automaton): Change notes to match.
11656
11657 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
11658
11659         * config/m32r/m32r.md: Use define_constants for unspec and
11660         unspec_volatile.
11661
11662 2004-01-10  Jan Hubicka  <jh@suse.cz>
11663
11664         PR opt/11635
11665         * expr.c (expand_expr_real):  More curefully expand union casts.
11666
11667 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
11668
11669         * config/m32r/m32r.md (flush_icache): Use 1 for
11670         unspec_volatile.
11671
11672 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
11673             James E Wilson  <wilson@specifixinc.com>
11674
11675         PR debug/12860
11676         * dbxout.c (dbxout_symbol): Remove initialization of
11677         current_sym_code, current_sym_value, and current_sym_addr.
11678         (dbxout_symbol_location): Same.
11679         (dbxout_prepare_symbol): Zero current_sym_code,
11680         current_sym_value, and current_sym_addr.
11681
11682 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
11683
11684         * tree.c (get_unwidened): Reorder conditions so that the null pointer
11685         check is done first.
11686
11687 2004-01-09  Eric Christopher  <echristo@redhat.com>
11688
11689         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
11690         if we're running mark_constant_function.
11691
11692 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
11693
11694         PR target/12561
11695         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
11696
11697 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
11698
11699         PR debug/11231
11700         * dbxout.c (dbxout_type_fields): Return if any item is
11701         error_mark_node or the type is error_mark_node.
11702
11703 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
11704
11705         * config/rs6000/darwin-ldouble.c: Add big comment explaining
11706         exactly what is expected as a 'long double'.
11707         (_xlqadd): When a value to be returned is representable as a
11708         'double', just return it directly, do not construct it using a union.
11709         Also, correct final fixup.
11710         (_xlqmul): Likewise.
11711         (_xlqdiv): Likewise.
11712         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
11713
11714         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
11715
11716 2004-01-09  Richard Henderson  <rth@redhat.com>
11717
11718         * recog.c (constrain_operands): Validate mem operands.
11719
11720 2004-01-09   James E Wilson  <wilson@specifixinc.com>
11721
11722         * gcc.c (init_spec): Remove -lunwind from shared case.
11723         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
11724
11725 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
11726
11727         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
11728         * configure: Regenerate
11729
11730 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
11731
11732         PR c/11234
11733         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
11734         between function and object pointers.
11735         (digest_init): When comparing a pointer to function type to the
11736         target type, only apply TREE_TYPE once to the pointer to function
11737         type.
11738         * except.c (for_each_eh_label_1): Treat data as a pointer to a
11739         function pointer rather than casting it to a function pointer.
11740         (for_each_eh_label): Update caller.
11741         * recog.h (struct insn_data): Use a struct or union for output.
11742         * genoutput.c (output_insn_data): Update.
11743         * final.c (get_insn_template): Update.
11744
11745 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
11746
11747         * expr.h (expand_expr): Make it a macro, not a function.
11748         (expand_expr_real): New function.
11749         * expr.c (store_expr): Adjust logic for deciding whether or not to
11750         copy the value returned by expand_expr.
11751         (expand_expr): Rename to ...
11752         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
11753         calls to language hooks.
11754         * c-common.h (c_expand_expr): Adjust prototype.
11755         * c-common.c (c_expand_expr): Add alt_rtl parameter.
11756         * langhooks-def.h (lhd_expand_expr): Change prototype.
11757         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
11758         * langhooks.h (lang_hooks): Change type of expand_expr.
11759         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
11760         (last_expr_alt_rtl): Likewise.
11761         (expand_expr_stmt_value): Set last_expr_alt_rtl.
11762         (clear_last_expr): Clear it.
11763         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
11764         (expand_end_bindings): Save and restor last_expr_alt_rtl.
11765         * tree.def (RTL_EXPR): Give it an additional operand.
11766         * tree.h (RTL_EXPR_ALT_RTL): New macro.
11767
11768 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
11769
11770         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
11771         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
11772
11773 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
11774
11775         PR target/13380.
11776         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
11777         or (ne:SI (reg:CC 17) (const_int 0)).
11778         Be specific about modes wherever possible.
11779
11780 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
11781
11782         * config/m32r/m32r.c (m32r_expand_block_move): Call
11783         gen_movestrsi_internal with two more arguments.
11784         (m32r_output_block_move): Adjust operand numbers.
11785         Properly update the source and destination pointers.
11786         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
11787         'r+'.  Change the set detinations to match_operand.
11788
11789 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
11790
11791         * final.c (FIRST_INSN_ADDRESS): Remove.
11792         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
11793         * system.h (FIRST_INSN_ADDRESS): Poison.
11794         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
11795         * config/m32r/m32r-protos.h: Remove the prototype for
11796         m32r_first_insn_address.
11797         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
11798         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
11799         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
11800
11801 2004-01-09  J. Brobecker  <brobecker@gnat.com>
11802
11803         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
11804         we just created.
11805         (is_ada_subrange_type): DIEs for enumeration subtypes should be
11806         emitted as subrange types too.
11807         (subrange_type_die): Add handling of enumeration subtypes.
11808
11809 2004-01-08  Richard Henderson  <rth@redhat.com>
11810
11811         PR opt/12441
11812         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
11813         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
11814         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
11815         (ix86_address_cost): Be prepared for SUBREGed registers.
11816         (legitimate_address_p): Accept SUBREGed registers.
11817
11818 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
11819
11820         * Makefile.in: Rename configure.in to configure.ac
11821         * doc/sourcebuild.texi: Likewise.
11822         * configure: Regenerate.
11823         * config.in: Regenerate.
11824
11825 2004-01-08  Stuart Hastings  <stuart@apple.com>
11826
11827         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
11828
11829 2004-01-08  Jan Hubicka  <jh@suse.cz>
11830
11831         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
11832
11833 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
11834
11835         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
11836         (UNSPEC_FIX_TRUNC_TF): New constant.
11837         (movtf_internal): Make splitter active only when insn is active.
11838         (extenddftf2): Rewrite to properly load zero into low part.
11839         (extenddftf2_internal): New.
11840         (extendsftf2): Rewrite.
11841         (truncdftf2): Correct length.
11842         (floatditf2): Delete.
11843         (fix_trunc_helper): New.
11844         (fix_trunctfdi2): Use fix_trunc_helper.
11845         (fix_trunctfsi2): Likewise.fix_trunc
11846         (fix_trunctfsi2_internal): New.
11847
11848         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
11849         addresses are legitimate on Darwin even when flag_pic.
11850         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
11851         non-offsettable addresses for loads of TFmode constants.
11852
11853 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
11854
11855         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
11856         variables in the appropriate bss section.
11857
11858 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
11859
11860         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
11861         target_flags has MASK_POWERPC64 when -m64.
11862         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
11863         to 620, 630, power3, power4 and rs64a entries.
11864         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
11865
11866 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
11867
11868         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
11869         floating-point constants.
11870
11871 2004-01-08  J. Brobecker  <brobecker@gnat.com>
11872
11873         * dwarf2out.c (subrange_type_die): Add context_die parameter.
11874         Create the subrange_type DIE using the given context DIE.
11875         (modified_type_die): Update call to subrange_type_die.
11876
11877 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
11878
11879         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
11880         Add multiple-include guard.
11881
11882 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
11883
11884         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
11885         all vector constant loadable by vsplt*.
11886         (output_vec_const_move): Likewise.
11887
11888 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
11889
11890         PR c/6024
11891         * c-typeck.c (comptypes): Only treat enumerated types in the same
11892         translation unit as compatible with each other when they are the
11893         same type.
11894         * doc/extend.texi: Update.
11895
11896 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
11897
11898         PR c/12165
11899         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
11900         array type from the array element type.
11901
11902 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
11903
11904         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
11905         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
11906         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
11907         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
11908         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
11909
11910 2004-01-06  Eric Christopher  <echristo@redhat.com>
11911
11912         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
11913         (DWARF2_DEBUGGING_INFO): Define.
11914         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
11915         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
11916         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
11917         for irix as.
11918         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
11919         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
11920         * config/mips/iris5gas.h: Ditto.
11921         (DBX_DEBUGGING_INFO): Remove.
11922         (DWARF2_DEBUGGING_INFO): Ditto.
11923         (MIPS_DEBUGGING_INFO): Ditto.
11924         (PREFERRED_DEBUGGING_TYPE): Ditto.
11925         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
11926         (PREFERRED_DEBUGGING_TYPE): Ditto.
11927         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
11928         * config/mips/elf64.h: Ditto.
11929
11930 2004-01-06  Jan Hubicka  <jh@suse.cz>
11931
11932         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
11933         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
11934
11935 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
11936
11937         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
11938         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
11939         * config/rs6000/darwin-ldouble.c: New.
11940
11941         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
11942         for constants.
11943         (constant_subword): Delete.
11944         * rtl.h (constant_subword): Delete prototype.
11945         (immed_double_const): Is not in varasm.c.
11946         * simplify-rtx.c (simplify_immed_subreg): New.
11947         (simplify_subreg): Use simplify_immed_subreg.
11948
11949         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
11950         than trying to generate RTL directly.
11951         (fix_trunctfsi2): Use expand_fix rather than trying to generate
11952         RTL directly.
11953
11954         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
11955
11956 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
11957
11958         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
11959         function into a separate macro.
11960         (read_only_data_section): Add void argument.
11961         (private_data_section): Same.
11962         (read_only_private_data_section): Same.
11963         (toc_section): Same.
11964
11965 2004-01-06  Jan Hubicka  <jh@suse.cz>
11966
11967         * invoke.texi:  Remove typo in last change.
11968
11969         PR target/10301
11970         * config.gcc: Accept opteron and athlon-64 as variants
11971         of k8.
11972         * i386.c (override_options): Likewise.
11973         * invoke.texi (i386 -mtune): Expand documentation.
11974
11975 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
11976
11977         * alias.c: Fix comment typos.
11978         * builtins.c: Likewise.
11979         * cfg.c: Likewise.
11980         * df.c: Likewise.
11981         * dominance.c: Likewise.
11982         * dwarf2out.c: Likewise.
11983         * emit-rtl.c: Likewise.
11984         * expr.c: Likewise.
11985         * final.c: Likewise.
11986         * fold-const.c: Likewise.
11987         * gcse.c: Likewise.
11988         * genattrtab.c: Likewise.
11989         * genrecog.c: Likewise.
11990         * gensupport.c: Likewise.
11991         * ggc-zone.c: Likewise.
11992         * integrate.c: Likewise.
11993         * local-alloc.c: Likewise.
11994         * loop.c: Likewise.
11995         * recog.c: Likewise.
11996         * regmove.c: Likewise.
11997         * reg-stack.c: Likewise.
11998         * reorg.c: Likewise.
11999         * rtlanal.c: Likewise.
12000         * rtl.h: Likewise.
12001         * sched-ebb.c: Likewise.
12002         * simplify-rtx.c: Likewise.
12003         * toplev.c: Likewise.
12004         * varasm.c: Likewise.
12005
12006 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
12007
12008         * doc/install.texi: Fix typos.
12009         * doc/invoke.texi: Likewise.
12010         * doc/md.texi: Likewise.
12011
12012 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
12013
12014         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
12015
12016 2004-01-06  Jan Hubicka  <jh@suse.cz>
12017
12018         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
12019         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
12020         of MMX_REGPARM.
12021         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
12022         add MMX_REGPARM.
12023         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
12024         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
12025         (MMX_REGPARM_MAX): Similarly for -mmmx.
12026
12027 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
12028
12029         * config/sh/linux.h: Fix comment formatting.
12030         * config/sh/netbsd-elf.h: Likewise.
12031         * config/sh/sh.c: Likewise.
12032         * config/sh/sh.h: Likewise.
12033         * config/sh/vxworks.h: Likewise.
12034
12035 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
12036
12037         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
12038         * toplev.c (output_file_directive): Don't use
12039         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
12040
12041 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
12042
12043         * toplev.c: Fix broken checkin of 2003-12-30.
12044
12045 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
12046
12047         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
12048         (USING_MMAP): We don't support non-mmap.
12049         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
12050         large objects.
12051         (struct page_entry): Remove bytes_free.
12052         (struct page_table_chain): Remove.
12053         (struct globals): Remove page_table member.
12054         (loookup_page_table_entry): Function deleted.
12055         (set_page_table_entry): Ditto.
12056         (ggc_allocated_p): No longer need page table lookups.
12057         (ggc_marked_p): Ditto.
12058         (alloc_small_page): Don't care about bytes_free anymore.
12059         (alloc_large_page): Round up size.
12060         (ggc_alloc_zone_1): Mark large objects as such, and calculate
12061         their size the new way.
12062         Remove page table lookups and setting.
12063         (ggc_get_size): Calculate large object size the new way.
12064         (sweep_pages): Redo to account for fact that we no longer have
12065         bytes_free.
12066         (ggc_collect): No longer need to reincrement bytes_free.
12067         (ggc_pch_alloc_object): Handle new large objects properly.
12068         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
12069
12070 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
12071
12072         * doc/invoke.texi: Remove a page break.
12073
12074 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
12075
12076         * config/avr/avr.c (avr_output_function_prologue): Remove an
12077         extra pair of curly braces.
12078
12079 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
12080
12081         * config/mn10300/mn10300.c: Fix comment formatting.
12082         * config/mn10300/mn10300.h: Likewise.
12083
12084 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12085
12086         * tree.h: Update documentation on nothrow_flag.
12087         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
12088         types.
12089
12090 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
12091
12092         * doc/invoke.texi: Remove traces of dead ports.
12093
12094 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
12095
12096         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
12097         option.
12098
12099 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
12100
12101         PR target/12945
12102         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
12103         counter labels.
12104         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
12105         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
12106         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
12107         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
12108         (mips_symbol_insns): Don't trust the local/global classification.
12109         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
12110         (override_options): Make -mabicalls -fno-unit-at-a-time imply
12111         -mno-explicit-relocs.
12112         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
12113         between local and global symbols.
12114
12115 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
12116
12117         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
12118         (mips_preferred_reload_class): Declare.
12119         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
12120         (EXTRA_CONSTRAINT): Update accordingly.
12121         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
12122         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
12123         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
12124         mips_dangerous_for_la25_p.
12125         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
12126         if mips_dangerous_for_la25_p.
12127
12128 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
12129
12130         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
12131         warning.
12132
12133 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
12134
12135         * configure.ac: Use AC_PROG_CPP_WERROR.
12136         * configure: Regenerate.
12137
12138 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
12139
12140         * .cvsignore: Add autom4te.cache.
12141
12142 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
12143
12144         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
12145         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
12146         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
12147         then architecture options, then ABI options.  General rewording.
12148
12149 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
12150
12151         PR c/3414
12152         * doc/extend.texi: Clarify definition of malloc attribute.
12153
12154 2004-01-04  Jan Hubicka  <jh@suse.cz>
12155
12156         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
12157         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
12158         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
12159         (cgraph_inline_p): Add extra argument reason.
12160         * cgraphunit.c: Minor formating fixes.
12161         cgraph_first_inlined_callee): New functions.
12162         (record_call_1): Record builtins too.
12163         (cgraph_analyze_function): Update inline_failed messages.
12164         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
12165         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
12166         (cgraph_check_inline_limits): Likewise; Add argument reason.
12167         (cgraph_set_inline_failed): New static function.
12168         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
12169         reasons.
12170         (cgraph_inline_p): Add new argument reason.
12171         * tree-inline.c (expand_call_inline):  Update warning.
12172
12173 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
12174
12175         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
12176         with modern equivalents.
12177         * configure: Regenerate.
12178
12179         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
12180         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
12181         * configure: Regenerate.
12182
12183         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
12184
12185         * configure.in: Rename to configure.ac.
12186         * configure.ac: Renamed from configure.in; make minimum necessary
12187         changes for autoconf 2.5x.
12188         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
12189         * configure: Regenerate with autoconf 2.57.
12190
12191 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
12192
12193         * config/mips/linux.h: Fix comment formatting.
12194         * config/mips/mips.c: Likewise.
12195         * config/mips/mips.h: Likewise.
12196         * config/mips/mips.md: Likewise.
12197         * config/mips/netbsd.h: Likewise.
12198         * config/mips/windiss.h: Likewise.
12199
12200 2004-01-02  Richard Henderson  <rth@redhat.com>
12201
12202         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
12203         for sse and 387; add suppression for mmx.
12204
12205 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
12206
12207         * loop.c (loop_optimize): Free all loops_info's mems.
12208
12209         * c-typeck.c (finish_init): Free spelling_base before
12210         setting it again.
12211
12212         * cfgloop.c (flow_loops_find): Always free the sbitmap
12213         headers.
12214
12215         * predict.c (estimate_probability): Free bbs after being
12216         done with it.
12217
12218 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
12219
12220         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
12221         const_8bit_operand and call_address_operand.
12222
12223 2004-01-02  Jan Hubicka  <jh@suse.cz>
12224
12225         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
12226         when there is nothing to inline but warnings are requested.
12227         (cgraph_decide_inlining):  Fix memory leak.
12228
12229 2004-01-02  Jan Hubicka  <jh@suse.cz>
12230
12231         * expr.c (store_constructor):  Fix pasto in previous patch.
12232
12233 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
12234
12235         * config/i386/cygming.h: Fix comment formatting.
12236         * config/i386/djgpp.h: Likewise.
12237         * config/i386/gthr-win32.c: Likewise.
12238         * config/i386/i386-interix.h: Likewise.
12239         * config/i386/i386.c: Likewise.
12240         * config/i386/i386.h: Likewise.
12241         * config/i386/openbsd.h: Likewise.
12242         * config/i386/winnt.c: Likewise.
12243         * config/i386/xm-mingw32.h: Likewise.
12244
12245 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
12246
12247         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
12248         copyright and last modification dates.
12249
12250 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
12251
12252         * doc/install.texi (Specific): Mention x86_64.
12253
12254 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
12255
12256         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
12257         Call force_operand on plus_constant result.
12258
12259 2004-01-01  Jan Hubicka  <jh@suse.cz>
12260
12261         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
12262         * expr.c (store_constructor): Use vec_init pattern.
12263         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
12264         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
12265         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
12266         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
12267         New patterns.
12268         (sse2_unpc?pd): Fix pattern.
12269         (sse2_movlpd): Kill.
12270         (sse2_movsd): Deal with movlpd too.
12271         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
12272         (ix86_expand_vector_init): New.
12273         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
12274         * md.texi (vec_set, vec_extract): Document
12275
12276 2003-12-31  Jan Hubicka  <jh@suse.cz>
12277
12278         PR opt/13473
12279         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
12280         ASM input operands
12281
12282         PR opt/12617
12283         * toplev.c (dump_file_index): Reorder ce3 and bbro.
12284         (dump_file): Likewise.
12285         (rest_of_compilation): Likewise.
12286
12287         PR debug/13367
12288         * cgraph.c (cgraph_function_possibly_inlined):  Even with
12289         flag_really_no_inline we inline always_inline functions.
12290         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
12291         for non-always_inline functions when there is flag_really_no_inline.
12292         (cgraph_decide_inlining): Limit work done when not inlining.
12293         (cgraph_decide_inlining_incrementally): Likewise.
12294         (cgraph_optimize_function): Check whether something got inlined.
12295         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
12296         extern inline functions when not inlining.
12297
12298         * opts.c (decode_options):  Disable crossjumping at -O1
12299         * invoke.texi (-O1): Document change.
12300
12301 See ChangeLog.10 for earlier changes.