OSDN Git Service

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