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         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
3406         contains only PARM_DECLs.  Improve diagnostics.
3407         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
3408         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
3409         (store_parm_decls_newstyle): Take the function to operate on,
3410         and an arg-info block, as arguments; don't get anything from
3411         current_function_* globals.
3412         (store_parm_decls_oldstyle): Likewise.
3413         (store_parm_decls): Pass fndecl and its arg-info block down to
3414         store_parm_decls_newstyle/oldstyle.  Send functions with empty
3415         argument lists through store_parm_decls_newstyle to reduce
3416         overhead.
3417         (pushdecl): Comment on the problems with the call to copy_node.
3418         Clear DECL_ARGUMENTS of the old node after copying it, if it
3419         is an arg-info block instead of a chain of decls.
3420         (start_function): Do not manipulate current_function_parm* or
3421         last_function_parm*.
3422
3423 2004-03-09  Roger Sayle  <roger@eyesopen.com>
3424             Andrew Pinski  <pinskia@physics.uc.edu>
3425
3426         * ifcvt.c (noce_try_sign_mask): New function to transform
3427         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
3428         (noce_process_if_block): Call noce_try_sign_mask.
3429
3430 2004-03-09  Andrew Pinski  <apinski@apple.com>
3431
3432         * c-typeck.c (tagged_types_tu_compatible_p):
3433         Fix typo.
3434
3435 2004-03-09  Roger Sayle  <roger@eyesopen.com>
3436
3437         * simplify-rtx.c (simplify_const_relational_operation): New function
3438         renamed from simplify_relational_operation.
3439         (simplify_relational_operation): Change prototype to accept an
3440         additional mode argument.  Call simplify_const_relational_operation.
3441         (simplify_gen_relational): Update simplify_relational_operation call.
3442         (simplify_ternary_operation): Update simplify_relational_operation
3443         subroutine call to use simplify_const_relational_operation instead.
3444
3445         * rtl.h (simplify_const_relational_operation): Prototype here.
3446         (simplify_relational_operation): Add addtional mode argument.
3447
3448         * combine.c (combine_simplify_rtx): Update calls to
3449         simplify_relational_operation.
3450         (simplify_set): Likewise.
3451         (gen_binary): Likewise.
3452         * cse.c (fold_rtx): Likewise.
3453         * dojump.c (compare_from_rtx): Likewise.
3454         (do_compare_rtx_and_jump): Likewise.
3455         * integrate.c (subst_constants): Likewise.
3456         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
3457
3458 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
3459
3460         * config/m32r/m32r.md: Remove all define_peephole's.
3461
3462 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
3463
3464         * config/rs6000/rs6000.md: Remove trailing whitespace.
3465
3466 2004-03-08  Eric Christopher  <echristo@redhat.com>
3467
3468         * Makefile.in (site.exp): Add libiconv variable definition.
3469
3470 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
3471
3472         * configure: Regenerate for config/accross.m4 correction.
3473
3474 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
3475
3476         PR target/14480
3477         * config/rs6000/t-rtems: Add missing file on branch.
3478
3479 2004-03-08  Roger Sayle  <roger@eyesopen.com>
3480
3481         PR middle-end/14289
3482         * c-typeck.c (c_mark_addressable): A register variable should
3483         be considered global if its not automatic, i.e. TREE_PUBLIC,
3484         TREE_STATIC or DECL_EXTERNAL.
3485         * function.c (put_var_into_stack): Call abort when placing a
3486         hard register into the stack, if x_parm_reg_stack_loc is NULL.
3487
3488 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
3489
3490         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
3491         ("*extendqisi2_short_displ"): Likewise.
3492
3493 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
3494
3495         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
3496         (comp_operator): Likewise.
3497         * config/pdp11/pdp11-protos.h: Remove corresponding
3498         prototypes.
3499
3500 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
3501
3502         * expr.c (highest_pow2_factor_for_type): Rename into
3503         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
3504         TYPE_ALIGN when the target is a COMPONENT_REF.
3505         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
3506
3507 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
3508
3509         * config/rs6000/rs6000.c: Formatting fix.
3510         (legitimate_offset_address_p): Correct offset range check.
3511
3512         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
3513         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
3514         and MASK_STRING.
3515
3516 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
3517
3518         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
3519         for little endian.
3520         ("ashrdi3_no_power"): Disable for little endian.
3521         (ashrdi3): Same.
3522
3523 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3524
3525         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
3526         builtins.
3527
3528 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
3529
3530         PR target/14471
3531         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
3532         case, checking for -no-mul-bug-abort option.
3533         * configure, config.in: Regenerate.
3534         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
3535         and -mno-mul-bug-workaround.
3536         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
3537         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
3538         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
3539         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
3540         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
3541         sure mulu.d is not last on cache-line.
3542         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
3543         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
3544         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
3545         (TARGET_SWITCHES): New options -mmul-bug-workaround and
3546         -mno-mul-bug-workaround.
3547         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
3548         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
3549         * config/cris/cris.c (cris_operand_extend_operator): Clarify
3550         relation to MULT in head comment.
3551         (cris_op_str): Abort for MULT.
3552         (cris_print_operand) <case '!'>: New case.
3553
3554 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
3555
3556         PR debug/11983
3557         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
3558         dw_val_class_vec.  Replace use throughout file.
3559         (dw_float_const): Delete.
3560         (dw_vec_const): New.
3561         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
3562         throughout file.
3563         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
3564         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
3565         (size_of_die): Adjust dw_val_class_vec sizing.
3566         (output_die): Output dw_val_class_vec.
3567         (insert_int, extract_int, insert_float): New functions.
3568         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
3569         Handle CONST_VECTOR.
3570         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
3571
3572 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
3573
3574         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
3575         AltiVec abi cannot co-exist.
3576
3577         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
3578
3579 2004-03-07  Jan Hubicka  <jh@suse.cz>
3580
3581         * except.c (emit_to_new_bb_before):  Break fallthru edges.
3582
3583 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
3584
3585         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
3586         ("*lshrsi3"): Also accept an immediate for 68HC12.
3587         ("*ashrsi3_const"): Likewise.
3588         ("*ashrsi3"): Likewise.
3589         ("*ashlsi3_const"): Likewise.
3590         ("*ashlsi3"): Likewise.
3591         ("cmphi_1_hc12"): Compare two hard register by pushing them and
3592         comparing with a pop; don't use a split for that.
3593         ("cmphi split"): Disable compare split for 68HC12.
3594
3595         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
3596         the status operands if they have side effects.
3597
3598 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
3599
3600         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
3601         definition.
3602         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
3603         config/h8300/h8300.h, config/ia64/ia64.h,
3604         config/mcore/mcore.h, config/mmix/mmix.h,
3605         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
3606         config/stormy16/stormy16.h, config/v850/v850.h,
3607         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
3608         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
3609         definition.
3610
3611 2004-03-07  Roger Sayle  <roger@eyesopen.com>
3612
3613         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
3614         <XOR_EXPR>: Fold x ^ x as zero.
3615         <AND_EXPR>: Fold x & x as x.
3616
3617 2004-03-07  Roger Sayle  <roger@eyesopen.com>
3618
3619         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
3620         "foo++ == const" into "++foo == const+incr".
3621
3622 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
3623
3624         * config/mips/mips.c (mips_in_small_data_p): Return false if
3625         TARGET_ABICALLS.
3626
3627 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
3628
3629         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
3630         the stack register.
3631         (expand_prologue): Don't make an interrupt or a trap handler a far
3632         symbol.
3633         (m68hc11_initial_elimination_offset): Likewise.
3634
3635 2004-03-06  Richard Henderson  <rth@redhat.com>
3636
3637         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
3638
3639 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
3640
3641         * config/ns32k/ns32k-protos.h: Add a prototype for
3642         ns32k_notice_update_cc.
3643         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
3644         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
3645         ns32k_notice_update_cc.
3646
3647 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
3648
3649         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
3650         "*load_multiple_si"): Allow only if reload_completed.
3651         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
3652         Likewise.
3653
3654 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
3655
3656         * config/vax/vax-protos.h: Add a prototype for
3657         vax_notice_update_cc.
3658         * config/vax/vax.c (vax_notice_update_cc): New.
3659         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
3660         vax_notice_update_cc.
3661
3662 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
3663
3664         * collect2.c (main): Only export initfunc and finifunc if
3665         LD_INIT_SWITCH not defined.
3666         (scan_prog_file): Only export constructors and destructors if
3667         LD_INIT_SWITCH not defined.  Only export symbols not found in
3668         shared objects.
3669
3670 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3671
3672         * pa.md (icacheflush): Reorder operands to make match_scratch operand
3673         last.
3674         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
3675         from calls to gen_icacheflush.
3676
3677 2004-03-06  Richard Henderson  <rth@redhat.com>
3678
3679         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
3680         (TARGET_LONG_DOUBLE_128): New.
3681         (TARGET_SWITCHES): Add long-double-{128,64}.
3682         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
3683         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
3684         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
3685         (WIDEST_HARDWARE_FP_SIZE): New.
3686         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
3687         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
3688         if TARGET_VAX_FLOAT.
3689         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
3690         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
3691
3692 2004-03-06  Richard Henderson  <rth@redhat.com>
3693
3694         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
3695         botched rtx class conversion.
3696
3697 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3698
3699         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
3700         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
3701
3702         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
3703         macros.
3704         * fold-const.c (fold_mathfn_compare, fold): Likewise.
3705
3706 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
3707
3708         PR target/14343
3709         * config/i386/i386.md (movv2di_internal): Conditionalize on
3710         TARGET_SSE, not TARGET_SSE2.
3711
3712 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
3713
3714         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
3715         duplicated line.
3716
3717 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3718
3719         * builtins.c: Consistently use logN not log* in comments.
3720
3721 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
3722
3723         * rtl.h (mem_expr_equal_p): Function prototype added.
3724         * cfgcleanup.c (merge_memattrs): New function.
3725         (flow_find_cross_jump): Call merge_memattrs for matching insns.
3726         * emit-rtl.c (mem_expr_equal_p): New function.
3727
3728 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
3729
3730         * objc/objc-act.c (synth_module_prologue): Const-qualify
3731         objc_selector type if using the GNU runtime; fix generated
3732         signatures for objc_msg_lookup and objc_msg_lookup_super
3733         to match what GNU ObjC headers provide; reformat and clean up.
3734         (synth_self_and_ucmd_args): Use previously constructed (and
3735         hence possibly const-qualified) objc_selector type.
3736
3737 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
3738
3739         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
3740
3741 2004-03-05  Jason Merrill  <jason@redhat.com>
3742
3743         * tree.h (TYPE_HASH): Use TYPE_UID.
3744         (TREE_HASH): New macro with old definition of TYPE_HASH.
3745         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
3746         (build_array_type, build_function_type): Likewise.
3747         (build_method_type_directly): Likewise.
3748         (build_offset_type, build_complex_type): Likewise.
3749         (type_hash_list, attribute_hash_list): Likewise. Now static.
3750         * except.c: s/TYPE_HASH/TREE_HASH/.
3751
3752 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
3753
3754         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
3755         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
3756         __va_ndx by 2 words when referencing an argument on the stack.
3757         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
3758         words when an arg on the stack is first seen.
3759
3760 2004-03-05  Paul Brook  <paul@codesourcery.com>
3761
3762         * arm.h (ARM_FLAG_VFP): Remove.
3763         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
3764         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
3765
3766 2004-03-05  Paul Brook  <paul@codesourcery.com>
3767
3768         * function.c (assign_parms): Include pretend alignment offset.
3769
3770 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3771
3772         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
3773         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
3774
3775 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
3776
3777         * configure.ac: When passing --enable-languages to subdir
3778         configure when host != build, make sure we don't pass an empty
3779         value.
3780         * configure: Regenerate.
3781
3782 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
3783
3784         PR 13577
3785         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
3786         options.
3787
3788 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
3789
3790         * simplify-rtx.c (simplify_relational_operation): If
3791         flag_wrapv is set, do not move terms between the two
3792         side of a relational operator.
3793
3794 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
3795
3796         * rtlanal.c: Include target.h and output.h
3797         (rtx_cost, address_cost, default_address_cost): Move from...
3798         * cse.c (rtx_cost, address_cost, default_address_cost):
3799         ... this file.
3800         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
3801         * Makefile.in: Adjust dependencies.
3802
3803 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
3804
3805         * cse.c (cse_end_of_basic_block): Make static.
3806         * local-alloc.c (function_invariant_p): Move to
3807         reload1.c.
3808         * loop.c (libcall_other_reg, record_excess_regs):
3809         Make static.
3810         * reload1.c (function_invariant_p): Moved here
3811         from local-alloc.c, made static.
3812         * rtl.h (cse_end_of_basic_block, function_invariant_p,
3813         libcall_other_reg, record_excess_regs): Remove
3814         declarations.
3815
3816 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
3817
3818         * config/m32r/m32r.c (signed_comparison_operator): Add a
3819         missing parenthesis.
3820
3821 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
3822
3823         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
3824         going to call mmap again.  Read the file into the right place.
3825         Give a fatal error if we have to relocate.
3826
3827 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
3828
3829         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
3830         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
3831
3832 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
3833
3834         PR other/14354
3835         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
3836         round the same.  When rounding, clear bits that would cause a
3837         second rounding in pack_d.
3838         (_fpmul_parts): Ditto.  Remove #if 0:d code.
3839
3840 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
3841
3842         PR c++/14425, c++/14426
3843         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
3844         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
3845         Change C++ definitions to accept a 'const int' argument;
3846         the prototypes already do.
3847         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
3848         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
3849         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
3850         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
3851         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
3852         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
3853         end in ..._int; change them to accept an int instead of a char
3854         as the last parameter.
3855
3856 2004-03-04  Phil Edwards  <phil@codesourcery.com>
3857
3858         * genmultilib:  Change '=' to '-' when translating option names
3859         to directory names.
3860
3861 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3862
3863         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
3864         stack slot for temp used for result of BLKmode but in integral mode.
3865
3866 2004-03-04  Jan Hubicka  <jh@suse.cz>
3867
3868         * reload.c (find_reloads): Reorganize if seqeunce to switch.
3869
3870         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
3871         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
3872
3873 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
3874
3875         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
3876         * testsuite/gcc.dg/20040303-1.c: New test.
3877
3878 2004-03-04  Steven Bosscher  <stevenb@suse.de>
3879
3880         * ppro.md: Rewrite as a DFA pipeline description.
3881         * i386.md: Remove all uses of the ppro_uops attribute.
3882         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
3883         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
3884         ix86_sched_reorder, ix86_variable_issue,
3885         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
3886         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
3887         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
3888         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
3889         * athlon.md (athlon_ssecmp_load): Fix comment
3890
3891 2004-03-04  Stuart Hastings  <stuart@apple.com>
3892
3893         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
3894
3895 2004-03-04  Stuart Hastings  <stuart@apple.com>
3896
3897         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
3898         686, tell Darwin assembler to allow prefetch insns, non-empty def
3899         of SUBTARGET_OPTION_TRANSLATE_TABLE.
3900
3901 2004-03-04  DJ Delorie  <dj@redhat.com>
3902
3903         PR optimization/14282
3904         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
3905         between a call and the assignment of its return value.
3906
3907 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
3908
3909         * config/h8300/h8300.c: Put a comment for every function.
3910
3911 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
3912
3913         * config/h8300/h8300.md: Add comments about peephole2's.
3914
3915 2004-03-04  Steven Bosscher  <stevenb@suse.de>
3916
3917         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
3918
3919 2004-03-04  Jan Hubicka  <jh@suse.cz>
3920
3921         * cfgcleanup.c (thread_jump): Update call of cselib_init.
3922         * cselib.c (cselib_record_memory): New static variable.
3923         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
3924         Give up on memories when asked for.
3925         (cselib_init): Accept new argument.
3926         * cselib.h (cselib_init): Update prototype.
3927         * gcse.c (local_cprop_pass): Update call of cselib_init.
3928         * loop.c (load_mems): Update call of cselib_init.
3929         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
3930         * sched-deps.c (sched_analyze): Update call of cselib_init.
3931
3932 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
3933             GP <gp@qnx.com>
3934
3935         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
3936         when compiling PIC.
3937
3938 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
3939
3940         PR/14362
3941         * var-tracking.c (track_expr_p): Do not track variables which
3942         should be ignored for debugging purposes.
3943
3944 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
3945
3946         * real.c (encode_ibm_extended): Don't bother rounding low double.
3947         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
3948         when fmt->pnan < fmt->p.
3949
3950 2004-03-04  Eric Christopher  <echristo@redhat.com>
3951
3952         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
3953         only range of valid arg registers and fixed_regs.
3954
3955 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
3956
3957         PR target/14406
3958         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
3959         (abstf2, abstf2_internal): New define_expand.
3960
3961 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
3962
3963         PR optimization/14235
3964         * expr.c (convert_move): Copy the source to a new pseudo
3965         when converting from a sub-word source to a larger-than-word
3966         register which conflicts with the source.
3967
3968 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
3969
3970         PR 13728
3971         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
3972         parameters with the same name, unless one is a forward decl.
3973         Do not issue a redundant-redeclaration warning for forward
3974         decls of parameters.
3975
3976 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
3977
3978         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
3979         configuration.
3980
3981 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
3982
3983         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
3984
3985 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
3986
3987         * target-def.h (TARGET_OPTF): Delete.
3988         * c-opts.c (TARGET_OPTF): Define.
3989
3990 2004-03-04  Jan Hubicka  <jh@suse.cz>
3991
3992         * cselib.c (cselib_finish): Fix another miss-application of my previous
3993         patch.
3994
3995 2004-03-03  Mike Stump  <mrs@apple.com>
3996
3997         Add framework support for darwin.
3998
3999         * c-incpath.c: Include target.h and machmode.h.
4000         (add_path): Use a consistent style for cpp_dir.  Initialize
4001         p->construct to 0.
4002         (add_cpp_dir_path): New.
4003         (register_include_chains): Add use of extra_includes callback.
4004         (hook_void_int): Add.
4005         (target_c_incpath): Add.
4006         * c-incpath.h (add_cpp_dir_path): New.
4007         (target_c_incpath_s): Add.
4008         (target_c_incpath): Add.
4009         (C_INCPATH_INIT): Add.
4010         * c-opts.c (c_common_missing_argument,
4011         c_common_handle_option): Add -F argument processing.
4012         * c.opt: Add -F argument processing.
4013         * gcc.c (trad_capable_cpp): Add -F argument processing.
4014         * cppfiles.c (find_file_in_dir): Update to use construct
4015         callback.
4016         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
4017         cpp_get_prev): New.
4018         (_cpp_find_file): Use search_path_exhausted.
4019         (make_cpp_dir): Initialize construct to 0.
4020         * cpplib.h (missing_header_cb
4021         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
4022         (cpp_callbacks): Add missing_header
4023         (cpp_dir): Add construct.
4024         * target-def.h: (TARGET_OPTF): New.
4025         * hooks.c (hook_void_int, hook_void_charptr): Add.
4026         * hooks.h (hook_void_int, hook_void_charptr): Add.
4027         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
4028         $(MACHMODE_H) dependencies.
4029         * doc/invoke.texi (Darwin Options): Document -F.
4030         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
4031         (TARGET_OPTF): Add.
4032         * fix-header.c (target_c_incpath): Add.
4033
4034         * config/darwin-c.c: Add c-incpath.h include.
4035         (using_frameworks, find_subframework_file,
4036         find_subframework_header, add_system_framework_path,
4037         frameworks_in_use, num_frameworks, max_frameworks,
4038         add_framework, find_framework, struct framework_header,
4039         framework_header_dirs, framework_construct_pathname,
4040         find_subframework_file, add_system_framework_path,
4041         add_framework_path, framework_defaults,
4042         darwin_register_frameworks, find_subframework_header): Add.
4043         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
4044         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
4045         (CPP_SPEC): Add __APPLE_CC__ support.
4046         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
4047
4048 2004-03-04  Jan Hubicka  <jh@suse.cz>
4049
4050         * cselib.c (cselib_finish): Fix miss-application of my previous
4051         patch.
4052
4053 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
4054
4055         * hooks.c (hook_tree_tree_identity): New.
4056         * hooks.h: Add a prototype for hook_tree_tree_identity.
4057         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
4058         instead of MD_ASM_CLOBBERS.
4059         * system.h (MD_ASM_CLOBBERS): Poison.
4060         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
4061         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
4062         * target.h (gcc_target): Add md_asm_clobbers.
4063         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
4064         (ix86_md_asm_clobbers): New.
4065         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
4066         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
4067         TARGET_MD_ASM_CLOBBERS.
4068
4069 2004-03-03  Stuart Hastings  <stuart@apple.com>
4070
4071         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
4072
4073 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
4074
4075         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
4076
4077         * config/sparc/sparc.h (ASM_FLOAT): Delete.
4078         (ASM_DOUBLE): Likewise.
4079         (ASM_LONGDOUBLE): Likewise.
4080         * config/sparc/pbd.h (ASM_INT_OP): Delete.
4081
4082 2003-03-03  Richard Henderson  <rth@redhat.com>
4083
4084         PR opt/13862
4085         * cselib.c (cselib_record_sets): Don't record multiple sets in
4086         asm insns.
4087
4088 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
4089
4090         * common.opt: Add description of the new -fgcse-after-reload flag.
4091
4092         * flags.h (flag_gcse_after_reload): Declaration of global variable.
4093
4094         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
4095         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
4096         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
4097         get_bb_avail_insn, hash_scan_set_after_reload,
4098         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
4099         gcse_after_reload, get_bb_avail_insn): New functions to implement
4100         gcse-after-reload.
4101         (gcse_after_reload_main): New function, the main entry point to
4102         gcse-after-reload.
4103
4104         * rtl.h (gcse_after_reload_main): Declaration of the new function.
4105
4106         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
4107
4108         * toplev.c (flag_gcse_after_reload): Initialization.
4109
4110         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
4111
4112         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
4113         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
4114         the gcse after reload optimization.
4115
4116         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
4117         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
4118         parameters.
4119
4120         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
4121
4122 2004-03-03  Nicolas Pitre <nico@cam.org>
4123
4124         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
4125         small negative values.
4126
4127 2004-03-03  Jan Hubicka  <jh@suse.cz>
4128
4129         * cselib.c (hash_table):  Remove GTY marker.
4130         (reg_values): Turn into array.
4131         (used_regs): Likewise.
4132         (n_used_regs): New static variable.
4133         (reg_values_old): Kill.
4134         (clear_table): Update uses of arrays.
4135         (cselib_lookup): Likewise.
4136         (cselib_record_set): Likewise.
4137         (cselib_init): Likewise.
4138         (cselib_finish): Likewise.
4139         (cselib_udpate_varray_sizes): Kill.
4140         * cselib.h (cselib_update_varray_sizes): Kill.
4141
4142 2004-03-03  Paul Brook  <paul@codesourcery.com>
4143
4144         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
4145
4146 2004-03-03  Jan Hubicka  <jh@suse.cz>
4147
4148         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
4149         Rename from ...; make statistics transparent.
4150         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
4151         (loc_descriptor): New structure.
4152         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
4153         add_statistics):
4154         New static function.
4155         (ggc_record_overhead, dump_statistics): New global function.
4156         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
4157         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
4158         from ...; accept locations
4159         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
4160         ggc_realloc, ggc_alloc_typed):  ... this one.
4161         from ...; accept locations
4162         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
4163         ggc_alloc_stat): Rename from ... ; pass locations
4164         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
4165         ... this one.
4166         (ggc_alloc_stat): Record overehead.
4167         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
4168         ggc_realloc, ggc_alloc_typed):  Turn to macros
4169         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
4170         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
4171         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
4172         * langhooks.h (lhd_make_node): Declare.
4173         (LANG_HOOKS_MAKE_TYPE): Default to new function,
4174         * langhooks.c (lhd_make_node): New.
4175         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
4176         locations.
4177         (rtx_alloc, swallow_copy_rtx): ... this one.
4178         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
4179         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
4180         * toplpev.c (finalize): Dump stats.
4181         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
4182         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
4183         Rename from ... ; pass locators.
4184         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
4185         build?,  build_decl): Declare.
4186         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
4187         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
4188         Declare.
4189         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
4190         build?,  build_decl): New macros.
4191         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
4192         * statistics.h: New file.
4193
4194 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
4195             Richard Sandiford  <rsandifo@redhat.com>
4196
4197         * config/mips/mips.h (MASK_FIX_SB1): Bump.
4198         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
4199         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
4200         * config/mips/mips.c (mips_output_division): Fill the branch delay
4201         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
4202         TARGET_FIX_R4400.
4203         (mips_output_division): Adjust accordingly.
4204         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
4205         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
4206
4207 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
4208
4209         * alias.c (rtx_equal_for_memref_p): Use predicates
4210         to test rtx classes and new rtx class codes, possibly
4211         splitting conditionals that tested against '<' and 'o'.
4212         * caller-save.c (save_call_clobbered_regs): Likewise.
4213         * combine.c (contains_muldiv, find_split_point, subst,
4214         combine_simplify_rtx, simplify_if_then_else,
4215         simplify_set, simplify_logical, expand_compound_operation,
4216         make_compound_operation, if_then_else_cond, known_cond,
4217         apply_distributive_law, cached_nonzero_bits,
4218         cached_num_sign_bit_copies, simplify_shift_const,
4219         gen_binary, simplify_comparison, update_table_tick,
4220         record_value_for_reg, get_lsat_value_validate): Likewise.
4221         * cse.c (mention_regs, find_best_addr, find_comparison_args,
4222         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
4223         Likewise.
4224         * emit-rtl.c (copy_insn_1): Likewise.
4225         * expr.c (force_operand): Likewise.
4226         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
4227         * flow.c (notice_stack_pointer_modification_1,
4228         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
4229         and_reg_cond, elim_reg_cond): Likewise.
4230         * function.c (update_epilogue_consts): Likewise.
4231         * genattrtab.c (attr_rtx_1): Likewise.
4232         * genopinit.c (gen_insn): Likewise.
4233         * integrate.c (subst_constants): Likewise.
4234         * jump.c (reversed_comparison_code_parts,
4235         reversed_comparison_code, delete_related_insns,
4236         rtx_renumbered_equal_p): Likewise.
4237         * local-alloc.c (block_alloc): Likewise.
4238         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
4239         canonicalize_condition): Likewise.
4240         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
4241         Likewise.
4242         * optabs.c (add_equal_node, expand_binop): Likewise.
4243         * predict.c (estimate_probability): Likewise.
4244         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
4245         * recog.c (validate_replace_rtx_1, comparison_operator,
4246         offsettable_address_p, constrain_operands): Likewise.
4247         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
4248         Likewise.
4249         * regclass.c (scan_one_insn): Likewise.
4250         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
4251         * regrename.c (kill_autoinc_value): Likewise.
4252         * reload.c (find_reusable_reload, find_reloads,
4253         reg_overlap_mentioned_for_reload_p): Likewise.
4254         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
4255         * rtl.c (copy_rtx): Likewise.
4256         * rtl.h (CONSTANT_P, INSN_P): Likewise.
4257         * rtlanal.c (commutative_operand_precedence): Likewise.
4258         * sched-deps.c (conditions_mutex_p): Likewise.
4259         * sched-rgn.c (is_cfg_nonregular): Likewise.
4260         * simplify-rtx.c (simplify_gen_binary,
4261         simplify_gen_relational, simplify_replace_rtx,
4262         simplify_unary_operation, simplify_binary_operation,
4263         simplify_ternary_operation, simplify_rtx): Likewise.
4264         * unroll.c (reg_dead_after_loop): Likewise.
4265         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
4266         print_operand): Likewise.
4267         * config/arc/arc.c (proper_comparison_operator): Likewise.
4268         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
4269         Likewise.
4270         * config/avr/avr.c (_reg_unused_after): Likewise.
4271         * config/frv/frv.c (frv_ifcvt_modify_tests,
4272         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
4273         * config/i386/i386.c (ix86_comparison_operator,
4274         ix86_carry_flag_operator, fcmov_comparison_operator,
4275         arith_or_logical_operator, print_operand,
4276         ix86_expand_binary_operator, ix86_binary_operator_ok):
4277         Likewise.
4278         * config/i386/i386.md: Likewise.
4279         * config/ia64/ia64.c (not_postinc_memory_operand,
4280         ia64_print_operand, update_set_flags, errata_emit_nops):
4281         Likewise.
4282         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
4283         CONSTRAINT_OK_FOR_S): Likewise.
4284         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
4285         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
4286         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
4287         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
4288         Likewise.
4289         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
4290         eqne_comparison_operator, signed_comparison_operator):
4291         Likewise.
4292         * config/mips/mips.c (cmp_op, symbolic_expression_p):
4293         Likewise.
4294         * config/mmix/mmix (mmix_foldable_comparison_operator,
4295         mmix_comparison_operator): Likewise.
4296         * config/pa/pa.c (hppa_legitimize_address): Likewise.
4297         * config/rs6000/rs6000.c (stmw_operation,
4298         branch_comparison_operator, trap_comparison_operator,
4299         ccr_bit): Likewise.
4300         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
4301         * config/s390/s390.c (s390_alc_comparison,
4302         s390_slb_comparison):L Likewise.
4303         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
4304         Likewise.
4305         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
4306         noov_compare_op, noov_compare64_op, v9_regcmp_op,
4307         emit_hard_tfmode_operation, reg_unused_after)
4308         * doc/md.texi, doc/rtl.texi: Likewise.
4309
4310         * ra-debug.c: Add 2004 to list of copyright years.
4311         * unroll.c: Likewise.
4312
4313         * combine.c (simplify_logical): Remove dummy test,
4314         (apply_distributive_law): Fix typo in comment.
4315         GET_CODE (x) == AND so x is a commutative binary op.
4316         * jump.c (delete_related_insns): simplify loop
4317         condition, move testing of RTX codes inside the loop.
4318         (rtx_renumbered_equal_p): do not use RTX_CODE.
4319         * rtl.c (rtx_class): Declare as enum rtx_class.
4320         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
4321         Move to RTX_COMM_COMPARE class.
4322         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
4323         Move to RTX_CONST_OBJ class.
4324         * rtl.h (enum rtx_class): New declaration,
4325         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
4326         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
4327         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
4328         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
4329         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
4330         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
4331         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
4332         OBJECT_P): New macros.
4333         * config/sparc/sparc.c (noov_compare_op): Remove register
4334         from parameter.
4335
4336 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
4337
4338         * target.h: Remove texi jargons in comments.
4339
4340 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4341
4342         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
4343         threshold to 0x4f.
4344
4345         Revert:
4346         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
4347         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
4348         as well.
4349         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
4350         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
4351
4352 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4353
4354         * doc/md.texi (cbranchmode4): New.
4355
4356 2004-03-02  Eric Christopher  <echristo@redhat.com>
4357
4358         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
4359         fix_trunc.
4360         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
4361         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
4362         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
4363         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
4364
4365 2004-03-02  Richard Henderson  <rth@redhat.com>
4366
4367         PR middle-end/11767
4368         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
4369         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
4370         before the compare, if flag_non_call_exceptions.
4371
4372 2004-03-02  Richard Henderson  <rth@redhat.com>
4373
4374         PR middle-end/14327
4375         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
4376         emitting the label, not after.
4377
4378 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
4379
4380         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
4381         (m68hc11_mov_addr_mode): Likewise.
4382         (m68hc11_override_options): Initialize them based on target.
4383         (register_indirect_p): Allow a MEM for indirect addressing modes and
4384         use flags to control what is allowed.
4385         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
4386         supported addressing modes.
4387         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
4388         (go_if_legitimate_address_internal): Likewise.
4389         (m68hc11_indirect_p): Likewise and check the mode.
4390         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
4391
4392 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4393
4394         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
4395         (expand_builtin_setjmp_setup): Use
4396         targetm.builtin_setjmp_frame_value instead of
4397         BUILTIN_SETJMP_FRAME_VALUE.
4398         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
4399         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
4400         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
4401         * target.h (gcc_target): Add builtin_setjmp_frame_value.
4402         * targhooks.c (default_builtin_setjmp_frame_value): New.
4403         * targhooks.h: Add a prototype for
4404         default_builtin_setjmp_frame_value.
4405         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
4406         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
4407
4408 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
4409
4410         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
4411         sequences of moves.
4412         (add peepholes): New peepholes to optimize sequences adding small
4413         constants.
4414         (bset peepholes): New peepholes to transform an OR in a bset form
4415         (bclr peepholes): Likewise for bclr form.
4416         (cmp peepholes): New peepholes to avoid register copies when comparing.
4417
4418 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
4419
4420         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
4421         to separate push from moves.
4422         ("*pushdf_internal"): Likewise.
4423         ("*pushsf_internal"): Likewise.
4424         ("*pushsi_internal"): Likewise.
4425         ("movdi_internal"): Use define_insn_and_split; non push operand.
4426         ("movdf_internal"): Likewise.
4427         ("movsf_internal"): Likewise.
4428         ("movsi_internal"): Likewise.
4429         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
4430         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
4431         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
4432
4433 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
4434
4435         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
4436         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
4437         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
4438         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
4439         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
4440         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
4441         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
4442         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
4443         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
4444         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
4445         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
4446
4447 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
4448
4449         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
4450         (SOFT_XY_REGNUM): Define.
4451         (cmp split): Use the above instead of hard coded numbers.
4452         (8-bit op split): No need to check the mode; allow Q_REG.
4453         (ashift split): Adjust the first operand if it uses the SP and we
4454         are pushing the shifted value.
4455         (plus shift split): Fix when a source is in register D+X.
4456         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
4457
4458 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
4459
4460         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
4461         comparing with Z register.
4462
4463 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4464
4465         * cfgloop.h (struct loop_desc): Removed.
4466         (struct loop): Fields simple, desc and has_desc removed.
4467         (simple_loop_p, count_loop_iterations): Declaration removed.
4468         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
4469         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
4470         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
4471         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
4472         simple_loop_exit_p, variable_initial_value, variable_initial_values,
4473         simple_condition_p, simple_increment, count_strange_loop_iterations,
4474         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
4475         Removed.
4476         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
4477
4478 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4479
4480         * genattrtab.c: Don't handle MATCH_INSN.
4481         * genrecog.c: Likewise.
4482         * gensupport.c: Likewise.
4483         * rtl.def (match_insn): Remove.
4484         * doc/md.texi (match_insn, match_insn2): Remove.
4485
4486 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
4487
4488         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
4489         macro results in memory allocation.
4490
4491 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
4492
4493         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
4494         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
4495         %(fbsd_dynamic_linker),
4496         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
4497         config/i386/freebsd.h
4498         * config/arm/freebsd.h: Ditto.
4499         * config/i386/freebsd.h: Ditto.
4500         * config/i386/freebsd64.h: Ditto.
4501         * config/ia64/freebsd.h: Ditto.
4502         * config/rs6000/sysv4.h: Ditto.
4503         * config/sparc/freebsd.h: Ditto.
4504
4505 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
4506
4507         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
4508
4509 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4510
4511         * rtl.def (define_combine): Remove.
4512
4513 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4514
4515         * config/h8300/h8300.md: Tweak formatting.
4516
4517 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4518
4519         * config/h8300/h8300.md (*cmphi_h8300): Rename to
4520         *cmphi_h8300_znvc.
4521         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
4522
4523 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
4524
4525         PR bootstrap/14356
4526         * gcc.c (process_command): Remove const-qualification from argv.
4527         (main): Likewise.
4528
4529 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4530
4531         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
4532         pushqi1_h8300hs_advanced.  Adjust its caller.
4533         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
4534         Adjust its caller.
4535
4536 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
4537
4538         * Makefile.in (install-libgcc, install-multilib): Pass
4539         mkinstalldirs var to libgcc.mk.
4540
4541 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
4542
4543         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
4544         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
4545
4546 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
4547
4548         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
4549         * config/h8300/h8300.md: Split several peephole2's, each into
4550         two.
4551
4552 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4553
4554         * dominance.c (recount_dominator): Handle postdominators.
4555
4556 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
4557
4558         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
4559         (NUM_SYMBOL_TYPES): Likewise.
4560         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
4561         (mips_unspec_address): Declare.
4562         (mips_gotoff_page, mips_gotoff_global): Delete.
4563         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
4564         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
4565         (mips_symbolic_constant_p, mips_symbolic_address_p)
4566         (mips_symbol_insns): Handle new symbol types.
4567         (general_symbolic_operand): New predicate.
4568         (mips_unspec_address): Make extern.
4569         (mips_gotoff_page, mips_gotoff_global): Delete.
4570         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
4571         Handle new symbol types.
4572         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
4573         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
4574         mips_unspec_address directly.
4575         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
4576         the documentation of -mexplicit-relocs.
4577
4578 2004-03-01  Jeff Law  <law@redhat.com>
4579
4580         * fold-const.c (fold): An equality comparison of a non-weak object
4581         against zero has a known result.  Similarly an equality comparison
4582         of the address of two non-weak, unaliased symbols has a known result.
4583
4584         * ggc-page.c (struct page_entry): New field PREV.
4585         (ggc_alloc): Update PREV field appropriately.
4586         (sweep_pages): Likewise.
4587         (ggc_free): Likewise.  Use PREV field rather than loop to
4588         improve ggc_free performance.
4589
4590 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
4591
4592         * config/mips/mips.c (mips_output_division): Use the division
4593         instruction to fill the delay slot of a zero check.
4594         (mips_idiv_insns): Adjust accordingly.
4595
4596 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
4597
4598         * config.gcc: Create a default tmake_file for linux, and use
4599         it in all but two linux clauses.  Comment those two.
4600
4601 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
4602
4603         * combine.c (try_combine):  Do not refer to is_replaced.
4604         (gen_lowpart_for_combine):  Perverse subregs now have a
4605         more politically correct name.
4606         * cse.c (cse_insn): Likewise.
4607         * jump.c: Fix bogus reference to delete_insn.
4608
4609 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
4610
4611         PR debug/14328
4612         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
4613         constants as signed values.
4614
4615         PR middle-end/13448
4616         * c-tree.h (readonly_warning): Rename to ...
4617         (readonly_error): ... this.
4618         * c-typeck.c (build_unary_op): Adjust accordingly.
4619         (readonly_warning): Rename to ...
4620         (readonly_error): ... this and issue errors, not warnings.
4621         (build_modify_expr): Call readonly_error, not readonly_warning.
4622         (c_expand_asm_operands): Likewise.
4623         * tree-inline.c (optimize_inline_calls): Do not inline functions
4624         after errors have occurred.
4625
4626 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
4627
4628         * configure.ac: Rearrange some threading code for clarity;
4629         add section comment.
4630         * configure: Regenerate.
4631
4632 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4633
4634         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
4635         typos.
4636         * doc/cppopts.texi: Fix a typo.
4637
4638 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4639
4640         * config/i386/i386.md: Fix formatting.
4641
4642 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
4643
4644         * configure.ac: Add some comments delineating sections of code.
4645
4646         * doc/install.texi: Note that libada uses autoconf 2.57 also.
4647
4648         * doc/install.texi: Fix idiot typo in previous commit.
4649
4650         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
4651
4652 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4653
4654         * config/h8300/h8300.md: Add comments about peephole2's.
4655
4656 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4657
4658         * config/h8300/h8300.md: Tweak operand numbers of some
4659         peephole2's.
4660
4661 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4662
4663         * config/h8300/h8300.md: Tweak comments about peephole2's.
4664
4665 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
4666
4667         PR middle-end/14203
4668         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
4669         instead of testing whether DECL_RTL is not NULL.
4670
4671 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
4672
4673         * config/sh/sh.c: Fix formatting.
4674
4675 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
4676
4677         * config/sh/sh.c: Convert to ISO-C.
4678
4679 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
4680
4681         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
4682         my previous patch.
4683
4684         * config/darwin.h (machopic_finish): Output stub even if the
4685         symbol is already defined.
4686
4687 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4688
4689         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
4690
4691 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
4692
4693         * genattr.c (main): Don't define
4694         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
4695         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
4696         (DFA_PIPELINE_INTERFACE): Likewise.
4697         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
4698         (DFA_PIPELINE_INTERFACE): Likewise.
4699
4700 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
4701
4702         * config/mips/mips.md (tstsi, tstdi): Delete.
4703
4704 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
4705
4706         * config/mips/mips.c (override_options): Remove an obsolete
4707         duplicate definition of the "e" constraint.
4708         * config/mips/mips.h: Update a comment accordingly.
4709
4710 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
4711
4712         * config/mips/mips.md: Complete the unfinished R4000
4713         multiply/shift errata workaround.  Improve documentation.
4714         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
4715         has a hilo hazard.
4716         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
4717         (muldi3, muldi3_internal): Likewise.
4718         (muldi3_internal2): Remove, replacing with...
4719         (muldi3_mult3, muldi3_r4000): ...these new patterns.
4720         (mulsidi3): Take the errata into account.
4721         (mulsidi3_32bit): Remove, replacing with...
4722         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
4723         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
4724         (umulsidi3): Take the errata into account.
4725         (umulsidi3_32bit): Remove, replacing with..
4726         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
4727         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
4728         TARGET_FIX_R4000.
4729         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
4730         (smuldi3_highpart, umuldi3_highpart): Likewise.
4731         * doc/invoke.texi: Document the errata workaround.
4732
4733 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
4734
4735         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
4736         * config/mips/mips.h (MASK_FIX_SB1): Bump.
4737         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
4738         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
4739         * config/mips/mips.c (mips_idiv_insns): New function.
4740         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
4741         (mips_output_division): Add a workaround for the R4000 divide/shift
4742         errata.
4743         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
4744         the length of an "idiv" instruction.
4745         * doc/invoke.texi: Document the new switches.
4746
4747 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
4748
4749         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
4750         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
4751
4752 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4753
4754         PR optimization/14229
4755         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
4756
4757 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
4758
4759         * fold-const.c (fold): Strip NOPs that change the signedness
4760         for RSHIFT too.  Expand comment.
4761
4762 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
4763
4764         PR optimization/7871
4765         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
4766         from or to call insns.
4767
4768 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
4769
4770         PR optimization/7871
4771         * flow.c (propagate_one_insn): Interpret calls as setting global
4772         registers, not merely clobbering them.
4773
4774 2004-02-27  Dale Johannesen  <dalej@apple.com>
4775
4776         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
4777         config/darwin-protos.h:  Ditto.
4778         config/darwin.h:  Remove call to it.
4779         * combine.c (distribute_notes): Do not place a REG_DEAD note
4780         when value is both set and used.
4781
4782 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
4783
4784         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
4785         as well.
4786         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
4787         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
4788
4789 2004-02-27  Andrew Pinski  <apinski@apple.com>
4790
4791         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
4792         Speedup common case of the type values being in the same order.
4793
4794 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
4795
4796         * config/ia64/ia64.h (no-inline-float-divide): New option.
4797         * config/ia64/ia64.h (no-inline-int-divide): New option.
4798         * config/ia64/ia64.h (no-inline-sqrt): New option.
4799         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
4800         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
4801         * config/ia64/ia64.c (ia64_override_options): Modify error
4802         checking for inlined division/sqrt.
4803
4804 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
4805
4806         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
4807         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
4808         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
4809         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
4810         copyright.
4811
4812 2004-02-27  Paul Brook  <paul@codesourcery.com>
4813
4814         * function.c (assign_parms): Don't count pretend args for alignment.
4815
4816 2004-02-27  Richard Henderson  <rth@redhat.com>
4817
4818         * passes.c: New file.
4819         * Makefile.in (OBJS-common): Add it.
4820         * diagnostic.c (rtl_dump_and_exit): Move decl ...
4821         * flags.h (rtl_dump_and_exit): ... here.
4822         * output.h (size_directive_output, last_assemble_variable_decl):
4823         Move from toplev.c.
4824         * rtl.h (reg_alloc): Move from toplev.c.
4825         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
4826         struct dump_file_info, enum dump_file_index, dump_file_tbl,
4827         open_dump_file, close_dump_file, rest_of_decl_compilation,
4828         rest_of_type_compilation, rest_of_handle_final,
4829         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
4830         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
4831         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
4832         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
4833         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
4834         rest_of_handle_tracer, rest_of_handle_if_conversion,
4835         rest_of_handle_if_after_combine, rest_of_handle_web,
4836         rest_of_handle_branch_prob,
4837         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
4838         rest_of_handle_addressof, rest_of_handle_sibling_calls,
4839         rest_of_handle_jump_bypass, rest_of_handle_inlining,
4840         rest_of_handle_null_pointer, rest_of_handle_combine,
4841         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
4842         rest_of_handle_gcse, rest_of_handle_loop_optimize,
4843         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
4844         (decode_d_option): Use enable_rtl_dump_file.
4845         (compile_file, finalize, do_compile): Move profile+combine+graph
4846         cleanup to finish_optimization_passes.
4847         * toplev.h (init_optimization_passes, finish_optimization_passes,
4848         enable_rtl_dump_file): Declare.
4849
4850 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
4851             Roger Sayle  <roger@eyesopen.com>
4852
4853         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
4854         operands to build a tree with swapped operands.
4855         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
4856         'unsignedp' predicate to specify the signedness.
4857
4858 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
4859
4860         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
4861         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
4862         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
4863         comment typos and formatting.  Follow spelling conventions.
4864
4865 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
4866
4867         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
4868         fix_truncsfsi2.
4869
4870         * config/rs6000/spe.md: Delete spe_efsctuiz.
4871         Add spe_fixuns_truncsfsi2.
4872         Add spe_fix_truncsfsi2.
4873
4874 2004-02-26  Eric Christopher  <echristo@redhat.com>
4875
4876         * c-lex.c (c_lex_string_translate): New variable.
4877         (lex_string): Use to determine string translation.
4878         * c-pragma.h: Prototype.
4879         * c-parse.in (start_string_translation): New. Set above.
4880         (stop_string_translation): Ditto.
4881         (attribute, attribute_list, asm_def, asm_stmt,
4882         asm_operand): Use above functions.
4883         * cp/parser.c (cp_parser_declaration): Translate strings
4884         unless token is RID_EXTERN. Set c_lex_string_translate
4885         for recursive use.
4886         (cp_parser_asm_definition): Only translate argument strings
4887         to asms.
4888         (cp_parser_asm_operand_list): Ditto.
4889         (cp_parser_attribute_list): Do not translate attribute strings.
4890
4891 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4892
4893         * stmt.c (expand_start_case_dummy): Remove.
4894         * tree.h: Remove the corresponding prototype.
4895
4896 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4897
4898         * builtins.c (apply_args_register_offset): Remove.
4899         * tree.h: Remove the corresponding prototype.
4900
4901 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4902
4903         * stor-layout.c (is_pending_size): Remove.
4904         * tree.h: Remove the corresponding prototype.
4905
4906 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4907
4908         * recog.c (validate_replace_src): Remove.
4909         * recog.h: Remove the corresponding prototype.
4910
4911 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4912
4913         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
4914         MAYBE_REG_PARM_STACK_SPACE.
4915         * function.c: Likewise.
4916         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
4917         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
4918         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
4919         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
4920
4921 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4922
4923         * c-decl.c (c_expand_deferred_function): Remove.
4924         * c-tree.h: Remove the corresponding prototype.
4925
4926 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4927
4928         * postreload.c (reload_cse_move2add): Generate just a PLUS
4929         instead of an entire SET.
4930
4931 2004-02-26  Jan Hubicka  <jh@suse.cz>
4932
4933         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
4934         /pentium4m.
4935         * i386.c (override_options): Add support for new CPUs.
4936         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
4937         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
4938         constants.
4939         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
4940
4941 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
4942
4943         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
4944
4945 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
4946
4947         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
4948         (sparc_emit_fixunsdi): New prototype.
4949         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
4950         (sparc_emit_fixunsdi): New function.
4951         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
4952         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
4953         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
4954         to sparc_emit_floatunsdi.
4955         (fixuns_truncsfdi2): New expander.
4956         (fixuns_truncdfdi2): Likewise.
4957
4958 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
4959
4960         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
4961         unless HAVE_cc0.
4962
4963 2004-02-25  Richard Henderson  <rth@redhat.com>
4964
4965         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
4966         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
4967         use (op0-op1) == 0 if op0 is a pointer.
4968         * config/alpha/alpha.md (cmpdi): Use some_operand.
4969         (three comparison combine splits): Remove.
4970
4971 2004-02-25  Richard Henderson  <rth@redhat.com>
4972
4973         PR c/12794
4974         * c-common.c (handle_alias_attribute): Reject the attribute if
4975         current_function_decl is set.
4976
4977 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
4978
4979         * config.gcc: Add comment describing extra_gcc_objs.
4980         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
4981         * configure.ac (extra_gcc_objs): New substitution variable.
4982         (host_extra_gcc_objs): Don't substitute.
4983         * configure: Regenerate.
4984         * Makefile.in: Use extra_gcc_objs.
4985
4986 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
4987
4988         * doc/contrib.texi: Add an entry for myself.
4989
4990 2004-02-25  Jan Hubicka  <jh@suse.cz>
4991
4992         * basic-block.h (make_eh_edge, break_superblocks): Declare.
4993         * cfgbuild.c (make_eh_edge):  Make global.
4994         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
4995         * except.c (build_post_landing_pads, connect_post_landing_pads,
4996         dw2_build_landing_pads, sjlj_emit_function_enter,
4997         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
4998         sjlj_build_landing_pads): Update CFG.
4999         (emit_to_new_bb_before): New function.
5000         (finish_eh_generation): Do not rebuild the CFG.
5001
5002 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5003
5004         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
5005         target_cpu_default defines.
5006         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
5007         * pa.h (TARGET_DEFAULT): Likewise.
5008
5009 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
5010
5011         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
5012         comparisons with regard to signedness.
5013
5014 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
5015
5016         * arm.c (thumb_legitimize_address): New function.
5017         * arm-protos.h: Prototype it.
5018         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
5019         (LEGITIMIZE_ADDRESS): Use it.
5020
5021 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
5022
5023         * reload1.c (reload): Only spill eliminable register with multiple
5024         adjacent elimination alternatives if all alternatives fail.
5025
5026 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
5027
5028         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
5029         is -4095...+4095 inclusive.
5030
5031 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
5032
5033         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
5034         the bootstrap failure with Sun CC 5.4 and 5.5.
5035
5036 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
5037
5038         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
5039         which modifies NEWREG.
5040         (cse_condition_code_reg): Update the mode of CC_REG in
5041         CC_SRC_INSN on our own.
5042
5043 2004-02-24  Michael Matz  <matz@suse.de>
5044
5045         * config/i386/i386.c (ix86_comp_type_attributes): Check for
5046         regparm attributes.
5047
5048 2004-02-24  Richard Henderson  <rth@redhat.com>
5049
5050         * toplev.c (dump_file_tbl): Rename from dump_file.
5051         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
5052         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
5053         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
5054         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
5055         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
5056         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
5057         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
5058         s/rtl_dump_file/dump_file/g.
5059
5060 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
5061
5062         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
5063         (spe_fixuns_truncsfsi2): Delete.
5064
5065         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
5066         (fixuns_truncsfsi2): Delete.
5067
5068 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
5069
5070         PR/14240
5071         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
5072
5073 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
5074
5075         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
5076
5077 2004-02-24  Jason Merrill  <jason@redhat.com>
5078
5079         * tree.c (check_qualified_type): New fn.
5080         (get_qualified_type): Use it.  If type already has the desired
5081         quals, just return it.
5082         * tree.h: Declare it.
5083
5084 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
5085
5086         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
5087         TARGET_SCHED_FINISH_GLOBAL): New macros.
5088
5089         * target.h (md_init_global, md_finish_global): Function
5090         declarations corresponding to new target macros.
5091
5092         * haifa-sched.c (sched_init, sched_finish): Allow target to
5093         call the new schedular hooks.
5094
5095         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
5096         call to update_life_info.
5097
5098         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
5099         flag_schedule_insns for SH4.
5100
5101         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
5102         find_set_regmode_weight, find_insn_regmode_weight,
5103         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
5104         sh_variable_issue, high_pressure, ready_reorder,
5105         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
5106         functions used to throttle the insn movement in first
5107         scheduling pass for SH.
5108
5109         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
5110         TARGET_SCHED_FINISH_GLOBAL.
5111
5112 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
5113
5114         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
5115         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
5116         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
5117         symbols in sections named by the user.
5118         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
5119         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
5120         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
5121         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
5122         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
5123         the above.
5124         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
5125         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
5126         one more pseudo to further improve code generation.
5127         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
5128         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
5129         inside UNSPEC.
5130         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
5131         * config/frv/frv.c (frv_legitimate_address_p): Added
5132         allow_double_reg_p argument.  Adjust all callers.  Use it to
5133         decide whether to enable double-register indirect addressing.
5134         (frv_funcdesc_alias_set): Remove.
5135         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
5136         register.  Emit movdi_ldd.
5137         (ldd_address_operand): New.
5138         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
5139         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
5140         (PREDICATE_CODES): Add ldd_address_operand.
5141         * config/frv/frv.md (movdi_ldd): New.
5142         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
5143         intermediate computations if possible.
5144         (symGOTOFF2reg_i): Fix harmless typo.
5145         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
5146         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
5147         relocated p_vaddr to vaddr type.
5148         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
5149         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
5150         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
5151         MEM, or use a funcdesc alias set.  Use regular move instead of
5152         ldd.
5153         (dbl_memory_one_insn_operand): Recognize function descriptors by
5154         type or by alias set, and don't split them.
5155         * config/frv/frv.md (call, call_value): Never use call_internal
5156         for fdpic.
5157         (call_internal, call_value_internal): Never match for FDPIC.
5158         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
5159         call_value_fdpicsi): Require FDPIC.
5160         (ldd): Removed.
5161         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
5162         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
5163         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
5164         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
5165         FDPIC.  Compute data base address.
5166         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
5167         before the other self-specs are processed.
5168         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
5169         Build with -fPIC.
5170         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
5171         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
5172         inhibit_libc is defined.
5173         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
5174         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
5175         __FRV_FDPIC__.
5176         (__RELOC_POINTER): Define.
5177         (_Unwind_IteratePhdrCallback): Use it.
5178         * config/frv/frv.h (Twrite): Define.
5179         (TRANSFER_FROM_TRAMPOLINE): Use it.
5180         * config/frv/linux.h (INVOKE__main): Undefine.
5181         (Twrite): Override.
5182         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
5183         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
5184         (-mlibrary-pic): Emphasize that this option generates EABI code.
5185         (-mcpu): Add fr550.
5186         (-mpack): Remove.
5187         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
5188         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
5189         and CONSTs in FDPIC mode.
5190         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
5191         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
5192         * config/frv/frv.c (move_source_operand): Don't accept symbolic
5193         constants.
5194         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
5195         rather than 'i' constraint for the 2-instruction alternative.
5196         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
5197         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
5198         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
5199         EXTRA_CONSTRAINT_FOR_Y.
5200         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
5201         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
5202         (addsi3): Change 'Y' constraint to 'Q'.
5203         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
5204         * reload.c (CONST_POOL_OK_P): New macro.
5205         (find_reloads): Use it to decide whether a constant can be forced
5206         into memory.
5207         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
5208         constant satisfies got12_operand.
5209         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
5210         (frv_legitimate_address_p): Check for valid unspec offsets using
5211         got12_operand rather than frv_legitimate_fdpic_operand_p.
5212         (frv_legitimate_fdpic_operand_p): Delete.
5213         (frv_emit_movsi): Abort if we try to use the FDPIC register during
5214         or after reload.
5215         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
5216         TARGET_FDPIC.
5217         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
5218         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
5219         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
5220         (frv_fdpic_fptr_operand): Don't declare here.
5221         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
5222         rather than fdpic_got12_operand.
5223         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
5224         got12_operand and const_unspec_operand.
5225         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
5226         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
5227         (symbolic_operand): Remove.
5228         (const_unspec_operand): New predicate.
5229         * config/frv/frv.md (*movsi_got): Use got12_operand.
5230         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
5231         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
5232         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
5233         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
5234         * config/frv/frv.c (frv_unspec): New structure.
5235         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
5236         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
5237         validate CONST indices.  Use frv_output_const_unspec to print them.
5238         (frv_print_operand): Update call to unspec_got_name.  Use
5239         frv_output_const_unspec to print constant unspecs.
5240         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
5241         Reject UNSPECs otherwise.
5242         (unspec_got_name): Take the relocation number as argument, not an
5243         rtx containing it.
5244         (frv_output_addr_const_extra): Remove, replacing with...
5245         (frv_output_const_unspec): ...this new function.
5246         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
5247         (gpr_or_int12_operand): Use fdpic_got12_operand.
5248         (dbl_memory_one_insn_operand): Likewise.
5249         (fdpic_got12_operand): Use frv_const_unspec_p.
5250         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
5251         are already legitimate.  Use frv_small_data_reloc_p when deciding
5252         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
5253         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
5254         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
5255         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
5256         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
5257         label, for real this time.
5258         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
5259         representation of visibility.
5260         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
5261         such.
5262         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
5263         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
5264         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
5265         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
5266         it was explicitly disabled.
5267         (frv_stack_info): There is no need to save the link register in every
5268         frame unless TARGET_LINKED_FP is true.
5269         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
5270         frame pointer if the stack pointer might change value.
5271         (frv_return_addr_rtx): Check and process "count" argument.
5272         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
5273         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
5274         (frv_find_base_term): Declare.
5275         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
5276         (FIND_BASE_TERM): Define.
5277         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
5278         small_data_register_operand, small_data_symbolic_operand.  Add
5279         symbolic_operand.
5280         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
5281         (frv_print_operand_memory_reference, output_move_single): Remove
5282         special handling for unlegitimized sdata addresses.
5283         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
5284         and symbolic addresses.
5285         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
5286         (frv_find_base_term): New function.
5287         (int_2word_operand): Check specifically for symbolic address constants.
5288         (pic_register_operand, pic_symbolic_operand): Delete.
5289         (small_data_register_operand, small_data_symbolic_operand): Delete.
5290         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
5291         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
5292         (move_source_operand): Only accept CONSTs if they're a two-insn
5293         symbolic constant.
5294         (fdpic_got12_operand): Don't require TARGET_FDPIC.
5295         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
5296         using gen_symGOTOFF2reg*.
5297         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
5298         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
5299         themselves a cost of 3 insns.
5300         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
5301         Change predicate to symbolic_operand.
5302         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
5303         (*movsi_lda_sdata): Delete.
5304         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
5305         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
5306         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
5307         frv-*-*linux*.
5308         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
5309         label.
5310         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
5311         -multilib-library-pic.
5312         (LINK_SPEC): Add -z text for -mfdpic.
5313         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
5314         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
5315         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
5316         Override.
5317         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
5318         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
5319         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
5320         crtstuff-generated files.
5321         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
5322         * config.gcc: Add frv-*-*linux*.
5323         * config/frv/linux.h, config/frv/t-linux: New.
5324         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
5325         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
5326         when -mfdpic even if a linker script is explicitly listed.
5327         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
5328         * config/frv/frv.c (frv_override_options): Clear asm_out
5329         unaligned_op for SImode on FDPIC.
5330         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
5331         argument passed to decl_readonly_section.
5332         (frv_assemble_integer): Revert 2003-09-30's change, but make the
5333         whole block run with FDPIC even with -fno-PIC.
5334         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
5335         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
5336         symbol or label plus offset to memory.
5337         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
5338         GOTOFF and GPREL for LABEL_REF.
5339         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
5340         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
5341         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
5342         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
5343         * doc/invoke.texi: Document them.
5344         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
5345         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
5346         (frv_splittable_got_operand): Removed.
5347         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
5348         LO_SUM.  Add comments.
5349         (frv_override_options): Moved enabling of FDPIC to
5350         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
5351         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
5352         (frv_legitimize_fdpic_address): Don't duplicate logic in
5353         frv_emit_movsi.
5354         (frv_gen_GPsym2reg): New.
5355         (unspec_got_name): Added gprel.
5356         (frv_expand_fdpic_call): Add support for inlining PLTs.
5357         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
5358         (gpr_or_int12_operand): Added GPREL12.
5359         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
5360         (small_data_symbolic_operand): Fail if FDPIC.
5361         (fdpic_splittable_got_operand): Removed.
5362         (fdpic_got12_operand): Added GPREL12.
5363         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
5364         when appropriate.  Fix sdata GOTOFF.
5365         (frv_legitimate_constant_p): Require legitimate PIC operand for
5366         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
5367         (frv_assemble_integer): Move FDPIC funcdesc handling out of
5368         flag_pic case.
5369         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
5370         frv_assemble_integer fails.
5371         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
5372         (SUBTARGET_DRIVER_SELF_SPECS): New.
5373         (ASM_SPEC): Don't pass -mno-fdpic.
5374         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
5375         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
5376         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
5377         -multilib-library-pic.
5378         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
5379         condexec_si_media_operator, condexec_sf_add_operator and
5380         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
5381         and condexec_sf_unary_operator.
5382         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
5383         New.
5384         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
5385         movsi_internal.  Give them internal names.  movsi_got has type
5386         int.
5387         (fdpic got splitters): Remove.
5388         (symGPREL2reg, symGPREL2reg_hilo): New.
5389         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
5390         to -mlibrary-pic.  Map -multilib-library-pic to it.
5391         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
5392         Document.
5393         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
5394         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
5395         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
5396         (frv_cannot_force_const_mem): New function.
5397         (const_small_data_p, plus_small_data_p): Update comments on sdata
5398         on FDPIC.
5399         (frv_override_options): Set flag_pie for FDPIC too.
5400         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
5401         call-saved registers on FDPIC.
5402         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
5403         don't force LR to be preserved.
5404         (frv_expand_prologue): Likewise.
5405         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
5406         (frv_frame_pointer_required): Don't force it just because the
5407         FDPIC register is used.
5408         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
5409         operand only if !condexec_p.
5410         (frv_legitimize_address): Return the FDPIC-legitimized address.
5411         Don't match small data here on FDPIC.
5412         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
5413         symbols.  Use TRUE/FALSE instead of 1/0.
5414         (frv_local_funcdesc_p): New.
5415         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
5416         immediates when possible.
5417         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
5418         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
5419         an UNSPEC_GOT.
5420         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
5421         12-bit immediates when possible.
5422         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
5423         are not legitimate pic operands.
5424         (frv_in_small_data_p): Re-enable for FDPIC.
5425         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
5426         (FRV_GLOBAL_P): Removed.
5427         * config/frv/frv.md: Add modes to CONSTs.
5428         (movsi_got): New.
5429         (movsi_lo_sum_got): Use separate matches instead of match_dup.
5430         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
5431         (fdpic splittable operations): Match on flag_pic != 1.
5432         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
5433         * config/frv/frv.c (frv_asm_out_constructor,
5434         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
5435         bytes, not bits.
5436         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
5437         * config/frv/frv.c (frv_assemble_integer): Reject complex
5438         expressions referencing function SYMBOL_REFs.
5439         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
5440         (move_source_operand): Reject CONSTs that reference function
5441         SYMBOL_REFs on FDPIC.
5442         (frv_emit_movsi): If we get such a CONST, break it up.
5443         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
5444         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
5445         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
5446         MEM.
5447         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
5448         (frv_trampoline_size): Increase for FDPIC.
5449         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
5450         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
5451         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
5452         Disable use of GOTOFF for now.
5453         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
5454         Disable use of small data in FDPIC for now.
5455         (frv_asm_output_mi_thunk): Implement for FDPIC.
5456         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
5457         * config/frv/frv.c (frv_asm_out_constructor): Use
5458         frv_assemble_integer for FDPIC pointers.
5459         (frv_asm_out_destructor): Likewise.
5460         * config/frv/frv.md (ldd): Fix order of operands.  Use
5461         address_operand for input.
5462         2003-09-18  DJ Delorie  <dj@redhat.com>
5463         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
5464         (unspec_got_name): Correct typo.
5465         (frv_emit_movsi): Pre-expand splittable GOTs.
5466         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
5467         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
5468         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
5469         * config/frv/t-frv: Add -mfdpic multilibs.
5470         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
5471         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
5472         * config/frv/frv.c (frv_override_options): -mfdpic assumes
5473         flag_pic, default to 32-bit pics, require DWORD ops.
5474         (frv_override_options): Add W and Z constraints.
5475         (frv_expand_prologue): No pic prologue for -mfdpic.
5476         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
5477         (frv_print_operand_memory_reference): Handle GOT constants.
5478         (frv_legitimate_address_p): Allow GOT constants.
5479         (frv_legitimize_address): Handle GOT addresses too.
5480         (frv_legitimate_fdpic_operand_p): New.
5481         (frv_legitimize_fdpic_address): New.
5482         (unspec_got_name): New.
5483         (frv_output_addr_const_extra): New.
5484         (frv_expand_fdpic_call): New.
5485         (frv_fdpic_fptr_operand): New.
5486         (gpr_or_int12_operand): Handle GOT operands.
5487         (int_2word_operand): Handle GOT operands.
5488         (fdpic_operand): New.
5489         (fdpic_splittable_got_operand): New.
5490         (fdpic_got12_operand): New.
5491         (frv_emit_movsi): Handle GOT operands.
5492         (frv_assemble_integer): -mfdpic doesn't use rofixups.
5493         (frv_print_operand): Support 'g' code for GOT operands.
5494         * config/frv/frv-protos.h: Add prototypes as needed.
5495         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
5496         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
5497         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
5498         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
5499         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
5500         R_FRV_GOTOFFLO): New.
5501         (movsi_high_got, movsi_lo_sum_got): New.
5502         (*movsi_pic): Don't use this splitter for -mfdpic.
5503         (addsi3): Allow GOT references also.
5504         (call, call_value): Handle -mfdpic separately.
5505         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
5506         call_value_fdpicsi): New.
5507         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
5508         symGOTOFF2reg_i): New.
5509         * config/frv/frv.h (MASK_FDPIC): New.
5510         (TARGET_FDPIC): New.
5511         (TARGET_SWITCHES): Add -mfdpic.
5512         (FDPIC_FPTR_REGNO): New.
5513         (FDPIC_REGNO): New.
5514         (OUR_FDPIC_REG): New.
5515         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
5516         FDPIC_CALL_REGS.
5517         (REG_CLASS_NAMES): Likewise.
5518         (REG_CLASS_CONTENTS): Likewise.
5519         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
5520         (EXTRA_CONSTRAINT): Add it here.
5521         (FRV_GLOBAL_P): New.
5522         (OUTPUT_ADDR_CONST_EXTRA): New.
5523
5524 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
5525
5526         * config/sparc/sparc.h: Remove commented-out definitions of
5527         TARGET_EDOM and GEN_ERRNO_RTX.
5528
5529 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
5530
5531         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
5532         df_analyse with df_analyze.
5533
5534 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
5535
5536         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
5537         beginning of block.
5538
5539 2004-02-23  James E Wilson  <wilson@specifixinc.com>
5540
5541         * calls.c (precompute_arguments): Update comment.
5542
5543 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
5544
5545         * et-forest.c: Replace et_occurences with et_occurrences.
5546
5547 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
5548
5549         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
5550         with iv_analyze.
5551
5552 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
5553
5554         * config/i386/i386.c: Rename pni to sse3.
5555         * config/i386/i386.h: Likewise.
5556         * config/i386/i386.md: Likewise.
5557         * config/i386/pmmintrin.h: Likewise.
5558         * doc/extend.texi: Likewise.
5559         * doc/invoke.texi: Likewise.
5560
5561 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
5562             Kazu Hirata  <kazu@cs.umass.edu>
5563
5564         Remove -fwritable-strings.
5565         * c-common.c (fix_string_type): Don't check
5566         flag_writable_strings.
5567         (fix_string_type): Likewise.
5568         * c-opts.c (set_std_c89): Don't initialize
5569         flag_writable_strings.
5570         (set_std_c99): Likewise.
5571         * common.opt (fwritable-strings): Remove.
5572         * flags.h: Remove the external declaration of
5573         flag_writable_strings.
5574         * opts.c (common_handle_option) <OPT_fwritable_strings>:
5575         Remove.
5576         * toplev.c (flag_writable_strings): Remove.
5577         (f_options): Remove an entry for writable-strings.
5578         * varasm.c (const_hash_1) <STRING_CST>: Don't check
5579         flag_writable_strings.
5580         (compare_constant) <STRING_CST>: Likewise.
5581         (build_constant_desc): Likewise.
5582         * config/darwin.c (machopic_select_section): Likewise.
5583         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
5584         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
5585         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
5586         * config/mips/mips.c (mips_select_section): Likewise.
5587         (mips_encode_section_info): Likewise.
5588         * config/pa/pa.c (pa_select_section): Likewise.
5589         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
5590         * config/v850/v850.c (v850_select_section): Likewise.
5591         * doc/invoke.texi (-fwritable-strings): Remove.
5592         (-fno-const-strings): Don't mention -fwritable-strings.
5593         * doc/trouble.texi: Don't mention -fwritable-strings.
5594
5595 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
5596
5597         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
5598
5599 2004-02-23  Dale Johannesen  <dalej@apple.com>
5600
5601         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
5602         (movdf_hardfloat64):  Ditto.
5603         (movdf_softfloat64):  Ditto.
5604
5605 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
5606         * config/rs6000/rs6000.c (function_arg): call to
5607         rs6000_mixed_function_arg for DFmode moved to allow
5608         normal DFmode incoming register assignment.
5609
5610 2004-02-23  Dale Johannesen  <dalej@apple.com>
5611
5612         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
5613         (movdf_hardfloat64):  Ditto.
5614
5615 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
5616
5617         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
5618         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
5619         copyright.
5620
5621 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
5622
5623         PR c/14156
5624         * c-typeck.c (c_expand_return): Change check for VAR_DECL
5625         to use DECL_P instead.
5626
5627         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
5628         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
5629
5630 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
5631
5632         * Makefile.in (opts.o): Depend on target.h.
5633         * opts.c (decode_options): Use targetm.default_short_enums
5634         instead of DEFAULT_SHORT_ENUMS.
5635         * system.h (DEFAULT_SHORT_ENUMS): Poison.
5636         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
5637         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
5638         * target.h (gcc_target): Add default_short_enums.
5639         * config/cris/cris.h: Remove a comment about
5640         DEFAULT_SHORT_ENUMS.
5641         * config/ip2k/ip2k.h: Likewise.
5642         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
5643         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
5644
5645 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
5646             Falk Hueffner  <falk@debian.org>
5647
5648         PR c/14188
5649         * builtins.c (expand_builtin_va_arg): Emit an informative message
5650         if a trap is generated.
5651         * c-typeck.c (build_function_call): Likewise.
5652
5653 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
5654
5655         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
5656         fopen.
5657         * libgcov.c: Include sys/stat.h.
5658         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
5659         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
5660         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
5661         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
5662
5663 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
5664
5665         * reorg.c: Remove comments about dead ports.
5666
5667 2004-02-22  Christopher Faylor  <cgf@redhat.com>
5668
5669         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
5670         extra host object file when targetting cygwin rather than generic
5671         object files.
5672
5673 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
5674
5675         Merge from tree-ssa:
5676         2003-11-20  Richard Henderson  <rth@redhat.com>
5677
5678                 * tree-inline.c (insert_decl_map): New.
5679                 (remap_decl, remap_type, remap_block, copy_body_r,
5680                 initialize_inlined_parameters, declare_return_variable,
5681                 remap_save_expr): Use it.
5682
5683         * function.c (copy_body_r): Add mapping from id->ret_label to
5684         id->ret_label.  Revert test for ret_label.
5685
5686 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
5687
5688         * genoutput.c (process_template): Strip trailing whitespace in @
5689         templates and issue a warning if there was any.
5690
5691 2004-02-21  Christopher Faylor  <cgf@redhat.com>
5692
5693         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
5694         object file when targetting cygwin.
5695         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
5696         overridden by top-level Makefile.
5697
5698 2004-02-21  Roger Sayle  <roger@eyesopen.com>
5699
5700         * config/i386/i386.c (standard_80387_constant_p): Also prefer
5701         the x87's load constant instructions when optimizing for size.
5702
5703 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
5704
5705         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
5706         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
5707         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
5708         * fold-const.c: Likewise.
5709         * simplify-rtx.c: Likewise.
5710
5711 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
5712
5713         * combine.c (can_combine_p): Don't ignore SETs marked with
5714         REG_EH_REGION notes.
5715         (try_combine): When attemting to fix unrecognized insns, don't
5716         split a PARALLEL that contains the original i2.
5717
5718 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
5719
5720         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
5721         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
5722         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
5723         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
5724         (vector, pixel, bool): #define to __vector, __pixel and __bool.
5725         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
5726         portion of header.
5727         (__altivec_link_error_invalid_argument): Remove prototype; will use
5728         __builtin_altivec_compiletime_error("vec_*") instead.
5729         (vec_*): Fix/complete set of available operation overloads given the
5730         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
5731         cv-correctness of pointer arguments; in C, always check for correct
5732         argument types before macro expansion.
5733         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
5734         defining Darwin/PowerPC-specific '-f[no-]altivec' and
5735         '-W[no-]altivec-long-deprecated' switches.
5736         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
5737         '__vector', '__pixel' and '__bool' macros using
5738         '__attribute__((altivec(...)))' types.
5739         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
5740         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
5741         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
5742         New type nodes.
5743         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
5744         handling '-W[no-]altivec-long-deprecated'.
5745         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
5746         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
5747         altivec_expand_dst_builtin): Remove casts from integer literals.
5748         (altivec_expand_builtin): Likewise; handle expansion of new
5749         '__builtin_altivec_compiletime_error' function.
5750         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
5751         types, and make them distinct from other vector types; register
5752         '__builtin_altivec_compiletime_error' function.
5753         (print_operand): For 'P', print a full target register name instead of
5754         merely its number.
5755         (rs6000_attribute_table): Add "altivec" attribute.
5756         (rs6000_handle_altivec_attribute): New function.
5757         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
5758         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
5759         maps to).
5760         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
5761         declare.
5762         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
5763
5764 2004-02-20  James E Wilson  <wilson@specifixinc.com>
5765
5766         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
5767         check.
5768         (shift_mix4left+2): Delete redundant pattern.
5769
5770 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
5771
5772         * alias.c (OUTGOING_REGNO): Don't define the default.
5773         * builtins.c (OUTGOING_REGNO): Likewise.
5774         (INCOMING_REGNO): Likewise.
5775         (apply_args_register_offset): Always use OUTGOING_REGNO.
5776         * combine.c (OUTGOING_REGNO): Likewise.
5777         * sibcall.c (OUTGOING_REGNO): Likewise.
5778         * defaults.h (INCOMING_REGNO): Provide the default.
5779         (OUTGOING_REGNO): Likewise.
5780
5781 2004-02-21  Jan Hubicka  <jh@suse.cz>
5782
5783         * params.def (max-peeled-insns, max-completely-peeled-insns,
5784         max-once-peeled-insns): Set to 400.
5785
5786 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5787
5788         PR c++/12007
5789         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
5790         are set for parameters before outputing debugging information.
5791
5792 2004-02-20  Falk Hueffner  <falk@debian.org>
5793
5794         PR target/14201
5795         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
5796         numbers.
5797
5798 2004-02-20  Per Bothner  <per@bothner.com>
5799
5800         * input.h:  Don't #include line-map.h.  It may cause link problems
5801         with undefined linemap_line_start when line-map.h is included but
5802         line-map.o is not linked, as currently happens with gengtype on
5803         compilers that don't support inline.
5804         * toplev.c:  So we do have to explicitly #include line-map.h here.
5805
5806 2004-02-20  Richard Henderson  <rth@redhat.com>
5807
5808         * doc/invoke.texi: Add -Wvariadic-macros.
5809
5810 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
5811
5812         * haifa-sched.c (sched_emit_insn): Remove.
5813         * sched-int.h: Remove the corresponding prototype.
5814
5815 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
5816
5817         Revert:
5818         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5819         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
5820         * system.h (DEFAULT_SHORT_ENUMS): Poison.
5821         * config/cris/cris.h: Remove a comment about
5822         DEFAULT_SHORT_ENUMS.
5823         * config/ip2k/ip2k.h: Likewise.
5824         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
5825
5826 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
5827             Tom Tromey  <tromey@redhat.com>
5828
5829         * doc/install.texi: Moved --disable-libgcj and
5830         --with-system-zlib documentation to new section for
5831         Java-specific options.
5832         Added explicit Cross-Compiler-Specific Options subheading.
5833         Added section for Java-specific options.
5834
5835 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
5836
5837         * doc/install.texi (Building the Ada compiler): Remove
5838         example.
5839
5840 2004-02-20  James E Wilson  <wilson@specifixinc.com>
5841
5842         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
5843
5844 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
5845
5846         * gcc.c (process_command): Allow translation of the copyright
5847         symbol but not the rest of the copyright message.
5848         * gcov.c (print_version): Likewise.  Allow translation of the
5849         message about warranty.
5850
5851 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
5852
5853         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
5854         predicate.
5855         ("*andsi_clear"): Tweak constraints to not match postincrement.
5856         Adjust the predicate to exclude a volatile memory reference.
5857         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
5858         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
5859
5860 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
5861
5862         * move-if-change: Remove.
5863         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
5864         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
5865         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
5866         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
5867         (s-gtyp-gen, s-iov): Use the top level move-if-change.
5868         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
5869
5870 2004-02-19  James E Wilson  <wilson@specifixinc.com>
5871
5872         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
5873         for operand2.  Add condition that requires register_operand operand2
5874         before reload.
5875
5876 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
5877             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5878
5879         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
5880         * config/mips/mips.md: Expand comment above unaligned loads and stores.
5881
5882 2004-02-19  Richard Henderson  <rth@redhat.com>
5883
5884         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
5885         * tree.c (build0, build1, build2, build3, build4): Split out from...
5886         (build): ... here.  Call them.
5887         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
5888
5889         * convert.c (convert_to_integer): Remove extra build argument.
5890         * tree-inline.c (expand_call_inline): Likewise.
5891
5892 2004-02-19  Richard Henderson  <rth@redhat.com>
5893
5894         * c-opts.c (warn_variadic_macros): New.
5895         (c_common_handle_option): Set it.
5896         (sanitize_cpp_opts): Copy it to cpp_opts.
5897         * c.opt (Wvariadic-macros): New.
5898         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
5899         * cppinit.c (cpp_create_reader): Initialize it.
5900         * cppmacro.c (parse_params): Check it.
5901
5902 2004-02-19  David Daney <ddaney@avtrex.com>
5903
5904         PR preprocessor/14198
5905         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
5906         builtin_assert ("machine=mips")
5907
5908 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5909
5910         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
5911         * system.h (DEFAULT_SHORT_ENUMS): Poison.
5912         * config/cris/cris.h: Remove a comment about
5913         DEFAULT_SHORT_ENUMS.
5914         * config/ip2k/ip2k.h: Likewise.
5915         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
5916
5917 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
5918
5919         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
5920         when passing single SFmode quantities in general registers,
5921         put them in the high half.
5922
5923 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
5924
5925         * doc/md.texi (Standard Names): Document additional dependency on
5926         fix pattern.
5927
5928         * optabs.c (ftruncify): Remove.
5929         (expand_fix): Manually inline ftruncify above.
5930         (can_fix_p): Add FIXME note.
5931
5932 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
5933
5934         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
5935         spe_fixuns_truncsfsi2.
5936
5937         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
5938         fixuns_truncsfsi2.
5939
5940 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
5941
5942         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
5943         * testsuite/gcc.dg/20040219-1.c: New test.
5944
5945 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
5946
5947         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
5948         "*subsf3_cconly"): Subtraction is not commutative.
5949
5950 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
5951
5952         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
5953         (sdbout_symbol): If called before sdbout_init, queue DECL for
5954         later and return.
5955         (sdbout_init): Set sdbout_initialized true, process decls
5956         queued earlier by sdbout_symbol.
5957         (sdbout_finish): Use size_t for index variable.
5958
5959 2004-02-19  Jeff Law  <law@redhat.com>
5960
5961         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
5962         for unordered comparison codes.
5963
5964 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
5965
5966         * reload1.c (reload): Correct comment.
5967         (scan_paradoxical_subregs): Remove #if 0 and old comment.
5968         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
5969         register variables are not used by reload.
5970
5971 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
5972
5973         PR target/14209
5974         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
5975         constraints to not match postincrement.  Adjust the predicate to
5976         exclude a volatile memory reference.
5977
5978 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5979
5980         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
5981
5982 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5983
5984         * hooks.c (hook_void_tree_int): Remove.
5985         (hook_void_constcharptr): Likewise.
5986         (hook_int_void_0): Likewise.
5987         * hooks.h: Remove the prototypes for the above three
5988         functions.
5989         * targhooks.c (hook_bool_machine_mode_true): Remove.
5990         * targhooks.h: Remove the prototype for
5991         hook_bool_machine_mode_true.
5992
5993 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5994
5995         * emit-rtl.c (subreg_realpart_p): Remove.
5996         (reorder_insns_with_line_notes): Likewise.
5997         (end_full_sequence): Likewise.
5998         * rtl.h: Remove the prototype for the above functions.
5999
6000 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
6001
6002         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
6003         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
6004         config/iq2000/iq2000.h, config/m32r/m32r.h,
6005         config/pdp11/pdp11.h, config/sparc/sparc.h,
6006         config/xtensa/xtensa.h: Remove commented-out or useless
6007         definitions of CASE_VECTOR_PC_RELATIVE.
6008
6009 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
6010
6011         * loop.c (all_sets_invariant_p): Remove.
6012
6013 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
6014
6015         PR target/12916
6016         * config/sparc/sparc.h (NPARM_REGS): Delete.
6017         (BASE_RETURN_VALUE_REG): Likewise.
6018         (BASE_OUTGOING_VALUE_REG): Likewise.
6019         (BASE_PASSING_ARG_REG): Likewise.
6020         (BASE_INCOMING_ARG_REG): Likewise.
6021         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
6022         TARGET_ARCH64, not TARGET_V9.
6023         (function_arg_slotno): Dispatch based on the mode class.
6024         Handle vector modes like floating-point modes.
6025         (function_arg_record_value_1): Handle vector types like
6026         floating-point types.
6027         (function_arg_record_value_2): Likewise.
6028         Calculate regno after mode transformation.
6029         (function_arg): Handle vector modes like floating-point modes.
6030         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
6031         If ARCH64, do not recheck alignment.
6032         (function_arg_pass_by_reference): Reorder the conditions.
6033         (sparc_return_in_memory): Move after function_arg_padding.
6034         Implement calling conventions for vector modes.
6035         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
6036         (function_value): Move scope of 'regbase'.
6037         Implement calling conventions for vector modes.
6038         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
6039         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
6040         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
6041         the argument is passed by reference.
6042         (sparc_type_code): Handle vector types.
6043
6044 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
6045
6046         * function.c (assign_parms): When building decl_rtl for
6047         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
6048
6049 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
6050
6051         * expr.c (is_aligning_offset): Check if we are aligning the
6052         expressions's address over BIGGEST_ALIGNMENT in bytes, not
6053         in bits.
6054
6055 2003-02-18  Matt Austern  <austern@apple.com>
6056
6057         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
6058         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
6059         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
6060         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
6061         spec string.
6062         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
6063
6064 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
6065
6066         * dwarf2out.c (loclabel_num): Move outside #ifdef
6067         DWARF2_DEBUGGING_INFO and mark with GTY(()).
6068         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
6069         Mark with GTY(()).
6070         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
6071         Allocate memory with ggc_alloc.  No need to copy anything.
6072         (ia64_hpux_file_end): Update to match.
6073
6074 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
6075
6076         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
6077         by default.
6078
6079 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
6080
6081         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
6082         ("divmodtisi3"): Likewise.
6083         ("udivmoddi4", "udivmodtidi3"): Likewise.
6084         ("divmodsi4", "divmoddisi3"): Likewise.
6085         ("udivmodsi4", "udivmoddisi3"): Likewise.
6086         ("udivsi3", "umodsi3"): Likewise.
6087
6088 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
6089
6090         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
6091         placeholder insn when chunkifying the pool.
6092
6093 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6094
6095         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
6096         generating PIC code.
6097
6098 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6099
6100         * config/h8300/h8300-protos.h: Add a prototype for
6101         h8300_expand_branch.
6102         * config/h8300/h8300.c (h8300_expand_branch): New.
6103         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
6104         bgtu, beq, bne): Call h8300_expand_branch().
6105
6106 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6107
6108         * config/h8300/h8300-protos.h: Add prototypes for
6109         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
6110         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
6111         (h8300_hard_regno_mode_ok): Likewise.
6112         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
6113         h8300_hard_regno_nregs().
6114         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
6115
6116 2004-02-18  Per Bothner  <per@bothner.com>
6117
6118         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
6119         partly reverts my 2003-10-01 change, because we're back to logically
6120         including <command line> inside the main line.
6121         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
6122         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
6123         Fixes PR preprocessor/14103.
6124
6125         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
6126         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
6127         (cpp_push_include):  Don't need to increment pfile's line field.
6128         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
6129
6130         * c-ppoutput.c (print struct):  New first_time field.
6131         (init_pp_output):  Set print.first_time.
6132         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
6133         which is set also for (say) <command line>.  Clear print.first_time.
6134
6135         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
6136         does not match the code, so fix both.
6137         (should_stack_file):  Inline include_pch_p function.
6138         (include_pch_p):  Remove pointless function.
6139
6140         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
6141
6142 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6143
6144         * config/h8300/h8300.md (four define_peephole2's): Use
6145         h8300_regs_ok_for_stm().
6146
6147 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6148
6149         * config/h8300/h8300-protos.h: Update the prototype for
6150         expand_a_rotate().
6151         * config/h8300/h8300.c (expand_a_rotate): Remove the first
6152         argument.
6153         * config/h8300/h8300.md: Update all callers.
6154
6155 2004-02-18  Jan Hubicka  <jh@suse.cz>
6156
6157         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
6158         floats.
6159         (simplify_binary_operation): Deal with logicals on floats.
6160
6161         * i386.md (SSE fabs splitters): Emit new patterns.
6162         (SSE cmov splitters): Likewise.
6163         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
6164         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
6165         subregs.
6166         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
6167         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
6168
6169 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6170
6171         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
6172         by hand.
6173         (output_a_rotate): Tweak a comment.
6174         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
6175         (*rotlhi3_1): Change to rotlhi3_1.
6176         (*rotlsi3_1): Change to rotlsi3_1.
6177
6178 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
6179
6180         PR target/13866
6181         * arm.c (load_multiple_operation): Don't insist that the source reg
6182         of a post-increment component is the same as the destination.
6183         (store_multiple_operation): Likewise.
6184
6185 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6186
6187         * config/h8300/h8300.md: Move movsf patterns into one section
6188         of the file.
6189
6190 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6191
6192         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
6193         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
6194         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
6195         config/mips/linux64.h, config/pa/pa-64.h,
6196         config/rs6000/aix51.h, config/rs6000/aix52.h,
6197         config/rs6000/spe.md, config/sparc/linux.h,
6198         config/sparc/linux64.h: Update copyright.
6199
6200 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6201
6202         * config/h8300/h8300.md: Move push patterns into one
6203         section of the file.
6204
6205 2004-02-18  Mark Mitchell <mark@codesourcery.com>
6206
6207         PR c++/11326
6208         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
6209         fntype.
6210
6211 2004-02-18  Paul Brook  <paul@codesourcery.com>
6212
6213         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
6214
6215 2004-02-18  Paul Brook  <paul@codesourcery.com>
6216
6217         PR debug/12934
6218         * dwarf2out.c (loc_descriptor_from_tree): Handle
6219         EXPR_WITH_FILE_LOCATION.
6220
6221 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
6222
6223         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
6224         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
6225         trailing whitespace from instructions.
6226
6227 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
6228
6229         * configure.ac: When generating auto-build.h, pass
6230         --enable-languages to the sub-configure.
6231         Put quotes around ${program_transform_name} when generating
6232         name of as, ld, nm, objdump.
6233         * configure: Regenerate.
6234
6235 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
6236
6237         * Makefile.in (s-check, s-config, s-conditions, s-flags)
6238         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
6239         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
6240         (s-preds, s-iov): Do not depend on move-if-change.
6241
6242 2004-02-17  James E Wilson  <wilson@specifixinc.com>
6243
6244         * caller-save.c (insert_restore): Pass mem through copy_rtx.
6245         (insert_save): Likewise.
6246
6247 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6248
6249         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
6250         warning.
6251
6252 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6253
6254         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
6255         *one_cmplsi2_h8300.
6256         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
6257
6258 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6259
6260         * config/h8300/h8300-protos.h: Update the prototype of
6261         fix_bit_operand().
6262         * config/h8300/h8300.c (fix_bit_operand): Remove the second
6263         argument "what".
6264         * config/h8300/h8300.md: Update all callers.
6265
6266 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6267
6268         * config/h8300/h8300.c (fix_bit_operand): Change the name of
6269         the last argument to "code" from "type".
6270
6271 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6272
6273         * config/h8300/h8300.c: Remove an extern declaration of
6274         rtx_equal_function_value_matters.
6275
6276 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6277
6278         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
6279         by hand.
6280         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
6281         (*iorqi3_1): Change to iorqi3_1.
6282         (*xorqi3_1): Change to xorqi3_1.
6283
6284 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6285
6286         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
6287         typos.
6288
6289 2004-02-17  Jan Hubicka  <jh@suse.cz>
6290
6291         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
6292
6293 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
6294
6295         PR optimization/14119
6296         * combine.c (try_combine): When attemting to fix unrecognized insns,
6297         don't delete SETs marked with REG_EH_REGION notes.
6298
6299 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
6300
6301         * combine.c (simplify_if_then_else): Do not replace
6302         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
6303         modes differ.
6304
6305 2004-02017  Steven Bosscher  <stevenb@suse.de>
6306
6307         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
6308         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
6309         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
6310         * ada/utils.c: Likewise.
6311         * cp/decl.c: Likewise.
6312         * f/com.c: Likewise.
6313         * java/class.c: Likewise.
6314
6315 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6316
6317         * config/h8300/h8300.md: Fix comment typos.
6318
6319 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6320
6321         * config/mips/t-iris6gld: Renamed to ...
6322         * config/mips/t-irix-gld: ... this.
6323         * config.gcc (mips-sgi-irix6*): Reflect this
6324         (mips-sgi-irix5*): Use it with GNU ld.
6325
6326         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
6327         to ...
6328         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
6329         * config/mips/t-irix-gld: Reflect this.
6330         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
6331
6332         * config/mips/iris5gld.h: New file.
6333         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
6334         Only use collect2 without gas.
6335
6336         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
6337         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
6338         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
6339         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
6340
6341         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
6342         * config/mips/iris5.h: ... here.
6343
6344         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
6345         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
6346         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
6347
6348         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
6349         using irix_startfile_spec, irix_endfile_spec.
6350
6351 2004-02-16  Gunther Nikl  <gni@gecko.de>
6352
6353         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
6354
6355 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6356
6357         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
6358         insns by hand.
6359
6360 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6361
6362         * cfghooks.c (split_edge): Speed up updating of dominators.
6363
6364 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
6365
6366         PR c++/11326
6367         * c-common.c (flag_abi_version): Remove.
6368         * c-common.h (flag_abi_version): Likewise.
6369         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
6370         * c.opt (fabi-version): Remove.
6371         * calls.c (expand_call): Always pass a function type to
6372         struct_value_rtx.  Use convert_memory_address.
6373         * common.opt (fabi-version): Add it.
6374         * flags.h (flag_abi_version): Likewise.
6375         (abi_version_at_least): New macro.
6376         * opts.c (common_handle_option): Add OPT_fabi_version.
6377         * toplev.c (flag_abi_version): Define it.
6378         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
6379         New function.
6380         (ia64_output_mi_thunk): Use it.
6381         (ia64_struct_value_rtx): Likewise.
6382
6383 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6384
6385         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
6386         Don't generate insns by hand.
6387
6388 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
6389
6390         PR c++/14178
6391         * doc/invoke.texi (fabi-version): The default is 2 now.
6392
6393 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6394
6395         * loop-iv.c: New file.
6396         * Makefile.in (loop-iv.o): New.
6397         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
6398         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
6399         num_loop_branches): New functions.
6400         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
6401         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
6402         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
6403         get_simple_loop_desc, free_simple_loop_desc): Declare.
6404         (simple_loop_desc): New inline function.
6405         (struct rtx_iv, struct niter_desc): New.
6406         * cfgloopmanip.c (loopify): Specify semantics more precisely.
6407         * expr.c (force_operand): Handle subregs of expressions created by
6408         loop unroller.
6409         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
6410         parts of the initialization to toplev.c
6411         * loop-unroll.c (loop_exit_at_end_p): New.
6412         (unroll_and_peel_loops): Call iv_analysis_done.
6413         (decide_peel_once_rolling, decide_peel_completely,
6414         decide_unroll_stupid, decide_unroll_constant_iterations,
6415         decide_unroll_runtime_iterations, decide_peel_simple,
6416         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
6417         unroll_loop_runtime_iterations): Use new simple loop analysis.
6418         * loop-unswitch.c (compare_and_jump_seq): New.
6419         (may_unswitch_on_p): Renamed to ...
6420         (may_unswitch_on): Use new iv analysis.
6421         (reversed_condition): Export.
6422         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
6423         * predict.c (estimate_probability): Use new simple loop analysis.
6424         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
6425         canon_condition, simplify_using_condition): Declare.
6426         * stor-layout.c (get_mode_bounds): New.
6427         * toplev.c (rest_of_handle_loop2): Some parts of
6428         initialization/finalization moved here from loop-init.c.
6429
6430 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6431
6432         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
6433         pointer.
6434         (CALL_USED_REGISTERS): Likewise.
6435         (REG_ALLOC_ORDER): Likewise.
6436         (REG_CLASS) <GENERAL_REGS>: Likewise.
6437
6438 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
6439
6440         * doc/md.texi (Insn Canonicalizations): Document left-chaining
6441         in associative operators.
6442         * rtlanal.c (commutative_operand_precedence): Create some new
6443         variables.  Prefer a commutative operand on the left, then
6444         binary expressions, then NEG and NOT.
6445
6446 2004-02-16  Matthias Klose  <doko@debian.org>
6447
6448         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
6449         in terms of SHLIB_SOVERSION.
6450         * config/m68k/t-slibgcc-elf-ver: New file.
6451         * config/pa/t-slibgcc-elf-ver: New file.
6452         * config.gcc (m68k-linux, parisc-linux): Use them when not
6453         sjlj exceptions are not configured.
6454
6455 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
6456
6457         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
6458
6459 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
6460
6461         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
6462
6463 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
6464
6465         * doc/sourcebuild.texi: Mention backends.html.
6466
6467 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
6468
6469         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
6470         line-map.c, line-map.h, var-tracking.c: Fix comment
6471         formatting.
6472
6473 2004-02-16  Richard Henderson  <rth@redhat.com>
6474
6475         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
6476
6477         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
6478
6479 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
6480
6481         * config/h8300/h8300.md: Remove unnecessary parallels from
6482         all define_insn and define_split patterns.
6483
6484 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
6485
6486         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
6487         "clobber").
6488
6489 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
6490
6491         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
6492         '%#'.
6493
6494 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
6495
6496         * config/ia64/ia64.c, config/mips/mips.c,
6497         config/mmix/mmix-modes.def: Fix comment typos.
6498
6499 2004-02-15  Roger Sayle  <roger@eyesopen.com>
6500
6501         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
6502         (get_directive_line): Remove unused function prototype.
6503
6504 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
6505
6506         * tree-inline.c (copy_body_r): Do not replace ret_label.
6507
6508 2004-02-14  Jan Hubicka  <jh@suse.cz>
6509
6510         * i386.c (x86_four_jump_limit): New variable.
6511         (k8_avoid_jump_misspredicts): Rename to ...
6512         (ix86_avoid_jump_misspredicts): .. this one.
6513         (ix86_pad_returns): Break out from ...
6514         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
6515         to.
6516         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
6517
6518 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
6519
6520         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
6521         PARALLEL is NULL.
6522
6523 2004-02-14  Per Bothner  <per@bothner.com>
6524
6525         * fix-header.c (line_table):  Move local variable in main to global.
6526         * scan.h (line_table):  Use it.
6527         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
6528         line (recently renamed to src_loc) before calling recognized_function.
6529
6530 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
6531
6532         * Makefile.in: Fix comment typos.
6533
6534 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
6535
6536         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
6537         for start_value when it is directly moved into reg, and factorize
6538         the retrieval of GET_MODE (reg).
6539
6540 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
6541
6542         * config/mips/mips-protos.h (mips_load_got_page): Delete.
6543         (mips_load_got_global): Delete.
6544         (mips_gotoff_page): Declare.
6545         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
6546         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
6547         UNSPEC_LOAD_GOT pattern rather than a MEM.
6548         (*load_got[sd]i): New patterns.
6549         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
6550         (mips_load_got_page, mips_load_got_global): Delete.
6551         (mips_gotoff_page): New function.
6552         (override_options): Don't initialize mips_got_alias_set.
6553
6554 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
6555
6556         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
6557         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
6558         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
6559         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
6560         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
6561         * config/mips/mips.c: Fix some overly-long lines.
6562         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
6563         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
6564
6565 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6566
6567         * configure.ac: Search for as, ld below libexec/gcc.
6568         * configure: Regenerate.
6569
6570 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
6571
6572         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
6573         __builtin_arm_setwcx ().
6574         * config/arm/arm.c (arm_expand_builtin): Generate operands
6575         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
6576
6577 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
6578
6579         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
6580         and "wmuluh" to "wmulsm" and "wmulum", respectively.
6581         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
6582         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
6583         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
6584         (_mm_mulhi_pu16): Likewise.
6585
6586 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
6587
6588         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
6589         DECL_NAME != 0 before dereferencing.
6590
6591 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
6592
6593         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
6594         (s390_output_addr_const_extra): Declare.
6595         (s390_output_pool_entry): Remove FILE * argument.
6596         * config/s390/s390.c (s390_output_symbolic_const): Remove.
6597         (s390_output_addr_const_extra): New function.
6598         (print_operand_address): Call output_addr_const instead of
6599         s390_output_symbolic_const.
6600         (print_operand): Likewise.
6601         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
6602         Remove FILE * argument.
6603         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
6604         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
6605         call.
6606
6607 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6608
6609         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
6610         (struct edge, struct vertex, struct graph): New.
6611         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
6612         free_graph): New functions.
6613
6614 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
6615
6616         * config/mips/mips.md (casesi_internal, casesi_internal_di):
6617         Use ".set macro" to avoid warnings about multi-instruction
6618         macros, since they're intentional.
6619
6620 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
6621
6622         * config/darwin.h: Add include guards.  Remove old, now incorrect,
6623         comment about STANDARD_EXEC_PREFIX.
6624
6625         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
6626         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
6627         for installing .1 manpages.  Add rules for installing cpp
6628         and gcov manpages under their installed names.
6629
6630 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
6631
6632         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
6633         host, but try LD_FOR_TARGET first.
6634         * configure: Rebuilt.
6635
6636 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
6637
6638         * dbxout.c: Move declaration of dbxout_type_decl outside
6639         #ifdef DBX_DEBUGGING_INFO.
6640         * c-parse.in: Don't give the asmdef production a type.
6641
6642 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
6643
6644         * debug.h (struct gcc_debug_hooks): Add type_decl field.
6645         (debug_nothing_tree_int): Prototype.
6646         (dwarf_debug_hooks): Delete, unused.
6647         * debug.c (do_nothing_debug_hooks): Update.
6648         (debug_nothing_tree_int): New function.
6649         * langhooks.h (struct lang_hooks_for_decls):
6650         Remove builtin_type_decls field.
6651         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
6652         (LANG_HOOKS_DECLS): Update.
6653         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
6654         Use debug_hooks->type_decl.
6655         * dbxout.c (preinit_symbols): New static.
6656         (dbx_debug_hooks, xcoff_debug_hooks): Update.
6657         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
6658         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
6659         for symbols to output.
6660         (dbxout_type_decl): New function.
6661         (dbxout_symbol): If called before dbxout_init has run, queue
6662         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
6663         to TYPE_DECLs before emitting them.
6664         * xcoffout.c (assign_type_number): Delete.
6665         (xcoff_type_numbers): New static table.
6666         (xcoff_assign_fundamental_type_number): New function.
6667         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
6668         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
6669         * sdbout.c: Include varray.h.
6670         (deferred_global_decls): New static.
6671         (sdb_debug_hooks): Update.
6672         (sdbout_global_decl): If we can't emit something right now,
6673         remember it in deferred_global_decls.
6674         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
6675         (sdbout_init): Initialize deferred_global_decls.
6676         * Makefile.in: Update dependencies of sdbout.o.
6677         * dwarf2out.c (dwarf2out_type_decl): New function.
6678         (dwarf2_debug_hooks): Update.
6679         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
6680         * c-decl.c (getdecls): Just return 0.
6681         (check_for_loop_decls): Don't use getdecls.
6682         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
6683         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
6684
6685 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
6686
6687         * config/s390/s390.c (s390_sched_reorder2): Remove.
6688         (TARGET_SCHED_REORDER2): Do not redefine.
6689
6690 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
6691
6692         * c-parse.in (maybe_type_qual): Delete.
6693         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
6694         (asm_argument): New grammar rules.
6695         (extdef_1): Use asmdef.
6696         (maybeasm): Move down with other asm rules; use simple_asm_expr.
6697         (xexpr): Move up with other expression rules.
6698         (stmt): Use asm_stmt.
6699
6700         * c-typeck.c (build_asm_expr): New function - body mostly
6701         pulled from build_asm_stmt.
6702         (build_asm_stmt): Just handle tacking on the volatile qualifier.
6703         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
6704
6705 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
6706
6707         PR bootstrap/13617
6708         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
6709         (mips_declare_object): Make variadic.
6710         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
6711         mips_output_aligned_decl_common.
6712         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
6713         (mips_declare_object): Make variadic.
6714
6715 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6716
6717         * function.c (update_epilogue_consts): Teach about binary operations.
6718
6719         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
6720         previous MEM_VOLATILE in REF.
6721         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
6722         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
6723
6724 2004-02-12  Gunther Nikl  <gni@gecko.de>
6725
6726         * config.gcc: Restore support for m68k-openbsd.
6727
6728 2004-02-12  Jan Hubicka  <jh@suse.cz>
6729
6730         * tree-optimize.c (tree_rest_of_compilation): Do not release
6731         DECL_ARGUMENTS.
6732
6733 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
6734
6735         * doc/install.texi: Fix the spelling of "explicitly".
6736
6737 2004-02-11  Eric Christopher  <echristo@redhat.com>
6738
6739         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
6740         duplicate argument structure of cpp_interpret_string.
6741         * cpphash.h: Move prototype...
6742         * cpplib.h: Here.
6743         * cpplib.c: Fix calls to match new function signature.
6744
6745 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
6746
6747         PR c/456
6748         * cppexp.c (num_binary_op): Don't allow comma operators in #if
6749         constant expressions at all outside C99 mode if pedantic.
6750
6751 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
6752
6753         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
6754         (log10_optab, log2_optab): Define corresponding macros.
6755         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
6756         * genopinit.c (optabs): Implement log10_optab and log2_optab
6757         using log10?f2 and log2?f2 patterns.
6758         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
6759         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
6760         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
6761         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6762
6763         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
6764         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
6765         log2, log2f and log2l built-ins as inline x87 intrinsics.
6766
6767 2004-02-11  Richard Henderson  <rth@redhat.com>
6768
6769         PR target/1532
6770         * flow.c (insn_dead_p): A clobber of a dead hard register is a
6771         dead insn after reload.
6772
6773 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
6774
6775         * tree.h (frame_base_decl): Add GTY marker.
6776         * var-tracking.c (frame_base_decl): Likewise.
6777
6778 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
6779
6780         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
6781         incorrect, hunk.
6782         (add_location_or_const_value_attribute): Use text_section_label,
6783         not TEXT_SECTION_NAME.
6784
6785 2004-02-11  Per Bothner  <per@bothner.com>
6786
6787         Represent column numbers using line-map's source_location.
6788         The "next available source_location" is now managed internally by
6789         line-maps.c rather than by clients.
6790         * line-map.h (struct line_map):  New field column_bits.
6791         <from_line>:  Rename field to start_location.
6792         (struct line_maps):  New fields highest_location and max_column_hint.
6793         (linemap_check_files_exited):  New declaration.
6794         (linemap_line_start):  New declaration.
6795         (linemap_add):  Remove from_line parameter; use highest_location field.
6796         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
6797         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
6798         (CURRENT_LINE_MAP):  Remove macro.
6799         (linemap_position_for_column):  New inline function.
6800         * line-map.c (linemap_init):  Clear new fields.
6801         (linemap_check_files_exited):  New function, extracted from ...
6802         (linemap_free):  Use linemap_check_files_exited.
6803         (linemap_add):  Remove from_line parameter.  Various updates.
6804         (linemap_line_start):  New function.
6805         (linemap_lookeup):  Update for new field names.
6806         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
6807         linemap_position_for_column may unpredictably change the current map,
6808         it is cleaner and simpler for us to not cache it in cpp_reader.
6809         (struct cpp_buffer):  New sysp field.
6810         Changed warned_cplusplus_comments and from_stage3 to bitfields.
6811         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
6812         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
6813         current map using linemap_lookup.
6814         (do_linemarker):  Also set buffer's sysp field.
6815         (destringize_and_run):  No longer need to decrement current line.
6816         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
6817         (search_path_head, open_file_failed):  Use buffer's sysp.
6818         (cpp_make_system_header):  Get current map using linemap_lookup.
6819         Also set buffer's sysp flag.
6820         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
6821         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
6822         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
6823         (struct cpp_reader):  ... and adding saved_line_base field.
6824         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
6825         Update accordingly.  Don't adjust line.
6826         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
6827         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
6828         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
6829         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
6830         * cpplex.c (_cpp_lex_direct):  Likewise.
6831         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
6832         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
6833         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
6834         Remove col field as it is now subsumed by src_loc.
6835         * cpperror.c:  Update various field, parameter, and macro names.
6836         (print_location):  If col==0, try SOURCE_COLUMN of line.
6837         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
6838         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
6839         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
6840         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
6841         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
6842         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
6843         (_cpp_lex_direct):  Use linemap_position_for_column.
6844         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
6845         parameter.  Instead get it from the line_table global.  Adjust callers.
6846         (print):  Remove map field.  Replace line field to src_line.
6847         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
6848         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
6849         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
6850         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
6851         * cpptrad.c (copy_comment):  Rename variable.
6852         * c-lex.c (map):  Remove static variable, for same reason we removed
6853         cpp_reader's map field.
6854         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
6855         to call linemap_lookup.
6856         (cb_line_change):  Token's line field replaced by src_loc.
6857         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
6858         Don't save new_map.
6859
6860         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
6861         source_location.
6862
6863 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
6864
6865         * config/rs6000/altivec.md (*movv4si_internal): At least one
6866         operand must be register_operand.
6867         (*movv8hi_internal1): Likewise.
6868         (*movv16qi_internal1): Likewise.
6869         (*movv4sf_internal1): Likewise.
6870
6871 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
6872
6873         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
6874         operand.
6875         (movv4hi_internal): Same.
6876         (movv2sf_internal): Same.
6877         (movv1di_internal): Same.
6878
6879 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
6880
6881         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
6882         TARGET_OLDABI consistently.
6883         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
6884         mips_va_arg,override_options,compute_frame_size,
6885         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
6886         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
6887         and TARGET_OLDABI consistently.
6888         * config/mips/mips.md (exception_receiver): Likewise.
6889         * config/mips/linux64.h: Likewise.
6890
6891 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
6892
6893         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
6894         Set AltiVec ABI and vrsave as default for ppc64 linux.
6895         (init_cumulative_args): Post error, if try to return
6896         value in AltiVec register without enable AltiVec.
6897         (function_arg_advance): Ditto for passing arguments.
6898
6899 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
6900
6901         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
6902         a label before updating its usage count.
6903
6904 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
6905
6906         * doc/install.texi: Remove extra cd.
6907
6908 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
6909
6910         * c-common.c (vector_size_helper): Remove; call
6911         reconstruct_complex_type() instead.
6912         * tree.c (reconstruct_complex_type): New function
6913         (formerly vector_size_helper() in c-common.c).
6914         (make_vector): Make externally visible.
6915         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
6916
6917 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
6918
6919         * config/h8300/h8300-protos.h: Add a prototype for
6920         h8300_regs_ok_for_stm.
6921         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
6922         * config/h8300/h8300.md (stm_h8300s_2_advanced,
6923         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
6924         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
6925         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
6926         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
6927         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
6928         ldm_h8300s_4_normal, ldm_h8300s_4): Use
6929         h8300_regs_ok_for_stm().
6930
6931 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
6932
6933         PR c/14088
6934         * real.c (real_from_string): Look for 'X' as well as 'x' in
6935         hexfloat strings.
6936
6937 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
6938
6939         * config/h8300/h8300.md: Remove an incorrect comment about
6940         peephole2.  Add comments.
6941
6942 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
6943
6944         PR/14058
6945         * emit-rtl.c (set_decl_incoming_rtl): New.
6946         * tree.h (set_decl_incoming_rtl): New.
6947         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
6948         DECL_INCOMING_RTL.
6949         * ada/misc.c (adjust_decl_rtl): Likewise.
6950
6951 2004-02-10  Per Bothner  <per@bothner.com>
6952
6953         * c-opts.c (c_common_post_options):   Don't emit working directory
6954         in cpp output if -P was specified.
6955
6956 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
6957
6958         PR c/14092
6959         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
6960         negate_expr back to the original type.
6961
6962 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
6963
6964         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
6965         bump retaddr here.
6966
6967 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
6968
6969         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
6970         gen_lowpart_SUBREG): Move under the file in which they
6971         are actually declared.
6972
6973 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
6974
6975         * doc/sourcebuild.texi: Add libada documentation.
6976
6977         * doc/install.texi: Update documentation on Ada build, now
6978         that the GNAT lib and tools are built automatically.
6979
6980 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
6981
6982         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
6983         && TARGET_IRIX.
6984
6985 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
6986
6987         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
6988         boundaries outside build_component_ref() call (a macro in ObjC++).
6989
6990 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
6991
6992         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
6993         (init_cumulative_args): Likewise.
6994         (a7_overlap_mentioned_p): Delete prototype.
6995         * config/xtensa/xtensa.c (struct machine_function): Replace
6996         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
6997         Add set_frame_ptr_insn field.
6998         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
6999         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
7000         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
7001         at the function entry and replace the operand with the pseudo.
7002         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
7003         argument and record this flag in CUMULATIVE_ARGS.
7004         (function_arg): Remove result_mode and special-case code to handle
7005         arguments in a7.  Instead, set need_a7_copy flag when there is an
7006         incoming argument in a7.
7007         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
7008         and use the value recorded in cfun->machine->set_frame_ptr_insn.
7009         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
7010         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
7011         special-case code.
7012         (a7_overlap_mentioned_p): Delete.
7013         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
7014         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
7015         arguments to init_cumulative_args and pass "incoming" flag instead.
7016         (BLOCK_REG_PADDING): Delete.
7017         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
7018         checks for reload_in_progress and reload_completed.  Update calls to
7019         xtensa_copy_incoming_a7.
7020         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
7021         to call xtensa_copy_incoming_a7.
7022
7023 2004-02-09  DJ Delorie  <dj@redhat.com>
7024
7025         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
7026         longer modify standard_exec_prefix, standard_bindir_prefix, or
7027         standard_startfile_prefix.
7028
7029 2004-02-09  James E Wilson  <wilson@specifixinc.com>
7030
7031         PR c++/11295
7032         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
7033         to expand_expr_real call, and pass in alt_rtl as last argument.
7034
7035         PR libstdc++/5625
7036         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
7037         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
7038         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
7039         * except.c (expand_builtin_extend_pointer): New.
7040         * except.h (expand_builtin_extend_pointer): Declare.
7041
7042 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
7043
7044         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
7045         unaligned loads and stores.
7046
7047 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7048
7049         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
7050         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
7051
7052         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
7053         * config/mips/iris5.h: ... here.
7054         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
7055
7056         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
7057         * config/mips/iris5.h: ... here.
7058
7059 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7060
7061         * configure.ac: Remove default executable files before AC_PROG_CC.
7062         * configure: Regenerate.
7063
7064 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
7065
7066         PR target/13721
7067         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
7068         print a operand other than a register.
7069
7070 2004-02-09  Roger Sayle  <roger@eyesopen.com>
7071
7072         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
7073         tree code rather than call fold_convert, which doesn't specify a
7074         default floating point to integer conversion.
7075
7076 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
7077
7078         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
7079         code to support SGS assembler.  Reformat adjacent code where possible.
7080         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
7081         definition.
7082         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
7083         for '%#'.
7084         * config/m68k/linux.h, config/m68k/m68k.c,
7085         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
7086         macros and asm_printf() format strings.
7087         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
7088         * config/m68k/linux.h: Update copyright.
7089         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
7090
7091 2004-02-08  Andreas Schwab  <schwab@suse.de>
7092             Bernardo Innocenti  <bernie@develer.com>
7093
7094         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
7095         REGISTER_PREFIX.
7096         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
7097         frame pointer register, overridable by OS targets.
7098         * (M68K_REGNAME): Macro to obtain register name for asm output,
7099         eventually replacing %a6 with M68K_FP_REG_NAME.
7100         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
7101         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
7102         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
7103         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
7104         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
7105
7106 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
7107
7108         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
7109         hook_rtx_tree_int_null.
7110         * targhooks.c (default_struct_value_rtx): Remove.
7111         * targhooks.h: Remove the prototype for
7112         default_struct_value_rtx.
7113         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
7114         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
7115         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
7116         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
7117         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
7118         config/rs6000/rs6000.c, config/s390/s390.c,
7119         config/stormy16/stormy16.c, config/v850/v850.c,
7120         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
7121         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
7122
7123 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
7124
7125         * README.Portability: Change "ISO C89" to "ISO C90".
7126         * c-parse.in (primary, initelt): Likewise.
7127
7128 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
7129
7130         * real.c (encode_ibm_extended): Normalize the input value before
7131         converting it to a double.  Handle the case where a normal value
7132         rounds to infinity.
7133
7134 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
7135
7136         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
7137         warning.
7138         * cse.c (preferrable): Change to preferable. Update all of its
7139         callers.
7140         * genautomata.c (ainsn): Change
7141         first_ainsn_with_given_equialence_num to
7142         first_ainsn_with_given_equivalence_num.  Update all of its
7143         references.
7144
7145 2004-02-08  Jan Hubicka  <jh@suse.cz>
7146
7147         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
7148
7149 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
7150
7151         * function.c (assign_parms): Fix formatting.
7152
7153 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
7154
7155         * default.h (PROMOTE_PROTOTYPES): Remove.
7156         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
7157         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
7158         EXPAND_BUILTIN_SAVEREGS): Poison.
7159         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
7160         hook_bool_tree_false.
7161         (TARGET_PROMOTE_PROTOTYPES): Likewise.
7162         * target.h: Replace SETUP_INCOMING_VARARGS with
7163         targetm.calls.setup_incoming_varargs().
7164         * targhooks.c (default_promote_function_return): Remove.
7165         (default_promote_prototypes): Likewise.
7166         (default_struct_value_rtx): Always abort().
7167         (default_expand_builtin_saveregs): Always print an error
7168         message.
7169         (default_setup_incoming_varargs): Do nothing.
7170         (default_pretend_outgoing_varargs_named): Don't depend on
7171         SETUP_INCOMING_VARARGS.
7172         * targhooks.h: Remove the prototype for
7173         default_promote_function_return and
7174         default_promote_prototypes.
7175
7176 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
7177
7178         * system.h (SHARED_SECTION_ASM_OP): Poison.
7179         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
7180         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
7181
7182 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
7183
7184         Bug 13856
7185         * c-decl.c (diagnose_mismatched_decls): Only give special
7186         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
7187         is also true.
7188         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
7189         DECL_FUNCTION_CODE when defining a built-in function.
7190         Don't update DECL_ESTIMATED_INSNS.
7191         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
7192         FUNCTION_DECLs.
7193         * tree.h: Delete DECL_ESTIMATED_INSNS.
7194         * tree-inline.c (struct inline_data): Delete inlined_insns field.
7195         (expand_call_inline, optimize_inline_calls): Don't update
7196         DECL_ESTIMATED_INSNS nor inlined_insns.
7197         * cgraphunit.c (cgraph_analyze_function): Don't update
7198         DECL_ESTIMATED_INSNS.
7199
7200 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
7201
7202         * c-common.c (shadow_warning): Delete.
7203         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
7204         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
7205         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
7206         * c-parse.in (free_parser_stacks): Delete.
7207
7208 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
7209
7210         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
7211         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
7212         Use the top level mkinstalldirs, not the one in the gcc subdir.
7213         * mkinstalldirs: Remove (from the gcc subdir).
7214
7215 2004-02-07  Roger Sayle  <roger@eyesopen.com>
7216
7217         PR middle-end/13696
7218         * fold-const.c (fold_convert): New function to provide type
7219         conversion to the middle-end without using convert.
7220         (negate_expr, associate_trees, size_diffop, omit_one_operand,
7221         operand_equal_for_comparison_p, pedantic_omit_one_operand,
7222         invert_truthvalue, optimize_bit_field_compare, range_binop,
7223         decode_field_reference, make_range, build_range_check, unextend,
7224         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
7225         fold_binary_op_with_conditional_arg, fold_inf_compare,
7226         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
7227         convert with calls to fold_convert.
7228
7229 2004-02-07  Jan Hubicka  <jh@suse.cz>
7230
7231         * genrecog.c (find_operand): add extra argument stop.
7232         (validate_pattern): Verify that mach_dup is duplicating operand
7233         defined lexically earlier.
7234
7235 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
7236
7237         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
7238         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
7239         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
7240         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
7241         config/ia64/ia64.h, config/ip2k/ip2k.h,
7242         config/iq2000/iq2000.h, config/mips/iris5.h,
7243         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
7244         config/rs6000/aix51.h, config/rs6000/aix52.h,
7245         config/rs6000/darwin.h, config/rs6000/rs6000.h,
7246         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
7247         config/sparc/linux.h, config/sparc/linux64.h,
7248         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
7249         config/xtensa/xtensa.h: Remove the definitions of
7250         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
7251         MAX_WCHAR_TYPE_SIZE.
7252         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
7253         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
7254
7255 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
7256
7257         PR bootstrap/13990
7258         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
7259         gen_rtx_NE.
7260
7261 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
7262
7263         * var-tracking.c (vt_add_function_parameters): Surround checkings by
7264         #ifdef ENABLE_CHECKING and #endif.
7265
7266 2004-02-07  Roger Sayle  <roger@eyesopen.com>
7267
7268         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
7269         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
7270         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
7271         integer types and floating point with unsafe_math_optimizations.
7272         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
7273         Optimize A - B as A + (-B), if B is easily negated.
7274
7275 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
7276
7277         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
7278         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
7279         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
7280         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
7281         Update copyright.
7282
7283 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
7284
7285         * c-ppoutput.c, var-tracking.c: Fix comment typos.
7286
7287 2004-02-06  James E Wilson  <wilson@specifixinc.com>
7288
7289         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
7290         glibc 2.3 or better.
7291
7292 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7293
7294         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
7295         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
7296
7297 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
7298
7299         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
7300         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
7301         (SHLIB_MKMAP_OPTS): Delete.
7302         (TARGET_LIBGCC2_CFLAGS): Add -specs.
7303         (bispecs): Add rule.
7304         * config/rs6000/libgcc-ppc64.ver: New file.
7305         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
7306         (__floatdidf, __floatdisf): Optimize multiply.
7307         (__fixunstfdi): New function.
7308         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
7309         real and imag parts larger than one register.
7310         (function_arg): Correct type of reg used when fp arg split partially
7311         to stack.
7312         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
7313         and __MACH__ or __powerpc64__.
7314
7315 2004-02-06  Roger Sayle  <roger@eyesopen.com>
7316             Ulrich Weigand  <uweigand@de.ibm.com>
7317
7318         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
7319         of gen_highpart or gen_lowpart when the floating point format is
7320         wider than the result mode.
7321
7322 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
7323
7324         * dwarf2out.c (loclabel_num): Move into #ifdef
7325         DWARF2_DEBUGGING_INFO.
7326
7327 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
7328
7329         * objc/objc-act.c (build_super_template) the 'class' field of
7330         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
7331         (get_super_receiver): Likewise.
7332
7333 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7334
7335         * reload1.c (check_eliminable_occurrences): Optimize the reset
7336         of can_eliminate.
7337         (eliminate_regs_in_insn): Likewise.
7338
7339 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
7340             Josef Zlomek  <zlomekj@suse.cz>
7341
7342         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
7343         at the beginning of function, call dwarf2out_var_location for
7344         NOTE_INSN_VAR_LOCATION note.
7345         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
7346         decl_loc_table): New.
7347         (lookup_decl_loc): New function.
7348         (add_var_loc_to_decl): New function.
7349         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
7350         only if can_use_fbreg.
7351         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
7352         functions.
7353         (loc_descriptor): Likewise. Process VAR_LOCATION.
7354         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
7355         (loc_descriptor_from_tree): Call mem_loc_descriptor with
7356         can_use_fbreg == true.
7357         (add_location_or_const_value_attribute): Added parameter enum
7358         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
7359         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
7360         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
7361         with attr == DW_AT_location.
7362         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
7363         if frame_base_decl is defined and has a location list.
7364         (gen_variable_die): Call add_location_or_const_value_attribute with
7365         attr == DW_AT_location.
7366         (dwarf2out_var_location): New function.
7367         (dwarf2out_begin_function): New function.
7368         (dwarf2out_init): Create decl_loc_table.
7369
7370 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
7371
7372         * loop.c (force_movables): Transitively increase the priorities of
7373         all insns forces by an insn, not just the first one.
7374
7375 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
7376             Daniel Berlin <dberlin@dberlin.org>
7377
7378         Josef Zlomek  <zlomekj@suse.cz>
7379         * Makefile.in (var-tracking.o): New.
7380         * common.opt (fvar-tracking): New.
7381         * flags.h (flag_var_tracking): New.
7382         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
7383         * opts.c (common_handle_option): Add OPT_fvar_tracking.
7384         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
7385         * rtl.c (note_insn_name): Likewise.
7386         * rtl.def (VAR_LOCATION): New.
7387         * rtl.h (NOTE_VAR_LOCATION): New.
7388         (NOTE_VAR_LOCATION_DECL): New.
7389         (NOTE_VAR_LOCATION_LOC): New.
7390         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
7391         (variable_tracking_main): New exported function.
7392         * timevar.def (TV_VAR_TRACKING): New.
7393         * toplev.c (enum dump_file_index): Added DFI_vartrack.
7394         (dump_file): "vartrack" was added (-dV).
7395         (flag_var_tracking): New.
7396         (f_options): "var-tracking" was added.
7397         (rest_of_handle_variable_tracking): New function.
7398         (rest_of_compilation): Run variable tracking.
7399         (process_options): If user has not specified flag_var_tracking set it
7400         according to optimize, debug_info_level and debug_hooks.
7401         * tree.h (frame_base_decl): New.
7402         * var-tracking.c: New file.
7403         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
7404         (ia64_override_options): Set flags to run variable tracking in machine
7405         dependent reorg instead of toplev.c.
7406         (ia64_reorg): Run variable tracking if wanted.
7407         * doc/invoke.texi: Mention variable tracking in -dV,
7408         add and -fvar-tracking.
7409         * doc/passes.texi: Added variable tracking pass.
7410
7411         Daniel Berlin <dberlin@dberlin.org>
7412         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
7413         * dbxout.c (dbx_debug_hooks): Likewise.
7414         (xcoff_debug): Likewise.
7415         * debug.c (do_nothing_debug_hooks): Likewise.
7416         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
7417         * dwarfout.c (dwarf_debug_hooks): Likewise.
7418         * sdbout.c (sdb_debug_hooks): Likewise.
7419         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
7420         * final.c (final_scan_insn): Call var_location debug hook for each
7421         NOTE_INSN_VAR_LOCATION.
7422
7423 2004-02-06  Jan Hubicka  <jh@suse.cz>
7424
7425         * flow.c (update_life_info): Allocate reg_deaths when called from
7426         scheudler.
7427         (attempt_auto_inc):  Update life ranges accordingly.
7428
7429 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
7430
7431         PR debug/11816
7432         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
7433
7434 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
7435
7436         * cfganal.c (flow_call_edges_add): Never split a libcall block.
7437
7438 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
7439
7440         * dwarf2out.c (output_loc_list): Don't use deltas if we have
7441         a separate line info table in use.
7442         Use the correct size for terminators.
7443         (output_die): Use offset, not delta.
7444
7445 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
7446
7447         * doc/invoke.texi: Remove the pni option from -mfpmath=.
7448
7449 2004-02-06  Jan Hubicka  <jh@suse.cz>
7450
7451         * recog.c (split_all_insns): Do not update reg info.
7452         * regrename.c (regrename_optimize): Likewise.
7453         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
7454         * flow.c (struct propagate_block_info): Add insn_num field.
7455         (reg_deaths): New array.
7456         (life_analysis): Free reg_deaths info.
7457         (allocate_reg_life_data): Allocate reg_deaths array.
7458         (propagate_one_insn): Use new array.
7459         (init_propagate_block): Initialize it.
7460         (free_propagate_block_info): Finish compuation of
7461         REG_LIVE_LENGTH
7462         (attempt_auto_inc): Sanity check that REG_INFO is not
7463         computed at same time.
7464         (mark_used_regs): Update new array.
7465
7466         * reg-stack.c (subst_stack_regs): Unshare clobbers before
7467         substitution.
7468
7469 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7470
7471         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
7472         *extendqisi2_short_displ.
7473
7474 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
7475
7476         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
7477         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
7478         (emit_library_call_value_1): Likewise pass nargs.
7479         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
7480         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
7481         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
7482         parameter instead of scanning TYPE_ARGS_TYPES to count args.
7483         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
7484         prototype.
7485         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
7486         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
7487         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
7488         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
7489         INIT_CUMULATIVE_ARGS.
7490         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
7491         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
7492         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
7493         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
7494         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
7495         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
7496         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
7497         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
7498         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
7499         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
7500         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
7501         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
7502
7503 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7504
7505         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
7506         possible.
7507
7508 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7509
7510         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
7511         note containing (plus (reg) (const_int)), where reg is an
7512         eliminable reg, then perform the register elimination without
7513         depending on eliminate_regs().
7514
7515 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7516
7517         * config/arc/arc.c (arc_return_in_memory): Check the return
7518         value of int_size_in_bytes against -1.  Don't check
7519         TREE_ADDRESSABLE.
7520         * config/avr/avr.c (avr_return_in_memory): Check the return
7521         value of int_size_in_bytes against -1.
7522         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
7523         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
7524         Likewise.
7525         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
7526         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
7527         Likewise.
7528
7529 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7530
7531         * config/frv/frv-protos.h: Remove the prototype for
7532         frv_setup_incoming_varargs.
7533         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
7534         (frv_setup_incoming_varargs): Make it static.
7535         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
7536
7537 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7538
7539         * config/fr30/fr30-protos.h: Remove the prototype for
7540         fr30_setup_incoming_varargs.
7541         Update the prototypes for fr30_num_arg_regs and
7542         fr30_function_arg_partial_nregs.
7543         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
7544         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
7545         (fr30_setup_incoming_varargs): Make it static.
7546         Add argument second_time.  Don't do anything when second_time
7547         is nonzero.
7548         (fr30_num_arg_regs): Change the type of the first argument to
7549         enum machine_mode.
7550         (fr30_function_arg_partial_nregs): Change the type of the
7551         second argument to enum machine_mode.
7552         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
7553         (SETUP_INCOMING_VARARGS): Remove.
7554
7555 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7556
7557         * config/arc/arc-protos.h: Remove the prototype for
7558         arc_setup_incoming_varargs.
7559         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
7560         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
7561         (arc_setup_incoming_varargs): Make it static.
7562         (arc_external_libcall): Likewise.
7563         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
7564         Remove the commented-out definition of
7565         ASM_OUTPUT_EXTERNAL_LIBCALL.
7566
7567 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
7568
7569         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
7570         to $$(slibdir) in the installation commands.
7571
7572 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
7573
7574         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
7575         with inner_regno, not regno.
7576         * rtlanal.c (refers_to_regno_p): Same.
7577
7578 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7579
7580         * config.gcc: Remove i370 support.
7581
7582 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
7583
7584         * doc/install.texi:  Update automake and autoconf version
7585         requirements.  Note where to find gcj automake version.
7586
7587 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
7588
7589         * Makefile.in (generate-manpages): Move dependencies to ...
7590         (man): here.
7591         * doc/makefile.texi: Document new targets.
7592         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
7593
7594 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
7595
7596         PR/13485
7597         Makefile.in (srcextra):  Add a level of indirection to ...
7598         (gcc.srcextra): ... here.
7599         (po-generated): Delete.
7600         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
7601         options.c.
7602         (start.encap): Remove superfluous lang.srcextra dependency.
7603         objc/Make-lang.in (po-generated):  Delete.
7604
7605 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7606
7607         * config/ia64/ia64.c (REG_GP): Remove.
7608
7609 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7610
7611         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
7612
7613 2004-02-05  Devang Patel  <dpatel@apple.com>
7614
7615         * dwarf2out.c (force_type_die): Look up input type itself
7616         instead of root_type() of type.
7617
7618 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
7619
7620         * config/s390/s390.md ("*tmqidi_ext"): New insn.
7621         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
7622         pre-reload splitters are transformed to post-reload
7623         define_insn_and_split patterns.
7624         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
7625
7626 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7627
7628         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
7629         TARGET_PROMOTE_PROTOTYPES.
7630
7631 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7632
7633         PR middle-end/13750
7634         Revert:
7635         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
7636         PR pch/13361
7637         * c-typeck.c (constructor_asmspec): Delete.
7638         (struct initializer_stack): Delete field 'asmspec'.
7639         (start_init): Delete saving of asmspec.
7640         (finish_init): Don't update constructor_asmspec.
7641         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
7642         * stmt.c (expand_asm): Duplicate strings from tree.
7643         (expand_asm_operands): Likewise.
7644         * tree.c (tree_size): Update computation of size of STRING_CST.
7645         (make_node): Don't make STRING_CST nodes.
7646         (build_string): Allocate string with tree node.
7647         * tree.def (STRING_CST): Update comment.
7648         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
7649         (tree_string): Place contents of string in tree node.
7650         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
7651         from tree.
7652
7653 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
7654
7655         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
7656         msgid.
7657
7658 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
7659
7660         * config/rs6000/altivec.md (*movv4si_internal): At least one
7661         operand must be altivec_register_operand.
7662         (*movv8hi_internal1): Likewise.
7663         (*movv16qi_internal1): Likewise.
7664         (*movv4sf_internal1): Likewise.
7665
7666 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
7667
7668         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
7669         * configure: Regenerate.
7670
7671 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
7672
7673         * doc/install.texi: Update description of --gxx-include-dir to
7674         give correct default value.
7675
7676 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7677
7678         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
7679         8 with MAC_REG.
7680
7681 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7682
7683         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
7684         gen_rtx_PARALLEL.
7685
7686 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7687
7688         * emit-rtl.c: Update the comment about the file.
7689
7690 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
7691
7692         * sourcebuild.texi (Test Idioms): Update testcase naming
7693         conventions.
7694
7695 2004-02-04  Per Bothner  <per@bothner.com>
7696
7697         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
7698         * c-ppoutput.c (pp_dir_change):  New function.
7699         * c-common.h (pp_dir_change):  New declaration.
7700         * cpplib.h (struct cpp_options):  Remove working_directory field.
7701         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
7702         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
7703         Don't handle -fworking_directory here, but in c_common_post_options.
7704         (read_original_directory): Don't back up when done.
7705         Don't clear no-longer used working_directory flag.
7706         * cpplib.h:  Update declarations to match.
7707         * c-lex.c (cb_dir_change):  Move to c-opts.c.
7708         (init_c_lex):  Don't set dir_change callback here, since we want
7709         to set it even if flag_preprocess_only.
7710         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
7711         (c_common_post_options):  Set dir_change callback.
7712         Call pp_dir_change if approporiate.
7713         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
7714         unneeded parameter and result. Do LC_RENAME for <built-in>.
7715         (c_common_post_options):  Call cpp_read_main_file here instead.
7716         (c_common_init):  Update accordingly.
7717         (push_command_line_include):  Don't cpp_push_main_file.
7718         Do LC_RENAME rather than LC_LEASE to get back to main file.
7719         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
7720         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
7721         files, but call finish_options for all files.
7722         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
7723         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
7724         cpp_find_main_file + cpp_push_main_file.
7725         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
7726         * opts.c (handle_options):  Only set main_input_filename first time.
7727
7728 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
7729
7730         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
7731
7732 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
7733
7734         * reload.c (find_equiv_reg): When checking for register overlap,
7735         don't index hard_regno_nregs with a pseudo-reg.
7736
7737 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
7738
7739         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
7740
7741 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
7742
7743         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
7744         against FIRST_PSEUDO_REGISTER.
7745
7746 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7747
7748         * Makefile.in: Move target, host overrides after per-language
7749         fragments.
7750
7751         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
7752         (GNATLIBCFLAGS): Remove -g.
7753
7754 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7755
7756         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
7757         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
7758         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
7759         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
7760         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
7761         config/sparc/sparc.c, config/vax/vax.c: Revert the
7762         replacements of "FALLTHRU" with "Fall through" done in the
7763         previous patch.
7764
7765 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7766
7767         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
7768         config/arm/arm.c, config/arm/arm.md,
7769         config/cris/cris-protos.h, config/fr30/fr30.c,
7770         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
7771         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
7772         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
7773         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
7774         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
7775         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
7776         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
7777         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
7778         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
7779         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
7780         config/s390/s390.md, config/sparc/netbsd-elf.h,
7781         config/sparc/openbsd.h, config/sparc/sparc.c,
7782         config/xtensa/lib2funcs.S: Fix comment formatting.
7783
7784 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7785
7786         * config/alpha/alpha.c, config/arc/arc.c,
7787         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
7788         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
7789         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
7790         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
7791         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
7792         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
7793         config/iq2000/iq2000.c, config/m32r/m32r.c,
7794         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
7795         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
7796         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
7797         config/rs6000/rs6000.h, config/sparc/sparc.c,
7798         config/vax/vax.c: Fix comment typos.  Follow spelling
7799         conventions.
7800
7801 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7802
7803         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
7804         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
7805         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
7806         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
7807         config/arm/fpa.md, config/arm/iwmmxt.md,
7808         config/arm/netbsd-elf.h, config/arm/netbsd.h,
7809         config/m68hc11/m68hc11.md, config/mips/iris5.h,
7810         config/mn10300/mn10300.md, config/rs6000/altivec.md,
7811         config/sparc/netbsd-elf.h: Update copyright.
7812
7813 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
7814
7815         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
7816         for all modes whose size is greater than 8 bytes if ARCH32.
7817         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
7818         by reference if ARCH32.
7819
7820 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
7821
7822         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
7823
7824 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
7825
7826         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
7827         to before adddi3 insn patterns.
7828         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
7829         "reload_insi"): Move to before addsi3 insn patterns.
7830
7831 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
7832
7833         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
7834         parameter.  Use it instead of current_function_is_thunk.
7835         * function.h (struct function): Update documentation for is_thunk.
7836         * tree.h (CALL_FROM_THUNK_P): New macro.
7837         * config/alpha/alpha.c (alpha_sa_mask): Do not check
7838         no_new_pseudos when testing current_function_is_thunk.
7839         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
7840
7841 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7842
7843         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
7844         TARGET_SETUP_INCOMING_VARARGS.
7845
7846 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7847
7848         * emit-rtl.c (gen_rtx): Remove.
7849         * genattrtab.c: Don't mention gen_rtx in a comment.
7850         * rtl.h: Remove the prototype for gen_rtx.
7851         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
7852
7853 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7854
7855         * config/arc/arc.h, config/fr30/fr30.h
7856         (SETUP_INCOMING_VARARGS): Remove the target-independent
7857         comments.
7858         * doc/tm.texi: Don't mention deprecated target macros.
7859
7860 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7861
7862         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
7863         target-independent comment.
7864
7865 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7866
7867         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
7868         mention deprecated target macros.
7869
7870 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7871
7872         * config.gcc: Remove obsolete ports and configurations.
7873         * config/linux-aout.h, config/netware.h,
7874         config/t-linux-gnulibc1, config/d30v/abi,
7875         config/d30v/d30v-protos.h, config/d30v/d30v.c,
7876         config/d30v/d30v.h, config/d30v/d30v.md,
7877         config/d30v/libgcc1.asm, config/d30v/t-d30v,
7878         config/dsp16xx/dsp16xx-modes.def,
7879         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
7880         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
7881         config/i370/README, config/i370/i370-c.c,
7882         config/i370/i370-protos.h, config/i370/i370.c,
7883         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
7884         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
7885         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
7886         config/i386/moss.h, config/i386/netware.h,
7887         config/i386/svr3.ifile, config/i386/svr3dbx.h,
7888         config/i386/svr3gas.h, config/i386/svr3z.ifile,
7889         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
7890         config/i960/i960-c.c, config/i960/i960-coff.h,
7891         config/i960/i960-modes.def, config/i960/i960-protos.h,
7892         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
7893         config/i960/rtems.h, config/i960/t-960bare,
7894         config/m68k/hp310.h, config/m68k/hp320.h,
7895         config/m68k/hp320base.h, config/m68k/m68kv4.h,
7896         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
7897         Remove.
7898         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
7899         doc/md.texi: Remove mentions of obsolete ports.
7900
7901 2004-02-04  Jan Hubicka  <jh@suse.cz>
7902
7903         * alias.c (find_base_term, get_addr):  Do not dereference NULL
7904         pointer when all VALUE's locations has been invalidated.
7905         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
7906
7907 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
7908
7909         * doc/invoke.texi (x86 options): Fix spelling/wording.
7910
7911 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
7912
7913         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
7914         put the original string in a comment.
7915         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
7916         * config/mips/mips.c (mips_output_ascii): Likewise.
7917         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
7918
7919 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
7920
7921         * system.h (GIV_SORT_CRITERION): Poison.
7922         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
7923         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
7924
7925 2004-02-03  Roger Sayle  <roger@eyesopen.com>
7926
7927         PR target/9348
7928         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
7929         multiplies with a multiplication of the wrong signedness, its the
7930         signedness of the multiplication that we've performed that needs to
7931         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
7932         if expand_mult_highpart_adjust places the result in target.
7933
7934 2004-02-03  Richard Henderson  <rth@redhat.com>
7935
7936         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
7937
7938 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
7939
7940         * config.gcc (sh[234]l): Use little endian fragments.
7941
7942 2004-02-03  Paul Koning  <pkoning@equallogic.com>
7943
7944         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
7945         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
7946         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
7947         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
7948         floating point format.
7949         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
7950         the above functions.
7951         (output_move_quad): Output float values in correct target format.
7952         (legitimate_const_double_p): New function.
7953         * config/pdp11/pdp11.h: Fix typos.
7954         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
7955         (TARGET_FLOAT_FORMAT): Ditto.
7956         (pdp11_f_format, pdp11_d_format): Add external declarations.
7957         (MAX_REGS_PER_ADDRESS): Corrected.
7958         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
7959         (PRINT_OPERAND): Output float literals in target format.
7960
7961 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
7962
7963         PR c++/13975
7964         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
7965         TI_PRIVATE.
7966         (access_public_node): Redefine.
7967         (access_protected_node): Likewise.
7968         (access_private_node): Likewise.
7969         * tree.c (build_common_tree_nodes): Create access_public_node,
7970         access_protected_node, and access_private_node.
7971
7972 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
7973
7974         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
7975         (MASK_INLINE_INT_DIV_THR): Ditto.
7976         (MASK_INLINE_SQRT_LAT): Ditto.
7977         (MASK_INLINE_SQRT_THR): Ditto.
7978         (MASK_DWARF2_ASM): Ditto.
7979         (MASK_EARLY_STOP_BITS): Ditto.
7980
7981 2004-02-02  Paul Brook  <paul@codesourcery.com>
7982
7983         Merge from csl-arm-branch.
7984
7985         2004-01-30  Paul Brook  <paul@codesourcery.com>
7986
7987         * aof.h (REGISTER_NAMES): Add vfp reg names
7988         (ADDITIONAL_REGISTER_NAMES): Ditto.
7989         * aout.h (REGISTER_NAMES): Ditto.
7990         (ADDITIONAL_REGISTER_NAMES): Ditto.
7991         * arm-protos.h: Update/Add Prototypes.
7992         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
7993         Only allow 0.0 for VFP.
7994         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
7995         (values_fp): Rename from values_fpa.  Update Users.
7996         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
7997         Update users.  Only check valid constants for this hardware.
7998         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
7999         Only allow consts for FPA.
8000         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
8001         Only allow consts for FPA.
8002         (use_return_insn): Check for saved VFP regs.
8003         (arm_legitimate_address_p): Handle VFP DFmode addressing.
8004         (arm_legitimize_address): Ditto.
8005         (arm_general_register_operand): New function.
8006         (vfp_mem_operand): New function.
8007         (vfp_compare_operand): New function.
8008         (vfp_secondary_reload_class): New function.
8009         (arm_float_compare_operand): New function.
8010         (vfp_print_multi): New function.
8011         (vfp_output_fstmx): New function.
8012         (vfp_emit_fstm): New function.
8013         (arm_output_epilogue): Output VPF reg restore code.
8014         (arm_expand_prologue): Output VFP reg save code.
8015         (arm_print_operand): Add 'P'.
8016         (arm_hard_regno_mode_ok): Return modes for VFP regs.
8017         (arm_regno_class): Return classes for VFP regs.
8018         (arm_compute_initial_elimination_offset): Include space for VFP regs.
8019         (arm_get_frame_size): Ditto.
8020         * arm.h (FIXED_REGISTERS): Add VFP regs.
8021         (CALL_USED_REGISTERS): Ditto.
8022         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
8023         (FIRST_VFP_REGNUM): Define.
8024         (LAST_VFP_REGNUM): Define.
8025         (IS_VFP_REGNUM): Define.
8026         (FIRST_PSEUDO_REGISTER): Include VFP regs.
8027         (HARD_REGNO_NREGS): Handle VFP regs.
8028         (REG_ALLOC_ORDER): Add VFP regs.
8029         (enum reg_class): Add VFP_REGS.
8030         (REG_CLASS_NAMES): Ditto.
8031         (REG_CLASS_CONTENTS): Ditto.
8032         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
8033         (REG_CLASS_FROM_LETTER): Add 'w'.
8034         (EXTRA_CONSTRAINT_ARM): Add 'U'.
8035         (EXTRA_MEMORY_CONSTRAINT): Define.
8036         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
8037         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
8038         (REGISTER_MOVE_COST): Ditto.
8039         (PREDICATE_CODES): Add arm_general_register_operand,
8040         arm_float_compare_operand and vfp_compare_operand.
8041         * arm.md (various): Rename as above.
8042         (divsf3): Enable when TARGET_VFP.
8043         (divdf3): Ditto.
8044         (movdfcc): Ditto.
8045         (sqrtsf2): Ditto.
8046         (sqrtdf2): Ditto.
8047         (arm_movdi): Disable when TARGET_VFP.
8048         (arm_movsi_insn): Ditto.
8049         (movsi): Only split with general regs.
8050         (cmpsf): Use arm_float_compare_operand.
8051         (push_fp_multi): Restrict to TARGET_FPA.
8052         (vfp.md): Include.
8053         * vfp.md: New file.
8054         * fpa.md (various): Rename as above.
8055         * doc/md.texi: Document ARM w and U constraints.
8056
8057         2004-01-15  Paul Brook  <paul@codesourcery.com>
8058
8059         * config.gcc: Add with_fpu.  Allow with-float=softfp.
8060         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
8061         Break out of loop when we find a float-abi.  Fix typo.
8062         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
8063         Set -mfloat-abi=.
8064         * doc/install.texi: Document --with-fpu.
8065
8066         2003-01-14  Paul Brook  <paul@codesourcery.com>
8067
8068         * config.gcc (with_arch): Add armv6.
8069         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
8070         * config/arm/arm.c (arm_overrride_options): Ditto.
8071
8072         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
8073
8074         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
8075         (FL_ARCH6): Renamed from FL_ARCH6J.
8076         (arm_arch3m): Renamed from arm_fast_multiply.
8077         (arm_arch6): Renamed from arm_arch6j.
8078         * arm.h: Update all uses of above.
8079         * arm-cores.def: Likewise.
8080         * arm.md: Likewise.
8081
8082         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
8083         not arm6j.  Add entry for arch armv6.
8084
8085         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
8086
8087         * arm.c (arm_emit_extendsi): Delete.
8088         * arm-protos.h (arm_emit_extendsi): Delete.
8089         * arm.md (zero_extendhisi2): Also handle zero-extension of
8090         non-subregs.
8091         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
8092         (thumb_zero_extendhisi2): Only match if not v6.
8093         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
8094         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
8095         (thumb_extendqisi2): Likewise.
8096         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
8097         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
8098         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
8099         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
8100         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
8101         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
8102         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
8103         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
8104         (arm_extendqisi2addsi): Likewise.
8105
8106         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
8107
8108         Revert this change:
8109         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
8110         + REG addressing modes.
8111
8112         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
8113         + REG addressing modes.
8114
8115         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
8116
8117         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
8118         CONSTANT_P_RTX.
8119
8120         2003-30-12  Paul Brook  <paul@codesourcery.com>
8121
8122         * longlong.h: protect arm inlines with !defined (__thumb__)
8123
8124         2003-30-12  Paul Brook  <paul@codesourcery.com>
8125
8126         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
8127
8128         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
8129
8130         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
8131         change.
8132
8133         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
8134
8135         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
8136         to the virtual incoming args pointer for downward stacks.
8137
8138         2003-12-29  Paul Brook  <paul@codesourcery.com>
8139
8140         * config/arm/arm-cores.def: Add cost function.
8141         * config/arm/arm.c (arm_*_rtx_costs): New functions.
8142         (arm_rtx_costs): Remove
8143         (struct processors): Add rtx_costs field.
8144         (all_cores, all_architectures): Ditto.
8145         (arm_override_options): Set targetm.rtx_costs.
8146         (thumb_rtx_costs): New function.
8147         (arm_rtx_costs_1): Remove cases handled elsewhere.
8148         * config/arm/arm.h (processor_type): Add COSTS parameter.
8149
8150         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
8151
8152         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
8153         (arm926ejs.md): Include it.
8154         * config/arm/arm926ejs.md: New pipeline description.
8155
8156         2003-12-24  Paul Brook  <paul@codesourcery.com>
8157
8158         * config/arm/arm.c (arm_arch6j): New variable.
8159         (arm_override_options): Set it.
8160         (arm_emit_extendsi): New function.
8161         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
8162         * config/arm/arm.h (arm_arch6j): Declare.
8163         * config/arm/arm.md: Add sign/zero extend insns.
8164
8165         2003-12-23  Paul Brook  <paul@codesourcery.com>
8166
8167         * config/arm/arm.c (all_architectures): Add armv6.
8168         * doc/invoke.texi: Document it.
8169
8170         2003-12-19  Paul Brook  <paul@codesourcery.com>
8171
8172         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
8173         insn patterns to match.
8174         * config/arm/arm-generic.md: Ditto.
8175         * config/arm/cirrus.md: Ditto.
8176         * config/arm/fpa.md: Ditto.
8177         * config/amm/iwmmxt.md: Ditto.
8178         * config/arm/arm1026ejs.md: Ditto.
8179         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
8180         for 11_loadb.
8181
8182         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
8183
8184         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
8185         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
8186         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
8187         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
8188         arm_no_early_mul_dep): Correctly deal with conditional execution,
8189         parallels and single shift operations.
8190         (arm_no_early_alu_shift_value_dep): Define.
8191         * arm.md (attr type): Replace 'normal' with 'alu',
8192         'alu_shift' and 'alu_shift_reg'.
8193         (attr core_cycles): Adjust.
8194         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
8195         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
8196         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
8197         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
8198         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
8199         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
8200         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
8201         attribute appropriately.
8202         * config/arm/arm1026ejs.md (alu_op): Adjust.
8203         (alu_shift_op, alu_shift_reg_op): New.
8204         * config/arm/arm1136.md: Add better bypasses for early
8205         registers. Remove load[234] and store[234] bypasses.
8206         (11_alu_op): Adjust.
8207         (11_alu_shift_op, 11_alu_shift_reg_op): New.
8208
8209         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
8210
8211         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
8212         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
8213         * config/arm/arm.c (arm_no_early_store_addr_dep,
8214         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
8215         * config/arm/arm1026ejs.md: Add load-store bypass.
8216         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
8217         Add bypasses between instructions.
8218
8219         2003-12-10  Paul Brook  <paul@codesourcery.com>
8220
8221         * config/arm/arm.c (arm_fpu_model): New variable.
8222         (arm_fload_abi): New variable.
8223         (target_fpe_name): Rename from target_fp_name.
8224         (target_fpu_name): New variable.
8225         (arm_is_cirrus): Remove.
8226         (fpu_desc): New struct.
8227         (all_fpus): Define.
8228         (pf_model_for_fpu): Define.
8229         (all_loat_abis): Define.
8230         (arm_override_options): Set fp arch flags based on -mfpu=
8231         and -float-abi=.
8232         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
8233         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
8234         (*): Use new TARGET_* flags.
8235         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
8236         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
8237         (TARGET_SOFT_FLOAT): Ditto.
8238         (TARGET_SOFT_FLOAT_ABI): New.
8239         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
8240         TARGET_HARD_FLOAT.
8241         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
8242         (TARGET_OPTIONS): Add -mfpu=.
8243         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
8244         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
8245         (arm_pf_model): Define.
8246         (arm_float_abi_type): Define.
8247         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
8248         * config/arm/arm.md: Use new TARGET_* flags.
8249         * config/arm/cirrus.md: Ditto.
8250         * config/arm/fpa.md: Ditto.
8251         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
8252         * config/arm/semi.h (ASM_SPEC): Ditto.
8253         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
8254         (FPUTYPE_DEFAULT): Set to VFP.
8255         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
8256
8257         2003-11-22  Phil Edwards  <phil@codesourcery.com>
8258
8259         PR target/12476
8260         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
8261         'bx' instead of 'b' to avoid branch range restrictions.  Output
8262         the thunk immediately before the thunked-to function.
8263         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
8264         .thumb_func if a thunk is being generated.  Emit .code 16 along
8265         with .thumb_func if a thunk is not being generated.
8266
8267         2003-11-15  Nicolas Pitre <nico@cam.org>
8268
8269         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
8270         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
8271         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
8272         (lshrdi3_iwmmxt): Renamed from lshrdi3.
8273         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
8274
8275         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
8276             Ian Lance Taylor  <ian@wasabisystems.com>
8277
8278         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
8279         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
8280
8281         2003-11-05  Phil Edwards  <phil@codesourcery.com>
8282
8283         * config/arm/arm.md (insn):  Add new V6 instruction names.
8284         (generic_sched):  New attr.
8285         * config/arm/arm-generic.md:  Use generic_sched here.
8286         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
8287         stages of pipeline.  Adjust latency counts accordingly.
8288         * config/arm/arm1136jfs.md:  New file.
8289
8290         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
8291
8292         * config/arm/arm.h (processor_type): New enumeration type.
8293         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
8294         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
8295         (CPP_CPU_ARCH_SPEC): Likewise.
8296         * config/arm/arm.c (arm_tune): New variable.
8297         (all_cores): Use cores.def.
8298         (all_architectures): Add representative processor.
8299         (arm_override_options): Restructure way in which tuning
8300         information is deduced.
8301         * arm.md: Update "insn" and "type" attributes throughout.
8302         (insn): New attribute.
8303         (type): Compute "mult" from "insn" attribute.  Add load2,
8304         load3, load4 alternatives.
8305         (arm automaton): Move to arm-generic.md.
8306         * config/arm/arm-cores.def: New file.
8307         * config/arm/arm-generic.md: Likewise.
8308         * config/arm/arm1026ejs.md: Likewise.
8309
8310 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
8311
8312         * doc/invoke.texi (SPARC options): Remove -mflat and
8313         all -mxxx (xxx:chip) options.
8314         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
8315         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
8316         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
8317         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
8318         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
8319         * config/sparc/sparc.c: Likewise.
8320         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
8321         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
8322         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
8323         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
8324         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
8325         (sparc_flat_must_save_register_p): Likewise.
8326         (sparc_flat_compute_frame_size): Likewise.
8327         (sparc_flat_save_restore): Likewise.
8328         (sparc_flat_function_prologue): Likewise.
8329         (sparc_flat_function_epilogue): Likewise.
8330         (sparc_flat_epilogue_delay_slots): Likewise.
8331         (sparc_flat_eligible_for_epilogue_delay): Likewise.
8332         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
8333         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
8334         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
8335         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
8336         (CONDITIONAL_REGISTER_USAGE): Likewise.
8337         (FRAME_POINTER_REQUIRED): Likewise.
8338         (INITIAL_ELIMINATION_OFFSET): Likewise.
8339         (BASE_RETURN_VALUE_REG): Likewise.
8340         (BASE_OUTGOING_VALUE_REG): Likewise.
8341         (BASE_PASSING_ARG_REG): Likewise.
8342         (BASE_INCOMING_ARG_REG): Likewise.
8343         (INCOMING_REGNO): Likewise.
8344         (OUTGOING_REGNO): Likewise.
8345         (LOCAL_REGNO): Likewise.
8346         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
8347         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
8348         (EPILOGUE_USES): Likewise.
8349         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
8350         ("flat" attribute): Delete.
8351         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
8352         handling.
8353         (call followed by jump define_peephole's): Delete.
8354         (exception_receiver): Likewise.
8355         (builtin_setjmp_receiver): Likewise.
8356         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
8357
8358 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
8359
8360         PR c/11658
8361         PR c/13994
8362         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
8363         on langhooks.h.
8364         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
8365         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
8366         Include langhooks.h.  Replace c_common_truthvalue_conversion
8367         with the truthvalue_conversion language hook throughout.
8368         (expr_no_commas): Call default_conversion before save_expr
8369         for the first term of the production 'x ? : y'.
8370         * c-common.c (c_common_truthvalue_conversion): Remove
8371         obsolete block.  Invoke recursively the hook instead
8372         of this function.
8373         * c-convert.c (convert): handle ERROR_MARK_NODE.
8374         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
8375         returned by the truthvalue_conversion language hook.
8376         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
8377         c_objc_common_truthvalue_conversion.
8378         * c-objc-common.c (c_objc_common_truthvalue_conversion):
8379         New function.
8380         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
8381         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
8382         c_objc_common_truthvalue_conversion.
8383
8384 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
8385
8386         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
8387         of gen_rtx.
8388         (LIBCALL_VALUE): Likewise.
8389         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
8390         gen_rtx_CC0 instead of gen_rtx.
8391         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
8392         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
8393         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
8394         gen_rtx.
8395         (m68hc11_emit_logical): Likewise.
8396
8397 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
8398
8399         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
8400         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
8401         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
8402         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
8403         config/mips/mips.md, config/mmix/mmix.c,
8404         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
8405         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
8406         config/rs6000/altivec.md, config/s390/s390.c,
8407         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
8408         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
8409         Use const0_rtx instead of GEN_INT (0).  Do the same for other
8410         constants that are readily available.
8411
8412 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
8413
8414         * doloop.c, optabs.c, regmove.c, sched-deps.c,
8415         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
8416         instead of GEN_INT (0).  Do the same for other constants that
8417         are readily available.
8418
8419 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
8420
8421         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
8422         gen_rtx.
8423         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
8424         instead of gen_rtx.
8425         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
8426         gen_rtx.
8427         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
8428         gen_rtx_ASHIFT instead of gen_rtx.
8429         (udivmodqi4): Likewise.
8430
8431 2004-02-02  Richard Henderson  <rth@redhat.com>
8432
8433         PR target/13789
8434         * expr.c (store_expr): Use force_operand before emit_move_insn.
8435
8436 2004-02-02  Jeff Law  <law@redhat.com>
8437             Roger Sayle  <roger@eyesopen.com>
8438
8439         * tree.c (commutative_tree_code, associative_tree_code): New
8440         functions.
8441         (iterative_hash_expr): Use commutative_tree_code.
8442         * tree.h (commutative_tree_code, associative_tree_code): Declare.
8443         * fold-const.c (operand_equal_p): Use commutative_tree_code
8444         rather than inlining the commutativity check.
8445         (fold): Likewise.
8446
8447 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
8448
8449         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
8450         * config/frv/frv-protos.h: Remove the prototype for
8451         frv_function_arg_keep_as_reference.
8452         * config/frv/frv.c (frv_function_arg_keep_as_reference):
8453         Remove.
8454         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
8455         * config/stormy16/stormy16.h: Remove the commented-out
8456         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
8457
8458 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
8459
8460         PR target/13914
8461         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
8462         for retaddr_column.
8463
8464 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
8465
8466         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
8467         gen_rtx.
8468
8469 2004-02-02  Eric Christopher  <echristo@redhat.com>
8470             Zack Weinberg  <zack@codesourcery.com>
8471
8472         * c-opts.c (c_common_handle_option): Add -finput-charset.
8473         * c.opt: Ditto.
8474         * cppcharset.c (one_iso88591_to_utf8): Remove.
8475         (convert_iso88591_utf8): Ditto.
8476         (conversion_tab): Remove 8859-1 converter.
8477         (_cpp_input_to_utf8): Remove.
8478         (_cpp_init_iconv_buffer): Ditto.
8479         (_cpp_close_iconv_buffer): Ditto.
8480         (_cpp_convert_input): New function.
8481         (_cpp_default_encoding): Ditto.
8482         * cpphash.h: Add/remove prototypes for above.
8483         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
8484         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
8485         for narrow execution and input character sets.
8486         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
8487         * doc/cppopts.texi: Document -finput-charset.
8488
8489 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
8490
8491         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
8492         against FIRST_PSEUDO_REGISTER.
8493
8494 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
8495
8496         * doc/invoke.texi (SPARC options): Further improve.
8497
8498 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
8499
8500         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
8501         config/h8300/h8300.c, config/ip2k/ip2k.md,
8502         config/iq2000/iq2000.c, config/mips/mips.c,
8503         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
8504         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
8505         config/v850/v850.md: Fix indentation.
8506
8507 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
8508
8509         * config/sparc/sparc.c (function_arg_slotno): Align TImode
8510         arguments on a 16-byte boundary in the parameter array if ARCH64.
8511         Split handling of TFmode.
8512
8513 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
8514
8515         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
8516         Don't test CONSTANT_P (x).
8517         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
8518         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
8519         Fix misindentation.
8520
8521 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
8522
8523         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
8524
8525 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
8526
8527         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
8528         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
8529         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
8530         config/iq2000/iq2000.c, config/m32r/m32r.c,
8531         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
8532         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
8533         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
8534         config/stormy16/stormy16.c, config/v850/v850.md,
8535         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
8536
8537 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
8538
8539         * config/mcore/mcore.c (block_move_sequence): Replace
8540         gen_rtx_CONST_INT with GEN_INT.
8541
8542 2004-02-02  Jan Hubicka  <jh@suse.cz>
8543
8544         * alias.c (record_set): Use hard_regno_nregs.
8545         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
8546         * builtins.c (apply_args_size): Likewise.
8547         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
8548         mark_set_regs, add_stored_regs, mark_referenced_regs,
8549         insert_restore, insert_save, insert_one_insn): Likewise.
8550         * cfgcleanup.c: Include regs.h
8551         (mark_effect, mentions_nonequal_regs): Likewise.
8552         * cfgrtl.c (mark_killed_regs): Likewise
8553         * combine.c (update_table_tick, record_value_for_reg,
8554         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
8555         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
8556         reg_bitfield_target_p, distribute_notes): Likewise.
8557         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
8558         exp_equiv_p, cse_insn): Likewise.
8559         * cselib.c (cselib_lookup): Likewise.
8560         (cselib_invalidate_regno, cselib_record_set): Likewise.
8561         * df.c (df_ref_record): Likewise.
8562         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
8563         Likewise.
8564         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
8565         count_or_remove_death_notes_bb): Likewise.
8566         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
8567         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
8568         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
8569         * integrate.c (mark_stores): Likewise.
8570         * jump.c (delete_prior_computation): Likewise.
8571         * lcm.c (reg_dies, reg_becomes_live): Likewise.
8572         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
8573         * loop.c (LOOP_REGNO_NREGS): Likewise.
8574         * postreload.c (reload_combine, reload_combine_note_store,
8575         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
8576         * ra-colorize.c (combine, color_usable_p, get_free_reg,
8577         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
8578         try_recolor_web, insert_coalesced_conflicts, check_colors,
8579         break_precolored_alias): Likewise.
8580         * ra-debug.c: Include regs.h
8581         (ra_print_rtx_object): Likewise.
8582         * ra-rewrite (choose_spill_colors): Likewise.
8583         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
8584         * ra.c (init_ra): Likewise.
8585         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
8586         peep2_find_free_register): Likewise.
8587         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
8588         * regclass.c (hard_regno_nregs): New array.
8589         (init_reg_modes_once): Initialize it.
8590         (choose_hard_reg_mode): Use it.
8591         (record_reg_classes): Likewise.
8592         * regmove.c (mark_flags_life_zones): Likewise.
8593         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
8594         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
8595         copy_value, maybe_mode_change, find_oldest_value_reg,
8596         copyprop_hardreg_forward_1):
8597         * regs.h (hard_regno_nregs): Declare.
8598         * realod.c (reload_inner_reg_of_subreg): Use it.
8599         (push_reload, combine_reloads, find_dummy_reload,
8600         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
8601         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
8602         reload_adjust_reg_for_mode): Likewise.
8603         * reload1.c (compute_use_by_pseudos, count_pseudo,
8604         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
8605         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
8606         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
8607         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
8608         delete_output_reload): Likewise.
8609         * resource.c (update_live_status, mark_referenced_resources,
8610         mark_set_resources, mark_target_live_regs): Likewise.
8611         * rtlanal.c:  Include regs.h
8612         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
8613         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
8614         subreg_regno_offset, subreg_offset_representable_p,
8615         hoist_test_store): Likewise.
8616         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
8617         * sched-rgn.c (check_live_1, update_live_1): Likewise.
8618         * stmt.c: Include regs.h
8619         (decl_conflicts_with_clobbers_p): Likewise.
8620         * varasm.c (make_decl_rtl): Likewise.
8621         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
8622
8623 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
8624
8625         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
8626         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
8627         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
8628         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
8629         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
8630         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
8631         config/iq2000/iq2000.h, config/m32r/m32r.c,
8632         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
8633         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
8634         config/mcore/mcore.c, config/mcore/mcore.h,
8635         config/mcore/mcore.md, config/mips/mips.c,
8636         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
8637         config/rs6000/rs6000.c, config/s390/s390.c,
8638         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
8639         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
8640         "gen_rtx (FOO, " with "gen_rtx_FOO (".
8641
8642 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
8643
8644         * config/h8300/h8300.md (two peephole2's): New.
8645
8646 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
8647
8648         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
8649         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
8650         (ASM_CPU_SPEC): Likewise
8651         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
8652         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
8653
8654 2004-02-01  Roger Sayle  <roger@eyesopen.com>
8655
8656         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
8657         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
8658         (expand_builtin): Always call expand_builtin_pow.
8659
8660 2004-02-01  Roger Sayle  <roger@eyesopen.com>
8661
8662         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
8663         BUILT_IN_SIGNBITL): New GCC builtins.
8664         * builtins.c (expand_builtin_signbit): New function to RTL expand
8665         calls to signbit, signbitf and signbitl as inline intrinsics.
8666         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
8667         (fold_builtin_signbit): New function to perform constant folding
8668         of signbit, signbitf and signbitl.
8669         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
8670
8671         * doc/extend.texi: Document new signbit{,f,l} builtins.
8672
8673 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
8674
8675         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
8676
8677 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
8678
8679         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
8680         "mips_const_double_ok" and "simple_memory_operand", which were
8681         removed from the MIPS port with the mips-3_4-rewrite branch merge.
8682         * config/mips/mips.c (mips16_lay_out_constants): Update comment
8683         for removal of simple_memory_operand.
8684
8685 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8686
8687         * config/c4x/c4x.md: Use GEN_INT instead of
8688         gen_rtx (CONST_INT, ...).
8689
8690 2004-01-31  Richard Henderson  <rth@redhat.com>
8691
8692         * varasm.c (output_constant_pool): Don't zap the pool.
8693
8694 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8695
8696         * genrecog.c (decision_type): Add DT_const_int.
8697         (write_cond) [DT_const_int]: Print a comparison against small
8698         constant.
8699         (write_node): Simplify comparisons against small constants
8700         before printing tests.
8701
8702 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8703
8704         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
8705         instead of gen_rtx_CONST_INT.
8706
8707 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8708
8709         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
8710         instead of gen_rtx_CONST_INT.
8711
8712 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8713
8714         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
8715         hook_bool_CUMULATIVE_ARGS_false.
8716         * targhooks.c (default_strict_argument_naming): Rename to
8717         hook_bool_CUMULATIVE_ARGS_false.
8718         * targhooks.h: Update the prototype for
8719         default_strict_argument_naming.
8720
8721 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8722
8723         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
8724         * config/sh/sh.h: Likewise.
8725         * config/sh/sh.md: Likewise.
8726
8727 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
8728
8729         * doc/invoke.texi (SPARC options): Restructure and update.
8730
8731 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8732
8733         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
8734         STRICT_ARGUMENT_NAMING): Poison.
8735         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
8736         hook_bool_tree_false.
8737         * targhooks.c (default_promote_function_args): Remove.
8738         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
8739         Don't check incoming.
8740         (default_strict_argument_naming): Don't use
8741         STRICT_ARGUMENT_NAMING.
8742         * targhooks.h: Remove the prototype for
8743         default_promote_function_args.
8744
8745 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8746
8747         * config/i386/i386-protos.h: Remove the prototype for
8748         ix86_setup_incoming_varargs.
8749         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
8750         (ix86_setup_incoming_varargs): Make it static.
8751         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
8752
8753 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8754
8755         * alloc-pool.c: Fix comment typos.
8756         * builtin-types.def: Likewise.
8757         * builtins.def: Likewise.
8758         * c-pretty-print.c: Likewise.
8759         * df.h: Likewise.
8760         * reload1.c: Likewise.
8761
8762 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8763
8764         * doc/invoke.texi: Follow spelling conventions.
8765         * doc/tm.texi: Likewise.
8766
8767 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8768
8769         * doc/install.texi: Fix typos.
8770         * doc/invoke.texi: Likewise.
8771
8772 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
8773
8774         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
8775         registers as pointers.
8776         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
8777
8778 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
8779
8780         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
8781         and restore it to gen_lowpart_general on exit.
8782         (gen_lowpart_for_combine): Adjust all callers to go through
8783         gen_lowpart.
8784         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
8785         and restore it to gen_lowpart_general on exit.
8786         (gen_lowpart_if_possible): Adjust all callers to go through
8787         gen_lowpart.
8788         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
8789         (gen_lowpart): Declare as pointer to function, initialized to
8790         gen_lowpart_general.
8791         * rtl.h (gen_lowpart): Declare as pointer to function.
8792
8793 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8794
8795         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
8796         * calls.c: Likewise.
8797         * emit-rtl.c: Likewise.
8798         * function.c: Likewise.
8799         * reload1.c: Likewise.
8800         * config/i386/cygming.h: Likewise.
8801         * config/i386/i386.c: Likewise.
8802         * config/i386/winnt.c: Likewise.
8803
8804 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
8805
8806         PR bootstrap/9249
8807         * doc/install.texi: document --enable-__cxa_atexit option.
8808         * configure.ac: Disable __cxa_atexit if not supported.
8809         * configure: Regenerate.
8810
8811 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
8812
8813         * ggc-zone.c (ggc_free): New function.
8814
8815 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8816
8817         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
8818         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
8819         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
8820         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
8821         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
8822         config/alpha/alpha.c, config/alpha/alpha.h,
8823         config/alpha/alpha.md, config/alpha/unicosmk.h,
8824         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
8825         config/c4x/c4x-protos.h, config/c4x/c4x.md,
8826         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
8827         config/frv/frvend.c, config/i386/cygming.h,
8828         config/i386/djgpp.h, config/i386/emmintrin.h,
8829         config/i386/gthr-win32.c, config/i386/i386-interix.h,
8830         config/i386/i386-protos.h, config/i386/openbsd.h,
8831         config/i386/winnt.c, config/i386/xm-mingw32.h,
8832         config/i386/xmmintrin.h, config/ia64/ia64.md,
8833         config/iq2000/iq2000.md, config/m32r/m32r.md,
8834         config/m68k/m68k.md, config/mcore/mcore-elf.h,
8835         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
8836         config/mips/iris5gas.h, config/mips/iris6.h,
8837         config/mips/iris6gas.h, config/mips/linux.h,
8838         config/mips/mips.md, config/mips/netbsd.h,
8839         config/mips/openbsd.h, config/mips/windiss.h,
8840         config/pa/fptr.c, config/rs6000/aix.h,
8841         config/rs6000/altivec.h, config/rs6000/darwin.h,
8842         config/rs6000/xcoff.h, config/s390/s390-protos.h,
8843         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
8844         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
8845         config/sparc/sol2.h: Update copyright.
8846
8847 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
8848
8849         * Makefile.in (abs_docdir, abs_srcdir): Define.
8850         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
8851
8852 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8853
8854         * genconfig.c (main): Have CC0_P check its operand even on a
8855         target without cc0.
8856
8857 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8858
8859         * config/alpha/alpha.c: Remove mentions of deprecates macros
8860         in comments, remove some target-independent comments about target
8861         macros, and/or add minimal function comments for target hook
8862         implementations.
8863         * config/avr/avr.c: Likewise.
8864         * config/ia64/ia64.h: Likewise.
8865         * config/ip2k/ip2k.c: Likewise.
8866         * config/iq2000/iq2000.c: Likewise.
8867         * config/m32r/m32r.h: Likewise.
8868         * config/m68hc11/m68hc11.c: Likewise.
8869         * config/mcore/mcore.c: Likewise.
8870         * config/mmix/mmix.c: Likewise.
8871         * config/mn10300/mn10300.c: Likewise.
8872         * config/pa/pa.c: Likewise.
8873         * config/pdp11/pdp11.c: Likewise.
8874         * config/rs6000/rs6000.h: Likewise.
8875         * config/sh/sh.c: Likewise.
8876         * config/sh/sh.h: Likewise.
8877         * config/sparc/sparc.c: Likewise.
8878         * config/sparc/sparc.h: Likewise.
8879         * config/stormy16/stormy16.c: Likewise.
8880         * config/xtensa/xtensa.c: Likewise.
8881
8882 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
8883
8884         PR optimization/12147
8885         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
8886         RELOAD_FOR_OPADDR_ADDR.
8887         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
8888         might be reused as RELOAD_FOR_OPADDR_ADDR register.
8889
8890 2004-01-30  Jan Hubicka  <jh@suse.cz>
8891
8892         * reload.c (get_secondary_mem): Fix updating of
8893         secondary_memlocs_elim_used.
8894
8895 2004-01-30  Richard Henderson  <rth@redhat.com>
8896
8897         * varasm.c (struct rtx_const, struct pool_constant): Remove.
8898         (MAX_RTX_HASH_TABLE): Remove.
8899         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
8900         (first_pool, last_pool, pool_offset): Remove.
8901         (struct rtx_constant_pool): Split out from ...
8902         (struct varasm_status): ... here.  Reference one via pointer.
8903         (struct constant_descriptor_rtx): Merge struct pool_constant.
8904         (SYMHASH): Remove.
8905         (decode_rtx_const): Remove.
8906         (const_hash_rtx, compare_constant_rtx): Remove.
8907         (record_constant_rtx): Remove.
8908         (const_desc_rtx_hash, const_desc_rtx_eq): New.
8909         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
8910         (const_rtx_hash_1, const_rtx_hash): New.
8911         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
8912         (simplify_subtraction): Use simplify_rtx.
8913         (force_const_mem): Rewrite to use new data structures.
8914         (find_pool_constant): Likewise.
8915         (get_pool_constant, get_pool_constant_mark,
8916         get_pool_constant_for_function, get_pool_mode,
8917         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
8918         (output_constant_pool_2): Split out from output_constant_pool.
8919         (output_constant_pool_1): Likewise.  Use new pool datastructures.
8920         (output_constant_pool): Zap entire pool datastructure.
8921         (mark_constant): Use new pool datastructures.
8922         (mark_constants): Use for_each_rtx.
8923         (mark_constant_pool): Use new pool datastructures.
8924
8925 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
8926
8927         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
8928         Copy operands[1] to pseudo for simplify_gen_subreg.
8929
8930 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8931
8932         * gcse.c (bypass_block): Fix a typo in the previous check-in
8933         to the file.
8934
8935 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
8936
8937         * toplev.c: Include alloc-pool.h.
8938         * Makefile.in (toplev.c): Update dependencies.
8939
8940 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8941
8942         * combine.c (simplify_shift_const, case XOR): Be careful when
8943         commuting XOR with ASHIFTRT.
8944
8945 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8946             Eric Botcazou  <ebotcazou@libertysurf.fr>
8947
8948         * config/sparc/sparc-protos.h: Remove the prototype for
8949         sparc_builtin_saveregs.
8950         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
8951         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
8952         (TARGET_PROMOTE_PROTOTYPES): Likewise.
8953         (TARGET_STRUCT_VALUE_RTX): Likewise.
8954         (TARGET_RETURN_IN_MEMORY): Likewise.
8955         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
8956         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
8957         (sparc_builtin_saveregs): Make it static.
8958         (sparc_promote_prototypes): New.
8959         (sparc_struct_value_rtx): Likewise.
8960         (sparc_return_in_memory): Likewise.
8961         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
8962         (PROMOTE_FUNCTION_RETURN): Likewise.
8963         (RETURN_IN_MEMORY): Likewise.
8964         (STRUCT_VALUE): Likewise.
8965         (STRUCT_VALUE_INCOMING): Likewise.
8966         (EXPAND_BUILTIN_SAVEREGS): Likewise.
8967         (STRICT_ARGUMENT_NAMING): Likewise.
8968         (PROMOTE_PROTOTYPES): Likewise.
8969
8970         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
8971
8972 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
8973
8974         PR c/12818
8975         * varasm.c (const_hash_1) <STRING_CST>: Use the
8976         address to compute the hash value if flag_writable_strings.
8977         (compare_constant) <STRING_CST>: Compare the addresses
8978         if flag_writable_strings.
8979         (build_constant_desc): Do not copy the expression for a
8980         STRING_CST if flag_writable_strings.
8981
8982 2004-01-30  Jan Hubicka  <jh@suse.cz>
8983
8984         * alloc-pool.c: Include hashtab.h
8985         (alloc_pool_descriptor): New structure
8986         (alloc_pool_hash): New global variable.
8987         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
8988         (create_alloc_pool): Update statistics.
8989         (free_alloc_pool): Likewise.
8990         (pool_alloc): Likewise.
8991         (output_info): New structure
8992         (print_statistics, dump_alloc_pool_statistics): New function.
8993         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
8994         (dump_alloc_pool_statistics): Declare.
8995         * toplev.c (finalize):  Dump statistics.
8996
8997         * reload.c (secondary_memlocs_elim_used): New static variable.
8998         (get_secondary_mem): Update it.
8999         (find_reloads): Use it.
9000
9001 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
9002
9003         * toplev.c: Fix broken checkin of 2003-12-30, again.
9004
9005 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
9006
9007         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
9008         s390*-*-* targets by specifying a 'nop' insn.
9009         * configure: Regenerate.
9010
9011 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
9012
9013         PR target/11475
9014         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
9015
9016 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
9017
9018         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
9019         of addr when creating MEM copy.
9020
9021 2004-01-29  Devang Patel  <dpatel@apple.com>
9022
9023         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
9024
9025 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
9026
9027         PR inline-asm/6162
9028         * reload.c (find_reloads): Only support one pair of commutative
9029         operands.
9030
9031 2004-01-29  Roger Sayle  <roger@eyesopen.com>
9032
9033         PR java/13824
9034         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
9035         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
9036         recursion.
9037
9038 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
9039
9040         * config/frv/frv.c: Don't mention deprecated macros in
9041         comments.  Remove some target-independent comments about
9042         target macros.
9043         * config/frv/frv.h: Likewise.
9044
9045 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9046
9047         * cfghooks.c (split_block): Set probability and count of the
9048         new edge.
9049
9050 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
9051
9052         * dwarf2out.c (struct die_struct): Added field decl_id.
9053         (decl_die_table): Changed to hash table.
9054         (decl_die_table_allocated): Deleted.
9055         (decl_die_table_in_use): Deleted.
9056         (DECL_DIE_TABLE_INCREMENT): Deleted.
9057         (decl_die_table_hash): New function.
9058         (decl_die_table_eq): New function.
9059         (lookup_decl_die): Lookup in a hash table.
9060         (equate_decl_number_to_die): Insert into a hash table.
9061         (dwarf2out_init): Init hash table decl_die_table.
9062
9063 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
9064
9065         PR optimization/13424
9066         * expr.c (store_constructor): Revert 2003-12-03 change.
9067
9068         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
9069         expected before returning early.  Avoid sharing RTL if they
9070         need to be changed.
9071
9072         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
9073         handling so that memory attributes are preserved.  Don't call
9074         ix86_set_move_mem_attrs.
9075         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
9076         (ix86_expand_clrstr): Rename src argument to
9077         dst.  Rework rep_stos and strset handling so that memory attributes
9078         are preserved.
9079         (ix86_expand_strlen): Pass src argument to
9080         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
9081         memory attributes are preserved.
9082         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
9083         change_address instead of gen_rtx_MEM.
9084         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
9085         expanders.
9086         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
9087         strmovqi, strmovqi_rex64): Remove.
9088         (rep_mov*, strmov*): Prefix insn names with *.
9089         (strset, strset_singleop, rep_stos): New expanders.
9090         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
9091         strsetqi, strsetqi_rex64): Remove.
9092         (rep_stos*, strset*): Prefix insn names with *.
9093         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
9094         to SImode.
9095         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
9096         are preserved.
9097         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
9098         Prefix insn names with *.
9099         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
9100         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
9101         (strlenqi_1): New expander.
9102         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
9103
9104 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9105
9106         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
9107         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
9108         verify_flow_info): Declaration removed.
9109         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
9110         (debug_bb, debug_bb_n): Add argument to dump_bb call.
9111         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
9112         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
9113         instead of delete_block.
9114         * cfghooks.c: Include timevar.h and toplev.h.
9115         (cfg_hooks): Define here.
9116         (verify_flow_info, dump_bb): Moved from cfg.c.
9117         (redirect_edge_and_branch, redirect_edge_and_branch_force,
9118         split_block, split_block_after_labels, move_block_after,
9119         delete_basic_block, split_edge, create_basic_block,
9120         create_empty_bb, can_merge_blocks_p, merge_blocks,
9121         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
9122         New functions.
9123         * cfghooks.h (struct cfg_hooks): Added fields name,
9124         make_forwarder_block, tidy_fallthru_edge and
9125         move_block_after. Changed type of verify_flow_info, dump_bb,
9126         split_block fields. Renamed cfgh_split_edge and delete_block
9127         fields.
9128         (redirect_edge_and_branch, redirect_edge_and_branch_force,
9129         split_block, delete_block, split_edge, create_basic_block,
9130         can_merge_blocks_p, merge_blocks): Macros removed.
9131         (cfg_hooks): Do not export.
9132         (verify_flow_info, dump_bb, redirect_edge_and_branch,
9133         redirect_edge_and_branch_force, split_block, split_block_after_labels,
9134         move_block_after, delete_basic_block, split_edge, create_basic_block,
9135         create_empty_bb, can_merge_blocks_p, merge_blocks,
9136         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
9137         Declare.
9138         (cfg_layout_rtl_cfg_hooks): Declare.
9139         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
9140         New functions.
9141         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
9142         (redirect_edge_with_latch_update): Removed.
9143         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
9144         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
9145         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
9146         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
9147         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
9148         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
9149         cfghooks.c.
9150         (rtl_create_basic_block): Coding style fix.
9151         (rtl_tidy_fallthru_edge, rtl_move_block_after,
9152         rtl_make_forwarder_block): New functions.
9153         (update_cfg_after_block_merging): Removed.
9154         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
9155         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
9156         to dump_bb.
9157         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
9158         find_if_case_2): Don't update dominators.
9159         * timevar.def (TV_CFG_VERIFY): New.
9160         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
9161         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
9162         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
9163         (remove_bbs): Don't call remove_bbs.
9164         (create_preheader): Use make_forwarder_block.
9165         (mfb_keep_just, mfb_update_loops): New static functions.
9166
9167 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
9168
9169         * config/avr/avr.h: Remove target-independent comments about
9170         target macros.
9171
9172 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
9173
9174         * timevar.c (timevar_print): Mention when checking is enabled.
9175
9176 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
9177
9178         * c-lex.c (c_lex): Rename to...
9179         (c_lex_with_flags): Add new parameter to get CPP flags.
9180         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
9181         * c-pragma.h (c_lex_with_flags): Declare.
9182
9183 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9184
9185         * config/mcore/mcore.c (mcore_external_libcall): Add a
9186         comment.
9187         (mcore_return_in_memory): Likewise.
9188
9189 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9190
9191         * config/mcore/mcore-protos.h: Remove the prototype for
9192         mcore_setup_incoming_varargs.
9193         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
9194         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
9195         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9196         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9197         (TARGET_STRUCT_VALUE_RTX): Likewise.
9198         (TARGET_RETURN_IN_MEMORY): Likewise.
9199         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9200         (mcore_setup_incoming_varargs): Make it static.  Receive the
9201         first argument by reference.  Add argument second_time.
9202         (mcore_external_libcall): New.
9203         (mcore_return_in_memory): Likewise.
9204         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
9205         (PROMOTE_FUNCTION_RETURN): Likewise.
9206         (STRUCT_VALUE): Likewise.
9207         (RETURN_IN_MEMORY): Likewise.
9208         (SETUP_INCOMING_VARARGS): Likewise.
9209         (PROMOTE_PROTOTYPES): Likewise.
9210         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
9211
9212 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9213
9214         * config/m32r/m32r-protos.h: Remove the prototype for
9215         m32r_setup_incoming_varargs.
9216         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
9217         (TARGET_STRUCT_VALUE_RTX): Likewise.
9218         (TARGET_RETURN_IN_MEMORY): Likewise.
9219         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9220         (m32r_return_in_memory): New.
9221         (m32r_setup_incoming_varargs): Make it static.
9222         * config/m32r/m32r.h: Remove #undef of
9223         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
9224         definitions of PROMOTE_FUNCTION_ARGS and
9225         PROMOTE_FUNCTION_RETURN.
9226         (PROMOTE_PROTOTYPES): Remove.
9227         (RETURN_IN_MEMORY): Likewise.
9228         (STRUCT_VALUE): Likewise.
9229
9230 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9231
9232         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
9233         (TARGET_STRUCT_VALUE_RTX): Likewise.
9234         (m68k_struct_value_rtx): Likewise.
9235         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
9236         STRUCT_VALUE_REGNUM.
9237         (PROMOTE_PROTOTYPES): Remove.
9238         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
9239         STRUCT_VALUE_REGNUM.
9240         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
9241         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
9242
9243 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9244
9245         * config/stormy16/stormy16.c
9246         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
9247         TARGET_BUILD_BUILTIN_VA_LIST.
9248
9249 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9250
9251         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
9252         (TARGET_STRUCT_VALUE_RTX): Likewise.
9253         (TARGET_RETURN_IN_MEMORY): Likewise.
9254         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9255         (v850_return_in_memory): Likewise.
9256         (v850_setup_incoming_varargs): Likewise.
9257         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
9258         (SETUP_INCOMING_VARARGS): Likewise.
9259         (RETURN_IN_MEMORY): Likewise.
9260         (STRUCT_VALUE): Likewise.
9261
9262 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9263
9264         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
9265         (fr30_setup_incoming_varargs): Don't use
9266         STRICT_ARGUMENT_NAMING.
9267         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
9268         (STRICT_ARGUMENT_NAMING): Likewise.
9269
9270 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9271
9272         * config/frv/frv-protos.h: Remove the prototype for
9273         frv_expand_builtin_saveregs.
9274         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
9275         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9276         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
9277         STRUCT_VALUE_REGNUM.
9278         (frv_expand_builtin_saveregs): Make it static.
9279         (frv_struct_value_rtx): New.
9280         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
9281
9282 2004-01-29  Jan Hubicka  <jh@suse.cz>
9283
9284         PR c++/12850
9285         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
9286         initial pointers.
9287         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
9288         for functions that will be only inlined.
9289         (cgraph_mark_function_to_output): Likewise.
9290         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
9291         do not clear function body.
9292         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
9293         (tree_rest_of_compilation): Reorganize the logic releasing function
9294         body to use callgraph datastructure.
9295
9296 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9297
9298         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
9299         to register_operand.
9300
9301 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
9302
9303         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
9304         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
9305         match_operand expressions so that all match_dups appear
9306         lexically after their corresponding match_operands.
9307
9308 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9309
9310         * config/h8300/h8300.c (WORD_REG_USED): Use
9311         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
9312         (compute_saved_regs): Likewise.
9313         (h8300_expand_prologue): Likewise.  Allocate locals after
9314         saving registers.
9315         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
9316         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
9317         registers.
9318         (h8300_initial_elimination_offset): Adjust for the new frame
9319         layout, which swaps flips the order of locals and saved
9320         registers.
9321         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
9322         (HARD_FRAME_POINTER_REGNUM): New.
9323         (ELIMINABLE_REGS): Add an elimination rule from
9324         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
9325         (REGISTER_NAMES): Add fp.
9326         * config/h8300/h8300.md (FP_REG): Change to 11.
9327         (HFP_REG): New.
9328
9329 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9330
9331         * genrecog.c (write_node): Remove a useless local variable.
9332
9333 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
9334
9335         * Makefile.in (options.c options.h): Use stamp file s-options to
9336         avoid unnecessary rebuilds.
9337         (options.o): New target listing dependencies.
9338         (gtyp-gen.h): Use stamp file s-gtyp-gen.
9339         (STAGESTUFF): Add s-gtyp-gen.
9340
9341 2004-01-28  Richard Henderson  <rth@redhat.com>
9342
9343         * ggc.h (ggc_free): Declare.
9344         * ggc-common.c (ggc_realloc): Use it.
9345         * ggc-page.c: Remove lots of inline markers.
9346         (globals): Add free_object_list.
9347         (ggc_alloc): Tidy.
9348         (ggc_free, validate_free_objects): New.
9349         (poison_pages): Provide default.
9350         (ggc_collect): Call validate_free_objects; emit markers to
9351         the debug file.
9352
9353 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
9354             Jim Wilson  <wilson@specifixinc.com>
9355
9356         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
9357         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
9358         scratch pointer.
9359         (ia64_secondary_reload_class): Delete case GR_REGS.
9360         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
9361         Do not allocate a scratch register.
9362         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
9363
9364 2004-01-28  Jan Hubicka  <jh@suse.cz>
9365
9366         * gcse.c (bypass_block): Prevent edges to be unified when we are
9367         about to emit compenstation code.
9368
9369 2004-01-28  Nick Clifton  <nickc@redhat.com>
9370
9371         * config/arm/arm.c (arm_expand_builtin): Force second argument of
9372         the setcwx insn into a register.
9373
9374 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
9375
9376         * config/fp-bit.c (pack_d): When using paired doubles to implement
9377         a long double, round the high part separately.
9378         (unpack_d): Fix the case in which the high part is a power of two
9379         and the low part is a nonzero value of the opposite sign.
9380
9381 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9382
9383         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
9384         (TARGET_STRUCT_VALUE_RTX): Likewise.
9385         (c4x_external_libcall): Likewise.
9386         (c4x_struct_value_rtx): Likewise.
9387         * config/c4x/c4x.h: Remove.
9388         (STRUCT_VALUE_REGNUM): Likewise.
9389         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
9390
9391 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9392
9393         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
9394         (TARGET_STRUCT_VALUE_RTX): Likewise.
9395         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
9396         (STRUCT_VALUE): Likewise.
9397         (PROMOTE_PROTOTYPES): Likewise.
9398
9399 2004-01-27  Roger Sayle  <roger@eyesopen.com>
9400
9401         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
9402         CONST_INT before using INTVAL.
9403
9404 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
9405
9406         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
9407         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
9408         frame if !TARGET_BACKCHAIN.
9409         * config/s390/s390.md ("allocate_stack"): Use pattern only if
9410         TARGET_BACKCHAIN.
9411         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
9412
9413 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
9414
9415         * ia64.c (ia64_function_arg): When placing HFAs in integer
9416         registers, do not special case the mode used for complex
9417         types.  Do not advance int_regs until the current register
9418         is full.
9419
9420 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
9421
9422         PR target/7297
9423         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
9424
9425 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
9426
9427         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
9428         slow, unaligned loads and stores while debugging.  Fix formatting.
9429
9430 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
9431
9432         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
9433         of computing wmode.
9434         (restore_stack_nonlocal): Same.
9435
9436 2004-01-27  Devang Patel <dpatel@apple.com>
9437
9438         * Makefile.in (dwarf2out.o): Depend on input.h
9439         * dbxout.c (dbx_debug_hooks): Add new empty hook for
9440         imported_module_or_decl.
9441         (xcoff_debug_hooks): Same.
9442         * sdbout.c (sdb_debug_hooks): Same.
9443         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
9444         * debug.c (do_nothing_debug_hooks): Same.
9445         (debug_nothing_tree_tree): New function.
9446         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
9447         * dwarf2out.c: Include input.h.
9448         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
9449         (remove_child_TAG): New function.
9450         (dwarf_tag_name): Handle DW_TAG_imported_module.
9451         (gen_subprogram_die): Equate decl number to declaration die. Do not
9452         remove all children dies while reusing declaration die for definition.
9453         Instead, selectively remove only formal parameters.
9454         (gen_variable_die): Equate variable decl to declaration die.
9455         (gen_field_die): Equate field decl to line number.
9456         (force_namespace_die): Replace it with ...
9457         (force_decl_die): ... this.
9458         (force_type_die): New function.
9459         (setup_namespace_context): Replace use of force_namespace_die() with
9460         force_decl_die().
9461         (gen_namespace_die): Same.
9462         (dwarf2out_imported_module_or_decl): New function.
9463
9464 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
9465
9466         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
9467         on CQImode and CHImode incoming arguments in register a7.
9468         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
9469         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
9470         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
9471         xtensa_copy_incoming_a7 before reload.
9472
9473 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
9474
9475         * coverage.c (get_coverage_counts): Give a different message
9476         if flag_guess_branch_prob is set.
9477         * predict.c (counts_to_freqs): Return an int.
9478         (estimate_bb_frequencies): If counts_to_freqs returns zero,
9479         calculate estimates.
9480
9481 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
9482
9483         * config/iq2000/iq2000-protos.h: Remove the prototype for
9484         iq2000_setup_incoming_varargs.
9485         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9486         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9487         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9488         (TARGET_STRUCT_VALUE_RTX): Likewise.
9489         (TARGET_RETURN_IN_MEMORY): Likewise.
9490         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9491         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
9492         (iq2000_return_in_memory): Likewise.
9493         (iq2000_setup_incoming_varargs): Make it static.  Receive the
9494         first argument by reference.
9495         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
9496         (PROMOTE_FUNCTION_RETURN): Likewise.
9497         (PROMOTE_PROTOTYPES): Likewise.
9498         (RETURN_IN_MEMORY): Likewise.
9499         (STRUCT_VALUE): Likewise.
9500         (SETUP_INCOMING_VARARGS): Likewise.
9501         (STRICT_ARGUMENT_NAMING): Likewise.
9502
9503 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
9504
9505         * fixinc/fixinc.c (test_test): Initialize res.
9506         (start_flexer): Initialize pz_cmd_save.
9507
9508 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
9509
9510         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
9511         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
9512
9513 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
9514
9515         PR 7198
9516         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
9517         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
9518         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
9519         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
9520         Possibly rename pattern for consistency.
9521         Remove ??? comments suggesting that this be done.
9522         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
9523         New patterns.
9524         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
9525         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
9526         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
9527         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
9528         Update to match.
9529
9530 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
9531
9532         * config/arm/arm.c (output_return_instruction): Only restore IP
9533         into SP if frame_pointer_needed.
9534
9535 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
9536
9537         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
9538         for SCmode and DCmode if ARCH32.
9539         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
9540         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
9541         if ARCH32.
9542         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
9543         if ARCH32.
9544         (BASE_OUTGOING_VALUE_REG): Likewise.
9545
9546 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
9547
9548         PR target/10904
9549         PR target/13058
9550         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
9551         Forbid mode changes from SImode for lower FP regs if ARCH64.
9552
9553 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
9554
9555         * Makefile.in (bt-load.o): Depend on except.h.
9556         * bt-load.c (except.h): #include.
9557         (compute_defs_uses_and_gen): If insn at end of BB can throw
9558         within this function, consider registers used by it unavailable for
9559         btr migration.
9560         (move_btr_def): If insn at end of BB can throw, insert before rather
9561         than after.
9562
9563         * flags.h (flag_btr_bb_exclusive): Declare.
9564         * toplev.c (flag_btr_bb_exclusive): New variable.
9565         (f_options): Add btr-bb-exclusive.
9566         * bt-load.c (augment_live_range): Restore old behaviour if
9567         flag_btr_bb_exclusive is set.
9568         * common.opt: Add entry for -fbtr-bb-exclusive.
9569         * opts.c (common_handle_options): Same.
9570         * doc/invoke.texi: Document -fbtr-bb-exclusive.
9571
9572         * bt-load.c (btrs_live_at_end): New variable.
9573         (compute_defs_uses_and_gen): Compute its pointed-to array.
9574         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
9575         (augment_live_range): When augmenting with a new dominator,
9576         use only its btrs_live_at_end set, but also add in the full set
9577         of the old dominator.
9578         (btr_def_live_range): Use btrs_live_at_end.
9579         (move_btr_def): Set other_btr_uses_before_def, and move new set
9580         to the end of the basic block, if appropriate.
9581         (migrate_btr_defs): Allocate and free btrs_live_at_end.
9582
9583         * bt-load.c (basic_block_freq): Remove outdated comment.
9584
9585 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
9586
9587         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
9588         (PREDICATE_CODES): Remove duplicate.
9589         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
9590         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
9591         (MASK_PROFILE_KERNEL): Adjust define.
9592
9593 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
9594
9595         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
9596         of long string literals from 32 bytes to sizeof (void *) when !-Os
9597         and to 1 with -Os.
9598
9599 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9600
9601         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
9602         constant addresses in the normal mode.
9603
9604 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9605
9606         * system.h (CHAR_BITFIELD): Delete.
9607         (BOOL_BITFIELD): New.
9608         * c-decl.c (c_scope): Use BOOL_BITFIELD.
9609         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
9610
9611 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9612
9613         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9614         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9615         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9616         (TARGET_STRUCT_VALUE_RTX): Likewise.
9617         (TARGET_RETURN_IN_MEMORY): Likewise.
9618         (arc_return_in_memory): Likewise.
9619         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
9620         (PROMOTE_FUNCTION_RETURN): Likewise.
9621         (RETURN_IN_MEMORY): Likewise.
9622         (STRUCT_VALUE): Likewise.
9623
9624 2004-01-26  Richard Henderson  <rth@redhat.com>
9625
9626         * c-parse.in (extension): Use itype.
9627         (SAVE_EXT_FLAGS): Don't allocate a tree.
9628         (RESTORE_EXT_FLAGS): Don't read a tree.
9629
9630 2004-01-26  Jan Hubicka  <jh@suse.cz>
9631
9632         * cselib.c (discard_useless_values):  Clear out value pointer pointing
9633         to datastructure to be recycled.
9634
9635 2004-01-25  Jan Hubicka  <jh@suse.cz>
9636
9637         * genextract.c (main): Do not output the memset when not checking.
9638
9639 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9640
9641         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
9642         switch statement instead of a chain of if statements.
9643
9644 2004-01-26  Jeff Law  <law@redhat.com>
9645
9646         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
9647         acute accents for Petur Runolfsson's entry.
9648
9649 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9650
9651         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
9652         (TARGET_RETURN_IN_MEMORY): Likewise.
9653         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
9654         (RETURN_IN_MEMORY): Likewise.
9655
9656 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
9657
9658          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
9659          unaligned load/store into smaller loads and stores.
9660
9661 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
9662
9663         * function.c (assign_parms): Do not assign
9664         long long argument to memory in prologue if
9665         is it loaded into register.
9666
9667 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
9668
9669          PR middle-end/13779
9670          * expr.c (emit_group_load): split constant
9671          correctly into register components of PARALLEL insn.
9672
9673 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
9674
9675         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
9676         Use adjust_address_nv directly with appropriate mode.
9677         (restore_stack_nonlocal): Ditto.
9678
9679 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9680
9681         * config/xtensa/xtensa-protos.h: Remove the prototype for
9682         xtensa_builtin_saveregs.
9683         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9684         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9685         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9686         (TARGET_STRUCT_VALUE_RTX): Likewise.
9687         (TARGET_RETURN_IN_MEMORY): Likewise.
9688         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9689         (xtensa_builtin_saveregs): Make it static.
9690         (xtensa_return_in_memory): New.
9691         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
9692         (PROMOTE_FUNCTION_RETURN): Likewise.
9693         (PROMOTE_PROTOTYPES): Likewise.
9694         (STRUCT_VALUE): Likewise.
9695         (RETURN_IN_MEMORY): Likewise.
9696         (EXPAND_BUILTIN_SAVEREGS): Likewise.
9697
9698 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9699
9700         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
9701         (arm_setup_incoming_varargs): Likewise.
9702         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
9703
9704 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9705
9706         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
9707         (cris_setup_incoming_varargs): Likewise.
9708         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
9709
9710 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9711
9712         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
9713         (ns32k_struct_value_rtx): Likewise.
9714         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
9715         NS32K_STRUCT_VALUE_REGNUM.
9716
9717 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9718
9719         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9720         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9721         (TARGET_STRUCT_VALUE_RTX): Likewise.
9722         (arm_struct_value_rtx): Likewise.
9723         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
9724         (STRUCT_VALUE): Likewise.
9725         (STRUCT_VALUE_REGNUM): Likewise.
9726         (PROMOTE_PROTOTYPES): Likewise.
9727
9728 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9729
9730         * config/ia64/ia64-protos.h: Remove the prototype for
9731         ia64_setup_incoming_varargs and ia64_return_in_memory.
9732         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
9733         (TARGET_RETURN_IN_MEMORY): Likewise.
9734         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9735         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
9736         (ia64_setup_incoming_varargs): Adjust the arguments to meet
9737         the requirement of TARGET_SETUP_INCOMING_VARARGS.
9738         (ia64_return_in_memory): Make it static.  Change the return
9739         type to bool from int.  Add an argument.
9740         (ia64_struct_value_rtx): New.
9741         * config/ia64/ia64.h: Remove commented-out definitions of
9742         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
9743         PROMOTE_PROTOTYPES.
9744         (RETURN_IN_MEMORY): Remove.
9745         (STRUCT_VALUE_REGNUM): Likewise.
9746         (STRICT_ARGUMENT_NAMING): Likewise.
9747
9748 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
9749
9750         PR target/13666
9751         * config/sparc/sparc.c (function_arg_union_value): New function.
9752         (function_arg): Use it to deal with unions.
9753         (function_value): Likewise.  Define 'regbase' only for ARCH64.
9754         Replace a conditional statement by a simpler one.
9755
9756 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
9757
9758         * config/mips/mips.c (mips16_optimize_gp): Delete.
9759         (mips_reorg): Don't call it.
9760
9761 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9762
9763         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
9764         (floatunsqihf2): Remove operand 6.
9765         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
9766         fix patterns.
9767         (ldi_conditional, ldf_conditional): Validate operands.
9768
9769 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9770
9771         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
9772         (HAVE_GAS_HIDDEN): Undefine as interim measure.
9773
9774 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9775
9776         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
9777         memory references if TARGET_EXPOSE_LDP nonzero.
9778
9779 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9780
9781         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
9782
9783 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9784
9785         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
9786         invalid operand combinations.
9787
9788 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9789
9790         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
9791         c4x_legitimate_address_p.  Fix post_modify check.
9792
9793         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
9794         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
9795
9796 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9797
9798         * config/pa/pa-protos.h: Remove the prototype for
9799         hppa_builtin_saveregs.  Add a prototype for
9800         pa_return_in_memory.
9801         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
9802         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9803         (TARGET_STRUCT_VALUE_RTX): Likewise.
9804         (TARGET_RETURN_IN_MEMORY): Likewise.
9805         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9806         (pa_struct_value_rtx): Likewise.
9807         (pa_return_in_memory): Likewise.
9808         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
9809         PA_STRUCT_VALUE_REGNUM.
9810         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
9811         (EXPAND_BUILTIN_SAVEREGS): Remove.
9812         (PROMOTE_PROTOTYPES): Likewise.
9813         (PROMOTE_FUNCTION_RETURN): Likewise.
9814
9815 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9816
9817         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
9818         (TARGET_STRUCT_VALUE_RTX): Likewise.
9819         (vax_struct_value_rtx): Likewise.
9820         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
9821         VAX_STRUCT_VALUE_REGNUM.
9822         (PROMOTE_PROTOTYPES): Remove.
9823
9824 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9825
9826         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
9827
9828 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
9829
9830         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
9831         and MIPS64 have HI/LO interlocks.  Update comment.
9832
9833 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9834
9835         * config/stormy16/stormy16-protos.h: Remove the prototype for
9836         xstormy16_setup_incoming_varargs.
9837         * config/stormy16/stormy16.c
9838         (xstormy16_setup_incoming_varargs): Remove.
9839         (xstormy16_return_in_memory): New.
9840         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
9841         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9842         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9843         (TARGET_STRUCT_VALUE_RTX): Likewise.
9844         (TARGET_RETURN_IN_MEMORY): Likewise.
9845         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
9846         (PROMOTE_FUNCTION_RETURN): Likewise
9847         (PROMOTE_PROTOTYPES): Likewise
9848         (RETURN_IN_MEMORY): Likewise
9849         (STRUCT_VALUE): Likewise
9850         (SETUP_INCOMING_VARARGS): Likewise
9851
9852 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
9853
9854         * config/mips/mips.c (mips_offset_within_object_p): New function.
9855         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
9856         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
9857         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
9858
9859 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9860
9861         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
9862         (PROMOTE_FUNCTION_RETURN): Likewise.
9863
9864 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9865
9866         * config/mn10300/mn10300-protos.h: Remove the prototype for
9867         mn10300_builtin_saveregs.
9868         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
9869         (TARGET_STRUCT_VALUE_RTX): Likewise.
9870         (TARGET_RETURN_IN_MEMORY): Likewise.
9871         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9872         (mn10300_return_in_memory): Likewise.
9873         (mn10300_builtin_saveregs): Make it static.
9874         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
9875         (RETURN_IN_MEMORY): Likewise.
9876         (STRUCT_VALUE): Likewise.
9877         (EXPAND_BUILTIN_SAVEREGS): Likewise.
9878
9879 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
9880
9881         PR bootstrap/13853
9882         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
9883
9884 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9885
9886         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
9887         using ccr.
9888
9889 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9890
9891         * config/i860/i860-protos.h: Remove the prototype for
9892         i860_saveregs.
9893         * config/i860/i860.c (i860_saveregs): Make it static.
9894         (i860_struct_value_rtx): New.
9895         (TARGET_STRUCT_VALUE_RTX): Likewise.
9896         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9897         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
9898         I860_STRUCT_VALUE_REGNUM.
9899         (EXPAND_BUILTIN_SAVEREGS): Remove.
9900
9901 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9902
9903         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
9904         (TARGET_RETURN_IN_MEMORY): Likewise.
9905         (m68hc11_struct_value_rtx): Likewise.
9906         (m68hc11_return_in_memory): Likewise.
9907         * config/m68hc11/m68hc11.h: Remove a commented-out definition
9908         of PROMOTE_PROTOTYPES.
9909         (RETURN_IN_MEMORY): Remove.
9910         (STRUCT_VALUE_REGNUM): Likewise.
9911
9912 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9913
9914         * config/mmix/mmix-protos.h: Remove the prototype for
9915         mmix_setup_incoming_varargs.
9916         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9917         (TARGET_STRUCT_VALUE_RTX): Likewise.
9918         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9919         (mmix_setup_incoming_varargs): Make it static.
9920         (mmix_struct_value_rtx): New.
9921         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
9922         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
9923         (STRUCT_VALUE_REGNUM): Remove.
9924         (SETUP_INCOMING_VARARGS): Likewise.
9925
9926 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9927
9928         * config/mips/mips-protos.h: Remove the prototypes for
9929         mips_setup_incoming_varargs and mips_return_in_memory.
9930         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9931         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9932         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9933         (TARGET_STRUCT_VALUE_RTX): Likewise.
9934         (TARGET_RETURN_IN_MEMORY): Likewise.
9935         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9936         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
9937         (mips_setup_incoming_varargs): Match the prototype for
9938         TARGET_SETUP_INCOMING_VARARGS.
9939         (mips_return_in_memory): Make it static.  Add argument fntype.
9940         (mips_strict_argument_naming): New.
9941         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
9942         (PROMOTE_FUNCTION_ARGS): Likewise.
9943         (PROMOTE_FUNCTION_RETURN): Likewise.
9944         (STRUCT_VALUE): Likewise.
9945         (RETURN_IN_MEMORY): Likewise.
9946         (SETUP_INCOMING_VARARGS): Likewise.
9947         (STRICT_ARGUMENT_NAMING): Likewise.
9948
9949 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9950
9951         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
9952         (TARGET_RETURN_IN_MEMORY): Likewise.
9953         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9954         (ip2k_return_in_memory): Likewise.
9955         (ip2k_setup_incoming_varargs): Likewise.
9956         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
9957         (STRUCT_VALUE): Likewise.
9958         (STRUCT_VALUE_INCOMING): Likewise.
9959         (SETUP_INCOMING_VARARGS): Likewise.
9960
9961 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9962
9963         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
9964         (TARGET_RETURN_IN_MEMORY): Likewise.
9965         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
9966         (avr_return_in_memory): Remove.
9967         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
9968         (STRUCT_VALUE): Likewise.
9969         (STRUCT_VALUE_INCOMING): Likewise.
9970         (STRICT_ARGUMENT_NAMING): Likewise.
9971
9972 2004-01-25  Jan Hubicka  <jh@suse.cz>
9973
9974         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
9975
9976 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
9977
9978         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
9979         (mips_regno_mode_ok_for_base_p): Declare.
9980         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
9981         (FRAME_POINTER_REGNUM): Renumber to 78.
9982         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
9983         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
9984         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
9985         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
9986         (REG_MODE_OK_FOR_BASE_P): Likewise.
9987         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
9988         entry for 77 to "$arg" and entry for 78 to "$frame".
9989         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
9990         (mips_reg_mode_ok_for_base_p): Remove.
9991         (mips_regno_mode_ok_for_base_p): New function, derived from old
9992         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
9993         restrictions unless we're being strict.
9994         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
9995
9996 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9997
9998         * c-common.h: Fix comment typos.
9999         * c-decl.c: Likewise.
10000         * cgraphunit.c: Likewise.
10001         * combine.c: Likewise.
10002         * et-forest.c: Likewise.
10003         * flow.c: Likewise.
10004         * function.c: Likewise.
10005         * ifcvt.c: Likewise.
10006         * integrate.c: Likewise.
10007         * jump.c: Likewise.
10008         * postreload.c: Likewise.
10009         * varray.c: Likewise.
10010
10011 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10012
10013         * doc/frontends.texi: Update copyright.
10014         * doc/gcov.texi: Likewise.
10015         * doc/gty.texi: Likewise.
10016         * doc/sourcebuild.texi: Likewise.
10017         * doc/standards.texi: Likewise.
10018
10019 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
10020
10021         PR target/12978
10022         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
10023         Remove movstrqi_small because it conflicts with movstrqi_large.
10024
10025 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10026
10027         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10028         (TARGET_STRUCT_VALUE_RTX): Likewise.
10029         (cris_struct_value_rtx): Likewise.
10030         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
10031         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
10032         STRUCT_VALUE_REGNUM.
10033         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
10034
10035 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
10036
10037         PR bootstrap/13848
10038         * cse.c (cse_cc_succs): Change the mode of the source expression
10039         as soon as decide we need a new mode.  Don't permit changing modes
10040         if we found a match in a successor block.
10041         (cse_condition_code_reg): Save original mode of source expression
10042         so that we know whether we have to change the mode in other
10043         insns.
10044
10045 2004-01-24  Jan Hubicka  <jh@suse.cz>
10046
10047         * emit-rtl.c (change_address, adjust_address_1, offset_address,
10048         widen_memory_access):  Return early when there is nothing to change.
10049
10050 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
10051
10052         * simplify-rtx.c (simplify_relational_operation): Don't
10053         simplify address == constant into address + -constant == 0.
10054
10055 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10056
10057         * gcc.c (process_command): Don't internationalize the
10058         Copyright message.
10059         * mips-tfile.c (main): Likewise.
10060
10061 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
10062
10063         * cse.c: (cse_cc_succs) Fix comparison warning.
10064
10065 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10066
10067         * config/h8300/h8300.md: Remove extraneous USE in expanders.
10068
10069 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10070
10071         * config/h8300/h8300-protos.h: Provide prototypes for
10072         h8300_legitimate_constant_p and h8300_legitimate_address_p.
10073         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
10074         (h8300_rtx_ok_for_base_p): Likewise.
10075         (h8300_legitimate_address_p): Likewise.
10076         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
10077         h8300_legitimate_constant_p.
10078         (RTX_OK_FOR_BASE_P): Remove.
10079         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
10080
10081 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10082
10083         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
10084         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
10085         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
10086         (REG_OK_FOR_BASE_STRICT_P): Likewise.
10087         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
10088         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
10089         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
10090         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
10091
10092 2004-01-24  Jan Hubicka  <jh@suse.cz>
10093
10094         * cselib.c (remove_useless_values):  Do not access discarded values.
10095
10096 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
10097
10098         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
10099         arrays.
10100
10101 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
10102
10103         * recog.c: Fix a typo in copyright.
10104
10105 2004-01-23  Andrew Pinski  <apinski@apple.com>
10106
10107         * config/rs6000/rs6000.md (call): Fix misappiled patch.
10108         (call_value): Likewise.
10109
10110 2004-01-23  Richard Henderson  <rth@redhat.com>
10111
10112         PR opt/12941
10113         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
10114         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
10115         if SHIFT_COUNT_TRUNCATED is set.
10116
10117 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
10118
10119         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
10120         separate real and imaginary parts.
10121         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
10122
10123 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
10124
10125         PR target/13674
10126         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
10127         loading into GPR.
10128
10129 2004-01-23  Jan Hubicka  <jh@suse.cz>
10130
10131         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
10132         change.
10133
10134         * alloc-pool.c (align_four): Kill.
10135         (create_alloc_pool): Align size to eight.
10136         (free_alloc_pool, free_pool): Invalidate deallocated data.
10137
10138 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
10139
10140         PR gcc/1532
10141         * cse.c (cse_change_cc_mode): New static function.
10142         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
10143         (cse_condition_code_reg): New function.
10144         * rtl.h (cse_condition_code_reg): Declare.
10145         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
10146         * target.h (struct gcc_target): Add fixed_condition_code_regs and
10147         cc_modes_compatible.
10148         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
10149         (TARGET_CC_MODES_COMPATIBLE): Define.
10150         (TARGET_INITIALIZER): Add new initializers.
10151         * targhooks.c (default_cc_modes_compatible): New function.
10152         * targhooks.c (default_cc_modes_compatible): Declare.
10153         * hooks.c (hook_bool_intp_intp_false): New function.
10154         * hooks.h (hook_bool_intp_intp_false): Declare.
10155         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
10156         (TARGET_CC_MODES_COMPATIBLE): Define.
10157         (ix86_fixed_condition_code_regs): New static function.
10158         (ix86_cc_modes_compatible): Likewise.
10159         * doc/tm.texi (Condition Code): Document new hooks.
10160
10161 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10162
10163         * fixinc/inclhack.def (bad_lval): Renamed to ...
10164         (alpha_bad_lval): ... this.
10165         Removed file list.
10166         Restrict to alpha*-dec-osf*.
10167         * fixinc/fixincl.x: Regenerate.
10168         * fixinc/tests/base/dirent.h: Remove, moving test ...
10169         * fixinc/tests/base/testing.h: ... here, reflecting new name.
10170
10171 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
10172
10173         PR c/13814
10174         * c-decl.c (diagnose_mismatched_decls): Also discard a
10175         built-in if we encounter an old-style definition with the
10176         same name.
10177
10178 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
10179
10180         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
10181         set to default{32,64}.
10182
10183 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
10184
10185         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
10186         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
10187
10188 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
10189             Olivier Hainque  <hainque@act-europe.fr>
10190
10191         * fold-const.c (fold_binary_op_with_conditional_arg): Only
10192         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
10193
10194 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
10195
10196         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
10197         size for minipool references.
10198
10199 2004-01-23  Roger Sayle  <roger@eyesopen.com>
10200
10201         * real.c (real_floor, real_ceil): Tweak to allow input and output
10202         arguments to overlap.
10203         (real_round): New function to implement round(3m) semantics.
10204         * real.h (real_round): Prototype here.
10205         * builtins.c (fold_builtin_round): New function to constant fold
10206         round, roundf and roundl.
10207         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
10208
10209 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
10210
10211         PR optimization/13819
10212         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
10213         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
10214         (sh_handle_sp_switch_attribute): Remove warning.
10215
10216 2003-11-30  Jan Hubicka  <jh@suse.cz>
10217
10218         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
10219
10220 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
10221
10222         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
10223         may or may not return non-NIL.
10224         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
10225         check CANNOT_CHANGE_MODE_CLASS
10226
10227 2004-01-23  Jan Hubicka  <jh@suse.cz>
10228
10229         * basic-block.h (PROP_POSTRELOAD): New macro.
10230         (CLEANUP_LOG_LINKS): New.
10231         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
10232         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
10233
10234         * cselib.c (value_pool): New.
10235         (new_cselib_val): Use pool.
10236         (cselib_init): Initialize value_pool
10237         (cselib_finish): Free pool.
10238
10239 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
10240
10241         * config/sparc/sparc.c (scan_record_type): New function.
10242         (function_arg_slotno): Use it to determine which kinds of
10243         registers the record can be passed in.
10244
10245 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
10246
10247         * config/pa/fptr.c: Fix old-style definition.
10248
10249 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
10250
10251         PR optimization/13724
10252         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
10253         represents the zero bits produced by a ZERO_EXTEND operation.
10254
10255 2004-01-22  Roger Sayle  <roger@eyesopen.com>
10256
10257         PR optimization/13821
10258         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
10259         correctly calculate the lowpart offset of the contracted subreg.
10260
10261 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
10262
10263         * doc/invoke.texi (Optimize Options): Note that --param arguments
10264         are subject to change without notice.
10265
10266 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10267
10268         * config.gcc (mips-sgi-irix6*o32): Removed.
10269         * config/mips/iris6-o32-as.h: Likewise.
10270         * config/mips/iris6-o32-gas.h: Likewise.
10271         * config/mips/iris6-o32.h: Likewise.
10272
10273 2004-01-22  Jan Hubicka  <jh@suse.cz>
10274
10275         * cfgcleanup.c (first_pass): New static variable.
10276         (try_forward_edges):  Add work limiting check for threading.
10277         (try_crossjump_bb):  Add work limiting check for crossjumping.
10278         (try_optimize_cfg):  Maintain first pass variable.
10279
10280 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
10281
10282         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
10283         handles complex and vector modes.
10284
10285 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
10286
10287         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
10288         (REG_OK_FOR_BASE_P_STRICT): Likewise.
10289         (STRICT): Likewise.
10290
10291 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
10292
10293         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
10294         (genrtl_for_stmt): Remove emit_nop calls.
10295
10296 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10297
10298         PR target/13713
10299         PR target/13324
10300         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
10301         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
10302         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
10303
10304 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
10305
10306         * config/arm/arm.c: Include "debug.h".
10307         (thumb_pushpop): Take two new arguments.  Add some commentary.
10308         Output frame information when pushing.
10309         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
10310         thumb_pushpop.
10311         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
10312         offset, and pass it to thumb_pushpop.  Output CFI information.
10313         (thumb_expand_prologue): Add some frame-related markers and notes.
10314
10315 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
10316
10317         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
10318         for TARGET_64BIT.
10319         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
10320         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
10321
10322 2004-01-22  Roger Sayle  <roger@eyesopen.com>
10323             Paolo Bonzini  <bonzini@gnu.org>
10324
10325         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
10326         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
10327         * rtl.h (subreg_lsb_1): Prototype here.
10328         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
10329         sign extensions.
10330
10331 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
10332
10333         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
10334         macro need not be defined if jump-tables should contain
10335         relative addresses only when -fPIC or -fPIC is in effect.
10336
10337 2004-01-22  Jan Hubicka  <jh@suse.cz>
10338
10339         * alias.c (reg_base_value): Turn into varray.
10340         (reg_base_value_size): Kill.
10341         (old_reg_base_value): New deletable varray.
10342         (alias_invariant_size): New variable.
10343         (REG_BASE_VALUE): Update to use varray.
10344         (find_base_value): Likewise.
10345         (record_set): Likewise.
10346         (record_base_value): Likewise.
10347         (memrefs_conflict_p): Likewise.
10348         (record_set): Likewise
10349         (record_base_value): Likewise.
10350         (memrefs_conflict_p): Use alias_invariant_size.
10351         (init_alias_analysis): Use varray; set alias_invariant_size;
10352         rescale other arrays to be sized by maxreg.
10353         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
10354
10355 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
10356
10357         * config/sparc/sparc.c (function_arg_slotno): Use
10358         FLOAT_TYPE_P to detect FP fields in structures.
10359         (function_arg_record_value_1): Likewise.
10360         (function_arg_record_value_2): Likewise.
10361
10362 2004-01-22  Jan Hubicka  <jh@suse.cz>
10363
10364         * function.c (allocate_struct_function): Do not initialize expr, emit
10365         and varasm.
10366         (prepare_function_start): Do it here.
10367         * c-parse.in (maybe_type_qual): Do not produce line number notes.
10368
10369 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
10370
10371         PR target/13559
10372         * config/sparc/sparc.c (function_arg_record_value_3): Revert
10373         to 'word_mode' once the first slot has been filled.
10374
10375 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
10376
10377         * config/sparc/sparc.c (function_arg_record_value_1): Fix
10378         computation of the number of integer registers required.
10379
10380 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
10381
10382         * config/i386/i386.md: Simplify certain comparisons of
10383         const_int.
10384
10385 2004-01-21  Andrew Pinski  <apinski@apple.com>
10386
10387         PR target/13785
10388         * config/rs6000/rs6000.md (call_value): Force operand
10389         1 not operand 0 into a register.
10390
10391 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
10392
10393         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
10394         unwind-dw2-fde.h: Update copyright.
10395
10396 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10397
10398         * pa-protos.h: Update copyright.
10399         * pa.h: Likewise.
10400         * pa.md: Likewise.
10401
10402 2004-01-21  Caroline Tice  <ctice@apple.com>
10403
10404         PR target/12308
10405         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
10406         flags register.
10407         (fix_truncdfdi2): Likewise.
10408         (fix_truncsfdi2): Likewise.
10409         (*fix_truncdi_1): Likewise.
10410         (fix_truncxfsi2): Likewise.
10411         (fix_truncdfsi2): Likewise.
10412         (fix_truncsfsi2): Likewise.
10413         (*fix_truncsi_1): Likewise.
10414         (fix_truncxfhi2): Likewise.
10415         (fix_truncdfhi2): Likewise.
10416         (fix_truncsfhi2): Likewise.
10417         (*fix_trunchi_1): Likewise.
10418
10419 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
10420
10421         * alias.c, basic-block.h, c-common.c, c-common.h,
10422         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
10423         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
10424         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
10425         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
10426         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
10427         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
10428         genautomata.c, genconditions.c, genemit.c, genflags.c,
10429         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
10430         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
10431         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
10432         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
10433         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
10434         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
10435         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
10436         unwind.h, varray.c, varray.h: Update copyright.
10437
10438 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
10439
10440         * config/h8300/coff.h: Update copyright.
10441         * config/h8300/elf.h: Likewise.
10442         * config/h8300/h8300-protos.h: Likewise.
10443         * config/h8300/h8300.c: Likewise.
10444         * config/h8300/h8300.h: Likewise.
10445         * config/h8300/h8300.md: Likewise.
10446
10447 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10448
10449         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
10450         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
10451         ultrix_unistd): New hacks.
10452         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
10453         ULTRIX_CONST2_CHECK): Add checks.
10454         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
10455         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
10456         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
10457         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
10458         * fixinc/tests/base/locale.h: New file.
10459         * fixinc/fixincl.x: Rebuilt.
10460
10461 2004-01-21  Andreas Jaeger  <aj@suse.de>
10462             Michael Matz  <matz@suse.de>
10463
10464         * doc/extend.texi (Extended Asm): Clarify memory clobber.
10465
10466 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
10467
10468         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
10469         _Jv_RegisterClasses through a function pointer.
10470
10471 2004-01-21  Falk Hueffner  <falk@debian.org>
10472
10473         PR target/12898
10474         * config/alpha/alpha.c (alpha_emit_set_const_1): If
10475         no_new_pseudos, use gen_rtx_SET directly for SImode constants
10476         which need multiple instructions to emit.
10477
10478 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
10479
10480         * config/m32r/m32r.h (CPP_SPEC): Define.
10481
10482 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
10483
10484         * c-decl.c (merge_decls): Kill different_binding_level and
10485         different_tu arguments; simplify throughout.
10486         (duplicate_decls): Likewise.
10487         (pushdecl, merge_translation_unit_decls): Update calls to
10488         duplicate_decls.
10489
10490 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10491
10492         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
10493         $(SYSTEM_H).
10494         (print-rtl1.o): Depend on $(SYSTEM_H).
10495
10496 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
10497
10498         PR bootstrap/12730
10499         * configure.ac: Delete definition and subsitution of docdir.
10500         Add info, man, srcman and srcinfo to target hooks. Create doc/
10501         directory.
10502         * configure: Regenerate.
10503         * Makefile.in: Don't substitute docdir and delete all references
10504         throughout.
10505         (MAKEINFOFLAGS): Define.
10506         (stmp-docobjdir): Delete.
10507         (INFOFILES, MANFILES): Define.
10508         (info): Call lang.info, srcinfo and lang.srcinfo.
10509         (generated-manpages): Call lang.man, srcman and lang.srcman.
10510         (srcinfo, srcman): New rules to copy back files to source directory.
10511         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
10512         (install-man): Revamp rule.
10513         (clean): Update dvi directory.
10514         (distclean): Delete TAGS from front end directorys.
10515         (maintainer-clean): Delete all document files in source directory.
10516
10517         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
10518         (objc.srcman, objc.srcinfo): Likewise.
10519
10520 2004-01-20  Bruce Korb  <bkorb@gnu.org>
10521
10522         * fixinc/inclhack.def(math_exception): bypass only for glibc.
10523         (matherr_decl): rename & relocate as exception_structure.
10524         This fix must precede the math_exception fix.
10525
10526 2004-01-20  Roger Sayle  <roger@eyesopen.com>
10527
10528         * fold-const.c (fold_convert): Rename to fold_convert_const.
10529         (fold_convert_const): Change arguments to take a tree_code,
10530         a type and the operand/expression to be converted.  Return
10531         NULL_TREE if no simplification is possible.  Add support for
10532         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
10533         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
10534         Adjust call to fold_convert to match new fold_convert_const.
10535         Avoid modifying the tree passed to fold in-place.
10536
10537 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
10538
10539         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
10540         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
10541         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
10542
10543 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10544
10545         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
10546         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
10547         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
10548         (emit_move_sequence): Check scratch_reg first in various if statements.
10549         Extend source simplification to handle all 64-bit CONST_INTs.
10550         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
10551         frame size.
10552         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
10553         frame offset calculations.
10554         * pa.h (NEW_HP_ASSEMBLER): Add comment.
10555         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
10556         LEGITIMATE_64BIT_CONST_INT_P): Define.
10557         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
10558         any CONST_INT as legitimate during and after reload.
10559         (VAL_32_BITS_P, INT_32_BITS): Define.
10560         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
10561
10562 2004-01-20  Jan Hubicka  <jh@suse.cz>
10563
10564         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
10565         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
10566         containing hard regs are shared.
10567         (gen_hard_reg_clobber): New function.
10568         (hard_reg_clobbers): New array.
10569         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
10570         (copy_rtx): Do not copy clobbers containing hard regs.
10571         * rtl.h (gen_hard_reg_clobber): Declare.
10572
10573 2004-01-20  Jan Hubicka  <jh@suse.cz>
10574
10575         * varray.c:  Include hashtab.h
10576         (varray_descriptor): New structure.
10577         (hash_descriptor, eq_descriptor, varray_descriptor,
10578         print_statistics): New static functions
10579         (varray_init, varray_grow): Update statistics
10580         (dump_varray_statistics): New function.
10581         * varray.h (dump_varray_statistics): Declare.
10582         * toplev.c (finalize): Call it.
10583         * Makefile.in (varray.o): Add dependency.
10584
10585 2004-01-20  Jan Hubicka  <jh@suse.cz>
10586
10587         * cselib.c: Include alloc-pool.h
10588         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
10589         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
10590         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
10591         unchain_one_elt_loc_list_pool, unchain_one_value,
10592         new_cselib_val): Simplify using allocpool.
10593         (cselib_init): Initialize allocpools.
10594         (cselib_finish): Finish allocpools.
10595         * Makefile.in (cselib.o): Depend on alloc-pool.h
10596
10597 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
10598
10599         * config/mips/mips.c (mips_load_call_address): Make the call insn
10600         use $gp if it could be calling a lazy binding stub.
10601
10602 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
10603
10604         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
10605         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10606         (TARGET_STRUCT_VALUE_RTX): Likewise.
10607         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
10608         (PROMOTE_FUNCTION_RETURN): Remove.
10609         (STRUCT_VALUE): Remove.
10610
10611 2004-01-20  Denis Chertykov  <denisc@overta.ru>
10612
10613         PR bootstrap/13735
10614         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
10615         register as pointer after reload.
10616
10617 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10618
10619         PR optimization/12440
10620         * loop.c: Include ggc.h.
10621         (loop_optimize): Run garbage collector between optimization of loops.
10622         * Makefile.in (loop.o): Add GGC_H dependency.
10623
10624 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
10625
10626         * gcc/config/rs6000/rs6000.c (function_arg) Handle
10627         vector register special in function without prototype.
10628         (function_arg_advance): Vector parameters get always
10629         GPRs allocated for the linux64 target.
10630
10631 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
10632
10633         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
10634         not TARGET_M32RX_MASK.
10635
10636 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
10637
10638         PR target/13557
10639         * config/sparc/sparc.c (function_arg): Reorder the cases.
10640
10641 2004-01-19  Per Bothner  <per@bothner.com>
10642
10643         Move cpp_reader's line_maps field to a shared global.
10644         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
10645         and change the type to a pointer rather than a struct.
10646         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
10647         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
10648         Likewise.
10649         * cppfiles.c (validate_pch):  Likewise.
10650         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
10651         Likewise.
10652         * cpperror.c (print_location):  Likewise.
10653         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
10654         * cppinit.c (cpp_create_reader):  Handle new parameter.
10655         (cpp_destroy):  Don't free line_maps - that's no longer our job.
10656         * input.h (line_table):  New variable.
10657         * toplev.c (line_table):  Declare variable.
10658         (general_init):  Initialize line_table.
10659         * c-opts.c (c_common_init_options):  Pass line_table to
10660         cpp_create_reader.
10661         * fix-header.c (read_scan_file):  New local variable line_table.
10662         Initialize, and pass it to cpp_create_reader.
10663         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
10664         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
10665
10666 2004-01-19  Per Bothner  <per@bothner.com>
10667
10668         Implement a cache for linemap_lookup.
10669         * line-map.h (struct_line_maps):  Add cache field.
10670         * line-map.c (linemap_init):  Zero cache field.
10671         (linemap_add):  Set cache field to offset of newly allocated map.
10672         (linemap_lookup):  Use and set cache field.
10673
10674 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10675
10676         PR optimization/13567
10677         * cse.c (cse_basic_block): Call cse_insn with a non-null
10678         libcall_insn for the last SET insn of a no-confilict block.
10679
10680 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
10681
10682         * Makefile.in (target_noncanonical, program_transform_name): Use
10683         immediate define instead of deferred.
10684         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
10685         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
10686         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
10687         deferred backquote.
10688
10689 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
10690
10691         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
10692         true unconditionally.
10693         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
10694         Remove.
10695         (build_unary_op, build_modify_expr): Don't handle extended
10696         lvalues.
10697         (build_component_ref, build_conditional_expr): Call non_lvalue
10698         instead of pedantic_non_lvalue.
10699         (build_c_cast): Don't condition use of non_lvalue on pedantic.
10700         * fold-const.c (fold): Don't check pedantic directly for
10701         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
10702         passed to pedantic_non_lvalue.
10703         * doc/extend.texi: Remove documentation of extended lvalues.
10704
10705 2004-01-19  Roger Sayle  <roger@eyesopen.com>
10706
10707         PR optimization/5263
10708         * simplify-rtx.c (associative_constant_p): Delete.
10709         (simplify_associative_operation): Rewrite to linearize terms, and
10710         attempt to simplify new term against both left and right subterms.
10711         (simplify_binary_operation): Call swap_commutative_operands_p on
10712         op0 and op1, not trueop0 and trueop1.  Move the initialization of
10713         trueop0 and trueop1 down to where first needed.
10714         (simplify_relational_operation): Likewise.
10715         * rtlanal.c (commutative_operand_precedence): Also order constant
10716         operands using avoid_constant_pool_reference.
10717
10718 2004-01-19  Richard Henderson  <rth@redhat.com>
10719
10720         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
10721         don't check memory mode.
10722         (unaligned_memory_operand): Likewise.
10723         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
10724         abort for op0 not MEM.
10725
10726         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
10727         is not a reg, copy to a scratch first.
10728         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
10729         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
10730         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
10731         (reload_inqi, reload_inhi): Fix mode of op0.
10732         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
10733         reload_outhi_help): Likewise.  Use define_insn_and_split.
10734
10735         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
10736         as well as $29 dead.
10737
10738 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
10739
10740         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
10741         "tls_object" for thread-local objects.
10742         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
10743         "#tls" for thread-local sections.
10744         * configure.ac (thread-local checks): Specify --fatal-warnings in
10745         every binutils-specific checks.  For sparc*-*-*, test whether the
10746         OS is Solaris and the tools are native and act accordingly.
10747         * configure: Rebuild.
10748
10749 2004-01-19  Jeff Law  <law@redhat.com>
10750
10751         * contrib.texi: Update Paolo Carlini's entry.  New entries for
10752         Jerry Quinn and Petur Runolfsson.
10753
10754 2004-01-19  Roger Sayle  <roger@eyesopen.com>
10755
10756         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
10757         size, don't use the larger zero-extending loads.
10758
10759 2004-01-19  Richard Henderson  <rth@redhat.com>
10760
10761         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
10762         * alpha.md (UNSPEC_NT_LDA): Remove.
10763         (UNSPEC_CVTLQ, cvtlq): New.
10764         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
10765         (extendsidi2_fix): Remove.
10766         (extendsidi2 splitter): Use cvtlq.
10767         (extendsidi2 fp peepholes): Remove.
10768         (cvtql): Use SFmode instead of SImode.
10769         (fix_trunc?fsi): Update to match.
10770         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
10771         (movsi): Rename from movsi_nofix, remove f alternatives.
10772         (movsi_nt_vms): Similarly.
10773         (movsi_fix, movsi_nt_vms_fix): Remove.
10774         (nt_lda): Remove.
10775         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
10776
10777 2004-01-19  Jan Hubicka  <jh@suse.cz>
10778
10779         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
10780         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
10781         list.
10782         (cgraph_remove_unreachable_nodes): New function
10783         (cgraph_decide_inlining_of_small_function): Fix pasto.
10784         (cgraph_decide_inlining_incrementally): Fix pasto.
10785         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
10786
10787 2004-01-19  Steven Bosscher  <stevenb@suse.de>
10788
10789         * gengtype.c (header_file): Make it static.
10790         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
10791         * gengtype.h (header_file): No longer extern.
10792
10793 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
10794
10795         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
10796         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
10797         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
10798
10799 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
10800
10801         * stmt.c (HAVE_casesi): Define it not already defined.
10802         (HAVE_tablejump): Likewise.
10803         (expand_end_case_type): Resort to the binary tree method if
10804         neither casesi or tablejump is available.
10805
10806 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
10807
10808         * final.c (final_scan_insn): Make non-static again.
10809         * output.h (final_scan_insn): Re-add prototype.
10810         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
10811         to final_scan_insn call.
10812         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
10813         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
10814         * config/pa/pa.c (output_lbranch, output_call): Likewise.
10815         * config/sh/sh.c (print_slot): Likewise.
10816         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
10817         (output_sibcall, sparc_flat_function_epilogue): Likewise.
10818
10819 2004-01-18  Jan Hubicka  <jh@suse.cz>
10820
10821         * basic-block.h (try_redirect_by_replacing_jump): Declare.
10822         * cfgcleanup.c (try_optimize_cfg): Use it.
10823         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
10824         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
10825         Kill hack.
10826         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
10827
10828         Revert:
10829         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
10830
10831                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
10832                 even after reload, just don't remove the actual jump tables.
10833
10834 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
10835
10836         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
10837
10838 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
10839
10840         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
10841         the size of a pointer in bytes.
10842
10843 2004-01-18  Roger Sayle  <roger@eyesopen.com>
10844
10845         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
10846         live "next" variable, which could lead to an infinite loop.
10847
10848 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
10849
10850         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
10851         block.
10852
10853         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
10854         Check for NULL in the chain and remove repeated code.
10855
10856 2004-01-18  Jan Hubicka  <jh@suse.cz>
10857
10858         * coverage.c (checksum_string): Rename to ...
10859         (coverage_checksum_string): ... this one, Use crc32_string; recognize
10860         names containing random number and zero the number out in order to get
10861         match.
10862
10863 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
10864
10865         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
10866
10867 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
10868
10869         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
10870         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
10871         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
10872         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
10873         doc/trouble.texi: Remove trailing whitespace.
10874
10875 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
10876
10877         PR target/7618
10878         * config/mips/mips.c: Include cfglayout.h.
10879         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
10880         (mips_unspec_offset_high): Add temporary register argument.
10881         (mips_load_call_address): New function, split out from...
10882         (mips_expand_call): ...here.
10883         (mips_output_cplocal): New function.
10884         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
10885         (mips_emit_loadgp): New function, split out from...
10886         (mips_expand_prologue): ...here.
10887         (mips_output_mi_thunk): New function.
10888
10889 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
10890
10891         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
10892         mcpu32): Remove redundant checks for implied target predefines.
10893
10894 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
10895
10896         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
10897         Return type is unsigned int not int.
10898         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
10899         Likewise.
10900
10901 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
10902
10903         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
10904         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
10905         "GNU/Linux" and "Microsoft Windows" terminology.
10906
10907 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
10908
10909         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
10910         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
10911         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
10912         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
10913         @smallexample instead of @example.
10914
10915 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
10916
10917         * objc/objc-act.c (build_objc_method_call): Use target
10918         hooks instead of macros to determine if ..._stret
10919         dispatchers should be used (NeXT runtime only).
10920
10921 2004-01-17  Roger Sayle  <roger@eyesopen.com>
10922
10923         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
10924         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
10925
10926 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
10927
10928         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
10929         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
10930         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
10931         macros.
10932         * reload1.c (emit_reload_insns): Use them.
10933         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
10934         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
10935         for NULL PATTERN.
10936
10937 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
10938
10939         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
10940         (final_scan_insn): Update to take an additional SEEN argument.  Emit
10941         a line note after the prologue.  Make static.
10942         (line_note_exists): Remove.
10943         (final): Don't initialize line_note_exists.  Update call to
10944         final_scan_insn.
10945         * output.h (final_scan_insn): Remove prologue.
10946         * function.c (set_insn_locators): Update comment.
10947         (thread_prologue_and_epilogue_insns): Add a comment.
10948
10949 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
10950
10951         PR target/10781
10952         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
10953         Prototype.
10954         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
10955         New function.
10956         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
10957         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
10958         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
10959
10960 2004-01-17  Jan Hubicka  <jh@suse.cz>
10961
10962         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
10963         commit.
10964
10965         * toplev.c (HAVE_conditional_execution): Provide default.
10966         (rest_of_handle_reorder_blocks): For conditional_execution target
10967         update liveness once after all transformations
10968         (rest_of_compilation): Do crossjumping before ce3.
10969
10970 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
10971
10972         * alias.c (new_alias_set): Mark last_alias_set for PCH.
10973         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
10974         for PCH.
10975         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
10976         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
10977         (get_TOC_alias_set): Mark 'set' for PCH.
10978
10979 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
10980
10981         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
10982         even after reload, just don't remove the actual jump tables.
10983
10984 2004-01-17  J. Brobecker  <brobecker@gnat.com>
10985
10986         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
10987         Remove checks for is_ada() and TREE_UNSIGNED.
10988         (subrange_type_die): Emit a byte_size attribute if the subrange
10989         type size is different from the base type size.
10990         (modified_type_die): Replace call to is_ada_subrange_type() by
10991         call to is_subrange_type().
10992
10993 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
10994
10995         * config/sh/sh.c: Include ggc.h.
10996
10997 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
10998
10999         * Makefile.in (MD5_H): New.
11000         (fold-const.o): Depend on md5.h.
11001         (dwarf2out.o): Likewise.
11002         (cppfiles.o): Likewise.
11003         * cppfiles.c: Include md5.h.
11004         (should_stack_file): Check against list read from PCH file.
11005         (struct pchf_data): New.
11006         (pchf): New variable.
11007         (struct pchf_adder_info): New.
11008         (pchf_adder): New.
11009         (pchf_save_compare): New.
11010         (_cpp_save_file_entries): New.
11011         (_cpp_read_file_entries): New.
11012         (struct pchf_compare_data): New.
11013         (pchf_compare): New.
11014         (check_file_against_entries): New.
11015         * cpphash.h (_cpp_save_file_entries): Prototype.
11016         (_cpp_read_file_entries): Prototype.
11017         * cpppch.c (cpp_write_pch_state): Write the list of headers.
11018         (cpp_read_state): Read the list of headers.
11019
11020 2004-01-17  Jan Hubicka  <jh@suse.cz>
11021
11022         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
11023         builtin_expect specially.
11024         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
11025         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
11026         * invoke.texi (max-inline-insns-single): Set to 100.
11027         (large-function-insns): Set to 3000.
11028
11029 2004-01-16  Eric Christopher  <echristo@redhat.com>
11030             Chandrakala Chavva <cchavva@redhat.com>
11031
11032         * cppcharset.c (one_iso88591_to_utf8): New function.
11033         (convert_iso88591_utf8): Ditto. Use.
11034         (conversion_tab): Use.
11035         (_cpp_input_to_utf8): New function.
11036         (_cpp_init_iconv_buffer): Ditto.
11037         (_cpp_close_iconv_buffer): Ditto.
11038         * cpphash.h: Prototype new functions.
11039         (cpp_buffer): Add input_cset_desc.
11040         * cppinit.c: Add input_charset default.
11041         * cpplib.c (cpp_push_buffer): Support init and
11042         close of iconv.
11043         * cpplib.h (cpp_options): Add input_charset.
11044
11045 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
11046
11047         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
11048         * config/alpha/unicosmk.h: Remove a commented-out definition
11049         of ASM_OUTPUT_SECTION_NAME.
11050         * config/stormy16/stormy16.h: Likewise.
11051
11052 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11053
11054         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
11055         (alpha___extern_prefix_sys_stat): ... this.
11056         Apply to <sys/mount.h>, too.
11057         Tweak to match more variations.
11058         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
11059
11060         * fixinc/inclhack.def (alpha___extern_prefix,
11061         alpha___extern_prefix_standards): New hacks to obey
11062         __PRAGMA_EXTERN_PREFIX.
11063         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
11064         test.
11065         * fixinc/tests/base/standards.h: Likewise.
11066
11067         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
11068         variations.
11069         New testcase.
11070         * fixinc/tests/base/pthread.h: Handle it.
11071
11072         * fixincl/inclhack.def (bad_lval): Sort file list.
11073         Add many missing files up to Tru64 UNIX V5.1B.
11074         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
11075         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
11076         order.
11077
11078         * fixinc/fixincl.x: Regenerate.
11079
11080 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
11081
11082         * version.c (version_string): Change to 3.5.0.
11083         * doc/include/gcc-common.texi (version-GCC): Likewise.
11084
11085 2004-01-16  Jan Hubicka  <jh@suse.cz>
11086
11087         * i386.md (load_tp_di): Fix pasto.
11088
11089         PR opt/13608
11090         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
11091
11092         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
11093         pp_c_character_constant, pp_c_floating_constant,
11094         pp_c_additive_expression, pp_c_shift_expression,
11095         pp_c_equality_expression, pp_c_and_expression,
11096         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
11097         pp_c_logical_and_expression): Remove inline modifier.
11098         * dwarf2out.c (get_AT): Likewise.
11099         * et-forest.c (et_splay): Likewise.
11100         * ra.h (ra_alloc, ra_calloc): Likewise
11101
11102 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
11103
11104         * config/frv/frv-protos.h: Fix comment formatting.
11105         * config/frv/frv.c: Likewise.
11106         * config/frv/frv.h: Likewise.
11107         * config/frv/frv.md: Likewise.
11108         * config/frv/frvbegin.c: Likewise.
11109         * config/frv/frvend.c: Likewise.
11110
11111 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
11112
11113         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
11114         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
11115         LINKER_DOES_NOT_WORK_WITH_DWARF2.
11116         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
11117
11118 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
11119
11120         PR 11864
11121         * postreload.c (reload_cse_simplify_operands): Don't remove
11122         implicit extension from LOAD_EXTEND_OP.
11123
11124 2004-01-16  Jan Hubicka  <jh@suse.cz>
11125
11126         PR opt/11350
11127         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
11128         after reload.
11129         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
11130         rtl_try_redirect_by_replacing_branch): Likewise.
11131
11132 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
11133
11134         PR pch/13689
11135         * alias.c (struct alias_set_entry): Mark for GC.
11136         (alias_sets): Make static, mark for GC.
11137         (record_alias_subset): Use GC to allocate alias structures.
11138         * varray.c (element): Make generic varrays GCed.
11139
11140         PR pch/13361
11141         * c-typeck.c (constructor_asmspec): Delete.
11142         (struct initializer_stack): Delete field 'asmspec'.
11143         (start_init): Delete saving of asmspec.
11144         (finish_init): Don't update constructor_asmspec.
11145         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
11146         * stmt.c (expand_asm): Duplicate strings from tree.
11147         (expand_asm_operands): Likewise.
11148         * tree.c (tree_size): Update computation of size of STRING_CST.
11149         (make_node): Don't make STRING_CST nodes.
11150         (build_string): Allocate string with tree node.
11151         * tree.def (STRING_CST): Update comment.
11152         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
11153         (tree_string): Place contents of string in tree node.
11154         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
11155         from tree.
11156
11157         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
11158         altivec operands.
11159
11160 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11161
11162         * c-common.h: Fix comment formatting.
11163         * c-cppbuiltin.c: Likewise.
11164         * c-pragma.c: Likewise.
11165         * calls.c: Likewise.
11166         * collect2.c: Likewise.
11167         * cppcharset.c: Likewise.
11168         * cpptrad.c: Likewise.
11169         * dbxout.c: Likewise.
11170         * defaults.h: Likewise.
11171         * dwarf2out.c: Likewise.
11172         * fold-const.c: Likewise.
11173         * genautomata.c: Likewise.
11174         * genconditions.c: Likewise.
11175         * genflags.c: Likewise.
11176         * gengtype.c: Likewise.
11177         * integrate.c: Likewise.
11178         * loop.c: Likewise.
11179         * predict.c: Likewise.
11180         * sdbout.c: Likewise.
11181
11182 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
11183
11184         * config/ia64/ia64.md (*movti_internal): C output template
11185         extracted to ia64.c.
11186         (*movti_internal_reg): Delete.
11187         (reload_inti, reload_outti): Use the correct mode on operand 2
11188         in the first place, don't fix it up in the output template.
11189         (movtf, reload_ointf, reload_outtf): New expanders.
11190         (*movtf_internal): New define_insn_and_split.
11191         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
11192         make static; do not hand TFmode CONST_DOUBLEs to split_double.
11193         (ia64_split_tmode_move): New function, body mostly pulled
11194         from ia64.md:*movti_internal.
11195         (ia64_function_arg_words): New function, extracted common
11196         logic from ia64_function_arg et seq.
11197         (ia64_function_arg_offset): Likewise.  Handle correctly the
11198         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
11199         (ia64_function_arg, ia64_function_arg_partial_nregs)
11200         (ia64_function_arg_advance): Use ia64_function_arg_words and
11201         ia64_function_arg_offset.
11202         (ia64_function_value): TCmode does not go in float regs.
11203         (ia64_secondary_reload_class): Also handle TFmode.
11204         * config/ia64/ia64-protos.h: Remove prototype for
11205         ia64_split_timode; add prototype for ia64_split_tmode_move.
11206
11207 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
11208
11209         * Makefile.in (MAINT): Make it an immediate assignment.
11210
11211 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11212
11213         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
11214
11215 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11216
11217         * config/h8300/coff.h: Replace Hitachi with Renesas.
11218         * config/h8300/elf.h: Likewise.
11219         * config/h8300/h8300-protos.h: Likewise.
11220         * config/h8300/h8300.c: Likewise.
11221         * config/h8300/h8300.h: Likewise.
11222         * config/h8300/h8300.md: Likewise.
11223         * config/h8300/lib1funcs.asm: Likewise.
11224
11225 2004-01-15  Andrew Pinski  <apinski@apple.com>
11226
11227         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
11228         around it.
11229
11230 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11231
11232         * config/h8300/h8300.c (h8300_return_in_memory): New.
11233         (TARGET_STRUCT_VALUE_RTX): Likewise.
11234         (TARGET_RETURN_IN_MEMORY): Likewise.
11235         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
11236         (RETURN_IN_MEMORY): Likewise.
11237
11238 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
11239
11240         PR optimization/13375
11241         * gcse.c (handle_avail_expr): Just return if the source is not a
11242         single set.
11243
11244 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
11245             Daniel Jacobowitz  <drow@mvista.com>
11246
11247         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
11248         (EQUIV): Define.
11249         (ARM_FUNC_ALIAS): New macro.
11250         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
11251         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
11252
11253 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11254
11255         PR optimization/12372
11256         * calls.c (expand_call): Add call_fusage data for stack arguments in
11257         constant calls.
11258
11259 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
11260
11261         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
11262         (rs6000_elf_declare_function_name): Formatting.
11263         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
11264
11265 2004-01-15  Jan Hubicka  <jh@suse.cz>
11266
11267         PR bootstrap/13692
11268         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
11269         previous patch.
11270
11271 2004-01-15  Richard Henderson  <rth@redhat.com>
11272
11273         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
11274         integer regs of the same call-savedness.
11275
11276 2004-01-15  Andreas Schwab  <schwab@suse.de>
11277
11278         PR bootstrap/13562
11279         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
11280         status for NOTB/NOTW/NEGW methods.
11281
11282 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11283
11284         * doc/invoke.texi: Update dump file names.  Fix a typo.
11285
11286 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11287
11288         * builtins.c (expand_builtin_va_end): Don't use
11289         EXPAND_BUILTIN_VA_END.
11290         * system.h (EXPAND_BUILTIN_VA_END): Poison.
11291         * config/d30v/d30v.h: Remove a commented-out definition of
11292         EXPAND_BUILTIN_VA_END.
11293         * config/stormy16/stormy16.h: Likewise.
11294
11295 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11296
11297         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
11298         * targhooks.c (default_struct_value_rtx): Don't use
11299         STRUCT_VALUE_INCOMING_REGNUM.
11300
11301 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
11302
11303         PR bootstrap/12744
11304         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
11305         GENINSRC and not parsedir.  Define srcextra as a langhook.
11306         * configure: Regenerate.
11307         * Makefile.in: Suppress default .l.c rule.  Don't substitute
11308         parsedir and delete all references throughout.  Conditionally define
11309         rule for srcextra dependent on GENINSRC.
11310         (stmp-docobjdir): Delete.
11311         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
11312         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
11313         and gengtype-yacc.h back to source directory.
11314         (maintainer-clean): Delete all parse files in source directory.
11315         (distclean): Delete generated files.
11316
11317         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
11318         (objc-parse.c, objc-parse.y): Don't use parsedir.
11319         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
11320         directory if requested.
11321         (po-generated): Don't use parsedir.
11322         (objc.maintainer-clean): Delete above files from source directory.
11323
11324 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11325
11326         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
11327
11328 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11329
11330         * doc/tm.texi: Replace RETURN_IN_MEMORY with
11331         TARGET_RETURN_IN_MEMORY.
11332
11333 2004-01-15  Jan Hubicka  <jh@suse.cz>
11334
11335         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
11336         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
11337         functions accepting SSE arguments
11338         (function_arg): Warn only when asked to warn.
11339         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
11340
11341 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
11342
11343         * c-parse.in (stmts_and_decls): Make label at end of compound
11344         statement a hard error.
11345
11346 2004-01-14  Jan Hubicka  <jh@suse.cz>
11347
11348         * cgraph.c (create_edge): Use local.redefined_extern_inline.
11349         * cgraph.h (cgraph_local_info): Sort fields by size; add
11350         redefined_extern_inline
11351         (cgraph_global_info): Sort fields by size.
11352         (cgraph_node): Likewise.
11353         * cgraphunit.c (cgraph_finalize_function): Se
11354         local.redefined_extern_inline on redefinition.
11355         (cgraph_analyze_function): Use it; fix formating.
11356
11357 2004-01-14  Jan Hubicka  <jh@suse.cz>
11358
11359         PR c++/10776
11360         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
11361         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
11362         bitmaps
11363         (cache_size): New variable
11364         (add_dependence): Update use; canonize early memory locations
11365         (sched_analyze_1): Likewise.
11366         (sched_analyze_2): Likewise.
11367         (init_dependency_caches): Initialize bitmaps.
11368         (free_dependency_caches): Free bitmaps
11369
11370 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11371
11372         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
11373         targetm.calls.strict_argument_naming().
11374         * target.h: Likewise.
11375
11376 2004-01-14  Richard Henderson  <rth@redhat.com>
11377
11378         PR debug/13231
11379         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
11380         instructions.
11381
11382 2004-01-14  Richard Henderson  <rth@redhat.com>
11383
11384         PR c++/12491
11385         * except.c (struct eh_region): Add u.fixup.resolved.
11386         (resolve_one_fixup_region): Split out from ...
11387         (resolve_fixup_regions): ... here.
11388
11389 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11390
11391         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
11392
11393 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11394
11395         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
11396         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
11397         (STRUCT_VALUE): Remove.
11398
11399 2004-01-14  Steven Bosscher  <stevenb@suse.de>
11400
11401         * system.h: Poison PROMOTED_MODE
11402         * integrate.c (expand_inline_function): Don't mention the
11403         PROMOTED_MODE.
11404         * loop.c (update_giv_derive): Same.
11405         * tree.h (DECL_RTL): Same.
11406
11407 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
11408
11409         PR target/9365
11410         * sh.c (gen_block_redirect): Add special handling of RETURN.
11411         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
11412         far branch target (i.e. it's a return).
11413
11414 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11415
11416         * regrename.c (find_oldest_value_reg): Fix a warning.
11417
11418 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
11419
11420         PR bootstrap/12527
11421         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
11422         Move linux-gas.h and linux-elf.h before aout.h.
11423         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
11424         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
11425
11426 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11427
11428         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
11429         (CONST_INT, VOIDmode, ...).
11430
11431 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
11432
11433         * regrename.c (find_oldest_value_reg): If the replacement uses
11434         multiple hard registers, check that all of them are in CLASS.
11435
11436 2004-01-14  Jan Hubicka  <jh@suse.cz>
11437
11438         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
11439         impossible.
11440
11441 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
11442
11443         * Makefile.in: Define MAINT from --enable-maintainer-mode.
11444
11445 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
11446
11447         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
11448         Calculate always vrsave_mask if TARGET_ALTIVEC.
11449         (rs6000_emit_prologue): Emit code for vrsave
11450         only if TARGET_ALTIVEC_VRSAVE.
11451         (rs6000_emit_epilogue): Likewise.
11452
11453 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
11454
11455         * config/sparc/sparc.md (tie_add32): Fix pasto.
11456         (tie_add64): Likewise.
11457
11458 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11459
11460         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
11461
11462 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
11463
11464         * config/iq2000/iq2000-protos.h: Fix comment formatting.
11465         * config/iq2000/iq2000.c: Likewise.
11466         * config/iq2000/iq2000.md: Likewise.
11467
11468 2004-01-14  J. Brobecker  <brobecker@gnat.com>
11469
11470         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
11471         (subrange_type_die): Add handle for nameless subrange types.
11472
11473 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
11474
11475         * config/h8300/h8300-protos.h: Replace do_movsi with
11476         h8300_expand_movsi.
11477         * config/h8300/h8300.c (do_movsi): Change to
11478         h8300_expand_movsi.
11479         * config/h8300/h8300.md (movsi): Replace do_movsi with
11480         h8300_expand_movsi.
11481         (movsf): Likewise.
11482
11483 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
11484
11485         * config/h8300/h8300.c (dosize): Change to
11486         h8300_emit_stack_adjustment.  Update callers.
11487
11488 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
11489
11490         * config/h8300/h8300.md (movstrictqi): Add an alternative with
11491         the source being post_inc.  Tighten the predicate for the
11492         destination to register_operand.
11493         (movstricthi): Likewise.
11494
11495 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
11496
11497         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
11498         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
11499         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
11500
11501 2004-01-14  Jan Hubicka  <jh@suse.cz>
11502
11503         Partial fix PR c++/12850
11504         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
11505         at zero nest level.
11506
11507 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
11508
11509         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
11510         pseudo-register.
11511
11512 2004-01-13  Devang Patel <dpatel@apple.com
11513
11514         PR debug/7078
11515         * dbxout.c (dbxout_symbol_name): Emit mangled names for
11516         NAMESPACE_DECL memebers.
11517
11518 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
11519
11520         PR c++/12709
11521         * c-common.c (finish_fname_decls): Use the chain only if the
11522         tree is an expr_stmt.
11523
11524 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
11525
11526         * rtl.def: Add comment about new option in automata_option.
11527
11528         * genautomata.c (PROGRESS_OPTION): New macro.
11529         (progress_flag): New global variable.
11530         (gen_automata_option): Process `progress'.
11531         (transform_insn_regexps, check_unit_distributions_to_automata,
11532         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
11533         expand_automata, write_automata): Print about the progress only if
11534         progress_flag.  Remove fflush.
11535         (initiate_automaton_gen): Process command line flag `-progress'.
11536
11537         * doc/md.texi: Describe the new option.
11538
11539 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11540
11541         * cfg.c (dump_bb): Dump entry edges.
11542
11543 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
11544
11545         * arm.c (thumb_legitimate_address_p): Only allow constant pool
11546         references from SImode.
11547         * arm.md (thumb_movhi_insn): Don't allow minipool references.
11548
11549 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
11550
11551         * system.h (TEXT_SECTION): Poison.
11552         * varasm.c (text_section): Don't use TEXT_SECTION.
11553         * config/sh/sh.c (sh_file_start): Fix a comment typo.
11554         * doc/tm.texi (TEXT_SECTION): Remove.
11555
11556 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
11557
11558         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
11559
11560 2004-01-12  James E Wilson  <wilson@specifixinc.com>
11561
11562         * unwind-libunwind.c: Delete.
11563
11564 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
11565
11566         PR 13656
11567         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
11568         oldtype is set, set *newtypep or *oldtypep too.  Do not set
11569         them at the very end.
11570         (validate_proto_after_old_defn): Restructure for comprehensibility;
11571         make error messages clearer.
11572
11573 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
11574
11575         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
11576         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
11577         * varray.c: No need to prototype error.
11578         (varray_check_failed): Wrap long string onto two lines.
11579         (varray_underflow): New function.
11580
11581 2004-01-13  Steven Bosscher  <stevenb@suse.de>
11582
11583         PR c++/13376
11584         * function.h (struct function): Kill `name' field.
11585         (current_function_name): Make it an extern function.
11586         * function.c (current_function_name): New function.
11587         * graph.c: Update all uses of current_function_name.
11588         * gcse.c: Likewise.
11589         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
11590         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
11591         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
11592         instead of a strcmp with "main".
11593
11594 2004-01-13  Jan Hubicka  <jh@suse.cz>
11595
11596         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
11597
11598         * cgraphunit.c (cgraph_optimize_function):  Always do
11599         optimize_inline_calls when there is always_inline callee.
11600         (cgraph_decide_inlining): Fix formating.
11601         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
11602         functions.
11603         (expand_call_inline): Likewise.
11604         * toplev.h (sorry): Fix prototype.
11605
11606 2004-01-12  Roger Sayle  <roger@eyesopen.com>
11607
11608         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
11609         conditional jumps that drop through to unconditional jumps or the
11610         end of the sequence.
11611
11612 2004-01-13  Jan Hubicka  <jh@suse.cz>
11613
11614         * alias.c (new_alias_set): Construct the alias_set varray.
11615         (init_alias_once): Don't do it here.
11616
11617 2004-01-12  Marc Espie <espie@openbsd.org>
11618
11619         * system.h: handle YYBYACC like YYBISON.
11620
11621 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
11622
11623         PR target/10847
11624         * config.gcc: No longer includes conflicting header sparc/sol2.h when
11625         building on sparc64-*-openbsd*.
11626
11627 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
11628
11629         PR debug/13539
11630         * dbxout.c (dbxout_type): Protected inheritance is not
11631         private but protected.
11632
11633 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
11634
11635         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
11636
11637 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
11638
11639         PR optimization/12508.
11640         * combine.c (try_combine): Remove a dead set in a parallel
11641         even if its destination is a subreg.
11642
11643         Revert:
11644         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
11645         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
11646         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
11647
11648 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
11649
11650         * real.c: Update copyright date.
11651         * emit-rtl.c: Likewise.
11652         * rtl.h: Likewise.
11653         * dwarf2out.c: Likewise.
11654         * config/rs6000/darwin-ldouble.c: Likewise.
11655         * config/rs6000/rs6000.md: Likewise.
11656
11657 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
11658
11659         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
11660         TFmode to SImode libfuncs.
11661
11662 2004-01-12  Roger Sayle  <roger@eyesopen.com>
11663
11664         PR middle-end/11397
11665         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
11666
11667 2004-01-12  Jan Hubicka  <jh@suse.cz>
11668
11669         PR opt/12826
11670         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
11671         stored.
11672
11673         PR opt/12863
11674         * cfgcleanup.c (label_is_jump_target_p): Move to...
11675         * rtlanal.c (label_is_jump_target_p): ... here.
11676         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
11677         edges unified with branch edges.
11678
11679 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
11680
11681         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
11682         high word of an integral CONST_DOUBLE.
11683
11684 2004-01-12  Paul Brook  <paul@codesourcery.com>
11685
11686         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
11687
11688 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
11689
11690         PR target/13585
11691         * sh-protos.h (check_use_sfunc_addr): Declare.
11692         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
11693         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
11694
11695 2004-01-12  Jan Hubicka  <jh@suse.cz>
11696
11697         * alias.c:  Invlude varray.h
11698         (alias_sets): Turn into varray.
11699         (get_alias_set_entry): Use VARRAY; mark inline.
11700         (mems_in_disjoint_alias_sets_p): Mark inline.
11701         (record_alias_subset): Use varray.
11702         (init_alias_once): Initialize varray.
11703         (new_alias_set): Grow array.
11704         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
11705
11706 2004-01-12  Jan Hubicka  <jh@suse.cz>
11707
11708         Partial fix for PR opt/10776 II
11709         * cselib.c: Include params.h
11710         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
11711         locations.
11712         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
11713         * Makefile.in (cselib.o): Depend on params.h
11714
11715 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
11716
11717         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
11718         simplify_unary_operation if the operand has a known mode.
11719
11720 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
11721
11722         PR target/13534
11723         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
11724         predicate to handle 'ld' conform addresses.
11725         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
11726         contraint.
11727         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
11728         are memory contraints.
11729         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
11730         New prototype.
11731         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
11732         Change 'o' to 'Y' constraint.
11733         (*movdf_softfloat64): Ditto.
11734
11735 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
11736
11737         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
11738         brace-enclosed syntax in all C output statements.
11739
11740 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
11741
11742         PR target/13401
11743         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
11744         Objective-C language type value is 14.
11745
11746 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
11747
11748         PR c/12148
11749         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
11750         `int' in a number of places to make sure we always have a SImode
11751         and not a HImode.  Add a 'L' suffix to a number of constants.
11752
11753 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11754
11755         * pa.c: Don't include obstack.h.
11756
11757         * pa.md: Correct constraint in pattern for loading PIC label address.
11758
11759 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
11760
11761         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
11762          before defining.
11763
11764 2004-01-11  Steven Bosscher  <stevenb@suse.de>
11765
11766         PR fortran/9972
11767         * toplev.c (rest_of_handle_inline): Also consider functions
11768         for deferral if the language is GNU F77.
11769
11770 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
11771
11772         * c-decl.c (diagnose_arglist_conflict): Add missing space to
11773         diagnostic messages.
11774
11775 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
11776
11777         PR middle-end/13392
11778         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
11779         to drop through label.  Don't fall back to SCC even when conditional
11780         jump has not been found.
11781
11782 2004-01-11  Jan Hubicka  <jh@suse.cz>
11783
11784         * invoke.texi: Fix syntax error in previous patch.
11785
11786         Partial fix for PR opt/10776
11787         * Makefile.in (reload.o): Include param.h
11788         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
11789         * reload.c: Include params.h.
11790         (find_equiv_reg): Work limiting check.
11791         * invoke.texi: Document.
11792
11793 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
11794
11795         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
11796         out-of-bounds accesses to string constants.  Simplify mips16
11797         case accordingly.
11798
11799 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
11800
11801         PR optimization/13469
11802         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
11803         reload_cse_regs (-fnon-call-exceptions only).
11804
11805 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
11806
11807         * config/mcore/lib1.asm: Fix comment formatting.
11808         * config/mcore/mcore-elf.h: Likewise.
11809         * config/mcore/mcore.c: Likewise.
11810         * config/mcore/mcore.h: Likewise.
11811         * config/mcore/mcore.md: Likewise.
11812
11813 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
11814
11815         * c-decl.c (duplicate_decls): Break apart into...
11816         (diagnose_arglist_conflict, validate_proto_after_old_defn)
11817         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
11818         ... these new functions.  Restructure for comprehensibility.
11819         Remove various archaic special cases.  Always report the
11820         location of the previous declaration when a diagnostic is issued.
11821         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
11822         (match_builtin_function_types): Delete unnecessary forward declaration.
11823
11824 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
11825
11826         * genautomata.c (make_automaton, NDFA_to_DFA):
11827         Print progress bars with '.' characters instead of '*'.
11828         (build_automaton): Change notes to match.
11829
11830 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
11831
11832         * config/m32r/m32r.md: Use define_constants for unspec and
11833         unspec_volatile.
11834
11835 2004-01-10  Jan Hubicka  <jh@suse.cz>
11836
11837         PR opt/11635
11838         * expr.c (expand_expr_real):  More curefully expand union casts.
11839
11840 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
11841
11842         * config/m32r/m32r.md (flush_icache): Use 1 for
11843         unspec_volatile.
11844
11845 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
11846             James E Wilson  <wilson@specifixinc.com>
11847
11848         PR debug/12860
11849         * dbxout.c (dbxout_symbol): Remove initialization of
11850         current_sym_code, current_sym_value, and current_sym_addr.
11851         (dbxout_symbol_location): Same.
11852         (dbxout_prepare_symbol): Zero current_sym_code,
11853         current_sym_value, and current_sym_addr.
11854
11855 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
11856
11857         * tree.c (get_unwidened): Reorder conditions so that the null pointer
11858         check is done first.
11859
11860 2004-01-09  Eric Christopher  <echristo@redhat.com>
11861
11862         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
11863         if we're running mark_constant_function.
11864
11865 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
11866
11867         PR target/12561
11868         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
11869
11870 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
11871
11872         PR debug/11231
11873         * dbxout.c (dbxout_type_fields): Return if any item is
11874         error_mark_node or the type is error_mark_node.
11875
11876 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
11877
11878         * config/rs6000/darwin-ldouble.c: Add big comment explaining
11879         exactly what is expected as a 'long double'.
11880         (_xlqadd): When a value to be returned is representable as a
11881         'double', just return it directly, do not construct it using a union.
11882         Also, correct final fixup.
11883         (_xlqmul): Likewise.
11884         (_xlqdiv): Likewise.
11885         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
11886
11887         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
11888
11889 2004-01-09  Richard Henderson  <rth@redhat.com>
11890
11891         * recog.c (constrain_operands): Validate mem operands.
11892
11893 2004-01-09   James E Wilson  <wilson@specifixinc.com>
11894
11895         * gcc.c (init_spec): Remove -lunwind from shared case.
11896         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
11897
11898 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
11899
11900         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
11901         * configure: Regenerate
11902
11903 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
11904
11905         PR c/11234
11906         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
11907         between function and object pointers.
11908         (digest_init): When comparing a pointer to function type to the
11909         target type, only apply TREE_TYPE once to the pointer to function
11910         type.
11911         * except.c (for_each_eh_label_1): Treat data as a pointer to a
11912         function pointer rather than casting it to a function pointer.
11913         (for_each_eh_label): Update caller.
11914         * recog.h (struct insn_data): Use a struct or union for output.
11915         * genoutput.c (output_insn_data): Update.
11916         * final.c (get_insn_template): Update.
11917
11918 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
11919
11920         * expr.h (expand_expr): Make it a macro, not a function.
11921         (expand_expr_real): New function.
11922         * expr.c (store_expr): Adjust logic for deciding whether or not to
11923         copy the value returned by expand_expr.
11924         (expand_expr): Rename to ...
11925         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
11926         calls to language hooks.
11927         * c-common.h (c_expand_expr): Adjust prototype.
11928         * c-common.c (c_expand_expr): Add alt_rtl parameter.
11929         * langhooks-def.h (lhd_expand_expr): Change prototype.
11930         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
11931         * langhooks.h (lang_hooks): Change type of expand_expr.
11932         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
11933         (last_expr_alt_rtl): Likewise.
11934         (expand_expr_stmt_value): Set last_expr_alt_rtl.
11935         (clear_last_expr): Clear it.
11936         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
11937         (expand_end_bindings): Save and restor last_expr_alt_rtl.
11938         * tree.def (RTL_EXPR): Give it an additional operand.
11939         * tree.h (RTL_EXPR_ALT_RTL): New macro.
11940
11941 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
11942
11943         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
11944         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
11945
11946 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
11947
11948         PR target/13380.
11949         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
11950         or (ne:SI (reg:CC 17) (const_int 0)).
11951         Be specific about modes wherever possible.
11952
11953 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
11954
11955         * config/m32r/m32r.c (m32r_expand_block_move): Call
11956         gen_movestrsi_internal with two more arguments.
11957         (m32r_output_block_move): Adjust operand numbers.
11958         Properly update the source and destination pointers.
11959         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
11960         'r+'.  Change the set detinations to match_operand.
11961
11962 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
11963
11964         * final.c (FIRST_INSN_ADDRESS): Remove.
11965         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
11966         * system.h (FIRST_INSN_ADDRESS): Poison.
11967         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
11968         * config/m32r/m32r-protos.h: Remove the prototype for
11969         m32r_first_insn_address.
11970         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
11971         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
11972         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
11973
11974 2004-01-09  J. Brobecker  <brobecker@gnat.com>
11975
11976         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
11977         we just created.
11978         (is_ada_subrange_type): DIEs for enumeration subtypes should be
11979         emitted as subrange types too.
11980         (subrange_type_die): Add handling of enumeration subtypes.
11981
11982 2004-01-08  Richard Henderson  <rth@redhat.com>
11983
11984         PR opt/12441
11985         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
11986         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
11987         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
11988         (ix86_address_cost): Be prepared for SUBREGed registers.
11989         (legitimate_address_p): Accept SUBREGed registers.
11990
11991 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
11992
11993         * Makefile.in: Rename configure.in to configure.ac
11994         * doc/sourcebuild.texi: Likewise.
11995         * configure: Regenerate.
11996         * config.in: Regenerate.
11997
11998 2004-01-08  Stuart Hastings  <stuart@apple.com>
11999
12000         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
12001
12002 2004-01-08  Jan Hubicka  <jh@suse.cz>
12003
12004         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
12005
12006 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
12007
12008         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
12009         (UNSPEC_FIX_TRUNC_TF): New constant.
12010         (movtf_internal): Make splitter active only when insn is active.
12011         (extenddftf2): Rewrite to properly load zero into low part.
12012         (extenddftf2_internal): New.
12013         (extendsftf2): Rewrite.
12014         (truncdftf2): Correct length.
12015         (floatditf2): Delete.
12016         (fix_trunc_helper): New.
12017         (fix_trunctfdi2): Use fix_trunc_helper.
12018         (fix_trunctfsi2): Likewise.fix_trunc
12019         (fix_trunctfsi2_internal): New.
12020
12021         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
12022         addresses are legitimate on Darwin even when flag_pic.
12023         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
12024         non-offsettable addresses for loads of TFmode constants.
12025
12026 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
12027
12028         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
12029         variables in the appropriate bss section.
12030
12031 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
12032
12033         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
12034         target_flags has MASK_POWERPC64 when -m64.
12035         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
12036         to 620, 630, power3, power4 and rs64a entries.
12037         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
12038
12039 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
12040
12041         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
12042         floating-point constants.
12043
12044 2004-01-08  J. Brobecker  <brobecker@gnat.com>
12045
12046         * dwarf2out.c (subrange_type_die): Add context_die parameter.
12047         Create the subrange_type DIE using the given context DIE.
12048         (modified_type_die): Update call to subrange_type_die.
12049
12050 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
12051
12052         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
12053         Add multiple-include guard.
12054
12055 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
12056
12057         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
12058         all vector constant loadable by vsplt*.
12059         (output_vec_const_move): Likewise.
12060
12061 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
12062
12063         PR c/6024
12064         * c-typeck.c (comptypes): Only treat enumerated types in the same
12065         translation unit as compatible with each other when they are the
12066         same type.
12067         * doc/extend.texi: Update.
12068
12069 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
12070
12071         PR c/12165
12072         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
12073         array type from the array element type.
12074
12075 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
12076
12077         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
12078         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
12079         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
12080         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
12081         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
12082
12083 2004-01-06  Eric Christopher  <echristo@redhat.com>
12084
12085         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
12086         (DWARF2_DEBUGGING_INFO): Define.
12087         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
12088         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
12089         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
12090         for irix as.
12091         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
12092         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
12093         * config/mips/iris5gas.h: Ditto.
12094         (DBX_DEBUGGING_INFO): Remove.
12095         (DWARF2_DEBUGGING_INFO): Ditto.
12096         (MIPS_DEBUGGING_INFO): Ditto.
12097         (PREFERRED_DEBUGGING_TYPE): Ditto.
12098         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
12099         (PREFERRED_DEBUGGING_TYPE): Ditto.
12100         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
12101         * config/mips/elf64.h: Ditto.
12102
12103 2004-01-06  Jan Hubicka  <jh@suse.cz>
12104
12105         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
12106         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
12107
12108 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
12109
12110         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
12111         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
12112         * config/rs6000/darwin-ldouble.c: New.
12113
12114         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
12115         for constants.
12116         (constant_subword): Delete.
12117         * rtl.h (constant_subword): Delete prototype.
12118         (immed_double_const): Is not in varasm.c.
12119         * simplify-rtx.c (simplify_immed_subreg): New.
12120         (simplify_subreg): Use simplify_immed_subreg.
12121
12122         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
12123         than trying to generate RTL directly.
12124         (fix_trunctfsi2): Use expand_fix rather than trying to generate
12125         RTL directly.
12126
12127         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
12128
12129 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
12130
12131         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
12132         function into a separate macro.
12133         (read_only_data_section): Add void argument.
12134         (private_data_section): Same.
12135         (read_only_private_data_section): Same.
12136         (toc_section): Same.
12137
12138 2004-01-06  Jan Hubicka  <jh@suse.cz>
12139
12140         * invoke.texi:  Remove typo in last change.
12141
12142         PR target/10301
12143         * config.gcc: Accept opteron and athlon-64 as variants
12144         of k8.
12145         * i386.c (override_options): Likewise.
12146         * invoke.texi (i386 -mtune): Expand documentation.
12147
12148 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
12149
12150         * alias.c: Fix comment typos.
12151         * builtins.c: Likewise.
12152         * cfg.c: Likewise.
12153         * df.c: Likewise.
12154         * dominance.c: Likewise.
12155         * dwarf2out.c: Likewise.
12156         * emit-rtl.c: Likewise.
12157         * expr.c: Likewise.
12158         * final.c: Likewise.
12159         * fold-const.c: Likewise.
12160         * gcse.c: Likewise.
12161         * genattrtab.c: Likewise.
12162         * genrecog.c: Likewise.
12163         * gensupport.c: Likewise.
12164         * ggc-zone.c: Likewise.
12165         * integrate.c: Likewise.
12166         * local-alloc.c: Likewise.
12167         * loop.c: Likewise.
12168         * recog.c: Likewise.
12169         * regmove.c: Likewise.
12170         * reg-stack.c: Likewise.
12171         * reorg.c: Likewise.
12172         * rtlanal.c: Likewise.
12173         * rtl.h: Likewise.
12174         * sched-ebb.c: Likewise.
12175         * simplify-rtx.c: Likewise.
12176         * toplev.c: Likewise.
12177         * varasm.c: Likewise.
12178
12179 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
12180
12181         * doc/install.texi: Fix typos.
12182         * doc/invoke.texi: Likewise.
12183         * doc/md.texi: Likewise.
12184
12185 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
12186
12187         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
12188
12189 2004-01-06  Jan Hubicka  <jh@suse.cz>
12190
12191         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
12192         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
12193         of MMX_REGPARM.
12194         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
12195         add MMX_REGPARM.
12196         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
12197         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
12198         (MMX_REGPARM_MAX): Similarly for -mmmx.
12199
12200 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
12201
12202         * config/sh/linux.h: Fix comment formatting.
12203         * config/sh/netbsd-elf.h: Likewise.
12204         * config/sh/sh.c: Likewise.
12205         * config/sh/sh.h: Likewise.
12206         * config/sh/vxworks.h: Likewise.
12207
12208 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
12209
12210         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
12211         * toplev.c (output_file_directive): Don't use
12212         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
12213
12214 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
12215
12216         * toplev.c: Fix broken checkin of 2003-12-30.
12217
12218 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
12219
12220         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
12221         (USING_MMAP): We don't support non-mmap.
12222         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
12223         large objects.
12224         (struct page_entry): Remove bytes_free.
12225         (struct page_table_chain): Remove.
12226         (struct globals): Remove page_table member.
12227         (loookup_page_table_entry): Function deleted.
12228         (set_page_table_entry): Ditto.
12229         (ggc_allocated_p): No longer need page table lookups.
12230         (ggc_marked_p): Ditto.
12231         (alloc_small_page): Don't care about bytes_free anymore.
12232         (alloc_large_page): Round up size.
12233         (ggc_alloc_zone_1): Mark large objects as such, and calculate
12234         their size the new way.
12235         Remove page table lookups and setting.
12236         (ggc_get_size): Calculate large object size the new way.
12237         (sweep_pages): Redo to account for fact that we no longer have
12238         bytes_free.
12239         (ggc_collect): No longer need to reincrement bytes_free.
12240         (ggc_pch_alloc_object): Handle new large objects properly.
12241         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
12242
12243 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
12244
12245         * doc/invoke.texi: Remove a page break.
12246
12247 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
12248
12249         * config/avr/avr.c (avr_output_function_prologue): Remove an
12250         extra pair of curly braces.
12251
12252 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
12253
12254         * config/mn10300/mn10300.c: Fix comment formatting.
12255         * config/mn10300/mn10300.h: Likewise.
12256
12257 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12258
12259         * tree.h: Update documentation on nothrow_flag.
12260         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
12261         types.
12262
12263 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
12264
12265         * doc/invoke.texi: Remove traces of dead ports.
12266
12267 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
12268
12269         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
12270         option.
12271
12272 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
12273
12274         PR target/12945
12275         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
12276         counter labels.
12277         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
12278         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
12279         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
12280         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
12281         (mips_symbol_insns): Don't trust the local/global classification.
12282         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
12283         (override_options): Make -mabicalls -fno-unit-at-a-time imply
12284         -mno-explicit-relocs.
12285         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
12286         between local and global symbols.
12287
12288 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
12289
12290         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
12291         (mips_preferred_reload_class): Declare.
12292         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
12293         (EXTRA_CONSTRAINT): Update accordingly.
12294         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
12295         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
12296         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
12297         mips_dangerous_for_la25_p.
12298         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
12299         if mips_dangerous_for_la25_p.
12300
12301 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
12302
12303         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
12304         warning.
12305
12306 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
12307
12308         * configure.ac: Use AC_PROG_CPP_WERROR.
12309         * configure: Regenerate.
12310
12311 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
12312
12313         * .cvsignore: Add autom4te.cache.
12314
12315 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
12316
12317         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
12318         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
12319         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
12320         then architecture options, then ABI options.  General rewording.
12321
12322 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
12323
12324         PR c/3414
12325         * doc/extend.texi: Clarify definition of malloc attribute.
12326
12327 2004-01-04  Jan Hubicka  <jh@suse.cz>
12328
12329         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
12330         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
12331         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
12332         (cgraph_inline_p): Add extra argument reason.
12333         * cgraphunit.c: Minor formating fixes.
12334         cgraph_first_inlined_callee): New functions.
12335         (record_call_1): Record builtins too.
12336         (cgraph_analyze_function): Update inline_failed messages.
12337         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
12338         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
12339         (cgraph_check_inline_limits): Likewise; Add argument reason.
12340         (cgraph_set_inline_failed): New static function.
12341         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
12342         reasons.
12343         (cgraph_inline_p): Add new argument reason.
12344         * tree-inline.c (expand_call_inline):  Update warning.
12345
12346 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
12347
12348         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
12349         with modern equivalents.
12350         * configure: Regenerate.
12351
12352         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
12353         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
12354         * configure: Regenerate.
12355
12356         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
12357
12358         * configure.in: Rename to configure.ac.
12359         * configure.ac: Renamed from configure.in; make minimum necessary
12360         changes for autoconf 2.5x.
12361         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
12362         * configure: Regenerate with autoconf 2.57.
12363
12364 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
12365
12366         * config/mips/linux.h: Fix comment formatting.
12367         * config/mips/mips.c: Likewise.
12368         * config/mips/mips.h: Likewise.
12369         * config/mips/mips.md: Likewise.
12370         * config/mips/netbsd.h: Likewise.
12371         * config/mips/windiss.h: Likewise.
12372
12373 2004-01-02  Richard Henderson  <rth@redhat.com>
12374
12375         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
12376         for sse and 387; add suppression for mmx.
12377
12378 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
12379
12380         * loop.c (loop_optimize): Free all loops_info's mems.
12381
12382         * c-typeck.c (finish_init): Free spelling_base before
12383         setting it again.
12384
12385         * cfgloop.c (flow_loops_find): Always free the sbitmap
12386         headers.
12387
12388         * predict.c (estimate_probability): Free bbs after being
12389         done with it.
12390
12391 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
12392
12393         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
12394         const_8bit_operand and call_address_operand.
12395
12396 2004-01-02  Jan Hubicka  <jh@suse.cz>
12397
12398         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
12399         when there is nothing to inline but warnings are requested.
12400         (cgraph_decide_inlining):  Fix memory leak.
12401
12402 2004-01-02  Jan Hubicka  <jh@suse.cz>
12403
12404         * expr.c (store_constructor):  Fix pasto in previous patch.
12405
12406 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
12407
12408         * config/i386/cygming.h: Fix comment formatting.
12409         * config/i386/djgpp.h: Likewise.
12410         * config/i386/gthr-win32.c: Likewise.
12411         * config/i386/i386-interix.h: Likewise.
12412         * config/i386/i386.c: Likewise.
12413         * config/i386/i386.h: Likewise.
12414         * config/i386/openbsd.h: Likewise.
12415         * config/i386/winnt.c: Likewise.
12416         * config/i386/xm-mingw32.h: Likewise.
12417
12418 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
12419
12420         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
12421         copyright and last modification dates.
12422
12423 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
12424
12425         * doc/install.texi (Specific): Mention x86_64.
12426
12427 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
12428
12429         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
12430         Call force_operand on plus_constant result.
12431
12432 2004-01-01  Jan Hubicka  <jh@suse.cz>
12433
12434         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
12435         * expr.c (store_constructor): Use vec_init pattern.
12436         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
12437         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
12438         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
12439         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
12440         New patterns.
12441         (sse2_unpc?pd): Fix pattern.
12442         (sse2_movlpd): Kill.
12443         (sse2_movsd): Deal with movlpd too.
12444         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
12445         (ix86_expand_vector_init): New.
12446         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
12447         * md.texi (vec_set, vec_extract): Document
12448
12449 2003-12-31  Jan Hubicka  <jh@suse.cz>
12450
12451         PR opt/13473
12452         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
12453         ASM input operands
12454
12455         PR opt/12617
12456         * toplev.c (dump_file_index): Reorder ce3 and bbro.
12457         (dump_file): Likewise.
12458         (rest_of_compilation): Likewise.
12459
12460         PR debug/13367
12461         * cgraph.c (cgraph_function_possibly_inlined):  Even with
12462         flag_really_no_inline we inline always_inline functions.
12463         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
12464         for non-always_inline functions when there is flag_really_no_inline.
12465         (cgraph_decide_inlining): Limit work done when not inlining.
12466         (cgraph_decide_inlining_incrementally): Likewise.
12467         (cgraph_optimize_function): Check whether something got inlined.
12468         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
12469         extern inline functions when not inlining.
12470
12471         * opts.c (decode_options):  Disable crossjumping at -O1
12472         * invoke.texi (-O1): Document change.
12473
12474 See ChangeLog.10 for earlier changes.