OSDN Git Service

551d8c65049e3eab8a7a1289914192dfb923e562
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-04-22  Per Bothner  <per@bothner.com>
2
3         * line-map.h (struct line_maps):  New field highest_line.
4         (linemap_position_for_column):  Make non-inline function.
5         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
6         * line-map.c (linemap_init):  Clear highest_line field.
7         (linemap_add):  Set highest_line field.
8         (linemap_line_start):  Minor optimization - use highest_line field.
9         Reduce maximum column hint to 10000.  Update highest_line field.
10         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
11         * cpphash.h (struct cpp_reader):  Remove line field - instead use
12         line_table->highest_line.
13         (saved_line):  Remove unused field.
14         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
15         Use  line_table's highest_line field instead of cpp_reader's line.
16         * cpplib.c (start_directive):  Likewise use highest_line field.
17         (do_line, do_linemarker):  Likewise just use newest map.
18         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
19         * cpperror.c (cpp_error):  Likewise use highest_line field.
20         * cppfiles.c (open_file_failed:  Likewise.
21         (cpp_make_system_header):  Likewise use newest map and highest_line.
22         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
23         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
24         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
25         _cpp_lex_direct):  Likewise use highest_line.
26         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
27         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
28         and use newest map.
29         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
30         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
31         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
32
33 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
34
35         PR bootstrap/14992
36         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
37         * config/linux.h (USE_LD_AS_NEEDED): Define.
38         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
39         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
40         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
41         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
42         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
43         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
44         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
45
46 2004-04-22  Per Bothner  <per@bothner.com>
47
48         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
49         Fixes PR preprocessor/15067.
50
51 2004-04-23  Andreas Schwab  <schwab@suse.de>
52
53         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
54         avoid aliasing warning.
55
56 2004-04-22  Jan Hubicka  <jh@suse.cz>
57             Mostafa Hagog <mustafa@il.ibm.com>
58
59       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
60       * cfgloopanal.c (expected_loop_iterations): Change the return value
61
62 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
63
64         * cselib.h (struct elt_loc_list): Remove canon_loc field.
65         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
66         (cselib_invalidate_mem): Remove all canon_loc and canon_x
67         traces.
68
69 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
70
71         Revert
72         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
73
74                 * var-tracking.c (variable_part_different_p): Variable parts
75                 differ when the most recent locations differ.
76
77 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
78
79         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
80         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
81         (embedded_pic_offset): Delete.
82         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
83         MASK_* constants.
84         (TARGET_EMBEDDED_PIC): Delete.
85         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
86         (ASM_SPEC): Remove -membedded-pic.
87         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
88         (ASM_OUTPUT_CASE_LABEL): Likewise.
89         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
90         * config/mips/windiss.h (ASM_SPEC): Likewise.
91         * config/mips/mips.c (struct machine_function): Remove
92         embedded_pic_fnaddr_rtx.
93         (TARGET_ENCODE_SECTION_INFO): Remove override.
94         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
95         (override_options): Remove -membedded-pic handling.
96         (print_operand): Remove handling of '%S'.
97         (mips_select_section: Remove -membedded-pic handling.
98         (mips_encode_section_info): Delete.
99         (mips_output_conditional_branch): Remove mention of -membedded-pic.
100         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
101         -membedded-pic handling.
102         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
103
104 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
105
106         * var-tracking.c (frame_base_decl): Remove useless GTY.
107
108 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
109
110         * config/rs6000/rs6000.c (rs6000_override_options): Error when
111         user wants altivec and e500 instructions.
112
113 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
114
115         PR target/14813
116         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
117         in .init_array section to ...
118         * config/ia64/crtbegin.asm: Here.
119
120         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
121         and hidden if HAVE_INITFINI_ARRAY is defined.
122
123 2004-04-21  James E Wilson  <wilson@specifixinc.com>
124
125         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
126         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
127         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
128         (fp_register_operand, lo_operand): New.
129         (mips_rtx_costs): Add TUNE_SB1 support.
130         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
131         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
132         (mips_multipass_dfa_lookahead): New.
133         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
134         TUNE_SB1): New.
135         (TARGET_SWITCHES): Add -mfp-exceptions support.
136         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
137         (BRANCH_COST): Fix whitespace.
138         * config/mips/mips.md: Include sb1.md.
139         * config/mips/sb1.md: New file.
140         * doc/invoke.texi: Document -mfp-exceptions.
141
142         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
143         comment.
144         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
145         (fixincl.o-warn): Delete.
146
147 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
148
149         * config/rs6000/rs6000 (print_operand) ['z']:
150         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
151
152 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
153
154         * config.gcc: Support --with-arch=iwmmxt for ARM.
155
156 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
157
158         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
159         in two more places; remove unneeded force_reg
160
161 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
162
163         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
164         for TARGET_MACHO.
165         (print_operand): For TARGET_MACHO check to see if we need a stub
166         and output one if we need it.
167
168         PR debug/15033
169         * dwarf2out.c (rtl_for_decl_location): Check for NULL
170         rtl.
171
172 2004-04-20  James E Wilson  <wilson@specifixinc.com>
173
174         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
175         (vall_value_gp): Likewise.
176
177 2004-04-20  DJ Delorie  <dj@redhat.com>
178         
179         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
180         variables stored in word registers, then in memory.
181
182 2004-04-20  Eric Christopher  <echristo@redhat.com>
183
184         * cp/parser.c (cp_parser_declaration): Move translate
185         up before tokens are lexed.
186
187 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
188
189         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
190         (asin_optab, acos_optab): Define corresponding macros.
191         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
192         * genopinit.c (optabs): Implement asin_optab and acos_optab
193         using asin?f2 and acos?f2 patterns.
194         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
195         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
196         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
197         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
198
199         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
200         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
201         acos, acosf and acosl built-ins as inline x87 intrinsics.
202
203 2004-04-20  Paul Brook  <paul@codesourcery.com>
204
205         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
206
207 2004-04-20  Paul Brook  <paul@codesourcery.com>
208
209         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
210
211 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
212
213         Revert part of 2004-04-17 change that moved -frename-registers
214         to -O1.  -frename-registers is buggy.
215
216         * toplev.c (flag_rename_registers): Initialize to 0.
217         * doc/invoke.texi (Optimize options): Move -frename-registers
218         to "Not triggered by any -O level" section.  Adjust commentary
219         accordingly.
220
221 2004-04-20  Anil Paranjpe¬†¬†¬†<anilp1@kpitcummins.com>
222
223         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
224
225 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
226
227         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
228         for mflo and mfhi instructions.
229         (mips_output_move): Remove mflo and mfhi handling.
230         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
231         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
232         Likewise various define_peephole2s.
233         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
234         alternatives.
235         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
236         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
237         (mfhilo_di, mfhilo_si): New patterns.
238
239 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
240
241         * function.c (assign_parms): Force
242         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
243
244 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
245
246         * var-tracking.c (variable_part_different_p): Variable parts differ
247         when the most recent locations differ.
248
249 2004-04-19  James E Wilson  <wilson@specifixinc.com>
250
251         * rtl.h (reg_set_last): Delete declaration.
252         * rtlanal.c (reg_set_last): Delete.
253
254 2004-04-19  Roger Sayle  <roger@eyesopen.com>
255
256         * fold-const.c (fold_convert): Make function extern/public.
257         * tree.h (fold_convert): Prototype here.
258         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
259         expand_builtin_strrchr, expand_builtin_strpbrk,
260         expand_builtin_mempcpy, expand_builtin_bcopy,
261         expand_builtin_bzero, expand_builtin_memcmp,
262         expand_builtin_strcmp, expand_builtin_strncmp,
263         stabilize_va_list, expand_builtin_sprintf,
264         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
265         fold_builtin_exponent, fold_builtin_mempcpy,
266         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
267         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
268         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
269
270 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
271
272         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
273         (move_from_CR_gt_bit): New.
274         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
275         E500.
276         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
277         E500.
278
279         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
280         (tstsfeq_gpr): Same.
281         (cmpsfgt_gpr): Same.
282         (tstsfgt_gpr): Same.
283         (cmpsflt_gpr): Same.
284         (tstsflt_gpr): Same.
285         (e500_cceq_ior_compare): New.
286         (e500_flip_gt_bit): New.
287
288         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
289         (print_operand): Add 'c' and 'D'.
290         (rs6000_generate_compare): Rewrite to generate correct rtl.
291         (rs6000_emit_sCOND): Handle E500.
292         (output_cbranch): Adjust for changes in rs6000_generate_compare.
293         (output_e500_flip_gt_bit): New.
294
295         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
296         Protoize.
297
298 2004-04-19  Eric Christopher  <echristo@redhat.com>
299
300         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
301
302 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
303
304         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
305         fix information.
306
307 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
308
309         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
310         download URL.
311
312 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
313
314         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
315         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
316
317 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
318
319         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
320         (fold_builtin): Update caller to match.
321
322         PR bootstrap/15009
323         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
324
325         PR bootstrap/14999
326         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
327
328 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
329
330         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
331
332         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
333         (expand_mult_highpart_optab): Likewise.
334         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
335
336 2004-04-19  Paul Brook  <paul@codesourcery.com>
337
338         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
339         floatunssisf2, floatunssidf2): New patterns.
340
341 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
342
343         PR other/14918
344         * doc/invoke.texi (-fprofile-generate): Document requirement to
345         use -fprofile-generate when linking.
346
347         * doc/extend.texi (Strong Using): Warn users against using this
348         feature.
349
350 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
351
352         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
353         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
354         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
355         * config/mips/mips.c (struct mips16_constant): Renamed from struct
356         constant.  Propogate change throughout file.
357         (struct machine_function): Remove insns_len.
358         (mips_string_length, mips16_strings, string_constants): Delete.
359         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
360         when generating mips16 code.  Remove special mips16 treatment of
361         string constants.
362         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
363         to have the form LABEL+CONSTANT.
364         (mips_symbolic_address_p): Fix comment.
365         (m16_usym8_4, m16_usym5_4): Delete.
366         (mips_output_function_epilogue): Remove mips16 string handling.
367         (mips_output_mi_thunk): Call mips16_lay_out_constants.
368         (mips_select_section, mips_encode_section_info): Remove mips16
369         string handling.
370         (struct mips16_constant_pool): New.
371         (add_constant): Take a mips16_constant_pool structure.  Keep pool
372         sorted into order of ascending mode size.  Keep track of the highest
373         possible start address, taking padding and the masking of the base PC
374         value into account.
375         (dump_constants_1): New function, split out from dump_constants.
376         Handle vector constants.  Use gen_consttable_{int,float} rather than
377         separate functions for each mode.
378         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
379         rather than separate functions for each alignment.
380         (mips_find_symbol): Delete.
381         (mips16_insn_length): New function, split out from
382         mips16_lay_out_constants.
383         (mips16_rewrite_pool_refs): New function.
384         (mips16_lay_out_constants): Rework. Remove string handling.
385         Always create an inline constant pool.
386         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
387         (UNSPEC_ALIGN): New constants.
388         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
389         (UNSPEC_ALIGN_[248]): Delete.
390         (consttable_int, consttable_float, align): New patterns.
391         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
392
393 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
394
395         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
396         __unn_args_eq.
397
398 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
399
400         PR target/14715
401         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
402         with STARTING_FRAME_OFFSET.
403
404 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
405
406         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
407         * config/mips/mips.c (macc_msac_operand): New function.
408         * config/mips/mips.md (*msac): Move after *macc.
409         (*msac2): New.  Generalize macc-related peepholes so that they apply
410         to msac too.
411
412 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
413
414         * opts.c (decode_options): Do not enable flag_rename_registers
415         and flag_web at -O3.
416         * toplev.c (flag_rename_registers): Initialize
417         flag_rename_registers and flag_web to
418         AUTODETECT_FLAG_VAR_TRACKING.
419         (default_debug_hooks): New global.
420         (process_options): Initialize default_debug_hooks.  Warn if
421         -fvar-tracking specified but not supported by the current
422         debug format.  Do not run var tracking at -O0 or if not
423         supported by the current debug format, even if
424         -fvar-tracking was given.  If -fno-rename-registers
425         is not specified, always run register renaming if var
426         tracking is supported by the default debugging information
427         format for the target, and we are at -O1 or higher; similarly
428         for -fweb, but only at -O2 or higher.
429         * doc/invoke.texi (Optimize Options): Document this.
430
431 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
432
433         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
434         * configure: Regenerate.
435
436 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
437
438         * gcc.c (used_arg): Check whether an option has been removed.
439
440 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
441
442         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
443         debugging on Solaris 7 and up.
444
445 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
446
447         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
448         IRIX 5 port.
449         Remove -save-temps workaround, handled automatically.
450         Require GNU binutils 2.15 for debugging.
451         Remove SGI make warnings since GNU make is now required.
452         (Specific, mips-sgi-irix6): Some markup fixes.
453         Describe MIPSpro C problems and workarounds.
454         Mention working O32 ABI support.
455         Recommend GNU as 2.15 for O32 with debugging.
456         Remove description of fixed structure pass/return bug.
457
458 2004-04-16  DJ Delorie  <dj@redhat.com>
459
460         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
461         TYPE_FIELDS.
462         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
463
464 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
465
466         * pa.md: Remove unnecessary declarations for asm_out_file.
467
468         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
469         SAR register.  Fix comment.
470         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
471         (%cr11).
472
473         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
474
475 2004-04-16  Nick Clifton  <nickc@redhat.com>
476
477         * config/arm/arm.c (arm_override_options): Revert previous patch.
478         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
479         be safely built.
480
481 2004-04-16  Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
482
483         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
484         bug.
485         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
486         TARGET_DEFAULT): Changed. Ditto.
487         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
488         TARGET_ENDIAN_DEFAULT): Added. Ditto.
489         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
490         (TARGET_ENDIAN_DEFAULT): Added.
491
492 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
493
494         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
495         ATTR_CONST_NOTHROW_LIST.
496
497 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
498
499         PR/middle-end 14915
500         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
501         BITS_BIG_ENDIAN.
502
503 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
504
505         * ra-debug.c (ra_print_rtx): Add break's to case legs.
506
507 2004-04-14  James E Wilson  <wilson@specifixinc.com>
508
509         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
510
511 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
512
513         * libada-mk.in: New file.
514         * configure.ac: Create libada-mk from libada-mk.in.
515         * configure: Regenerate.
516
517 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
518
519         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
520         (logb_optab, ilogb_optab): Define corresponding macros.
521         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
522         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
523         using logb?f2 and ilogb?i2 patterns.
524         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
525         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
526         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
527         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
528
529         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
530         and UNSPEC_XTRACT_EXP.
531
532         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
533         patterns to implement fxtract x87 instruction.
534         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
535         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
536         intrinsics.
537         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
538         x87's fxtract insn.
539
540 2004-04-14  Eric Christopher  <echristo@redhat.com>
541
542         * config/mips/t-elf: Enable multilibs by default.
543
544 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
545
546         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
547         previous fix to check HAVE_return at runtime too.
548
549 2004-04-14  Nick Clifton  <nickc@redhat.com>
550
551         * config/arm/arm.c (arm_override_options): If the user has not
552         specified an ABI, then default to AAPCS for the iWMMXt processor.
553         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
554         * config/arm/t-xscale-coff: Likewise.
555
556 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
557
558         * builtins.c (fold_builtin_isdigit): New.
559         (fold_builtin): Handle BUILT_IN_ISDIGIT.
560         * defaults.h: Add TARGET_DIGIT0 and sort.
561         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
562
563 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
564
565         * builtins.c (fold_builtin_cabs, fold_builtin): Use
566         `mathfn_built_in' to determine the new builtin.
567         * fold-const.c (fold): Likewise.
568
569 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
570
571         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
572         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
573         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
574         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
575         (ASM_SPEC): Update accordingly.
576         * config/mips/mips.c: Update after above renaming.
577         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
578         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
579
580 2004-04-13  James E Wilson  <wilson@specifixinc.com>
581
582         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
583         increment errorcount and return false instead of true.
584
585 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
586
587         * optabs.c (expand_twoval_unop): Reorder function arguments.
588         * builtins.c (expand_builtin_mathfn_3): Update calls to
589         expand_twoval_unop.
590
591         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
592         and UNSPEC_TAN_TAN. Add missing comment.
593
594         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
595         patterns to implement fptan x87 instruction.
596         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
597         and tanl built-ins as inline x87 intrinsics. Define corresponding
598         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
599         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
600         x87's fptan insn.
601
602 2004-03-13  Richard Henderson  <rth@redhat.com>
603
604         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
605         for LABEL_REFs.
606
607         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
608         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
609         * doc/invoke.texi: Update to match.
610
611         * varasm.c (unlikely_text_section): Use assemble_align instead of
612         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
613         correct alignment argument.
614
615 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
616
617         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
618         after setting reg_last_reload_reg for optional output reloads.
619
620 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
621
622         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
623         Definition of these two macros are corrected by adding
624         matchine right paren.
625
626 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
627
628         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
629
630 2004-04-12  Roger Sayle  <roger@eyesopen.com>
631
632         * config/i386/i386.c (output_387_reg_move): New function.
633         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
634         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
635         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
636         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
637         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
638
639 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
640
641         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
642         TYPE_DECL.
643         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
644         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
645         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
646         Use skip_simple_arithmetic to find SAVE_EXPR.
647         (force_type_save_exprs, force_type_save_exprs_1): New functions.
648         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
649         Properly chain multiple pointers.
650         (copy_tree_r): Copy a TYPE_DECL.
651         * tree.c (variably_modified_type_p): Add some missing tests and
652         make some other minor changes.
653         * tree.h (force_type_save_exprs): New declaration.
654
655 2004-04-12  Roger Sayle  <roger@eyesopen.com>
656
657         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
658         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
659         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
660         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
661         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
662         x%-1 into 0 (or x&0 if x has side-effects).
663
664 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
665
666         * config/rs6000/rs6000.md: Document why a pattern is not
667         available.
668
669         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
670         of floats on the E500.
671         (branch_positive_comparison_operator): Do not allow NE even on the
672         E500.
673
674 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
675
676         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
677         in_text_unlikely_section to in_unlikely_text_section.
678
679 2004-04-11  Roger Sayle  <roger@eyesopen.com>
680
681         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
682         calling convention to allow a NULL_TREE to be returned.  Factor
683         sanity checks from callers, return NULL_TREE when appropriate.
684         (fold): Handle COMPOUND_EXPR operands of binary expressions
685         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
686         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
687         calls to fold_binary_op_with_conditional_arg.
688
689 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
690
691         * config/mips/iris5.h (current_section_flags):  Add
692         in_unlikely_executed_text and default case.
693
694 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
695
696         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
697         failure on solaris. Place ifdef HAVE_return around gen_ret call.
698         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
699         HAVE_return and place it around the place where it is needed.
700
701 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
702
703         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
704         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
705         and NORMAL_TEXT_SECTION_NAME.
706         (unlikely_text_section): Check targetm.have_named_sections
707         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
708         instead of SECTION_FORMAT_STRING.
709         * config/mips/iris5.h (current_section_name): Add
710         in_unlikely_executed_text case and move the abort into the switch.
711         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
712         (NORMAL_TEXT_SECTION_NAME): Remove.
713         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
714         (SECTION_FORMAT_STRING): Remove.
715         * defaults.h (SECTION_FORMAT_STRING): Remove.
716         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
717         (SECTION_FORMAT_STRING): Remove.
718
719 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
720
721         * c-typeck.c (common_type): Prefer long long to long when same
722         precision.
723
724 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
725
726         PR 14887
727         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
728         mode argument.
729         * config/ia64/ia64.c (ia64_hpux_file_end): Check
730         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
731
732 2004-04-09  Roger Sayle  <roger@eyesopen.com>
733
734         * simplify-rtx.c (mode_signbit_p): New function to check whether
735         an RTX is an immediate constant that represents the most significant
736         bit of a given machine mode.
737         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
738         C is the sign bit.
739         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
740         when C2 is the sign bit.
741         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
742         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
743         sign bit.
744
745 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
746
747         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
748         TYPE_MODE.
749
750 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
751
752         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
753         of TREE_READONLY for types.
754
755 2004-04-09  Caroline Tice  <ctice@apple.com>
756
757         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
758         (struct basic_block_def):  Add new field, partition.
759         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
760         definitions.
761         (partition_hot_cold_basic_blocks): Add extern function
762         declaration.
763         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
764         include statements.
765         (N_ROUNDS): Increase the maximum number of rounds by 1.
766         (branch_threshold): Add array value for new round.
767         (exec_threshold): Add array value for new round.
768         (push_to_next_round_p): New function.
769         (add_unlikely_executed_notes): New function.
770         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
771         (mark_bb_for_unlikely_executed_section): New function.
772         (add_labels_and_missing_jumps): New function.
773         (add_reg_crossing_jump_notes): New function.
774         (fix_up_fall_thru_edges): New function.
775         (find_jump_block): New function.
776         (fix_crossing_conditional_branches): New function.
777         (fix_crossing_unconditional_branches): New function.
778         (fix_edges_for_rarely_executed_code): New function.
779         (partition_hot_cold_basic_blocks): New function.
780         (find_traces):  Add an extra round for partitioning hot/cold
781         basic blocks.
782         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
783         and only cold blocks, into the last (extra) round of collecting traces.
784         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
785         over crossing edges.
786         (bb_to_key):  Add code to correctly identify cold blocks when
787         doing partitioning.
788         (connect_traces): Modify to connect all the non-cold traces first, then
789         go back and connect up all the cold traces.
790         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
791         * cfg.c (entry_exit_blocks): Add initialization for partition field in
792         entry and exit blocks.
793         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
794         if we are doing hot/cold partitioning.
795         * cfgcleanup.c (cfglayout.h): Add new include statement.
796         (try_simplify_condjump): Modify to not attempt on blocks with jumps
797         that cross section boundaries.
798         (try_forward_edges): Likewise.
799         (merge_blocks_move_predecessor_nojumps): Likewise.
800         (merge_blocks_move_successor_nojumps): Likewise.
801         (merge_blocks_move): Likewise.
802         (try_crossjump_to_edge): Modify to not attempt after we have done
803         the block partitioning.
804         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
805         cross section boundaries.
806         (try_optimize_cfg): Likewise.
807         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
808         jumps that cross section boundaries.
809         * cfglayout.c (flags.h): Add new include statement.
810         (update_unlikely_executed_notes):  New function.
811         (fixup_reorder_chain):  Add code so when a new jumping basic block is
812         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
813         updated appropriately.
814         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
815         introduced by this optimization.
816         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
817         extern function declaration.
818         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
819         list of notes that can be deleted.
820         (create_basic_block_structure):  Add initialization for partition field.
821         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
822         section boundaries.
823         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
824         cross section boundaries.
825         (commit_one_edge_insertion): Add code so newly created basic block
826         ends up in correct (hot or cold) section.  Modify to disallow
827         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
828         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
829         crosses section boundaries.
830         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
831         cross section boundaries.
832         (force_nonfallthru_and_redirect): Modify to make sure new basic block
833         ends up in correct section, with correct notes attached.
834         * common.opt (freorder-blocks-and-partition):  Add new flag for this
835         optimization.
836         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
837         the end of functions are written into the correct (hot or cold)
838         section.
839         (dbx_source_file): Add code so writing debug file information
840         doesn't incorrectly change sections.
841         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
842         in partitioning hot/cold basic blocks into separate sections.
843         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
844         section partitioning.
845         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
846         conditional branches can span all of memory.
847         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
848         unconditional branches can span all of memory.
849         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
850         (final_scan_insn):  Add code to check for NOTE instruction indicating
851         whether basic block belongs in hot or cold section, and to make sure
852         the current basic block is being written to the appropriate section.
853         Also added code to ensure that jump table basic blocks end up in the
854         correct section.
855         * flags.h (flag_reorder_blocks_and_partition):  New flag.
856         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
857         one of the branches has a jump that crosses between sections.
858         (find_if_case_2): Likewise.
859         (ifcvt): Modify to not attempt to mark loop exit edges after
860         hot/cold partitioning has occurred.
861         * opts.c (decode_options): Code to handle new flag,
862         flag_reorder_blocks_and_partition; also to turn it off if
863         flag_exceptions is on.
864         (common_handle_option): Code to handle new flag,
865         flag_reorder_blocks_and_partition.
866         * output.h (unlikely_text_section): New extern function declaration.
867         (in_unlikely_text_section): New extern function declaration.
868         * passes.c (rest_of_handle_stack_regs):  Add
869         flag_reorder_blocks_and_partition as an 'or' condition for calling
870         reorder_basic_blocks.
871         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
872         as an 'or' condition for calling reorder_basic_blocks.
873         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
874         * print-rtl.c (print_rtx): Add code for handling new note,
875         NOTE_INSN_UNLIKELY_EXECUTED_CODE
876         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
877         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
878         cross between section boundaries.
879         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
880         indicating the basic block containing it belongs in the cold section.
881         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
882         between hot and cold sections.
883         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
884         initialize this flag, and to tie it to the command-line option
885         freorder-blocks-and-partition.
886         * varasm.c (cfglayout.h):  Add new include statement.
887         (unlikely_section_label_printed):  New global variable, used for
888         determining when to output section name labels for cold sections.
889         (in_section):  Add in_unlikely_executed_text to enum data structure.
890         (text_section):  Modify code to use SECTION_FORMAT_STRING and
891         NORMAL_TEXT_SECTION_NAME macros.
892         (unlikely_text_section):  New function.
893         (in_unlikely_text_section):  New function.
894         (function_section):  Add code to make sure beginning of function is
895         written into correct section (hot or cold).
896         (assemble_start_function):  Add code to make sure stuff is written to
897         the correct section.
898         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
899         to an if statement that was checking 'in_text_section'.
900         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
901         condition to an if statement that was checking 'in_text_section'.
902         (default_section_type_flags_1):  Add check: if in cold section
903         flags = SECTION_CODE.
904         * config/darwin.c (darwin_asm_named_section):  Modify to use
905         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
906         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
907         specifically for the i386.
908         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
909         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
910         text string to something more informative.
911         (NORMAL_TEXT_SECTION_NAME): Add new definition.
912         (SECTION_FORMAT_STRING):  Add new definition.
913         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
914         '!in_unlikely_text_section' as an 'and' condition to an if statement
915         that was already checking '!in_text_section'.
916         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
917         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
918         sure these are properly defined for linux on ppc.
919         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
920         for this new flag.
921         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
922         reg_note.
923         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
924         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
925         these new macros.
926
927 2004-04-08  Roger Sayle  <roger@eyesopen.com>
928
929         * function.c (gen_mem_addressof): When changing the RTX from a REG
930         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
931
932 2004-04-08  Roger Sayle  <roger@eyesopen.com>
933
934         PR target/14888
935         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
936         truncxfdf2_noop): Provide dummy "fmov" implementations.
937
938 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
939
940         * gcc.c (default_compilers): Add missing initializers.
941
942         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
943         Return 1 if file was successfully mapped.
944
945 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
946
947         PR pch/13419
948         PR pch/14137
949         Radar #: 3315288
950         * doc/invoke.texi (Precompiled Headers): Suggest -o
951         to put an output file in a particular place.  Be more detailed
952         about which options affect PCH validity and which options
953         might not work.
954         * c-pch.c (pch_matching): New.
955         (MATCH_SIZE): New.
956         (struct c_pch_validity): New field 'match'.
957         (pch_init): Handle pch_matching.
958         (c_common_valid_pch): Check pch_matching.
959
960         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
961
962 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
963
964         * doc/invoke.texi (Precompiled Headers): Warn about known
965         problems.
966
967 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
968
969         PR c++/14808
970         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
971         to 1 if ASM_OUTPUT_DEF is defined.
972         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
973         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
974         Set to non-zero iff not a one_only decl.
975
976 2004-04-08  Paul Brook  <paul@codesourcery.com>
977
978         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
979
980 2004-04-08  Paul Brook  <paul@codesourcery.com>
981
982         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
983         PROMOTE_FOR_CALL_ONLY.
984         * config/arm/arm-protos.h (arm_function_value): Declare.
985         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
986         (TARGET_PROMOTE_PROTOTYPES): Return false.
987         (arm_function_value): New function.
988         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
989         (FUNCTION_VALUE): Call arm_function_value.
990         * config/cris/cris.h (PROMOTE_MODE): Rename ...
991         (PROMOTE_FUNCTION_MODE): ... to this.
992         (PROMOTE_FOR_CALL_ONLY): Remove.
993         * config/mmix/mmix.h: Likewise.
994         * config/s390/s390.h: Likewise.
995         * config/sparc/sparc.h: Likewise.
996         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
997         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
998         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
999         (PROMOTE_FOR_CALL_ONLY): Remove.
1000
1001 2004-04-08  Joel Sherrill <joel@oarcorp.com>
1002
1003         PR ada/14538
1004         * ada/5rosinte.adb: Remove fake mprotect() body.
1005         * ada/5rosinte.ads: Add SA_SIGINFO.
1006         * ada/5rtpopsp.adb: Rewrite to use new interface.
1007         * ada/init.c: Reorder so the simple single OS conditional __rtems__
1008         is tested before more complex ones which mix UNIX and embedded
1009         systems in the conditional.
1010
1011 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
1012
1013         PR ada/14665
1014         * ada/osint.adb (Find_Program_Name): Rework to properly handle
1015         filenames which end in .exe or have versioning suffixes like VMS.
1016
1017 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
1018
1019         PR target/10129
1020         * config/darwin.c (darwin_encode_section_info): When the decl has
1021         a DECL_INITIAL, it is only defined also when it is not a common.
1022
1023 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1024
1025         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
1026         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
1027
1028 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
1029
1030         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
1031         global register variables.
1032
1033 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
1034
1035         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
1036         rpc_xdr_lvalue_cast_b): New fixes.
1037         * fixinc/fixincl.x: Regenerate.
1038         * fixinc/tests/base/rpc/xdr.h: Add new tests.
1039
1040 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
1041
1042         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
1043         to power4 and power5 entries.
1044
1045 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
1046
1047         * c-common.h (pending_lang_change): Mark for PCH.
1048
1049 2004-04-07  Caroline Tice  <ctice@apple.com>
1050
1051         * gcc.c (main): Move 'break' in main loops (on an error)
1052         to wait until error processing has occurred.
1053
1054 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
1055
1056         * config.gcc: Stop changing enable_threads midstream.
1057         Replace uses of enable_threads_flag with enable_threads.
1058         * configure.ac: Replace uses of enable_threads_flag with
1059         enable_threads.  Improve autoconf quotation in one place.
1060         * configure: Regenerate.
1061
1062 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
1063
1064         * builtins.c: Implement support for sincos function.
1065         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
1066         BUILT_IN_COS{,F,L}.
1067         (expand_builtin_mathfn_3): New function.
1068         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
1069         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
1070         flag_unsafe_math_optimization is set.
1071
1072         * optabs.h (enum optab_index): Add new OTI_sincos.
1073         (sincos_optab): Define corresponding macro.
1074
1075         * optabs.c (init_optabs): Initialize sincos_optab.
1076         (expand_twoval_unop): New function.
1077
1078         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
1079         patterns.
1080
1081         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
1082         and UNSPEC_SINCOS_SIN.
1083
1084         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
1085         sincosxf3): New patterns to implement sincos, sincosf and sincosl
1086         built-ins as inline x87 intrinsics. Define splits for
1087         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
1088         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
1089         sincos patterns.
1090         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
1091         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
1092
1093         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
1094         x87's fsincos insn.
1095
1096 2004-04-06  Devang Patel  <dpatel@apple.com>
1097
1098         PR 14467
1099         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
1100
1101 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1102
1103         * doc/install.texi: Update HP-UX 11 installation procedure.
1104
1105 2004-04-06  Paul Brook  <paul@codesourcery.com>
1106
1107         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
1108
1109 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
1110
1111         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
1112         when the TLS address is generated by a function call.
1113         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
1114         (tls_local_dynamic): Likewise.
1115
1116 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
1117
1118         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
1119         and TYPE_VOLATILE.
1120
1121 2004-04-05  Caroline Tice  <ctice@apple.com>
1122
1123         * gcc.c (combine_flag): New global variable, for new driver option.
1124         (struct compiler): Add two new fields, to be used when
1125         combining multiple input files in a single pass (IMA).
1126         (default_compilers):  Add values for the new fields to all
1127         compiler entries. Modify the "@c" compiler entry for doing IMA
1128         properly with "-save-temps" and the "combine" flag.
1129         (option_map):  Add new driver option, "--combine", to tell driver
1130         to pass multiple input files to compiler at one time.
1131         (have_o_argbuf_index): New global variable.
1132         (store_arg): Modify to assign value to have_o_argbuf_index.
1133         (struct infile):  Add three new fields, to help with IMA.
1134         (display_help): Add help for new "combine" option.
1135         (process_command): Remove local variable have_o; add code to check
1136         for new "combine" option; remove assignment to combine_inputs.
1137         (do_spec_1):  Modify to deal with IMA better.
1138         (main): Make variable 'lang_n_infiles' local to entire function
1139         rather than to a single block.  Use flag combine_flag to
1140         determine whether to do IMA or not; Modify loop initializing
1141         infiles to deal properly with linker files.
1142         Add code for doing preprocessing in presence of
1143         IMA with "-save-temps" flag.  Modify "main" loop to handle
1144         multiple input files, in multiple languages, with or without
1145         preprocessing,  gracefully.
1146         * toplev.c (set_src_pwd): Modify to not complain if attempting to
1147         re-set it to same directory it's previously been set to (avoid
1148         irritating, meaningless warning messages when doing IMA with
1149         save-temps).
1150         * doc/invoke.texi: Add "-combine" to list of Overall Options;
1151         remove documentation about IMA that is no longer accurate; Add
1152         documentation explaining what "-combine" does.
1153         * ada/lang-specs.h: Add initialization values for new fields in
1154         "struct compiler".
1155         * cp/lang-specs.h: Likewise.
1156         * f/lang-specs.h: Likewise.
1157         * java/lang-specs.h: Likewise.
1158         * objc/lang-specs.h: Likewise.
1159         * treelang/lang-specs.h: Likewise.
1160
1161 2004-04-05  David Edelsohn
1162
1163         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
1164         symbol handling.
1165
1166 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
1167             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1168
1169         PR optimization/13424 (hppa), bootstrap/14462, c/14828
1170         * pa.md: Use replace_equiv_address to retain the attributes of the
1171         memory operands used in the split and peephole2 patterns for optimizing
1172         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
1173
1174 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1175
1176         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
1177         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
1178         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
1179         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
1180         PARM_DECL.
1181         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
1182         for a type.
1183         * print-tree.c (print_node): Properly handle side-effects, readonly,
1184         and constant flags.
1185         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
1186         and TREE_CONSTANT if not a type.
1187         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
1188         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
1189         (NON_TYPE_CHECK): New macro.
1190         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
1191
1192 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
1193
1194         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
1195         to DWARF2_DEBUG unconditionally.
1196         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
1197
1198 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
1199             Nathanael Nerode  <neroden@gcc.gnu.org>
1200
1201         PR target/14548
1202         * config.host: Set the shell variable host_can_use_collect2.
1203         Set it to yes by default, and to no for alpha*-dec-*vms*,
1204         i[34567]86-*-mingw32*, and powerpc-*-beos*.
1205         * configure.ac: Set and substitute the shell variable collect2.
1206         Give an error if use_collect2 is yes and host_can_use_collect2 is
1207         no.
1208         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
1209         uses.  Initialize to @collect2@.
1210         (STAGESTUFF): Remove $(USE_COLLECT2).
1211         * config/alpha/x-vms (USE_COLLECT2): Don't set.
1212         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
1213         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
1214         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
1215         * configure: Regenerate.
1216
1217 2004-04-04  Roger Sayle  <roger@eyesopen.com>
1218
1219         * simplify-rtx.c (simplify_binary_operation): Constant fold
1220         DIV, MOD, UDIV and UMOD using div_and_round_double.
1221
1222 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
1223
1224         PR c++/14804
1225         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
1226         RECORD_TYPEs.
1227
1228 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
1229
1230         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
1231         documentation.
1232
1233 2004-04-04  Roger Sayle  <roger@eyesopen.com>
1234
1235         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
1236         updating the REG_EQUAL note on an insn's libcall_insn.
1237
1238 2004-04-04  Roger Sayle  <roger@eyesopen.com>
1239
1240         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
1241
1242 2004-04-03  Roger Sayle  <roger@eyesopen.com>
1243
1244         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
1245         with reorder_operands_p.
1246
1247 2004-04-03  Jan Hubicka  <jh@suse.cz>
1248
1249         * md.texi (vec_set, vec_extract, vec_init): Document.
1250
1251 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
1252
1253        * opts.c (decode_options): Do function inlining with very small
1254        max-inline-insns-* parameters when optimizing for size.
1255
1256 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
1257
1258         * config/i386/i386.h (TARGET_NOCONA): New macro.
1259         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
1260         (processor_type): Add PROCESSOR_NOCONA.
1261
1262         * config/i386/i386.md (cpu): Add nocona to the attribute values.
1263
1264         * config/i386/i386.c (nocona_cost): New variable.
1265         (m_NOCONA): New macro.
1266         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
1267         x86_branch_hints, x86_use_sahf, x86_single_stringop,
1268         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
1269         x86_integer_DFmode_moves, x86_partial_reg_dependency,
1270         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
1271         x86_decompose_lea, x86_arch_always_fancy_math_387,
1272         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
1273         x86_ext_80387_constants, x86_four_jump_limit):
1274         (override_options): Add nocona_cost to processor_target_table.
1275         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
1276         (incdec_operand): Prevent inc/dec generation for Nocona too.
1277         (ix86_issue_rate): Add PROCESSOR_NOCONA.
1278
1279 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
1280
1281         * rtlanal.c (find_reg_note): Manually
1282         unswitch the loop.
1283
1284 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
1285
1286         * genemit.c (gen_split): Change prototype of generated code.
1287         * genrecog.c (write_action): Adjust prototype for and calls to
1288         gen_split_*.
1289         * gensupport.c (struct queue_elem): Add split field.
1290         (queue_pattern): Return a value.  Clear the split field.
1291         (process_rtx): Maintain an association between an insn and the
1292         split generated from it for a define_insn_and_split.
1293         (process_one_cond_exec): Generate a new split for a
1294         define_insn_and_split.
1295         * config/arm/arm-protos.h (arm_split_constant): Add insn
1296         parameter.
1297         (emit_constant_insn): New function.
1298         (arm_gen_constant): Use it.
1299         * config/arm/arm.md: Adjust calls to arm_split_constant.
1300
1301 2004-04-02  Jan Hubicka  <jh@suse.cz>
1302
1303         * cgraph.c: Add overall comment.
1304         (cgraph_inline_hash): New global variable.
1305         (cgraph_create_node): Break out from ...
1306         (cgraph_node): ... here.
1307         (cgraph_edge): New function.
1308         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
1309         (cgraph_remove_edge): Accept edge, intead of source and destination.
1310         (cgraph_redirect_edge_callee): New.
1311         (cgraph_remove_node): Update all new datastructures.
1312         (cgraph_record_call, cgraph_remove_call): Kill.
1313         (dump_cgraph_node): Break out from ... ; dump new datastructures.
1314         (dump_cgraph): ... here.
1315         (cgraph_function_possibly_inlined_p): Use new hashtable.
1316         (cgraph_clone_edge, cgraph_clone_node): New.
1317         * cgraph.h: Include hashtab.h
1318         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
1319         fields, add inlined_to pointer.
1320         (cgraph_node): Add pointer to next_clone.
1321         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
1322         (cgraph_remove_call, cgraph_record_call): Kill.
1323         (cgraph_inline_hash): Declare.
1324         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
1325         cgraph_redirect_edge_callee): Declare.
1326         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
1327         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
1328         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
1329         * cgraphunit.c: Add overall comment.
1330         (cgraph_optimize_function): Kill.
1331         (cgraph_assemble_pending_functions): Do not assemble inline clones.
1332         (cgraph_finalize_function): Update call of cgraph_remove_node
1333         (record_call_1): Record call sites.
1334         (cgraph_create_edges): Accept node instead of decl argument.
1335         (error_found): New static variable.
1336         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
1337         (cgraph_analyze_function): Update for new datastructures.
1338         (cgraph_finalize_compilation_unit): Plug memory leak.
1339         (cgraph_optimize_function): Kill.
1340         (cgraph_expand_function): Do not use cgraph_optimize_function.
1341         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
1342         cgraph_inlined_callees): Kill.
1343         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
1344         clones.
1345         (estimate_growth): Simplify.
1346         (cgraph_clone_inlined_nodes): New function.
1347         (cgraph_mark_inline_edge): Re-implement.
1348         (cgraph_mark_inline): Likewise.
1349         (cgraph_check_inline_limits): Simplify.
1350         (cgraph_recursive_inlining_p): New.
1351         (update_callee_keys): Break out from ...
1352         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
1353         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
1354         Likewise.
1355         (cgraph_expand_all_functions):  Remove inline clones from the ordered
1356         list.
1357         (cgraph_preserve_function_body_p): New predicate.
1358         (cgraph_optimize): Verify cgraph.
1359         * function.h (struct function): Add fields saved_tree/saved_args.
1360         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
1361         * toplev.c (rest_of_compilation): Do not free cfun.
1362         * tree-inline.c: Include function.h
1363         (struct inline_data): Add saving_p field; replace decl/current_decl by
1364         node/current_node.
1365         (insert_decl_map): New function.
1366         (copy_body_r): Handle saving; update cgraph datastructure.
1367         (copy_body): Handle recursive inlining.
1368         (initialize_inlined_parameters): Likewise.
1369         (expand_call_inline): Propagate node attributes; update cgraph.
1370         (optimize_inline_calls): Verify that datastructure still match.
1371         (save_body): New function.
1372         * tree-inline.h (save_body): New.
1373         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
1374         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
1375         * langhooks.c (lang_hooks): Add update_decl_after_saving.
1376
1377 2004-04-01  Serge Belyshev  <1319@bot.ru>
1378
1379         PR target/14702
1380         * config/i386/i386.md: fix source operand constraints in
1381         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
1382
1383 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
1384
1385         * fold-const.c (folda): Preserve types of comparisons.
1386
1387 2004-04-01  Richard Henderson  <rth@redhat.com>
1388
1389         * toplev.c (backend_init): Move init_optimization_passes call ...
1390         (lang_dependent_init): ... here.
1391
1392 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
1393             Jakub Jelinek  <jakub@redhat.com>
1394
1395         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
1396         -lgcc --as-needed -lgcc_s --no-as-needed by default.
1397         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
1398         * configure: Rebuilt.
1399         * config.in: Rebuilt.
1400         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
1401         (stage2-start, stage3-start, stage4-start): Likewise.
1402         (stageprofile-start, stagefeedback-start): Likewise.
1403
1404 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
1405
1406         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
1407         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
1408         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
1409         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
1410         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
1411         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
1412         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
1413         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
1414         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
1415         * config/sparc/t-linux: Removed.
1416
1417 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
1418
1419         PR c++/14755
1420         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
1421         "bitfld++ == const" to "++bitfld == const + incr" transformations.
1422
1423 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1424
1425         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
1426         * stor-layout.c (layout_decl): Likewise.
1427         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
1428         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
1429         * print-tree.c (print_node): Handle various used of unsigned_flag.
1430         * tree.def (BIT_FIELD_REF): Update comment.
1431         * tree.h (TREE_UNSIGNED): Deleted.
1432         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
1433
1434 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1435
1436         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
1437         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
1438         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
1439         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
1440         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
1441         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
1442         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
1443         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
1444         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
1445         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
1446         REAL_TYPE, not INTEGER_TYPE.
1447         (layout_type, case VECTOR_TYPE): Simplify code.
1448         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
1449         * tree.h: Update comments.
1450         (STRIP_NOPS): Use TYPE_UNSIGNED.
1451         (TYPE_UNSIGNED): New macro.
1452         (TYPE_TRAP_SIGNED): Remove now redundant check.
1453         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
1454
1455 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1456
1457         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
1458
1459 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
1460
1461         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
1462         Add darwin-fpsave.asm, darwin-vecsave.asm,
1463         and darwin-world.asm.
1464         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
1465         as the asm files contain altivec instructions.
1466         * config/rs6000/darwin-fpsave.asm: New file.
1467         * config/rs6000/darwin-vecsave.asm: New file.
1468         * config/rs6000/darwin-world.asm: New file.
1469
1470 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
1471
1472         * gengtype-yacc.y (option, stringseq): Add missing
1473         terminating semicolon.
1474
1475 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
1476
1477         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
1478         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
1479         tls_dtprel_ha_32, tls_dtprel_ha_64,
1480         tls_dtprel_lo_32, tls_dtprel_lo_64,
1481         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
1482         tls_tprel_ha_32, tls_tprel_ha_64,
1483         tls_tprel_lo_32, tls_tprel_lo_64,
1484         tls_got_tprel_32, tls_got_tprel_64,
1485         tls_tls_32, tls_tls_64): Replace register_operand with
1486         gpc_reg_operand.
1487
1488 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
1489
1490         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
1491         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
1492         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
1493         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
1494         *ctrdi_internal6): Replace register_operand with
1495         nonimmediate_operand.
1496
1497 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
1498
1499         * fold-const.c (fold): Reassociate multiply expression
1500         with an adjacent non-multiply expression to use
1501         architecture's multiply-add instruction.
1502
1503 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
1504
1505         * gengtype.c (create_option): New function.
1506         * gengtype.h: Prototype it.
1507         * gengtype-yacc.y (stringseq): New rule.
1508         (option): Use create_option.  Add new bare ID production.  Use
1509         stringseq, not STRING directly.
1510
1511         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
1512         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
1513         * varray.h, config/alpha/alpha.c:
1514         Use new shorter form of GTY markers.
1515
1516         * doc/gty.texi: Rewrite.
1517
1518 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
1519
1520         * config/darwin.c (machopic_function_base_name):
1521         Remove current_name and getting the name of the
1522         current function.
1523
1524 2004-03-30  Nick Clifton  <nickc@redhat.com>
1525
1526         * config/arm/arm.md (thumb_jump): Reduce the backward branch
1527         range, and increase the forward branch range, to allow for
1528         the fact that the PC will be off by 4.
1529
1530 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
1531
1532         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
1533
1534 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
1535
1536         * config/rs6000/rs6000.c (output_vec_const_move):
1537         Find all cases of EASY_VECTOR_15_ADD_SELF.
1538         (easy_vector_constant_add_self): Accept
1539         all vector constant loadable by vsplt* and vadd*.
1540         (easy_vector_same): Use easy_vector_splat_const.
1541         (easy_vector_const): Use easy_vector_splat_const.
1542         (easy_vector_splat_const): New function.
1543         (gen_easy_vector_constant_add_self): New function.
1544
1545         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
1546         New prototype.
1547
1548         * config/rs6000/altivec.md (movv4si splitter): Change to
1549         emit move insn with halfed vector constant.
1550         (*movv8hi splitter): Likewise.
1551         (*movv16qi splitter): Likewise.
1552
1553 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
1554
1555         PR 11591
1556         * config/rs6000/rs6000.c (rs6000_legitimate_address):
1557         Allow any offset to argument pointer in no-strict case.
1558
1559 2004-03-30  Jan Hubicka  <jh@suse.cz>
1560
1561         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
1562         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
1563         dump file in non-unit-at-a-time mode.
1564
1565 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
1566
1567         * config/cris/cris.h: Correct #ifdef to test for
1568         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
1569         HAVE_AS_MUL_BUG_ABORT_OPTION.
1570
1571 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1572
1573         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
1574         the address inside the old RTL.
1575
1576 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
1577
1578         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
1579         (struct c_binding, struct c_scope): Add chain_next
1580         attributes to GTY markers.
1581         (struct lang_identifier, struct lang_tree_node): Define
1582         here...
1583         * c-tree.h: ... not here.  No longer need to declare struct
1584         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
1585         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
1586         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
1587
1588         PR 14734, 11944
1589         * c-decl.c (get_parm_info): If error_mark_node is encountered
1590         in the bindings chain, unbind and discard it; don't abort.
1591
1592 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
1593             Dorit Naishlos <dorit@il.ibm.com>
1594
1595         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
1596         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
1597
1598 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
1599
1600         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
1601
1602         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
1603         (m68hc11_attribute_table): New attribute "page0" to mark a global
1604         variable as being allocated from within page0 section.
1605         (m68hc11_encode_label): New function.
1606         (m68hc11_strip_name_encoding): New function.
1607         (m68hc11_page0_symbol_p): New function.
1608         (m68hc11_indirect_p): Accept global variables marked in page0.
1609         (m68hc11_encode_section_info): Lookup "page0" attribute.
1610
1611         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
1612         represents access to page0 variables.
1613
1614         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
1615         ("*logicalsi3_silshl16_zext"): Likewise.
1616         ("*ashldi3_const32"): Likewise.
1617         (peephole2 ashift): Likewise.
1618
1619 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
1620
1621         * c-tree.h (C_DECL_REGISTER): New.
1622         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
1623         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
1624         (build_array_ref, c_mark_addressable): Set and use it.
1625         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
1626         Allow structures with volatile fields to be declared register.
1627         Don't check TREE_ADDRESSABLE before warning about taking address
1628         of register.
1629         * c-decl.c (finish_decl): Don't allow structures with volatile
1630         fields to be placed in named register.
1631         * doc/trouble.texi: Remove reference to structures with volatile
1632         fields in registers.
1633
1634 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
1635
1636         * function.c (thread_prologue_and_epilogue): Move
1637         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
1638         before the epilogue.
1639
1640 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
1641
1642         * expr.c (store_constructor): Use gen_int_mode to correctly
1643         sign-extend CONST_INT value.
1644
1645 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1646
1647         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
1648         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
1649         * doc/extend.texi: Likewise.
1650
1651 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
1652
1653         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
1654           with TYPE_ORIG_SIZE_TYPE.
1655
1656 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
1657
1658         PR 14219
1659         * c-typeck.c (build_binary_op): Do not allow comparisons of
1660         vectors.
1661
1662 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
1663
1664         * config.gcc: Remove sparc-tti-*.
1665         * config/sparc/pbd.h: Delete.
1666
1667         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
1668         * config/sparc/aout.h: Likewise.
1669
1670         * config/sparc/sparc.h: Remove if 0'd code.
1671         * config/sparc/sparc.md (call): Remove if 0'd code.
1672         (call_value): Likewise.
1673         (nonlocal_goto): Likewise.
1674         (unimp_insn): Delete.
1675
1676 2004-03-25  Roger Sayle  <roger@eyesopen.com>
1677
1678         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
1679         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
1680
1681 2004-03-25  Richard Henderson  <rth@redhat.com>
1682
1683         PR 11527
1684         * c-typeck.c (pop_init_level): Emit pending init elements earlier
1685         rather than later.
1686
1687 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1688
1689         * builtins.c (fold_builtin): Fix error in last change.
1690
1691 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
1692
1693         * config/mips/mips.h: Formatting fix.
1694
1695 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1696
1697         * builtins.def: Add ctype builtins.
1698         * doc/extend.texi: Likewise.
1699
1700 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1701
1702         * builtins.c (fold_builtin): Add new builtin optimizations for
1703         sqrt and/or cbrt.
1704         * fold-const.c (fold): Likewise.
1705
1706 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
1707
1708         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
1709         (rs6000_sched_groups): New variable.
1710         (processor_target_table): Add power5.
1711         (rs6000_override_options): Set rs6000_sched_insert_nops,
1712         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
1713         from rs6000_sched_groups.
1714         (output_cbranch): Use rs6000_always_hint.
1715         (rs6000_variable_issue): Use rs6000_sched_groups.
1716         (rs6000_adjust_cost): Add CPU_POWER5.
1717         (is_microcoded_insn): Use rs6000_sched_groups.
1718         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
1719         Return 2 for POWER5 cracked instructions.
1720         (is_cracked_insn): Use rs6000_sched_groups.
1721         (is_branch_slot_insn): Use rs6000_sched_groups.
1722         (rs6000_issue_rate): Add CPU_POWER5.
1723         (rs6000_sched_finish): Use rs6000_sched_groups.
1724         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
1725         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
1726         (DEFAULT_SCHED_COSTLY_DEP): Delete.
1727         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
1728         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
1729         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
1730         * config/rs6000/power5.md: New file.
1731         * doc/invoke.texi: Add power5 option.
1732
1733 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
1734
1735         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
1736         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
1737         * doc/invoke.texi: Fix a typo.
1738
1739 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
1740
1741         PR optimization/9707.
1742         * stmt.c (emit_case_nodes): Emit equality comparisons instead
1743         of recursing if both children are single-valued cases with no
1744         children.
1745
1746 2004-03-25  Paul Brook  <paul@codesourcery.com>
1747
1748         * config/arm/arm.c (vfp_print_multi): Remove.
1749         (arm_output_fldmx): New function.
1750         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
1751         (arm_expand_prologue): Update to match.
1752         (arm_get_vfp_saved_size): New Function.
1753         (arm_get_frame_offsets): Use it.
1754         (arm_output_epilogue): Use new functions.
1755
1756 2004-03-24  Richard Henderson  <rth@redhat.com>
1757
1758         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
1759         (reg_known_value, reg_known_value_size): Likewise; make static.
1760         (reg_known_equiv_p): Make static.
1761         (clear_reg_alias_info): Update for new indexing.
1762         (get_reg_known_value, set_reg_known_value): New.
1763         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
1764         (canon_rtx): Use them.
1765         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
1766         Don't play queer offsetting games with reg_known_value and
1767         reg_known_equiv_p.
1768         (end_alias_analysis): Free reg_known_value with gc.
1769         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
1770         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
1771         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
1772         functions instead.
1773
1774 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
1775
1776         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
1777         config/i386/mmintrin.h: Update copyright.
1778
1779 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
1780
1781         * configure.ac: Add --enable-werror-always (for top level bootstrap
1782         support).
1783         * configure: Regenerate.
1784
1785 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
1786
1787         * objc/objc-act.c (objc_comptypes): Treat comparisons
1788         between 'Class' and '<class> *' as explicitly invalid.
1789
1790 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
1791
1792         * doc/invoke.texi (-frename-registers: Add enabled at -O3.
1793         (-fprofile-values): Add enabled with profile-{generate,use}.
1794         (-fvpt): Same.
1795         (-ftracer): Add enabled with profile-use.
1796         (-funit-at-a-time): Add enabled at -O2,-O3.
1797         (-funroll-loops): Add enabled with profile-use.
1798         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
1799         (max-gcse-passes): Mention default.
1800         (max-cse-path-length): Mention default.
1801
1802 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
1803
1804         * Makefile.in (STRICT2_WARN): Reorder.
1805         * configure.ac: Check for -Wold-style-definition, and use it
1806         in strict1_warn if it's available.
1807         * configure: Regnerate.
1808
1809 2004-03-24  Paul Brook  <paul@nowt.org>
1810
1811         * config.gcc <arm>: Add --with-abi=
1812         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
1813         thumb_far_jump_used): Remove prototypes.
1814         (arm_needs_doubleword_align): Add prototype.
1815         (thumb_compute_initial_elimination_offset): Ditto.
1816         * config/arm/arm.c (arm_get_frame_offsets): New function.
1817         (use_return_insn, output_return_instruction, arm_output_epilogue,
1818         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
1819         arm_expand_prologue, thumb_expand_epilogue): Use it.
1820         (arm_abi, target_abi_name, all_arm_abis): New variables.
1821         (arm_override_options): Set them.  Set structure padding for AAPCS.
1822         (arm_return_in_memory): Update ABI check.
1823         (arm_init_cumulative_args): Initialize can_split.
1824         (arm_needs_doubleword_align): New function.
1825         (arm_function_arg): Don't split args after pushing to stack. Handle
1826         doubleword/even reg alignment.
1827         (arm_va_arg): Handle all doubleword aligned args.
1828         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
1829         on ABI, not CPU.
1830         (arm_compute_save_reg0_reg12_mask): Fix comment.
1831         (thumb_get_frame_size, thumb_get_frame_size): Remove.
1832         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
1833         value for alignment.
1834         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
1835         to match.
1836         (thumb_compute_initial_elimination_offset): New function.
1837         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
1838         unneccessary rounding.
1839         * config/arm/arm.h (target_abi_name): Declare.
1840         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
1841         arm_abi_type, ARM_DEFAULT_ABI): Define.
1842         (ARM_FLAG_ATPCS): Remove.
1843         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
1844         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
1845         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
1846         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
1847         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
1848         Contitionalize on ABI, not CPU.
1849         (struct arm_stack_offsets): Define.
1850         (struct machine_function): Add stack_offsets.  Remove frame_size.
1851         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
1852         pushed.
1853         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
1854         doubleword alignment.
1855         (THUMB_INITIAL_ELIMINATION_OFFSET,
1856         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
1857         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
1858         * config/arm/arm.md (align_8): Enable for all targets.
1859         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
1860         (ARM_DEFAULT_ABI): Define.
1861         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
1862         -mstructure-size-boundary.
1863
1864 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
1865
1866         * configure.ac: Check for -Wno-variadic-macros; don't use
1867         -pedantic (in stage 1 or a simple 'make all') unless it's available,
1868         and if it's available, use it.  Also, clean up check for
1869         -Wno-long-long.
1870         * configure: Regenerate.
1871
1872 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
1873
1874         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
1875         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
1876         (MULTILIB_DEFAULTS): Use it.
1877         (MIPS_CPU_STRING_DEFAULT): Remove.
1878         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
1879         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
1880         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
1881         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
1882         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
1883         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
1884         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
1885         accordingly.
1886
1887 2004-03-24  DJ Delorie  <dj@redhat.com>
1888             Richard Sandiford  <rsandifo@redhat.com>
1889
1890         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
1891         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
1892         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
1893         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
1894         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
1895         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
1896         if TARGET_FIX_VR4122.
1897         * config/mips/mips.md (define_attr length): Account for nops inserted
1898         after macc and dmult when using -mfix-vr4122-bugs.
1899         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
1900         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
1901         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
1902         * config/mips/vr4122-div.S: New file.
1903         * doc/invoke.texi: Document -mfix-vr4122-bugs.
1904
1905 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
1906
1907         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
1908         (TARGET_MIPS4130): New macro.
1909         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
1910         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
1911         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
1912         with PROCESSOR_R4130.
1913         * config/mips/mips.md (define_attr cpu): Add r4130.
1914         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
1915
1916 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
1917             Richard Sandiford  <rsandifo@redhat.com>
1918
1919         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
1920
1921 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
1922
1923         PR preprocessor/14438
1924         * cpplib.c (do_pragma): Remove line_change call after pragma
1925         handler.
1926
1927 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
1928
1929         * doc/extend.texi (ARM Built-in Functions): Replace with correct
1930         declarations.
1931
1932 2004-03-23  Roger Sayle  <roger@eyesopen.com>
1933
1934         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
1935         if flag_unsafe_math_optimizations.
1936         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
1937         and TARGET_80387 expand using truncdfsf2_noop pattern.
1938         (truncxfsf2): Likewise using truncxfsf2_noop.
1939         (truncxfdf2): Likewise using truncxfdf2_noop.
1940         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
1941
1942 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
1943
1944         * hooks.c (hook_constcharptr_tree_null): New hook.
1945         * hooks.h (hook_constcharptr_tree_null): New prototype.
1946         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
1947         * target.h (mangle_fundamental_type): New target hook.
1948         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
1949         target hook at rs6000_mangle_fundamental_type.
1950         (rs6000_mangle_fundamental_type): New function.
1951         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
1952
1953 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
1954
1955         PR 12267, 12391, 12560, 13129, 14114, 14133
1956         * c-tree.h: Forward declare struct c_binding.  Declare
1957         c_override_bindings_to_false.  Update prototypes.
1958         (struct lang_identifier): Update comments.  Change fields to be
1959         struct c_binding *.
1960         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
1961         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
1962         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
1963         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
1964         * c-common.h: Update prototypes.
1965         * c-decl.c (struct c_scope): Update commentary.  Remove names,
1966         names_last, parms, parms_last, tags, and shadowed fields.  Add
1967         bindings and depth fields.
1968         (scope_freelist): Move to more appropriate location.
1969         (c_print_identifier): Update for changes to struct lang_identifier.
1970         (objc_mark_locals_volatile): Update for new bindings structures.
1971         (global_bindings_p): Honor c_override_global_bindings_to_false.
1972         (pushlevel): Rename to push_scope; take no arguments; use the
1973         scope_freelist; initialize scope->depth and check for overflow.
1974         (poplevel): Rename to pop_scope; totally rewritten for new bindings
1975         structures.
1976         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
1977         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
1978         Improve some commentary.  Adjust handling of forward parm decls.
1979         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
1980         Preserve C_DECL_IN_EXTERNAL_SCOPE.
1981         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
1982         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
1983         decls.  Rewrite for new bindings structures.  Improve commentary.
1984         Eliminate the copy_node call.
1985         (implicit_decl_warning): Use the "diag" idiom (as seen in
1986         locate_old_decl) to reduce code duplication; call locate_old_decl
1987         if appropriate.  Relocate to remove need for forward declaration.
1988         (implicitly_declare): Adjust for new bindings structures.  Kludge
1989         around Objective-C not-really-builtin functions.
1990         (undeclared_variable): Improve diagnostics.  If current_function_decl
1991         is nonnull but current_function_scope is null, use current_scope.
1992         Use bind.
1993         (lookup_tag): Adjust for new bindings structures.  Kludge around
1994         Objective-C's tag declarations that wind up in the external scope.
1995         (lookup_name): Adjust for new bindings structures.  Kludge around
1996         c-common.c's pseudo-typedefs that wind up in the external scope.
1997         (lookup_name_current_level): Rename lookup_name_in_scope; take a
1998         second argument indicating the scope to examine; rewrite for
1999         new bindings structures.
2000         (c_init_decl_processing): Adjust for renamed functions.  Do not
2001         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
2002         First scope pushed is the external scope, not the global scope.
2003         (builtin_function): Use bind, not pushdecl.  Adjust other bits
2004         for new data structures.  Keep track of builtins that should be
2005         made visible automatically.
2006         (start_decl): Adjust diagnostics.  Remove unnecessary call to
2007         expand_decl.
2008         (grokparms): Return 0 if arg_types is error_mark_node.
2009         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
2010         reversed sense.  Rewrite for new bindings structures.  Do not
2011         leave any decls in the scope, to prevent pop_scope from doing
2012         contradictory things with them.
2013         (finish_struct, finish_enum): Remove redundant diagnostics.
2014         (build_enumerator): Don't cascade diagnostics for error_mark_node.
2015         Mark location where -pedantic changes the meaning of the program.
2016         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
2017         parameter decls into the function's scope structure using bind.
2018         Warn here about function definitions in the wrong style.
2019         Adjust diagnostics.
2020         (store_parm_decls): Correct the determination of whether a
2021         function was defined with a prototype.
2022         (c_write_global_declarations): Operate on all file decls and on
2023         the external scope.  Split body of the loop to...
2024         (c_write_global_declarations_1): ... this new function, to avoid
2025         code duplication.
2026         (truly_local_externals, first_builtin_decl, last_builtin_decl)
2027         (make_scope, pop_scope, in_parm_level_p, set_block)
2028         (any_external_decl, record_external_decl, bind_label, getdecls)
2029         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
2030         (c_reset_state): Delete.
2031         (visible_builtins, c_override_global_bindings_to_false)
2032         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
2033         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
2034         (external_scope, binding_freelist, bind, free_binding_and_advance)
2035         (push_file_scope, pop_file_scope): New.
2036         (pushtag, pushdecl_top_level, lookup_label, declare_label)
2037         (define_label, c_make_fname_decl, finish_decl)
2038         (mark_forward_parm_decls, build_compound_literal)
2039         (grokdeclarator, start_function, check_for_loop_decls)
2040         (identifier_global_value, record_builtin_type): Minor adjustments
2041         for new bindings structures.  Improve diagnostics and commentary.
2042         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
2043         pushlevel/poplevel respectively.
2044         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
2045         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
2046         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
2047         correct loop over multiple translation units; call fatal_error if
2048         requested to compile more than one file at once.  (This disables
2049         IMA temporarily - an up-front error being preferable to a crash.)
2050         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
2051         (all actions): Adjust calls to pushlevel/poplevel.
2052         (parsing_iso_function_signature): Delete.
2053         (extdef_1): Fold into extdef.
2054         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
2055         warn here about function definitions in the wrong style.
2056         (after_tyle_declarator, parm_declarator_starttypename)
2057         (parm_declarator_nostarttypename, notype_declarator): Remove
2058         commented-out productions.
2059         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
2060         an empty TREE_LIST node.  Adjust calls to get_parm_info.
2061         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
2062         to suppress -Wold-style-definition after this error.
2063         (c_parse_file): Don't clear the binding stack or call
2064         finish_fname_decls here.  Correct comment.
2065         * c-typeck.c (same_translation_unit_p): Export.
2066         (common_type): Use c_override_global_bindings_to_false, not
2067         pushlevel/poplevel/declare_parm_level.
2068         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
2069         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
2070         and LANG_HOOKS_GETDECLS with do-nothing stubs.
2071         * objc/objc-lang.c: Likewise.
2072         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
2073         get_parm_info.
2074         (OBJC_VOID_AT_END): Delete; replace all uses
2075         with void_list_node.
2076         (generate_forward_declaration_to_string_table): Delete.
2077         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
2078
2079         * coverage.c (create_coverage): Don't pushdecl anything.
2080         * langhooks.c (lhd_clear_binding_stack): Call
2081         lang_hooks.decls.poplevel, not poplevel.
2082         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
2083         circular list rather than going into an infinite loop.
2084
2085 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
2086
2087         * optabs.c (expand_binop): When synthesizing double word rotates
2088         from single word shifts, use a new register target if the provided
2089         target is not a REG already.
2090
2091 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2092
2093         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
2094         * c-common.c (handle_mode_attribute): Add extra arg to
2095         build_pointer_type_for_mode and build_reference_type_for_mode.
2096         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
2097         for INTEGER_CST.
2098         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
2099         Chain pointers via TYPE_NEXT_PTR_TO.
2100         (build_reference_type_for_mode): Similarly.
2101         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
2102         and build_reference_type_for_mode.
2103         (tree_check4_failed): New function.
2104         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
2105         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
2106         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
2107         Add check.
2108
2109 2004-03-23  Roger Sayle  <roger@eyesopen.com>
2110
2111         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
2112         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
2113         when both A and B are nonnegative.
2114         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
2115         nonzero.
2116
2117 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
2118
2119         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
2120         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
2121
2122 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
2123
2124         PR optimization/14669
2125         * fold-const.c (fold): Only unwiden integer comparisons for equality
2126         and inequality operators, or when the signedness doesn't change.
2127
2128 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
2129
2130         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
2131         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
2132         * config/sparc/t-linux: New file.
2133
2134 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
2135
2136         * gcse.c (can_assign_to_reg_p): New function, split out from...
2137         (want_to_gcse_p): ...here.
2138         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
2139         the rhs of a store.
2140
2141 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
2142
2143         * c-typeck.c (same_translation_unit_p): Fix pasto.
2144
2145 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
2146
2147         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
2148         (PARAM_MAX_SCHED_REGION_INSNS): New.
2149         * sched-rgn.c: Include params.h
2150         (MAX_RGN_BLOCKS): Delete.
2151         (MAX_RGN_INSNS): Delete.
2152         (too_large): Return bool.  Convert to PARAM_VALUE.
2153         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
2154         * doc/invoke.texi (param): Document max-sched-region-blocks and
2155         max-sched-region-insns.
2156
2157 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
2158
2159         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
2160         for base types.
2161
2162 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
2163
2164         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
2165         change.
2166
2167 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
2168
2169         PR c/14069
2170         * c-decl.c (finish_struct): Change type of incorrect flexible array
2171         field into error_mark_node.
2172
2173 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
2174
2175         PR target/14580
2176         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
2177         who are not local for Darwin PIC.
2178
2179 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
2180
2181         * regrename.c (regrename_optimize): Set regs_ever_live for all
2182         registers introduced as replacement.
2183
2184 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
2185
2186         PR middle-end/14470
2187         * expr.c (mark_queue): New function.
2188         (emit_insns_enqueued_after_mark): New function replacing
2189         emit_queue.  Clear the body of emitted queued insns.
2190         (emit_queue): Call emit_insns_enqueued_after_mark.
2191         (store_expr): Mark the increment queue on entry.  Emit
2192         only the incrementations queued when expanding the source.
2193
2194 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
2195
2196         * configure.ac: Allow --disable-coverage-flags (for the future benefit
2197         of top level bootstrap, and consistency).  Reindent.
2198         * configure: Regenerate.
2199
2200 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
2201
2202         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
2203         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
2204         unnecessary casts.
2205
2206 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
2207
2208         PR target/14291
2209         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
2210         __MINGW32__.
2211
2212 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
2213
2214         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
2215         to nonimmediate_operand.
2216         ("*doloop_di"): Likewise.
2217
2218 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
2219
2220         * real.h (struct real_value): Use the same type for all
2221         bitfields.  Rename exp to uexp.
2222         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
2223         Adjust all uses of exp...
2224         * builtins.c: ... here, ...
2225         * emit-rtl.c: ... here, and ...
2226         * real.c: ... and here.
2227
2228 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2229
2230         * pretty-print.c (pp_base_maybe_space): New function.
2231         * pretty-print.h (pp_base_maybe_space): Declare.
2232         (pp_maybe_space): New macro.
2233
2234 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
2235
2236         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
2237
2238 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
2239
2240         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
2241         of using register multiplication cost.
2242         (expand_mult): Adapt choose_mult_variant call.
2243         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
2244         of MODE; pass appropriate cost bound.  Adjust result when
2245         performing signed multiplication by a negative constant.
2246         Don't use intermediate modes larger than word_mode.
2247
2248 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2249
2250         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
2251         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
2252         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
2253         * explow.c (expr_size): Likewise.
2254         * expr.h (placeholder_list, find_placeholder): Deleted.
2255         * expr.c (store_constructor): Likewise.
2256         (get_inner_reference): Likewise.  Also don't call find_placeholder.
2257         (placeholder_list, find_placeholder): Deleted.
2258         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
2259         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
2260         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
2261         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
2262         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
2263         Likewise.
2264         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
2265         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
2266         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
2267         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
2268         Clean up by using first_rtl_op.
2269         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
2270         (substitute_placeholder_in_expr): New function.
2271         * tree.def (WITH_RECORD_EXPR): Deleted.
2272         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
2273         (substitute_placeholder_in_expr): New.
2274
2275 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
2276
2277         * dojump.c (prefer_and_bit_test): Fix which part of
2278         the and_test is replaced.
2279
2280 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
2281
2282         * frontends.texi: Add missing line.
2283
2284 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
2285             Chris Devers  <cdevers@pobox.com>
2286             Joseph S. Myers  <jsm@polyomino.org.uk>
2287
2288         * doc/frontends.texi: Rewrite.
2289         * doc/gcc.texi: Update last modification date.
2290
2291 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
2292
2293         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
2294         message before redirecting the edge.
2295
2296 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2297
2298         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
2299         flag.
2300         * explow.c (force_not_mem): Set REG_POINTER flag according to
2301         MEM_POINTER one.
2302         * rtl.h (MEM_POINTER): New macro.
2303         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
2304         for MEM_POINTER.
2305
2306 2004-03-20  Roger Sayle  <roger@eyesopen.com>
2307
2308         PR target/13889
2309         * cse.c (fold_rtx): Avoid substituting constants into unary
2310         conversion operations.
2311
2312 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2313
2314         * fold-const.c (fold): Replace "expr" with "t".
2315
2316 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
2317
2318         PR c/12373
2319         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
2320         DECL_ORIGINAL_TYPE if there isn't one.
2321
2322 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2323
2324         * fold-const.c (fold): Replace "final_type" with "type".
2325         Remove variable "final_type".
2326
2327 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2328
2329         * fold-const.c (fold): Constify "type".
2330         Replace "TREE_TYPE (t)" with "type".
2331
2332 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2333
2334         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
2335         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
2336         via (*targetm.foo) () with targetm.foo ().
2337
2338 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
2339
2340         PR other/14630
2341         * doc/install.texi: Add info directory category and entry.
2342
2343 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2344
2345         * fold-const.c (fold): Replace "t" with "tem" where it is used
2346         as a temporary variable.  Remove "orig_t" and all of its uses.
2347
2348 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2349
2350         * fold-const.c (fold): Remove variable "invert".
2351         Move the handling of relational expressions that can be folded
2352         to a constant ...
2353         (fold_relational_const): ... here.
2354         (tree_expr_nonzero_p): New.
2355
2356 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
2357
2358         PR c/14635
2359         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
2360         DEF_GCC_BUILTIN.
2361
2362 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
2363
2364         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
2365         (GTFILES): Add $(srcdir)/dojump.h.
2366         (gt-dojump.h): New dependency.
2367         * dojump.c (and_reg, and_test, shift_test): New static variables.
2368         (prefer_and_bit_test): New function.
2369         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
2370
2371 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2372
2373         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
2374         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
2375         reorg.c, tree.h: Fix comment typos.
2376
2377 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
2378
2379         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
2380         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
2381         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
2382         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
2383         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
2384         vmsdbgout.c: Replace calls via (*targetm.foo) () with
2385         targetm.foo ().
2386
2387 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
2388
2389         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
2390         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
2391         always_inline attribute.
2392         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
2393         Treat expansion as completed even if literal argument is
2394         invalid (so that other expansions are not tried in vain).
2395
2396 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
2397
2398         * loop-doloop.c (add_test): Replace GEN_INT (0) with
2399         const0_rtx.
2400
2401 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
2402
2403         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
2404         ...
2405         (fold_abs_const): ... here.
2406
2407 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2408
2409         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
2410
2411 2004-03-19  Denis Chertykov  <denisc@overta.ru>
2412
2413         PR target/11520
2414         * config/avr/avr.md ("call_insn"): Handle explicit integer
2415         specially.
2416         (call_value_insn): Likewise.
2417
2418 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2419
2420         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
2421
2422 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
2423
2424         * fold-const.c (negate_expr): Move the handling of constants
2425         ...
2426         (fold_negate_const): ... here.
2427
2428 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2429
2430         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
2431         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
2432         * tree.c (debug_no_type_hash): Deleted.
2433         (type_hash_canon): Abort if passed a variant.
2434         Check lang_hooks.types.hash_types.
2435         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
2436         (build_array_type): Remove unnecessary allocation of pointer type.
2437         (build_complex_type): Properly qualify resulting type.
2438
2439 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
2440
2441         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
2442
2443 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
2444
2445         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
2446         (expand_mult): ...here.
2447         (extract_high_half): New, split out from expand_mult_highpart.
2448         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
2449         (expand_highpart): Evaluate the cost of a shift/add sequence,
2450         then see if any of the specialized optabs are cheaper.
2451
2452 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
2453
2454         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
2455
2456 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2457
2458         * convert.c (convert_to_real): Add more math builtins.
2459
2460 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2461
2462         * convert.c (convert_to_real): Reformat using switch stmt.
2463
2464 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
2465
2466         * c-common.c (pointer_int_sum): Do not complain about using
2467         pointers to pointers-to-members.
2468
2469 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
2470
2471         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
2472         have moved to the target hooks structure".
2473
2474 2004-03-18  James E Wilson  <wilson@specifixinc.com>
2475
2476         * config/mips/mips.md (type): Split move into arith and fmove.  Split
2477         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
2478         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
2479         Likewise.
2480         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
2481         Likewise.
2482         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
2483         rm7_fp_quick): Likewise.
2484         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
2485         rm9k_fquick): Likewise.
2486         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
2487         Likewise.
2488         (ir_sr70_icmp): Delete.
2489
2490 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2491
2492         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
2493         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
2494         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
2495         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
2496         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
2497         Protect with proper check.
2498         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
2499         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
2500         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
2501         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
2502         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
2503         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
2504         not TYPE_FIELDS.
2505         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
2506
2507 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
2508
2509         * gcse.c (eliminate_partially_redundant_loads): Reject change if
2510         dest is set between beginning and current insn.
2511
2512 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
2513
2514         * c-decl.c (grokdeclarator): Do not complain about redeclaring
2515         visible "static" identifiers "extern" in a local scope.
2516         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
2517         post-increments/decrements.
2518
2519 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
2520
2521         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
2522         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
2523         (xtensa_va_start): Remove assignment to current_function_arg_words.
2524
2525 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
2526
2527         * alias.c (record_set): Detect the case where a register is assigned
2528         a new value that has the same base term as the old one.
2529
2530 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2531
2532         * doloop.c: Removed.
2533         * loop-doloop.c: New file.
2534         * Makefile.in (doloop.o): Remove.
2535         (loop-doloop.o): New.
2536         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
2537         * cfgloopanal.c (get_loop_level): New function.
2538         * loop-iv.c (iv_number_of_iterations): Handle case when loop
2539         is leaved immediatelly.
2540         * loop.c (strength_reduce): Do not call doloop optimization.
2541         * loop.h (LOOP_BCT): Removed.
2542         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
2543         (rest_of_handle_loop2): Call doloop_optimize_loops.
2544         (rest_of_compilation): Test for optimizations moved to
2545         rest_of_handle_loop2.
2546
2547 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
2548
2549         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
2550         for mixed mode.
2551         (rs6000_emit_prologue): Ditto.
2552         (rs6000_emit_epilogue): Ditto.
2553         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
2554         macro for mixed mode.
2555
2556 2004-03-18  Jan Hubicka  <jh@suse.cz>
2557
2558         * predict.c (propagate_freq): Compute correctly frequency of
2559         EXIT_BLOCK.
2560
2561 2004-03-17  Eric Christopher  <echristo@redhat.com>
2562
2563         * builtins.c (apply_args_size): Use reg_raw_mode.
2564         (apply_result_size): Ditto.
2565
2566 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
2567
2568         PR target/14620
2569         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
2570
2571 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
2572
2573         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
2574         32-bit builds when defaulting to 32-bit.
2575
2576 2004-03-17  Jan Hubicka  <jh@suse.cz>
2577
2578         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
2579         array.
2580
2581 2004-03-17  James E Wilson  <wilson@specifixinc.com>
2582
2583         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
2584         (hazard_nop): Change type to nop.
2585         (type): Split arith into arith, shift, slt, clz.  Delete darith.
2586         Fix all uses.  Change arith to multi if more than one insn emitted.
2587         * config/mips/5400.md (ir_vr54_arith): Likewise.
2588         * config/mips/5500.md (ir_vr55_arith): Likewise.
2589         * config/mips/7000.md (rm7_int_other): Likewise.
2590         * config/mips/9000.md (rm9k_int): Likewise.
2591         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
2592
2593 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
2594
2595         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
2596         to hold the subtype tree instead of recomputing it several times.
2597
2598 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
2599
2600         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
2601         CC_INVERT.
2602         * config/mn10300/mn10300.md (cc): Remove "invert".
2603
2604 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2605
2606         * builtins.c (integer_valued_real_p): Add builtin rint.
2607         (fold_builtin): Likewise.
2608         * convert.c (convert_to_real): Likewise.
2609
2610         * convert.c (convert_to_real): Fix typos in `long double'
2611         builtins.
2612
2613 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
2614
2615         PR c++/14481
2616         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
2617         generated COMPOUND_EXPRs.
2618
2619 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
2620
2621         * config/h8300/t-rtems (h8300-*-rtems*): New.
2622
2623 2004-03-16  Eric Christopher  <echristo@redhat.com>
2624
2625         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
2626
2627 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
2628
2629         * config/i386/i386-protos.h: Add a prototype for
2630         ix86_reverse_condition.
2631         * config/i386/i386.c (ix86_reverse_condition): New.
2632         * config/i386/i386.h (REVERSE_CONDITION): Use
2633         ix86_reverse_condition.
2634         * config/i386/i386.md: Use ix86_reverse_condition instead of
2635         REVERSE_CONDITION.
2636
2637 2004-03-16  J. Brobecker  <brobecker@gnat.com>
2638
2639         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
2640
2641 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
2642
2643         PR bootstrap/12974
2644         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
2645
2646 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
2647
2648         * c-common.c (c_common_type_for_mode): Build vector types on
2649         demand.
2650         (handle_mode_attribute): Deprecate using the mode attribute
2651         to create vector types.  Fix indentation.
2652         (vector_type_node_list): Remove.
2653         (handle_vector_size_attribute): Create vector types on demand.
2654         Strip a NON_LVALUE_EXPR from the attribute if there is one.
2655         * c-typeck.c (comptypes): Make vector types compatible if they
2656         have the same underlying mode.
2657         (convert_for_assignment): Use comptypes to convert between
2658         vector types.
2659         * tree.c (build_common_tree_nodes_2): Do not create vector types.
2660         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
2661         vector types.
2662         * tree.h: Remove vector types.
2663         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
2664         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
2665         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
2666         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
2667         * doc/extend.texi (Vector Types): Document how to use the
2668         vector_size attribute to create vectors, rather than mode.
2669
2670         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
2671         * config/i386/emmintrin.h: Likewise.
2672         * config/i386/mmintrin.h: Likewise.
2673         * config/i386/xmmintrin.h: Likewise.
2674         * config/sh/ushmedia.h: Likewise.
2675
2676 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
2677
2678         * config/freebsd-spec.h, config/arc/arc-protos.h,
2679         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
2680         config/arm/linux-gas.h, config/arm/semi.h,
2681         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
2682         config/ia64/freebsd.h, config/mips/7000.md,
2683         config/mips/9000.md, config/ns32k/ns32k-protos.h,
2684         config/sparc/pbd.h: Update copyright.
2685
2686 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
2687
2688         PR target/14577
2689         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
2690
2691 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
2692
2693         * combine.c (combine_simplify_rtx): Remove the "last"
2694         parameter and its documentation.  Adjust recursive calls.
2695         (simplify_logical): Always perform the only simplification
2696         controlled by "last", if the simplified expression is
2697         actually different.
2698         (try_combine): Do not pass the "last" parameter to
2699         combine_simplify_rtx.
2700
2701 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
2702
2703         PR target/14599
2704         * config/mips/mips.md (UNSPEC_GP): New constant.
2705         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
2706         an UNSPEC instead of (reg $gp).
2707         (mips16_gp_pseudo_reg): Change accordingly.
2708         (print_operand): Print $gp directly when handling CONST_GP_P.
2709
2710 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
2711
2712         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
2713         * longlong.h: Make code 68060 clean when compiling for m68060.
2714
2715 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
2716
2717         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
2718         * doc/md.texi: Clarify description of "i" constraint.
2719
2720 2004-03-15  James E Wilson  <wilson@specifixinc.com>
2721
2722         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
2723         Split store into store, fpstore, fpidxstore.  Fix all uses.
2724         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
2725         Likewise.
2726         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
2727         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
2728         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
2729         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
2730         ir_sr70_fstore): Likewise.
2731
2732 2004-03-15  Richard Henderson  <rth@redhat.com>
2733
2734         PR middle-end/14535
2735         * except.c (collect_one_action_chain): Record action for cleanup
2736         outer of exception spec.
2737
2738 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
2739
2740         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
2741         Fix the check for abort and only do the mmap if we can.
2742
2743 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
2744
2745         * config/sparc/sparc.h: Rework comments about the code model
2746         in 64-bit environment and the mode 'Pmode'.
2747         * doc/invoke.texi (SPARC options): Rework description of the
2748         different code models supported in 64-bit environment.
2749
2750 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
2751
2752         * defaults.h (REVERSIBLE_CC_MODE): Define.
2753         * jump.c (reversed_comparison_code_parts): Don't check if
2754         REVERSIBLE_CC_MODE is defined.
2755
2756 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
2757
2758         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
2759         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
2760         hosthooks.h, params.h, ra-colorize.c, web.c,
2761         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
2762         config/avr/avr-protos.h, config/avr/avr.md,
2763         config/fr30/fr30-protos.h, config/fr30/fr30.md,
2764         config/h8300/fixunssfsi.c, config/i386/darwin.h,
2765         config/i386/freebsd.h, config/i386/freebsd64.h,
2766         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
2767         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
2768         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
2769         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
2770         config/pa/pa64-regs.h, config/rs6000/aix41.h,
2771         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
2772         config/sparc/aout.h, config/sparc/freebsd.h,
2773         config/sparc/litecoff.h, config/vax/vax-protos.h,
2774         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
2775         copyright.
2776
2777 2004-03-15  Paul Brook  <paul@codesourcery.com>
2778
2779         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
2780
2781 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2782
2783         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
2784         (pp_c_cv_qualifier): Document.
2785         (pp_c_space_for_pointer_operator): Likewise.
2786         (pp_c_integer_constant): Likewise.
2787         (pp_c_identifier): Likewise.
2788         (pp_c_init_declarator): Don't print function body.
2789
2790 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
2791
2792         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
2793         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
2794         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
2795         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
2796         wording and grammar.
2797
2798 2004-03-14  Roger Sayle  <roger@eyesopen.com>
2799
2800         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
2801         with lang_hooks.foo ().
2802         * builtins.c (expand_builtin_va_arg): Likewise.
2803         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
2804         c_common_type_for_mode, c_common_nodes_and_builtins,
2805         handle_mode_attribute, handle_vector_size_attribute): Likewise.
2806         * c-convert.c (convert): Likewise.
2807         * c-format.c (check_format_types): Likewise.
2808         * c-objc-common.c (c_tree_printer): Likewise.
2809         * c-typeck.c (build_unary_op, build_conditional_expr,
2810         build_binary_op): Likewise.
2811         * calls.c (try_to_integrate, expand_call,
2812         emit_library_call_value_1): Likewise.
2813         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
2814         Likewise.
2815         * cgraphunit.c (record_call_1, cgraph_analyze_function,
2816         cgraph_expand_function): Likewise.
2817         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
2818         * coverage.c (build_fn_info_type, build_ctr_info_type,
2819         build_gcov_info, create_coverage): Likewise.
2820         * dbxout.c (dbxout_init): Likewise.
2821         * diagnostic.c (diagnostic_report_current_function): Likewise.
2822         * dojump.c (do_jump): Likewise.
2823         * dwarf2out.c (dwarf2_name): Likewise.
2824         * except.c (init_eh): Likewise.
2825         * explow.c (expr_size, int_expr_size): Likewise.
2826         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
2827         Likewise.
2828         * expr.c (store_expr, store_constructor, safe_from_p,
2829         expand_expr_real, do_store_flag, try_casesi): Likewise.
2830         * function.c (push_function_context_to, pop_function_context_from,
2831         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
2832         put_var_into_stack, allocate_struct_function, current_function_name):
2833         Likewise.
2834         * integrate.c (copy_decl_for_inlining, expand_inline_function):
2835         Likewise.
2836         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
2837         lhd_print_error_function): Likewise.
2838         * opts.c (handle_option, decode_options): Likewise.
2839         * passes.c (open_dump_file): Likewise.
2840         * print-tree.c (print_node): Likewise.
2841         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
2842         expand_decl_cleanup, emit_case_nodes): Likewise.
2843         * stor-layout.c (variable_size): Likewise.
2844         * toplev.c (announce_function, wrapup_global_declarations,
2845         check_global_declarations, compile_file, default_tree_printer,
2846         process_options, lang_dependent_init, finalize): Likewise.
2847         * tree-dump.c (dequeue_and_dump): Likewise.
2848         * tree-inline.c (remap_decl, remap_block, copy_body_r,
2849         initialize_inlined_parameters, declare_return_variable,
2850         inlinable_function_p, expand_call_inline, optimize_inline_calls,
2851         walk_tree, copy_tree_r): Likewise.
2852         * tree-optimize.c (tree_rest_of_compilation): Likewise.
2853         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
2854         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
2855         variably_modified_type_p, dump_tree_statistics): Likewise.
2856         * varasm.c (assemble_variable, compare_constant, copy_constant,
2857         force_const_mem, compute_reloc_for_constant, output_constant,
2858         output_addressed_constants, initializer_constant_valid_p): Likewise.
2859
2860 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
2861
2862         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
2863
2864 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
2865
2866         * doc/install.texi: Reflect autoconf and automake version for
2867         libffi. Update autoconf version to 2.59.
2868
2869 2004-03-13  Roger Sayle  <roger@eyesopen.com>
2870
2871         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
2872         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
2873         make_range, build_range_check, fold_range_test, unextend,
2874         constant_boolean_node, fold_binary_op_with_conditional_arg,
2875         fold_truthop, fold_mathfn_compare, fold_inf_compare,
2876         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
2877         with lang_hooks.foo ().
2878
2879 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
2880
2881         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
2882
2883 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
2884
2885         * doc/install.texi: Note status of -fnew-ra.
2886
2887 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
2888
2889         PR middle-end/14470
2890         * expr.c (store_expr): Call emit_queue before generating the move
2891         from the temporary to the original target.  Protect the temporary
2892         from emit_queue.
2893
2894 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
2895
2896         PR target/14533
2897         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
2898         other than UNSPEC_GOTOFF.
2899
2900 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
2901
2902         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
2903         to arm_legitimate_index_p.  Update all callers with SET as default
2904         value.
2905         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
2906         range if OUTER is a sign-extend operation on QImode.  Correctly
2907         reject shift operations on sign-extended QImode addresses.
2908         (bad_signed_byte_operand): Delete.
2909         (arm_extendqisi_mem_op): New function.
2910         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
2911         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
2912         constraints.
2913         (CONSTRAINT_LEN): New.
2914         (EXTRA_CONSTRAINT): Delete.  Replace with...
2915         (EXTRA_CONSTRAINT_STR): ... this.
2916         (PREDICATE_CODES): Remove bad_signed_byte_operand.
2917         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
2918         is now always default.
2919         (define_splits for bad sign-extend loads): Delete.
2920         (arm_extendqisi, arm_extendqisi_v5): Likewise.
2921         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
2922         Rework 'U' constraint to 'Uv'.
2923         * arm-protos.h: Remove bad_signed_byte_operand.  Add
2924         arm_extendqisi_mem_op.
2925         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
2926         Add Uq constraint.
2927
2928 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
2929
2930         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
2931         with targetm version.
2932
2933         PR target/14567
2934         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
2935         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
2936         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
2937         Update all users of RS6000_ARG_SIZE.
2938         (function_arg_advance): Count fregno using mode size.
2939         (function_arg): Handle long double split over regs and memory.
2940         (function_arg_partial_nregs): Likewise.
2941         (rs6000_va_arg): Repackage complex args.
2942
2943 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
2944
2945         PR target/14047
2946         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
2947         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
2948         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
2949
2950 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
2951
2952         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
2953         prototype.
2954         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
2955         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
2956
2957 2003-03-12  Andrew Pinski  <apinski@apple.com>
2958
2959         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
2960         Use ret instead of result. Use addr instead of base.
2961
2962 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
2963
2964         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
2965         fixes required by libstdc++ and update installation instructions
2966         for libstdc++.a.
2967
2968 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
2969
2970         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
2971         leading '@' on fastcall symbols before stripping suffix.
2972
2973 2004-03-12  Roger Sayle  <roger@eyesopen.com>
2974
2975         * combine.c (unmentioned_reg_p): New function to check whether an
2976         expression is a "specialization" of another, i.e. that there are
2977         no registers or memory references mentioned in the first that don't
2978         appear in the second.
2979         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
2980         (combine_instructions): Also try combining instructions using the
2981         REG_EQUAL note from a preceding log-linked instruction.
2982
2983 2004-03-12  Roger Sayle  <roger@eyesopen.com>
2984
2985         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
2986
2987 2004-03-12  Matt Austern  <austern@apple.com>
2988
2989         * target.h (struct gcc_target): New target hook, unwind_label.
2990         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
2991         * output.h (default_emit_unwind_label): New function.
2992         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
2993         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
2994         (TARGET_SUPPORTS_HIDDEN): New target macro.
2995         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
2996         that corresponds to this FDE.
2997         (FRAME_BEGIN_LABEL): Allow target to override default label.
2998         (output_call_frame_info): If FDEs are linknonce, then use extra
2999         indirection for FDE encoding, output a label for each FDE, and
3000         output an empty label for each function without an FDE.
3001         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
3002         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
3003         decls with DECL_ONE_ONLY set, if that macro is defined.
3004         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
3005         for a SUPPORTS_ONE_ONLY target.
3006         * config/darwin-protos.h (darwin_unique_section): Declare.
3007         (darwin_asm_named_section): Likewise.
3008         (darwin_section_type_flags): Likewise.
3009         (darwin_non_lazy_pcrel): Likewise.
3010         (darwin_emit_unwind_label): Likewise.
3011         (darwin_make_decl_one_only): Likewise.
3012         * config/darwin.c (machopic_finish): Get rid of tweak that
3013         eliminate stubs for symbols that are defined.
3014         (darwin_encode_section_info): Don't treat weak functions as defined.
3015         (darwin_make_decl_one_only): Define.
3016         (darwin_asm_named_section): Likewise.
3017         (darwin_section_type_flags): Likewise.
3018         (darwin_unique_section): Likewise.
3019         (darwin_emit_unwind_label): Likewise.
3020         (darwin_non_lazy_pcrel): Likewise.
3021         (darwin_asm_output_dwarf_delta): Difference between two labels is
3022         local only if both labels are local.
3023         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
3024         (ASM_MAKE_LABEL_LINKONCE): Likewise.
3025         (TARGET_SUPPORTS_HIDDEN): Likewise.
3026         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
3027         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
3028         (FRAME_BEGIN_LABEL): Likewise.
3029         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
3030         (ASM_DECLARE_FUNCTION_NAME): Likewise.
3031         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
3032         (TARGET_ASM_UNIQUE_SECTION): Define.
3033         (EH_FRAME_SECTION_NAME): Define.
3034         (EH_FRAME_SECTION_ATTR): Likewise.
3035         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
3036         (TARGET_ASM_NAMED_SECTION): Likewise.
3037         (TARGET_SECTION_TYPE_FLAGS): Likewise.
3038         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
3039         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
3040         TARGET_ASM_EMIT_UNWIND_LABEL.
3041
3042 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3043
3044         * builtins.c (expand_builtin_mathfn): Add pow10* to the
3045         existing exp10* case.
3046         (expand_builtin): Likewise.
3047
3048 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
3049
3050         * doc/tm.texi (registers) <Values in Registers>: Add
3051         entry for REGMODE_NATURAL_SIZE.
3052
3053 2004-03-12  Richard Henderson  <rth@redhat.com>
3054
3055         PR target/14547
3056         * target.h (struct gcc_target): Move calls substructure before
3057         booleans.  Add split_complex_arg.
3058         * function.c (assign_parms, split_complex_args): Use it.
3059         * calls.c (expand_call): Likewise.
3060         (split_complex_values): Likewise.  Check for splittable types
3061         before allocating memory.
3062         (split_complex_types): Likewise.
3063         * system.h (SPLIT_COMPLEX_ARGS): Poison.
3064         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
3065         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
3066         * config/alpha/alpha.c (alpha_split_complex_arg): New.
3067         (TARGET_SPLIT_COMPLEX_ARG): New.
3068         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
3069         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
3070         (rs6000_override_options): Zap it for non-AIX.
3071         (rs6000_function_value): Use targetm.calls.split_complex_arg.
3072         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
3073         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
3074         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
3075         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
3076         SPLIT_COMPLEX_ARGS entry.
3077
3078 2004-03-11  Richard Henderson  <rth@redhat.com>
3079
3080         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
3081         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
3082         (alpha_emit_xfloating_arith): Update to match.
3083         (alpha_emit_xfloating_compare): Likewise.
3084         (alpha_emit_xfloating_cvt): Likewise.
3085         (alpha_emit_xfloating_libcall): Take already built symbol,
3086         mark call const.
3087         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
3088         op1 in a register.
3089
3090 2004-03-11  Richard Henderson  <rth@redhat.com>
3091
3092         PR target/14539
3093         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
3094
3095         * simplify-rtx.c (simplify_relational_operation): Fix typo.
3096
3097 2004-03-11  Richard Henderson  <rth@redhat.com>
3098
3099         PR middle-end/14477
3100         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
3101
3102 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
3103
3104         PR target/14262
3105         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
3106         defined, pass small BLKmode values in registers in the low-order part.
3107
3108 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
3109
3110         * combine.c (if_then_else_cond): Check for NULL return value of
3111         simplify_gen_subreg.
3112
3113 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
3114
3115         PR target/14496
3116         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
3117         TARGET_SINGLE_FLOAT.
3118
3119 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
3120
3121         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
3122         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
3123         * config/ia64/ia64.c (ia64_init_libfuncs): New.
3124         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
3125
3126 2004-03-11  Roger Sayle  <roger@eyesopen.com>
3127
3128         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
3129         -((int)X>>C) where C is an integer constant one bit less than the
3130         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
3131         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
3132
3133         * simplify-rtx.c (simplify_unary_operation): Also implement the
3134         above transformations at the RTL level.
3135
3136 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
3137
3138         * real.c (encode_ibm_extended): Do round low word.
3139
3140 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
3141
3142         * config/arm/arm.md (is_xscale): Comment this attribute and move
3143         it a bit further up in the file, closer to related attributes.
3144
3145 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
3146
3147         * config/host-solaris.c (sol_gt_pch_use_address): Add
3148         missing terminating marker to comment.
3149
3150 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
3151
3152         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
3153         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
3154         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
3155         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
3156         move_operand as source predicate in all cases.
3157         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
3158         Test reg_or_0_operand.  Use move_operand as source predicate.
3159         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
3160         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
3161         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
3162         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
3163         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
3164         Use move_operand as source predicate.  Remove 'K' constraint.
3165         (*movqi_internal): Likewise movqi_internal.
3166         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
3167         reg_or_0_operand.  Use move_operand as source predicate.
3168         (*movsf_softfloat): Likewise movsf_internal2.
3169         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
3170         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
3171         (*movdf_softfloat): Likewise movdf_internal2.
3172         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
3173         for DImode if !TARGET_64BIT.
3174         (mips_legitimize_move): Simplify accordingly.
3175
3176 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
3177
3178         PR/14362
3179         * var-tracking.c (struct variable_def): Added field refcount.
3180         (variable_htab_free): Decrease the refcount and delete variable
3181         only if there are no more references.
3182         (unshare_variable): New function.
3183         (vars_copy_1): Increase refcount instead of copying the variable.
3184         (variable_union): Share the variables where possible, unshare
3185         the variables if needed.
3186         (variable_different_p): Return false if var1 and var2 are
3187         the same structure.
3188         (variable_was_changed): Init the refcount of new variable.
3189         (set_frame_base_location): Unshare variable if needed.
3190         (set_variable_part): Init the refcount of new variable.
3191         Unshare the variables if needed.
3192         (delete_variable_part): Unshare the variables if needed.
3193         (emit_notes_for_differences_1): Init the refcount of new variable.
3194         (vt_add_function_parameters): Do not add function parameters to
3195         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
3196         (vt_initialize): Do not add frame_base_decl to IN set of
3197         ENTRY_BLOCK_PTR because it is unused anyway.
3198
3199 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
3200
3201         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
3202         (vars_copy): Likewise.
3203         (variable_union): Likewise.
3204         (set_variable_part): Likewise.
3205         (delete_variable_part): Likewise.
3206
3207 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
3208
3209         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
3210         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
3211         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
3212         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
3213         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
3214         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
3215         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
3216         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
3217         config/stormy16/stormy16.c: Fix comment typos and formatting.
3218
3219 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
3220
3221         * configure: Regenerate, since I forgot to while committing Paolo's
3222         changes.
3223
3224 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
3225
3226         PR ada/14131
3227         Move language detection to the top level.
3228         * configure.ac: Remove code to detect languages,
3229         it now lives exclusively in the top level.
3230         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
3231         top level, renamed to ACX_PROG_GNAT.
3232
3233 2004-03-10  Richard Henderson  <rth@redhat.com>
3234
3235         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
3236         extra arguments.
3237         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
3238         and host_xmake_file fragments.
3239         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
3240         (gt_pch_restore): Similarly for gt_pch_use_address.
3241         (default_gt_pch_get_address): New.
3242         (mmap_gt_pch_get_address): Split out of gt_pch_save.
3243         (default_gt_pch_use_address): Split out of gt_pch_restore.
3244         (mmap_gt_pch_use_address): Likewise.
3245         * hooks.c (hook_voidp_size_t_null): Remove.
3246         (hook_bool_voidp_size_t_false): Remove.
3247         * hooks.h: Likewise.
3248         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
3249         default_ or mmap_ definitions.
3250         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
3251         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
3252         and gt_pch_use_address.
3253         * config/host-linux.c, config/host-solaris.c: New files.
3254         * config/x-linux, config/x-solaris: New files.
3255         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
3256         Update for changed definition.
3257         (darwin_rs6000_gt_pch_use_address): Likewise.
3258         * doc/hostconfig.texi: Update docs.
3259
3260 2004-03-10  Richard Henderson  <rth@redhat.com>
3261
3262         PR c/14517
3263         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
3264         except for pedantic c90 mode.
3265
3266 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
3267
3268         * configure.ac: Bump AC_PREREQ to 2.59.
3269         * configure: Regenerate.
3270
3271 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
3272
3273         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
3274         (exp10_optab, exp2_optab): Define corresponding macros.
3275         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
3276         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
3277         using exp10?f2 and exp2?f2 patterns.
3278         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
3279         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
3280         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
3281         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
3282
3283         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
3284         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
3285         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
3286
3287 2004-03-10  Anthony Green  <green@redhat.com>
3288
3289         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
3290
3291 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
3292
3293         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
3294         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
3295         __LONGDOUBLE128.
3296         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
3297         TARGET_OS_AIX_CPP_BUILTINS.
3298         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
3299         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
3300         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
3301         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
3302         previous change.
3303
3304 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3305
3306         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
3307
3308 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
3309
3310         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
3311         __LONGDOUBLE128 on AIX.
3312
3313 2004-03-10  Andrew Haley  <aph@redhat.com>
3314
3315         PR optimization/14381
3316         * function.c (expand_function_end): Emit a blockage insn before
3317         the epilogue when -fnon-call-exceptions is used.
3318
3319         * except.c (expand_start_all_catch): Make comment more accurate.
3320
3321 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
3322
3323         PR target/14480
3324         * config/rs6000/t-rtems: Add missing file on branch.
3325
3326 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
3327
3328         * dbxout.c (dbxout_symbol_location): Do not output references
3329         to optimized-out constant pool symbols.
3330
3331 2004-03-10  Andreas Schwab  <schwab@suse.de>
3332
3333         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
3334         twon34_r.
3335
3336 2004-03-09  James E Wilson  <wilson@specifixinc.com>
3337
3338         * alias.c (alias_sets_might_conflict_p): New.
3339         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
3340         * common.opt (Wstrict-aliasing=): New.
3341         * flags.h (warn_strict_aliasing): Change type to int.
3342         * opts.c (warn_strict_aliasing): Change type to int.
3343         (common_handle_option): Handle OPT_Wstrict_aliasing_.
3344         * tree.h (alias_sets_might_conflict_p): Declare it.
3345         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
3346
3347 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
3348
3349         PR bootstrap/12371
3350         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
3351         (CALL_USED_REGISTERS): Likewise.
3352         (REG_CLASS_CONTENTS): Likewise.
3353         (REG_ALLOC_ORDER): New.
3354         (REGNO_REG_CLASS): Use regno_reg_class.
3355         * config/m68k/m68k.c: Add regno_reg_class array.
3356
3357 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
3358
3359         * config/ia64/ia64.md (divsi3): Fix algorithm.
3360           (udivsi3): Ditto.
3361           (setf_exp_xf): Remove '*' from name.
3362         * testsuite/gcc.dg/20040309-1.c: New test.
3363
3364 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
3365
3366         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
3367         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
3368         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
3369         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
3370         (sparc_aout_select_rtx_section): Don't check
3371         SUNOS4_SHARED_LIBRARIES.
3372         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
3373
3374 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
3375
3376         PR other/14474
3377         * doc/md.texi (Pattern Ordering, Dependent Patterns)
3378         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
3379         INTERNALS".
3380
3381 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
3382
3383         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
3384         (LIBGCC_SPEC): Update to match.
3385
3386 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
3387
3388         * c-decl.c (last_function_parms, last_function_parm_tags)
3389         (last_function_parm_others, current_function_parms)
3390         (current_function_parm_tags, current_function_parm_others):
3391         Delete.
3392         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
3393         New macros.
3394         (grokdeclarator): For function definitions, save the arg-info
3395         block from the declarator in DECL_ARGUMENTS.
3396         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
3397         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
3398         contains only PARM_DECLs.  Improve diagnostics.
3399         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
3400         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
3401         (store_parm_decls_newstyle): Take the function to operate on,
3402         and an arg-info block, as arguments; don't get anything from
3403         current_function_* globals.
3404         (store_parm_decls_oldstyle): Likewise.
3405         (store_parm_decls): Pass fndecl and its arg-info block down to
3406         store_parm_decls_newstyle/oldstyle.  Send functions with empty
3407         argument lists through store_parm_decls_newstyle to reduce
3408         overhead.
3409         (pushdecl): Comment on the problems with the call to copy_node.
3410         Clear DECL_ARGUMENTS of the old node after copying it, if it
3411         is an arg-info block instead of a chain of decls.
3412         (start_function): Do not manipulate current_function_parm* or
3413         last_function_parm*.
3414
3415 2004-03-09  Roger Sayle  <roger@eyesopen.com>
3416             Andrew Pinski  <pinskia@physics.uc.edu>
3417
3418         * ifcvt.c (noce_try_sign_mask): New function to transform
3419         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
3420         (noce_process_if_block): Call noce_try_sign_mask.
3421
3422 2004-03-09  Andrew Pinski  <apinski@apple.com>
3423
3424         * c-typeck.c (tagged_types_tu_compatible_p):
3425         Fix typo.
3426
3427 2004-03-09  Roger Sayle  <roger@eyesopen.com>
3428
3429         * simplify-rtx.c (simplify_const_relational_operation): New function
3430         renamed from simplify_relational_operation.
3431         (simplify_relational_operation): Change prototype to accept an
3432         additional mode argument.  Call simplify_const_relational_operation.
3433         (simplify_gen_relational): Update simplify_relational_operation call.
3434         (simplify_ternary_operation): Update simplify_relational_operation
3435         subroutine call to use simplify_const_relational_operation instead.
3436
3437         * rtl.h (simplify_const_relational_operation): Prototype here.
3438         (simplify_relational_operation): Add addtional mode argument.
3439
3440         * combine.c (combine_simplify_rtx): Update calls to
3441         simplify_relational_operation.
3442         (simplify_set): Likewise.
3443         (gen_binary): Likewise.
3444         * cse.c (fold_rtx): Likewise.
3445         * dojump.c (compare_from_rtx): Likewise.
3446         (do_compare_rtx_and_jump): Likewise.
3447         * integrate.c (subst_constants): Likewise.
3448         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
3449
3450 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
3451
3452         * config/m32r/m32r.md: Remove all define_peephole's.
3453
3454 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
3455
3456         * config/rs6000/rs6000.md: Remove trailing whitespace.
3457
3458 2004-03-08  Eric Christopher  <echristo@redhat.com>
3459
3460         * Makefile.in (site.exp): Add libiconv variable definition.
3461
3462 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
3463
3464         * configure: Regenerate for config/accross.m4 correction.
3465
3466 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
3467
3468         PR target/14480
3469         * config/rs6000/t-rtems: Add missing file on branch.
3470
3471 2004-03-08  Roger Sayle  <roger@eyesopen.com>
3472
3473         PR middle-end/14289
3474         * c-typeck.c (c_mark_addressable): A register variable should
3475         be considered global if its not automatic, i.e. TREE_PUBLIC,
3476         TREE_STATIC or DECL_EXTERNAL.
3477         * function.c (put_var_into_stack): Call abort when placing a
3478         hard register into the stack, if x_parm_reg_stack_loc is NULL.
3479
3480 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
3481
3482         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
3483         ("*extendqisi2_short_displ"): Likewise.
3484
3485 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
3486
3487         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
3488         (comp_operator): Likewise.
3489         * config/pdp11/pdp11-protos.h: Remove corresponding
3490         prototypes.
3491
3492 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
3493
3494         * expr.c (highest_pow2_factor_for_type): Rename into
3495         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
3496         TYPE_ALIGN when the target is a COMPONENT_REF.
3497         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
3498
3499 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
3500
3501         * config/rs6000/rs6000.c: Formatting fix.
3502         (legitimate_offset_address_p): Correct offset range check.
3503
3504         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
3505         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
3506         and MASK_STRING.
3507
3508 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
3509
3510         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
3511         for little endian.
3512         ("ashrdi3_no_power"): Disable for little endian.
3513         (ashrdi3): Same.
3514
3515 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3516
3517         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
3518         builtins.
3519
3520 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
3521
3522         PR target/14471
3523         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
3524         case, checking for -no-mul-bug-abort option.
3525         * configure, config.in: Regenerate.
3526         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
3527         and -mno-mul-bug-workaround.
3528         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
3529         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
3530         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
3531         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
3532         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
3533         sure mulu.d is not last on cache-line.
3534         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
3535         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
3536         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
3537         (TARGET_SWITCHES): New options -mmul-bug-workaround and
3538         -mno-mul-bug-workaround.
3539         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
3540         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
3541         * config/cris/cris.c (cris_operand_extend_operator): Clarify
3542         relation to MULT in head comment.
3543         (cris_op_str): Abort for MULT.
3544         (cris_print_operand) <case '!'>: New case.
3545
3546 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
3547
3548         PR debug/11983
3549         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
3550         dw_val_class_vec.  Replace use throughout file.
3551         (dw_float_const): Delete.
3552         (dw_vec_const): New.
3553         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
3554         throughout file.
3555         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
3556         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
3557         (size_of_die): Adjust dw_val_class_vec sizing.
3558         (output_die): Output dw_val_class_vec.
3559         (insert_int, extract_int, insert_float): New functions.
3560         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
3561         Handle CONST_VECTOR.
3562         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
3563
3564 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
3565
3566         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
3567         AltiVec abi cannot co-exist.
3568
3569         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
3570
3571 2004-03-07  Jan Hubicka  <jh@suse.cz>
3572
3573         * except.c (emit_to_new_bb_before):  Break fallthru edges.
3574
3575 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
3576
3577         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
3578         ("*lshrsi3"): Also accept an immediate for 68HC12.
3579         ("*ashrsi3_const"): Likewise.
3580         ("*ashrsi3"): Likewise.
3581         ("*ashlsi3_const"): Likewise.
3582         ("*ashlsi3"): Likewise.
3583         ("cmphi_1_hc12"): Compare two hard register by pushing them and
3584         comparing with a pop; don't use a split for that.
3585         ("cmphi split"): Disable compare split for 68HC12.
3586
3587         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
3588         the status operands if they have side effects.
3589
3590 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
3591
3592         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
3593         definition.
3594         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
3595         config/h8300/h8300.h, config/ia64/ia64.h,
3596         config/mcore/mcore.h, config/mmix/mmix.h,
3597         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
3598         config/stormy16/stormy16.h, config/v850/v850.h,
3599         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
3600         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
3601         definition.
3602
3603 2004-03-07  Roger Sayle  <roger@eyesopen.com>
3604
3605         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
3606         <XOR_EXPR>: Fold x ^ x as zero.
3607         <AND_EXPR>: Fold x & x as x.
3608
3609 2004-03-07  Roger Sayle  <roger@eyesopen.com>
3610
3611         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
3612         "foo++ == const" into "++foo == const+incr".
3613
3614 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
3615
3616         * config/mips/mips.c (mips_in_small_data_p): Return false if
3617         TARGET_ABICALLS.
3618
3619 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
3620
3621         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
3622         the stack register.
3623         (expand_prologue): Don't make an interrupt or a trap handler a far
3624         symbol.
3625         (m68hc11_initial_elimination_offset): Likewise.
3626
3627 2004-03-06  Richard Henderson  <rth@redhat.com>
3628
3629         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
3630
3631 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
3632
3633         * config/ns32k/ns32k-protos.h: Add a prototype for
3634         ns32k_notice_update_cc.
3635         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
3636         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
3637         ns32k_notice_update_cc.
3638
3639 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
3640
3641         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
3642         "*load_multiple_si"): Allow only if reload_completed.
3643         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
3644         Likewise.
3645
3646 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
3647
3648         * config/vax/vax-protos.h: Add a prototype for
3649         vax_notice_update_cc.
3650         * config/vax/vax.c (vax_notice_update_cc): New.
3651         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
3652         vax_notice_update_cc.
3653
3654 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
3655
3656         * collect2.c (main): Only export initfunc and finifunc if
3657         LD_INIT_SWITCH not defined.
3658         (scan_prog_file): Only export constructors and destructors if
3659         LD_INIT_SWITCH not defined.  Only export symbols not found in
3660         shared objects.
3661
3662 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3663
3664         * pa.md (icacheflush): Reorder operands to make match_scratch operand
3665         last.
3666         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
3667         from calls to gen_icacheflush.
3668
3669 2004-03-06  Richard Henderson  <rth@redhat.com>
3670
3671         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
3672         (TARGET_LONG_DOUBLE_128): New.
3673         (TARGET_SWITCHES): Add long-double-{128,64}.
3674         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
3675         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
3676         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
3677         (WIDEST_HARDWARE_FP_SIZE): New.
3678         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
3679         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
3680         if TARGET_VAX_FLOAT.
3681         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
3682         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
3683
3684 2004-03-06  Richard Henderson  <rth@redhat.com>
3685
3686         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
3687         botched rtx class conversion.
3688
3689 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3690
3691         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
3692         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
3693
3694         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
3695         macros.
3696         * fold-const.c (fold_mathfn_compare, fold): Likewise.
3697
3698 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
3699
3700         PR target/14343
3701         * config/i386/i386.md (movv2di_internal): Conditionalize on
3702         TARGET_SSE, not TARGET_SSE2.
3703
3704 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
3705
3706         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
3707         duplicated line.
3708
3709 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3710
3711         * builtins.c: Consistently use logN not log* in comments.
3712
3713 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
3714
3715         * rtl.h (mem_expr_equal_p): Function prototype added.
3716         * cfgcleanup.c (merge_memattrs): New function.
3717         (flow_find_cross_jump): Call merge_memattrs for matching insns.
3718         * emit-rtl.c (mem_expr_equal_p): New function.
3719
3720 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
3721
3722         * objc/objc-act.c (synth_module_prologue): Const-qualify
3723         objc_selector type if using the GNU runtime; fix generated
3724         signatures for objc_msg_lookup and objc_msg_lookup_super
3725         to match what GNU ObjC headers provide; reformat and clean up.
3726         (synth_self_and_ucmd_args): Use previously constructed (and
3727         hence possibly const-qualified) objc_selector type.
3728
3729 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
3730
3731         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
3732
3733 2004-03-05  Jason Merrill  <jason@redhat.com>
3734
3735         * tree.h (TYPE_HASH): Use TYPE_UID.
3736         (TREE_HASH): New macro with old definition of TYPE_HASH.
3737         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
3738         (build_array_type, build_function_type): Likewise.
3739         (build_method_type_directly): Likewise.
3740         (build_offset_type, build_complex_type): Likewise.
3741         (type_hash_list, attribute_hash_list): Likewise. Now static.
3742         * except.c: s/TYPE_HASH/TREE_HASH/.
3743
3744 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
3745
3746         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
3747         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
3748         __va_ndx by 2 words when referencing an argument on the stack.
3749         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
3750         words when an arg on the stack is first seen.
3751
3752 2004-03-05  Paul Brook  <paul@codesourcery.com>
3753
3754         * arm.h (ARM_FLAG_VFP): Remove.
3755         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
3756         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
3757
3758 2004-03-05  Paul Brook  <paul@codesourcery.com>
3759
3760         * function.c (assign_parms): Include pretend alignment offset.
3761
3762 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3763
3764         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
3765         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
3766
3767 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
3768
3769         * configure.ac: When passing --enable-languages to subdir
3770         configure when host != build, make sure we don't pass an empty
3771         value.
3772         * configure: Regenerate.
3773
3774 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
3775
3776         PR 13577
3777         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
3778         options.
3779
3780 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
3781
3782         * simplify-rtx.c (simplify_relational_operation): If
3783         flag_wrapv is set, do not move terms between the two
3784         side of a relational operator.
3785
3786 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
3787
3788         * rtlanal.c: Include target.h and output.h
3789         (rtx_cost, address_cost, default_address_cost): Move from...
3790         * cse.c (rtx_cost, address_cost, default_address_cost):
3791         ... this file.
3792         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
3793         * Makefile.in: Adjust dependencies.
3794
3795 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
3796
3797         * cse.c (cse_end_of_basic_block): Make static.
3798         * local-alloc.c (function_invariant_p): Move to
3799         reload1.c.
3800         * loop.c (libcall_other_reg, record_excess_regs):
3801         Make static.
3802         * reload1.c (function_invariant_p): Moved here
3803         from local-alloc.c, made static.
3804         * rtl.h (cse_end_of_basic_block, function_invariant_p,
3805         libcall_other_reg, record_excess_regs): Remove
3806         declarations.
3807
3808 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
3809
3810         * config/m32r/m32r.c (signed_comparison_operator): Add a
3811         missing parenthesis.
3812
3813 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
3814
3815         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
3816         going to call mmap again.  Read the file into the right place.
3817         Give a fatal error if we have to relocate.
3818
3819 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
3820
3821         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
3822         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
3823
3824 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
3825
3826         PR other/14354
3827         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
3828         round the same.  When rounding, clear bits that would cause a
3829         second rounding in pack_d.
3830         (_fpmul_parts): Ditto.  Remove #if 0:d code.
3831
3832 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
3833
3834         PR c++/14425, c++/14426
3835         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
3836         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
3837         Change C++ definitions to accept a 'const int' argument;
3838         the prototypes already do.
3839         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
3840         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
3841         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
3842         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
3843         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
3844         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
3845         end in ..._int; change them to accept an int instead of a char
3846         as the last parameter.
3847
3848 2004-03-04  Phil Edwards  <phil@codesourcery.com>
3849
3850         * genmultilib:  Change '=' to '-' when translating option names
3851         to directory names.
3852
3853 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3854
3855         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
3856         stack slot for temp used for result of BLKmode but in integral mode.
3857
3858 2004-03-04  Jan Hubicka  <jh@suse.cz>
3859
3860         * reload.c (find_reloads): Reorganize if seqeunce to switch.
3861
3862         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
3863         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
3864
3865 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
3866
3867         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
3868         * testsuite/gcc.dg/20040303-1.c: New test.
3869
3870 2004-03-04  Steven Bosscher  <stevenb@suse.de>
3871
3872         * ppro.md: Rewrite as a DFA pipeline description.
3873         * i386.md: Remove all uses of the ppro_uops attribute.
3874         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
3875         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
3876         ix86_sched_reorder, ix86_variable_issue,
3877         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
3878         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
3879         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
3880         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
3881         * athlon.md (athlon_ssecmp_load): Fix comment
3882
3883 2004-03-04  Stuart Hastings  <stuart@apple.com>
3884
3885         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
3886
3887 2004-03-04  Stuart Hastings  <stuart@apple.com>
3888
3889         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
3890         686, tell Darwin assembler to allow prefetch insns, non-empty def
3891         of SUBTARGET_OPTION_TRANSLATE_TABLE.
3892
3893 2004-03-04  DJ Delorie  <dj@redhat.com>
3894
3895         PR optimization/14282
3896         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
3897         between a call and the assignment of its return value.
3898
3899 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
3900
3901         * config/h8300/h8300.c: Put a comment for every function.
3902
3903 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
3904
3905         * config/h8300/h8300.md: Add comments about peephole2's.
3906
3907 2004-03-04  Steven Bosscher  <stevenb@suse.de>
3908
3909         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
3910
3911 2004-03-04  Jan Hubicka  <jh@suse.cz>
3912
3913         * cfgcleanup.c (thread_jump): Update call of cselib_init.
3914         * cselib.c (cselib_record_memory): New static variable.
3915         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
3916         Give up on memories when asked for.
3917         (cselib_init): Accept new argument.
3918         * cselib.h (cselib_init): Update prototype.
3919         * gcse.c (local_cprop_pass): Update call of cselib_init.
3920         * loop.c (load_mems): Update call of cselib_init.
3921         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
3922         * sched-deps.c (sched_analyze): Update call of cselib_init.
3923
3924 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
3925             GP <gp@qnx.com>
3926
3927         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
3928         when compiling PIC.
3929
3930 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
3931
3932         PR/14362
3933         * var-tracking.c (track_expr_p): Do not track variables which
3934         should be ignored for debugging purposes.
3935
3936 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
3937
3938         * real.c (encode_ibm_extended): Don't bother rounding low double.
3939         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
3940         when fmt->pnan < fmt->p.
3941
3942 2004-03-04  Eric Christopher  <echristo@redhat.com>
3943
3944         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
3945         only range of valid arg registers and fixed_regs.
3946
3947 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
3948
3949         PR target/14406
3950         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
3951         (abstf2, abstf2_internal): New define_expand.
3952
3953 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
3954
3955         PR optimization/14235
3956         * expr.c (convert_move): Copy the source to a new pseudo
3957         when converting from a sub-word source to a larger-than-word
3958         register which conflicts with the source.
3959
3960 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
3961
3962         PR 13728
3963         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
3964         parameters with the same name, unless one is a forward decl.
3965         Do not issue a redundant-redeclaration warning for forward
3966         decls of parameters.
3967
3968 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
3969
3970         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
3971         configuration.
3972
3973 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
3974
3975         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
3976
3977 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
3978
3979         * target-def.h (TARGET_OPTF): Delete.
3980         * c-opts.c (TARGET_OPTF): Define.
3981
3982 2004-03-04  Jan Hubicka  <jh@suse.cz>
3983
3984         * cselib.c (cselib_finish): Fix another miss-application of my previous
3985         patch.
3986
3987 2004-03-03  Mike Stump  <mrs@apple.com>
3988
3989         Add framework support for darwin.
3990
3991         * c-incpath.c: Include target.h and machmode.h.
3992         (add_path): Use a consistent style for cpp_dir.  Initialize
3993         p->construct to 0.
3994         (add_cpp_dir_path): New.
3995         (register_include_chains): Add use of extra_includes callback.
3996         (hook_void_int): Add.
3997         (target_c_incpath): Add.
3998         * c-incpath.h (add_cpp_dir_path): New.
3999         (target_c_incpath_s): Add.
4000         (target_c_incpath): Add.