OSDN Git Service

PR optimization/13985
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
2
3         PR optimization/13985
4         * cfgloopmanip.c (fix_loop_placements): New prototype.
5         Call fix_bb_placements on the preheader of loops that have
6         been reparented.
7         (remove_path): Adjust call to fix_loop_placements.
8
9 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
10
11         * config/darwin7.h: New file.
12         * config.gcc (*-*-darwin*): Add darwin7.h if the
13         version is greater than 6.
14         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
15         (MATH_LIBRARY): Wrap in ifdefs.
16
17 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
18
19         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
20         loading iWMMXt registers with a frame pointer.  Use post-increment
21         without a frame pointer.
22         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
23
24 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
25
26         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
27         mode" rather than "-funit-at-a-time" since -O2 enables it
28         without requiring -f* options.  Refer to -fprofile-generate and
29         -fprofile-use correctly.  Move -funit-at-a-time among options
30         enabled by -O.  Add information about unit-at-a-time caveats.
31
32 2004-04-22  Per Bothner  <per@bothner.com>
33
34         * line-map.h (struct line_maps):  New field highest_line.
35         (linemap_position_for_column):  Make non-inline function.
36         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
37         * line-map.c (linemap_init):  Clear highest_line field.
38         (linemap_add):  Set highest_line field.
39         (linemap_line_start):  Minor optimization - use highest_line field.
40         Reduce maximum column hint to 10000.  Update highest_line field.
41         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
42         * cpphash.h (struct cpp_reader):  Remove line field - instead use
43         line_table->highest_line.
44         (saved_line):  Remove unused field.
45         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
46         Use  line_table's highest_line field instead of cpp_reader's line.
47         * cpplib.c (start_directive):  Likewise use highest_line field.
48         (do_line, do_linemarker):  Likewise just use newest map.
49         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
50         * cpperror.c (cpp_error):  Likewise use highest_line field.
51         * cppfiles.c (open_file_failed:  Likewise.
52         (cpp_make_system_header):  Likewise use newest map and highest_line.
53         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
54         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
55         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
56         _cpp_lex_direct):  Likewise use highest_line.
57         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
58         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
59         and use newest map.
60         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
61         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
62         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
63
64 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
65
66         PR bootstrap/14992
67         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
68         * config/linux.h (USE_LD_AS_NEEDED): Define.
69         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
70         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
71         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
72         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
73         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
74         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
75         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
76
77 2004-04-22  Per Bothner  <per@bothner.com>
78
79         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
80         Fixes PR preprocessor/15067.
81
82 2004-04-23  Andreas Schwab  <schwab@suse.de>
83
84         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
85         avoid aliasing warning.
86
87 2004-04-22  Jan Hubicka  <jh@suse.cz>
88             Mostafa Hagog <mustafa@il.ibm.com>
89
90       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
91       * cfgloopanal.c (expected_loop_iterations): Change the return value
92
93 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
94
95         * cselib.h (struct elt_loc_list): Remove canon_loc field.
96         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
97         (cselib_invalidate_mem): Remove all canon_loc and canon_x
98         traces.
99
100 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
101
102         Revert
103         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
104
105                 * var-tracking.c (variable_part_different_p): Variable parts
106                 differ when the most recent locations differ.
107
108 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
109
110         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
111         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
112         (embedded_pic_offset): Delete.
113         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
114         MASK_* constants.
115         (TARGET_EMBEDDED_PIC): Delete.
116         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
117         (ASM_SPEC): Remove -membedded-pic.
118         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
119         (ASM_OUTPUT_CASE_LABEL): Likewise.
120         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
121         * config/mips/windiss.h (ASM_SPEC): Likewise.
122         * config/mips/mips.c (struct machine_function): Remove
123         embedded_pic_fnaddr_rtx.
124         (TARGET_ENCODE_SECTION_INFO): Remove override.
125         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
126         (override_options): Remove -membedded-pic handling.
127         (print_operand): Remove handling of '%S'.
128         (mips_select_section: Remove -membedded-pic handling.
129         (mips_encode_section_info): Delete.
130         (mips_output_conditional_branch): Remove mention of -membedded-pic.
131         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
132         -membedded-pic handling.
133         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
134
135 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
136
137         * var-tracking.c (frame_base_decl): Remove useless GTY.
138
139 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
140
141         * config/rs6000/rs6000.c (rs6000_override_options): Error when
142         user wants altivec and e500 instructions.
143
144 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
145
146         PR target/14813
147         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
148         in .init_array section to ...
149         * config/ia64/crtbegin.asm: Here.
150
151         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
152         and hidden if HAVE_INITFINI_ARRAY is defined.
153
154 2004-04-21  James E Wilson  <wilson@specifixinc.com>
155
156         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
157         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
158         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
159         (fp_register_operand, lo_operand): New.
160         (mips_rtx_costs): Add TUNE_SB1 support.
161         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
162         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
163         (mips_multipass_dfa_lookahead): New.
164         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
165         TUNE_SB1): New.
166         (TARGET_SWITCHES): Add -mfp-exceptions support.
167         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
168         (BRANCH_COST): Fix whitespace.
169         * config/mips/mips.md: Include sb1.md.
170         * config/mips/sb1.md: New file.
171         * doc/invoke.texi: Document -mfp-exceptions.
172
173         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
174         comment.
175         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
176         (fixincl.o-warn): Delete.
177
178 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
179
180         * config/rs6000/rs6000 (print_operand) ['z']:
181         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
182
183 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
184
185         * config.gcc: Support --with-arch=iwmmxt for ARM.
186
187 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
188
189         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
190         in two more places; remove unneeded force_reg
191
192 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
193
194         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
195         for TARGET_MACHO.
196         (print_operand): For TARGET_MACHO check to see if we need a stub
197         and output one if we need it.
198
199         PR debug/15033
200         * dwarf2out.c (rtl_for_decl_location): Check for NULL
201         rtl.
202
203 2004-04-20  James E Wilson  <wilson@specifixinc.com>
204
205         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
206         (vall_value_gp): Likewise.
207
208 2004-04-20  DJ Delorie  <dj@redhat.com>
209         
210         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
211         variables stored in word registers, then in memory.
212
213 2004-04-20  Eric Christopher  <echristo@redhat.com>
214
215         * cp/parser.c (cp_parser_declaration): Move translate
216         up before tokens are lexed.
217
218 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
219
220         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
221         (asin_optab, acos_optab): Define corresponding macros.
222         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
223         * genopinit.c (optabs): Implement asin_optab and acos_optab
224         using asin?f2 and acos?f2 patterns.
225         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
226         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
227         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
228         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
229
230         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
231         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
232         acos, acosf and acosl built-ins as inline x87 intrinsics.
233
234 2004-04-20  Paul Brook  <paul@codesourcery.com>
235
236         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
237
238 2004-04-20  Paul Brook  <paul@codesourcery.com>
239
240         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
241
242 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
243
244         Revert part of 2004-04-17 change that moved -frename-registers
245         to -O1.  -frename-registers is buggy.
246
247         * toplev.c (flag_rename_registers): Initialize to 0.
248         * doc/invoke.texi (Optimize options): Move -frename-registers
249         to "Not triggered by any -O level" section.  Adjust commentary
250         accordingly.
251
252 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
253
254         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
255
256 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
257
258         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
259         for mflo and mfhi instructions.
260         (mips_output_move): Remove mflo and mfhi handling.
261         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
262         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
263         Likewise various define_peephole2s.
264         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
265         alternatives.
266         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
267         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
268         (mfhilo_di, mfhilo_si): New patterns.
269
270 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
271
272         * function.c (assign_parms): Force
273         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
274
275 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
276
277         * var-tracking.c (variable_part_different_p): Variable parts differ
278         when the most recent locations differ.
279
280 2004-04-19  James E Wilson  <wilson@specifixinc.com>
281
282         * rtl.h (reg_set_last): Delete declaration.
283         * rtlanal.c (reg_set_last): Delete.
284
285 2004-04-19  Roger Sayle  <roger@eyesopen.com>
286
287         * fold-const.c (fold_convert): Make function extern/public.
288         * tree.h (fold_convert): Prototype here.
289         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
290         expand_builtin_strrchr, expand_builtin_strpbrk,
291         expand_builtin_mempcpy, expand_builtin_bcopy,
292         expand_builtin_bzero, expand_builtin_memcmp,
293         expand_builtin_strcmp, expand_builtin_strncmp,
294         stabilize_va_list, expand_builtin_sprintf,
295         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
296         fold_builtin_exponent, fold_builtin_mempcpy,
297         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
298         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
299         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
300
301 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
302
303         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
304         (move_from_CR_gt_bit): New.
305         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
306         E500.
307         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
308         E500.
309
310         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
311         (tstsfeq_gpr): Same.
312         (cmpsfgt_gpr): Same.
313         (tstsfgt_gpr): Same.
314         (cmpsflt_gpr): Same.
315         (tstsflt_gpr): Same.
316         (e500_cceq_ior_compare): New.
317         (e500_flip_gt_bit): New.
318
319         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
320         (print_operand): Add 'c' and 'D'.
321         (rs6000_generate_compare): Rewrite to generate correct rtl.
322         (rs6000_emit_sCOND): Handle E500.
323         (output_cbranch): Adjust for changes in rs6000_generate_compare.
324         (output_e500_flip_gt_bit): New.
325
326         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
327         Protoize.
328
329 2004-04-19  Eric Christopher  <echristo@redhat.com>
330
331         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
332
333 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
334
335         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
336         fix information.
337
338 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
339
340         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
341         download URL.
342
343 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
344
345         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
346         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
347
348 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
349
350         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
351         (fold_builtin): Update caller to match.
352
353         PR bootstrap/15009
354         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
355
356         PR bootstrap/14999
357         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
358
359 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
360
361         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
362
363         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
364         (expand_mult_highpart_optab): Likewise.
365         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
366
367 2004-04-19  Paul Brook  <paul@codesourcery.com>
368
369         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
370         floatunssisf2, floatunssidf2): New patterns.
371
372 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
373
374         PR other/14918
375         * doc/invoke.texi (-fprofile-generate): Document requirement to
376         use -fprofile-generate when linking.
377
378         * doc/extend.texi (Strong Using): Warn users against using this
379         feature.
380
381 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
382
383         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
384         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
385         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
386         * config/mips/mips.c (struct mips16_constant): Renamed from struct
387         constant.  Propogate change throughout file.
388         (struct machine_function): Remove insns_len.
389         (mips_string_length, mips16_strings, string_constants): Delete.
390         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
391         when generating mips16 code.  Remove special mips16 treatment of
392         string constants.
393         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
394         to have the form LABEL+CONSTANT.
395         (mips_symbolic_address_p): Fix comment.
396         (m16_usym8_4, m16_usym5_4): Delete.
397         (mips_output_function_epilogue): Remove mips16 string handling.
398         (mips_output_mi_thunk): Call mips16_lay_out_constants.
399         (mips_select_section, mips_encode_section_info): Remove mips16
400         string handling.
401         (struct mips16_constant_pool): New.
402         (add_constant): Take a mips16_constant_pool structure.  Keep pool
403         sorted into order of ascending mode size.  Keep track of the highest
404         possible start address, taking padding and the masking of the base PC
405         value into account.
406         (dump_constants_1): New function, split out from dump_constants.
407         Handle vector constants.  Use gen_consttable_{int,float} rather than
408         separate functions for each mode.
409         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
410         rather than separate functions for each alignment.
411         (mips_find_symbol): Delete.
412         (mips16_insn_length): New function, split out from
413         mips16_lay_out_constants.
414         (mips16_rewrite_pool_refs): New function.
415         (mips16_lay_out_constants): Rework. Remove string handling.
416         Always create an inline constant pool.
417         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
418         (UNSPEC_ALIGN): New constants.
419         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
420         (UNSPEC_ALIGN_[248]): Delete.
421         (consttable_int, consttable_float, align): New patterns.
422         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
423
424 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
425
426         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
427         __unn_args_eq.
428
429 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
430
431         PR target/14715
432         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
433         with STARTING_FRAME_OFFSET.
434
435 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
436
437         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
438         * config/mips/mips.c (macc_msac_operand): New function.
439         * config/mips/mips.md (*msac): Move after *macc.
440         (*msac2): New.  Generalize macc-related peepholes so that they apply
441         to msac too.
442
443 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
444
445         * opts.c (decode_options): Do not enable flag_rename_registers
446         and flag_web at -O3.
447         * toplev.c (flag_rename_registers): Initialize
448         flag_rename_registers and flag_web to
449         AUTODETECT_FLAG_VAR_TRACKING.
450         (default_debug_hooks): New global.
451         (process_options): Initialize default_debug_hooks.  Warn if
452         -fvar-tracking specified but not supported by the current
453         debug format.  Do not run var tracking at -O0 or if not
454         supported by the current debug format, even if
455         -fvar-tracking was given.  If -fno-rename-registers
456         is not specified, always run register renaming if var
457         tracking is supported by the default debugging information
458         format for the target, and we are at -O1 or higher; similarly
459         for -fweb, but only at -O2 or higher.
460         * doc/invoke.texi (Optimize Options): Document this.
461
462 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
463
464         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
465         * configure: Regenerate.
466
467 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
468
469         * gcc.c (used_arg): Check whether an option has been removed.
470
471 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
472
473         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
474         debugging on Solaris 7 and up.
475
476 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
477
478         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
479         IRIX 5 port.
480         Remove -save-temps workaround, handled automatically.
481         Require GNU binutils 2.15 for debugging.
482         Remove SGI make warnings since GNU make is now required.
483         (Specific, mips-sgi-irix6): Some markup fixes.
484         Describe MIPSpro C problems and workarounds.
485         Mention working O32 ABI support.
486         Recommend GNU as 2.15 for O32 with debugging.
487         Remove description of fixed structure pass/return bug.
488
489 2004-04-16  DJ Delorie  <dj@redhat.com>
490
491         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
492         TYPE_FIELDS.
493         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
494
495 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
496
497         * pa.md: Remove unnecessary declarations for asm_out_file.
498
499         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
500         SAR register.  Fix comment.
501         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
502         (%cr11).
503
504         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
505
506 2004-04-16  Nick Clifton  <nickc@redhat.com>
507
508         * config/arm/arm.c (arm_override_options): Revert previous patch.
509         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
510         be safely built.
511
512 2004-04-16  Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
513
514         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
515         bug.
516         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
517         TARGET_DEFAULT): Changed. Ditto.
518         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
519         TARGET_ENDIAN_DEFAULT): Added. Ditto.
520         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
521         (TARGET_ENDIAN_DEFAULT): Added.
522
523 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
524
525         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
526         ATTR_CONST_NOTHROW_LIST.
527
528 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
529
530         PR/middle-end 14915
531         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
532         BITS_BIG_ENDIAN.
533
534 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
535
536         * ra-debug.c (ra_print_rtx): Add break's to case legs.
537
538 2004-04-14  James E Wilson  <wilson@specifixinc.com>
539
540         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
541
542 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
543
544         * libada-mk.in: New file.
545         * configure.ac: Create libada-mk from libada-mk.in.
546         * configure: Regenerate.
547
548 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
549
550         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
551         (logb_optab, ilogb_optab): Define corresponding macros.
552         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
553         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
554         using logb?f2 and ilogb?i2 patterns.
555         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
556         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
557         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
558         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
559
560         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
561         and UNSPEC_XTRACT_EXP.
562
563         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
564         patterns to implement fxtract x87 instruction.
565         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
566         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
567         intrinsics.
568         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
569         x87's fxtract insn.
570
571 2004-04-14  Eric Christopher  <echristo@redhat.com>
572
573         * config/mips/t-elf: Enable multilibs by default.
574
575 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
576
577         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
578         previous fix to check HAVE_return at runtime too.
579
580 2004-04-14  Nick Clifton  <nickc@redhat.com>
581
582         * config/arm/arm.c (arm_override_options): If the user has not
583         specified an ABI, then default to AAPCS for the iWMMXt processor.
584         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
585         * config/arm/t-xscale-coff: Likewise.
586
587 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
588
589         * builtins.c (fold_builtin_isdigit): New.
590         (fold_builtin): Handle BUILT_IN_ISDIGIT.
591         * defaults.h: Add TARGET_DIGIT0 and sort.
592         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
593
594 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
595
596         * builtins.c (fold_builtin_cabs, fold_builtin): Use
597         `mathfn_built_in' to determine the new builtin.
598         * fold-const.c (fold): Likewise.
599
600 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
601
602         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
603         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
604         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
605         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
606         (ASM_SPEC): Update accordingly.
607         * config/mips/mips.c: Update after above renaming.
608         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
609         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
610
611 2004-04-13  James E Wilson  <wilson@specifixinc.com>
612
613         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
614         increment errorcount and return false instead of true.
615
616 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
617
618         * optabs.c (expand_twoval_unop): Reorder function arguments.
619         * builtins.c (expand_builtin_mathfn_3): Update calls to
620         expand_twoval_unop.
621
622         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
623         and UNSPEC_TAN_TAN. Add missing comment.
624
625         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
626         patterns to implement fptan x87 instruction.
627         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
628         and tanl built-ins as inline x87 intrinsics. Define corresponding
629         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
630         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
631         x87's fptan insn.
632
633 2004-03-13  Richard Henderson  <rth@redhat.com>
634
635         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
636         for LABEL_REFs.
637
638         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
639         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
640         * doc/invoke.texi: Update to match.
641
642         * varasm.c (unlikely_text_section): Use assemble_align instead of
643         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
644         correct alignment argument.
645
646 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
647
648         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
649         after setting reg_last_reload_reg for optional output reloads.
650
651 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
652
653         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
654         Definition of these two macros are corrected by adding
655         matchine right paren.
656
657 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
658
659         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
660
661 2004-04-12  Roger Sayle  <roger@eyesopen.com>
662
663         * config/i386/i386.c (output_387_reg_move): New function.
664         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
665         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
666         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
667         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
668         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
669
670 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
671
672         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
673         TYPE_DECL.
674         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
675         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
676         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
677         Use skip_simple_arithmetic to find SAVE_EXPR.
678         (force_type_save_exprs, force_type_save_exprs_1): New functions.
679         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
680         Properly chain multiple pointers.
681         (copy_tree_r): Copy a TYPE_DECL.
682         * tree.c (variably_modified_type_p): Add some missing tests and
683         make some other minor changes.
684         * tree.h (force_type_save_exprs): New declaration.
685
686 2004-04-12  Roger Sayle  <roger@eyesopen.com>
687
688         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
689         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
690         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
691         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
692         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
693         x%-1 into 0 (or x&0 if x has side-effects).
694
695 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
696
697         * config/rs6000/rs6000.md: Document why a pattern is not
698         available.
699
700         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
701         of floats on the E500.
702         (branch_positive_comparison_operator): Do not allow NE even on the
703         E500.
704
705 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
706
707         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
708         in_text_unlikely_section to in_unlikely_text_section.
709
710 2004-04-11  Roger Sayle  <roger@eyesopen.com>
711
712         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
713         calling convention to allow a NULL_TREE to be returned.  Factor
714         sanity checks from callers, return NULL_TREE when appropriate.
715         (fold): Handle COMPOUND_EXPR operands of binary expressions
716         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
717         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
718         calls to fold_binary_op_with_conditional_arg.
719
720 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
721
722         * config/mips/iris5.h (current_section_flags):  Add
723         in_unlikely_executed_text and default case.
724
725 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
726
727         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
728         failure on solaris. Place ifdef HAVE_return around gen_ret call.
729         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
730         HAVE_return and place it around the place where it is needed.
731
732 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
733
734         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
735         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
736         and NORMAL_TEXT_SECTION_NAME.
737         (unlikely_text_section): Check targetm.have_named_sections
738         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
739         instead of SECTION_FORMAT_STRING.
740         * config/mips/iris5.h (current_section_name): Add
741         in_unlikely_executed_text case and move the abort into the switch.
742         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
743         (NORMAL_TEXT_SECTION_NAME): Remove.
744         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
745         (SECTION_FORMAT_STRING): Remove.
746         * defaults.h (SECTION_FORMAT_STRING): Remove.
747         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
748         (SECTION_FORMAT_STRING): Remove.
749
750 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
751
752         * c-typeck.c (common_type): Prefer long long to long when same
753         precision.
754
755 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
756
757         PR 14887
758         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
759         mode argument.
760         * config/ia64/ia64.c (ia64_hpux_file_end): Check
761         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
762
763 2004-04-09  Roger Sayle  <roger@eyesopen.com>
764
765         * simplify-rtx.c (mode_signbit_p): New function to check whether
766         an RTX is an immediate constant that represents the most significant
767         bit of a given machine mode.
768         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
769         C is the sign bit.
770         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
771         when C2 is the sign bit.
772         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
773         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
774         sign bit.
775
776 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
777
778         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
779         TYPE_MODE.
780
781 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
782
783         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
784         of TREE_READONLY for types.
785
786 2004-04-09  Caroline Tice  <ctice@apple.com>
787
788         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
789         (struct basic_block_def):  Add new field, partition.
790         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
791         definitions.
792         (partition_hot_cold_basic_blocks): Add extern function
793         declaration.
794         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
795         include statements.
796         (N_ROUNDS): Increase the maximum number of rounds by 1.
797         (branch_threshold): Add array value for new round.
798         (exec_threshold): Add array value for new round.
799         (push_to_next_round_p): New function.
800         (add_unlikely_executed_notes): New function.
801         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
802         (mark_bb_for_unlikely_executed_section): New function.
803         (add_labels_and_missing_jumps): New function.
804         (add_reg_crossing_jump_notes): New function.
805         (fix_up_fall_thru_edges): New function.
806         (find_jump_block): New function.
807         (fix_crossing_conditional_branches): New function.
808         (fix_crossing_unconditional_branches): New function.
809         (fix_edges_for_rarely_executed_code): New function.
810         (partition_hot_cold_basic_blocks): New function.
811         (find_traces):  Add an extra round for partitioning hot/cold
812         basic blocks.
813         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
814         and only cold blocks, into the last (extra) round of collecting traces.
815         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
816         over crossing edges.
817         (bb_to_key):  Add code to correctly identify cold blocks when
818         doing partitioning.
819         (connect_traces): Modify to connect all the non-cold traces first, then
820         go back and connect up all the cold traces.
821         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
822         * cfg.c (entry_exit_blocks): Add initialization for partition field in
823         entry and exit blocks.
824         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
825         if we are doing hot/cold partitioning.
826         * cfgcleanup.c (cfglayout.h): Add new include statement.
827         (try_simplify_condjump): Modify to not attempt on blocks with jumps
828         that cross section boundaries.
829         (try_forward_edges): Likewise.
830         (merge_blocks_move_predecessor_nojumps): Likewise.
831         (merge_blocks_move_successor_nojumps): Likewise.
832         (merge_blocks_move): Likewise.
833         (try_crossjump_to_edge): Modify to not attempt after we have done
834         the block partitioning.
835         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
836         cross section boundaries.
837         (try_optimize_cfg): Likewise.
838         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
839         jumps that cross section boundaries.
840         * cfglayout.c (flags.h): Add new include statement.
841         (update_unlikely_executed_notes):  New function.
842         (fixup_reorder_chain):  Add code so when a new jumping basic block is
843         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
844         updated appropriately.
845         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
846         introduced by this optimization.
847         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
848         extern function declaration.
849         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
850         list of notes that can be deleted.
851         (create_basic_block_structure):  Add initialization for partition field.
852         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
853         section boundaries.
854         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
855         cross section boundaries.
856         (commit_one_edge_insertion): Add code so newly created basic block
857         ends up in correct (hot or cold) section.  Modify to disallow
858         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
859         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
860         crosses section boundaries.
861         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
862         cross section boundaries.
863         (force_nonfallthru_and_redirect): Modify to make sure new basic block
864         ends up in correct section, with correct notes attached.
865         * common.opt (freorder-blocks-and-partition):  Add new flag for this
866         optimization.
867         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
868         the end of functions are written into the correct (hot or cold)
869         section.
870         (dbx_source_file): Add code so writing debug file information
871         doesn't incorrectly change sections.
872         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
873         in partitioning hot/cold basic blocks into separate sections.
874         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
875         section partitioning.
876         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
877         conditional branches can span all of memory.
878         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
879         unconditional branches can span all of memory.
880         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
881         (final_scan_insn):  Add code to check for NOTE instruction indicating
882         whether basic block belongs in hot or cold section, and to make sure
883         the current basic block is being written to the appropriate section.
884         Also added code to ensure that jump table basic blocks end up in the
885         correct section.
886         * flags.h (flag_reorder_blocks_and_partition):  New flag.
887         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
888         one of the branches has a jump that crosses between sections.
889         (find_if_case_2): Likewise.
890         (ifcvt): Modify to not attempt to mark loop exit edges after
891         hot/cold partitioning has occurred.
892         * opts.c (decode_options): Code to handle new flag,
893         flag_reorder_blocks_and_partition; also to turn it off if
894         flag_exceptions is on.
895         (common_handle_option): Code to handle new flag,
896         flag_reorder_blocks_and_partition.
897         * output.h (unlikely_text_section): New extern function declaration.
898         (in_unlikely_text_section): New extern function declaration.
899         * passes.c (rest_of_handle_stack_regs):  Add
900         flag_reorder_blocks_and_partition as an 'or' condition for calling
901         reorder_basic_blocks.
902         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
903         as an 'or' condition for calling reorder_basic_blocks.
904         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
905         * print-rtl.c (print_rtx): Add code for handling new note,
906         NOTE_INSN_UNLIKELY_EXECUTED_CODE
907         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
908         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
909         cross between section boundaries.
910         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
911         indicating the basic block containing it belongs in the cold section.
912         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
913         between hot and cold sections.
914         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
915         initialize this flag, and to tie it to the command-line option
916         freorder-blocks-and-partition.
917         * varasm.c (cfglayout.h):  Add new include statement.
918         (unlikely_section_label_printed):  New global variable, used for
919         determining when to output section name labels for cold sections.
920         (in_section):  Add in_unlikely_executed_text to enum data structure.
921         (text_section):  Modify code to use SECTION_FORMAT_STRING and
922         NORMAL_TEXT_SECTION_NAME macros.
923         (unlikely_text_section):  New function.
924         (in_unlikely_text_section):  New function.
925         (function_section):  Add code to make sure beginning of function is
926         written into correct section (hot or cold).
927         (assemble_start_function):  Add code to make sure stuff is written to
928         the correct section.
929         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
930         to an if statement that was checking 'in_text_section'.
931         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
932         condition to an if statement that was checking 'in_text_section'.
933         (default_section_type_flags_1):  Add check: if in cold section
934         flags = SECTION_CODE.
935         * config/darwin.c (darwin_asm_named_section):  Modify to use
936         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
937         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
938         specifically for the i386.
939         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
940         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
941         text string to something more informative.
942         (NORMAL_TEXT_SECTION_NAME): Add new definition.
943         (SECTION_FORMAT_STRING):  Add new definition.
944         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
945         '!in_unlikely_text_section' as an 'and' condition to an if statement
946         that was already checking '!in_text_section'.
947         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
948         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
949         sure these are properly defined for linux on ppc.
950         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
951         for this new flag.
952         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
953         reg_note.
954         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
955         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
956         these new macros.
957
958 2004-04-08  Roger Sayle  <roger@eyesopen.com>
959
960         * function.c (gen_mem_addressof): When changing the RTX from a REG
961         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
962
963 2004-04-08  Roger Sayle  <roger@eyesopen.com>
964
965         PR target/14888
966         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
967         truncxfdf2_noop): Provide dummy "fmov" implementations.
968
969 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
970
971         * gcc.c (default_compilers): Add missing initializers.
972
973         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
974         Return 1 if file was successfully mapped.
975
976 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
977
978         PR pch/13419
979         PR pch/14137
980         Radar #: 3315288
981         * doc/invoke.texi (Precompiled Headers): Suggest -o
982         to put an output file in a particular place.  Be more detailed
983         about which options affect PCH validity and which options
984         might not work.
985         * c-pch.c (pch_matching): New.
986         (MATCH_SIZE): New.
987         (struct c_pch_validity): New field 'match'.
988         (pch_init): Handle pch_matching.
989         (c_common_valid_pch): Check pch_matching.
990
991         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
992
993 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
994
995         * doc/invoke.texi (Precompiled Headers): Warn about known
996         problems.
997
998 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
999
1000         PR c++/14808
1001         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
1002         to 1 if ASM_OUTPUT_DEF is defined.
1003         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
1004         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
1005         Set to non-zero iff not a one_only decl.
1006
1007 2004-04-08  Paul Brook  <paul@codesourcery.com>
1008
1009         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
1010
1011 2004-04-08  Paul Brook  <paul@codesourcery.com>
1012
1013         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
1014         PROMOTE_FOR_CALL_ONLY.
1015         * config/arm/arm-protos.h (arm_function_value): Declare.
1016         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
1017         (TARGET_PROMOTE_PROTOTYPES): Return false.
1018         (arm_function_value): New function.
1019         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
1020         (FUNCTION_VALUE): Call arm_function_value.
1021         * config/cris/cris.h (PROMOTE_MODE): Rename ...
1022         (PROMOTE_FUNCTION_MODE): ... to this.
1023         (PROMOTE_FOR_CALL_ONLY): Remove.
1024         * config/mmix/mmix.h: Likewise.
1025         * config/s390/s390.h: Likewise.
1026         * config/sparc/sparc.h: Likewise.
1027         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
1028         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
1029         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
1030         (PROMOTE_FOR_CALL_ONLY): Remove.
1031
1032 2004-04-08  Joel Sherrill <joel@oarcorp.com>
1033
1034         PR ada/14538
1035         * ada/5rosinte.adb: Remove fake mprotect() body.
1036         * ada/5rosinte.ads: Add SA_SIGINFO.
1037         * ada/5rtpopsp.adb: Rewrite to use new interface.
1038         * ada/init.c: Reorder so the simple single OS conditional __rtems__
1039         is tested before more complex ones which mix UNIX and embedded
1040         systems in the conditional.
1041
1042 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
1043
1044         PR ada/14665
1045         * ada/osint.adb (Find_Program_Name): Rework to properly handle
1046         filenames which end in .exe or have versioning suffixes like VMS.
1047
1048 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
1049
1050         PR target/10129
1051         * config/darwin.c (darwin_encode_section_info): When the decl has
1052         a DECL_INITIAL, it is only defined also when it is not a common.
1053
1054 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1055
1056         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
1057         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
1058
1059 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
1060
1061         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
1062         global register variables.
1063
1064 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
1065
1066         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
1067         rpc_xdr_lvalue_cast_b): New fixes.
1068         * fixinc/fixincl.x: Regenerate.
1069         * fixinc/tests/base/rpc/xdr.h: Add new tests.
1070
1071 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
1072
1073         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
1074         to power4 and power5 entries.
1075
1076 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
1077
1078         * c-common.h (pending_lang_change): Mark for PCH.
1079
1080 2004-04-07  Caroline Tice  <ctice@apple.com>
1081
1082         * gcc.c (main): Move 'break' in main loops (on an error)
1083         to wait until error processing has occurred.
1084
1085 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
1086
1087         * config.gcc: Stop changing enable_threads midstream.
1088         Replace uses of enable_threads_flag with enable_threads.
1089         * configure.ac: Replace uses of enable_threads_flag with
1090         enable_threads.  Improve autoconf quotation in one place.
1091         * configure: Regenerate.
1092
1093 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
1094
1095         * builtins.c: Implement support for sincos function.
1096         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
1097         BUILT_IN_COS{,F,L}.
1098         (expand_builtin_mathfn_3): New function.
1099         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
1100         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
1101         flag_unsafe_math_optimization is set.
1102
1103         * optabs.h (enum optab_index): Add new OTI_sincos.
1104         (sincos_optab): Define corresponding macro.
1105
1106         * optabs.c (init_optabs): Initialize sincos_optab.
1107         (expand_twoval_unop): New function.
1108
1109         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
1110         patterns.
1111
1112         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
1113         and UNSPEC_SINCOS_SIN.
1114
1115         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
1116         sincosxf3): New patterns to implement sincos, sincosf and sincosl
1117         built-ins as inline x87 intrinsics. Define splits for
1118         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
1119         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
1120         sincos patterns.
1121         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
1122         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
1123
1124         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
1125         x87's fsincos insn.
1126
1127 2004-04-06  Devang Patel  <dpatel@apple.com>
1128
1129         PR 14467
1130         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
1131
1132 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1133
1134         * doc/install.texi: Update HP-UX 11 installation procedure.
1135
1136 2004-04-06  Paul Brook  <paul@codesourcery.com>
1137
1138         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
1139
1140 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
1141
1142         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
1143         when the TLS address is generated by a function call.
1144         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
1145         (tls_local_dynamic): Likewise.
1146
1147 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
1148
1149         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
1150         and TYPE_VOLATILE.
1151
1152 2004-04-05  Caroline Tice  <ctice@apple.com>
1153
1154         * gcc.c (combine_flag): New global variable, for new driver option.
1155         (struct compiler): Add two new fields, to be used when
1156         combining multiple input files in a single pass (IMA).
1157         (default_compilers):  Add values for the new fields to all
1158         compiler entries. Modify the "@c" compiler entry for doing IMA
1159         properly with "-save-temps" and the "combine" flag.
1160         (option_map):  Add new driver option, "--combine", to tell driver
1161         to pass multiple input files to compiler at one time.
1162         (have_o_argbuf_index): New global variable.
1163         (store_arg): Modify to assign value to have_o_argbuf_index.
1164         (struct infile):  Add three new fields, to help with IMA.
1165         (display_help): Add help for new "combine" option.
1166         (process_command): Remove local variable have_o; add code to check
1167         for new "combine" option; remove assignment to combine_inputs.
1168         (do_spec_1):  Modify to deal with IMA better.
1169         (main): Make variable 'lang_n_infiles' local to entire function
1170         rather than to a single block.  Use flag combine_flag to
1171         determine whether to do IMA or not; Modify loop initializing
1172         infiles to deal properly with linker files.
1173         Add code for doing preprocessing in presence of
1174         IMA with "-save-temps" flag.  Modify "main" loop to handle
1175         multiple input files, in multiple languages, with or without
1176         preprocessing,  gracefully.
1177         * toplev.c (set_src_pwd): Modify to not complain if attempting to
1178         re-set it to same directory it's previously been set to (avoid
1179         irritating, meaningless warning messages when doing IMA with
1180         save-temps).
1181         * doc/invoke.texi: Add "-combine" to list of Overall Options;
1182         remove documentation about IMA that is no longer accurate; Add
1183         documentation explaining what "-combine" does.
1184         * ada/lang-specs.h: Add initialization values for new fields in
1185         "struct compiler".
1186         * cp/lang-specs.h: Likewise.
1187         * f/lang-specs.h: Likewise.
1188         * java/lang-specs.h: Likewise.
1189         * objc/lang-specs.h: Likewise.
1190         * treelang/lang-specs.h: Likewise.
1191
1192 2004-04-05  David Edelsohn
1193
1194         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
1195         symbol handling.
1196
1197 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
1198             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1199
1200         PR optimization/13424 (hppa), bootstrap/14462, c/14828
1201         * pa.md: Use replace_equiv_address to retain the attributes of the
1202         memory operands used in the split and peephole2 patterns for optimizing
1203         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
1204
1205 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1206
1207         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
1208         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
1209         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
1210         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
1211         PARM_DECL.
1212         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
1213         for a type.
1214         * print-tree.c (print_node): Properly handle side-effects, readonly,
1215         and constant flags.
1216         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
1217         and TREE_CONSTANT if not a type.
1218         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
1219         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
1220         (NON_TYPE_CHECK): New macro.
1221         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
1222
1223 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
1224
1225         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
1226         to DWARF2_DEBUG unconditionally.
1227         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
1228
1229 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
1230             Nathanael Nerode  <neroden@gcc.gnu.org>
1231
1232         PR target/14548
1233         * config.host: Set the shell variable host_can_use_collect2.
1234         Set it to yes by default, and to no for alpha*-dec-*vms*,
1235         i[34567]86-*-mingw32*, and powerpc-*-beos*.
1236         * configure.ac: Set and substitute the shell variable collect2.
1237         Give an error if use_collect2 is yes and host_can_use_collect2 is
1238         no.
1239         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
1240         uses.  Initialize to @collect2@.
1241         (STAGESTUFF): Remove $(USE_COLLECT2).
1242         * config/alpha/x-vms (USE_COLLECT2): Don't set.
1243         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
1244         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
1245         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
1246         * configure: Regenerate.
1247
1248 2004-04-04  Roger Sayle  <roger@eyesopen.com>
1249
1250         * simplify-rtx.c (simplify_binary_operation): Constant fold
1251         DIV, MOD, UDIV and UMOD using div_and_round_double.
1252
1253 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
1254
1255         PR c++/14804
1256         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
1257         RECORD_TYPEs.
1258
1259 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
1260
1261         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
1262         documentation.
1263
1264 2004-04-04  Roger Sayle  <roger@eyesopen.com>
1265
1266         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
1267         updating the REG_EQUAL note on an insn's libcall_insn.
1268
1269 2004-04-04  Roger Sayle  <roger@eyesopen.com>
1270
1271         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
1272
1273 2004-04-03  Roger Sayle  <roger@eyesopen.com>
1274
1275         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
1276         with reorder_operands_p.
1277
1278 2004-04-03  Jan Hubicka  <jh@suse.cz>
1279
1280         * md.texi (vec_set, vec_extract, vec_init): Document.
1281
1282 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
1283
1284        * opts.c (decode_options): Do function inlining with very small
1285        max-inline-insns-* parameters when optimizing for size.
1286
1287 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
1288
1289         * config/i386/i386.h (TARGET_NOCONA): New macro.
1290         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
1291         (processor_type): Add PROCESSOR_NOCONA.
1292
1293         * config/i386/i386.md (cpu): Add nocona to the attribute values.
1294
1295         * config/i386/i386.c (nocona_cost): New variable.
1296         (m_NOCONA): New macro.
1297         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
1298         x86_branch_hints, x86_use_sahf, x86_single_stringop,
1299         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
1300         x86_integer_DFmode_moves, x86_partial_reg_dependency,
1301         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
1302         x86_decompose_lea, x86_arch_always_fancy_math_387,
1303         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
1304         x86_ext_80387_constants, x86_four_jump_limit):
1305         (override_options): Add nocona_cost to processor_target_table.
1306         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
1307         (incdec_operand): Prevent inc/dec generation for Nocona too.
1308         (ix86_issue_rate): Add PROCESSOR_NOCONA.
1309
1310 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
1311
1312         * rtlanal.c (find_reg_note): Manually
1313         unswitch the loop.
1314
1315 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
1316
1317         * genemit.c (gen_split): Change prototype of generated code.
1318         * genrecog.c (write_action): Adjust prototype for and calls to
1319         gen_split_*.
1320         * gensupport.c (struct queue_elem): Add split field.
1321         (queue_pattern): Return a value.  Clear the split field.
1322         (process_rtx): Maintain an association between an insn and the
1323         split generated from it for a define_insn_and_split.
1324         (process_one_cond_exec): Generate a new split for a
1325         define_insn_and_split.
1326         * config/arm/arm-protos.h (arm_split_constant): Add insn
1327         parameter.
1328         (emit_constant_insn): New function.
1329         (arm_gen_constant): Use it.
1330         * config/arm/arm.md: Adjust calls to arm_split_constant.
1331
1332 2004-04-02  Jan Hubicka  <jh@suse.cz>
1333
1334         * cgraph.c: Add overall comment.
1335         (cgraph_inline_hash): New global variable.
1336         (cgraph_create_node): Break out from ...
1337         (cgraph_node): ... here.
1338         (cgraph_edge): New function.
1339         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
1340         (cgraph_remove_edge): Accept edge, intead of source and destination.
1341         (cgraph_redirect_edge_callee): New.
1342         (cgraph_remove_node): Update all new datastructures.
1343         (cgraph_record_call, cgraph_remove_call): Kill.
1344         (dump_cgraph_node): Break out from ... ; dump new datastructures.
1345         (dump_cgraph): ... here.
1346         (cgraph_function_possibly_inlined_p): Use new hashtable.
1347         (cgraph_clone_edge, cgraph_clone_node): New.
1348         * cgraph.h: Include hashtab.h
1349         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
1350         fields, add inlined_to pointer.
1351         (cgraph_node): Add pointer to next_clone.
1352         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
1353         (cgraph_remove_call, cgraph_record_call): Kill.
1354         (cgraph_inline_hash): Declare.
1355         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
1356         cgraph_redirect_edge_callee): Declare.
1357         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
1358         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
1359         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
1360         * cgraphunit.c: Add overall comment.
1361         (cgraph_optimize_function): Kill.
1362         (cgraph_assemble_pending_functions): Do not assemble inline clones.
1363         (cgraph_finalize_function): Update call of cgraph_remove_node
1364         (record_call_1): Record call sites.
1365         (cgraph_create_edges): Accept node instead of decl argument.
1366         (error_found): New static variable.
1367         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
1368         (cgraph_analyze_function): Update for new datastructures.
1369         (cgraph_finalize_compilation_unit): Plug memory leak.
1370         (cgraph_optimize_function): Kill.
1371         (cgraph_expand_function): Do not use cgraph_optimize_function.
1372         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
1373         cgraph_inlined_callees): Kill.
1374         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
1375         clones.
1376         (estimate_growth): Simplify.
1377         (cgraph_clone_inlined_nodes): New function.
1378         (cgraph_mark_inline_edge): Re-implement.
1379         (cgraph_mark_inline): Likewise.
1380         (cgraph_check_inline_limits): Simplify.
1381         (cgraph_recursive_inlining_p): New.
1382         (update_callee_keys): Break out from ...
1383         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
1384         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
1385         Likewise.
1386         (cgraph_expand_all_functions):  Remove inline clones from the ordered
1387         list.
1388         (cgraph_preserve_function_body_p): New predicate.
1389         (cgraph_optimize): Verify cgraph.
1390         * function.h (struct function): Add fields saved_tree/saved_args.
1391         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
1392         * toplev.c (rest_of_compilation): Do not free cfun.
1393         * tree-inline.c: Include function.h
1394         (struct inline_data): Add saving_p field; replace decl/current_decl by
1395         node/current_node.
1396         (insert_decl_map): New function.
1397         (copy_body_r): Handle saving; update cgraph datastructure.
1398         (copy_body): Handle recursive inlining.
1399         (initialize_inlined_parameters): Likewise.
1400         (expand_call_inline): Propagate node attributes; update cgraph.
1401         (optimize_inline_calls): Verify that datastructure still match.
1402         (save_body): New function.
1403         * tree-inline.h (save_body): New.
1404         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
1405         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
1406         * langhooks.c (lang_hooks): Add update_decl_after_saving.
1407
1408 2004-04-01  Serge Belyshev  <1319@bot.ru>
1409
1410         PR target/14702
1411         * config/i386/i386.md: fix source operand constraints in
1412         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
1413
1414 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
1415
1416         * fold-const.c (folda): Preserve types of comparisons.
1417
1418 2004-04-01  Richard Henderson  <rth@redhat.com>
1419
1420         * toplev.c (backend_init): Move init_optimization_passes call ...
1421         (lang_dependent_init): ... here.
1422
1423 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
1424             Jakub Jelinek  <jakub@redhat.com>
1425
1426         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
1427         -lgcc --as-needed -lgcc_s --no-as-needed by default.
1428         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
1429         * configure: Rebuilt.
1430         * config.in: Rebuilt.
1431         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
1432         (stage2-start, stage3-start, stage4-start): Likewise.
1433         (stageprofile-start, stagefeedback-start): Likewise.
1434
1435 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
1436
1437         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
1438         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
1439         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
1440         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
1441         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
1442         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
1443         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
1444         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
1445         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
1446         * config/sparc/t-linux: Removed.
1447
1448 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
1449
1450         PR c++/14755
1451         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
1452         "bitfld++ == const" to "++bitfld == const + incr" transformations.
1453
1454 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1455
1456         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
1457         * stor-layout.c (layout_decl): Likewise.
1458         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
1459         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
1460         * print-tree.c (print_node): Handle various used of unsigned_flag.
1461         * tree.def (BIT_FIELD_REF): Update comment.
1462         * tree.h (TREE_UNSIGNED): Deleted.
1463         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
1464
1465 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1466
1467         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
1468         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
1469         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
1470         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
1471         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
1472         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
1473         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
1474         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
1475         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
1476         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
1477         REAL_TYPE, not INTEGER_TYPE.
1478         (layout_type, case VECTOR_TYPE): Simplify code.
1479         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
1480         * tree.h: Update comments.
1481         (STRIP_NOPS): Use TYPE_UNSIGNED.
1482         (TYPE_UNSIGNED): New macro.
1483         (TYPE_TRAP_SIGNED): Remove now redundant check.
1484         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
1485
1486 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1487
1488         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
1489
1490 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
1491
1492         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
1493         Add darwin-fpsave.asm, darwin-vecsave.asm,
1494         and darwin-world.asm.
1495         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
1496         as the asm files contain altivec instructions.
1497         * config/rs6000/darwin-fpsave.asm: New file.
1498         * config/rs6000/darwin-vecsave.asm: New file.
1499         * config/rs6000/darwin-world.asm: New file.
1500
1501 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
1502
1503         * gengtype-yacc.y (option, stringseq): Add missing
1504         terminating semicolon.
1505
1506 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
1507
1508         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
1509         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
1510         tls_dtprel_ha_32, tls_dtprel_ha_64,
1511         tls_dtprel_lo_32, tls_dtprel_lo_64,
1512         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
1513         tls_tprel_ha_32, tls_tprel_ha_64,
1514         tls_tprel_lo_32, tls_tprel_lo_64,
1515         tls_got_tprel_32, tls_got_tprel_64,
1516         tls_tls_32, tls_tls_64): Replace register_operand with
1517         gpc_reg_operand.
1518
1519 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
1520
1521         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
1522         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
1523         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
1524         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
1525         *ctrdi_internal6): Replace register_operand with
1526         nonimmediate_operand.
1527
1528 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
1529
1530         * fold-const.c (fold): Reassociate multiply expression
1531         with an adjacent non-multiply expression to use
1532         architecture's multiply-add instruction.
1533
1534 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
1535
1536         * gengtype.c (create_option): New function.
1537         * gengtype.h: Prototype it.
1538         * gengtype-yacc.y (stringseq): New rule.
1539         (option): Use create_option.  Add new bare ID production.  Use
1540         stringseq, not STRING directly.
1541
1542         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
1543         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
1544         * varray.h, config/alpha/alpha.c:
1545         Use new shorter form of GTY markers.
1546
1547         * doc/gty.texi: Rewrite.
1548
1549 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
1550
1551         * config/darwin.c (machopic_function_base_name):
1552         Remove current_name and getting the name of the
1553         current function.
1554
1555 2004-03-30  Nick Clifton  <nickc@redhat.com>
1556
1557         * config/arm/arm.md (thumb_jump): Reduce the backward branch
1558         range, and increase the forward branch range, to allow for
1559         the fact that the PC will be off by 4.
1560
1561 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
1562
1563         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
1564
1565 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
1566
1567         * config/rs6000/rs6000.c (output_vec_const_move):
1568         Find all cases of EASY_VECTOR_15_ADD_SELF.
1569         (easy_vector_constant_add_self): Accept
1570         all vector constant loadable by vsplt* and vadd*.
1571         (easy_vector_same): Use easy_vector_splat_const.
1572         (easy_vector_const): Use easy_vector_splat_const.
1573         (easy_vector_splat_const): New function.
1574         (gen_easy_vector_constant_add_self): New function.
1575
1576         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
1577         New prototype.
1578
1579         * config/rs6000/altivec.md (movv4si splitter): Change to
1580         emit move insn with halfed vector constant.
1581         (*movv8hi splitter): Likewise.
1582         (*movv16qi splitter): Likewise.
1583
1584 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
1585
1586         PR 11591
1587         * config/rs6000/rs6000.c (rs6000_legitimate_address):
1588         Allow any offset to argument pointer in no-strict case.
1589
1590 2004-03-30  Jan Hubicka  <jh@suse.cz>
1591
1592         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
1593         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
1594         dump file in non-unit-at-a-time mode.
1595
1596 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
1597
1598         * config/cris/cris.h: Correct #ifdef to test for
1599         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
1600         HAVE_AS_MUL_BUG_ABORT_OPTION.
1601
1602 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1603
1604         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
1605         the address inside the old RTL.
1606
1607 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
1608
1609         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
1610         (struct c_binding, struct c_scope): Add chain_next
1611         attributes to GTY markers.
1612         (struct lang_identifier, struct lang_tree_node): Define
1613         here...
1614         * c-tree.h: ... not here.  No longer need to declare struct
1615         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
1616         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
1617         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
1618
1619         PR 14734, 11944
1620         * c-decl.c (get_parm_info): If error_mark_node is encountered
1621         in the bindings chain, unbind and discard it; don't abort.
1622
1623 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
1624             Dorit Naishlos <dorit@il.ibm.com>
1625
1626         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
1627         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
1628
1629 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
1630
1631         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
1632
1633         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
1634         (m68hc11_attribute_table): New attribute "page0" to mark a global
1635         variable as being allocated from within page0 section.
1636         (m68hc11_encode_label): New function.
1637         (m68hc11_strip_name_encoding): New function.
1638         (m68hc11_page0_symbol_p): New function.
1639         (m68hc11_indirect_p): Accept global variables marked in page0.
1640         (m68hc11_encode_section_info): Lookup "page0" attribute.
1641
1642         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
1643         represents access to page0 variables.
1644
1645         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
1646         ("*logicalsi3_silshl16_zext"): Likewise.
1647         ("*ashldi3_const32"): Likewise.
1648         (peephole2 ashift): Likewise.
1649
1650 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
1651
1652         * c-tree.h (C_DECL_REGISTER): New.
1653         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
1654         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
1655         (build_array_ref, c_mark_addressable): Set and use it.
1656         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
1657         Allow structures with volatile fields to be declared register.
1658         Don't check TREE_ADDRESSABLE before warning about taking address
1659         of register.
1660         * c-decl.c (finish_decl): Don't allow structures with volatile
1661         fields to be placed in named register.
1662         * doc/trouble.texi: Remove reference to structures with volatile
1663         fields in registers.
1664
1665 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
1666
1667         * function.c (thread_prologue_and_epilogue): Move
1668         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
1669         before the epilogue.
1670
1671 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
1672
1673         * expr.c (store_constructor): Use gen_int_mode to correctly
1674         sign-extend CONST_INT value.
1675
1676 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1677
1678         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
1679         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
1680         * doc/extend.texi: Likewise.
1681
1682 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
1683
1684         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
1685           with TYPE_ORIG_SIZE_TYPE.
1686
1687 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
1688
1689         PR 14219
1690         * c-typeck.c (build_binary_op): Do not allow comparisons of
1691         vectors.
1692
1693 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
1694
1695         * config.gcc: Remove sparc-tti-*.
1696         * config/sparc/pbd.h: Delete.
1697
1698         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
1699         * config/sparc/aout.h: Likewise.
1700
1701         * config/sparc/sparc.h: Remove if 0'd code.
1702         * config/sparc/sparc.md (call): Remove if 0'd code.
1703         (call_value): Likewise.
1704         (nonlocal_goto): Likewise.
1705         (unimp_insn): Delete.
1706
1707 2004-03-25  Roger Sayle  <roger@eyesopen.com>
1708
1709         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
1710         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
1711
1712 2004-03-25  Richard Henderson  <rth@redhat.com>
1713
1714         PR 11527
1715         * c-typeck.c (pop_init_level): Emit pending init elements earlier
1716         rather than later.
1717
1718 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1719
1720         * builtins.c (fold_builtin): Fix error in last change.
1721
1722 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
1723
1724         * config/mips/mips.h: Formatting fix.
1725
1726 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1727
1728         * builtins.def: Add ctype builtins.
1729         * doc/extend.texi: Likewise.
1730
1731 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1732
1733         * builtins.c (fold_builtin): Add new builtin optimizations for
1734         sqrt and/or cbrt.
1735         * fold-const.c (fold): Likewise.
1736
1737 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
1738
1739         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
1740         (rs6000_sched_groups): New variable.
1741         (processor_target_table): Add power5.
1742         (rs6000_override_options): Set rs6000_sched_insert_nops,
1743         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
1744         from rs6000_sched_groups.
1745         (output_cbranch): Use rs6000_always_hint.
1746         (rs6000_variable_issue): Use rs6000_sched_groups.
1747         (rs6000_adjust_cost): Add CPU_POWER5.
1748         (is_microcoded_insn): Use rs6000_sched_groups.
1749         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
1750         Return 2 for POWER5 cracked instructions.
1751         (is_cracked_insn): Use rs6000_sched_groups.
1752         (is_branch_slot_insn): Use rs6000_sched_groups.
1753         (rs6000_issue_rate): Add CPU_POWER5.
1754         (rs6000_sched_finish): Use rs6000_sched_groups.
1755         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
1756         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
1757         (DEFAULT_SCHED_COSTLY_DEP): Delete.
1758         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
1759         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
1760         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
1761         * config/rs6000/power5.md: New file.
1762         * doc/invoke.texi: Add power5 option.
1763
1764 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
1765
1766         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
1767         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
1768         * doc/invoke.texi: Fix a typo.
1769
1770 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
1771
1772         PR optimization/9707.
1773         * stmt.c (emit_case_nodes): Emit equality comparisons instead
1774         of recursing if both children are single-valued cases with no
1775         children.
1776
1777 2004-03-25  Paul Brook  <paul@codesourcery.com>
1778
1779         * config/arm/arm.c (vfp_print_multi): Remove.
1780         (arm_output_fldmx): New function.
1781         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
1782         (arm_expand_prologue): Update to match.
1783         (arm_get_vfp_saved_size): New Function.
1784         (arm_get_frame_offsets): Use it.
1785         (arm_output_epilogue): Use new functions.
1786
1787 2004-03-24  Richard Henderson  <rth@redhat.com>
1788
1789         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
1790         (reg_known_value, reg_known_value_size): Likewise; make static.
1791         (reg_known_equiv_p): Make static.
1792         (clear_reg_alias_info): Update for new indexing.
1793         (get_reg_known_value, set_reg_known_value): New.
1794         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
1795         (canon_rtx): Use them.
1796         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
1797         Don't play queer offsetting games with reg_known_value and
1798         reg_known_equiv_p.
1799         (end_alias_analysis): Free reg_known_value with gc.
1800         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
1801         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
1802         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
1803         functions instead.
1804
1805 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
1806
1807         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
1808         config/i386/mmintrin.h: Update copyright.
1809
1810 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
1811
1812         * configure.ac: Add --enable-werror-always (for top level bootstrap
1813         support).
1814         * configure: Regenerate.
1815
1816 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
1817
1818         * objc/objc-act.c (objc_comptypes): Treat comparisons
1819         between 'Class' and '<class> *' as explicitly invalid.
1820
1821 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
1822
1823         * doc/invoke.texi (-frename-registers: Add enabled at -O3.
1824         (-fprofile-values): Add enabled with profile-{generate,use}.
1825         (-fvpt): Same.
1826         (-ftracer): Add enabled with profile-use.
1827         (-funit-at-a-time): Add enabled at -O2,-O3.
1828         (-funroll-loops): Add enabled with profile-use.
1829         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
1830         (max-gcse-passes): Mention default.
1831         (max-cse-path-length): Mention default.
1832
1833 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
1834
1835         * Makefile.in (STRICT2_WARN): Reorder.
1836         * configure.ac: Check for -Wold-style-definition, and use it
1837         in strict1_warn if it's available.
1838         * configure: Regnerate.
1839
1840 2004-03-24  Paul Brook  <paul@nowt.org>
1841
1842         * config.gcc <arm>: Add --with-abi=
1843         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
1844         thumb_far_jump_used): Remove prototypes.
1845         (arm_needs_doubleword_align): Add prototype.
1846         (thumb_compute_initial_elimination_offset): Ditto.
1847         * config/arm/arm.c (arm_get_frame_offsets): New function.
1848         (use_return_insn, output_return_instruction, arm_output_epilogue,
1849         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
1850         arm_expand_prologue, thumb_expand_epilogue): Use it.
1851         (arm_abi, target_abi_name, all_arm_abis): New variables.
1852         (arm_override_options): Set them.  Set structure padding for AAPCS.
1853         (arm_return_in_memory): Update ABI check.
1854         (arm_init_cumulative_args): Initialize can_split.
1855         (arm_needs_doubleword_align): New function.
1856         (arm_function_arg): Don't split args after pushing to stack. Handle
1857         doubleword/even reg alignment.
1858         (arm_va_arg): Handle all doubleword aligned args.
1859         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
1860         on ABI, not CPU.
1861         (arm_compute_save_reg0_reg12_mask): Fix comment.
1862         (thumb_get_frame_size, thumb_get_frame_size): Remove.
1863         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
1864         value for alignment.
1865         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
1866         to match.
1867         (thumb_compute_initial_elimination_offset): New function.
1868         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
1869         unneccessary rounding.
1870         * config/arm/arm.h (target_abi_name): Declare.
1871         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
1872         arm_abi_type, ARM_DEFAULT_ABI): Define.
1873         (ARM_FLAG_ATPCS): Remove.
1874         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
1875         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
1876         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
1877         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
1878         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
1879         Contitionalize on ABI, not CPU.
1880         (struct arm_stack_offsets): Define.
1881         (struct machine_function): Add stack_offsets.  Remove frame_size.
1882         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
1883         pushed.
1884         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
1885         doubleword alignment.
1886         (THUMB_INITIAL_ELIMINATION_OFFSET,
1887         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
1888         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
1889         * config/arm/arm.md (align_8): Enable for all targets.
1890         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
1891         (ARM_DEFAULT_ABI): Define.
1892         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
1893         -mstructure-size-boundary.
1894
1895 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
1896
1897         * configure.ac: Check for -Wno-variadic-macros; don't use
1898         -pedantic (in stage 1 or a simple 'make all') unless it's available,
1899         and if it's available, use it.  Also, clean up check for
1900         -Wno-long-long.
1901         * configure: Regenerate.
1902
1903 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
1904
1905         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
1906         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
1907         (MULTILIB_DEFAULTS): Use it.
1908         (MIPS_CPU_STRING_DEFAULT): Remove.
1909         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
1910         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
1911         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
1912         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
1913         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
1914         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
1915         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
1916         accordingly.
1917
1918 2004-03-24  DJ Delorie  <dj@redhat.com>
1919             Richard Sandiford  <rsandifo@redhat.com>
1920
1921         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
1922         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
1923         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
1924         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
1925         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
1926         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
1927         if TARGET_FIX_VR4122.
1928         * config/mips/mips.md (define_attr length): Account for nops inserted
1929         after macc and dmult when using -mfix-vr4122-bugs.
1930         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
1931         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
1932         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
1933         * config/mips/vr4122-div.S: New file.
1934         * doc/invoke.texi: Document -mfix-vr4122-bugs.
1935
1936 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
1937
1938         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
1939         (TARGET_MIPS4130): New macro.
1940         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
1941         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
1942         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
1943         with PROCESSOR_R4130.
1944         * config/mips/mips.md (define_attr cpu): Add r4130.
1945         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
1946
1947 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
1948             Richard Sandiford  <rsandifo@redhat.com>
1949
1950         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
1951
1952 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
1953
1954         PR preprocessor/14438
1955         * cpplib.c (do_pragma): Remove line_change call after pragma
1956         handler.
1957
1958 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
1959
1960         * doc/extend.texi (ARM Built-in Functions): Replace with correct
1961         declarations.
1962
1963 2004-03-23  Roger Sayle  <roger@eyesopen.com>
1964
1965         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
1966         if flag_unsafe_math_optimizations.
1967         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
1968         and TARGET_80387 expand using truncdfsf2_noop pattern.
1969         (truncxfsf2): Likewise using truncxfsf2_noop.
1970         (truncxfdf2): Likewise using truncxfdf2_noop.
1971         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
1972
1973 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
1974
1975         * hooks.c (hook_constcharptr_tree_null): New hook.
1976         * hooks.h (hook_constcharptr_tree_null): New prototype.
1977         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
1978         * target.h (mangle_fundamental_type): New target hook.
1979         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
1980         target hook at rs6000_mangle_fundamental_type.
1981         (rs6000_mangle_fundamental_type): New function.
1982         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
1983
1984 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
1985
1986         PR 12267, 12391, 12560, 13129, 14114, 14133
1987         * c-tree.h: Forward declare struct c_binding.  Declare
1988         c_override_bindings_to_false.  Update prototypes.
1989         (struct lang_identifier): Update comments.  Change fields to be
1990         struct c_binding *.
1991         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
1992         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
1993         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
1994         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
1995         * c-common.h: Update prototypes.
1996         * c-decl.c (struct c_scope): Update commentary.  Remove names,
1997         names_last, parms, parms_last, tags, and shadowed fields.  Add
1998         bindings and depth fields.
1999         (scope_freelist): Move to more appropriate location.
2000         (c_print_identifier): Update for changes to struct lang_identifier.
2001         (objc_mark_locals_volatile): Update for new bindings structures.
2002         (global_bindings_p): Honor c_override_global_bindings_to_false.
2003         (pushlevel): Rename to push_scope; take no arguments; use the
2004         scope_freelist; initialize scope->depth and check for overflow.
2005         (poplevel): Rename to pop_scope; totally rewritten for new bindings
2006         structures.
2007         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
2008         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
2009         Improve some commentary.  Adjust handling of forward parm decls.
2010         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
2011         Preserve C_DECL_IN_EXTERNAL_SCOPE.
2012         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
2013         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
2014         decls.  Rewrite for new bindings structures.  Improve commentary.
2015         Eliminate the copy_node call.
2016         (implicit_decl_warning): Use the "diag" idiom (as seen in
2017         locate_old_decl) to reduce code duplication; call locate_old_decl
2018         if appropriate.  Relocate to remove need for forward declaration.
2019         (implicitly_declare): Adjust for new bindings structures.  Kludge
2020         around Objective-C not-really-builtin functions.
2021         (undeclared_variable): Improve diagnostics.  If current_function_decl
2022         is nonnull but current_function_scope is null, use current_scope.
2023         Use bind.
2024         (lookup_tag): Adjust for new bindings structures.  Kludge around
2025         Objective-C's tag declarations that wind up in the external scope.
2026         (lookup_name): Adjust for new bindings structures.  Kludge around
2027         c-common.c's pseudo-typedefs that wind up in the external scope.
2028         (lookup_name_current_level): Rename lookup_name_in_scope; take a
2029         second argument indicating the scope to examine; rewrite for
2030         new bindings structures.
2031         (c_init_decl_processing): Adjust for renamed functions.  Do not
2032         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
2033         First scope pushed is the external scope, not the global scope.
2034         (builtin_function): Use bind, not pushdecl.  Adjust other bits
2035         for new data structures.  Keep track of builtins that should be
2036         made visible automatically.
2037         (start_decl): Adjust diagnostics.  Remove unnecessary call to
2038         expand_decl.
2039         (grokparms): Return 0 if arg_types is error_mark_node.
2040         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
2041         reversed sense.  Rewrite for new bindings structures.  Do not
2042         leave any decls in the scope, to prevent pop_scope from doing
2043         contradictory things with them.
2044         (finish_struct, finish_enum): Remove redundant diagnostics.
2045         (build_enumerator): Don't cascade diagnostics for error_mark_node.
2046         Mark location where -pedantic changes the meaning of the program.
2047         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
2048         parameter decls into the function's scope structure using bind.
2049         Warn here about function definitions in the wrong style.
2050         Adjust diagnostics.
2051         (store_parm_decls): Correct the determination of whether a
2052         function was defined with a prototype.
2053         (c_write_global_declarations): Operate on all file decls and on
2054         the external scope.  Split body of the loop to...
2055         (c_write_global_declarations_1): ... this new function, to avoid
2056         code duplication.
2057         (truly_local_externals, first_builtin_decl, last_builtin_decl)
2058         (make_scope, pop_scope, in_parm_level_p, set_block)
2059         (any_external_decl, record_external_decl, bind_label, getdecls)
2060         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
2061         (c_reset_state): Delete.
2062         (visible_builtins, c_override_global_bindings_to_false)
2063         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
2064         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
2065         (external_scope, binding_freelist, bind, free_binding_and_advance)
2066         (push_file_scope, pop_file_scope): New.
2067         (pushtag, pushdecl_top_level, lookup_label, declare_label)
2068         (define_label, c_make_fname_decl, finish_decl)
2069         (mark_forward_parm_decls, build_compound_literal)
2070         (grokdeclarator, start_function, check_for_loop_decls)
2071         (identifier_global_value, record_builtin_type): Minor adjustments
2072         for new bindings structures.  Improve diagnostics and commentary.
2073         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
2074         pushlevel/poplevel respectively.
2075         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
2076         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
2077         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
2078         correct loop over multiple translation units; call fatal_error if
2079         requested to compile more than one file at once.  (This disables
2080         IMA temporarily - an up-front error being preferable to a crash.)
2081         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
2082         (all actions): Adjust calls to pushlevel/poplevel.
2083         (parsing_iso_function_signature): Delete.
2084         (extdef_1): Fold into extdef.
2085         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
2086         warn here about function definitions in the wrong style.
2087         (after_tyle_declarator, parm_declarator_starttypename)
2088         (parm_declarator_nostarttypename, notype_declarator): Remove
2089         commented-out productions.
2090         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
2091         an empty TREE_LIST node.  Adjust calls to get_parm_info.
2092         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
2093         to suppress -Wold-style-definition after this error.
2094         (c_parse_file): Don't clear the binding stack or call
2095         finish_fname_decls here.  Correct comment.
2096         * c-typeck.c (same_translation_unit_p): Export.
2097         (common_type): Use c_override_global_bindings_to_false, not
2098         pushlevel/poplevel/declare_parm_level.
2099         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
2100         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
2101         and LANG_HOOKS_GETDECLS with do-nothing stubs.
2102         * objc/objc-lang.c: Likewise.
2103         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
2104         get_parm_info.
2105         (OBJC_VOID_AT_END): Delete; replace all uses
2106         with void_list_node.
2107         (generate_forward_declaration_to_string_table): Delete.
2108         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
2109
2110         * coverage.c (create_coverage): Don't pushdecl anything.
2111         * langhooks.c (lhd_clear_binding_stack): Call
2112         lang_hooks.decls.poplevel, not poplevel.
2113         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
2114         circular list rather than going into an infinite loop.
2115
2116 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
2117
2118         * optabs.c (expand_binop): When synthesizing double word rotates
2119         from single word shifts, use a new register target if the provided
2120         target is not a REG already.
2121
2122 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2123
2124         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
2125         * c-common.c (handle_mode_attribute): Add extra arg to
2126         build_pointer_type_for_mode and build_reference_type_for_mode.
2127         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
2128         for INTEGER_CST.
2129         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
2130         Chain pointers via TYPE_NEXT_PTR_TO.
2131         (build_reference_type_for_mode): Similarly.
2132         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
2133         and build_reference_type_for_mode.
2134         (tree_check4_failed): New function.
2135         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
2136         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
2137         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
2138         Add check.
2139
2140 2004-03-23  Roger Sayle  <roger@eyesopen.com>
2141
2142         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
2143         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
2144         when both A and B are nonnegative.
2145         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
2146         nonzero.
2147
2148 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
2149
2150         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
2151         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
2152
2153 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
2154
2155         PR optimization/14669
2156         * fold-const.c (fold): Only unwiden integer comparisons for equality
2157         and inequality operators, or when the signedness doesn't change.
2158
2159 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
2160
2161         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
2162         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
2163         * config/sparc/t-linux: New file.
2164
2165 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
2166
2167         * gcse.c (can_assign_to_reg_p): New function, split out from...
2168         (want_to_gcse_p): ...here.
2169         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
2170         the rhs of a store.
2171
2172 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
2173
2174         * c-typeck.c (same_translation_unit_p): Fix pasto.
2175
2176 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
2177
2178         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
2179         (PARAM_MAX_SCHED_REGION_INSNS): New.
2180         * sched-rgn.c: Include params.h
2181         (MAX_RGN_BLOCKS): Delete.
2182         (MAX_RGN_INSNS): Delete.
2183         (too_large): Return bool.  Convert to PARAM_VALUE.
2184         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
2185         * doc/invoke.texi (param): Document max-sched-region-blocks and
2186         max-sched-region-insns.
2187
2188 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
2189
2190         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
2191         for base types.
2192
2193 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
2194
2195         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
2196         change.
2197
2198 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
2199
2200         PR c/14069
2201         * c-decl.c (finish_struct): Change type of incorrect flexible array
2202         field into error_mark_node.
2203
2204 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
2205
2206         PR target/14580
2207         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
2208         who are not local for Darwin PIC.
2209
2210 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
2211
2212         * regrename.c (regrename_optimize): Set regs_ever_live for all
2213         registers introduced as replacement.
2214
2215 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
2216
2217         PR middle-end/14470
2218         * expr.c (mark_queue): New function.
2219         (emit_insns_enqueued_after_mark): New function replacing
2220         emit_queue.  Clear the body of emitted queued insns.
2221         (emit_queue): Call emit_insns_enqueued_after_mark.
2222         (store_expr): Mark the increment queue on entry.  Emit
2223         only the incrementations queued when expanding the source.
2224
2225 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
2226
2227         * configure.ac: Allow --disable-coverage-flags (for the future benefit
2228         of top level bootstrap, and consistency).  Reindent.
2229         * configure: Regenerate.
2230
2231 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
2232
2233         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
2234         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
2235         unnecessary casts.
2236
2237 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
2238
2239         PR target/14291
2240         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
2241         __MINGW32__.
2242
2243 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
2244
2245         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
2246         to nonimmediate_operand.
2247         ("*doloop_di"): Likewise.
2248
2249 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
2250
2251         * real.h (struct real_value): Use the same type for all
2252         bitfields.  Rename exp to uexp.
2253         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
2254         Adjust all uses of exp...
2255         * builtins.c: ... here, ...
2256         * emit-rtl.c: ... here, and ...
2257         * real.c: ... and here.
2258
2259 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2260
2261         * pretty-print.c (pp_base_maybe_space): New function.
2262         * pretty-print.h (pp_base_maybe_space): Declare.
2263         (pp_maybe_space): New macro.
2264
2265 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
2266
2267         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
2268
2269 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
2270
2271         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
2272         of using register multiplication cost.
2273         (expand_mult): Adapt choose_mult_variant call.
2274         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
2275         of MODE; pass appropriate cost bound.  Adjust result when
2276         performing signed multiplication by a negative constant.
2277         Don't use intermediate modes larger than word_mode.
2278
2279 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2280
2281         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
2282         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
2283         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
2284         * explow.c (expr_size): Likewise.
2285         * expr.h (placeholder_list, find_placeholder): Deleted.
2286         * expr.c (store_constructor): Likewise.
2287         (get_inner_reference): Likewise.  Also don't call find_placeholder.
2288         (placeholder_list, find_placeholder): Deleted.
2289         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
2290         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
2291         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
2292         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
2293         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
2294         Likewise.
2295         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
2296         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
2297         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
2298         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
2299         Clean up by using first_rtl_op.
2300         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
2301         (substitute_placeholder_in_expr): New function.
2302         * tree.def (WITH_RECORD_EXPR): Deleted.
2303         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
2304         (substitute_placeholder_in_expr): New.
2305
2306 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
2307
2308         * dojump.c (prefer_and_bit_test): Fix which part of
2309         the and_test is replaced.
2310
2311 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
2312
2313         * frontends.texi: Add missing line.
2314
2315 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
2316             Chris Devers  <cdevers@pobox.com>
2317             Joseph S. Myers  <jsm@polyomino.org.uk>
2318
2319         * doc/frontends.texi: Rewrite.
2320         * doc/gcc.texi: Update last modification date.
2321
2322 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
2323
2324         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
2325         message before redirecting the edge.
2326
2327 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2328
2329         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
2330         flag.
2331         * explow.c (force_not_mem): Set REG_POINTER flag according to
2332         MEM_POINTER one.
2333         * rtl.h (MEM_POINTER): New macro.
2334         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
2335         for MEM_POINTER.
2336
2337 2004-03-20  Roger Sayle  <roger@eyesopen.com>
2338
2339         PR target/13889
2340         * cse.c (fold_rtx): Avoid substituting constants into unary
2341         conversion operations.
2342
2343 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2344
2345         * fold-const.c (fold): Replace "expr" with "t".
2346
2347 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
2348
2349         PR c/12373
2350         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
2351         DECL_ORIGINAL_TYPE if there isn't one.
2352
2353 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2354
2355         * fold-const.c (fold): Replace "final_type" with "type".
2356         Remove variable "final_type".
2357
2358 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2359
2360         * fold-const.c (fold): Constify "type".
2361         Replace "TREE_TYPE (t)" with "type".
2362
2363 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2364
2365         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
2366         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
2367         via (*targetm.foo) () with targetm.foo ().
2368
2369 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
2370
2371         PR other/14630
2372         * doc/install.texi: Add info directory category and entry.
2373
2374 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2375
2376         * fold-const.c (fold): Replace "t" with "tem" where it is used
2377         as a temporary variable.  Remove "orig_t" and all of its uses.
2378
2379 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2380
2381         * fold-const.c (fold): Remove variable "invert".
2382         Move the handling of relational expressions that can be folded
2383         to a constant ...
2384         (fold_relational_const): ... here.
2385         (tree_expr_nonzero_p): New.
2386
2387 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
2388
2389         PR c/14635
2390         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
2391         DEF_GCC_BUILTIN.
2392
2393 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
2394
2395         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
2396         (GTFILES): Add $(srcdir)/dojump.h.
2397         (gt-dojump.h): New dependency.
2398         * dojump.c (and_reg, and_test, shift_test): New static variables.
2399         (prefer_and_bit_test): New function.
2400         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
2401
2402 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2403
2404         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
2405         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
2406         reorg.c, tree.h: Fix comment typos.
2407
2408 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
2409
2410         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
2411         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
2412         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
2413         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
2414         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
2415         vmsdbgout.c: Replace calls via (*targetm.foo) () with
2416         targetm.foo ().
2417
2418 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
2419
2420         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
2421         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
2422         always_inline attribute.
2423         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
2424         Treat expansion as completed even if literal argument is
2425         invalid (so that other expansions are not tried in vain).
2426
2427 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
2428
2429         * loop-doloop.c (add_test): Replace GEN_INT (0) with
2430         const0_rtx.
2431
2432 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
2433
2434         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
2435         ...
2436         (fold_abs_const): ... here.
2437
2438 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2439
2440         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
2441
2442 2004-03-19  Denis Chertykov  <denisc@overta.ru>
2443
2444         PR target/11520
2445         * config/avr/avr.md ("call_insn"): Handle explicit integer
2446         specially.
2447         (call_value_insn): Likewise.
2448
2449 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2450
2451         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
2452
2453 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
2454
2455         * fold-const.c (negate_expr): Move the handling of constants
2456         ...
2457         (fold_negate_const): ... here.
2458
2459 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2460
2461         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
2462         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
2463         * tree.c (debug_no_type_hash): Deleted.
2464         (type_hash_canon): Abort if passed a variant.
2465         Check lang_hooks.types.hash_types.
2466         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
2467         (build_array_type): Remove unnecessary allocation of pointer type.
2468         (build_complex_type): Properly qualify resulting type.
2469
2470 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
2471
2472         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
2473
2474 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
2475
2476         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
2477         (expand_mult): ...here.
2478         (extract_high_half): New, split out from expand_mult_highpart.
2479         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
2480         (expand_highpart): Evaluate the cost of a shift/add sequence,
2481         then see if any of the specialized optabs are cheaper.
2482
2483 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
2484
2485         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
2486
2487 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2488
2489         * convert.c (convert_to_real): Add more math builtins.
2490
2491 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2492
2493         * convert.c (convert_to_real): Reformat using switch stmt.
2494
2495 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
2496
2497         * c-common.c (pointer_int_sum): Do not complain about using
2498         pointers to pointers-to-members.
2499
2500 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
2501
2502         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
2503         have moved to the target hooks structure".
2504
2505 2004-03-18  James E Wilson  <wilson@specifixinc.com>
2506
2507         * config/mips/mips.md (type): Split move into arith and fmove.  Split
2508         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
2509         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
2510         Likewise.
2511         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
2512         Likewise.
2513         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
2514         rm7_fp_quick): Likewise.
2515         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
2516         rm9k_fquick): Likewise.
2517         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
2518         Likewise.
2519         (ir_sr70_icmp): Delete.
2520
2521 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2522
2523         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
2524         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
2525         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
2526         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
2527         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
2528         Protect with proper check.
2529         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
2530         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
2531         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
2532         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
2533         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
2534         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
2535         not TYPE_FIELDS.
2536         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
2537
2538 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
2539
2540         * gcse.c (eliminate_partially_redundant_loads): Reject change if
2541         dest is set between beginning and current insn.
2542
2543 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
2544
2545         * c-decl.c (grokdeclarator): Do not complain about redeclaring
2546         visible "static" identifiers "extern" in a local scope.
2547         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
2548         post-increments/decrements.
2549
2550 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
2551
2552         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
2553         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
2554         (xtensa_va_start): Remove assignment to current_function_arg_words.
2555
2556 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
2557
2558         * alias.c (record_set): Detect the case where a register is assigned
2559         a new value that has the same base term as the old one.
2560
2561 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2562
2563         * doloop.c: Removed.
2564         * loop-doloop.c: New file.
2565         * Makefile.in (doloop.o): Remove.
2566         (loop-doloop.o): New.
2567         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
2568         * cfgloopanal.c (get_loop_level): New function.
2569         * loop-iv.c (iv_number_of_iterations): Handle case when loop
2570         is leaved immediatelly.
2571         * loop.c (strength_reduce): Do not call doloop optimization.
2572         * loop.h (LOOP_BCT): Removed.
2573         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
2574         (rest_of_handle_loop2): Call doloop_optimize_loops.
2575         (rest_of_compilation): Test for optimizations moved to
2576         rest_of_handle_loop2.
2577
2578 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
2579
2580         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
2581         for mixed mode.
2582         (rs6000_emit_prologue): Ditto.
2583         (rs6000_emit_epilogue): Ditto.
2584         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
2585         macro for mixed mode.
2586
2587 2004-03-18  Jan Hubicka  <jh@suse.cz>
2588
2589         * predict.c (propagate_freq): Compute correctly frequency of
2590         EXIT_BLOCK.
2591
2592 2004-03-17  Eric Christopher  <echristo@redhat.com>
2593
2594         * builtins.c (apply_args_size): Use reg_raw_mode.
2595         (apply_result_size): Ditto.
2596
2597 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
2598
2599         PR target/14620
2600         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
2601
2602 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
2603
2604         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
2605         32-bit builds when defaulting to 32-bit.
2606
2607 2004-03-17  Jan Hubicka  <jh@suse.cz>
2608
2609         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
2610         array.
2611
2612 2004-03-17  James E Wilson  <wilson@specifixinc.com>
2613
2614         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
2615         (hazard_nop): Change type to nop.
2616         (type): Split arith into arith, shift, slt, clz.  Delete darith.
2617         Fix all uses.  Change arith to multi if more than one insn emitted.
2618         * config/mips/5400.md (ir_vr54_arith): Likewise.
2619         * config/mips/5500.md (ir_vr55_arith): Likewise.
2620         * config/mips/7000.md (rm7_int_other): Likewise.
2621         * config/mips/9000.md (rm9k_int): Likewise.
2622         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
2623
2624 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
2625
2626         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
2627         to hold the subtype tree instead of recomputing it several times.
2628
2629 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
2630
2631         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
2632         CC_INVERT.
2633         * config/mn10300/mn10300.md (cc): Remove "invert".
2634
2635 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2636
2637         * builtins.c (integer_valued_real_p): Add builtin rint.
2638         (fold_builtin): Likewise.
2639         * convert.c (convert_to_real): Likewise.
2640
2641         * convert.c (convert_to_real): Fix typos in `long double'
2642         builtins.
2643
2644 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
2645
2646         PR c++/14481
2647         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
2648         generated COMPOUND_EXPRs.
2649
2650 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
2651
2652         * config/h8300/t-rtems (h8300-*-rtems*): New.
2653
2654 2004-03-16  Eric Christopher  <echristo@redhat.com>
2655
2656         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
2657
2658 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
2659
2660         * config/i386/i386-protos.h: Add a prototype for
2661         ix86_reverse_condition.
2662         * config/i386/i386.c (ix86_reverse_condition): New.
2663         * config/i386/i386.h (REVERSE_CONDITION): Use
2664         ix86_reverse_condition.
2665         * config/i386/i386.md: Use ix86_reverse_condition instead of
2666         REVERSE_CONDITION.
2667
2668 2004-03-16  J. Brobecker  <brobecker@gnat.com>
2669
2670         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
2671
2672 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
2673
2674         PR bootstrap/12974
2675         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
2676
2677 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
2678
2679         * c-common.c (c_common_type_for_mode): Build vector types on
2680         demand.
2681         (handle_mode_attribute): Deprecate using the mode attribute
2682         to create vector types.  Fix indentation.
2683         (vector_type_node_list): Remove.
2684         (handle_vector_size_attribute): Create vector types on demand.
2685         Strip a NON_LVALUE_EXPR from the attribute if there is one.
2686         * c-typeck.c (comptypes): Make vector types compatible if they
2687         have the same underlying mode.
2688         (convert_for_assignment): Use comptypes to convert between
2689         vector types.
2690         * tree.c (build_common_tree_nodes_2): Do not create vector types.
2691         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
2692         vector types.
2693         * tree.h: Remove vector types.
2694         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
2695         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
2696         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
2697         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
2698         * doc/extend.texi (Vector Types): Document how to use the
2699         vector_size attribute to create vectors, rather than mode.
2700
2701         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
2702         * config/i386/emmintrin.h: Likewise.
2703         * config/i386/mmintrin.h: Likewise.
2704         * config/i386/xmmintrin.h: Likewise.
2705         * config/sh/ushmedia.h: Likewise.
2706
2707 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
2708
2709         * config/freebsd-spec.h, config/arc/arc-protos.h,
2710         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
2711         config/arm/linux-gas.h, config/arm/semi.h,
2712         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
2713         config/ia64/freebsd.h, config/mips/7000.md,
2714         config/mips/9000.md, config/ns32k/ns32k-protos.h,
2715         config/sparc/pbd.h: Update copyright.
2716
2717 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
2718
2719         PR target/14577
2720         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
2721
2722 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
2723
2724         * combine.c (combine_simplify_rtx): Remove the "last"
2725         parameter and its documentation.  Adjust recursive calls.
2726         (simplify_logical): Always perform the only simplification
2727         controlled by "last", if the simplified expression is
2728         actually different.
2729         (try_combine): Do not pass the "last" parameter to
2730         combine_simplify_rtx.
2731
2732 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
2733
2734         PR target/14599
2735         * config/mips/mips.md (UNSPEC_GP): New constant.
2736         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
2737         an UNSPEC instead of (reg $gp).
2738         (mips16_gp_pseudo_reg): Change accordingly.
2739         (print_operand): Print $gp directly when handling CONST_GP_P.
2740
2741 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
2742
2743         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
2744         * longlong.h: Make code 68060 clean when compiling for m68060.
2745
2746 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
2747
2748         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
2749         * doc/md.texi: Clarify description of "i" constraint.
2750
2751 2004-03-15  James E Wilson  <wilson@specifixinc.com>
2752
2753         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
2754         Split store into store, fpstore, fpidxstore.  Fix all uses.
2755         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
2756         Likewise.
2757         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
2758         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
2759         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
2760         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
2761         ir_sr70_fstore): Likewise.
2762
2763 2004-03-15  Richard Henderson  <rth@redhat.com>
2764
2765         PR middle-end/14535
2766         * except.c (collect_one_action_chain): Record action for cleanup
2767         outer of exception spec.
2768
2769 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
2770
2771         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
2772         Fix the check for abort and only do the mmap if we can.
2773
2774 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
2775
2776         * config/sparc/sparc.h: Rework comments about the code model
2777         in 64-bit environment and the mode 'Pmode'.
2778         * doc/invoke.texi (SPARC options): Rework description of the
2779         different code models supported in 64-bit environment.
2780
2781 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
2782
2783         * defaults.h (REVERSIBLE_CC_MODE): Define.
2784         * jump.c (reversed_comparison_code_parts): Don't check if
2785         REVERSIBLE_CC_MODE is defined.
2786
2787 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
2788
2789         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
2790         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
2791         hosthooks.h, params.h, ra-colorize.c, web.c,
2792         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
2793         config/avr/avr-protos.h, config/avr/avr.md,
2794         config/fr30/fr30-protos.h, config/fr30/fr30.md,
2795         config/h8300/fixunssfsi.c, config/i386/darwin.h,
2796         config/i386/freebsd.h, config/i386/freebsd64.h,
2797         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
2798         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
2799         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
2800         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
2801         config/pa/pa64-regs.h, config/rs6000/aix41.h,
2802         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
2803         config/sparc/aout.h, config/sparc/freebsd.h,
2804         config/sparc/litecoff.h, config/vax/vax-protos.h,
2805         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
2806         copyright.
2807
2808 2004-03-15  Paul Brook  <paul@codesourcery.com>
2809
2810         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
2811
2812 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2813
2814         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
2815         (pp_c_cv_qualifier): Document.
2816         (pp_c_space_for_pointer_operator): Likewise.
2817         (pp_c_integer_constant): Likewise.
2818         (pp_c_identifier): Likewise.
2819         (pp_c_init_declarator): Don't print function body.
2820
2821 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
2822
2823         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
2824         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
2825         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
2826         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
2827         wording and grammar.
2828
2829 2004-03-14  Roger Sayle  <roger@eyesopen.com>
2830
2831         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
2832         with lang_hooks.foo ().
2833         * builtins.c (expand_builtin_va_arg): Likewise.
2834         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
2835         c_common_type_for_mode, c_common_nodes_and_builtins,
2836         handle_mode_attribute, handle_vector_size_attribute): Likewise.
2837         * c-convert.c (convert): Likewise.
2838         * c-format.c (check_format_types): Likewise.
2839         * c-objc-common.c (c_tree_printer): Likewise.
2840         * c-typeck.c (build_unary_op, build_conditional_expr,
2841         build_binary_op): Likewise.
2842         * calls.c (try_to_integrate, expand_call,
2843         emit_library_call_value_1): Likewise.
2844         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
2845         Likewise.
2846         * cgraphunit.c (record_call_1, cgraph_analyze_function,
2847         cgraph_expand_function): Likewise.
2848         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
2849         * coverage.c (build_fn_info_type, build_ctr_info_type,
2850         build_gcov_info, create_coverage): Likewise.
2851         * dbxout.c (dbxout_init): Likewise.
2852         * diagnostic.c (diagnostic_report_current_function): Likewise.
2853         * dojump.c (do_jump): Likewise.
2854         * dwarf2out.c (dwarf2_name): Likewise.
2855         * except.c (init_eh): Likewise.
2856         * explow.c (expr_size, int_expr_size): Likewise.
2857         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
2858         Likewise.
2859         * expr.c (store_expr, store_constructor, safe_from_p,
2860         expand_expr_real, do_store_flag, try_casesi): Likewise.
2861         * function.c (push_function_context_to, pop_function_context_from,
2862         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
2863         put_var_into_stack, allocate_struct_function, current_function_name):
2864         Likewise.
2865         * integrate.c (copy_decl_for_inlining, expand_inline_function):
2866         Likewise.
2867         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
2868         lhd_print_error_function): Likewise.
2869         * opts.c (handle_option, decode_options): Likewise.
2870         * passes.c (open_dump_file): Likewise.
2871         * print-tree.c (print_node): Likewise.
2872         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
2873         expand_decl_cleanup, emit_case_nodes): Likewise.
2874         * stor-layout.c (variable_size): Likewise.
2875         * toplev.c (announce_function, wrapup_global_declarations,
2876         check_global_declarations, compile_file, default_tree_printer,
2877         process_options, lang_dependent_init, finalize): Likewise.
2878         * tree-dump.c (dequeue_and_dump): Likewise.
2879         * tree-inline.c (remap_decl, remap_block, copy_body_r,
2880         initialize_inlined_parameters, declare_return_variable,
2881         inlinable_function_p, expand_call_inline, optimize_inline_calls,
2882         walk_tree, copy_tree_r): Likewise.
2883         * tree-optimize.c (tree_rest_of_compilation): Likewise.
2884         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
2885         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
2886         variably_modified_type_p, dump_tree_statistics): Likewise.
2887         * varasm.c (assemble_variable, compare_constant, copy_constant,
2888         force_const_mem, compute_reloc_for_constant, output_constant,
2889         output_addressed_constants, initializer_constant_valid_p): Likewise.
2890
2891 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
2892
2893         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
2894
2895 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
2896
2897         * doc/install.texi: Reflect autoconf and automake version for
2898         libffi. Update autoconf version to 2.59.
2899
2900 2004-03-13  Roger Sayle  <roger@eyesopen.com>
2901
2902         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
2903         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
2904         make_range, build_range_check, fold_range_test, unextend,
2905         constant_boolean_node, fold_binary_op_with_conditional_arg,
2906         fold_truthop, fold_mathfn_compare, fold_inf_compare,
2907         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
2908         with lang_hooks.foo ().
2909
2910 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
2911
2912         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
2913
2914 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
2915
2916         * doc/install.texi: Note status of -fnew-ra.
2917
2918 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
2919
2920         PR middle-end/14470
2921         * expr.c (store_expr): Call emit_queue before generating the move
2922         from the temporary to the original target.  Protect the temporary
2923         from emit_queue.
2924
2925 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
2926
2927         PR target/14533
2928         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
2929         other than UNSPEC_GOTOFF.
2930
2931 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
2932
2933         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
2934         to arm_legitimate_index_p.  Update all callers with SET as default
2935         value.
2936         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
2937         range if OUTER is a sign-extend operation on QImode.  Correctly
2938         reject shift operations on sign-extended QImode addresses.
2939         (bad_signed_byte_operand): Delete.
2940         (arm_extendqisi_mem_op): New function.
2941         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
2942         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
2943         constraints.
2944         (CONSTRAINT_LEN): New.
2945         (EXTRA_CONSTRAINT): Delete.  Replace with...
2946         (EXTRA_CONSTRAINT_STR): ... this.
2947         (PREDICATE_CODES): Remove bad_signed_byte_operand.
2948         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
2949         is now always default.
2950         (define_splits for bad sign-extend loads): Delete.
2951         (arm_extendqisi, arm_extendqisi_v5): Likewise.
2952         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
2953         Rework 'U' constraint to 'Uv'.
2954         * arm-protos.h: Remove bad_signed_byte_operand.  Add
2955         arm_extendqisi_mem_op.
2956         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
2957         Add Uq constraint.
2958
2959 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
2960
2961         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
2962         with targetm version.
2963
2964         PR target/14567
2965         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
2966         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
2967         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
2968         Update all users of RS6000_ARG_SIZE.
2969         (function_arg_advance): Count fregno using mode size.
2970         (function_arg): Handle long double split over regs and memory.
2971         (function_arg_partial_nregs): Likewise.
2972         (rs6000_va_arg): Repackage complex args.
2973
2974 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
2975
2976         PR target/14047
2977         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
2978         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
2979         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
2980
2981 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
2982
2983         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
2984         prototype.
2985         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
2986         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
2987
2988 2003-03-12  Andrew Pinski  <apinski@apple.com>
2989
2990         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
2991         Use ret instead of result. Use addr instead of base.
2992
2993 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
2994
2995         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
2996         fixes required by libstdc++ and update installation instructions
2997         for libstdc++.a.
2998
2999 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
3000
3001         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
3002         leading '@' on fastcall symbols before stripping suffix.
3003
3004 2004-03-12  Roger Sayle  <roger@eyesopen.com>
3005
3006         * combine.c (unmentioned_reg_p): New function to check whether an
3007         expression is a "specialization" of another, i.e. that there are
3008         no registers or memory references mentioned in the first that don't
3009         appear in the second.
3010         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
3011         (combine_instructions): Also try combining instructions using the
3012         REG_EQUAL note from a preceding log-linked instruction.
3013
3014 2004-03-12  Roger Sayle  <roger@eyesopen.com>
3015
3016         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
3017
3018 2004-03-12  Matt Austern  <austern@apple.com>
3019
3020         * target.h (struct gcc_target): New target hook, unwind_label.
3021         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
3022         * output.h (default_emit_unwind_label): New function.
3023         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
3024         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
3025         (TARGET_SUPPORTS_HIDDEN): New target macro.
3026         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
3027         that corresponds to this FDE.
3028         (FRAME_BEGIN_LABEL): Allow target to override default label.
3029         (output_call_frame_info): If FDEs are linknonce, then use extra
3030         indirection for FDE encoding, output a label for each FDE, and
3031         output an empty label for each function without an FDE.
3032         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
3033         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
3034         decls with DECL_ONE_ONLY set, if that macro is defined.
3035         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
3036         for a SUPPORTS_ONE_ONLY target.
3037         * config/darwin-protos.h (darwin_unique_section): Declare.
3038         (darwin_asm_named_section): Likewise.
3039         (darwin_section_type_flags): Likewise.
3040         (darwin_non_lazy_pcrel): Likewise.
3041         (darwin_emit_unwind_label): Likewise.
3042         (darwin_make_decl_one_only): Likewise.
3043         * config/darwin.c (machopic_finish): Get rid of tweak that
3044         eliminate stubs for symbols that are defined.
3045         (darwin_encode_section_info): Don't treat weak functions as defined.
3046         (darwin_make_decl_one_only): Define.
3047         (darwin_asm_named_section): Likewise.
3048         (darwin_section_type_flags): Likewise.
3049         (darwin_unique_section): Likewise.
3050         (darwin_emit_unwind_label): Likewise.
3051         (darwin_non_lazy_pcrel): Likewise.
3052         (darwin_asm_output_dwarf_delta): Difference between two labels is
3053         local only if both labels are local.
3054         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
3055         (ASM_MAKE_LABEL_LINKONCE): Likewise.
3056         (TARGET_SUPPORTS_HIDDEN): Likewise.
3057         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
3058         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
3059         (FRAME_BEGIN_LABEL): Likewise.
3060         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
3061         (ASM_DECLARE_FUNCTION_NAME): Likewise.
3062         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
3063         (TARGET_ASM_UNIQUE_SECTION): Define.
3064         (EH_FRAME_SECTION_NAME): Define.
3065         (EH_FRAME_SECTION_ATTR): Likewise.
3066         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
3067         (TARGET_ASM_NAMED_SECTION): Likewise.
3068         (TARGET_SECTION_TYPE_FLAGS): Likewise.
3069         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
3070         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
3071         TARGET_ASM_EMIT_UNWIND_LABEL.
3072
3073 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3074
3075         * builtins.c (expand_builtin_mathfn): Add pow10* to the
3076         existing exp10* case.
3077         (expand_builtin): Likewise.
3078
3079 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
3080
3081         * doc/tm.texi (registers) <Values in Registers>: Add
3082         entry for REGMODE_NATURAL_SIZE.
3083
3084 2004-03-12  Richard Henderson  <rth@redhat.com>
3085
3086         PR target/14547
3087         * target.h (struct gcc_target): Move calls substructure before
3088         booleans.  Add split_complex_arg.
3089         * function.c (assign_parms, split_complex_args): Use it.
3090         * calls.c (expand_call): Likewise.
3091         (split_complex_values): Likewise.  Check for splittable types
3092         before allocating memory.
3093         (split_complex_types): Likewise.
3094         * system.h (SPLIT_COMPLEX_ARGS): Poison.
3095         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
3096         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
3097         * config/alpha/alpha.c (alpha_split_complex_arg): New.
3098         (TARGET_SPLIT_COMPLEX_ARG): New.
3099         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
3100         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
3101         (rs6000_override_options): Zap it for non-AIX.
3102         (rs6000_function_value): Use targetm.calls.split_complex_arg.
3103         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
3104         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
3105         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
3106         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
3107         SPLIT_COMPLEX_ARGS entry.
3108
3109 2004-03-11  Richard Henderson  <rth@redhat.com>
3110
3111         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
3112         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
3113         (alpha_emit_xfloating_arith): Update to match.
3114         (alpha_emit_xfloating_compare): Likewise.
3115         (alpha_emit_xfloating_cvt): Likewise.
3116         (alpha_emit_xfloating_libcall): Take already built symbol,
3117         mark call const.
3118         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
3119         op1 in a register.
3120
3121 2004-03-11  Richard Henderson  <rth@redhat.com>
3122
3123         PR target/14539
3124         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
3125
3126         * simplify-rtx.c (simplify_relational_operation): Fix typo.
3127
3128 2004-03-11  Richard Henderson  <rth@redhat.com>
3129
3130         PR middle-end/14477
3131         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
3132
3133 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
3134
3135         PR target/14262
3136         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
3137         defined, pass small BLKmode values in registers in the low-order part.
3138
3139 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
3140
3141         * combine.c (if_then_else_cond): Check for NULL return value of
3142         simplify_gen_subreg.
3143
3144 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
3145
3146         PR target/14496
3147         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
3148         TARGET_SINGLE_FLOAT.
3149
3150 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
3151
3152         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
3153         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
3154         * config/ia64/ia64.c (ia64_init_libfuncs): New.
3155         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
3156
3157 2004-03-11  Roger Sayle  <roger@eyesopen.com>
3158
3159         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
3160         -((int)X>>C) where C is an integer constant one bit less than the
3161         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
3162         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
3163
3164         * simplify-rtx.c (simplify_unary_operation): Also implement the
3165         above transformations at the RTL level.
3166
3167 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
3168
3169         * real.c (encode_ibm_extended): Do round low word.
3170
3171 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
3172
3173         * config/arm/arm.md (is_xscale): Comment this attribute and move
3174         it a bit further up in the file, closer to related attributes.
3175
3176 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
3177
3178         * config/host-solaris.c (sol_gt_pch_use_address): Add
3179         missing terminating marker to comment.
3180
3181 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
3182
3183         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
3184         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
3185         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
3186         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
3187         move_operand as source predicate in all cases.
3188         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
3189         Test reg_or_0_operand.  Use move_operand as source predicate.
3190         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
3191         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
3192         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
3193         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
3194         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
3195         Use move_operand as source predicate.  Remove 'K' constraint.
3196         (*movqi_internal): Likewise movqi_internal.
3197         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
3198         reg_or_0_operand.  Use move_operand as source predicate.
3199         (*movsf_softfloat): Likewise movsf_internal2.
3200         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
3201         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
3202         (*movdf_softfloat): Likewise movdf_internal2.
3203         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
3204         for DImode if !TARGET_64BIT.
3205         (mips_legitimize_move): Simplify accordingly.
3206
3207 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
3208
3209         PR/14362
3210         * var-tracking.c (struct variable_def): Added field refcount.
3211         (variable_htab_free): Decrease the refcount and delete variable
3212         only if there are no more references.
3213         (unshare_variable): New function.
3214         (vars_copy_1): Increase refcount instead of copying the variable.
3215         (variable_union): Share the variables where possible, unshare
3216         the variables if needed.
3217         (variable_different_p): Return false if var1 and var2 are
3218         the same structure.
3219         (variable_was_changed): Init the refcount of new variable.
3220         (set_frame_base_location): Unshare variable if needed.
3221         (set_variable_part): Init the refcount of new variable.
3222         Unshare the variables if needed.
3223         (delete_variable_part): Unshare the variables if needed.
3224         (emit_notes_for_differences_1): Init the refcount of new variable.
3225         (vt_add_function_parameters): Do not add function parameters to
3226         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
3227         (vt_initialize): Do not add frame_base_decl to IN set of
3228         ENTRY_BLOCK_PTR because it is unused anyway.
3229
3230 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
3231
3232         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
3233         (vars_copy): Likewise.
3234         (variable_union): Likewise.
3235         (set_variable_part): Likewise.
3236         (delete_variable_part): Likewise.
3237
3238 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
3239
3240         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
3241         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
3242         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
3243         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
3244         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
3245         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
3246         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
3247         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
3248         config/stormy16/stormy16.c: Fix comment typos and formatting.
3249
3250 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
3251
3252         * configure: Regenerate, since I forgot to while committing Paolo's
3253         changes.
3254
3255 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
3256
3257         PR ada/14131
3258         Move language detection to the top level.
3259         * configure.ac: Remove code to detect languages,
3260         it now lives exclusively in the top level.
3261         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
3262         top level, renamed to ACX_PROG_GNAT.
3263
3264 2004-03-10  Richard Henderson  <rth@redhat.com>
3265
3266         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
3267         extra arguments.
3268         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
3269         and host_xmake_file fragments.
3270         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
3271         (gt_pch_restore): Similarly for gt_pch_use_address.
3272         (default_gt_pch_get_address): New.
3273         (mmap_gt_pch_get_address): Split out of gt_pch_save.
3274         (default_gt_pch_use_address): Split out of gt_pch_restore.
3275         (mmap_gt_pch_use_address): Likewise.
3276         * hooks.c (hook_voidp_size_t_null): Remove.
3277         (hook_bool_voidp_size_t_false): Remove.
3278         * hooks.h: Likewise.
3279         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
3280         default_ or mmap_ definitions.
3281         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
3282         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
3283         and gt_pch_use_address.
3284         * config/host-linux.c, config/host-solaris.c: New files.
3285         * config/x-linux, config/x-solaris: New files.
3286         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
3287         Update for changed definition.
3288         (darwin_rs6000_gt_pch_use_address): Likewise.
3289         * doc/hostconfig.texi: Update docs.
3290
3291 2004-03-10  Richard Henderson  <rth@redhat.com>
3292
3293         PR c/14517
3294         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
3295         except for pedantic c90 mode.
3296
3297 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
3298
3299         * configure.ac: Bump AC_PREREQ to 2.59.
3300         * configure: Regenerate.
3301
3302 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
3303
3304         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
3305         (exp10_optab, exp2_optab): Define corresponding macros.
3306         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
3307         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
3308         using exp10?f2 and exp2?f2 patterns.
3309         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
3310         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
3311         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
3312         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
3313
3314         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
3315         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
3316         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
3317
3318 2004-03-10  Anthony Green  <green@redhat.com>
3319
3320         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
3321
3322 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
3323
3324         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
3325         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
3326         __LONGDOUBLE128.
3327         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
3328         TARGET_OS_AIX_CPP_BUILTINS.
3329         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
3330         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
3331         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
3332         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
3333         previous change.
3334
3335 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3336
3337         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
3338
3339 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
3340
3341         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
3342         __LONGDOUBLE128 on AIX.
3343
3344 2004-03-10  Andrew Haley  <aph@redhat.com>
3345
3346         PR optimization/14381
3347         * function.c (expand_function_end): Emit a blockage insn before
3348         the epilogue when -fnon-call-exceptions is used.
3349
3350         * except.c (expand_start_all_catch): Make comment more accurate.
3351
3352 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
3353
3354         PR target/14480
3355         * config/rs6000/t-rtems: Add missing file on branch.
3356
3357 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
3358
3359         * dbxout.c (dbxout_symbol_location): Do not output references
3360         to optimized-out constant pool symbols.
3361
3362 2004-03-10  Andreas Schwab  <schwab@suse.de>
3363
3364         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
3365         twon34_r.
3366
3367 2004-03-09  James E Wilson  <wilson@specifixinc.com>
3368
3369         * alias.c (alias_sets_might_conflict_p): New.
3370         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
3371         * common.opt (Wstrict-aliasing=): New.
3372         * flags.h (warn_strict_aliasing): Change type to int.
3373         * opts.c (warn_strict_aliasing): Change type to int.
3374         (common_handle_option): Handle OPT_Wstrict_aliasing_.
3375         * tree.h (alias_sets_might_conflict_p): Declare it.
3376         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
3377
3378 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
3379
3380         PR bootstrap/12371
3381         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
3382         (CALL_USED_REGISTERS): Likewise.
3383         (REG_CLASS_CONTENTS): Likewise.
3384         (REG_ALLOC_ORDER): New.
3385         (REGNO_REG_CLASS): Use regno_reg_class.
3386         * config/m68k/m68k.c: Add regno_reg_class array.
3387
3388 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
3389
3390         * config/ia64/ia64.md (divsi3): Fix algorithm.
3391           (udivsi3): Ditto.
3392           (setf_exp_xf): Remove '*' from name.
3393         * testsuite/gcc.dg/20040309-1.c: New test.
3394
3395 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
3396
3397         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
3398         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
3399         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
3400         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
3401         (sparc_aout_select_rtx_section): Don't check
3402         SUNOS4_SHARED_LIBRARIES.
3403         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
3404
3405 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
3406
3407         PR other/14474
3408         * doc/md.texi (Pattern Ordering, Dependent Patterns)
3409         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
3410         INTERNALS".
3411
3412 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
3413
3414         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
3415         (LIBGCC_SPEC): Update to match.
3416
3417 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
3418
3419         * c-decl.c (last_function_parms, last_function_parm_tags)
3420         (last_function_parm_others, current_function_parms)
3421         (current_function_parm_tags, current_function_parm_others):
3422         Delete.
3423         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
3424         New macros.
3425         (grokdeclarator): For function definitions, save the arg-info
3426         block from the declarator in DECL_ARGUMENTS.
3427         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
3428         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
3429         contains only PARM_DECLs.  Improve diagnostics.
3430         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
3431         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
3432         (store_parm_decls_newstyle): Take the function to operate on,
3433         and an arg-info block, as arguments; don't get anything from
3434         current_function_* globals.
3435         (store_parm_decls_oldstyle): Likewise.
3436         (store_parm_decls): Pass fndecl and its arg-info block down to
3437         store_parm_decls_newstyle/oldstyle.  Send functions with empty
3438         argument lists through store_parm_decls_newstyle to reduce
3439         overhead.
3440         (pushdecl): Comment on the problems with the call to copy_node.
3441         Clear DECL_ARGUMENTS of the old node after copying it, if it
3442         is an arg-info block instead of a chain of decls.
3443         (start_function): Do not manipulate current_function_parm* or
3444         last_function_parm*.
3445
3446 2004-03-09  Roger Sayle  <roger@eyesopen.com>
3447             Andrew Pinski  <pinskia@physics.uc.edu>
3448
3449         * ifcvt.c (noce_try_sign_mask): New function to transform
3450         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
3451         (noce_process_if_block): Call noce_try_sign_mask.
3452
3453 2004-03-09  Andrew Pinski  <apinski@apple.com>
3454
3455         * c-typeck.c (tagged_types_tu_compatible_p):
3456         Fix typo.
3457
3458 2004-03-09  Roger Sayle  <roger@eyesopen.com>
3459
3460         * simplify-rtx.c (simplify_const_relational_operation): New function
3461         renamed from simplify_relational_operation.
3462         (simplify_relational_operation): Change prototype to accept an
3463         additional mode argument.  Call simplify_const_relational_operation.
3464         (simplify_gen_relational): Update simplify_relational_operation call.
3465         (simplify_ternary_operation): Update simplify_relational_operation
3466         subroutine call to use simplify_const_relational_operation instead.
3467
3468         * rtl.h (simplify_const_relational_operation): Prototype here.
3469         (simplify_relational_operation): Add addtional mode argument.
3470
3471         * combine.c (combine_simplify_rtx): Update calls to
3472         simplify_relational_operation.
3473         (simplify_set): Likewise.
3474         (gen_binary): Likewise.
3475         * cse.c (fold_rtx): Likewise.
3476         * dojump.c (compare_from_rtx): Likewise.
3477         (do_compare_rtx_and_jump): Likewise.
3478         * integrate.c (subst_constants): Likewise.
3479         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
3480
3481 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
3482
3483         * config/m32r/m32r.md: Remove all define_peephole's.
3484
3485 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
3486
3487         * config/rs6000/rs6000.md: Remove trailing whitespace.
3488
3489 2004-03-08  Eric Christopher  <echristo@redhat.com>
3490
3491         * Makefile.in (site.exp): Add libiconv variable definition.
3492
3493 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
3494
3495         * configure: Regenerate for config/accross.m4 correction.
3496
3497 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
3498
3499         PR target/14480
3500         * config/rs6000/t-rtems: Add missing file on branch.
3501
3502 2004-03-08  Roger Sayle  <roger@eyesopen.com>
3503
3504         PR middle-end/14289
3505         * c-typeck.c (c_mark_addressable): A register variable should
3506         be considered global if its not automatic, i.e. TREE_PUBLIC,
3507         TREE_STATIC or DECL_EXTERNAL.
3508         * function.c (put_var_into_stack): Call abort when placing a
3509         hard register into the stack, if x_parm_reg_stack_loc is NULL.
3510
3511 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
3512
3513         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
3514         ("*extendqisi2_short_displ"): Likewise.
3515
3516 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
3517
3518         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
3519         (comp_operator): Likewise.
3520         * config/pdp11/pdp11-protos.h: Remove corresponding
3521         prototypes.
3522
3523 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
3524
3525         * expr.c (highest_pow2_factor_for_type): Rename into
3526         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
3527         TYPE_ALIGN when the target is a COMPONENT_REF.
3528         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
3529
3530 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
3531
3532         * config/rs6000/rs6000.c: Formatting fix.
3533         (legitimate_offset_address_p): Correct offset range check.
3534
3535         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
3536         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
3537         and MASK_STRING.
3538
3539 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
3540
3541         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
3542         for little endian.
3543         ("ashrdi3_no_power"): Disable for little endian.
3544         (ashrdi3): Same.
3545
3546 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3547
3548         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
3549         builtins.
3550
3551 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
3552
3553         PR target/14471
3554         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
3555         case, checking for -no-mul-bug-abort option.
3556         * configure, config.in: Regenerate.
3557         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
3558         and -mno-mul-bug-workaround.
3559         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
3560         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
3561         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
3562         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
3563         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
3564         sure mulu.d is not last on cache-line.
3565         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
3566         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
3567         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
3568         (TARGET_SWITCHES): New options -mmul-bug-workaround and
3569         -mno-mul-bug-workaround.
3570         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
3571         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
3572         * config/cris/cris.c (cris_operand_extend_operator): Clarify
3573         relation to MULT in head comment.
3574         (cris_op_str): Abort for MULT.
3575         (cris_print_operand) <case '!'>: New case.
3576
3577 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
3578
3579         PR debug/11983
3580         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
3581         dw_val_class_vec.  Replace use throughout file.
3582         (dw_float_const): Delete.
3583         (dw_vec_const): New.
3584         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
3585         throughout file.
3586         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
3587         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
3588         (size_of_die): Adjust dw_val_class_vec sizing.
3589         (output_die): Output dw_val_class_vec.
3590         (insert_int, extract_int, insert_float): New functions.
3591         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
3592         Handle CONST_VECTOR.
3593         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
3594
3595 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
3596
3597         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
3598         AltiVec abi cannot co-exist.
3599
3600         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
3601
3602 2004-03-07  Jan Hubicka  <jh@suse.cz>
3603
3604         * except.c (emit_to_new_bb_before):  Break fallthru edges.
3605
3606 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
3607
3608         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
3609         ("*lshrsi3"): Also accept an immediate for 68HC12.
3610         ("*ashrsi3_const"): Likewise.
3611         ("*ashrsi3"): Likewise.
3612         ("*ashlsi3_const"): Likewise.
3613         ("*ashlsi3"): Likewise.
3614         ("cmphi_1_hc12"): Compare two hard register by pushing them and
3615         comparing with a pop; don't use a split for that.
3616         ("cmphi split"): Disable compare split for 68HC12.
3617
3618         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
3619         the status operands if they have side effects.
3620
3621 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
3622
3623         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
3624         definition.
3625         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
3626         config/h8300/h8300.h, config/ia64/ia64.h,
3627         config/mcore/mcore.h, config/mmix/mmix.h,
3628         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
3629         config/stormy16/stormy16.h, config/v850/v850.h,
3630         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
3631         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
3632         definition.
3633
3634 2004-03-07  Roger Sayle  <roger@eyesopen.com>
3635
3636         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
3637         <XOR_EXPR>: Fold x ^ x as zero.
3638         <AND_EXPR>: Fold x & x as x.
3639
3640 2004-03-07  Roger Sayle  <roger@eyesopen.com>
3641
3642         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
3643         "foo++ == const" into "++foo == const+incr".
3644
3645 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
3646
3647         * config/mips/mips.c (mips_in_small_data_p): Return false if
3648         TARGET_ABICALLS.
3649
3650 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
3651
3652         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
3653         the stack register.
3654         (expand_prologue): Don't make an interrupt or a trap handler a far
3655         symbol.
3656         (m68hc11_initial_elimination_offset): Likewise.
3657
3658 2004-03-06  Richard Henderson  <rth@redhat.com>
3659
3660         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
3661
3662 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
3663
3664         * config/ns32k/ns32k-protos.h: Add a prototype for
3665         ns32k_notice_update_cc.
3666         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
3667         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
3668         ns32k_notice_update_cc.
3669
3670 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
3671
3672         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
3673         "*load_multiple_si"): Allow only if reload_completed.
3674         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
3675         Likewise.
3676
3677 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
3678
3679         * config/vax/vax-protos.h: Add a prototype for
3680         vax_notice_update_cc.
3681         * config/vax/vax.c (vax_notice_update_cc): New.
3682         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
3683         vax_notice_update_cc.
3684
3685 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
3686
3687         * collect2.c (main): Only export initfunc and finifunc if
3688         LD_INIT_SWITCH not defined.
3689         (scan_prog_file): Only export constructors and destructors if
3690         LD_INIT_SWITCH not defined.  Only export symbols not found in
3691         shared objects.
3692
3693 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3694
3695         * pa.md (icacheflush): Reorder operands to make match_scratch operand
3696         last.
3697         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
3698         from calls to gen_icacheflush.
3699
3700 2004-03-06  Richard Henderson  <rth@redhat.com>
3701
3702         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
3703         (TARGET_LONG_DOUBLE_128): New.
3704         (TARGET_SWITCHES): Add long-double-{128,64}.
3705         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
3706         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
3707         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
3708         (WIDEST_HARDWARE_FP_SIZE): New.
3709         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
3710         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
3711         if TARGET_VAX_FLOAT.
3712         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
3713         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
3714
3715 2004-03-06  Richard Henderson  <rth@redhat.com>
3716
3717         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
3718         botched rtx class conversion.
3719
3720 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3721
3722         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
3723         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
3724
3725         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
3726         macros.
3727         * fold-const.c (fold_mathfn_compare, fold): Likewise.
3728
3729 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
3730
3731         PR target/14343
3732         * config/i386/i386.md (movv2di_internal): Conditionalize on
3733         TARGET_SSE, not TARGET_SSE2.
3734
3735 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
3736
3737         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
3738         duplicated line.
3739
3740 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3741
3742         * builtins.c: Consistently use logN not log* in comments.
3743
3744 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
3745
3746         * rtl.h (mem_expr_equal_p): Function prototype added.
3747         * cfgcleanup.c (merge_memattrs): New function.
3748         (flow_find_cross_jump): Call merge_memattrs for matching insns.
3749         * emit-rtl.c (mem_expr_equal_p): New function.
3750
3751 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
3752
3753         * objc/objc-act.c (synth_module_prologue): Const-qualify
3754         objc_selector type if using the GNU runtime; fix generated
3755         signatures for objc_msg_lookup and objc_msg_lookup_super
3756         to match what GNU ObjC headers provide; reformat and clean up.
3757         (synth_self_and_ucmd_args): Use previously constructed (and
3758         hence possibly const-qualified) objc_selector type.
3759
3760 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
3761
3762         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
3763
3764 2004-03-05  Jason Merrill  <jason@redhat.com>
3765
3766         * tree.h (TYPE_HASH): Use TYPE_UID.
3767         (TREE_HASH): New macro with old definition of TYPE_HASH.
3768         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
3769         (build_array_type, build_function_type): Likewise.
3770         (build_method_type_directly): Likewise.
3771         (build_offset_type, build_complex_type): Likewise.
3772         (type_hash_list, attribute_hash_list): Likewise. Now static.
3773         * except.c: s/TYPE_HASH/TREE_HASH/.
3774
3775 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
3776
3777         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
3778         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
3779         __va_ndx by 2 words when referencing an argument on the stack.
3780         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
3781         words when an arg on the stack is first seen.
3782
3783 2004-03-05  Paul Brook  <paul@codesourcery.com>
3784
3785         * arm.h (ARM_FLAG_VFP): Remove.
3786         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
3787         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
3788
3789 2004-03-05  Paul Brook  <paul@codesourcery.com>
3790
3791         * function.c (assign_parms): Include pretend alignment offset.
3792
3793 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3794
3795         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
3796         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
3797
3798 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
3799
3800         * configure.ac: When passing --enable-languages to subdir
3801         configure when host != build, make sure we don't pass an empty
3802         value.
3803         * configure: Regenerate.
3804
3805 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
3806
3807         PR 13577
3808         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
3809         options.
3810
3811 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
3812
3813         * simplify-rtx.c (simplify_relational_operation): If
3814         flag_wrapv is set, do not move terms between the two
3815         side of a relational operator.
3816
3817 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
3818
3819         * rtlanal.c: Include target.h and output.h
3820         (rtx_cost, address_cost, default_address_cost): Move from...
3821         * cse.c (rtx_cost, address_cost, default_address_cost):
3822         ... this file.
3823         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
3824         * Makefile.in: Adjust dependencies.
3825
3826 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
3827
3828         * cse.c (cse_end_of_basic_block): Make static.
3829         * local-alloc.c (function_invariant_p): Move to
3830         reload1.c.
3831         * loop.c (libcall_other_reg, record_excess_regs):
3832         Make static.
3833         * reload1.c (function_invariant_p): Moved here
3834         from local-alloc.c, made static.
3835         * rtl.h (cse_end_of_basic_block, function_invariant_p,
3836         libcall_other_reg, record_excess_regs): Remove
3837         declarations.
3838
3839 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
3840
3841         * config/m32r/m32r.c (signed_comparison_operator): Add a
3842         missing parenthesis.
3843
3844 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
3845
3846         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
3847         going to call mmap again.  Read the file into the right place.
3848         Give a fatal error if we have to relocate.
3849
3850 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
3851
3852         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
3853         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
3854
3855 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
3856
3857         PR other/14354
3858         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
3859         round the same.  When rounding, clear bits that would cause a
3860         second rounding in pack_d.
3861         (_fpmul_parts): Ditto.  Remove #if 0:d code.
3862
3863 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
3864
3865         PR c++/14425, c++/14426
3866         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
3867         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
3868         Change C++ definitions to accept a 'const int' argument;
3869         the prototypes already do.
3870         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
3871         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
3872         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
3873         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
3874         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
3875         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
3876         end in ..._int; change them to accept an int instead of a char
3877         as the last parameter.
3878
3879 2004-03-04  Phil Edwards  <phil@codesourcery.com>
3880
3881         * genmultilib:  Change '=' to '-' when translating option names
3882         to directory names.
3883
3884 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3885
3886         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
3887         stack slot for temp used for result of BLKmode but in integral mode.
3888
3889 2004-03-04  Jan Hubicka  <jh@suse.cz>
3890
3891         * reload.c (find_reloads): Reorganize if seqeunce to switch.
3892
3893         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
3894         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
3895
3896 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
3897
3898         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
3899         * testsuite/gcc.dg/20040303-1.c: New test.
3900
3901 2004-03-04  Steven Bosscher  <stevenb@suse.de>
3902
3903         * ppro.md: Rewrite as a DFA pipeline description.
3904         * i386.md: Remove all uses of the ppro_uops attribute.
3905         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
3906         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
3907         ix86_sched_reorder, ix86_variable_issue,
3908         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
3909         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
3910         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
3911         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
3912         * athlon.md (athlon_ssecmp_load): Fix comment
3913
3914 2004-03-04  Stuart Hastings  <stuart@apple.com>
3915
3916         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
3917
3918 2004-03-04  Stuart Hastings  <stuart@apple.com>
3919
3920         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
3921         686, tell Darwin assembler to allow prefetch insns, non-empty def
3922         of SUBTARGET_OPTION_TRANSLATE_TABLE.
3923
3924 2004-03-04  DJ Delorie  <dj@redhat.com>
3925
3926         PR optimization/14282
3927         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
3928         between a call and the assignment of its return value.
3929
3930 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
3931
3932         * config/h8300/h8300.c: Put a comment for every function.
3933
3934 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
3935
3936         * config/h8300/h8300.md: Add comments about peephole2's.
3937
3938 2004-03-04  Steven Bosscher  <stevenb@suse.de>
3939
3940         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
3941
3942 2004-03-04  Jan Hubicka  <jh@suse.cz>
3943
3944         * cfgcleanup.c (thread_jump): Update call of cselib_init.
3945         * cselib.c (cselib_record_memory): New static variable.
3946         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
3947         Give up on memories when asked for.
3948         (cselib_init): Accept new argument.
3949         * cselib.h (cselib_init): Update prototype.
3950         * gcse.c (local_cprop_pass): Update call of cselib_init.
3951         * loop.c (load_mems): Update call of cselib_init.
3952         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
3953         * sched-deps.c (sched_analyze): Update call of cselib_init.
3954
3955 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
3956             GP <gp@qnx.com>
3957
3958         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
3959         when compiling PIC.
3960
3961 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
3962
3963         PR/14362
3964         * var-tracking.c (track_expr_p): Do not track variables which
3965         should be ignored for debugging purposes.
3966
3967 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
3968
3969         * real.c (encode_ibm_extended): Don't bother rounding low double.
3970         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
3971         when fmt->pnan < fmt->p.
3972
3973 2004-03-04  Eric Christopher  <echristo@redhat.com>
3974
3975         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
3976         only range of valid arg registers and fixed_regs.
3977
3978 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
3979
3980         PR target/14406
3981         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
3982         (abstf2, abstf2_internal): New define_expand.
3983
3984 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
3985
3986         PR optimization/14235
3987         * expr.c (convert_move): Copy the source to a new pseudo
3988         when converting from a sub-word source to a larger-than-word
3989         register which conflicts with the source.
3990
3991 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
3992
3993         PR 13728
3994         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
3995         parameters with the same name, unless one is a forward decl.
3996         Do not issue a redundant-redeclaration warning for forward
3997         decls of parameters.
3998
3999 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
4000
4001         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
4002         configuration.
4003
4004 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
4005
4006         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
4007
4008 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
4009
4010         * target-def.h (TARGET_OPTF): Delete.
4011         * c-opts.c (TARGET_OPTF): Define.
4012
4013 2004-03-04  Jan Hubicka  <jh@suse.cz>
4014
4015         * cselib.c (cselib_finish): Fix another miss-application of my previous
4016         patch.
4017
4018 2004-03-03  Mike Stump  <mrs@apple.com>
4019
4020         Add framework support for darwin.
4021
4022         * c-incpath.c: Include target.h and machmode.h.
4023         (add_path): Use a consistent style for cpp_dir.  Initialize
4024         p->construct to 0.
4025         (add_cpp_dir_path): New.
4026         (register_include_chains): Add use of extra_includes callback.
4027         (hook_void_int): Add.
4028         (target_c_incpath): Add.
4029         * c-incpath.h (add_cpp_dir_path): New.
4030         (target_c_incpath_s): Add.
4031         (target_c_incpath): Add.
4032         (C_INCPATH_INIT): Add.
4033         * c-opts.c (c_common_missing_argument,
4034         c_common_handle_option): Add -F argument processing.
4035         * c.opt: Add -F argument processing.
4036         * gcc.c (trad_capable_cpp): Add -F argument processing.
4037         * cppfiles.c (find_file_in_dir): Update to use construct
4038         callback.
4039         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
4040         cpp_get_prev): New.
4041         (_cpp_find_file): Use search_path_exhausted.
4042         (make_cpp_dir): Initialize construct to 0.
4043         * cpplib.h (missing_header_cb
4044         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
4045         (cpp_callbacks): Add missing_header
4046         (cpp_dir): Add construct.
4047         * target-def.h: (TARGET_OPTF): New.
4048         * hooks.c (hook_void_int, hook_void_charptr): Add.
4049         * hooks.h (hook_void_int, hook_void_charptr): Add.
4050         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
4051         $(MACHMODE_H) dependencies.
4052         * doc/invoke.texi (Darwin Options): Document -F.
4053         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
4054         (TARGET_OPTF): Add.
4055         * fix-header.c (target_c_incpath): Add.
4056
4057         * config/darwin-c.c: Add c-incpath.h include.
4058         (using_frameworks, find_subframework_file,
4059         find_subframework_header, add_system_framework_path,
4060         frameworks_in_use, num_frameworks, max_frameworks,
4061         add_framework, find_framework, struct framework_header,
4062         framework_header_dirs, framework_construct_pathname,
4063         find_subframework_file, add_system_framework_path,
4064         add_framework_path, framework_defaults,
4065         darwin_register_frameworks, find_subframework_header): Add.
4066         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
4067         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
4068         (CPP_SPEC): Add __APPLE_CC__ support.
4069         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
4070
4071 2004-03-04  Jan Hubicka  <jh@suse.cz>
4072
4073         * cselib.c (cselib_finish): Fix miss-application of my previous
4074         patch.
4075
4076 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
4077
4078         * hooks.c (hook_tree_tree_identity): New.
4079         * hooks.h: Add a prototype for hook_tree_tree_identity.
4080         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
4081         instead of MD_ASM_CLOBBERS.
4082         * system.h (MD_ASM_CLOBBERS): Poison.
4083         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
4084         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
4085         * target.h (gcc_target): Add md_asm_clobbers.
4086         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
4087         (ix86_md_asm_clobbers): New.
4088         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
4089         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
4090         TARGET_MD_ASM_CLOBBERS.
4091
4092 2004-03-03  Stuart Hastings  <stuart@apple.com>
4093
4094         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
4095
4096 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
4097
4098         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
4099
4100         * config/sparc/sparc.h (ASM_FLOAT): Delete.
4101         (ASM_DOUBLE): Likewise.
4102         (ASM_LONGDOUBLE): Likewise.
4103         * config/sparc/pbd.h (ASM_INT_OP): Delete.
4104
4105 2003-03-03  Richard Henderson  <rth@redhat.com>
4106
4107         PR opt/13862
4108         * cselib.c (cselib_record_sets): Don't record multiple sets in
4109         asm insns.
4110
4111 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
4112
4113         * common.opt: Add description of the new -fgcse-after-reload flag.
4114
4115         * flags.h (flag_gcse_after_reload): Declaration of global variable.
4116
4117         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
4118         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
4119         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
4120         get_bb_avail_insn, hash_scan_set_after_reload,
4121         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
4122         gcse_after_reload, get_bb_avail_insn): New functions to implement
4123         gcse-after-reload.
4124         (gcse_after_reload_main): New function, the main entry point to
4125         gcse-after-reload.
4126
4127         * rtl.h (gcse_after_reload_main): Declaration of the new function.
4128
4129         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
4130
4131         * toplev.c (flag_gcse_after_reload): Initialization.
4132
4133         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
4134
4135         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
4136         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
4137         the gcse after reload optimization.
4138
4139         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
4140         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
4141         parameters.
4142
4143         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
4144
4145 2004-03-03  Nicolas Pitre <nico@cam.org>
4146
4147         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
4148         small negative values.
4149
4150 2004-03-03  Jan Hubicka  <jh@suse.cz>
4151
4152         * cselib.c (hash_table):  Remove GTY marker.
4153         (reg_values): Turn into array.
4154         (used_regs): Likewise.
4155         (n_used_regs): New static variable.
4156         (reg_values_old): Kill.
4157         (clear_table): Update uses of arrays.
4158         (cselib_lookup): Likewise.
4159         (cselib_record_set): Likewise.
4160         (cselib_init): Likewise.
4161         (cselib_finish): Likewise.
4162         (cselib_udpate_varray_sizes): Kill.
4163         * cselib.h (cselib_update_varray_sizes): Kill.
4164
4165 2004-03-03  Paul Brook  <paul@codesourcery.com>
4166
4167         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
4168
4169 2004-03-03  Jan Hubicka  <jh@suse.cz>
4170
4171         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
4172         Rename from ...; make statistics transparent.
4173         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
4174         (loc_descriptor): New structure.
4175         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
4176         add_statistics):
4177         New static function.
4178         (ggc_record_overhead, dump_statistics): New global function.
4179         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
4180         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
4181         from ...; accept locations
4182         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
4183         ggc_realloc, ggc_alloc_typed):  ... this one.
4184         from ...; accept locations
4185         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
4186         ggc_alloc_stat): Rename from ... ; pass locations
4187         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
4188         ... this one.
4189         (ggc_alloc_stat): Record overehead.
4190         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
4191         ggc_realloc, ggc_alloc_typed):  Turn to macros
4192         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
4193         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
4194         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
4195         * langhooks.h (lhd_make_node): Declare.
4196         (LANG_HOOKS_MAKE_TYPE): Default to new function,
4197         * langhooks.c (lhd_make_node): New.
4198         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
4199         locations.
4200         (rtx_alloc, swallow_copy_rtx): ... this one.
4201         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
4202         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
4203         * toplpev.c (finalize): Dump stats.
4204         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
4205         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
4206         Rename from ... ; pass locators.
4207         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
4208         build?,  build_decl): Declare.
4209         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
4210         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
4211         Declare.
4212         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
4213         build?,  build_decl): New macros.
4214         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
4215         * statistics.h: New file.
4216
4217 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
4218             Richard Sandiford  <rsandifo@redhat.com>
4219
4220         * config/mips/mips.h (MASK_FIX_SB1): Bump.
4221         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
4222         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
4223         * config/mips/mips.c (mips_output_division): Fill the branch delay
4224         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
4225         TARGET_FIX_R4400.
4226         (mips_output_division): Adjust accordingly.
4227         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
4228         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
4229
4230 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
4231
4232         * alias.c (rtx_equal_for_memref_p): Use predicates
4233         to test rtx classes and new rtx class codes, possibly
4234         splitting conditionals that tested against '<' and 'o'.
4235         * caller-save.c (save_call_clobbered_regs): Likewise.
4236         * combine.c (contains_muldiv, find_split_point, subst,
4237         combine_simplify_rtx, simplify_if_then_else,
4238         simplify_set, simplify_logical, expand_compound_operation,
4239         make_compound_operation, if_then_else_cond, known_cond,
4240         apply_distributive_law, cached_nonzero_bits,
4241         cached_num_sign_bit_copies, simplify_shift_const,
4242         gen_binary, simplify_comparison, update_table_tick,
4243         record_value_for_reg, get_lsat_value_validate): Likewise.
4244         * cse.c (mention_regs, find_best_addr, find_comparison_args,
4245         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
4246         Likewise.
4247         * emit-rtl.c (copy_insn_1): Likewise.
4248         * expr.c (force_operand): Likewise.
4249         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
4250         * flow.c (notice_stack_pointer_modification_1,
4251         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
4252         and_reg_cond, elim_reg_cond): Likewise.
4253         * function.c (update_epilogue_consts): Likewise.
4254         * genattrtab.c (attr_rtx_1): Likewise.
4255         * genopinit.c (gen_insn): Likewise.
4256         * integrate.c (subst_constants): Likewise.
4257         * jump.c (reversed_comparison_code_parts,
4258         reversed_comparison_code, delete_related_insns,
4259         rtx_renumbered_equal_p): Likewise.
4260         * local-alloc.c (block_alloc): Likewise.
4261         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
4262         canonicalize_condition): Likewise.
4263         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
4264         Likewise.
4265         * optabs.c (add_equal_node, expand_binop): Likewise.
4266         * predict.c (estimate_probability): Likewise.
4267         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
4268         * recog.c (validate_replace_rtx_1, comparison_operator,
4269         offsettable_address_p, constrain_operands): Likewise.
4270         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
4271         Likewise.
4272         * regclass.c (scan_one_insn): Likewise.
4273         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
4274         * regrename.c (kill_autoinc_value): Likewise.
4275         * reload.c (find_reusable_reload, find_reloads,
4276         reg_overlap_mentioned_for_reload_p): Likewise.
4277         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
4278         * rtl.c (copy_rtx): Likewise.
4279         * rtl.h (CONSTANT_P, INSN_P): Likewise.
4280         * rtlanal.c (commutative_operand_precedence): Likewise.
4281         * sched-deps.c (conditions_mutex_p): Likewise.
4282         * sched-rgn.c (is_cfg_nonregular): Likewise.
4283         * simplify-rtx.c (simplify_gen_binary,
4284         simplify_gen_relational, simplify_replace_rtx,
4285         simplify_unary_operation, simplify_binary_operation,
4286         simplify_ternary_operation, simplify_rtx): Likewise.
4287         * unroll.c (reg_dead_after_loop): Likewise.
4288         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
4289         print_operand): Likewise.
4290         * config/arc/arc.c (proper_comparison_operator): Likewise.
4291         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
4292         Likewise.
4293         * config/avr/avr.c (_reg_unused_after): Likewise.
4294         * config/frv/frv.c (frv_ifcvt_modify_tests,
4295         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
4296         * config/i386/i386.c (ix86_comparison_operator,
4297         ix86_carry_flag_operator, fcmov_comparison_operator,
4298         arith_or_logical_operator, print_operand,
4299         ix86_expand_binary_operator, ix86_binary_operator_ok):
4300         Likewise.
4301         * config/i386/i386.md: Likewise.
4302         * config/ia64/ia64.c (not_postinc_memory_operand,
4303         ia64_print_operand, update_set_flags, errata_emit_nops):
4304         Likewise.
4305         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
4306         CONSTRAINT_OK_FOR_S): Likewise.
4307         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
4308         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
4309         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
4310         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
4311         Likewise.
4312         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
4313         eqne_comparison_operator, signed_comparison_operator):
4314         Likewise.
4315         * config/mips/mips.c (cmp_op, symbolic_expression_p):
4316         Likewise.
4317         * config/mmix/mmix (mmix_foldable_comparison_operator,
4318         mmix_comparison_operator): Likewise.
4319         * config/pa/pa.c (hppa_legitimize_address): Likewise.
4320         * config/rs6000/rs6000.c (stmw_operation,
4321         branch_comparison_operator, trap_comparison_operator,
4322         ccr_bit): Likewise.
4323         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
4324         * config/s390/s390.c (s390_alc_comparison,
4325         s390_slb_comparison):L Likewise.
4326         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
4327         Likewise.
4328         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
4329         noov_compare_op, noov_compare64_op, v9_regcmp_op,
4330         emit_hard_tfmode_operation, reg_unused_after)
4331         * doc/md.texi, doc/rtl.texi: Likewise.
4332
4333         * ra-debug.c: Add 2004 to list of copyright years.
4334         * unroll.c: Likewise.
4335
4336         * combine.c (simplify_logical): Remove dummy test,
4337         (apply_distributive_law): Fix typo in comment.
4338         GET_CODE (x) == AND so x is a commutative binary op.
4339         * jump.c (delete_related_insns): simplify loop
4340         condition, move testing of RTX codes inside the loop.
4341         (rtx_renumbered_equal_p): do not use RTX_CODE.
4342         * rtl.c (rtx_class): Declare as enum rtx_class.
4343         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
4344         Move to RTX_COMM_COMPARE class.
4345         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
4346         Move to RTX_CONST_OBJ class.
4347         * rtl.h (enum rtx_class): New declaration,
4348         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
4349         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
4350         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
4351         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
4352         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
4353         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
4354         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
4355         OBJECT_P): New macros.
4356         * config/sparc/sparc.c (noov_compare_op): Remove register
4357         from parameter.
4358
4359 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
4360
4361         * target.h: Remove texi jargons in comments.
4362
4363 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4364
4365         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
4366         threshold to 0x4f.
4367
4368         Revert:
4369         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
4370         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
4371         as well.
4372         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
4373         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
4374
4375 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4376
4377         * doc/md.texi (cbranchmode4): New.
4378
4379 2004-03-02  Eric Christopher  <echristo@redhat.com>
4380
4381         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
4382         fix_trunc.
4383         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
4384         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
4385         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
4386         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
4387
4388 2004-03-02  Richard Henderson  <rth@redhat.com>
4389
4390         PR middle-end/11767
4391         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
4392         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
4393         before the compare, if flag_non_call_exceptions.
4394
4395 2004-03-02  Richard Henderson  <rth@redhat.com>
4396
4397         PR middle-end/14327
4398         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
4399         emitting the label, not after.
4400
4401 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
4402
4403         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
4404         (m68hc11_mov_addr_mode): Likewise.
4405         (m68hc11_override_options): Initialize them based on target.
4406         (register_indirect_p): Allow a MEM for indirect addressing modes and
4407         use flags to control what is allowed.
4408         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
4409         supported addressing modes.
4410         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
4411         (go_if_legitimate_address_internal): Likewise.
4412         (m68hc11_indirect_p): Likewise and check the mode.
4413         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
4414
4415 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4416
4417         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
4418         (expand_builtin_setjmp_setup): Use
4419         targetm.builtin_setjmp_frame_value instead of
4420         BUILTIN_SETJMP_FRAME_VALUE.
4421         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
4422         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
4423         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
4424         * target.h (gcc_target): Add builtin_setjmp_frame_value.
4425         * targhooks.c (default_builtin_setjmp_frame_value): New.
4426         * targhooks.h: Add a prototype for
4427         default_builtin_setjmp_frame_value.
4428         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
4429         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
4430
4431 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
4432
4433         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
4434         sequences of moves.
4435         (add peepholes): New peepholes to optimize sequences adding small
4436         constants.
4437         (bset peepholes): New peepholes to transform an OR in a bset form
4438         (bclr peepholes): Likewise for bclr form.
4439         (cmp peepholes): New peepholes to avoid register copies when comparing.
4440
4441 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
4442
4443         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
4444         to separate push from moves.
4445         ("*pushdf_internal"): Likewise.
4446         ("*pushsf_internal"): Likewise.
4447         ("*pushsi_internal"): Likewise.
4448         ("movdi_internal"): Use define_insn_and_split; non push operand.
4449         ("movdf_internal"): Likewise.
4450         ("movsf_internal"): Likewise.
4451         ("movsi_internal"): Likewise.
4452         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
4453         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
4454         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
4455
4456 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
4457
4458         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
4459         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
4460         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
4461         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
4462         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
4463         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
4464         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
4465         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
4466         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
4467         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
4468         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
4469
4470 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
4471
4472         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
4473         (SOFT_XY_REGNUM): Define.
4474         (cmp split): Use the above instead of hard coded numbers.
4475         (8-bit op split): No need to check the mode; allow Q_REG.
4476         (ashift split): Adjust the first operand if it uses the SP and we
4477         are pushing the shifted value.
4478         (plus shift split): Fix when a source is in register D+X.
4479         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
4480
4481 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
4482
4483         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
4484         comparing with Z register.
4485
4486 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4487
4488         * cfgloop.h (struct loop_desc): Removed.
4489         (struct loop): Fields simple, desc and has_desc removed.
4490         (simple_loop_p, count_loop_iterations): Declaration removed.
4491         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
4492         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
4493         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
4494         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
4495         simple_loop_exit_p, variable_initial_value, variable_initial_values,
4496         simple_condition_p, simple_increment, count_strange_loop_iterations,
4497         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
4498         Removed.
4499         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
4500
4501 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4502
4503         * genattrtab.c: Don't handle MATCH_INSN.
4504         * genrecog.c: Likewise.
4505         * gensupport.c: Likewise.
4506         * rtl.def (match_insn): Remove.
4507         * doc/md.texi (match_insn, match_insn2): Remove.
4508
4509 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
4510
4511         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
4512         macro results in memory allocation.
4513
4514 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
4515
4516         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
4517         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
4518         %(fbsd_dynamic_linker),
4519         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
4520         config/i386/freebsd.h
4521         * config/arm/freebsd.h: Ditto.
4522         * config/i386/freebsd.h: Ditto.
4523         * config/i386/freebsd64.h: Ditto.
4524         * config/ia64/freebsd.h: Ditto.
4525         * config/rs6000/sysv4.h: Ditto.
4526         * config/sparc/freebsd.h: Ditto.
4527
4528 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
4529
4530         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
4531
4532 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4533
4534         * rtl.def (define_combine): Remove.
4535
4536 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4537
4538         * config/h8300/h8300.md: Tweak formatting.
4539
4540 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4541
4542         * config/h8300/h8300.md (*cmphi_h8300): Rename to
4543         *cmphi_h8300_znvc.
4544         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
4545
4546 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
4547
4548         PR bootstrap/14356
4549         * gcc.c (process_command): Remove const-qualification from argv.
4550         (main): Likewise.
4551
4552 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4553
4554         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
4555         pushqi1_h8300hs_advanced.  Adjust its caller.
4556         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
4557         Adjust its caller.
4558
4559 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
4560
4561         * Makefile.in (install-libgcc, install-multilib): Pass
4562         mkinstalldirs var to libgcc.mk.
4563
4564 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
4565
4566         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
4567         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
4568
4569 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
4570
4571         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
4572         * config/h8300/h8300.md: Split several peephole2's, each into
4573         two.
4574
4575 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4576
4577         * dominance.c (recount_dominator): Handle postdominators.
4578
4579 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
4580
4581         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
4582         (NUM_SYMBOL_TYPES): Likewise.
4583         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
4584         (mips_unspec_address): Declare.
4585         (mips_gotoff_page, mips_gotoff_global): Delete.
4586         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
4587         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
4588         (mips_symbolic_constant_p, mips_symbolic_address_p)
4589         (mips_symbol_insns): Handle new symbol types.
4590         (general_symbolic_operand): New predicate.
4591         (mips_unspec_address): Make extern.
4592         (mips_gotoff_page, mips_gotoff_global): Delete.
4593         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
4594         Handle new symbol types.
4595         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
4596         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
4597         mips_unspec_address directly.
4598         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
4599         the documentation of -mexplicit-relocs.
4600
4601 2004-03-01  Jeff Law  <law@redhat.com>
4602
4603         * fold-const.c (fold): An equality comparison of a non-weak object
4604         against zero has a known result.  Similarly an equality comparison
4605         of the address of two non-weak, unaliased symbols has a known result.
4606
4607         * ggc-page.c (struct page_entry): New field PREV.
4608         (ggc_alloc): Update PREV field appropriately.
4609         (sweep_pages): Likewise.
4610         (ggc_free): Likewise.  Use PREV field rather than loop to
4611         improve ggc_free performance.
4612
4613 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
4614
4615         * config/mips/mips.c (mips_output_division): Use the division
4616         instruction to fill the delay slot of a zero check.
4617         (mips_idiv_insns): Adjust accordingly.
4618
4619 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
4620
4621         * config.gcc: Create a default tmake_file for linux, and use
4622         it in all but two linux clauses.  Comment those two.
4623
4624 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
4625
4626         * combine.c (try_combine):  Do not refer to is_replaced.
4627         (gen_lowpart_for_combine):  Perverse subregs now have a
4628         more politically correct name.
4629         * cse.c (cse_insn): Likewise.
4630         * jump.c: Fix bogus reference to delete_insn.
4631
4632 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
4633
4634         PR debug/14328
4635         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
4636         constants as signed values.
4637
4638         PR middle-end/13448
4639         * c-tree.h (readonly_warning): Rename to ...
4640         (readonly_error): ... this.
4641         * c-typeck.c (build_unary_op): Adjust accordingly.
4642         (readonly_warning): Rename to ...
4643         (readonly_error): ... this and issue errors, not warnings.
4644         (build_modify_expr): Call readonly_error, not readonly_warning.
4645         (c_expand_asm_operands): Likewise.
4646         * tree-inline.c (optimize_inline_calls): Do not inline functions
4647         after errors have occurred.
4648
4649 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
4650
4651         * configure.ac: Rearrange some threading code for clarity;
4652         add section comment.
4653         * configure: Regenerate.
4654
4655 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4656
4657         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
4658         typos.
4659         * doc/cppopts.texi: Fix a typo.
4660
4661 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4662
4663         * config/i386/i386.md: Fix formatting.
4664
4665 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
4666
4667         * configure.ac: Add some comments delineating sections of code.
4668
4669         * doc/install.texi: Note that libada uses autoconf 2.57 also.
4670
4671         * doc/install.texi: Fix idiot typo in previous commit.
4672
4673         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
4674
4675 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4676
4677         * config/h8300/h8300.md: Add comments about peephole2's.
4678
4679 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4680
4681         * config/h8300/h8300.md: Tweak operand numbers of some
4682         peephole2's.
4683
4684 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4685
4686         * config/h8300/h8300.md: Tweak comments about peephole2's.
4687
4688 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
4689
4690         PR middle-end/14203
4691         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
4692         instead of testing whether DECL_RTL is not NULL.
4693
4694 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
4695
4696         * config/sh/sh.c: Fix formatting.
4697
4698 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
4699
4700         * config/sh/sh.c: Convert to ISO-C.
4701
4702 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
4703
4704         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
4705         my previous patch.
4706
4707         * config/darwin.h (machopic_finish): Output stub even if the
4708         symbol is already defined.
4709
4710 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4711
4712         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
4713
4714 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
4715
4716         * genattr.c (main): Don't define
4717         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
4718         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
4719         (DFA_PIPELINE_INTERFACE): Likewise.
4720         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
4721         (DFA_PIPELINE_INTERFACE): Likewise.
4722
4723 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
4724
4725         * config/mips/mips.md (tstsi, tstdi): Delete.
4726
4727 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
4728
4729         * config/mips/mips.c (override_options): Remove an obsolete
4730         duplicate definition of the "e" constraint.
4731         * config/mips/mips.h: Update a comment accordingly.
4732
4733 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
4734
4735         * config/mips/mips.md: Complete the unfinished R4000
4736         multiply/shift errata workaround.  Improve documentation.
4737         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
4738         has a hilo hazard.
4739         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
4740         (muldi3, muldi3_internal): Likewise.
4741         (muldi3_internal2): Remove, replacing with...
4742         (muldi3_mult3, muldi3_r4000): ...these new patterns.
4743         (mulsidi3): Take the errata into account.
4744         (mulsidi3_32bit): Remove, replacing with...
4745         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
4746         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
4747         (umulsidi3): Take the errata into account.
4748         (umulsidi3_32bit): Remove, replacing with..
4749         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
4750         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
4751         TARGET_FIX_R4000.
4752         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
4753         (smuldi3_highpart, umuldi3_highpart): Likewise.
4754         * doc/invoke.texi: Document the errata workaround.
4755
4756 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
4757
4758         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
4759         * config/mips/mips.h (MASK_FIX_SB1): Bump.
4760         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
4761         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
4762         * config/mips/mips.c (mips_idiv_insns): New function.
4763         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
4764         (mips_output_division): Add a workaround for the R4000 divide/shift
4765         errata.
4766         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
4767         the length of an "idiv" instruction.
4768         * doc/invoke.texi: Document the new switches.
4769
4770 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
4771
4772         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
4773         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
4774
4775 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4776
4777         PR optimization/14229
4778         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
4779
4780 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
4781
4782         * fold-const.c (fold): Strip NOPs that change the signedness
4783         for RSHIFT too.  Expand comment.
4784
4785 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
4786
4787         PR optimization/7871
4788         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
4789         from or to call insns.
4790
4791 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
4792
4793         PR optimization/7871
4794         * flow.c (propagate_one_insn): Interpret calls as setting global
4795         registers, not merely clobbering them.
4796
4797 2004-02-27  Dale Johannesen  <dalej@apple.com>
4798
4799         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
4800         config/darwin-protos.h:  Ditto.
4801         config/darwin.h:  Remove call to it.
4802         * combine.c (distribute_notes): Do not place a REG_DEAD note
4803         when value is both set and used.
4804
4805 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
4806
4807         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
4808         as well.
4809         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
4810         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
4811
4812 2004-02-27  Andrew Pinski  <apinski@apple.com>
4813
4814         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
4815         Speedup common case of the type values being in the same order.
4816
4817 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
4818
4819         * config/ia64/ia64.h (no-inline-float-divide): New option.
4820         * config/ia64/ia64.h (no-inline-int-divide): New option.
4821         * config/ia64/ia64.h (no-inline-sqrt): New option.
4822         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
4823         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
4824         * config/ia64/ia64.c (ia64_override_options): Modify error
4825         checking for inlined division/sqrt.
4826
4827 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
4828
4829         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
4830         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
4831         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
4832         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
4833         copyright.
4834
4835 2004-02-27  Paul Brook  <paul@codesourcery.com>
4836
4837         * function.c (assign_parms): Don't count pretend args for alignment.
4838
4839 2004-02-27  Richard Henderson  <rth@redhat.com>
4840
4841         * passes.c: New file.
4842         * Makefile.in (OBJS-common): Add it.
4843         * diagnostic.c (rtl_dump_and_exit): Move decl ...
4844         * flags.h (rtl_dump_and_exit): ... here.
4845         * output.h (size_directive_output, last_assemble_variable_decl):
4846         Move from toplev.c.
4847         * rtl.h (reg_alloc): Move from toplev.c.
4848         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
4849         struct dump_file_info, enum dump_file_index, dump_file_tbl,
4850         open_dump_file, close_dump_file, rest_of_decl_compilation,
4851         rest_of_type_compilation, rest_of_handle_final,
4852         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
4853         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
4854         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
4855         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
4856         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
4857         rest_of_handle_tracer, rest_of_handle_if_conversion,
4858         rest_of_handle_if_after_combine, rest_of_handle_web,
4859         rest_of_handle_branch_prob,
4860         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
4861         rest_of_handle_addressof, rest_of_handle_sibling_calls,
4862         rest_of_handle_jump_bypass, rest_of_handle_inlining,
4863         rest_of_handle_null_pointer, rest_of_handle_combine,
4864         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
4865         rest_of_handle_gcse, rest_of_handle_loop_optimize,
4866         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
4867         (decode_d_option): Use enable_rtl_dump_file.
4868         (compile_file, finalize, do_compile): Move profile+combine+graph
4869         cleanup to finish_optimization_passes.
4870         * toplev.h (init_optimization_passes, finish_optimization_passes,
4871         enable_rtl_dump_file): Declare.
4872
4873 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
4874             Roger Sayle  <roger@eyesopen.com>
4875
4876         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
4877         operands to build a tree with swapped operands.
4878         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
4879         'unsignedp' predicate to specify the signedness.
4880
4881 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
4882
4883         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
4884         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
4885         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
4886         comment typos and formatting.  Follow spelling conventions.
4887
4888 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
4889
4890         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
4891         fix_truncsfsi2.
4892
4893         * config/rs6000/spe.md: Delete spe_efsctuiz.
4894         Add spe_fixuns_truncsfsi2.
4895         Add spe_fix_truncsfsi2.
4896
4897 2004-02-26  Eric Christopher  <echristo@redhat.com>
4898
4899         * c-lex.c (c_lex_string_translate): New variable.
4900         (lex_string): Use to determine string translation.
4901         * c-pragma.h: Prototype.
4902         * c-parse.in (start_string_translation): New. Set above.
4903         (stop_string_translation): Ditto.
4904         (attribute, attribute_list, asm_def, asm_stmt,
4905         asm_operand): Use above functions.
4906         * cp/parser.c (cp_parser_declaration): Translate strings
4907         unless token is RID_EXTERN. Set c_lex_string_translate
4908         for recursive use.
4909         (cp_parser_asm_definition): Only translate argument strings
4910         to asms.
4911         (cp_parser_asm_operand_list): Ditto.
4912         (cp_parser_attribute_list): Do not translate attribute strings.
4913
4914 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4915
4916         * stmt.c (expand_start_case_dummy): Remove.
4917         * tree.h: Remove the corresponding prototype.
4918
4919 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4920
4921         * builtins.c (apply_args_register_offset): Remove.
4922         * tree.h: Remove the corresponding prototype.
4923
4924 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4925
4926         * stor-layout.c (is_pending_size): Remove.
4927         * tree.h: Remove the corresponding prototype.
4928
4929 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4930
4931         * recog.c (validate_replace_src): Remove.
4932         * recog.h: Remove the corresponding prototype.
4933
4934 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4935
4936         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
4937         MAYBE_REG_PARM_STACK_SPACE.
4938         * function.c: Likewise.
4939         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
4940         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
4941         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
4942         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
4943
4944 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4945
4946         * c-decl.c (c_expand_deferred_function): Remove.
4947         * c-tree.h: Remove the corresponding prototype.
4948
4949 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4950
4951         * postreload.c (reload_cse_move2add): Generate just a PLUS
4952         instead of an entire SET.
4953
4954 2004-02-26  Jan Hubicka  <jh@suse.cz>
4955
4956         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
4957         /pentium4m.
4958         * i386.c (override_options): Add support for new CPUs.
4959         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
4960         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
4961         constants.
4962         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
4963
4964 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
4965
4966         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
4967
4968 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
4969
4970         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
4971         (sparc_emit_fixunsdi): New prototype.
4972         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
4973         (sparc_emit_fixunsdi): New function.
4974         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
4975         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
4976         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
4977         to sparc_emit_floatunsdi.
4978         (fixuns_truncsfdi2): New expander.
4979         (fixuns_truncdfdi2): Likewise.
4980
4981 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
4982
4983         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
4984         unless HAVE_cc0.
4985
4986 2004-02-25  Richard Henderson  <rth@redhat.com>
4987
4988         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
4989         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
4990         use (op0-op1) == 0 if op0 is a pointer.
4991         * config/alpha/alpha.md (cmpdi): Use some_operand.
4992         (three comparison combine splits): Remove.
4993
4994 2004-02-25  Richard Henderson  <rth@redhat.com>
4995
4996         PR c/12794
4997         * c-common.c (handle_alias_attribute): Reject the attribute if
4998         current_function_decl is set.
4999
5000 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
5001
5002         * config.gcc: Add comment describing extra_gcc_objs.
5003         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
5004         * configure.ac (extra_gcc_objs): New substitution variable.
5005         (host_extra_gcc_objs): Don't substitute.
5006         * configure: Regenerate.
5007         * Makefile.in: Use extra_gcc_objs.
5008
5009 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
5010
5011         * doc/contrib.texi: Add an entry for myself.
5012
5013 2004-02-25  Jan Hubicka  <jh@suse.cz>
5014
5015         * basic-block.h (make_eh_edge, break_superblocks): Declare.
5016         * cfgbuild.c (make_eh_edge):  Make global.
5017         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
5018         * except.c (build_post_landing_pads, connect_post_landing_pads,
5019         dw2_build_landing_pads, sjlj_emit_function_enter,
5020         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
5021         sjlj_build_landing_pads): Update CFG.
5022         (emit_to_new_bb_before): New function.
5023         (finish_eh_generation): Do not rebuild the CFG.
5024
5025 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5026
5027         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
5028         target_cpu_default defines.
5029         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
5030         * pa.h (TARGET_DEFAULT): Likewise.
5031
5032 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
5033
5034         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
5035         comparisons with regard to signedness.
5036
5037 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
5038
5039         * arm.c (thumb_legitimize_address): New function.
5040         * arm-protos.h: Prototype it.
5041         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
5042         (LEGITIMIZE_ADDRESS): Use it.
5043
5044 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
5045
5046         * reload1.c (reload): Only spill eliminable register with multiple
5047         adjacent elimination alternatives if all alternatives fail.
5048
5049 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
5050
5051         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
5052         is -4095...+4095 inclusive.
5053
5054 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
5055
5056         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
5057         the bootstrap failure with Sun CC 5.4 and 5.5.
5058
5059 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
5060
5061         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
5062         which modifies NEWREG.
5063         (cse_condition_code_reg): Update the mode of CC_REG in
5064         CC_SRC_INSN on our own.
5065
5066 2004-02-24  Michael Matz  <matz@suse.de>
5067
5068         * config/i386/i386.c (ix86_comp_type_attributes): Check for
5069         regparm attributes.
5070
5071 2004-02-24  Richard Henderson  <rth@redhat.com>
5072
5073         * toplev.c (dump_file_tbl): Rename from dump_file.
5074         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
5075         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
5076         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
5077         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
5078         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
5079         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
5080         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
5081         s/rtl_dump_file/dump_file/g.
5082
5083 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
5084
5085         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
5086         (spe_fixuns_truncsfsi2): Delete.
5087
5088         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
5089         (fixuns_truncsfsi2): Delete.
5090
5091 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
5092
5093         PR/14240
5094         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
5095
5096 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
5097
5098         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
5099
5100 2004-02-24  Jason Merrill  <jason@redhat.com>
5101
5102         * tree.c (check_qualified_type): New fn.
5103         (get_qualified_type): Use it.  If type already has the desired
5104         quals, just return it.
5105         * tree.h: Declare it.
5106
5107 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
5108
5109         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
5110         TARGET_SCHED_FINISH_GLOBAL): New macros.
5111
5112         * target.h (md_init_global, md_finish_global): Function
5113         declarations corresponding to new target macros.
5114
5115         * haifa-sched.c (sched_init, sched_finish): Allow target to
5116         call the new schedular hooks.
5117
5118         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
5119         call to update_life_info.
5120
5121         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
5122         flag_schedule_insns for SH4.
5123
5124         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
5125         find_set_regmode_weight, find_insn_regmode_weight,
5126         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
5127         sh_variable_issue, high_pressure, ready_reorder,
5128         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
5129         functions used to throttle the insn movement in first
5130         scheduling pass for SH.
5131
5132         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
5133         TARGET_SCHED_FINISH_GLOBAL.
5134
5135 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
5136
5137         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
5138         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
5139         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
5140         symbols in sections named by the user.
5141         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
5142         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
5143         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
5144         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
5145         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
5146         the above.
5147         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
5148         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
5149         one more pseudo to further improve code generation.
5150         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
5151         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
5152         inside UNSPEC.
5153         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
5154         * config/frv/frv.c (frv_legitimate_address_p): Added
5155         allow_double_reg_p argument.  Adjust all callers.  Use it to
5156         decide whether to enable double-register indirect addressing.
5157         (frv_funcdesc_alias_set): Remove.
5158         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
5159         register.  Emit movdi_ldd.
5160         (ldd_address_operand): New.
5161         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
5162         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
5163         (PREDICATE_CODES): Add ldd_address_operand.
5164         * config/frv/frv.md (movdi_ldd): New.
5165         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
5166         intermediate computations if possible.
5167         (symGOTOFF2reg_i): Fix harmless typo.
5168         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
5169         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
5170         relocated p_vaddr to vaddr type.
5171         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
5172         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
5173         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
5174         MEM, or use a funcdesc alias set.  Use regular move instead of
5175         ldd.
5176         (dbl_memory_one_insn_operand): Recognize function descriptors by
5177         type or by alias set, and don't split them.
5178         * config/frv/frv.md (call, call_value): Never use call_internal
5179         for fdpic.
5180         (call_internal, call_value_internal): Never match for FDPIC.
5181         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
5182         call_value_fdpicsi): Require FDPIC.
5183         (ldd): Removed.
5184         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
5185         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
5186         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
5187         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
5188         FDPIC.  Compute data base address.
5189         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
5190         before the other self-specs are processed.
5191         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
5192         Build with -fPIC.
5193         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
5194         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
5195         inhibit_libc is defined.
5196         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
5197         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
5198         __FRV_FDPIC__.
5199         (__RELOC_POINTER): Define.
5200         (_Unwind_IteratePhdrCallback): Use it.
5201         * config/frv/frv.h (Twrite): Define.
5202         (TRANSFER_FROM_TRAMPOLINE): Use it.
5203         * config/frv/linux.h (INVOKE__main): Undefine.
5204         (Twrite): Override.
5205         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
5206         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
5207         (-mlibrary-pic): Emphasize that this option generates EABI code.
5208         (-mcpu): Add fr550.
5209         (-mpack): Remove.
5210         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
5211         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
5212         and CONSTs in FDPIC mode.
5213         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
5214         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
5215         * config/frv/frv.c (move_source_operand): Don't accept symbolic
5216         constants.
5217         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
5218         rather than 'i' constraint for the 2-instruction alternative.
5219         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
5220         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
5221         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
5222         EXTRA_CONSTRAINT_FOR_Y.
5223         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
5224         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
5225         (addsi3): Change 'Y' constraint to 'Q'.
5226         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
5227         * reload.c (CONST_POOL_OK_P): New macro.
5228         (find_reloads): Use it to decide whether a constant can be forced
5229         into memory.
5230         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
5231         constant satisfies got12_operand.
5232         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
5233         (frv_legitimate_address_p): Check for valid unspec offsets using
5234         got12_operand rather than frv_legitimate_fdpic_operand_p.
5235         (frv_legitimate_fdpic_operand_p): Delete.
5236         (frv_emit_movsi): Abort if we try to use the FDPIC register during
5237         or after reload.
5238         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
5239         TARGET_FDPIC.
5240         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
5241         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
5242         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
5243         (frv_fdpic_fptr_operand): Don't declare here.
5244         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
5245         rather than fdpic_got12_operand.
5246         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
5247         got12_operand and const_unspec_operand.
5248         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
5249         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
5250         (symbolic_operand): Remove.
5251         (const_unspec_operand): New predicate.
5252         * config/frv/frv.md (*movsi_got): Use got12_operand.
5253         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
5254         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
5255         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
5256         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
5257         * config/frv/frv.c (frv_unspec): New structure.
5258         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
5259         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
5260         validate CONST indices.  Use frv_output_const_unspec to print them.
5261         (frv_print_operand): Update call to unspec_got_name.  Use
5262         frv_output_const_unspec to print constant unspecs.
5263         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
5264         Reject UNSPECs otherwise.
5265         (unspec_got_name): Take the relocation number as argument, not an
5266         rtx containing it.
5267         (frv_output_addr_const_extra): Remove, replacing with...
5268         (frv_output_const_unspec): ...this new function.
5269         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
5270         (gpr_or_int12_operand): Use fdpic_got12_operand.
5271         (dbl_memory_one_insn_operand): Likewise.
5272         (fdpic_got12_operand): Use frv_const_unspec_p.
5273         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
5274         are already legitimate.  Use frv_small_data_reloc_p when deciding
5275         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
5276         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
5277         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
5278         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
5279         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
5280         label, for real this time.
5281         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
5282         representation of visibility.
5283         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
5284         such.
5285         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
5286         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
5287         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
5288         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
5289         it was explicitly disabled.
5290         (frv_stack_info): There is no need to save the link register in every
5291         frame unless TARGET_LINKED_FP is true.
5292         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
5293         frame pointer if the stack pointer might change value.
5294         (frv_return_addr_rtx): Check and process "count" argument.
5295         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
5296         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
5297         (frv_find_base_term): Declare.
5298         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
5299         (FIND_BASE_TERM): Define.
5300         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
5301         small_data_register_operand, small_data_symbolic_operand.  Add
5302         symbolic_operand.
5303         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
5304         (frv_print_operand_memory_reference, output_move_single): Remove
5305         special handling for unlegitimized sdata addresses.
5306         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
5307         and symbolic addresses.
5308         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
5309         (frv_find_base_term): New function.
5310         (int_2word_operand): Check specifically for symbolic address constants.
5311         (pic_register_operand, pic_symbolic_operand): Delete.
5312         (small_data_register_operand, small_data_symbolic_operand): Delete.
5313         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
5314         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
5315         (move_source_operand): Only accept CONSTs if they're a two-insn
5316         symbolic constant.
5317         (fdpic_got12_operand): Don't require TARGET_FDPIC.
5318         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
5319         using gen_symGOTOFF2reg*.
5320         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
5321         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
5322         themselves a cost of 3 insns.
5323         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
5324         Change predicate to symbolic_operand.
5325         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
5326         (*movsi_lda_sdata): Delete.
5327         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
5328         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
5329         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
5330         frv-*-*linux*.
5331         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
5332         label.
5333         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
5334         -multilib-library-pic.
5335         (LINK_SPEC): Add -z text for -mfdpic.
5336         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
5337         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
5338         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
5339         Override.
5340         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
5341         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
5342         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
5343         crtstuff-generated files.
5344         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
5345         * config.gcc: Add frv-*-*linux*.
5346         * config/frv/linux.h, config/frv/t-linux: New.
5347         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
5348         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
5349         when -mfdpic even if a linker script is explicitly listed.
5350         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
5351         * config/frv/frv.c (frv_override_options): Clear asm_out
5352         unaligned_op for SImode on FDPIC.
5353         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
5354         argument passed to decl_readonly_section.
5355         (frv_assemble_integer): Revert 2003-09-30's change, but make the
5356         whole block run with FDPIC even with -fno-PIC.
5357         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
5358         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
5359         symbol or label plus offset to memory.
5360         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
5361         GOTOFF and GPREL for LABEL_REF.
5362         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
5363         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
5364         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
5365         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
5366         * doc/invoke.texi: Document them.
5367         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
5368         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
5369         (frv_splittable_got_operand): Removed.
5370         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
5371         LO_SUM.  Add comments.
5372         (frv_override_options): Moved enabling of FDPIC to
5373         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
5374         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
5375         (frv_legitimize_fdpic_address): Don't duplicate logic in
5376         frv_emit_movsi.
5377         (frv_gen_GPsym2reg): New.
5378         (unspec_got_name): Added gprel.
5379         (frv_expand_fdpic_call): Add support for inlining PLTs.
5380         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
5381         (gpr_or_int12_operand): Added GPREL12.
5382         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
5383         (small_data_symbolic_operand): Fail if FDPIC.
5384         (fdpic_splittable_got_operand): Removed.
5385         (fdpic_got12_operand): Added GPREL12.
5386         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
5387         when appropriate.  Fix sdata GOTOFF.
5388         (frv_legitimate_constant_p): Require legitimate PIC operand for
5389         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
5390         (frv_assemble_integer): Move FDPIC funcdesc handling out of
5391         flag_pic case.
5392         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
5393         frv_assemble_integer fails.
5394         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
5395         (SUBTARGET_DRIVER_SELF_SPECS): New.
5396         (ASM_SPEC): Don't pass -mno-fdpic.
5397         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
5398         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
5399         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
5400         -multilib-library-pic.
5401         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
5402         condexec_si_media_operator, condexec_sf_add_operator and
5403         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
5404         and condexec_sf_unary_operator.
5405         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
5406         New.
5407         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
5408         movsi_internal.  Give them internal names.  movsi_got has type
5409         int.
5410         (fdpic got splitters): Remove.
5411         (symGPREL2reg, symGPREL2reg_hilo): New.
5412         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
5413         to -mlibrary-pic.  Map -multilib-library-pic to it.
5414         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
5415         Document.
5416         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
5417         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
5418         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
5419         (frv_cannot_force_const_mem): New function.
5420         (const_small_data_p, plus_small_data_p): Update comments on sdata
5421         on FDPIC.
5422         (frv_override_options): Set flag_pie for FDPIC too.
5423         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
5424         call-saved registers on FDPIC.
5425         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
5426         don't force LR to be preserved.
5427         (frv_expand_prologue): Likewise.
5428         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
5429         (frv_frame_pointer_required): Don't force it just because the
5430         FDPIC register is used.
5431         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
5432         operand only if !condexec_p.
5433         (frv_legitimize_address): Return the FDPIC-legitimized address.
5434         Don't match small data here on FDPIC.
5435         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
5436         symbols.  Use TRUE/FALSE instead of 1/0.
5437         (frv_local_funcdesc_p): New.
5438         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
5439         immediates when possible.
5440         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
5441         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
5442         an UNSPEC_GOT.
5443         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
5444         12-bit immediates when possible.
5445         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
5446         are not legitimate pic operands.
5447         (frv_in_small_data_p): Re-enable for FDPIC.
5448         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
5449         (FRV_GLOBAL_P): Removed.
5450         * config/frv/frv.md: Add modes to CONSTs.
5451         (movsi_got): New.
5452         (movsi_lo_sum_got): Use separate matches instead of match_dup.
5453         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
5454         (fdpic splittable operations): Match on flag_pic != 1.
5455         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
5456         * config/frv/frv.c (frv_asm_out_constructor,
5457         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
5458         bytes, not bits.
5459         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
5460         * config/frv/frv.c (frv_assemble_integer): Reject complex
5461         expressions referencing function SYMBOL_REFs.
5462         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
5463         (move_source_operand): Reject CONSTs that reference function
5464         SYMBOL_REFs on FDPIC.
5465         (frv_emit_movsi): If we get such a CONST, break it up.
5466         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
5467         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
5468         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
5469         MEM.
5470         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
5471         (frv_trampoline_size): Increase for FDPIC.
5472         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
5473         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
5474         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
5475         Disable use of GOTOFF for now.
5476         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
5477         Disable use of small data in FDPIC for now.
5478         (frv_asm_output_mi_thunk): Implement for FDPIC.
5479         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
5480         * config/frv/frv.c (frv_asm_out_constructor): Use
5481         frv_assemble_integer for FDPIC pointers.
5482         (frv_asm_out_destructor): Likewise.
5483         * config/frv/frv.md (ldd): Fix order of operands.  Use
5484         address_operand for input.
5485         2003-09-18  DJ Delorie  <dj@redhat.com>
5486         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
5487         (unspec_got_name): Correct typo.
5488         (frv_emit_movsi): Pre-expand splittable GOTs.
5489         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
5490         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
5491         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
5492         * config/frv/t-frv: Add -mfdpic multilibs.
5493         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
5494         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
5495         * config/frv/frv.c (frv_override_options): -mfdpic assumes
5496         flag_pic, default to 32-bit pics, require DWORD ops.
5497         (frv_override_options): Add W and Z constraints.
5498         (frv_expand_prologue): No pic prologue for -mfdpic.
5499         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
5500         (frv_print_operand_memory_reference): Handle GOT constants.
5501         (frv_legitimate_address_p): Allow GOT constants.
5502         (frv_legitimize_address): Handle GOT addresses too.
5503         (frv_legitimate_fdpic_operand_p): New.
5504         (frv_legitimize_fdpic_address): New.
5505         (unspec_got_name): New.
5506         (frv_output_addr_const_extra): New.
5507         (frv_expand_fdpic_call): New.
5508         (frv_fdpic_fptr_operand): New.
5509         (gpr_or_int12_operand): Handle GOT operands.
5510         (int_2word_operand): Handle GOT operands.
5511         (fdpic_operand): New.
5512         (fdpic_splittable_got_operand): New.
5513         (fdpic_got12_operand): New.
5514         (frv_emit_movsi): Handle GOT operands.
5515         (frv_assemble_integer): -mfdpic doesn't use rofixups.
5516         (frv_print_operand): Support 'g' code for GOT operands.
5517         * config/frv/frv-protos.h: Add prototypes as needed.
5518         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
5519         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
5520         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
5521         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
5522         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
5523         R_FRV_GOTOFFLO): New.
5524         (movsi_high_got, movsi_lo_sum_got): New.
5525         (*movsi_pic): Don't use this splitter for -mfdpic.
5526         (addsi3): Allow GOT references also.
5527         (call, call_value): Handle -mfdpic separately.
5528         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
5529         call_value_fdpicsi): New.
5530         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
5531         symGOTOFF2reg_i): New.
5532         * config/frv/frv.h (MASK_FDPIC): New.
5533         (TARGET_FDPIC): New.
5534         (TARGET_SWITCHES): Add -mfdpic.
5535         (FDPIC_FPTR_REGNO): New.
5536         (FDPIC_REGNO): New.
5537         (OUR_FDPIC_REG): New.
5538         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
5539         FDPIC_CALL_REGS.
5540         (REG_CLASS_NAMES): Likewise.
5541         (REG_CLASS_CONTENTS): Likewise.
5542         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
5543         (EXTRA_CONSTRAINT): Add it here.
5544         (FRV_GLOBAL_P): New.
5545         (OUTPUT_ADDR_CONST_EXTRA): New.
5546
5547 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
5548
5549         * config/sparc/sparc.h: Remove commented-out definitions of
5550         TARGET_EDOM and GEN_ERRNO_RTX.
5551
5552 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
5553
5554         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
5555         df_analyse with df_analyze.
5556
5557 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
5558
5559         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
5560         beginning of block.
5561
5562 2004-02-23  James E Wilson  <wilson@specifixinc.com>
5563
5564         * calls.c (precompute_arguments): Update comment.
5565
5566 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
5567
5568         * et-forest.c: Replace et_occurences with et_occurrences.
5569
5570 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
5571
5572         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
5573         with iv_analyze.
5574
5575 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
5576
5577         * config/i386/i386.c: Rename pni to sse3.
5578         * config/i386/i386.h: Likewise.
5579         * config/i386/i386.md: Likewise.
5580         * config/i386/pmmintrin.h: Likewise.
5581         * doc/extend.texi: Likewise.
5582         * doc/invoke.texi: Likewise.
5583
5584 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
5585             Kazu Hirata  <kazu@cs.umass.edu>
5586
5587         Remove -fwritable-strings.
5588         * c-common.c (fix_string_type): Don't check
5589         flag_writable_strings.
5590         (fix_string_type): Likewise.
5591         * c-opts.c (set_std_c89): Don't initialize
5592         flag_writable_strings.
5593         (set_std_c99): Likewise.
5594         * common.opt (fwritable-strings): Remove.
5595         * flags.h: Remove the external declaration of
5596         flag_writable_strings.
5597         * opts.c (common_handle_option) <OPT_fwritable_strings>:
5598         Remove.
5599         * toplev.c (flag_writable_strings): Remove.
5600         (f_options): Remove an entry for writable-strings.
5601         * varasm.c (const_hash_1) <STRING_CST>: Don't check
5602         flag_writable_strings.
5603         (compare_constant) <STRING_CST>: Likewise.
5604         (build_constant_desc): Likewise.
5605         * config/darwin.c (machopic_select_section): Likewise.
5606         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
5607         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
5608         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
5609         * config/mips/mips.c (mips_select_section): Likewise.
5610         (mips_encode_section_info): Likewise.
5611         * config/pa/pa.c (pa_select_section): Likewise.
5612         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
5613         * config/v850/v850.c (v850_select_section): Likewise.
5614         * doc/invoke.texi (-fwritable-strings): Remove.
5615         (-fno-const-strings): Don't mention -fwritable-strings.
5616         * doc/trouble.texi: Don't mention -fwritable-strings.
5617
5618 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
5619
5620         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
5621
5622 2004-02-23  Dale Johannesen  <dalej@apple.com>
5623
5624         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
5625         (movdf_hardfloat64):  Ditto.
5626         (movdf_softfloat64):  Ditto.
5627
5628 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
5629         * config/rs6000/rs6000.c (function_arg): call to
5630         rs6000_mixed_function_arg for DFmode moved to allow
5631         normal DFmode incoming register assignment.
5632
5633 2004-02-23  Dale Johannesen  <dalej@apple.com>
5634
5635         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
5636         (movdf_hardfloat64):  Ditto.
5637
5638 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
5639
5640         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
5641         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
5642         copyright.
5643
5644 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
5645
5646         PR c/14156
5647         * c-typeck.c (c_expand_return): Change check for VAR_DECL
5648         to use DECL_P instead.
5649
5650         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
5651         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
5652
5653 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
5654
5655         * Makefile.in (opts.o): Depend on target.h.
5656         * opts.c (decode_options): Use targetm.default_short_enums
5657         instead of DEFAULT_SHORT_ENUMS.
5658         * system.h (DEFAULT_SHORT_ENUMS): Poison.
5659         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
5660         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
5661         * target.h (gcc_target): Add default_short_enums.
5662         * config/cris/cris.h: Remove a comment about
5663         DEFAULT_SHORT_ENUMS.
5664         * config/ip2k/ip2k.h: Likewise.
5665         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
5666         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
5667
5668 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
5669             Falk Hueffner  <falk@debian.org>
5670
5671         PR c/14188
5672         * builtins.c (expand_builtin_va_arg): Emit an informative message
5673         if a trap is generated.
5674         * c-typeck.c (build_function_call): Likewise.
5675
5676 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
5677
5678         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
5679         fopen.
5680         * libgcov.c: Include sys/stat.h.
5681         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
5682         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
5683         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
5684         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
5685
5686 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
5687
5688         * reorg.c: Remove comments about dead ports.
5689
5690 2004-02-22  Christopher Faylor  <cgf@redhat.com>
5691
5692         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
5693         extra host object file when targetting cygwin rather than generic
5694         object files.
5695
5696 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
5697
5698         Merge from tree-ssa:
5699         2003-11-20  Richard Henderson  <rth@redhat.com>
5700
5701                 * tree-inline.c (insert_decl_map): New.
5702                 (remap_decl, remap_type, remap_block, copy_body_r,
5703                 initialize_inlined_parameters, declare_return_variable,
5704                 remap_save_expr): Use it.
5705
5706         * function.c (copy_body_r): Add mapping from id->ret_label to
5707         id->ret_label.  Revert test for ret_label.
5708
5709 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
5710
5711         * genoutput.c (process_template): Strip trailing whitespace in @
5712         templates and issue a warning if there was any.
5713
5714 2004-02-21  Christopher Faylor  <cgf@redhat.com>
5715
5716         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
5717         object file when targetting cygwin.
5718         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
5719         overridden by top-level Makefile.
5720
5721 2004-02-21  Roger Sayle  <roger@eyesopen.com>
5722
5723         * config/i386/i386.c (standard_80387_constant_p): Also prefer
5724         the x87's load constant instructions when optimizing for size.
5725
5726 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
5727
5728         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
5729         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
5730         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
5731         * fold-const.c: Likewise.
5732         * simplify-rtx.c: Likewise.
5733
5734 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
5735
5736         * combine.c (can_combine_p): Don't ignore SETs marked with
5737         REG_EH_REGION notes.
5738         (try_combine): When attemting to fix unrecognized insns, don't
5739         split a PARALLEL that contains the original i2.
5740
5741 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
5742
5743         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
5744         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
5745         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
5746         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
5747         (vector, pixel, bool): #define to __vector, __pixel and __bool.
5748         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
5749         portion of header.
5750         (__altivec_link_error_invalid_argument): Remove prototype; will use
5751         __builtin_altivec_compiletime_error("vec_*") instead.
5752         (vec_*): Fix/complete set of available operation overloads given the
5753         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
5754         cv-correctness of pointer arguments; in C, always check for correct
5755         argument types before macro expansion.
5756         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
5757         defining Darwin/PowerPC-specific '-f[no-]altivec' and
5758         '-W[no-]altivec-long-deprecated' switches.
5759         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
5760         '__vector', '__pixel' and '__bool' macros using
5761         '__attribute__((altivec(...)))' types.
5762         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
5763         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
5764         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
5765         New type nodes.
5766         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
5767         handling '-W[no-]altivec-long-deprecated'.
5768         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
5769         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
5770         altivec_expand_dst_builtin): Remove casts from integer literals.
5771         (altivec_expand_builtin): Likewise; handle expansion of new
5772         '__builtin_altivec_compiletime_error' function.
5773         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
5774         types, and make them distinct from other vector types; register
5775         '__builtin_altivec_compiletime_error' function.
5776         (print_operand): For 'P', print a full target register name instead of
5777         merely its number.
5778         (rs6000_attribute_table): Add "altivec" attribute.
5779         (rs6000_handle_altivec_attribute): New function.
5780         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
5781         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
5782         maps to).
5783         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
5784         declare.
5785         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
5786
5787 2004-02-20  James E Wilson  <wilson@specifixinc.com>
5788
5789         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
5790         check.
5791         (shift_mix4left+2): Delete redundant pattern.
5792
5793 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
5794
5795         * alias.c (OUTGOING_REGNO): Don't define the default.
5796         * builtins.c (OUTGOING_REGNO): Likewise.
5797         (INCOMING_REGNO): Likewise.
5798         (apply_args_register_offset): Always use OUTGOING_REGNO.
5799         * combine.c (OUTGOING_REGNO): Likewise.
5800         * sibcall.c (OUTGOING_REGNO): Likewise.
5801         * defaults.h (INCOMING_REGNO): Provide the default.
5802         (OUTGOING_REGNO): Likewise.
5803
5804 2004-02-21  Jan Hubicka  <jh@suse.cz>
5805
5806         * params.def (max-peeled-insns, max-completely-peeled-insns,
5807         max-once-peeled-insns): Set to 400.
5808
5809 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5810
5811         PR c++/12007
5812         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
5813         are set for parameters before outputing debugging information.
5814
5815 2004-02-20  Falk Hueffner  <falk@debian.org>
5816
5817         PR target/14201
5818         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
5819         numbers.
5820
5821 2004-02-20  Per Bothner  <per@bothner.com>
5822
5823         * input.h:  Don't #include line-map.h.  It may cause link problems
5824         with undefined linemap_line_start when line-map.h is included but
5825         line-map.o is not linked, as currently happens with gengtype on
5826         compilers that don't support inline.
5827         * toplev.c:  So we do have to explicitly #include line-map.h here.
5828
5829 2004-02-20  Richard Henderson  <rth@redhat.com>
5830
5831         * doc/invoke.texi: Add -Wvariadic-macros.
5832
5833 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
5834
5835         * haifa-sched.c (sched_emit_insn): Remove.
5836         * sched-int.h: Remove the corresponding prototype.
5837
5838 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
5839
5840         Revert:
5841         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5842         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
5843         * system.h (DEFAULT_SHORT_ENUMS): Poison.
5844         * config/cris/cris.h: Remove a comment about
5845         DEFAULT_SHORT_ENUMS.
5846         * config/ip2k/ip2k.h: Likewise.
5847         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
5848
5849 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
5850             Tom Tromey  <tromey@redhat.com>
5851
5852         * doc/install.texi: Moved --disable-libgcj and
5853         --with-system-zlib documentation to new section for
5854         Java-specific options.
5855         Added explicit Cross-Compiler-Specific Options subheading.
5856         Added section for Java-specific options.
5857
5858 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
5859
5860         * doc/install.texi (Building the Ada compiler): Remove
5861         example.
5862
5863 2004-02-20  James E Wilson  <wilson@specifixinc.com>
5864
5865         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
5866
5867 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
5868
5869         * gcc.c (process_command): Allow translation of the copyright
5870         symbol but not the rest of the copyright message.
5871         * gcov.c (print_version): Likewise.  Allow translation of the
5872         message about warranty.
5873
5874 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
5875
5876         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
5877         predicate.
5878         ("*andsi_clear"): Tweak constraints to not match postincrement.
5879         Adjust the predicate to exclude a volatile memory reference.
5880         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
5881         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
5882
5883 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
5884
5885         * move-if-change: Remove.
5886         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
5887         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
5888         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
5889         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
5890         (s-gtyp-gen, s-iov): Use the top level move-if-change.
5891         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
5892
5893 2004-02-19  James E Wilson  <wilson@specifixinc.com>
5894
5895         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
5896         for operand2.  Add condition that requires register_operand operand2
5897         before reload.
5898
5899 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
5900             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5901
5902         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
5903         * config/mips/mips.md: Expand comment above unaligned loads and stores.
5904
5905 2004-02-19  Richard Henderson  <rth@redhat.com>
5906
5907         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
5908         * tree.c (build0, build1, build2, build3, build4): Split out from...
5909         (build): ... here.  Call them.
5910         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
5911
5912         * convert.c (convert_to_integer): Remove extra build argument.
5913         * tree-inline.c (expand_call_inline): Likewise.
5914
5915 2004-02-19  Richard Henderson  <rth@redhat.com>
5916
5917         * c-opts.c (warn_variadic_macros): New.
5918         (c_common_handle_option): Set it.
5919         (sanitize_cpp_opts): Copy it to cpp_opts.
5920         * c.opt (Wvariadic-macros): New.
5921         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
5922         * cppinit.c (cpp_create_reader): Initialize it.
5923         * cppmacro.c (parse_params): Check it.
5924
5925 2004-02-19  David Daney <ddaney@avtrex.com>
5926
5927         PR preprocessor/14198
5928         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
5929         builtin_assert ("machine=mips")
5930
5931 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5932
5933         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
5934         * system.h (DEFAULT_SHORT_ENUMS): Poison.
5935         * config/cris/cris.h: Remove a comment about
5936         DEFAULT_SHORT_ENUMS.
5937         * config/ip2k/ip2k.h: Likewise.
5938         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
5939
5940 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
5941
5942         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
5943         when passing single SFmode quantities in general registers,
5944         put them in the high half.
5945
5946 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
5947
5948         * doc/md.texi (Standard Names): Document additional dependency on
5949         fix pattern.
5950
5951         * optabs.c (ftruncify): Remove.
5952         (expand_fix): Manually inline ftruncify above.
5953         (can_fix_p): Add FIXME note.
5954
5955 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
5956
5957         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
5958         spe_fixuns_truncsfsi2.
5959
5960         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
5961         fixuns_truncsfsi2.
5962
5963 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
5964
5965         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
5966         * testsuite/gcc.dg/20040219-1.c: New test.
5967
5968 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
5969
5970         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
5971         "*subsf3_cconly"): Subtraction is not commutative.
5972
5973 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
5974
5975         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
5976         (sdbout_symbol): If called before sdbout_init, queue DECL for
5977         later and return.
5978         (sdbout_init): Set sdbout_initialized true, process decls
5979         queued earlier by sdbout_symbol.
5980         (sdbout_finish): Use size_t for index variable.
5981
5982 2004-02-19  Jeff Law  <law@redhat.com>
5983
5984         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
5985         for unordered comparison codes.
5986
5987 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
5988
5989         * reload1.c (reload): Correct comment.
5990         (scan_paradoxical_subregs): Remove #if 0 and old comment.
5991         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
5992         register variables are not used by reload.
5993
5994 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
5995
5996         PR target/14209
5997         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
5998         constraints to not match postincrement.  Adjust the predicate to
5999         exclude a volatile memory reference.
6000
6001 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
6002
6003         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
6004
6005 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
6006
6007         * hooks.c (hook_void_tree_int): Remove.
6008         (hook_void_constcharptr): Likewise.
6009         (hook_int_void_0): Likewise.
6010         * hooks.h: Remove the prototypes for the above three
6011         functions.
6012         * targhooks.c (hook_bool_machine_mode_true): Remove.
6013         * targhooks.h: Remove the prototype for
6014         hook_bool_machine_mode_true.
6015
6016 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
6017
6018         * emit-rtl.c (subreg_realpart_p): Remove.
6019         (reorder_insns_with_line_notes): Likewise.
6020         (end_full_sequence): Likewise.
6021         * rtl.h: Remove the prototype for the above functions.
6022
6023 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
6024
6025         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
6026         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
6027         config/iq2000/iq2000.h, config/m32r/m32r.h,
6028         config/pdp11/pdp11.h, config/sparc/sparc.h,
6029         config/xtensa/xtensa.h: Remove commented-out or useless
6030         definitions of CASE_VECTOR_PC_RELATIVE.
6031
6032 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
6033
6034         * loop.c (all_sets_invariant_p): Remove.
6035
6036 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
6037
6038         PR target/12916
6039         * config/sparc/sparc.h (NPARM_REGS): Delete.
6040         (BASE_RETURN_VALUE_REG): Likewise.
6041         (BASE_OUTGOING_VALUE_REG): Likewise.
6042         (BASE_PASSING_ARG_REG): Likewise.
6043         (BASE_INCOMING_ARG_REG): Likewise.
6044         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
6045         TARGET_ARCH64, not TARGET_V9.
6046         (function_arg_slotno): Dispatch based on the mode class.
6047         Handle vector modes like floating-point modes.
6048         (function_arg_record_value_1): Handle vector types like
6049         floating-point types.
6050         (function_arg_record_value_2): Likewise.
6051         Calculate regno after mode transformation.
6052         (function_arg): Handle vector modes like floating-point modes.
6053         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
6054         If ARCH64, do not recheck alignment.
6055         (function_arg_pass_by_reference): Reorder the conditions.
6056         (sparc_return_in_memory): Move after function_arg_padding.
6057         Implement calling conventions for vector modes.
6058         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
6059         (function_value): Move scope of 'regbase'.
6060         Implement calling conventions for vector modes.
6061         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
6062         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
6063         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
6064         the argument is passed by reference.
6065         (sparc_type_code): Handle vector types.
6066
6067 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
6068
6069         * function.c (assign_parms): When building decl_rtl for
6070         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
6071
6072 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
6073
6074         * expr.c (is_aligning_offset): Check if we are aligning the
6075         expressions's address over BIGGEST_ALIGNMENT in bytes, not
6076         in bits.
6077
6078 2003-02-18  Matt Austern  <austern@apple.com>
6079
6080         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
6081         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
6082         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
6083         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
6084         spec string.
6085         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
6086
6087 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
6088
6089         * dwarf2out.c (loclabel_num): Move outside #ifdef
6090         DWARF2_DEBUGGING_INFO and mark with GTY(()).
6091         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
6092         Mark with GTY(()).
6093         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
6094         Allocate memory with ggc_alloc.  No need to copy anything.
6095         (ia64_hpux_file_end): Update to match.
6096
6097 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
6098
6099         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
6100         by default.
6101
6102 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
6103
6104         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
6105         ("divmodtisi3"): Likewise.
6106         ("udivmoddi4", "udivmodtidi3"): Likewise.
6107         ("divmodsi4", "divmoddisi3"): Likewise.
6108         ("udivmodsi4", "udivmoddisi3"): Likewise.
6109         ("udivsi3", "umodsi3"): Likewise.
6110
6111 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
6112
6113         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
6114         placeholder insn when chunkifying the pool.
6115
6116 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6117
6118         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
6119         generating PIC code.
6120
6121 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6122
6123         * config/h8300/h8300-protos.h: Add a prototype for
6124         h8300_expand_branch.
6125         * config/h8300/h8300.c (h8300_expand_branch): New.
6126         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
6127         bgtu, beq, bne): Call h8300_expand_branch().
6128
6129 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6130
6131         * config/h8300/h8300-protos.h: Add prototypes for
6132         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
6133         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
6134         (h8300_hard_regno_mode_ok): Likewise.
6135         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
6136         h8300_hard_regno_nregs().
6137         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
6138
6139 2004-02-18  Per Bothner  <per@bothner.com>
6140
6141         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
6142         partly reverts my 2003-10-01 change, because we're back to logically
6143         including <command line> inside the main line.
6144         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
6145         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
6146         Fixes PR preprocessor/14103.
6147
6148         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
6149         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
6150         (cpp_push_include):  Don't need to increment pfile's line field.
6151         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
6152
6153         * c-ppoutput.c (print struct):  New first_time field.
6154         (init_pp_output):  Set print.first_time.
6155         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
6156         which is set also for (say) <command line>.  Clear print.first_time.
6157
6158         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
6159         does not match the code, so fix both.
6160         (should_stack_file):  Inline include_pch_p function.
6161         (include_pch_p):  Remove pointless function.
6162
6163         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
6164
6165 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6166
6167         * config/h8300/h8300.md (four define_peephole2's): Use
6168         h8300_regs_ok_for_stm().
6169
6170 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6171
6172         * config/h8300/h8300-protos.h: Update the prototype for
6173         expand_a_rotate().
6174         * config/h8300/h8300.c (expand_a_rotate): Remove the first
6175         argument.
6176         * config/h8300/h8300.md: Update all callers.
6177
6178 2004-02-18  Jan Hubicka  <jh@suse.cz>
6179
6180         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
6181         floats.
6182         (simplify_binary_operation): Deal with logicals on floats.
6183
6184         * i386.md (SSE fabs splitters): Emit new patterns.
6185         (SSE cmov splitters): Likewise.
6186         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
6187         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
6188         subregs.
6189         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
6190         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
6191
6192 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6193
6194         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
6195         by hand.
6196         (output_a_rotate): Tweak a comment.
6197         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
6198         (*rotlhi3_1): Change to rotlhi3_1.
6199         (*rotlsi3_1): Change to rotlsi3_1.
6200
6201 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
6202
6203         PR target/13866
6204         * arm.c (load_multiple_operation): Don't insist that the source reg
6205         of a post-increment component is the same as the destination.
6206         (store_multiple_operation): Likewise.
6207
6208 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6209
6210         * config/h8300/h8300.md: Move movsf patterns into one section
6211         of the file.
6212
6213 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6214
6215         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
6216         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
6217         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
6218         config/mips/linux64.h, config/pa/pa-64.h,
6219         config/rs6000/aix51.h, config/rs6000/aix52.h,
6220         config/rs6000/spe.md, config/sparc/linux.h,
6221         config/sparc/linux64.h: Update copyright.
6222
6223 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6224
6225         * config/h8300/h8300.md: Move push patterns into one
6226         section of the file.
6227
6228 2004-02-18  Mark Mitchell <mark@codesourcery.com>
6229
6230         PR c++/11326
6231         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
6232         fntype.
6233
6234 2004-02-18  Paul Brook  <paul@codesourcery.com>
6235
6236         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
6237
6238 2004-02-18  Paul Brook  <paul@codesourcery.com>
6239
6240         PR debug/12934
6241         * dwarf2out.c (loc_descriptor_from_tree): Handle
6242         EXPR_WITH_FILE_LOCATION.
6243
6244 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
6245
6246         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
6247         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
6248         trailing whitespace from instructions.
6249
6250 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
6251
6252         * configure.ac: When generating auto-build.h, pass
6253         --enable-languages to the sub-configure.
6254         Put quotes around ${program_transform_name} when generating
6255         name of as, ld, nm, objdump.
6256         * configure: Regenerate.
6257
6258 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
6259
6260         * Makefile.in (s-check, s-config, s-conditions, s-flags)
6261         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
6262         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
6263         (s-preds, s-iov): Do not depend on move-if-change.
6264
6265 2004-02-17  James E Wilson  <wilson@specifixinc.com>
6266
6267         * caller-save.c (insert_restore): Pass mem through copy_rtx.
6268         (insert_save): Likewise.
6269
6270 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6271
6272         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
6273         warning.
6274
6275 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6276
6277         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
6278         *one_cmplsi2_h8300.
6279         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
6280
6281 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6282
6283         * config/h8300/h8300-protos.h: Update the prototype of
6284         fix_bit_operand().
6285         * config/h8300/h8300.c (fix_bit_operand): Remove the second
6286         argument "what".
6287         * config/h8300/h8300.md: Update all callers.
6288
6289 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6290
6291         * config/h8300/h8300.c (fix_bit_operand): Change the name of
6292         the last argument to "code" from "type".
6293
6294 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6295
6296         * config/h8300/h8300.c: Remove an extern declaration of
6297         rtx_equal_function_value_matters.
6298
6299 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6300
6301         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
6302         by hand.
6303         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
6304         (*iorqi3_1): Change to iorqi3_1.
6305         (*xorqi3_1): Change to xorqi3_1.
6306
6307 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6308
6309         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
6310         typos.
6311
6312 2004-02-17  Jan Hubicka  <jh@suse.cz>
6313
6314         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
6315
6316 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
6317
6318         PR optimization/14119
6319         * combine.c (try_combine): When attemting to fix unrecognized insns,
6320         don't delete SETs marked with REG_EH_REGION notes.
6321
6322 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
6323
6324         * combine.c (simplify_if_then_else): Do not replace
6325         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
6326         modes differ.
6327
6328 2004-02017  Steven Bosscher  <stevenb@suse.de>
6329
6330         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
6331         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
6332         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
6333         * ada/utils.c: Likewise.
6334         * cp/decl.c: Likewise.
6335         * f/com.c: Likewise.
6336         * java/class.c: Likewise.
6337
6338 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6339
6340         * config/h8300/h8300.md: Fix comment typos.
6341
6342 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6343
6344         * config/mips/t-iris6gld: Renamed to ...
6345         * config/mips/t-irix-gld: ... this.
6346         * config.gcc (mips-sgi-irix6*): Reflect this
6347         (mips-sgi-irix5*): Use it with GNU ld.
6348
6349         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
6350         to ...
6351         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
6352         * config/mips/t-irix-gld: Reflect this.
6353         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
6354
6355         * config/mips/iris5gld.h: New file.
6356         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
6357         Only use collect2 without gas.
6358
6359         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
6360         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
6361         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
6362         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
6363
6364         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
6365         * config/mips/iris5.h: ... here.
6366
6367         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
6368         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
6369         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
6370
6371         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
6372         using irix_startfile_spec, irix_endfile_spec.
6373
6374 2004-02-16  Gunther Nikl  <gni@gecko.de>
6375
6376         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
6377
6378 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6379
6380         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
6381         insns by hand.
6382
6383 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6384
6385         * cfghooks.c (split_edge): Speed up updating of dominators.
6386
6387 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
6388
6389         PR c++/11326
6390         * c-common.c (flag_abi_version): Remove.
6391         * c-common.h (flag_abi_version): Likewise.
6392         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
6393         * c.opt (fabi-version): Remove.
6394         * calls.c (expand_call): Always pass a function type to
6395         struct_value_rtx.  Use convert_memory_address.
6396         * common.opt (fabi-version): Add it.
6397         * flags.h (flag_abi_version): Likewise.
6398         (abi_version_at_least): New macro.
6399         * opts.c (common_handle_option): Add OPT_fabi_version.
6400         * toplev.c (flag_abi_version): Define it.
6401         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
6402         New function.
6403         (ia64_output_mi_thunk): Use it.
6404         (ia64_struct_value_rtx): Likewise.
6405
6406 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6407
6408         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
6409         Don't generate insns by hand.
6410
6411 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
6412
6413         PR c++/14178
6414         * doc/invoke.texi (fabi-version): The default is 2 now.
6415
6416 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6417
6418         * loop-iv.c: New file.
6419         * Makefile.in (loop-iv.o): New.
6420         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
6421         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
6422         num_loop_branches): New functions.
6423         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
6424         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
6425         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
6426         get_simple_loop_desc, free_simple_loop_desc): Declare.
6427         (simple_loop_desc): New inline function.
6428         (struct rtx_iv, struct niter_desc): New.
6429         * cfgloopmanip.c (loopify): Specify semantics more precisely.
6430         * expr.c (force_operand): Handle subregs of expressions created by
6431         loop unroller.
6432         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
6433         parts of the initialization to toplev.c
6434         * loop-unroll.c (loop_exit_at_end_p): New.
6435         (unroll_and_peel_loops): Call iv_analysis_done.
6436         (decide_peel_once_rolling, decide_peel_completely,
6437         decide_unroll_stupid, decide_unroll_constant_iterations,
6438         decide_unroll_runtime_iterations, decide_peel_simple,
6439         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
6440         unroll_loop_runtime_iterations): Use new simple loop analysis.
6441         * loop-unswitch.c (compare_and_jump_seq): New.
6442         (may_unswitch_on_p): Renamed to ...
6443         (may_unswitch_on): Use new iv analysis.
6444         (reversed_condition): Export.
6445         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
6446         * predict.c (estimate_probability): Use new simple loop analysis.
6447         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
6448         canon_condition, simplify_using_condition): Declare.
6449         * stor-layout.c (get_mode_bounds): New.
6450         * toplev.c (rest_of_handle_loop2): Some parts of
6451         initialization/finalization moved here from loop-init.c.
6452
6453 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6454
6455         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
6456         pointer.
6457         (CALL_USED_REGISTERS): Likewise.
6458         (REG_ALLOC_ORDER): Likewise.
6459         (REG_CLASS) <GENERAL_REGS>: Likewise.
6460
6461 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
6462
6463         * doc/md.texi (Insn Canonicalizations): Document left-chaining
6464         in associative operators.
6465         * rtlanal.c (commutative_operand_precedence): Create some new
6466         variables.  Prefer a commutative operand on the left, then
6467         binary expressions, then NEG and NOT.
6468
6469 2004-02-16  Matthias Klose  <doko@debian.org>
6470
6471         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
6472         in terms of SHLIB_SOVERSION.
6473         * config/m68k/t-slibgcc-elf-ver: New file.
6474         * config/pa/t-slibgcc-elf-ver: New file.
6475         * config.gcc (m68k-linux, parisc-linux): Use them when not
6476         sjlj exceptions are not configured.
6477
6478 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
6479
6480         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
6481
6482 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
6483
6484         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
6485
6486 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
6487
6488         * doc/sourcebuild.texi: Mention backends.html.
6489
6490 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
6491
6492         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
6493         line-map.c, line-map.h, var-tracking.c: Fix comment
6494         formatting.
6495
6496 2004-02-16  Richard Henderson  <rth@redhat.com>
6497
6498         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
6499
6500         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
6501
6502 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
6503
6504         * config/h8300/h8300.md: Remove unnecessary parallels from
6505         all define_insn and define_split patterns.
6506
6507 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
6508
6509         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
6510         "clobber").
6511
6512 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
6513
6514         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
6515         '%#'.
6516
6517 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
6518
6519         * config/ia64/ia64.c, config/mips/mips.c,
6520         config/mmix/mmix-modes.def: Fix comment typos.
6521
6522 2004-02-15  Roger Sayle  <roger@eyesopen.com>
6523
6524         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
6525         (get_directive_line): Remove unused function prototype.
6526
6527 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
6528
6529         * tree-inline.c (copy_body_r): Do not replace ret_label.
6530
6531 2004-02-14  Jan Hubicka  <jh@suse.cz>
6532
6533         * i386.c (x86_four_jump_limit): New variable.
6534         (k8_avoid_jump_misspredicts): Rename to ...
6535         (ix86_avoid_jump_misspredicts): .. this one.
6536         (ix86_pad_returns): Break out from ...
6537         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
6538         to.
6539         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
6540
6541 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
6542
6543         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
6544         PARALLEL is NULL.
6545
6546 2004-02-14  Per Bothner  <per@bothner.com>
6547
6548         * fix-header.c (line_table):  Move local variable in main to global.
6549         * scan.h (line_table):  Use it.
6550         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
6551         line (recently renamed to src_loc) before calling recognized_function.
6552
6553 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
6554
6555         * Makefile.in: Fix comment typos.
6556
6557 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
6558
6559         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
6560         for start_value when it is directly moved into reg, and factorize
6561         the retrieval of GET_MODE (reg).
6562
6563 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
6564
6565         * config/mips/mips-protos.h (mips_load_got_page): Delete.
6566         (mips_load_got_global): Delete.
6567         (mips_gotoff_page): Declare.
6568         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
6569         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
6570         UNSPEC_LOAD_GOT pattern rather than a MEM.
6571         (*load_got[sd]i): New patterns.
6572         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
6573         (mips_load_got_page, mips_load_got_global): Delete.
6574         (mips_gotoff_page): New function.
6575         (override_options): Don't initialize mips_got_alias_set.
6576
6577 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
6578
6579         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
6580         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
6581         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
6582         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
6583         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
6584         * config/mips/mips.c: Fix some overly-long lines.
6585         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
6586         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
6587
6588 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6589
6590         * configure.ac: Search for as, ld below libexec/gcc.
6591         * configure: Regenerate.
6592
6593 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
6594
6595         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
6596         __builtin_arm_setwcx ().
6597         * config/arm/arm.c (arm_expand_builtin): Generate operands
6598         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
6599
6600 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
6601
6602         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
6603         and "wmuluh" to "wmulsm" and "wmulum", respectively.
6604         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
6605         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
6606         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
6607         (_mm_mulhi_pu16): Likewise.
6608
6609 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
6610
6611         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
6612         DECL_NAME != 0 before dereferencing.
6613
6614 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
6615
6616         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
6617         (s390_output_addr_const_extra): Declare.
6618         (s390_output_pool_entry): Remove FILE * argument.
6619         * config/s390/s390.c (s390_output_symbolic_const): Remove.
6620         (s390_output_addr_const_extra): New function.
6621         (print_operand_address): Call output_addr_const instead of
6622         s390_output_symbolic_const.
6623         (print_operand): Likewise.
6624         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
6625         Remove FILE * argument.
6626         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
6627         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
6628         call.
6629
6630 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6631
6632         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
6633         (struct edge, struct vertex, struct graph): New.
6634         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
6635         free_graph): New functions.
6636
6637 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
6638
6639         * config/mips/mips.md (casesi_internal, casesi_internal_di):
6640         Use ".set macro" to avoid warnings about multi-instruction
6641         macros, since they're intentional.
6642
6643 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
6644
6645         * config/darwin.h: Add include guards.  Remove old, now incorrect,
6646         comment about STANDARD_EXEC_PREFIX.
6647
6648         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
6649         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
6650         for installing .1 manpages.  Add rules for installing cpp
6651         and gcov manpages under their installed names.
6652
6653 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
6654
6655         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
6656         host, but try LD_FOR_TARGET first.
6657         * configure: Rebuilt.
6658
6659 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
6660
6661         * dbxout.c: Move declaration of dbxout_type_decl outside
6662         #ifdef DBX_DEBUGGING_INFO.
6663         * c-parse.in: Don't give the asmdef production a type.
6664
6665 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
6666
6667         * debug.h (struct gcc_debug_hooks): Add type_decl field.
6668         (debug_nothing_tree_int): Prototype.
6669         (dwarf_debug_hooks): Delete, unused.
6670         * debug.c (do_nothing_debug_hooks): Update.
6671         (debug_nothing_tree_int): New function.
6672         * langhooks.h (struct lang_hooks_for_decls):
6673         Remove builtin_type_decls field.
6674         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
6675         (LANG_HOOKS_DECLS): Update.
6676         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
6677         Use debug_hooks->type_decl.
6678         * dbxout.c (preinit_symbols): New static.
6679         (dbx_debug_hooks, xcoff_debug_hooks): Update.
6680         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
6681         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
6682         for symbols to output.
6683         (dbxout_type_decl): New function.
6684         (dbxout_symbol): If called before dbxout_init has run, queue
6685         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
6686         to TYPE_DECLs before emitting them.
6687         * xcoffout.c (assign_type_number): Delete.
6688         (xcoff_type_numbers): New static table.
6689         (xcoff_assign_fundamental_type_number): New function.
6690         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
6691         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
6692         * sdbout.c: Include varray.h.
6693         (deferred_global_decls): New static.
6694         (sdb_debug_hooks): Update.
6695         (sdbout_global_decl): If we can't emit something right now,
6696         remember it in deferred_global_decls.
6697         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
6698         (sdbout_init): Initialize deferred_global_decls.
6699         * Makefile.in: Update dependencies of sdbout.o.
6700         * dwarf2out.c (dwarf2out_type_decl): New function.
6701         (dwarf2_debug_hooks): Update.
6702         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
6703         * c-decl.c (getdecls): Just return 0.
6704         (check_for_loop_decls): Don't use getdecls.
6705         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
6706         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
6707
6708 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
6709
6710         * config/s390/s390.c (s390_sched_reorder2): Remove.
6711         (TARGET_SCHED_REORDER2): Do not redefine.
6712
6713 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
6714
6715         * c-parse.in (maybe_type_qual): Delete.
6716         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
6717         (asm_argument): New grammar rules.
6718         (extdef_1): Use asmdef.
6719         (maybeasm): Move down with other asm rules; use simple_asm_expr.
6720         (xexpr): Move up with other expression rules.
6721         (stmt): Use asm_stmt.
6722
6723         * c-typeck.c (build_asm_expr): New function - body mostly
6724         pulled from build_asm_stmt.
6725         (build_asm_stmt): Just handle tacking on the volatile qualifier.
6726         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
6727
6728 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
6729
6730         PR bootstrap/13617
6731         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
6732         (mips_declare_object): Make variadic.
6733         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
6734         mips_output_aligned_decl_common.
6735         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
6736         (mips_declare_object): Make variadic.
6737
6738 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6739
6740         * function.c (update_epilogue_consts): Teach about binary operations.
6741
6742         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
6743         previous MEM_VOLATILE in REF.
6744         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
6745         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
6746
6747 2004-02-12  Gunther Nikl  <gni@gecko.de>
6748
6749         * config.gcc: Restore support for m68k-openbsd.
6750
6751 2004-02-12  Jan Hubicka  <jh@suse.cz>
6752
6753         * tree-optimize.c (tree_rest_of_compilation): Do not release
6754         DECL_ARGUMENTS.
6755
6756 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
6757
6758         * doc/install.texi: Fix the spelling of "explicitly".
6759
6760 2004-02-11  Eric Christopher  <echristo@redhat.com>
6761
6762         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
6763         duplicate argument structure of cpp_interpret_string.
6764         * cpphash.h: Move prototype...
6765         * cpplib.h: Here.
6766         * cpplib.c: Fix calls to match new function signature.
6767
6768 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
6769
6770         PR c/456
6771         * cppexp.c (num_binary_op): Don't allow comma operators in #if
6772         constant expressions at all outside C99 mode if pedantic.
6773
6774 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
6775
6776         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
6777         (log10_optab, log2_optab): Define corresponding macros.
6778         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
6779         * genopinit.c (optabs): Implement log10_optab and log2_optab
6780         using log10?f2 and log2?f2 patterns.
6781         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
6782         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
6783         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
6784         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6785
6786         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
6787         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
6788         log2, log2f and log2l built-ins as inline x87 intrinsics.
6789
6790 2004-02-11  Richard Henderson  <rth@redhat.com>
6791
6792         PR target/1532
6793         * flow.c (insn_dead_p): A clobber of a dead hard register is a
6794         dead insn after reload.
6795
6796 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
6797
6798         * tree.h (frame_base_decl): Add GTY marker.
6799         * var-tracking.c (frame_base_decl): Likewise.
6800
6801 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
6802
6803         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
6804         incorrect, hunk.
6805         (add_location_or_const_value_attribute): Use text_section_label,
6806         not TEXT_SECTION_NAME.
6807
6808 2004-02-11  Per Bothner  <per@bothner.com>
6809
6810         Represent column numbers using line-map's source_location.
6811         The "next available source_location" is now managed internally by
6812         line-maps.c rather than by clients.
6813         * line-map.h (struct line_map):  New field column_bits.
6814         <from_line>:  Rename field to start_location.
6815         (struct line_maps):  New fields highest_location and max_column_hint.
6816         (linemap_check_files_exited):  New declaration.
6817         (linemap_line_start):  New declaration.
6818         (linemap_add):  Remove from_line parameter; use highest_location field.
6819         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
6820         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
6821         (CURRENT_LINE_MAP):  Remove macro.
6822         (linemap_position_for_column):  New inline function.
6823         * line-map.c (linemap_init):  Clear new fields.
6824         (linemap_check_files_exited):  New function, extracted from ...
6825         (linemap_free):  Use linemap_check_files_exited.
6826         (linemap_add):  Remove from_line parameter.  Various updates.
6827         (linemap_line_start):  New function.
6828         (linemap_lookeup):  Update for new field names.
6829         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
6830         linemap_position_for_column may unpredictably change the current map,
6831         it is cleaner and simpler for us to not cache it in cpp_reader.
6832         (struct cpp_buffer):  New sysp field.
6833         Changed warned_cplusplus_comments and from_stage3 to bitfields.
6834         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
6835         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
6836         current map using linemap_lookup.
6837         (do_linemarker):  Also set buffer's sysp field.
6838         (destringize_and_run):  No longer need to decrement current line.
6839         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
6840         (search_path_head, open_file_failed):  Use buffer's sysp.
6841         (cpp_make_system_header):  Get current map using linemap_lookup.
6842         Also set buffer's sysp flag.
6843         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
6844         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
6845         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
6846         (struct cpp_reader):  ... and adding saved_line_base field.
6847         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
6848         Update accordingly.  Don't adjust line.
6849         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
6850         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
6851         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
6852         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
6853         * cpplex.c (_cpp_lex_direct):  Likewise.
6854         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
6855         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
6856         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
6857         Remove col field as it is now subsumed by src_loc.
6858         * cpperror.c:  Update various field, parameter, and macro names.
6859         (print_location):  If col==0, try SOURCE_COLUMN of line.
6860         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
6861         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
6862         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
6863         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
6864         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
6865         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
6866         (_cpp_lex_direct):  Use linemap_position_for_column.
6867         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
6868         parameter.  Instead get it from the line_table global.  Adjust callers.
6869         (print):  Remove map field.  Replace line field to src_line.
6870         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
6871         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
6872         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
6873         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
6874         * cpptrad.c (copy_comment):  Rename variable.
6875         * c-lex.c (map):  Remove static variable, for same reason we removed
6876         cpp_reader's map field.
6877         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
6878         to call linemap_lookup.
6879         (cb_line_change):  Token's line field replaced by src_loc.
6880         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
6881         Don't save new_map.
6882
6883         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
6884         source_location.
6885
6886 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
6887
6888         * config/rs6000/altivec.md (*movv4si_internal): At least one
6889         operand must be register_operand.
6890         (*movv8hi_internal1): Likewise.
6891         (*movv16qi_internal1): Likewise.
6892         (*movv4sf_internal1): Likewise.
6893
6894 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
6895
6896         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
6897         operand.
6898         (movv4hi_internal): Same.
6899         (movv2sf_internal): Same.
6900         (movv1di_internal): Same.
6901
6902 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
6903
6904         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
6905         TARGET_OLDABI consistently.
6906         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
6907         mips_va_arg,override_options,compute_frame_size,
6908         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
6909         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
6910         and TARGET_OLDABI consistently.
6911         * config/mips/mips.md (exception_receiver): Likewise.
6912         * config/mips/linux64.h: Likewise.
6913
6914 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
6915
6916         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
6917         Set AltiVec ABI and vrsave as default for ppc64 linux.
6918         (init_cumulative_args): Post error, if try to return
6919         value in AltiVec register without enable AltiVec.
6920         (function_arg_advance): Ditto for passing arguments.
6921
6922 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
6923
6924         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
6925         a label before updating its usage count.
6926
6927 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
6928
6929         * doc/install.texi: Remove extra cd.
6930
6931 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
6932
6933         * c-common.c (vector_size_helper): Remove; call
6934         reconstruct_complex_type() instead.
6935         * tree.c (reconstruct_complex_type): New function
6936         (formerly vector_size_helper() in c-common.c).
6937         (make_vector): Make externally visible.
6938         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
6939
6940 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
6941
6942         * config/h8300/h8300-protos.h: Add a prototype for
6943         h8300_regs_ok_for_stm.
6944         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
6945         * config/h8300/h8300.md (stm_h8300s_2_advanced,
6946         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
6947         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
6948         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
6949         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
6950         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
6951         ldm_h8300s_4_normal, ldm_h8300s_4): Use
6952         h8300_regs_ok_for_stm().
6953
6954 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
6955
6956         PR c/14088
6957         * real.c (real_from_string): Look for 'X' as well as 'x' in
6958         hexfloat strings.
6959
6960 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
6961
6962         * config/h8300/h8300.md: Remove an incorrect comment about
6963         peephole2.  Add comments.
6964
6965 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
6966
6967         PR/14058
6968         * emit-rtl.c (set_decl_incoming_rtl): New.
6969         * tree.h (set_decl_incoming_rtl): New.
6970         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
6971         DECL_INCOMING_RTL.
6972         * ada/misc.c (adjust_decl_rtl): Likewise.
6973
6974 2004-02-10  Per Bothner  <per@bothner.com>
6975
6976         * c-opts.c (c_common_post_options):   Don't emit working directory
6977         in cpp output if -P was specified.
6978
6979 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
6980
6981         PR c/14092
6982         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
6983         negate_expr back to the original type.
6984
6985 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
6986
6987         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
6988         bump retaddr here.
6989
6990 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
6991
6992         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
6993         gen_lowpart_SUBREG): Move under the file in which they
6994         are actually declared.
6995
6996 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
6997
6998         * doc/sourcebuild.texi: Add libada documentation.
6999
7000         * doc/install.texi: Update documentation on Ada build, now
7001         that the GNAT lib and tools are built automatically.
7002
7003 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
7004
7005         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
7006         && TARGET_IRIX.
7007
7008 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
7009
7010         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
7011         boundaries outside build_component_ref() call (a macro in ObjC++).
7012
7013 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
7014
7015         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
7016         (init_cumulative_args): Likewise.
7017         (a7_overlap_mentioned_p): Delete prototype.
7018         * config/xtensa/xtensa.c (struct machine_function): Replace
7019         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
7020         Add set_frame_ptr_insn field.
7021         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
7022         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
7023         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
7024         at the function entry and replace the operand with the pseudo.
7025         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
7026         argument and record this flag in CUMULATIVE_ARGS.
7027         (function_arg): Remove result_mode and special-case code to handle
7028         arguments in a7.  Instead, set need_a7_copy flag when there is an
7029         incoming argument in a7.
7030         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
7031         and use the value recorded in cfun->machine->set_frame_ptr_insn.
7032         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
7033         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
7034         special-case code.
7035         (a7_overlap_mentioned_p): Delete.
7036         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
7037         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
7038         arguments to init_cumulative_args and pass "incoming" flag instead.
7039         (BLOCK_REG_PADDING): Delete.
7040         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
7041         checks for reload_in_progress and reload_completed.  Update calls to
7042         xtensa_copy_incoming_a7.
7043         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
7044         to call xtensa_copy_incoming_a7.
7045
7046 2004-02-09  DJ Delorie  <dj@redhat.com>
7047
7048         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
7049         longer modify standard_exec_prefix, standard_bindir_prefix, or
7050         standard_startfile_prefix.
7051
7052 2004-02-09  James E Wilson  <wilson@specifixinc.com>
7053
7054         PR c++/11295
7055         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
7056         to expand_expr_real call, and pass in alt_rtl as last argument.
7057
7058         PR libstdc++/5625
7059         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
7060         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
7061         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
7062         * except.c (expand_builtin_extend_pointer): New.
7063         * except.h (expand_builtin_extend_pointer): Declare.
7064
7065 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
7066
7067         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
7068         unaligned loads and stores.
7069
7070 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7071
7072         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
7073         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
7074
7075         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
7076         * config/mips/iris5.h: ... here.
7077         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
7078
7079         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
7080         * config/mips/iris5.h: ... here.
7081
7082 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7083
7084         * configure.ac: Remove default executable files before AC_PROG_CC.
7085         * configure: Regenerate.
7086
7087 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
7088
7089         PR target/13721
7090         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
7091         print a operand other than a register.
7092
7093 2004-02-09  Roger Sayle  <roger@eyesopen.com>
7094
7095         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
7096         tree code rather than call fold_convert, which doesn't specify a
7097         default floating point to integer conversion.
7098
7099 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
7100
7101         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
7102         code to support SGS assembler.  Reformat adjacent code where possible.
7103         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
7104         definition.
7105         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
7106         for '%#'.
7107         * config/m68k/linux.h, config/m68k/m68k.c,
7108         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
7109         macros and asm_printf() format strings.
7110         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
7111         * config/m68k/linux.h: Update copyright.
7112         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
7113
7114 2004-02-08  Andreas Schwab  <schwab@suse.de>
7115             Bernardo Innocenti  <bernie@develer.com>
7116
7117         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
7118         REGISTER_PREFIX.
7119         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
7120         frame pointer register, overridable by OS targets.
7121         * (M68K_REGNAME): Macro to obtain register name for asm output,
7122         eventually replacing %a6 with M68K_FP_REG_NAME.
7123         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
7124         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
7125         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
7126         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
7127         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
7128
7129 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
7130
7131         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
7132         hook_rtx_tree_int_null.
7133         * targhooks.c (default_struct_value_rtx): Remove.
7134         * targhooks.h: Remove the prototype for
7135         default_struct_value_rtx.
7136         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
7137         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
7138         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
7139         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
7140         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
7141         config/rs6000/rs6000.c, config/s390/s390.c,
7142         config/stormy16/stormy16.c, config/v850/v850.c,
7143         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
7144         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
7145
7146 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
7147
7148         * README.Portability: Change "ISO C89" to "ISO C90".
7149         * c-parse.in (primary, initelt): Likewise.
7150
7151 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
7152
7153         * real.c (encode_ibm_extended): Normalize the input value before
7154         converting it to a double.  Handle the case where a normal value
7155         rounds to infinity.
7156
7157 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
7158
7159         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
7160         warning.
7161         * cse.c (preferrable): Change to preferable. Update all of its
7162         callers.
7163         * genautomata.c (ainsn): Change
7164         first_ainsn_with_given_equialence_num to
7165         first_ainsn_with_given_equivalence_num.  Update all of its
7166         references.
7167
7168 2004-02-08  Jan Hubicka  <jh@suse.cz>
7169
7170         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
7171
7172 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
7173
7174         * function.c (assign_parms): Fix formatting.
7175
7176 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
7177
7178         * default.h (PROMOTE_PROTOTYPES): Remove.
7179         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
7180         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
7181         EXPAND_BUILTIN_SAVEREGS): Poison.
7182         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
7183         hook_bool_tree_false.
7184         (TARGET_PROMOTE_PROTOTYPES): Likewise.
7185         * target.h: Replace SETUP_INCOMING_VARARGS with
7186         targetm.calls.setup_incoming_varargs().
7187         * targhooks.c (default_promote_function_return): Remove.
7188         (default_promote_prototypes): Likewise.
7189         (default_struct_value_rtx): Always abort().
7190         (default_expand_builtin_saveregs): Always print an error
7191         message.
7192         (default_setup_incoming_varargs): Do nothing.
7193         (default_pretend_outgoing_varargs_named): Don't depend on
7194         SETUP_INCOMING_VARARGS.
7195         * targhooks.h: Remove the prototype for
7196         default_promote_function_return and
7197         default_promote_prototypes.
7198
7199 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
7200
7201         * system.h (SHARED_SECTION_ASM_OP): Poison.
7202         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
7203         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
7204
7205 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
7206
7207         Bug 13856
7208         * c-decl.c (diagnose_mismatched_decls): Only give special
7209         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
7210         is also true.
7211         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
7212         DECL_FUNCTION_CODE when defining a built-in function.
7213         Don't update DECL_ESTIMATED_INSNS.
7214         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
7215         FUNCTION_DECLs.
7216         * tree.h: Delete DECL_ESTIMATED_INSNS.
7217         * tree-inline.c (struct inline_data): Delete inlined_insns field.
7218         (expand_call_inline, optimize_inline_calls): Don't update
7219         DECL_ESTIMATED_INSNS nor inlined_insns.
7220         * cgraphunit.c (cgraph_analyze_function): Don't update
7221         DECL_ESTIMATED_INSNS.
7222
7223 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
7224
7225         * c-common.c (shadow_warning): Delete.
7226         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
7227         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
7228         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
7229         * c-parse.in (free_parser_stacks): Delete.
7230
7231 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
7232
7233         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
7234         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
7235         Use the top level mkinstalldirs, not the one in the gcc subdir.
7236         * mkinstalldirs: Remove (from the gcc subdir).
7237
7238 2004-02-07  Roger Sayle  <roger@eyesopen.com>
7239
7240         PR middle-end/13696
7241         * fold-const.c (fold_convert): New function to provide type
7242         conversion to the middle-end without using convert.
7243         (negate_expr, associate_trees, size_diffop, omit_one_operand,
7244         operand_equal_for_comparison_p, pedantic_omit_one_operand,
7245         invert_truthvalue, optimize_bit_field_compare, range_binop,
7246         decode_field_reference, make_range, build_range_check, unextend,
7247         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
7248         fold_binary_op_with_conditional_arg, fold_inf_compare,
7249         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
7250         convert with calls to fold_convert.
7251
7252 2004-02-07  Jan Hubicka  <jh@suse.cz>
7253
7254         * genrecog.c (find_operand): add extra argument stop.
7255         (validate_pattern): Verify that mach_dup is duplicating operand
7256         defined lexically earlier.
7257
7258 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
7259
7260         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
7261         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
7262         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
7263         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
7264         config/ia64/ia64.h, config/ip2k/ip2k.h,
7265         config/iq2000/iq2000.h, config/mips/iris5.h,
7266         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
7267         config/rs6000/aix51.h, config/rs6000/aix52.h,
7268         config/rs6000/darwin.h, config/rs6000/rs6000.h,
7269         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
7270         config/sparc/linux.h, config/sparc/linux64.h,
7271         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
7272         config/xtensa/xtensa.h: Remove the definitions of
7273         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
7274         MAX_WCHAR_TYPE_SIZE.
7275         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
7276         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
7277
7278 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
7279
7280         PR bootstrap/13990
7281         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
7282         gen_rtx_NE.
7283
7284 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
7285
7286         * var-tracking.c (vt_add_function_parameters): Surround checkings by
7287         #ifdef ENABLE_CHECKING and #endif.
7288
7289 2004-02-07  Roger Sayle  <roger@eyesopen.com>
7290
7291         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
7292         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
7293         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
7294         integer types and floating point with unsafe_math_optimizations.
7295         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
7296         Optimize A - B as A + (-B), if B is easily negated.
7297
7298 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
7299
7300         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
7301         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
7302         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
7303         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
7304         Update copyright.
7305
7306 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
7307
7308         * c-ppoutput.c, var-tracking.c: Fix comment typos.
7309
7310 2004-02-06  James E Wilson  <wilson@specifixinc.com>
7311
7312         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
7313         glibc 2.3 or better.
7314
7315 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7316
7317         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
7318         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
7319
7320 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
7321
7322         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
7323         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
7324         (SHLIB_MKMAP_OPTS): Delete.
7325         (TARGET_LIBGCC2_CFLAGS): Add -specs.
7326         (bispecs): Add rule.
7327         * config/rs6000/libgcc-ppc64.ver: New file.
7328         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
7329         (__floatdidf, __floatdisf): Optimize multiply.
7330         (__fixunstfdi): New function.
7331         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
7332         real and imag parts larger than one register.
7333         (function_arg): Correct type of reg used when fp arg split partially
7334         to stack.
7335         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
7336         and __MACH__ or __powerpc64__.
7337
7338 2004-02-06  Roger Sayle  <roger@eyesopen.com>
7339             Ulrich Weigand  <uweigand@de.ibm.com>
7340
7341         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
7342         of gen_highpart or gen_lowpart when the floating point format is
7343         wider than the result mode.
7344
7345 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
7346
7347         * dwarf2out.c (loclabel_num): Move into #ifdef
7348         DWARF2_DEBUGGING_INFO.
7349
7350 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
7351
7352         * objc/objc-act.c (build_super_template) the 'class' field of
7353         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
7354         (get_super_receiver): Likewise.
7355
7356 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7357
7358         * reload1.c (check_eliminable_occurrences): Optimize the reset
7359         of can_eliminate.
7360         (eliminate_regs_in_insn): Likewise.
7361
7362 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
7363             Josef Zlomek  <zlomekj@suse.cz>
7364
7365         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
7366         at the beginning of function, call dwarf2out_var_location for
7367         NOTE_INSN_VAR_LOCATION note.
7368         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
7369         decl_loc_table): New.
7370         (lookup_decl_loc): New function.
7371         (add_var_loc_to_decl): New function.
7372         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
7373         only if can_use_fbreg.
7374         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
7375         functions.
7376         (loc_descriptor): Likewise. Process VAR_LOCATION.
7377         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
7378         (loc_descriptor_from_tree): Call mem_loc_descriptor with
7379         can_use_fbreg == true.
7380         (add_location_or_const_value_attribute): Added parameter enum
7381         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
7382         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
7383         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
7384         with attr == DW_AT_location.
7385         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
7386         if frame_base_decl is defined and has a location list.
7387         (gen_variable_die): Call add_location_or_const_value_attribute with
7388         attr == DW_AT_location.
7389         (dwarf2out_var_location): New function.
7390         (dwarf2out_begin_function): New function.
7391         (dwarf2out_init): Create decl_loc_table.
7392
7393 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
7394
7395         * loop.c (force_movables): Transitively increase the priorities of
7396         all insns forces by an insn, not just the first one.
7397
7398 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
7399             Daniel Berlin <dberlin@dberlin.org>
7400
7401         Josef Zlomek  <zlomekj@suse.cz>
7402         * Makefile.in (var-tracking.o): New.
7403         * common.opt (fvar-tracking): New.
7404         * flags.h (flag_var_tracking): New.
7405         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
7406         * opts.c (common_handle_option): Add OPT_fvar_tracking.
7407         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
7408         * rtl.c (note_insn_name): Likewise.
7409         * rtl.def (VAR_LOCATION): New.
7410         * rtl.h (NOTE_VAR_LOCATION): New.
7411         (NOTE_VAR_LOCATION_DECL): New.
7412         (NOTE_VAR_LOCATION_LOC): New.
7413         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
7414         (variable_tracking_main): New exported function.
7415         * timevar.def (TV_VAR_TRACKING): New.
7416         * toplev.c (enum dump_file_index): Added DFI_vartrack.
7417         (dump_file): "vartrack" was added (-dV).
7418         (flag_var_tracking): New.
7419         (f_options): "var-tracking" was added.
7420         (rest_of_handle_variable_tracking): New function.
7421         (rest_of_compilation): Run variable tracking.
7422         (process_options): If user has not specified flag_var_tracking set it
7423         according to optimize, debug_info_level and debug_hooks.
7424         * tree.h (frame_base_decl): New.
7425         * var-tracking.c: New file.
7426         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
7427         (ia64_override_options): Set flags to run variable tracking in machine
7428         dependent reorg instead of toplev.c.
7429         (ia64_reorg): Run variable tracking if wanted.
7430         * doc/invoke.texi: Mention variable tracking in -dV,
7431         add and -fvar-tracking.
7432         * doc/passes.texi: Added variable tracking pass.
7433
7434         Daniel Berlin <dberlin@dberlin.org>
7435         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
7436         * dbxout.c (dbx_debug_hooks): Likewise.
7437         (xcoff_debug): Likewise.
7438         * debug.c (do_nothing_debug_hooks): Likewise.
7439         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
7440         * dwarfout.c (dwarf_debug_hooks): Likewise.
7441         * sdbout.c (sdb_debug_hooks): Likewise.
7442         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
7443         * final.c (final_scan_insn): Call var_location debug hook for each
7444         NOTE_INSN_VAR_LOCATION.
7445
7446 2004-02-06  Jan Hubicka  <jh@suse.cz>
7447
7448         * flow.c (update_life_info): Allocate reg_deaths when called from
7449         scheudler.
7450         (attempt_auto_inc):  Update life ranges accordingly.
7451
7452 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
7453
7454         PR debug/11816
7455         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
7456
7457 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
7458
7459         * cfganal.c (flow_call_edges_add): Never split a libcall block.
7460
7461 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
7462
7463         * dwarf2out.c (output_loc_list): Don't use deltas if we have
7464         a separate line info table in use.
7465         Use the correct size for terminators.
7466         (output_die): Use offset, not delta.
7467
7468 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
7469
7470         * doc/invoke.texi: Remove the pni option from -mfpmath=.
7471
7472 2004-02-06  Jan Hubicka  <jh@suse.cz>
7473
7474         * recog.c (split_all_insns): Do not update reg info.
7475         * regrename.c (regrename_optimize): Likewise.
7476         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
7477         * flow.c (struct propagate_block_info): Add insn_num field.
7478         (reg_deaths): New array.
7479         (life_analysis): Free reg_deaths info.
7480         (allocate_reg_life_data): Allocate reg_deaths array.
7481         (propagate_one_insn): Use new array.
7482         (init_propagate_block): Initialize it.
7483         (free_propagate_block_info): Finish compuation of
7484         REG_LIVE_LENGTH
7485         (attempt_auto_inc): Sanity check that REG_INFO is not
7486         computed at same time.
7487         (mark_used_regs): Update new array.
7488
7489         * reg-stack.c (subst_stack_regs): Unshare clobbers before
7490         substitution.
7491
7492 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7493
7494         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
7495         *extendqisi2_short_displ.
7496
7497 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
7498
7499         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
7500         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
7501         (emit_library_call_value_1): Likewise pass nargs.
7502         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
7503         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
7504         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
7505         parameter instead of scanning TYPE_ARGS_TYPES to count args.
7506         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
7507         prototype.
7508         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
7509         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
7510         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
7511         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
7512         INIT_CUMULATIVE_ARGS.
7513         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
7514         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
7515         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
7516         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
7517         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
7518         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
7519         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
7520         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
7521         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
7522         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
7523         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
7524         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
7525
7526 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7527
7528         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
7529         possible.
7530
7531 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7532
7533         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
7534         note containing (plus (reg) (const_int)), where reg is an
7535         eliminable reg, then perform the register elimination without
7536         depending on eliminate_regs().
7537
7538 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7539
7540         * config/arc/arc.c (arc_return_in_memory): Check the return
7541         value of int_size_in_bytes against -1.  Don't check
7542         TREE_ADDRESSABLE.
7543         * config/avr/avr.c (avr_return_in_memory): Check the return
7544         value of int_size_in_bytes against -1.
7545         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
7546         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
7547         Likewise.
7548         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
7549         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
7550         Likewise.
7551
7552 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7553
7554         * config/frv/frv-protos.h: Remove the prototype for
7555         frv_setup_incoming_varargs.
7556         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
7557         (frv_setup_incoming_varargs): Make it static.
7558         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
7559
7560 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7561
7562         * config/fr30/fr30-protos.h: Remove the prototype for
7563         fr30_setup_incoming_varargs.
7564         Update the prototypes for fr30_num_arg_regs and
7565         fr30_function_arg_partial_nregs.
7566         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
7567         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
7568         (fr30_setup_incoming_varargs): Make it static.
7569         Add argument second_time.  Don't do anything when second_time
7570         is nonzero.
7571         (fr30_num_arg_regs): Change the type of the first argument to
7572         enum machine_mode.
7573         (fr30_function_arg_partial_nregs): Change the type of the
7574         second argument to enum machine_mode.
7575         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
7576         (SETUP_INCOMING_VARARGS): Remove.
7577
7578 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7579
7580         * config/arc/arc-protos.h: Remove the prototype for
7581         arc_setup_incoming_varargs.
7582         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
7583         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
7584         (arc_setup_incoming_varargs): Make it static.
7585         (arc_external_libcall): Likewise.
7586         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
7587         Remove the commented-out definition of
7588         ASM_OUTPUT_EXTERNAL_LIBCALL.
7589
7590 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
7591
7592         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
7593         to $$(slibdir) in the installation commands.
7594
7595 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
7596
7597         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
7598         with inner_regno, not regno.
7599         * rtlanal.c (refers_to_regno_p): Same.
7600
7601 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7602
7603         * config.gcc: Remove i370 support.
7604
7605 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
7606
7607         * doc/install.texi:  Update automake and autoconf version
7608         requirements.  Note where to find gcj automake version.
7609
7610 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
7611
7612         * Makefile.in (generate-manpages): Move dependencies to ...
7613         (man): here.
7614         * doc/makefile.texi: Document new targets.
7615         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
7616
7617 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
7618
7619         PR/13485
7620         Makefile.in (srcextra):  Add a level of indirection to ...
7621         (gcc.srcextra): ... here.
7622         (po-generated): Delete.
7623         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
7624         options.c.
7625         (start.encap): Remove superfluous lang.srcextra dependency.
7626         objc/Make-lang.in (po-generated):  Delete.
7627
7628 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7629
7630         * config/ia64/ia64.c (REG_GP): Remove.
7631
7632 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7633
7634         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
7635
7636 2004-02-05  Devang Patel  <dpatel@apple.com>
7637
7638         * dwarf2out.c (force_type_die): Look up input type itself
7639         instead of root_type() of type.
7640
7641 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
7642
7643         * config/s390/s390.md ("*tmqidi_ext"): New insn.
7644         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
7645         pre-reload splitters are transformed to post-reload
7646         define_insn_and_split patterns.
7647         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
7648
7649 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7650
7651         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
7652         TARGET_PROMOTE_PROTOTYPES.
7653
7654 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7655
7656         PR middle-end/13750
7657         Revert:
7658         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
7659         PR pch/13361
7660         * c-typeck.c (constructor_asmspec): Delete.
7661         (struct initializer_stack): Delete field 'asmspec'.
7662         (start_init): Delete saving of asmspec.
7663         (finish_init): Don't update constructor_asmspec.
7664         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
7665         * stmt.c (expand_asm): Duplicate strings from tree.
7666         (expand_asm_operands): Likewise.
7667         * tree.c (tree_size): Update computation of size of STRING_CST.
7668         (make_node): Don't make STRING_CST nodes.
7669         (build_string): Allocate string with tree node.
7670         * tree.def (STRING_CST): Update comment.
7671         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
7672         (tree_string): Place contents of string in tree node.
7673         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
7674         from tree.
7675
7676 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
7677
7678         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
7679         msgid.
7680
7681 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
7682
7683         * config/rs6000/altivec.md (*movv4si_internal): At least one
7684         operand must be altivec_register_operand.
7685         (*movv8hi_internal1): Likewise.
7686         (*movv16qi_internal1): Likewise.
7687         (*movv4sf_internal1): Likewise.
7688
7689 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
7690
7691         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
7692         * configure: Regenerate.
7693
7694 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
7695
7696         * doc/install.texi: Update description of --gxx-include-dir to
7697         give correct default value.
7698
7699 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7700
7701         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
7702         8 with MAC_REG.
7703
7704 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7705
7706         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
7707         gen_rtx_PARALLEL.
7708
7709 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7710
7711         * emit-rtl.c: Update the comment about the file.
7712
7713 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
7714
7715         * sourcebuild.texi (Test Idioms): Update testcase naming
7716         conventions.
7717
7718 2004-02-04  Per Bothner  <per@bothner.com>
7719
7720         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
7721         * c-ppoutput.c (pp_dir_change):  New function.
7722         * c-common.h (pp_dir_change):  New declaration.
7723         * cpplib.h (struct cpp_options):  Remove working_directory field.
7724         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
7725         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
7726         Don't handle -fworking_directory here, but in c_common_post_options.
7727         (read_original_directory): Don't back up when done.
7728         Don't clear no-longer used working_directory flag.
7729         * cpplib.h:  Update declarations to match.
7730         * c-lex.c (cb_dir_change):  Move to c-opts.c.
7731         (init_c_lex):  Don't set dir_change callback here, since we want
7732         to set it even if flag_preprocess_only.
7733         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
7734         (c_common_post_options):  Set dir_change callback.
7735         Call pp_dir_change if approporiate.
7736         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
7737         unneeded parameter and result. Do LC_RENAME for <built-in>.
7738         (c_common_post_options):  Call cpp_read_main_file here instead.
7739         (c_common_init):  Update accordingly.
7740         (push_command_line_include):  Don't cpp_push_main_file.
7741         Do LC_RENAME rather than LC_LEASE to get back to main file.
7742         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
7743         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
7744         files, but call finish_options for all files.
7745         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
7746         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
7747         cpp_find_main_file + cpp_push_main_file.
7748         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
7749         * opts.c (handle_options):  Only set main_input_filename first time.
7750
7751 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
7752
7753         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
7754
7755 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
7756
7757         * reload.c (find_equiv_reg): When checking for register overlap,
7758         don't index hard_regno_nregs with a pseudo-reg.
7759
7760 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
7761
7762         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
7763
7764 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
7765
7766         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
7767         against FIRST_PSEUDO_REGISTER.
7768
7769 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7770
7771         * Makefile.in: Move target, host overrides after per-language
7772         fragments.
7773
7774         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
7775         (GNATLIBCFLAGS): Remove -g.
7776
7777 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7778
7779         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
7780         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
7781         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
7782         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
7783         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
7784         config/sparc/sparc.c, config/vax/vax.c: Revert the
7785         replacements of "FALLTHRU" with "Fall through" done in the
7786         previous patch.
7787
7788 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7789
7790         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
7791         config/arm/arm.c, config/arm/arm.md,
7792         config/cris/cris-protos.h, config/fr30/fr30.c,
7793         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
7794         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
7795         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
7796         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
7797         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
7798         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
7799         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
7800         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
7801         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
7802         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
7803         config/s390/s390.md, config/sparc/netbsd-elf.h,
7804         config/sparc/openbsd.h, config/sparc/sparc.c,
7805         config/xtensa/lib2funcs.S: Fix comment formatting.
7806
7807 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7808
7809         * config/alpha/alpha.c, config/arc/arc.c,
7810         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
7811         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
7812         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
7813         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
7814         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
7815         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
7816         config/iq2000/iq2000.c, config/m32r/m32r.c,
7817         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
7818         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
7819         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
7820         config/rs6000/rs6000.h, config/sparc/sparc.c,
7821         config/vax/vax.c: Fix comment typos.  Follow spelling
7822         conventions.
7823
7824 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7825
7826         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
7827         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
7828         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
7829         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
7830         config/arm/fpa.md, config/arm/iwmmxt.md,
7831         config/arm/netbsd-elf.h, config/arm/netbsd.h,
7832         config/m68hc11/m68hc11.md, config/mips/iris5.h,
7833         config/mn10300/mn10300.md, config/rs6000/altivec.md,
7834         config/sparc/netbsd-elf.h: Update copyright.
7835
7836 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
7837
7838         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
7839         for all modes whose size is greater than 8 bytes if ARCH32.
7840         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
7841         by reference if ARCH32.
7842
7843 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
7844
7845         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
7846
7847 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
7848
7849         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
7850         to before adddi3 insn patterns.
7851         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
7852         "reload_insi"): Move to before addsi3 insn patterns.
7853
7854 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
7855
7856         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
7857         parameter.  Use it instead of current_function_is_thunk.
7858         * function.h (struct function): Update documentation for is_thunk.
7859         * tree.h (CALL_FROM_THUNK_P): New macro.
7860         * config/alpha/alpha.c (alpha_sa_mask): Do not check
7861         no_new_pseudos when testing current_function_is_thunk.
7862         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
7863
7864 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7865
7866         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
7867         TARGET_SETUP_INCOMING_VARARGS.
7868
7869 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7870
7871         * emit-rtl.c (gen_rtx): Remove.
7872         * genattrtab.c: Don't mention gen_rtx in a comment.
7873         * rtl.h: Remove the prototype for gen_rtx.
7874         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
7875
7876 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7877
7878         * config/arc/arc.h, config/fr30/fr30.h
7879         (SETUP_INCOMING_VARARGS): Remove the target-independent
7880         comments.
7881         * doc/tm.texi: Don't mention deprecated target macros.
7882
7883 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7884
7885         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
7886         target-independent comment.
7887
7888 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7889
7890         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
7891         mention deprecated target macros.
7892
7893 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7894
7895         * config.gcc: Remove obsolete ports and configurations.
7896         * config/linux-aout.h, config/netware.h,
7897         config/t-linux-gnulibc1, config/d30v/abi,
7898         config/d30v/d30v-protos.h, config/d30v/d30v.c,
7899         config/d30v/d30v.h, config/d30v/d30v.md,
7900         config/d30v/libgcc1.asm, config/d30v/t-d30v,
7901         config/dsp16xx/dsp16xx-modes.def,
7902         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
7903         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
7904         config/i370/README, config/i370/i370-c.c,
7905         config/i370/i370-protos.h, config/i370/i370.c,
7906         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
7907         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
7908         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
7909         config/i386/moss.h, config/i386/netware.h,
7910         config/i386/svr3.ifile, config/i386/svr3dbx.h,
7911         config/i386/svr3gas.h, config/i386/svr3z.ifile,
7912         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
7913         config/i960/i960-c.c, config/i960/i960-coff.h,
7914         config/i960/i960-modes.def, config/i960/i960-protos.h,
7915         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
7916         config/i960/rtems.h, config/i960/t-960bare,
7917         config/m68k/hp310.h, config/m68k/hp320.h,
7918         config/m68k/hp320base.h, config/m68k/m68kv4.h,
7919         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
7920         Remove.
7921         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
7922         doc/md.texi: Remove mentions of obsolete ports.
7923
7924 2004-02-04  Jan Hubicka  <jh@suse.cz>
7925
7926         * alias.c (find_base_term, get_addr):  Do not dereference NULL
7927         pointer when all VALUE's locations has been invalidated.
7928         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
7929
7930 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
7931
7932         * doc/invoke.texi (x86 options): Fix spelling/wording.
7933
7934 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
7935
7936         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
7937         put the original string in a comment.
7938         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
7939         * config/mips/mips.c (mips_output_ascii): Likewise.
7940         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
7941
7942 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
7943
7944         * system.h (GIV_SORT_CRITERION): Poison.
7945         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
7946         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
7947
7948 2004-02-03  Roger Sayle  <roger@eyesopen.com>
7949
7950         PR target/9348
7951         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
7952         multiplies with a multiplication of the wrong signedness, its the
7953         signedness of the multiplication that we've performed that needs to
7954         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
7955         if expand_mult_highpart_adjust places the result in target.
7956
7957 2004-02-03  Richard Henderson  <rth@redhat.com>
7958
7959         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
7960
7961 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
7962
7963         * config.gcc (sh[234]l): Use little endian fragments.
7964
7965 2004-02-03  Paul Koning  <pkoning@equallogic.com>
7966
7967         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
7968         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
7969         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
7970         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
7971         floating point format.
7972         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
7973         the above functions.
7974         (output_move_quad): Output float values in correct target format.
7975         (legitimate_const_double_p): New function.
7976         * config/pdp11/pdp11.h: Fix typos.
7977         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
7978         (TARGET_FLOAT_FORMAT): Ditto.
7979         (pdp11_f_format, pdp11_d_format): Add external declarations.
7980         (MAX_REGS_PER_ADDRESS): Corrected.
7981         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
7982         (PRINT_OPERAND): Output float literals in target format.
7983
7984 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
7985
7986         PR c++/13975
7987         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
7988         TI_PRIVATE.
7989         (access_public_node): Redefine.
7990         (access_protected_node): Likewise.
7991         (access_private_node): Likewise.
7992         * tree.c (build_common_tree_nodes): Create access_public_node,
7993         access_protected_node, and access_private_node.
7994
7995 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
7996
7997         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
7998         (MASK_INLINE_INT_DIV_THR): Ditto.
7999         (MASK_INLINE_SQRT_LAT): Ditto.
8000         (MASK_INLINE_SQRT_THR): Ditto.
8001         (MASK_DWARF2_ASM): Ditto.
8002         (MASK_EARLY_STOP_BITS): Ditto.
8003
8004 2004-02-02  Paul Brook  <paul@codesourcery.com>
8005
8006         Merge from csl-arm-branch.
8007
8008         2004-01-30  Paul Brook  <paul@codesourcery.com>
8009
8010         * aof.h (REGISTER_NAMES): Add vfp reg names
8011         (ADDITIONAL_REGISTER_NAMES): Ditto.
8012         * aout.h (REGISTER_NAMES): Ditto.
8013         (ADDITIONAL_REGISTER_NAMES): Ditto.
8014         * arm-protos.h: Update/Add Prototypes.
8015         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
8016         Only allow 0.0 for VFP.
8017         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
8018         (values_fp): Rename from values_fpa.  Update Users.
8019         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
8020         Update users.  Only check valid constants for this hardware.
8021         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
8022         Only allow consts for FPA.
8023         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
8024         Only allow consts for FPA.
8025         (use_return_insn): Check for saved VFP regs.
8026         (arm_legitimate_address_p): Handle VFP DFmode addressing.
8027         (arm_legitimize_address): Ditto.
8028         (arm_general_register_operand): New function.
8029         (vfp_mem_operand): New function.
8030         (vfp_compare_operand): New function.
8031         (vfp_secondary_reload_class): New function.
8032         (arm_float_compare_operand): New function.
8033         (vfp_print_multi): New function.
8034         (vfp_output_fstmx): New function.
8035         (vfp_emit_fstm): New function.
8036         (arm_output_epilogue): Output VPF reg restore code.
8037         (arm_expand_prologue): Output VFP reg save code.
8038         (arm_print_operand): Add 'P'.
8039         (arm_hard_regno_mode_ok): Return modes for VFP regs.
8040         (arm_regno_class): Return classes for VFP regs.
8041         (arm_compute_initial_elimination_offset): Include space for VFP regs.
8042         (arm_get_frame_size): Ditto.
8043         * arm.h (FIXED_REGISTERS): Add VFP regs.
8044         (CALL_USED_REGISTERS): Ditto.
8045         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
8046         (FIRST_VFP_REGNUM): Define.
8047         (LAST_VFP_REGNUM): Define.
8048         (IS_VFP_REGNUM): Define.
8049         (FIRST_PSEUDO_REGISTER): Include VFP regs.
8050         (HARD_REGNO_NREGS): Handle VFP regs.
8051         (REG_ALLOC_ORDER): Add VFP regs.
8052         (enum reg_class): Add VFP_REGS.
8053         (REG_CLASS_NAMES): Ditto.
8054         (REG_CLASS_CONTENTS): Ditto.
8055         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
8056         (REG_CLASS_FROM_LETTER): Add 'w'.
8057         (EXTRA_CONSTRAINT_ARM): Add 'U'.
8058         (EXTRA_MEMORY_CONSTRAINT): Define.
8059         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
8060         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
8061         (REGISTER_MOVE_COST): Ditto.
8062         (PREDICATE_CODES): Add arm_general_register_operand,
8063         arm_float_compare_operand and vfp_compare_operand.
8064         * arm.md (various): Rename as above.
8065         (divsf3): Enable when TARGET_VFP.
8066         (divdf3): Ditto.
8067         (movdfcc): Ditto.
8068         (sqrtsf2): Ditto.
8069         (sqrtdf2): Ditto.
8070         (arm_movdi): Disable when TARGET_VFP.
8071         (arm_movsi_insn): Ditto.
8072         (movsi): Only split with general regs.
8073         (cmpsf): Use arm_float_compare_operand.
8074         (push_fp_multi): Restrict to TARGET_FPA.
8075         (vfp.md): Include.
8076         * vfp.md: New file.
8077         * fpa.md (various): Rename as above.
8078         * doc/md.texi: Document ARM w and U constraints.
8079
8080         2004-01-15  Paul Brook  <paul@codesourcery.com>
8081
8082         * config.gcc: Add with_fpu.  Allow with-float=softfp.
8083         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
8084         Break out of loop when we find a float-abi.  Fix typo.
8085         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
8086         Set -mfloat-abi=.
8087         * doc/install.texi: Document --with-fpu.
8088
8089         2003-01-14  Paul Brook  <paul@codesourcery.com>
8090
8091         * config.gcc (with_arch): Add armv6.
8092         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
8093         * config/arm/arm.c (arm_overrride_options): Ditto.
8094
8095         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
8096
8097         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
8098         (FL_ARCH6): Renamed from FL_ARCH6J.
8099         (arm_arch3m): Renamed from arm_fast_multiply.
8100         (arm_arch6): Renamed from arm_arch6j.
8101         * arm.h: Update all uses of above.
8102         * arm-cores.def: Likewise.
8103         * arm.md: Likewise.
8104
8105         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
8106         not arm6j.  Add entry for arch armv6.
8107
8108         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
8109
8110         * arm.c (arm_emit_extendsi): Delete.
8111         * arm-protos.h (arm_emit_extendsi): Delete.
8112         * arm.md (zero_extendhisi2): Also handle zero-extension of
8113         non-subregs.
8114         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
8115         (thumb_zero_extendhisi2): Only match if not v6.
8116         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
8117         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
8118         (thumb_extendqisi2): Likewise.
8119         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
8120         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
8121         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
8122         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
8123         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
8124         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
8125         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
8126         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
8127         (arm_extendqisi2addsi): Likewise.
8128
8129         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
8130
8131         Revert this change:
8132         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
8133         + REG addressing modes.
8134
8135         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
8136         + REG addressing modes.
8137
8138         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
8139
8140         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
8141         CONSTANT_P_RTX.
8142
8143         2003-30-12  Paul Brook  <paul@codesourcery.com>
8144
8145         * longlong.h: protect arm inlines with !defined (__thumb__)
8146
8147         2003-30-12  Paul Brook  <paul@codesourcery.com>
8148
8149         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
8150
8151         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
8152
8153         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
8154         change.
8155
8156         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
8157
8158         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
8159         to the virtual incoming args pointer for downward stacks.
8160
8161         2003-12-29  Paul Brook  <paul@codesourcery.com>
8162
8163         * config/arm/arm-cores.def: Add cost function.
8164         * config/arm/arm.c (arm_*_rtx_costs): New functions.
8165         (arm_rtx_costs): Remove
8166         (struct processors): Add rtx_costs field.
8167         (all_cores, all_architectures): Ditto.
8168         (arm_override_options): Set targetm.rtx_costs.
8169         (thumb_rtx_costs): New function.
8170         (arm_rtx_costs_1): Remove cases handled elsewhere.
8171         * config/arm/arm.h (processor_type): Add COSTS parameter.
8172
8173         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
8174
8175         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
8176         (arm926ejs.md): Include it.
8177         * config/arm/arm926ejs.md: New pipeline description.
8178
8179         2003-12-24  Paul Brook  <paul@codesourcery.com>
8180
8181         * config/arm/arm.c (arm_arch6j): New variable.
8182         (arm_override_options): Set it.
8183         (arm_emit_extendsi): New function.
8184         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
8185         * config/arm/arm.h (arm_arch6j): Declare.
8186         * config/arm/arm.md: Add sign/zero extend insns.
8187
8188         2003-12-23  Paul Brook  <paul@codesourcery.com>
8189
8190         * config/arm/arm.c (all_architectures): Add armv6.
8191         * doc/invoke.texi: Document it.
8192
8193         2003-12-19  Paul Brook  <paul@codesourcery.com>
8194
8195         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
8196         insn patterns to match.
8197         * config/arm/arm-generic.md: Ditto.
8198         * config/arm/cirrus.md: Ditto.
8199         * config/arm/fpa.md: Ditto.
8200         * config/amm/iwmmxt.md: Ditto.
8201         * config/arm/arm1026ejs.md: Ditto.
8202         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
8203         for 11_loadb.
8204
8205         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
8206
8207         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
8208         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
8209         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
8210         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
8211         arm_no_early_mul_dep): Correctly deal with conditional execution,
8212         parallels and single shift operations.
8213         (arm_no_early_alu_shift_value_dep): Define.
8214         * arm.md (attr type): Replace 'normal' with 'alu',
8215         'alu_shift' and 'alu_shift_reg'.
8216         (attr core_cycles): Adjust.
8217         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
8218         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
8219         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
8220         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
8221         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
8222         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
8223         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
8224         attribute appropriately.
8225         * config/arm/arm1026ejs.md (alu_op): Adjust.
8226         (alu_shift_op, alu_shift_reg_op): New.
8227         * config/arm/arm1136.md: Add better bypasses for early
8228         registers. Remove load[234] and store[234] bypasses.
8229         (11_alu_op): Adjust.
8230         (11_alu_shift_op, 11_alu_shift_reg_op): New.
8231
8232         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
8233
8234         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
8235         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
8236         * config/arm/arm.c (arm_no_early_store_addr_dep,
8237         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
8238         * config/arm/arm1026ejs.md: Add load-store bypass.
8239         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
8240         Add bypasses between instructions.
8241
8242         2003-12-10  Paul Brook  <paul@codesourcery.com>
8243
8244         * config/arm/arm.c (arm_fpu_model): New variable.
8245         (arm_fload_abi): New variable.
8246         (target_fpe_name): Rename from target_fp_name.
8247         (target_fpu_name): New variable.
8248         (arm_is_cirrus): Remove.
8249         (fpu_desc): New struct.
8250         (all_fpus): Define.
8251         (pf_model_for_fpu): Define.
8252         (all_loat_abis): Define.
8253         (arm_override_options): Set fp arch flags based on -mfpu=
8254         and -float-abi=.
8255         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
8256         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
8257         (*): Use new TARGET_* flags.
8258         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
8259         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
8260         (TARGET_SOFT_FLOAT): Ditto.
8261         (TARGET_SOFT_FLOAT_ABI): New.
8262         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
8263         TARGET_HARD_FLOAT.
8264         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
8265         (TARGET_OPTIONS): Add -mfpu=.
8266         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
8267         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
8268         (arm_pf_model): Define.
8269         (arm_float_abi_type): Define.
8270         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
8271         * config/arm/arm.md: Use new TARGET_* flags.
8272         * config/arm/cirrus.md: Ditto.
8273         * config/arm/fpa.md: Ditto.
8274         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
8275         * config/arm/semi.h (ASM_SPEC): Ditto.
8276         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
8277         (FPUTYPE_DEFAULT): Set to VFP.
8278         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
8279
8280         2003-11-22  Phil Edwards  <phil@codesourcery.com>
8281
8282         PR target/12476
8283         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
8284         'bx' instead of 'b' to avoid branch range restrictions.  Output
8285         the thunk immediately before the thunked-to function.
8286         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
8287         .thumb_func if a thunk is being generated.  Emit .code 16 along
8288         with .thumb_func if a thunk is not being generated.
8289
8290         2003-11-15  Nicolas Pitre <nico@cam.org>
8291
8292         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
8293         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
8294         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
8295         (lshrdi3_iwmmxt): Renamed from lshrdi3.
8296         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
8297
8298         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
8299             Ian Lance Taylor  <ian@wasabisystems.com>
8300
8301         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
8302         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
8303
8304         2003-11-05  Phil Edwards  <phil@codesourcery.com>
8305
8306         * config/arm/arm.md (insn):  Add new V6 instruction names.
8307         (generic_sched):  New attr.
8308         * config/arm/arm-generic.md:  Use generic_sched here.
8309         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
8310         stages of pipeline.  Adjust latency counts accordingly.
8311         * config/arm/arm1136jfs.md:  New file.
8312
8313         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
8314
8315         * config/arm/arm.h (processor_type): New enumeration type.
8316         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
8317         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
8318         (CPP_CPU_ARCH_SPEC): Likewise.
8319         * config/arm/arm.c (arm_tune): New variable.
8320         (all_cores): Use cores.def.
8321         (all_architectures): Add representative processor.
8322         (arm_override_options): Restructure way in which tuning
8323         information is deduced.
8324         * arm.md: Update "insn" and "type" attributes throughout.
8325         (insn): New attribute.
8326         (type): Compute "mult" from "insn" attribute.  Add load2,
8327         load3, load4 alternatives.
8328         (arm automaton): Move to arm-generic.md.
8329         * config/arm/arm-cores.def: New file.
8330         * config/arm/arm-generic.md: Likewise.
8331         * config/arm/arm1026ejs.md: Likewise.
8332
8333 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
8334
8335         * doc/invoke.texi (SPARC options): Remove -mflat and
8336         all -mxxx (xxx:chip) options.
8337         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
8338         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
8339         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
8340         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
8341         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
8342         * config/sparc/sparc.c: Likewise.
8343         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
8344         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
8345         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
8346         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
8347         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
8348         (sparc_flat_must_save_register_p): Likewise.
8349         (sparc_flat_compute_frame_size): Likewise.
8350         (sparc_flat_save_restore): Likewise.
8351         (sparc_flat_function_prologue): Likewise.
8352         (sparc_flat_function_epilogue): Likewise.
8353         (sparc_flat_epilogue_delay_slots): Likewise.
8354         (sparc_flat_eligible_for_epilogue_delay): Likewise.
8355         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
8356         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
8357         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
8358         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
8359         (CONDITIONAL_REGISTER_USAGE): Likewise.
8360         (FRAME_POINTER_REQUIRED): Likewise.
8361         (INITIAL_ELIMINATION_OFFSET): Likewise.
8362         (BASE_RETURN_VALUE_REG): Likewise.
8363         (BASE_OUTGOING_VALUE_REG): Likewise.
8364         (BASE_PASSING_ARG_REG): Likewise.
8365         (BASE_INCOMING_ARG_REG): Likewise.
8366         (INCOMING_REGNO): Likewise.
8367         (OUTGOING_REGNO): Likewise.
8368         (LOCAL_REGNO): Likewise.
8369         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
8370         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
8371         (EPILOGUE_USES): Likewise.
8372         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
8373         ("flat" attribute): Delete.
8374         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
8375         handling.
8376         (call followed by jump define_peephole's): Delete.
8377         (exception_receiver): Likewise.
8378         (builtin_setjmp_receiver): Likewise.
8379         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
8380
8381 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
8382
8383         PR c/11658
8384         PR c/13994
8385         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
8386         on langhooks.h.
8387         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
8388         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
8389         Include langhooks.h.  Replace c_common_truthvalue_conversion
8390         with the truthvalue_conversion language hook throughout.
8391         (expr_no_commas): Call default_conversion before save_expr
8392         for the first term of the production 'x ? : y'.
8393         * c-common.c (c_common_truthvalue_conversion): Remove
8394         obsolete block.  Invoke recursively the hook instead
8395         of this function.
8396         * c-convert.c (convert): handle ERROR_MARK_NODE.
8397         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
8398         returned by the truthvalue_conversion language hook.
8399         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
8400         c_objc_common_truthvalue_conversion.
8401         * c-objc-common.c (c_objc_common_truthvalue_conversion):
8402         New function.
8403         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
8404         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
8405         c_objc_common_truthvalue_conversion.
8406
8407 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
8408
8409         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
8410         of gen_rtx.
8411         (LIBCALL_VALUE): Likewise.
8412         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
8413         gen_rtx_CC0 instead of gen_rtx.
8414         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
8415         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
8416         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
8417         gen_rtx.
8418         (m68hc11_emit_logical): Likewise.
8419
8420 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
8421
8422         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
8423         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
8424         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
8425         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
8426         config/mips/mips.md, config/mmix/mmix.c,
8427         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
8428         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
8429         config/rs6000/altivec.md, config/s390/s390.c,
8430         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
8431         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
8432         Use const0_rtx instead of GEN_INT (0).  Do the same for other
8433         constants that are readily available.
8434
8435 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
8436
8437         * doloop.c, optabs.c, regmove.c, sched-deps.c,
8438         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
8439         instead of GEN_INT (0).  Do the same for other constants that
8440         are readily available.
8441
8442 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
8443
8444         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
8445         gen_rtx.
8446         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
8447         instead of gen_rtx.
8448         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
8449         gen_rtx.
8450         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
8451         gen_rtx_ASHIFT instead of gen_rtx.
8452         (udivmodqi4): Likewise.
8453
8454 2004-02-02  Richard Henderson  <rth@redhat.com>
8455
8456         PR target/13789
8457         * expr.c (store_expr): Use force_operand before emit_move_insn.
8458
8459 2004-02-02  Jeff Law  <law@redhat.com>
8460             Roger Sayle  <roger@eyesopen.com>
8461
8462         * tree.c (commutative_tree_code, associative_tree_code): New
8463         functions.
8464         (iterative_hash_expr): Use commutative_tree_code.
8465         * tree.h (commutative_tree_code, associative_tree_code): Declare.
8466         * fold-const.c (operand_equal_p): Use commutative_tree_code
8467         rather than inlining the commutativity check.
8468         (fold): Likewise.
8469
8470 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
8471
8472         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
8473         * config/frv/frv-protos.h: Remove the prototype for
8474         frv_function_arg_keep_as_reference.
8475         * config/frv/frv.c (frv_function_arg_keep_as_reference):
8476         Remove.
8477         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
8478         * config/stormy16/stormy16.h: Remove the commented-out
8479         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
8480
8481 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
8482
8483         PR target/13914
8484         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
8485         for retaddr_column.
8486
8487 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
8488
8489         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
8490         gen_rtx.
8491
8492 2004-02-02  Eric Christopher  <echristo@redhat.com>
8493             Zack Weinberg  <zack@codesourcery.com>
8494
8495         * c-opts.c (c_common_handle_option): Add -finput-charset.
8496         * c.opt: Ditto.
8497         * cppcharset.c (one_iso88591_to_utf8): Remove.
8498         (convert_iso88591_utf8): Ditto.
8499         (conversion_tab): Remove 8859-1 converter.
8500         (_cpp_input_to_utf8): Remove.
8501         (_cpp_init_iconv_buffer): Ditto.
8502         (_cpp_close_iconv_buffer): Ditto.
8503         (_cpp_convert_input): New function.
8504         (_cpp_default_encoding): Ditto.
8505         * cpphash.h: Add/remove prototypes for above.
8506         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
8507         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
8508         for narrow execution and input character sets.
8509         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
8510         * doc/cppopts.texi: Document -finput-charset.
8511
8512 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
8513
8514         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
8515         against FIRST_PSEUDO_REGISTER.
8516
8517 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
8518
8519         * doc/invoke.texi (SPARC options): Further improve.
8520
8521 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
8522
8523         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
8524         config/h8300/h8300.c, config/ip2k/ip2k.md,
8525         config/iq2000/iq2000.c, config/mips/mips.c,
8526         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
8527         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
8528         config/v850/v850.md: Fix indentation.
8529
8530 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
8531
8532         * config/sparc/sparc.c (function_arg_slotno): Align TImode
8533         arguments on a 16-byte boundary in the parameter array if ARCH64.
8534         Split handling of TFmode.
8535
8536 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
8537
8538         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
8539         Don't test CONSTANT_P (x).
8540         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
8541         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
8542         Fix misindentation.
8543
8544 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
8545
8546         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
8547
8548 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
8549
8550         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
8551         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
8552         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
8553         config/iq2000/iq2000.c, config/m32r/m32r.c,
8554         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
8555         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
8556         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
8557         config/stormy16/stormy16.c, config/v850/v850.md,
8558         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
8559
8560 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
8561
8562         * config/mcore/mcore.c (block_move_sequence): Replace
8563         gen_rtx_CONST_INT with GEN_INT.
8564
8565 2004-02-02  Jan Hubicka  <jh@suse.cz>
8566
8567         * alias.c (record_set): Use hard_regno_nregs.
8568         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
8569         * builtins.c (apply_args_size): Likewise.
8570         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
8571         mark_set_regs, add_stored_regs, mark_referenced_regs,
8572         insert_restore, insert_save, insert_one_insn): Likewise.
8573         * cfgcleanup.c: Include regs.h
8574         (mark_effect, mentions_nonequal_regs): Likewise.
8575         * cfgrtl.c (mark_killed_regs): Likewise
8576         * combine.c (update_table_tick, record_value_for_reg,
8577         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
8578         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
8579         reg_bitfield_target_p, distribute_notes): Likewise.
8580         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
8581         exp_equiv_p, cse_insn): Likewise.
8582         * cselib.c (cselib_lookup): Likewise.
8583         (cselib_invalidate_regno, cselib_record_set): Likewise.
8584         * df.c (df_ref_record): Likewise.
8585         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
8586         Likewise.
8587         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
8588         count_or_remove_death_notes_bb): Likewise.
8589         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
8590         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
8591         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
8592         * integrate.c (mark_stores): Likewise.
8593         * jump.c (delete_prior_computation): Likewise.
8594         * lcm.c (reg_dies, reg_becomes_live): Likewise.
8595         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
8596         * loop.c (LOOP_REGNO_NREGS): Likewise.
8597         * postreload.c (reload_combine, reload_combine_note_store,
8598         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
8599         * ra-colorize.c (combine, color_usable_p, get_free_reg,
8600         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
8601         try_recolor_web, insert_coalesced_conflicts, check_colors,
8602         break_precolored_alias): Likewise.
8603         * ra-debug.c: Include regs.h
8604         (ra_print_rtx_object): Likewise.
8605         * ra-rewrite (choose_spill_colors): Likewise.
8606         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
8607         * ra.c (init_ra): Likewise.
8608         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
8609         peep2_find_free_register): Likewise.
8610         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
8611         * regclass.c (hard_regno_nregs): New array.
8612         (init_reg_modes_once): Initialize it.
8613         (choose_hard_reg_mode): Use it.
8614         (record_reg_classes): Likewise.
8615         * regmove.c (mark_flags_life_zones): Likewise.
8616         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
8617         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
8618         copy_value, maybe_mode_change, find_oldest_value_reg,
8619         copyprop_hardreg_forward_1):
8620         * regs.h (hard_regno_nregs): Declare.
8621         * realod.c (reload_inner_reg_of_subreg): Use it.
8622         (push_reload, combine_reloads, find_dummy_reload,
8623         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
8624         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
8625         reload_adjust_reg_for_mode): Likewise.
8626         * reload1.c (compute_use_by_pseudos, count_pseudo,
8627         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
8628         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
8629         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
8630         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
8631         delete_output_reload): Likewise.
8632         * resource.c (update_live_status, mark_referenced_resources,
8633         mark_set_resources, mark_target_live_regs): Likewise.
8634         * rtlanal.c:  Include regs.h
8635         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
8636         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
8637         subreg_regno_offset, subreg_offset_representable_p,
8638         hoist_test_store): Likewise.
8639         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
8640         * sched-rgn.c (check_live_1, update_live_1): Likewise.
8641         * stmt.c: Include regs.h
8642         (decl_conflicts_with_clobbers_p): Likewise.
8643         * varasm.c (make_decl_rtl): Likewise.
8644         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
8645
8646 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
8647
8648         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
8649         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
8650         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
8651         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
8652         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
8653         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
8654         config/iq2000/iq2000.h, config/m32r/m32r.c,
8655         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
8656         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
8657         config/mcore/mcore.c, config/mcore/mcore.h,
8658         config/mcore/mcore.md, config/mips/mips.c,
8659         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
8660         config/rs6000/rs6000.c, config/s390/s390.c,
8661         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
8662         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
8663         "gen_rtx (FOO, " with "gen_rtx_FOO (".
8664
8665 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
8666
8667         * config/h8300/h8300.md (two peephole2's): New.
8668
8669 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
8670
8671         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
8672         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
8673         (ASM_CPU_SPEC): Likewise
8674         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
8675         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
8676
8677 2004-02-01  Roger Sayle  <roger@eyesopen.com>
8678
8679         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
8680         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
8681         (expand_builtin): Always call expand_builtin_pow.
8682
8683 2004-02-01  Roger Sayle  <roger@eyesopen.com>
8684
8685         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
8686         BUILT_IN_SIGNBITL): New GCC builtins.
8687         * builtins.c (expand_builtin_signbit): New function to RTL expand
8688         calls to signbit, signbitf and signbitl as inline intrinsics.
8689         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
8690         (fold_builtin_signbit): New function to perform constant folding
8691         of signbit, signbitf and signbitl.
8692         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
8693
8694         * doc/extend.texi: Document new signbit{,f,l} builtins.
8695
8696 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
8697
8698         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
8699
8700 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
8701
8702         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
8703         "mips_const_double_ok" and "simple_memory_operand", which were
8704         removed from the MIPS port with the mips-3_4-rewrite branch merge.
8705         * config/mips/mips.c (mips16_lay_out_constants): Update comment
8706         for removal of simple_memory_operand.
8707
8708 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8709
8710         * config/c4x/c4x.md: Use GEN_INT instead of
8711         gen_rtx (CONST_INT, ...).
8712
8713 2004-01-31  Richard Henderson  <rth@redhat.com>
8714
8715         * varasm.c (output_constant_pool): Don't zap the pool.
8716
8717 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8718
8719         * genrecog.c (decision_type): Add DT_const_int.
8720         (write_cond) [DT_const_int]: Print a comparison against small
8721         constant.
8722         (write_node): Simplify comparisons against small constants
8723         before printing tests.
8724
8725 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8726
8727         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
8728         instead of gen_rtx_CONST_INT.
8729
8730 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8731
8732         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
8733         instead of gen_rtx_CONST_INT.
8734
8735 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8736
8737         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
8738         hook_bool_CUMULATIVE_ARGS_false.
8739         * targhooks.c (default_strict_argument_naming): Rename to
8740         hook_bool_CUMULATIVE_ARGS_false.
8741         * targhooks.h: Update the prototype for
8742         default_strict_argument_naming.
8743
8744 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8745
8746         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
8747         * config/sh/sh.h: Likewise.
8748         * config/sh/sh.md: Likewise.
8749
8750 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
8751
8752         * doc/invoke.texi (SPARC options): Restructure and update.
8753
8754 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8755
8756         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
8757         STRICT_ARGUMENT_NAMING): Poison.
8758         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
8759         hook_bool_tree_false.
8760         * targhooks.c (default_promote_function_args): Remove.
8761         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
8762         Don't check incoming.
8763         (default_strict_argument_naming): Don't use
8764         STRICT_ARGUMENT_NAMING.
8765         * targhooks.h: Remove the prototype for
8766         default_promote_function_args.
8767
8768 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8769
8770         * config/i386/i386-protos.h: Remove the prototype for
8771         ix86_setup_incoming_varargs.
8772         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
8773         (ix86_setup_incoming_varargs): Make it static.
8774         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
8775
8776 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8777
8778         * alloc-pool.c: Fix comment typos.
8779         * builtin-types.def: Likewise.
8780         * builtins.def: Likewise.
8781         * c-pretty-print.c: Likewise.
8782         * df.h: Likewise.
8783         * reload1.c: Likewise.
8784
8785 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8786
8787         * doc/invoke.texi: Follow spelling conventions.
8788         * doc/tm.texi: Likewise.
8789
8790 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8791
8792         * doc/install.texi: Fix typos.
8793         * doc/invoke.texi: Likewise.
8794
8795 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
8796
8797         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
8798         registers as pointers.
8799         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
8800
8801 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
8802
8803         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
8804         and restore it to gen_lowpart_general on exit.
8805         (gen_lowpart_for_combine): Adjust all callers to go through
8806         gen_lowpart.
8807         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
8808         and restore it to gen_lowpart_general on exit.
8809         (gen_lowpart_if_possible): Adjust all callers to go through
8810         gen_lowpart.
8811         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
8812         (gen_lowpart): Declare as pointer to function, initialized to
8813         gen_lowpart_general.
8814         * rtl.h (gen_lowpart): Declare as pointer to function.
8815
8816 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8817
8818         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
8819         * calls.c: Likewise.
8820         * emit-rtl.c: Likewise.
8821         * function.c: Likewise.
8822         * reload1.c: Likewise.
8823         * config/i386/cygming.h: Likewise.
8824         * config/i386/i386.c: Likewise.
8825         * config/i386/winnt.c: Likewise.
8826
8827 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
8828
8829         PR bootstrap/9249
8830         * doc/install.texi: document --enable-__cxa_atexit option.
8831         * configure.ac: Disable __cxa_atexit if not supported.
8832         * configure: Regenerate.
8833
8834 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
8835
8836         * ggc-zone.c (ggc_free): New function.
8837
8838 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8839
8840         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
8841         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
8842         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
8843         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
8844         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
8845         config/alpha/alpha.c, config/alpha/alpha.h,
8846         config/alpha/alpha.md, config/alpha/unicosmk.h,
8847         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
8848         config/c4x/c4x-protos.h, config/c4x/c4x.md,
8849         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
8850         config/frv/frvend.c, config/i386/cygming.h,
8851         config/i386/djgpp.h, config/i386/emmintrin.h,
8852         config/i386/gthr-win32.c, config/i386/i386-interix.h,
8853         config/i386/i386-protos.h, config/i386/openbsd.h,
8854         config/i386/winnt.c, config/i386/xm-mingw32.h,
8855         config/i386/xmmintrin.h, config/ia64/ia64.md,
8856         config/iq2000/iq2000.md, config/m32r/m32r.md,
8857         config/m68k/m68k.md, config/mcore/mcore-elf.h,
8858         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
8859         config/mips/iris5gas.h, config/mips/iris6.h,
8860         config/mips/iris6gas.h, config/mips/linux.h,
8861         config/mips/mips.md, config/mips/netbsd.h,
8862         config/mips/openbsd.h, config/mips/windiss.h,
8863         config/pa/fptr.c, config/rs6000/aix.h,
8864         config/rs6000/altivec.h, config/rs6000/darwin.h,
8865         config/rs6000/xcoff.h, config/s390/s390-protos.h,
8866         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
8867         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
8868         config/sparc/sol2.h: Update copyright.
8869
8870 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
8871
8872         * Makefile.in (abs_docdir, abs_srcdir): Define.
8873         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
8874
8875 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8876
8877         * genconfig.c (main): Have CC0_P check its operand even on a
8878         target without cc0.
8879
8880 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8881
8882         * config/alpha/alpha.c: Remove mentions of deprecates macros
8883         in comments, remove some target-independent comments about target
8884         macros, and/or add minimal function comments for target hook
8885         implementations.
8886         * config/avr/avr.c: Likewise.
8887         * config/ia64/ia64.h: Likewise.
8888         * config/ip2k/ip2k.c: Likewise.
8889         * config/iq2000/iq2000.c: Likewise.
8890         * config/m32r/m32r.h: Likewise.
8891         * config/m68hc11/m68hc11.c: Likewise.
8892         * config/mcore/mcore.c: Likewise.
8893         * config/mmix/mmix.c: Likewise.
8894         * config/mn10300/mn10300.c: Likewise.
8895         * config/pa/pa.c: Likewise.
8896         * config/pdp11/pdp11.c: Likewise.
8897         * config/rs6000/rs6000.h: Likewise.
8898         * config/sh/sh.c: Likewise.
8899         * config/sh/sh.h: Likewise.
8900         * config/sparc/sparc.c: Likewise.
8901         * config/sparc/sparc.h: Likewise.
8902         * config/stormy16/stormy16.c: Likewise.
8903         * config/xtensa/xtensa.c: Likewise.
8904
8905 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
8906
8907         PR optimization/12147
8908         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
8909         RELOAD_FOR_OPADDR_ADDR.
8910         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
8911         might be reused as RELOAD_FOR_OPADDR_ADDR register.
8912
8913 2004-01-30  Jan Hubicka  <jh@suse.cz>
8914
8915         * reload.c (get_secondary_mem): Fix updating of
8916         secondary_memlocs_elim_used.
8917
8918 2004-01-30  Richard Henderson  <rth@redhat.com>
8919
8920         * varasm.c (struct rtx_const, struct pool_constant): Remove.
8921         (MAX_RTX_HASH_TABLE): Remove.
8922         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
8923         (first_pool, last_pool, pool_offset): Remove.
8924         (struct rtx_constant_pool): Split out from ...
8925         (struct varasm_status): ... here.  Reference one via pointer.
8926         (struct constant_descriptor_rtx): Merge struct pool_constant.
8927         (SYMHASH): Remove.
8928         (decode_rtx_const): Remove.
8929         (const_hash_rtx, compare_constant_rtx): Remove.
8930         (record_constant_rtx): Remove.
8931         (const_desc_rtx_hash, const_desc_rtx_eq): New.
8932         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
8933         (const_rtx_hash_1, const_rtx_hash): New.
8934         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
8935         (simplify_subtraction): Use simplify_rtx.
8936         (force_const_mem): Rewrite to use new data structures.
8937         (find_pool_constant): Likewise.
8938         (get_pool_constant, get_pool_constant_mark,
8939         get_pool_constant_for_function, get_pool_mode,
8940         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
8941         (output_constant_pool_2): Split out from output_constant_pool.
8942         (output_constant_pool_1): Likewise.  Use new pool datastructures.
8943         (output_constant_pool): Zap entire pool datastructure.
8944         (mark_constant): Use new pool datastructures.
8945         (mark_constants): Use for_each_rtx.
8946         (mark_constant_pool): Use new pool datastructures.
8947
8948 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
8949
8950         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
8951         Copy operands[1] to pseudo for simplify_gen_subreg.
8952
8953 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8954
8955         * gcse.c (bypass_block): Fix a typo in the previous check-in
8956         to the file.
8957
8958 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
8959
8960         * toplev.c: Include alloc-pool.h.
8961         * Makefile.in (toplev.c): Update dependencies.
8962
8963 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8964
8965         * combine.c (simplify_shift_const, case XOR): Be careful when
8966         commuting XOR with ASHIFTRT.
8967
8968 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8969             Eric Botcazou  <ebotcazou@libertysurf.fr>
8970
8971         * config/sparc/sparc-protos.h: Remove the prototype for
8972         sparc_builtin_saveregs.
8973         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
8974         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
8975         (TARGET_PROMOTE_PROTOTYPES): Likewise.
8976         (TARGET_STRUCT_VALUE_RTX): Likewise.
8977         (TARGET_RETURN_IN_MEMORY): Likewise.
8978         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
8979         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
8980         (sparc_builtin_saveregs): Make it static.
8981         (sparc_promote_prototypes): New.
8982         (sparc_struct_value_rtx): Likewise.
8983         (sparc_return_in_memory): Likewise.
8984         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
8985         (PROMOTE_FUNCTION_RETURN): Likewise.
8986         (RETURN_IN_MEMORY): Likewise.
8987         (STRUCT_VALUE): Likewise.
8988         (STRUCT_VALUE_INCOMING): Likewise.
8989         (EXPAND_BUILTIN_SAVEREGS): Likewise.
8990         (STRICT_ARGUMENT_NAMING): Likewise.
8991         (PROMOTE_PROTOTYPES): Likewise.
8992
8993         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
8994
8995 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
8996
8997         PR c/12818
8998         * varasm.c (const_hash_1) <STRING_CST>: Use the
8999         address to compute the hash value if flag_writable_strings.
9000         (compare_constant) <STRING_CST>: Compare the addresses
9001         if flag_writable_strings.
9002         (build_constant_desc): Do not copy the expression for a
9003         STRING_CST if flag_writable_strings.
9004
9005 2004-01-30  Jan Hubicka  <jh@suse.cz>
9006
9007         * alloc-pool.c: Include hashtab.h
9008         (alloc_pool_descriptor): New structure
9009         (alloc_pool_hash): New global variable.
9010         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
9011         (create_alloc_pool): Update statistics.
9012         (free_alloc_pool): Likewise.
9013         (pool_alloc): Likewise.
9014         (output_info): New structure
9015         (print_statistics, dump_alloc_pool_statistics): New function.
9016         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
9017         (dump_alloc_pool_statistics): Declare.
9018         * toplev.c (finalize):  Dump statistics.
9019
9020         * reload.c (secondary_memlocs_elim_used): New static variable.
9021         (get_secondary_mem): Update it.
9022         (find_reloads): Use it.
9023
9024 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
9025
9026         * toplev.c: Fix broken checkin of 2003-12-30, again.
9027
9028 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
9029
9030         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
9031         s390*-*-* targets by specifying a 'nop' insn.
9032         * configure: Regenerate.
9033
9034 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
9035
9036         PR target/11475
9037         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
9038
9039 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
9040
9041         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
9042         of addr when creating MEM copy.
9043
9044 2004-01-29  Devang Patel  <dpatel@apple.com>
9045
9046         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
9047
9048 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
9049
9050         PR inline-asm/6162
9051         * reload.c (find_reloads): Only support one pair of commutative
9052         operands.
9053
9054 2004-01-29  Roger Sayle  <roger@eyesopen.com>
9055
9056         PR java/13824
9057         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
9058         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
9059         recursion.
9060
9061 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
9062
9063         * config/frv/frv.c: Don't mention deprecated macros in
9064         comments.  Remove some target-independent comments about
9065         target macros.
9066         * config/frv/frv.h: Likewise.
9067
9068 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9069
9070         * cfghooks.c (split_block): Set probability and count of the
9071         new edge.
9072
9073 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
9074
9075         * dwarf2out.c (struct die_struct): Added field decl_id.
9076         (decl_die_table): Changed to hash table.
9077         (decl_die_table_allocated): Deleted.
9078         (decl_die_table_in_use): Deleted.
9079         (DECL_DIE_TABLE_INCREMENT): Deleted.
9080         (decl_die_table_hash): New function.
9081         (decl_die_table_eq): New function.
9082         (lookup_decl_die): Lookup in a hash table.
9083         (equate_decl_number_to_die): Insert into a hash table.
9084         (dwarf2out_init): Init hash table decl_die_table.
9085
9086 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
9087
9088         PR optimization/13424
9089         * expr.c (store_constructor): Revert 2003-12-03 change.
9090
9091         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
9092         expected before returning early.  Avoid sharing RTL if they
9093         need to be changed.
9094
9095         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
9096         handling so that memory attributes are preserved.  Don't call
9097         ix86_set_move_mem_attrs.
9098         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
9099         (ix86_expand_clrstr): Rename src argument to
9100         dst.  Rework rep_stos and strset handling so that memory attributes
9101         are preserved.
9102         (ix86_expand_strlen): Pass src argument to
9103         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
9104         memory attributes are preserved.
9105         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
9106         change_address instead of gen_rtx_MEM.
9107         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
9108         expanders.
9109         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
9110         strmovqi, strmovqi_rex64): Remove.
9111         (rep_mov*, strmov*): Prefix insn names with *.
9112         (strset, strset_singleop, rep_stos): New expanders.
9113         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
9114         strsetqi, strsetqi_rex64): Remove.
9115         (rep_stos*, strset*): Prefix insn names with *.
9116         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
9117         to SImode.
9118         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
9119         are preserved.
9120         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
9121         Prefix insn names with *.
9122         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
9123         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
9124         (strlenqi_1): New expander.
9125         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
9126
9127 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9128
9129         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
9130         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
9131         verify_flow_info): Declaration removed.
9132         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
9133         (debug_bb, debug_bb_n): Add argument to dump_bb call.
9134         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
9135         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
9136         instead of delete_block.
9137         * cfghooks.c: Include timevar.h and toplev.h.
9138         (cfg_hooks): Define here.
9139         (verify_flow_info, dump_bb): Moved from cfg.c.
9140         (redirect_edge_and_branch, redirect_edge_and_branch_force,
9141         split_block, split_block_after_labels, move_block_after,
9142         delete_basic_block, split_edge, create_basic_block,
9143         create_empty_bb, can_merge_blocks_p, merge_blocks,
9144         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
9145         New functions.
9146         * cfghooks.h (struct cfg_hooks): Added fields name,
9147         make_forwarder_block, tidy_fallthru_edge and
9148         move_block_after. Changed type of verify_flow_info, dump_bb,
9149         split_block fields. Renamed cfgh_split_edge and delete_block
9150         fields.
9151         (redirect_edge_and_branch, redirect_edge_and_branch_force,
9152         split_block, delete_block, split_edge, create_basic_block,
9153         can_merge_blocks_p, merge_blocks): Macros removed.
9154         (cfg_hooks): Do not export.
9155         (verify_flow_info, dump_bb, redirect_edge_and_branch,
9156         redirect_edge_and_branch_force, split_block, split_block_after_labels,
9157         move_block_after, delete_basic_block, split_edge, create_basic_block,
9158         create_empty_bb, can_merge_blocks_p, merge_blocks,
9159         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
9160         Declare.
9161         (cfg_layout_rtl_cfg_hooks): Declare.
9162         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
9163         New functions.
9164         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
9165         (redirect_edge_with_latch_update): Removed.
9166         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
9167         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
9168         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
9169         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
9170         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
9171         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
9172         cfghooks.c.
9173         (rtl_create_basic_block): Coding style fix.
9174         (rtl_tidy_fallthru_edge, rtl_move_block_after,
9175         rtl_make_forwarder_block): New functions.
9176         (update_cfg_after_block_merging): Removed.
9177         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
9178         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
9179         to dump_bb.
9180         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
9181         find_if_case_2): Don't update dominators.
9182         * timevar.def (TV_CFG_VERIFY): New.
9183         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
9184         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
9185         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
9186         (remove_bbs): Don't call remove_bbs.
9187         (create_preheader): Use make_forwarder_block.
9188         (mfb_keep_just, mfb_update_loops): New static functions.
9189
9190 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
9191
9192         * config/avr/avr.h: Remove target-independent comments about
9193         target macros.
9194
9195 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
9196
9197         * timevar.c (timevar_print): Mention when checking is enabled.
9198
9199 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
9200
9201         * c-lex.c (c_lex): Rename to...
9202         (c_lex_with_flags): Add new parameter to get CPP flags.
9203         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
9204         * c-pragma.h (c_lex_with_flags): Declare.
9205
9206 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9207
9208         * config/mcore/mcore.c (mcore_external_libcall): Add a
9209         comment.
9210         (mcore_return_in_memory): Likewise.
9211
9212 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9213
9214         * config/mcore/mcore-protos.h: Remove the prototype for
9215         mcore_setup_incoming_varargs.
9216         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
9217         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
9218         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9219         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9220         (TARGET_STRUCT_VALUE_RTX): Likewise.
9221         (TARGET_RETURN_IN_MEMORY): Likewise.
9222         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9223         (mcore_setup_incoming_varargs): Make it static.  Receive the
9224         first argument by reference.  Add argument second_time.
9225         (mcore_external_libcall): New.
9226         (mcore_return_in_memory): Likewise.
9227         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
9228         (PROMOTE_FUNCTION_RETURN): Likewise.
9229         (STRUCT_VALUE): Likewise.
9230         (RETURN_IN_MEMORY): Likewise.
9231         (SETUP_INCOMING_VARARGS): Likewise.
9232         (PROMOTE_PROTOTYPES): Likewise.
9233         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
9234
9235 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9236
9237         * config/m32r/m32r-protos.h: Remove the prototype for
9238         m32r_setup_incoming_varargs.
9239         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
9240         (TARGET_STRUCT_VALUE_RTX): Likewise.
9241         (TARGET_RETURN_IN_MEMORY): Likewise.
9242         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9243         (m32r_return_in_memory): New.
9244         (m32r_setup_incoming_varargs): Make it static.
9245         * config/m32r/m32r.h: Remove #undef of
9246         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
9247         definitions of PROMOTE_FUNCTION_ARGS and
9248         PROMOTE_FUNCTION_RETURN.
9249         (PROMOTE_PROTOTYPES): Remove.
9250         (RETURN_IN_MEMORY): Likewise.
9251         (STRUCT_VALUE): Likewise.
9252
9253 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9254
9255         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
9256         (TARGET_STRUCT_VALUE_RTX): Likewise.
9257         (m68k_struct_value_rtx): Likewise.
9258         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
9259         STRUCT_VALUE_REGNUM.
9260         (PROMOTE_PROTOTYPES): Remove.
9261         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
9262         STRUCT_VALUE_REGNUM.
9263         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
9264         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
9265
9266 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9267
9268         * config/stormy16/stormy16.c
9269         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
9270         TARGET_BUILD_BUILTIN_VA_LIST.
9271
9272 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9273
9274         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
9275         (TARGET_STRUCT_VALUE_RTX): Likewise.
9276         (TARGET_RETURN_IN_MEMORY): Likewise.
9277         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9278         (v850_return_in_memory): Likewise.
9279         (v850_setup_incoming_varargs): Likewise.
9280         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
9281         (SETUP_INCOMING_VARARGS): Likewise.
9282         (RETURN_IN_MEMORY): Likewise.
9283         (STRUCT_VALUE): Likewise.
9284
9285 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9286
9287         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
9288         (fr30_setup_incoming_varargs): Don't use
9289         STRICT_ARGUMENT_NAMING.
9290         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
9291         (STRICT_ARGUMENT_NAMING): Likewise.
9292
9293 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9294
9295         * config/frv/frv-protos.h: Remove the prototype for
9296         frv_expand_builtin_saveregs.
9297         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
9298         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9299         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
9300         STRUCT_VALUE_REGNUM.
9301         (frv_expand_builtin_saveregs): Make it static.
9302         (frv_struct_value_rtx): New.
9303         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
9304
9305 2004-01-29  Jan Hubicka  <jh@suse.cz>
9306
9307         PR c++/12850
9308         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
9309         initial pointers.
9310         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
9311         for functions that will be only inlined.
9312         (cgraph_mark_function_to_output): Likewise.
9313         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
9314         do not clear function body.
9315         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
9316         (tree_rest_of_compilation): Reorganize the logic releasing function
9317         body to use callgraph datastructure.
9318
9319 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9320
9321         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
9322         to register_operand.
9323
9324 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
9325
9326         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
9327         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
9328         match_operand expressions so that all match_dups appear
9329         lexically after their corresponding match_operands.
9330
9331 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9332
9333         * config/h8300/h8300.c (WORD_REG_USED): Use
9334         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
9335         (compute_saved_regs): Likewise.
9336         (h8300_expand_prologue): Likewise.  Allocate locals after
9337         saving registers.
9338         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
9339         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
9340         registers.
9341         (h8300_initial_elimination_offset): Adjust for the new frame
9342         layout, which swaps flips the order of locals and saved
9343         registers.
9344         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
9345         (HARD_FRAME_POINTER_REGNUM): New.
9346         (ELIMINABLE_REGS): Add an elimination rule from
9347         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
9348         (REGISTER_NAMES): Add fp.
9349         * config/h8300/h8300.md (FP_REG): Change to 11.
9350         (HFP_REG): New.
9351
9352 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9353
9354         * genrecog.c (write_node): Remove a useless local variable.
9355
9356 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
9357
9358         * Makefile.in (options.c options.h): Use stamp file s-options to
9359         avoid unnecessary rebuilds.
9360         (options.o): New target listing dependencies.
9361         (gtyp-gen.h): Use stamp file s-gtyp-gen.
9362         (STAGESTUFF): Add s-gtyp-gen.
9363
9364 2004-01-28  Richard Henderson  <rth@redhat.com>
9365
9366         * ggc.h (ggc_free): Declare.
9367         * ggc-common.c (ggc_realloc): Use it.
9368         * ggc-page.c: Remove lots of inline markers.
9369         (globals): Add free_object_list.
9370         (ggc_alloc): Tidy.
9371         (ggc_free, validate_free_objects): New.
9372         (poison_pages): Provide default.
9373         (ggc_collect): Call validate_free_objects; emit markers to
9374         the debug file.
9375
9376 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
9377             Jim Wilson  <wilson@specifixinc.com>
9378
9379         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
9380         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
9381         scratch pointer.
9382         (ia64_secondary_reload_class): Delete case GR_REGS.
9383         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
9384         Do not allocate a scratch register.
9385         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
9386
9387 2004-01-28  Jan Hubicka  <jh@suse.cz>
9388
9389         * gcse.c (bypass_block): Prevent edges to be unified when we are
9390         about to emit compenstation code.
9391
9392 2004-01-28  Nick Clifton  <nickc@redhat.com>
9393
9394         * config/arm/arm.c (arm_expand_builtin): Force second argument of
9395         the setcwx insn into a register.
9396
9397 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
9398
9399         * config/fp-bit.c (pack_d): When using paired doubles to implement
9400         a long double, round the high part separately.
9401         (unpack_d): Fix the case in which the high part is a power of two
9402         and the low part is a nonzero value of the opposite sign.
9403
9404 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9405
9406         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
9407         (TARGET_STRUCT_VALUE_RTX): Likewise.
9408         (c4x_external_libcall): Likewise.
9409         (c4x_struct_value_rtx): Likewise.
9410         * config/c4x/c4x.h: Remove.
9411         (STRUCT_VALUE_REGNUM): Likewise.
9412         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
9413
9414 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9415
9416         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
9417         (TARGET_STRUCT_VALUE_RTX): Likewise.
9418         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
9419         (STRUCT_VALUE): Likewise.
9420         (PROMOTE_PROTOTYPES): Likewise.
9421
9422 2004-01-27  Roger Sayle  <roger@eyesopen.com>
9423
9424         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
9425         CONST_INT before using INTVAL.
9426
9427 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
9428
9429         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
9430         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
9431         frame if !TARGET_BACKCHAIN.
9432         * config/s390/s390.md ("allocate_stack"): Use pattern only if
9433         TARGET_BACKCHAIN.
9434         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
9435
9436 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
9437
9438         * ia64.c (ia64_function_arg): When placing HFAs in integer
9439         registers, do not special case the mode used for complex
9440         types.  Do not advance int_regs until the current register
9441         is full.
9442
9443 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
9444
9445         PR target/7297
9446         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
9447
9448 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
9449
9450         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
9451         slow, unaligned loads and stores while debugging.  Fix formatting.
9452
9453 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
9454
9455         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
9456         of computing wmode.
9457         (restore_stack_nonlocal): Same.
9458
9459 2004-01-27  Devang Patel <dpatel@apple.com>
9460
9461         * Makefile.in (dwarf2out.o): Depend on input.h
9462         * dbxout.c (dbx_debug_hooks): Add new empty hook for
9463         imported_module_or_decl.
9464         (xcoff_debug_hooks): Same.
9465         * sdbout.c (sdb_debug_hooks): Same.
9466         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
9467         * debug.c (do_nothing_debug_hooks): Same.
9468         (debug_nothing_tree_tree): New function.
9469         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
9470         * dwarf2out.c: Include input.h.
9471         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
9472         (remove_child_TAG): New function.
9473         (dwarf_tag_name): Handle DW_TAG_imported_module.
9474         (gen_subprogram_die): Equate decl number to declaration die. Do not
9475         remove all children dies while reusing declaration die for definition.
9476         Instead, selectively remove only formal parameters.
9477         (gen_variable_die): Equate variable decl to declaration die.
9478         (gen_field_die): Equate field decl to line number.
9479         (force_namespace_die): Replace it with ...
9480         (force_decl_die): ... this.
9481         (force_type_die): New function.
9482         (setup_namespace_context): Replace use of force_namespace_die() with
9483         force_decl_die().
9484         (gen_namespace_die): Same.
9485         (dwarf2out_imported_module_or_decl): New function.
9486
9487 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
9488
9489         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
9490         on CQImode and CHImode incoming arguments in register a7.
9491         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
9492         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
9493         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
9494         xtensa_copy_incoming_a7 before reload.
9495
9496 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
9497
9498         * coverage.c (get_coverage_counts): Give a different message
9499         if flag_guess_branch_prob is set.
9500         * predict.c (counts_to_freqs): Return an int.
9501         (estimate_bb_frequencies): If counts_to_freqs returns zero,
9502         calculate estimates.
9503
9504 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
9505
9506         * config/iq2000/iq2000-protos.h: Remove the prototype for
9507         iq2000_setup_incoming_varargs.
9508         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9509         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9510         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9511         (TARGET_STRUCT_VALUE_RTX): Likewise.
9512         (TARGET_RETURN_IN_MEMORY): Likewise.
9513         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9514         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
9515         (iq2000_return_in_memory): Likewise.
9516         (iq2000_setup_incoming_varargs): Make it static.  Receive the
9517         first argument by reference.
9518         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
9519         (PROMOTE_FUNCTION_RETURN): Likewise.
9520         (PROMOTE_PROTOTYPES): Likewise.
9521         (RETURN_IN_MEMORY): Likewise.
9522         (STRUCT_VALUE): Likewise.
9523         (SETUP_INCOMING_VARARGS): Likewise.
9524         (STRICT_ARGUMENT_NAMING): Likewise.
9525
9526 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
9527
9528         * fixinc/fixinc.c (test_test): Initialize res.
9529         (start_flexer): Initialize pz_cmd_save.
9530
9531 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
9532
9533         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
9534         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
9535
9536 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
9537
9538         PR 7198
9539         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
9540         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
9541         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
9542         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
9543         Possibly rename pattern for consistency.
9544         Remove ??? comments suggesting that this be done.
9545         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
9546         New patterns.
9547         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
9548         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
9549         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
9550         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
9551         Update to match.
9552
9553 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
9554
9555         * config/arm/arm.c (output_return_instruction): Only restore IP
9556         into SP if frame_pointer_needed.
9557
9558 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
9559
9560         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
9561         for SCmode and DCmode if ARCH32.
9562         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
9563         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
9564         if ARCH32.
9565         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
9566         if ARCH32.
9567         (BASE_OUTGOING_VALUE_REG): Likewise.
9568
9569 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
9570
9571         PR target/10904
9572         PR target/13058
9573         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
9574         Forbid mode changes from SImode for lower FP regs if ARCH64.
9575
9576 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
9577
9578         * Makefile.in (bt-load.o): Depend on except.h.
9579         * bt-load.c (except.h): #include.
9580         (compute_defs_uses_and_gen): If insn at end of BB can throw
9581         within this function, consider registers used by it unavailable for
9582         btr migration.
9583         (move_btr_def): If insn at end of BB can throw, insert before rather
9584         than after.
9585
9586         * flags.h (flag_btr_bb_exclusive): Declare.
9587         * toplev.c (flag_btr_bb_exclusive): New variable.
9588         (f_options): Add btr-bb-exclusive.
9589         * bt-load.c (augment_live_range): Restore old behaviour if
9590         flag_btr_bb_exclusive is set.
9591         * common.opt: Add entry for -fbtr-bb-exclusive.
9592         * opts.c (common_handle_options): Same.
9593         * doc/invoke.texi: Document -fbtr-bb-exclusive.
9594
9595         * bt-load.c (btrs_live_at_end): New variable.
9596         (compute_defs_uses_and_gen): Compute its pointed-to array.
9597         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
9598         (augment_live_range): When augmenting with a new dominator,
9599         use only its btrs_live_at_end set, but also add in the full set
9600         of the old dominator.
9601         (btr_def_live_range): Use btrs_live_at_end.
9602         (move_btr_def): Set other_btr_uses_before_def, and move new set
9603         to the end of the basic block, if appropriate.
9604         (migrate_btr_defs): Allocate and free btrs_live_at_end.
9605
9606         * bt-load.c (basic_block_freq): Remove outdated comment.
9607
9608 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
9609
9610         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
9611         (PREDICATE_CODES): Remove duplicate.
9612         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
9613         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
9614         (MASK_PROFILE_KERNEL): Adjust define.
9615
9616 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
9617
9618         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
9619         of long string literals from 32 bytes to sizeof (void *) when !-Os
9620         and to 1 with -Os.
9621
9622 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9623
9624         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
9625         constant addresses in the normal mode.
9626
9627 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9628
9629         * system.h (CHAR_BITFIELD): Delete.
9630         (BOOL_BITFIELD): New.
9631         * c-decl.c (c_scope): Use BOOL_BITFIELD.
9632         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
9633
9634 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9635
9636         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9637         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9638         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9639         (TARGET_STRUCT_VALUE_RTX): Likewise.
9640         (TARGET_RETURN_IN_MEMORY): Likewise.
9641         (arc_return_in_memory): Likewise.
9642         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
9643         (PROMOTE_FUNCTION_RETURN): Likewise.
9644         (RETURN_IN_MEMORY): Likewise.
9645         (STRUCT_VALUE): Likewise.
9646
9647 2004-01-26  Richard Henderson  <rth@redhat.com>
9648
9649         * c-parse.in (extension): Use itype.
9650         (SAVE_EXT_FLAGS): Don't allocate a tree.
9651         (RESTORE_EXT_FLAGS): Don't read a tree.
9652
9653 2004-01-26  Jan Hubicka  <jh@suse.cz>
9654
9655         * cselib.c (discard_useless_values):  Clear out value pointer pointing
9656         to datastructure to be recycled.
9657
9658 2004-01-25  Jan Hubicka  <jh@suse.cz>
9659
9660         * genextract.c (main): Do not output the memset when not checking.
9661
9662 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9663
9664         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
9665         switch statement instead of a chain of if statements.
9666
9667 2004-01-26  Jeff Law  <law@redhat.com>
9668
9669         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
9670         acute accents for Petur Runolfsson's entry.
9671
9672 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9673
9674         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
9675         (TARGET_RETURN_IN_MEMORY): Likewise.
9676         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
9677         (RETURN_IN_MEMORY): Likewise.
9678
9679 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
9680
9681          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
9682          unaligned load/store into smaller loads and stores.
9683
9684 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
9685
9686         * function.c (assign_parms): Do not assign
9687         long long argument to memory in prologue if
9688         is it loaded into register.
9689
9690 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
9691
9692          PR middle-end/13779
9693          * expr.c (emit_group_load): split constant
9694          correctly into register components of PARALLEL insn.
9695
9696 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
9697
9698         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
9699         Use adjust_address_nv directly with appropriate mode.
9700         (restore_stack_nonlocal): Ditto.
9701
9702 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9703
9704         * config/xtensa/xtensa-protos.h: Remove the prototype for
9705         xtensa_builtin_saveregs.
9706         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9707         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9708         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9709         (TARGET_STRUCT_VALUE_RTX): Likewise.
9710         (TARGET_RETURN_IN_MEMORY): Likewise.
9711         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9712         (xtensa_builtin_saveregs): Make it static.
9713         (xtensa_return_in_memory): New.
9714         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
9715         (PROMOTE_FUNCTION_RETURN): Likewise.
9716         (PROMOTE_PROTOTYPES): Likewise.
9717         (STRUCT_VALUE): Likewise.
9718         (RETURN_IN_MEMORY): Likewise.
9719         (EXPAND_BUILTIN_SAVEREGS): Likewise.
9720
9721 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9722
9723         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
9724         (arm_setup_incoming_varargs): Likewise.
9725         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
9726
9727 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9728
9729         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
9730         (cris_setup_incoming_varargs): Likewise.
9731         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
9732
9733 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9734
9735         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
9736         (ns32k_struct_value_rtx): Likewise.
9737         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
9738         NS32K_STRUCT_VALUE_REGNUM.
9739
9740 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9741
9742         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9743         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9744         (TARGET_STRUCT_VALUE_RTX): Likewise.
9745         (arm_struct_value_rtx): Likewise.
9746         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
9747         (STRUCT_VALUE): Likewise.
9748         (STRUCT_VALUE_REGNUM): Likewise.
9749         (PROMOTE_PROTOTYPES): Likewise.
9750
9751 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9752
9753         * config/ia64/ia64-protos.h: Remove the prototype for
9754         ia64_setup_incoming_varargs and ia64_return_in_memory.
9755         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
9756         (TARGET_RETURN_IN_MEMORY): Likewise.
9757         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9758         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
9759         (ia64_setup_incoming_varargs): Adjust the arguments to meet
9760         the requirement of TARGET_SETUP_INCOMING_VARARGS.
9761         (ia64_return_in_memory): Make it static.  Change the return
9762         type to bool from int.  Add an argument.
9763         (ia64_struct_value_rtx): New.
9764         * config/ia64/ia64.h: Remove commented-out definitions of
9765         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
9766         PROMOTE_PROTOTYPES.
9767         (RETURN_IN_MEMORY): Remove.
9768         (STRUCT_VALUE_REGNUM): Likewise.
9769         (STRICT_ARGUMENT_NAMING): Likewise.
9770
9771 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
9772
9773         PR target/13666
9774         * config/sparc/sparc.c (function_arg_union_value): New function.
9775         (function_arg): Use it to deal with unions.
9776         (function_value): Likewise.  Define 'regbase' only for ARCH64.
9777         Replace a conditional statement by a simpler one.
9778
9779 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
9780
9781         * config/mips/mips.c (mips16_optimize_gp): Delete.
9782         (mips_reorg): Don't call it.
9783
9784 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9785
9786         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
9787         (floatunsqihf2): Remove operand 6.
9788         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
9789         fix patterns.
9790         (ldi_conditional, ldf_conditional): Validate operands.
9791
9792 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9793
9794         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
9795         (HAVE_GAS_HIDDEN): Undefine as interim measure.
9796
9797 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9798
9799         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
9800         memory references if TARGET_EXPOSE_LDP nonzero.
9801
9802 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9803
9804         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
9805
9806 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9807
9808         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
9809         invalid operand combinations.
9810
9811 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9812
9813         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
9814         c4x_legitimate_address_p.  Fix post_modify check.
9815
9816         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
9817         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
9818
9819 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9820
9821         * config/pa/pa-protos.h: Remove the prototype for
9822         hppa_builtin_saveregs.  Add a prototype for
9823         pa_return_in_memory.
9824         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
9825         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9826         (TARGET_STRUCT_VALUE_RTX): Likewise.
9827         (TARGET_RETURN_IN_MEMORY): Likewise.
9828         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9829         (pa_struct_value_rtx): Likewise.
9830         (pa_return_in_memory): Likewise.
9831         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
9832         PA_STRUCT_VALUE_REGNUM.
9833         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
9834         (EXPAND_BUILTIN_SAVEREGS): Remove.
9835         (PROMOTE_PROTOTYPES): Likewise.
9836         (PROMOTE_FUNCTION_RETURN): Likewise.
9837
9838 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9839
9840         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
9841         (TARGET_STRUCT_VALUE_RTX): Likewise.
9842         (vax_struct_value_rtx): Likewise.
9843         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
9844         VAX_STRUCT_VALUE_REGNUM.
9845         (PROMOTE_PROTOTYPES): Remove.
9846
9847 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9848
9849         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
9850
9851 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
9852
9853         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
9854         and MIPS64 have HI/LO interlocks.  Update comment.
9855
9856 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9857
9858         * config/stormy16/stormy16-protos.h: Remove the prototype for
9859         xstormy16_setup_incoming_varargs.
9860         * config/stormy16/stormy16.c
9861         (xstormy16_setup_incoming_varargs): Remove.
9862         (xstormy16_return_in_memory): New.
9863         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
9864         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9865         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9866         (TARGET_STRUCT_VALUE_RTX): Likewise.
9867         (TARGET_RETURN_IN_MEMORY): Likewise.
9868         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
9869         (PROMOTE_FUNCTION_RETURN): Likewise
9870         (PROMOTE_PROTOTYPES): Likewise
9871         (RETURN_IN_MEMORY): Likewise
9872         (STRUCT_VALUE): Likewise
9873         (SETUP_INCOMING_VARARGS): Likewise
9874
9875 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
9876
9877         * config/mips/mips.c (mips_offset_within_object_p): New function.
9878         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
9879         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
9880         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
9881
9882 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9883
9884         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
9885         (PROMOTE_FUNCTION_RETURN): Likewise.
9886
9887 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9888
9889         * config/mn10300/mn10300-protos.h: Remove the prototype for
9890         mn10300_builtin_saveregs.
9891         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
9892         (TARGET_STRUCT_VALUE_RTX): Likewise.
9893         (TARGET_RETURN_IN_MEMORY): Likewise.
9894         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9895         (mn10300_return_in_memory): Likewise.
9896         (mn10300_builtin_saveregs): Make it static.
9897         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
9898         (RETURN_IN_MEMORY): Likewise.
9899         (STRUCT_VALUE): Likewise.
9900         (EXPAND_BUILTIN_SAVEREGS): Likewise.
9901
9902 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
9903
9904         PR bootstrap/13853
9905         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
9906
9907 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9908
9909         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
9910         using ccr.
9911
9912 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9913
9914         * config/i860/i860-protos.h: Remove the prototype for
9915         i860_saveregs.
9916         * config/i860/i860.c (i860_saveregs): Make it static.
9917         (i860_struct_value_rtx): New.
9918         (TARGET_STRUCT_VALUE_RTX): Likewise.
9919         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9920         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
9921         I860_STRUCT_VALUE_REGNUM.
9922         (EXPAND_BUILTIN_SAVEREGS): Remove.
9923
9924 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9925
9926         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
9927         (TARGET_RETURN_IN_MEMORY): Likewise.
9928         (m68hc11_struct_value_rtx): Likewise.
9929         (m68hc11_return_in_memory): Likewise.
9930         * config/m68hc11/m68hc11.h: Remove a commented-out definition
9931         of PROMOTE_PROTOTYPES.
9932         (RETURN_IN_MEMORY): Remove.
9933         (STRUCT_VALUE_REGNUM): Likewise.
9934
9935 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9936
9937         * config/mmix/mmix-protos.h: Remove the prototype for
9938         mmix_setup_incoming_varargs.
9939         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9940         (TARGET_STRUCT_VALUE_RTX): Likewise.
9941         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9942         (mmix_setup_incoming_varargs): Make it static.
9943         (mmix_struct_value_rtx): New.
9944         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
9945         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
9946         (STRUCT_VALUE_REGNUM): Remove.
9947         (SETUP_INCOMING_VARARGS): Likewise.
9948
9949 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9950
9951         * config/mips/mips-protos.h: Remove the prototypes for
9952         mips_setup_incoming_varargs and mips_return_in_memory.
9953         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9954         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9955         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9956         (TARGET_STRUCT_VALUE_RTX): Likewise.
9957         (TARGET_RETURN_IN_MEMORY): Likewise.
9958         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9959         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
9960         (mips_setup_incoming_varargs): Match the prototype for
9961         TARGET_SETUP_INCOMING_VARARGS.
9962         (mips_return_in_memory): Make it static.  Add argument fntype.
9963         (mips_strict_argument_naming): New.
9964         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
9965         (PROMOTE_FUNCTION_ARGS): Likewise.
9966         (PROMOTE_FUNCTION_RETURN): Likewise.
9967         (STRUCT_VALUE): Likewise.
9968         (RETURN_IN_MEMORY): Likewise.
9969         (SETUP_INCOMING_VARARGS): Likewise.
9970         (STRICT_ARGUMENT_NAMING): Likewise.
9971
9972 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9973
9974         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
9975         (TARGET_RETURN_IN_MEMORY): Likewise.
9976         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9977         (ip2k_return_in_memory): Likewise.
9978         (ip2k_setup_incoming_varargs): Likewise.
9979         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
9980         (STRUCT_VALUE): Likewise.
9981         (STRUCT_VALUE_INCOMING): Likewise.
9982         (SETUP_INCOMING_VARARGS): Likewise.
9983
9984 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9985
9986         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
9987         (TARGET_RETURN_IN_MEMORY): Likewise.
9988         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
9989         (avr_return_in_memory): Remove.
9990         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
9991         (STRUCT_VALUE): Likewise.
9992         (STRUCT_VALUE_INCOMING): Likewise.
9993         (STRICT_ARGUMENT_NAMING): Likewise.
9994
9995 2004-01-25  Jan Hubicka  <jh@suse.cz>
9996
9997         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
9998
9999 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
10000
10001         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
10002         (mips_regno_mode_ok_for_base_p): Declare.
10003         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
10004         (FRAME_POINTER_REGNUM): Renumber to 78.
10005         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
10006         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
10007         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
10008         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
10009         (REG_MODE_OK_FOR_BASE_P): Likewise.
10010         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
10011         entry for 77 to "$arg" and entry for 78 to "$frame".
10012         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
10013         (mips_reg_mode_ok_for_base_p): Remove.
10014         (mips_regno_mode_ok_for_base_p): New function, derived from old
10015         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
10016         restrictions unless we're being strict.
10017         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
10018
10019 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10020
10021         * c-common.h: Fix comment typos.
10022         * c-decl.c: Likewise.
10023         * cgraphunit.c: Likewise.
10024         * combine.c: Likewise.
10025         * et-forest.c: Likewise.
10026         * flow.c: Likewise.
10027         * function.c: Likewise.
10028         * ifcvt.c: Likewise.
10029         * integrate.c: Likewise.
10030         * jump.c: Likewise.
10031         * postreload.c: Likewise.
10032         * varray.c: Likewise.
10033
10034 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10035
10036         * doc/frontends.texi: Update copyright.
10037         * doc/gcov.texi: Likewise.
10038         * doc/gty.texi: Likewise.
10039         * doc/sourcebuild.texi: Likewise.
10040         * doc/standards.texi: Likewise.
10041
10042 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
10043
10044         PR target/12978
10045         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
10046         Remove movstrqi_small because it conflicts with movstrqi_large.
10047
10048 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10049
10050         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10051         (TARGET_STRUCT_VALUE_RTX): Likewise.
10052         (cris_struct_value_rtx): Likewise.
10053         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
10054         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
10055         STRUCT_VALUE_REGNUM.
10056         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
10057
10058 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
10059
10060         PR bootstrap/13848
10061         * cse.c (cse_cc_succs): Change the mode of the source expression
10062         as soon as decide we need a new mode.  Don't permit changing modes
10063         if we found a match in a successor block.
10064         (cse_condition_code_reg): Save original mode of source expression
10065         so that we know whether we have to change the mode in other
10066         insns.
10067
10068 2004-01-24  Jan Hubicka  <jh@suse.cz>
10069
10070         * emit-rtl.c (change_address, adjust_address_1, offset_address,
10071         widen_memory_access):  Return early when there is nothing to change.
10072
10073 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
10074
10075         * simplify-rtx.c (simplify_relational_operation): Don't
10076         simplify address == constant into address + -constant == 0.
10077
10078 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10079
10080         * gcc.c (process_command): Don't internationalize the
10081         Copyright message.
10082         * mips-tfile.c (main): Likewise.
10083
10084 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
10085
10086         * cse.c: (cse_cc_succs) Fix comparison warning.
10087
10088 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10089
10090         * config/h8300/h8300.md: Remove extraneous USE in expanders.
10091
10092 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10093
10094         * config/h8300/h8300-protos.h: Provide prototypes for
10095         h8300_legitimate_constant_p and h8300_legitimate_address_p.
10096         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
10097         (h8300_rtx_ok_for_base_p): Likewise.
10098         (h8300_legitimate_address_p): Likewise.
10099         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
10100         h8300_legitimate_constant_p.
10101         (RTX_OK_FOR_BASE_P): Remove.
10102         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
10103
10104 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10105
10106         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
10107         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
10108         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
10109         (REG_OK_FOR_BASE_STRICT_P): Likewise.
10110         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
10111         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
10112         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
10113         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
10114
10115 2004-01-24  Jan Hubicka  <jh@suse.cz>
10116
10117         * cselib.c (remove_useless_values):  Do not access discarded values.
10118
10119 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
10120
10121         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
10122         arrays.
10123
10124 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
10125
10126         * recog.c: Fix a typo in copyright.
10127
10128 2004-01-23  Andrew Pinski  <apinski@apple.com>
10129
10130         * config/rs6000/rs6000.md (call): Fix misappiled patch.
10131         (call_value): Likewise.
10132
10133 2004-01-23  Richard Henderson  <rth@redhat.com>
10134
10135         PR opt/12941
10136         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
10137         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
10138         if SHIFT_COUNT_TRUNCATED is set.
10139
10140 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
10141
10142         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
10143         separate real and imaginary parts.
10144         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
10145
10146 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
10147
10148         PR target/13674
10149         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
10150         loading into GPR.
10151
10152 2004-01-23  Jan Hubicka  <jh@suse.cz>
10153
10154         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
10155         change.
10156
10157         * alloc-pool.c (align_four): Kill.
10158         (create_alloc_pool): Align size to eight.
10159         (free_alloc_pool, free_pool): Invalidate deallocated data.
10160
10161 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
10162
10163         PR gcc/1532
10164         * cse.c (cse_change_cc_mode): New static function.
10165         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
10166         (cse_condition_code_reg): New function.
10167         * rtl.h (cse_condition_code_reg): Declare.
10168         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
10169         * target.h (struct gcc_target): Add fixed_condition_code_regs and
10170         cc_modes_compatible.
10171         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
10172         (TARGET_CC_MODES_COMPATIBLE): Define.
10173         (TARGET_INITIALIZER): Add new initializers.
10174         * targhooks.c (default_cc_modes_compatible): New function.
10175         * targhooks.c (default_cc_modes_compatible): Declare.
10176         * hooks.c (hook_bool_intp_intp_false): New function.
10177         * hooks.h (hook_bool_intp_intp_false): Declare.
10178         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
10179         (TARGET_CC_MODES_COMPATIBLE): Define.
10180         (ix86_fixed_condition_code_regs): New static function.
10181         (ix86_cc_modes_compatible): Likewise.
10182         * doc/tm.texi (Condition Code): Document new hooks.
10183
10184 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10185
10186         * fixinc/inclhack.def (bad_lval): Renamed to ...
10187         (alpha_bad_lval): ... this.
10188         Removed file list.
10189         Restrict to alpha*-dec-osf*.
10190         * fixinc/fixincl.x: Regenerate.
10191         * fixinc/tests/base/dirent.h: Remove, moving test ...
10192         * fixinc/tests/base/testing.h: ... here, reflecting new name.
10193
10194 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
10195
10196         PR c/13814
10197         * c-decl.c (diagnose_mismatched_decls): Also discard a
10198         built-in if we encounter an old-style definition with the
10199         same name.
10200
10201 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
10202
10203         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
10204         set to default{32,64}.
10205
10206 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
10207
10208         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
10209         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
10210
10211 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
10212             Olivier Hainque  <hainque@act-europe.fr>
10213
10214         * fold-const.c (fold_binary_op_with_conditional_arg): Only
10215         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
10216
10217 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
10218
10219         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
10220         size for minipool references.
10221
10222 2004-01-23  Roger Sayle  <roger@eyesopen.com>
10223
10224         * real.c (real_floor, real_ceil): Tweak to allow input and output
10225         arguments to overlap.
10226         (real_round): New function to implement round(3m) semantics.
10227         * real.h (real_round): Prototype here.
10228         * builtins.c (fold_builtin_round): New function to constant fold
10229         round, roundf and roundl.
10230         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
10231
10232 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
10233
10234         PR optimization/13819
10235         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
10236         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
10237         (sh_handle_sp_switch_attribute): Remove warning.
10238
10239 2003-11-30  Jan Hubicka  <jh@suse.cz>
10240
10241         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
10242
10243 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
10244
10245         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
10246         may or may not return non-NIL.
10247         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
10248         check CANNOT_CHANGE_MODE_CLASS
10249
10250 2004-01-23  Jan Hubicka  <jh@suse.cz>
10251
10252         * basic-block.h (PROP_POSTRELOAD): New macro.
10253         (CLEANUP_LOG_LINKS): New.
10254         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
10255         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
10256
10257         * cselib.c (value_pool): New.
10258         (new_cselib_val): Use pool.
10259         (cselib_init): Initialize value_pool
10260         (cselib_finish): Free pool.
10261
10262 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
10263
10264         * config/sparc/sparc.c (scan_record_type): New function.
10265         (function_arg_slotno): Use it to determine which kinds of
10266         registers the record can be passed in.
10267
10268 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
10269
10270         * config/pa/fptr.c: Fix old-style definition.
10271
10272 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
10273
10274         PR optimization/13724
10275         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
10276         represents the zero bits produced by a ZERO_EXTEND operation.
10277
10278 2004-01-22  Roger Sayle  <roger@eyesopen.com>
10279
10280         PR optimization/13821
10281         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
10282         correctly calculate the lowpart offset of the contracted subreg.
10283
10284 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
10285
10286         * doc/invoke.texi (Optimize Options): Note that --param arguments
10287         are subject to change without notice.
10288
10289 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10290
10291         * config.gcc (mips-sgi-irix6*o32): Removed.
10292         * config/mips/iris6-o32-as.h: Likewise.
10293         * config/mips/iris6-o32-gas.h: Likewise.
10294         * config/mips/iris6-o32.h: Likewise.
10295
10296 2004-01-22  Jan Hubicka  <jh@suse.cz>
10297
10298         * cfgcleanup.c (first_pass): New static variable.
10299         (try_forward_edges):  Add work limiting check for threading.
10300         (try_crossjump_bb):  Add work limiting check for crossjumping.
10301         (try_optimize_cfg):  Maintain first pass variable.
10302
10303 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
10304
10305         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
10306         handles complex and vector modes.
10307
10308 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
10309
10310         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
10311         (REG_OK_FOR_BASE_P_STRICT): Likewise.
10312         (STRICT): Likewise.
10313
10314 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
10315
10316         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
10317         (genrtl_for_stmt): Remove emit_nop calls.
10318
10319 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10320
10321         PR target/13713
10322         PR target/13324
10323         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
10324         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
10325         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
10326
10327 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
10328
10329         * config/arm/arm.c: Include "debug.h".
10330         (thumb_pushpop): Take two new arguments.  Add some commentary.
10331         Output frame information when pushing.
10332         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
10333         thumb_pushpop.
10334         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
10335         offset, and pass it to thumb_pushpop.  Output CFI information.
10336         (thumb_expand_prologue): Add some frame-related markers and notes.
10337
10338 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
10339
10340         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
10341         for TARGET_64BIT.
10342         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
10343         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
10344
10345 2004-01-22  Roger Sayle  <roger@eyesopen.com>
10346             Paolo Bonzini  <bonzini@gnu.org>
10347
10348         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
10349         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
10350         * rtl.h (subreg_lsb_1): Prototype here.
10351         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
10352         sign extensions.
10353
10354 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
10355
10356         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
10357         macro need not be defined if jump-tables should contain
10358         relative addresses only when -fPIC or -fPIC is in effect.
10359
10360 2004-01-22  Jan Hubicka  <jh@suse.cz>
10361
10362         * alias.c (reg_base_value): Turn into varray.
10363         (reg_base_value_size): Kill.
10364         (old_reg_base_value): New deletable varray.
10365         (alias_invariant_size): New variable.
10366         (REG_BASE_VALUE): Update to use varray.
10367         (find_base_value): Likewise.
10368         (record_set): Likewise.
10369         (record_base_value): Likewise.
10370         (memrefs_conflict_p): Likewise.
10371         (record_set): Likewise
10372         (record_base_value): Likewise.
10373         (memrefs_conflict_p): Use alias_invariant_size.
10374         (init_alias_analysis): Use varray; set alias_invariant_size;
10375         rescale other arrays to be sized by maxreg.
10376         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
10377
10378 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
10379
10380         * config/sparc/sparc.c (function_arg_slotno): Use
10381         FLOAT_TYPE_P to detect FP fields in structures.
10382         (function_arg_record_value_1): Likewise.
10383         (function_arg_record_value_2): Likewise.
10384
10385 2004-01-22  Jan Hubicka  <jh@suse.cz>
10386
10387         * function.c (allocate_struct_function): Do not initialize expr, emit
10388         and varasm.
10389         (prepare_function_start): Do it here.
10390         * c-parse.in (maybe_type_qual): Do not produce line number notes.
10391
10392 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
10393
10394         PR target/13559
10395         * config/sparc/sparc.c (function_arg_record_value_3): Revert
10396         to 'word_mode' once the first slot has been filled.
10397
10398 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
10399
10400         * config/sparc/sparc.c (function_arg_record_value_1): Fix
10401         computation of the number of integer registers required.
10402
10403 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
10404
10405         * config/i386/i386.md: Simplify certain comparisons of
10406         const_int.
10407
10408 2004-01-21  Andrew Pinski  <apinski@apple.com>
10409
10410         PR target/13785
10411         * config/rs6000/rs6000.md (call_value): Force operand
10412         1 not operand 0 into a register.
10413
10414 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
10415
10416         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
10417         unwind-dw2-fde.h: Update copyright.
10418
10419 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10420
10421         * pa-protos.h: Update copyright.
10422         * pa.h: Likewise.
10423         * pa.md: Likewise.
10424
10425 2004-01-21  Caroline Tice  <ctice@apple.com>
10426
10427         PR target/12308
10428         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
10429         flags register.
10430         (fix_truncdfdi2): Likewise.
10431         (fix_truncsfdi2): Likewise.
10432         (*fix_truncdi_1): Likewise.
10433         (fix_truncxfsi2): Likewise.
10434         (fix_truncdfsi2): Likewise.
10435         (fix_truncsfsi2): Likewise.
10436         (*fix_truncsi_1): Likewise.
10437         (fix_truncxfhi2): Likewise.
10438         (fix_truncdfhi2): Likewise.
10439         (fix_truncsfhi2): Likewise.
10440         (*fix_trunchi_1): Likewise.
10441
10442 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
10443
10444         * alias.c, basic-block.h, c-common.c, c-common.h,
10445         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
10446         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
10447         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
10448         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
10449         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
10450         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
10451         genautomata.c, genconditions.c, genemit.c, genflags.c,
10452         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
10453         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
10454         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
10455         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
10456         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
10457         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
10458         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
10459         unwind.h, varray.c, varray.h: Update copyright.
10460
10461 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
10462
10463         * config/h8300/coff.h: Update copyright.
10464         * config/h8300/elf.h: Likewise.
10465         * config/h8300/h8300-protos.h: Likewise.
10466         * config/h8300/h8300.c: Likewise.
10467         * config/h8300/h8300.h: Likewise.
10468         * config/h8300/h8300.md: Likewise.
10469
10470 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10471
10472         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
10473         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
10474         ultrix_unistd): New hacks.
10475         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
10476         ULTRIX_CONST2_CHECK): Add checks.
10477         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
10478         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
10479         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
10480         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
10481         * fixinc/tests/base/locale.h: New file.
10482         * fixinc/fixincl.x: Rebuilt.
10483
10484 2004-01-21  Andreas Jaeger  <aj@suse.de>
10485             Michael Matz  <matz@suse.de>
10486
10487         * doc/extend.texi (Extended Asm): Clarify memory clobber.
10488
10489 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
10490
10491         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
10492         _Jv_RegisterClasses through a function pointer.
10493
10494 2004-01-21  Falk Hueffner  <falk@debian.org>
10495
10496         PR target/12898
10497         * config/alpha/alpha.c (alpha_emit_set_const_1): If
10498         no_new_pseudos, use gen_rtx_SET directly for SImode constants
10499         which need multiple instructions to emit.
10500
10501 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
10502
10503         * config/m32r/m32r.h (CPP_SPEC): Define.
10504
10505 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
10506
10507         * c-decl.c (merge_decls): Kill different_binding_level and
10508         different_tu arguments; simplify throughout.
10509         (duplicate_decls): Likewise.
10510         (pushdecl, merge_translation_unit_decls): Update calls to
10511         duplicate_decls.
10512
10513 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10514
10515         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
10516         $(SYSTEM_H).
10517         (print-rtl1.o): Depend on $(SYSTEM_H).
10518
10519 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
10520
10521         PR bootstrap/12730
10522         * configure.ac: Delete definition and subsitution of docdir.
10523         Add info, man, srcman and srcinfo to target hooks. Create doc/
10524         directory.
10525         * configure: Regenerate.
10526         * Makefile.in: Don't substitute docdir and delete all references
10527         throughout.
10528         (MAKEINFOFLAGS): Define.
10529         (stmp-docobjdir): Delete.
10530         (INFOFILES, MANFILES): Define.
10531         (info): Call lang.info, srcinfo and lang.srcinfo.
10532         (generated-manpages): Call lang.man, srcman and lang.srcman.
10533         (srcinfo, srcman): New rules to copy back files to source directory.
10534         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
10535         (install-man): Revamp rule.
10536         (clean): Update dvi directory.
10537         (distclean): Delete TAGS from front end directorys.
10538         (maintainer-clean): Delete all document files in source directory.
10539
10540         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
10541         (objc.srcman, objc.srcinfo): Likewise.
10542
10543 2004-01-20  Bruce Korb  <bkorb@gnu.org>
10544
10545         * fixinc/inclhack.def(math_exception): bypass only for glibc.
10546         (matherr_decl): rename & relocate as exception_structure.
10547         This fix must precede the math_exception fix.
10548
10549 2004-01-20  Roger Sayle  <roger@eyesopen.com>
10550
10551         * fold-const.c (fold_convert): Rename to fold_convert_const.
10552         (fold_convert_const): Change arguments to take a tree_code,
10553         a type and the operand/expression to be converted.  Return
10554         NULL_TREE if no simplification is possible.  Add support for
10555         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
10556         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
10557         Adjust call to fold_convert to match new fold_convert_const.
10558         Avoid modifying the tree passed to fold in-place.
10559
10560 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
10561
10562         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
10563         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
10564         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
10565
10566 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10567
10568         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
10569         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
10570         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
10571         (emit_move_sequence): Check scratch_reg first in various if statements.
10572         Extend source simplification to handle all 64-bit CONST_INTs.
10573         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
10574         frame size.
10575         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
10576         frame offset calculations.
10577         * pa.h (NEW_HP_ASSEMBLER): Add comment.
10578         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
10579         LEGITIMATE_64BIT_CONST_INT_P): Define.
10580         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
10581         any CONST_INT as legitimate during and after reload.
10582         (VAL_32_BITS_P, INT_32_BITS): Define.
10583         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
10584
10585 2004-01-20  Jan Hubicka  <jh@suse.cz>
10586
10587         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
10588         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
10589         containing hard regs are shared.
10590         (gen_hard_reg_clobber): New function.
10591         (hard_reg_clobbers): New array.
10592         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
10593         (copy_rtx): Do not copy clobbers containing hard regs.
10594         * rtl.h (gen_hard_reg_clobber): Declare.
10595
10596 2004-01-20  Jan Hubicka  <jh@suse.cz>
10597
10598         * varray.c:  Include hashtab.h
10599         (varray_descriptor): New structure.
10600         (hash_descriptor, eq_descriptor, varray_descriptor,
10601         print_statistics): New static functions
10602         (varray_init, varray_grow): Update statistics
10603         (dump_varray_statistics): New function.
10604         * varray.h (dump_varray_statistics): Declare.
10605         * toplev.c (finalize): Call it.
10606         * Makefile.in (varray.o): Add dependency.
10607
10608 2004-01-20  Jan Hubicka  <jh@suse.cz>
10609
10610         * cselib.c: Include alloc-pool.h
10611         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
10612         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
10613         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
10614         unchain_one_elt_loc_list_pool, unchain_one_value,
10615         new_cselib_val): Simplify using allocpool.
10616         (cselib_init): Initialize allocpools.
10617         (cselib_finish): Finish allocpools.
10618         * Makefile.in (cselib.o): Depend on alloc-pool.h
10619
10620 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
10621
10622         * config/mips/mips.c (mips_load_call_address): Make the call insn
10623         use $gp if it could be calling a lazy binding stub.
10624
10625 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
10626
10627         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
10628         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10629         (TARGET_STRUCT_VALUE_RTX): Likewise.
10630         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
10631         (PROMOTE_FUNCTION_RETURN): Remove.
10632         (STRUCT_VALUE): Remove.
10633
10634 2004-01-20  Denis Chertykov  <denisc@overta.ru>
10635
10636         PR bootstrap/13735
10637         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
10638         register as pointer after reload.
10639
10640 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10641
10642         PR optimization/12440
10643         * loop.c: Include ggc.h.
10644         (loop_optimize): Run garbage collector between optimization of loops.
10645         * Makefile.in (loop.o): Add GGC_H dependency.
10646
10647 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
10648
10649         * gcc/config/rs6000/rs6000.c (function_arg) Handle
10650         vector register special in function without prototype.
10651         (function_arg_advance): Vector parameters get always
10652         GPRs allocated for the linux64 target.
10653
10654 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
10655
10656         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
10657         not TARGET_M32RX_MASK.
10658
10659 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
10660
10661         PR target/13557
10662         * config/sparc/sparc.c (function_arg): Reorder the cases.
10663
10664 2004-01-19  Per Bothner  <per@bothner.com>
10665
10666         Move cpp_reader's line_maps field to a shared global.
10667         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
10668         and change the type to a pointer rather than a struct.
10669         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
10670         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
10671         Likewise.
10672         * cppfiles.c (validate_pch):  Likewise.
10673         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
10674         Likewise.
10675         * cpperror.c (print_location):  Likewise.
10676         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
10677         * cppinit.c (cpp_create_reader):  Handle new parameter.
10678         (cpp_destroy):  Don't free line_maps - that's no longer our job.
10679         * input.h (line_table):  New variable.
10680         * toplev.c (line_table):  Declare variable.
10681         (general_init):  Initialize line_table.
10682         * c-opts.c (c_common_init_options):  Pass line_table to
10683         cpp_create_reader.
10684         * fix-header.c (read_scan_file):  New local variable line_table.
10685         Initialize, and pass it to cpp_create_reader.
10686         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
10687         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
10688
10689 2004-01-19  Per Bothner  <per@bothner.com>
10690
10691         Implement a cache for linemap_lookup.
10692         * line-map.h (struct_line_maps):  Add cache field.
10693         * line-map.c (linemap_init):  Zero cache field.
10694         (linemap_add):  Set cache field to offset of newly allocated map.
10695         (linemap_lookup):  Use and set cache field.
10696
10697 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10698
10699         PR optimization/13567
10700         * cse.c (cse_basic_block): Call cse_insn with a non-null
10701         libcall_insn for the last SET insn of a no-confilict block.
10702
10703 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
10704
10705         * Makefile.in (target_noncanonical, program_transform_name): Use
10706         immediate define instead of deferred.
10707         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
10708         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
10709         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
10710         deferred backquote.
10711
10712 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
10713
10714         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
10715         true unconditionally.
10716         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
10717         Remove.
10718         (build_unary_op, build_modify_expr): Don't handle extended
10719         lvalues.
10720         (build_component_ref, build_conditional_expr): Call non_lvalue
10721         instead of pedantic_non_lvalue.
10722         (build_c_cast): Don't condition use of non_lvalue on pedantic.
10723         * fold-const.c (fold): Don't check pedantic directly for
10724         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
10725         passed to pedantic_non_lvalue.
10726         * doc/extend.texi: Remove documentation of extended lvalues.
10727
10728 2004-01-19  Roger Sayle  <roger@eyesopen.com>
10729
10730         PR optimization/5263
10731         * simplify-rtx.c (associative_constant_p): Delete.
10732         (simplify_associative_operation): Rewrite to linearize terms, and
10733         attempt to simplify new term against both left and right subterms.
10734         (simplify_binary_operation): Call swap_commutative_operands_p on
10735         op0 and op1, not trueop0 and trueop1.  Move the initialization of
10736         trueop0 and trueop1 down to where first needed.
10737         (simplify_relational_operation): Likewise.
10738         * rtlanal.c (commutative_operand_precedence): Also order constant
10739         operands using avoid_constant_pool_reference.
10740
10741 2004-01-19  Richard Henderson  <rth@redhat.com>
10742
10743         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
10744         don't check memory mode.
10745         (unaligned_memory_operand): Likewise.
10746         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
10747         abort for op0 not MEM.
10748
10749         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
10750         is not a reg, copy to a scratch first.
10751         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
10752         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
10753         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
10754         (reload_inqi, reload_inhi): Fix mode of op0.
10755         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
10756         reload_outhi_help): Likewise.  Use define_insn_and_split.
10757
10758         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
10759         as well as $29 dead.
10760
10761 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
10762
10763         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
10764         "tls_object" for thread-local objects.
10765         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
10766         "#tls" for thread-local sections.
10767         * configure.ac (thread-local checks): Specify --fatal-warnings in
10768         every binutils-specific checks.  For sparc*-*-*, test whether the
10769         OS is Solaris and the tools are native and act accordingly.
10770         * configure: Rebuild.
10771
10772 2004-01-19  Jeff Law  <law@redhat.com>
10773
10774         * contrib.texi: Update Paolo Carlini's entry.  New entries for
10775         Jerry Quinn and Petur Runolfsson.
10776
10777 2004-01-19  Roger Sayle  <roger@eyesopen.com>
10778
10779         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
10780         size, don't use the larger zero-extending loads.
10781
10782 2004-01-19  Richard Henderson  <rth@redhat.com>
10783
10784         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
10785         * alpha.md (UNSPEC_NT_LDA): Remove.
10786         (UNSPEC_CVTLQ, cvtlq): New.
10787         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
10788         (extendsidi2_fix): Remove.
10789         (extendsidi2 splitter): Use cvtlq.
10790         (extendsidi2 fp peepholes): Remove.
10791         (cvtql): Use SFmode instead of SImode.
10792         (fix_trunc?fsi): Update to match.
10793         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
10794         (movsi): Rename from movsi_nofix, remove f alternatives.
10795         (movsi_nt_vms): Similarly.
10796         (movsi_fix, movsi_nt_vms_fix): Remove.
10797         (nt_lda): Remove.
10798         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
10799
10800 2004-01-19  Jan Hubicka  <jh@suse.cz>
10801
10802         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
10803         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
10804         list.
10805         (cgraph_remove_unreachable_nodes): New function
10806         (cgraph_decide_inlining_of_small_function): Fix pasto.
10807         (cgraph_decide_inlining_incrementally): Fix pasto.
10808         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
10809
10810 2004-01-19  Steven Bosscher  <stevenb@suse.de>
10811
10812         * gengtype.c (header_file): Make it static.
10813         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
10814         * gengtype.h (header_file): No longer extern.
10815
10816 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
10817
10818         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
10819         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
10820         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
10821
10822 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
10823
10824         * stmt.c (HAVE_casesi): Define it not already defined.
10825         (HAVE_tablejump): Likewise.
10826         (expand_end_case_type): Resort to the binary tree method if
10827         neither casesi or tablejump is available.
10828
10829 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
10830
10831         * final.c (final_scan_insn): Make non-static again.
10832         * output.h (final_scan_insn): Re-add prototype.
10833         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
10834         to final_scan_insn call.
10835         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
10836         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
10837         * config/pa/pa.c (output_lbranch, output_call): Likewise.
10838         * config/sh/sh.c (print_slot): Likewise.
10839         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
10840         (output_sibcall, sparc_flat_function_epilogue): Likewise.
10841
10842 2004-01-18  Jan Hubicka  <jh@suse.cz>
10843
10844         * basic-block.h (try_redirect_by_replacing_jump): Declare.
10845         * cfgcleanup.c (try_optimize_cfg): Use it.
10846         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
10847         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
10848         Kill hack.
10849         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
10850
10851         Revert:
10852         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
10853
10854                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
10855                 even after reload, just don't remove the actual jump tables.
10856
10857 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
10858
10859         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
10860
10861 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
10862
10863         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
10864         the size of a pointer in bytes.
10865
10866 2004-01-18  Roger Sayle  <roger@eyesopen.com>
10867
10868         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
10869         live "next" variable, which could lead to an infinite loop.
10870
10871 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
10872
10873         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
10874         block.
10875
10876         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
10877         Check for NULL in the chain and remove repeated code.
10878
10879 2004-01-18  Jan Hubicka  <jh@suse.cz>
10880
10881         * coverage.c (checksum_string): Rename to ...
10882         (coverage_checksum_string): ... this one, Use crc32_string; recognize
10883         names containing random number and zero the number out in order to get
10884         match.
10885
10886 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
10887
10888         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
10889
10890 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
10891
10892         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
10893         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
10894         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
10895         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
10896         doc/trouble.texi: Remove trailing whitespace.
10897
10898 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
10899
10900         PR target/7618
10901         * config/mips/mips.c: Include cfglayout.h.
10902         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
10903         (mips_unspec_offset_high): Add temporary register argument.
10904         (mips_load_call_address): New function, split out from...
10905         (mips_expand_call): ...here.
10906         (mips_output_cplocal): New function.
10907         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
10908         (mips_emit_loadgp): New function, split out from...
10909         (mips_expand_prologue): ...here.
10910         (mips_output_mi_thunk): New function.
10911
10912 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
10913
10914         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
10915         mcpu32): Remove redundant checks for implied target predefines.
10916
10917 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
10918
10919         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
10920         Return type is unsigned int not int.
10921         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
10922         Likewise.
10923
10924 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
10925
10926         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
10927         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
10928         "GNU/Linux" and "Microsoft Windows" terminology.
10929
10930 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
10931
10932         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
10933         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
10934         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
10935         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
10936         @smallexample instead of @example.
10937
10938 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
10939
10940         * objc/objc-act.c (build_objc_method_call): Use target
10941         hooks instead of macros to determine if ..._stret
10942         dispatchers should be used (NeXT runtime only).
10943
10944 2004-01-17  Roger Sayle  <roger@eyesopen.com>
10945
10946         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
10947         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
10948
10949 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
10950
10951         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
10952         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
10953         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
10954         macros.
10955         * reload1.c (emit_reload_insns): Use them.
10956         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
10957         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
10958         for NULL PATTERN.
10959
10960 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
10961
10962         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
10963         (final_scan_insn): Update to take an additional SEEN argument.  Emit
10964         a line note after the prologue.  Make static.
10965         (line_note_exists): Remove.
10966         (final): Don't initialize line_note_exists.  Update call to
10967         final_scan_insn.
10968         * output.h (final_scan_insn): Remove prologue.
10969         * function.c (set_insn_locators): Update comment.
10970         (thread_prologue_and_epilogue_insns): Add a comment.
10971
10972 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
10973
10974         PR target/10781
10975         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
10976         Prototype.
10977         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
10978         New function.
10979         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
10980         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
10981         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
10982
10983 2004-01-17  Jan Hubicka  <jh@suse.cz>
10984
10985         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
10986         commit.
10987
10988         * toplev.c (HAVE_conditional_execution): Provide default.
10989         (rest_of_handle_reorder_blocks): For conditional_execution target
10990         update liveness once after all transformations
10991         (rest_of_compilation): Do crossjumping before ce3.
10992
10993 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
10994
10995         * alias.c (new_alias_set): Mark last_alias_set for PCH.
10996         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
10997         for PCH.
10998         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
10999         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
11000         (get_TOC_alias_set): Mark 'set' for PCH.
11001
11002 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
11003
11004         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
11005         even after reload, just don't remove the actual jump tables.
11006
11007 2004-01-17  J. Brobecker  <brobecker@gnat.com>
11008
11009         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
11010         Remove checks for is_ada() and TREE_UNSIGNED.
11011         (subrange_type_die): Emit a byte_size attribute if the subrange
11012         type size is different from the base type size.
11013         (modified_type_die): Replace call to is_ada_subrange_type() by
11014         call to is_subrange_type().
11015
11016 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
11017
11018         * config/sh/sh.c: Include ggc.h.
11019
11020 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
11021
11022         * Makefile.in (MD5_H): New.
11023         (fold-const.o): Depend on md5.h.
11024         (dwarf2out.o): Likewise.
11025         (cppfiles.o): Likewise.
11026         * cppfiles.c: Include md5.h.
11027         (should_stack_file): Check against list read from PCH file.
11028         (struct pchf_data): New.
11029         (pchf): New variable.
11030         (struct pchf_adder_info): New.
11031         (pchf_adder): New.
11032         (pchf_save_compare): New.
11033         (_cpp_save_file_entries): New.
11034         (_cpp_read_file_entries): New.
11035         (struct pchf_compare_data): New.
11036         (pchf_compare): New.
11037         (check_file_against_entries): New.
11038         * cpphash.h (_cpp_save_file_entries): Prototype.
11039         (_cpp_read_file_entries): Prototype.
11040         * cpppch.c (cpp_write_pch_state): Write the list of headers.
11041         (cpp_read_state): Read the list of headers.
11042
11043 2004-01-17  Jan Hubicka  <jh@suse.cz>
11044
11045         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
11046         builtin_expect specially.
11047         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
11048         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
11049         * invoke.texi (max-inline-insns-single): Set to 100.
11050         (large-function-insns): Set to 3000.
11051
11052 2004-01-16  Eric Christopher  <echristo@redhat.com>
11053             Chandrakala Chavva <cchavva@redhat.com>
11054
11055         * cppcharset.c (one_iso88591_to_utf8): New function.
11056         (convert_iso88591_utf8): Ditto. Use.
11057         (conversion_tab): Use.
11058         (_cpp_input_to_utf8): New function.
11059         (_cpp_init_iconv_buffer): Ditto.
11060         (_cpp_close_iconv_buffer): Ditto.
11061         * cpphash.h: Prototype new functions.
11062         (cpp_buffer): Add input_cset_desc.
11063         * cppinit.c: Add input_charset default.
11064         * cpplib.c (cpp_push_buffer): Support init and
11065         close of iconv.
11066         * cpplib.h (cpp_options): Add input_charset.
11067
11068 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
11069
11070         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
11071         * config/alpha/unicosmk.h: Remove a commented-out definition
11072         of ASM_OUTPUT_SECTION_NAME.
11073         * config/stormy16/stormy16.h: Likewise.
11074
11075 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11076
11077         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
11078         (alpha___extern_prefix_sys_stat): ... this.
11079         Apply to <sys/mount.h>, too.
11080         Tweak to match more variations.
11081         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
11082
11083         * fixinc/inclhack.def (alpha___extern_prefix,
11084         alpha___extern_prefix_standards): New hacks to obey
11085         __PRAGMA_EXTERN_PREFIX.
11086         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
11087         test.
11088         * fixinc/tests/base/standards.h: Likewise.
11089
11090         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
11091         variations.
11092         New testcase.
11093         * fixinc/tests/base/pthread.h: Handle it.
11094
11095         * fixincl/inclhack.def (bad_lval): Sort file list.
11096         Add many missing files up to Tru64 UNIX V5.1B.
11097         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
11098         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
11099         order.
11100
11101         * fixinc/fixincl.x: Regenerate.
11102
11103 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
11104
11105         * version.c (version_string): Change to 3.5.0.
11106         * doc/include/gcc-common.texi (version-GCC): Likewise.
11107
11108 2004-01-16  Jan Hubicka  <jh@suse.cz>
11109
11110         * i386.md (load_tp_di): Fix pasto.
11111
11112         PR opt/13608
11113         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
11114
11115         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
11116         pp_c_character_constant, pp_c_floating_constant,
11117         pp_c_additive_expression, pp_c_shift_expression,
11118         pp_c_equality_expression, pp_c_and_expression,
11119         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
11120         pp_c_logical_and_expression): Remove inline modifier.
11121         * dwarf2out.c (get_AT): Likewise.
11122         * et-forest.c (et_splay): Likewise.
11123         * ra.h (ra_alloc, ra_calloc): Likewise
11124
11125 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
11126
11127         * config/frv/frv-protos.h: Fix comment formatting.
11128         * config/frv/frv.c: Likewise.
11129         * config/frv/frv.h: Likewise.
11130         * config/frv/frv.md: Likewise.
11131         * config/frv/frvbegin.c: Likewise.
11132         * config/frv/frvend.c: Likewise.
11133
11134 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
11135
11136         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
11137         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
11138         LINKER_DOES_NOT_WORK_WITH_DWARF2.
11139         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
11140
11141 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
11142
11143         PR 11864
11144         * postreload.c (reload_cse_simplify_operands): Don't remove
11145         implicit extension from LOAD_EXTEND_OP.
11146
11147 2004-01-16  Jan Hubicka  <jh@suse.cz>
11148
11149         PR opt/11350
11150         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
11151         after reload.
11152         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
11153         rtl_try_redirect_by_replacing_branch): Likewise.
11154
11155 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
11156
11157         PR pch/13689
11158         * alias.c (struct alias_set_entry): Mark for GC.
11159         (alias_sets): Make static, mark for GC.
11160         (record_alias_subset): Use GC to allocate alias structures.
11161         * varray.c (element): Make generic varrays GCed.
11162
11163         PR pch/13361
11164         * c-typeck.c (constructor_asmspec): Delete.
11165         (struct initializer_stack): Delete field 'asmspec'.
11166         (start_init): Delete saving of asmspec.
11167         (finish_init): Don't update constructor_asmspec.
11168         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
11169         * stmt.c (expand_asm): Duplicate strings from tree.
11170         (expand_asm_operands): Likewise.
11171         * tree.c (tree_size): Update computation of size of STRING_CST.
11172         (make_node): Don't make STRING_CST nodes.
11173         (build_string): Allocate string with tree node.
11174         * tree.def (STRING_CST): Update comment.
11175         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
11176         (tree_string): Place contents of string in tree node.
11177         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
11178         from tree.
11179
11180         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
11181         altivec operands.
11182
11183 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11184
11185         * c-common.h: Fix comment formatting.
11186         * c-cppbuiltin.c: Likewise.
11187         * c-pragma.c: Likewise.
11188         * calls.c: Likewise.
11189         * collect2.c: Likewise.
11190         * cppcharset.c: Likewise.
11191         * cpptrad.c: Likewise.
11192         * dbxout.c: Likewise.
11193         * defaults.h: Likewise.
11194         * dwarf2out.c: Likewise.
11195         * fold-const.c: Likewise.
11196         * genautomata.c: Likewise.
11197         * genconditions.c: Likewise.
11198         * genflags.c: Likewise.
11199         * gengtype.c: Likewise.
11200         * integrate.c: Likewise.
11201         * loop.c: Likewise.
11202         * predict.c: Likewise.
11203         * sdbout.c: Likewise.
11204
11205 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
11206
11207         * config/ia64/ia64.md (*movti_internal): C output template
11208         extracted to ia64.c.
11209         (*movti_internal_reg): Delete.
11210         (reload_inti, reload_outti): Use the correct mode on operand 2
11211         in the first place, don't fix it up in the output template.
11212         (movtf, reload_ointf, reload_outtf): New expanders.
11213         (*movtf_internal): New define_insn_and_split.
11214         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
11215         make static; do not hand TFmode CONST_DOUBLEs to split_double.
11216         (ia64_split_tmode_move): New function, body mostly pulled
11217         from ia64.md:*movti_internal.
11218         (ia64_function_arg_words): New function, extracted common
11219         logic from ia64_function_arg et seq.
11220         (ia64_function_arg_offset): Likewise.  Handle correctly the
11221         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
11222         (ia64_function_arg, ia64_function_arg_partial_nregs)
11223         (ia64_function_arg_advance): Use ia64_function_arg_words and
11224         ia64_function_arg_offset.
11225         (ia64_function_value): TCmode does not go in float regs.
11226         (ia64_secondary_reload_class): Also handle TFmode.
11227         * config/ia64/ia64-protos.h: Remove prototype for
11228         ia64_split_timode; add prototype for ia64_split_tmode_move.
11229
11230 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
11231
11232         * Makefile.in (MAINT): Make it an immediate assignment.
11233
11234 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11235
11236         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
11237
11238 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11239
11240         * config/h8300/coff.h: Replace Hitachi with Renesas.
11241         * config/h8300/elf.h: Likewise.
11242         * config/h8300/h8300-protos.h: Likewise.
11243         * config/h8300/h8300.c: Likewise.
11244         * config/h8300/h8300.h: Likewise.
11245         * config/h8300/h8300.md: Likewise.
11246         * config/h8300/lib1funcs.asm: Likewise.
11247
11248 2004-01-15  Andrew Pinski  <apinski@apple.com>
11249
11250         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
11251         around it.
11252
11253 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11254
11255         * config/h8300/h8300.c (h8300_return_in_memory): New.
11256         (TARGET_STRUCT_VALUE_RTX): Likewise.
11257         (TARGET_RETURN_IN_MEMORY): Likewise.
11258         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
11259         (RETURN_IN_MEMORY): Likewise.
11260
11261 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
11262
11263         PR optimization/13375
11264         * gcse.c (handle_avail_expr): Just return if the source is not a
11265         single set.
11266
11267 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
11268             Daniel Jacobowitz  <drow@mvista.com>
11269
11270         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
11271         (EQUIV): Define.
11272         (ARM_FUNC_ALIAS): New macro.
11273         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
11274         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
11275
11276 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11277
11278         PR optimization/12372
11279         * calls.c (expand_call): Add call_fusage data for stack arguments in
11280         constant calls.
11281
11282 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
11283
11284         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
11285         (rs6000_elf_declare_function_name): Formatting.
11286         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
11287
11288 2004-01-15  Jan Hubicka  <jh@suse.cz>
11289
11290         PR bootstrap/13692
11291         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
11292         previous patch.
11293
11294 2004-01-15  Richard Henderson  <rth@redhat.com>
11295
11296         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
11297         integer regs of the same call-savedness.
11298
11299 2004-01-15  Andreas Schwab  <schwab@suse.de>
11300
11301         PR bootstrap/13562
11302         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
11303         status for NOTB/NOTW/NEGW methods.
11304
11305 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11306
11307         * doc/invoke.texi: Update dump file names.  Fix a typo.
11308
11309 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11310
11311         * builtins.c (expand_builtin_va_end): Don't use
11312         EXPAND_BUILTIN_VA_END.
11313         * system.h (EXPAND_BUILTIN_VA_END): Poison.
11314         * config/d30v/d30v.h: Remove a commented-out definition of
11315         EXPAND_BUILTIN_VA_END.
11316         * config/stormy16/stormy16.h: Likewise.
11317
11318 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11319
11320         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
11321         * targhooks.c (default_struct_value_rtx): Don't use
11322         STRUCT_VALUE_INCOMING_REGNUM.
11323
11324 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
11325
11326         PR bootstrap/12744
11327         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
11328         GENINSRC and not parsedir.  Define srcextra as a langhook.
11329         * configure: Regenerate.
11330         * Makefile.in: Suppress default .l.c rule.  Don't substitute
11331         parsedir and delete all references throughout.  Conditionally define
11332         rule for srcextra dependent on GENINSRC.
11333         (stmp-docobjdir): Delete.
11334         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
11335         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
11336         and gengtype-yacc.h back to source directory.
11337         (maintainer-clean): Delete all parse files in source directory.
11338         (distclean): Delete generated files.
11339
11340         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
11341         (objc-parse.c, objc-parse.y): Don't use parsedir.
11342         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
11343         directory if requested.
11344         (po-generated): Don't use parsedir.
11345         (objc.maintainer-clean): Delete above files from source directory.
11346
11347 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11348
11349         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
11350
11351 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11352
11353         * doc/tm.texi: Replace RETURN_IN_MEMORY with
11354         TARGET_RETURN_IN_MEMORY.
11355
11356 2004-01-15  Jan Hubicka  <jh@suse.cz>
11357
11358         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
11359         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
11360         functions accepting SSE arguments
11361         (function_arg): Warn only when asked to warn.
11362         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
11363
11364 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
11365
11366         * c-parse.in (stmts_and_decls): Make label at end of compound
11367         statement a hard error.
11368
11369 2004-01-14  Jan Hubicka  <jh@suse.cz>
11370
11371         * cgraph.c (create_edge): Use local.redefined_extern_inline.
11372         * cgraph.h (cgraph_local_info): Sort fields by size; add
11373         redefined_extern_inline
11374         (cgraph_global_info): Sort fields by size.
11375         (cgraph_node): Likewise.
11376         * cgraphunit.c (cgraph_finalize_function): Se
11377         local.redefined_extern_inline on redefinition.
11378         (cgraph_analyze_function): Use it; fix formating.
11379
11380 2004-01-14  Jan Hubicka  <jh@suse.cz>
11381
11382         PR c++/10776
11383         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
11384         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
11385         bitmaps
11386         (cache_size): New variable
11387         (add_dependence): Update use; canonize early memory locations
11388         (sched_analyze_1): Likewise.
11389         (sched_analyze_2): Likewise.
11390         (init_dependency_caches): Initialize bitmaps.
11391         (free_dependency_caches): Free bitmaps
11392
11393 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11394
11395         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
11396         targetm.calls.strict_argument_naming().
11397         * target.h: Likewise.
11398
11399 2004-01-14  Richard Henderson  <rth@redhat.com>
11400
11401         PR debug/13231
11402         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
11403         instructions.
11404
11405 2004-01-14  Richard Henderson  <rth@redhat.com>
11406
11407         PR c++/12491
11408         * except.c (struct eh_region): Add u.fixup.resolved.
11409         (resolve_one_fixup_region): Split out from ...
11410         (resolve_fixup_regions): ... here.
11411
11412 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11413
11414         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
11415
11416 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11417
11418         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
11419         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
11420         (STRUCT_VALUE): Remove.
11421
11422 2004-01-14  Steven Bosscher  <stevenb@suse.de>
11423
11424         * system.h: Poison PROMOTED_MODE
11425         * integrate.c (expand_inline_function): Don't mention the
11426         PROMOTED_MODE.
11427         * loop.c (update_giv_derive): Same.
11428         * tree.h (DECL_RTL): Same.
11429
11430 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
11431
11432         PR target/9365
11433         * sh.c (gen_block_redirect): Add special handling of RETURN.
11434         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
11435         far branch target (i.e. it's a return).
11436
11437 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11438
11439         * regrename.c (find_oldest_value_reg): Fix a warning.
11440
11441 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
11442
11443         PR bootstrap/12527
11444         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
11445         Move linux-gas.h and linux-elf.h before aout.h.
11446         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
11447         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
11448
11449 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11450
11451         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
11452         (CONST_INT, VOIDmode, ...).
11453
11454 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
11455
11456         * regrename.c (find_oldest_value_reg): If the replacement uses
11457         multiple hard registers, check that all of them are in CLASS.
11458
11459 2004-01-14  Jan Hubicka  <jh@suse.cz>
11460
11461         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
11462         impossible.
11463
11464 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
11465
11466         * Makefile.in: Define MAINT from --enable-maintainer-mode.
11467
11468 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
11469
11470         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
11471         Calculate always vrsave_mask if TARGET_ALTIVEC.
11472         (rs6000_emit_prologue): Emit code for vrsave
11473         only if TARGET_ALTIVEC_VRSAVE.
11474         (rs6000_emit_epilogue): Likewise.
11475
11476 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
11477
11478         * config/sparc/sparc.md (tie_add32): Fix pasto.
11479         (tie_add64): Likewise.
11480
11481 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11482
11483         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
11484
11485 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
11486
11487         * config/iq2000/iq2000-protos.h: Fix comment formatting.
11488         * config/iq2000/iq2000.c: Likewise.
11489         * config/iq2000/iq2000.md: Likewise.
11490
11491 2004-01-14  J. Brobecker  <brobecker@gnat.com>
11492
11493         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
11494         (subrange_type_die): Add handle for nameless subrange types.
11495
11496 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
11497
11498         * config/h8300/h8300-protos.h: Replace do_movsi with
11499         h8300_expand_movsi.
11500         * config/h8300/h8300.c (do_movsi): Change to
11501         h8300_expand_movsi.
11502         * config/h8300/h8300.md (movsi): Replace do_movsi with
11503         h8300_expand_movsi.
11504         (movsf): Likewise.
11505
11506 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
11507
11508         * config/h8300/h8300.c (dosize): Change to
11509         h8300_emit_stack_adjustment.  Update callers.
11510
11511 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
11512
11513         * config/h8300/h8300.md (movstrictqi): Add an alternative with
11514         the source being post_inc.  Tighten the predicate for the
11515         destination to register_operand.
11516         (movstricthi): Likewise.
11517
11518 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
11519
11520         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
11521         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
11522         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
11523
11524 2004-01-14  Jan Hubicka  <jh@suse.cz>
11525
11526         Partial fix PR c++/12850
11527         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
11528         at zero nest level.
11529
11530 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
11531
11532         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
11533         pseudo-register.
11534
11535 2004-01-13  Devang Patel <dpatel@apple.com
11536
11537         PR debug/7078
11538         * dbxout.c (dbxout_symbol_name): Emit mangled names for
11539         NAMESPACE_DECL memebers.
11540
11541 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
11542
11543         PR c++/12709
11544         * c-common.c (finish_fname_decls): Use the chain only if the
11545         tree is an expr_stmt.
11546
11547 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
11548
11549         * rtl.def: Add comment about new option in automata_option.
11550
11551         * genautomata.c (PROGRESS_OPTION): New macro.
11552         (progress_flag): New global variable.
11553         (gen_automata_option): Process `progress'.
11554         (transform_insn_regexps, check_unit_distributions_to_automata,
11555         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
11556         expand_automata, write_automata): Print about the progress only if
11557         progress_flag.  Remove fflush.
11558         (initiate_automaton_gen): Process command line flag `-progress'.
11559
11560         * doc/md.texi: Describe the new option.
11561
11562 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11563
11564         * cfg.c (dump_bb): Dump entry edges.
11565
11566 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
11567
11568         * arm.c (thumb_legitimate_address_p): Only allow constant pool
11569         references from SImode.
11570         * arm.md (thumb_movhi_insn): Don't allow minipool references.
11571
11572 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
11573
11574         * system.h (TEXT_SECTION): Poison.
11575         * varasm.c (text_section): Don't use TEXT_SECTION.
11576         * config/sh/sh.c (sh_file_start): Fix a comment typo.
11577         * doc/tm.texi (TEXT_SECTION): Remove.
11578
11579 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
11580
11581         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
11582
11583 2004-01-12  James E Wilson  <wilson@specifixinc.com>
11584
11585         * unwind-libunwind.c: Delete.
11586
11587 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
11588
11589         PR 13656
11590         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
11591         oldtype is set, set *newtypep or *oldtypep too.  Do not set
11592         them at the very end.
11593         (validate_proto_after_old_defn): Restructure for comprehensibility;
11594         make error messages clearer.
11595
11596 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
11597
11598         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
11599         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
11600         * varray.c: No need to prototype error.
11601         (varray_check_failed): Wrap long string onto two lines.
11602         (varray_underflow): New function.
11603
11604 2004-01-13  Steven Bosscher  <stevenb@suse.de>
11605
11606         PR c++/13376
11607         * function.h (struct function): Kill `name' field.
11608         (current_function_name): Make it an extern function.
11609         * function.c (current_function_name): New function.
11610         * graph.c: Update all uses of current_function_name.
11611         * gcse.c: Likewise.
11612         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
11613         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
11614         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
11615         instead of a strcmp with "main".
11616
11617 2004-01-13  Jan Hubicka  <jh@suse.cz>
11618
11619         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
11620
11621         * cgraphunit.c (cgraph_optimize_function):  Always do
11622         optimize_inline_calls when there is always_inline callee.
11623         (cgraph_decide_inlining): Fix formating.
11624         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
11625         functions.
11626         (expand_call_inline): Likewise.
11627         * toplev.h (sorry): Fix prototype.
11628
11629 2004-01-12  Roger Sayle  <roger@eyesopen.com>
11630
11631         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
11632         conditional jumps that drop through to unconditional jumps or the
11633         end of the sequence.
11634
11635 2004-01-13  Jan Hubicka  <jh@suse.cz>
11636
11637         * alias.c (new_alias_set): Construct the alias_set varray.
11638         (init_alias_once): Don't do it here.
11639
11640 2004-01-12  Marc Espie <espie@openbsd.org>
11641
11642         * system.h: handle YYBYACC like YYBISON.
11643
11644 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
11645
11646         PR target/10847
11647         * config.gcc: No longer includes conflicting header sparc/sol2.h when
11648         building on sparc64-*-openbsd*.
11649
11650 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
11651
11652         PR debug/13539
11653         * dbxout.c (dbxout_type): Protected inheritance is not
11654         private but protected.
11655
11656 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
11657
11658         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
11659
11660 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
11661
11662         PR optimization/12508.
11663         * combine.c (try_combine): Remove a dead set in a parallel
11664         even if its destination is a subreg.
11665
11666         Revert:
11667         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
11668         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
11669         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
11670
11671 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
11672
11673         * real.c: Update copyright date.
11674         * emit-rtl.c: Likewise.
11675         * rtl.h: Likewise.
11676         * dwarf2out.c: Likewise.
11677         * config/rs6000/darwin-ldouble.c: Likewise.
11678         * config/rs6000/rs6000.md: Likewise.
11679
11680 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
11681
11682         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
11683         TFmode to SImode libfuncs.
11684
11685 2004-01-12  Roger Sayle  <roger@eyesopen.com>
11686
11687         PR middle-end/11397
11688         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
11689
11690 2004-01-12  Jan Hubicka  <jh@suse.cz>
11691
11692         PR opt/12826
11693         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
11694         stored.
11695
11696         PR opt/12863
11697         * cfgcleanup.c (label_is_jump_target_p): Move to...
11698         * rtlanal.c (label_is_jump_target_p): ... here.
11699         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
11700         edges unified with branch edges.
11701
11702 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
11703
11704         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
11705         high word of an integral CONST_DOUBLE.
11706
11707 2004-01-12  Paul Brook  <paul@codesourcery.com>
11708
11709         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
11710
11711 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
11712
11713         PR target/13585
11714         * sh-protos.h (check_use_sfunc_addr): Declare.
11715         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
11716         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
11717
11718 2004-01-12  Jan Hubicka  <jh@suse.cz>
11719
11720         * alias.c:  Invlude varray.h
11721         (alias_sets): Turn into varray.
11722         (get_alias_set_entry): Use VARRAY; mark inline.
11723         (mems_in_disjoint_alias_sets_p): Mark inline.
11724         (record_alias_subset): Use varray.
11725         (init_alias_once): Initialize varray.
11726         (new_alias_set): Grow array.
11727         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
11728
11729 2004-01-12  Jan Hubicka  <jh@suse.cz>
11730
11731         Partial fix for PR opt/10776 II
11732         * cselib.c: Include params.h
11733         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
11734         locations.
11735         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
11736         * Makefile.in (cselib.o): Depend on params.h
11737
11738 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
11739
11740         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
11741         simplify_unary_operation if the operand has a known mode.
11742
11743 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
11744
11745         PR target/13534
11746         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
11747         predicate to handle 'ld' conform addresses.
11748         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
11749         contraint.
11750         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
11751         are memory contraints.
11752         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
11753         New prototype.
11754         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
11755         Change 'o' to 'Y' constraint.
11756         (*movdf_softfloat64): Ditto.
11757
11758 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
11759
11760         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
11761         brace-enclosed syntax in all C output statements.
11762
11763 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
11764
11765         PR target/13401
11766         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
11767         Objective-C language type value is 14.
11768
11769 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
11770
11771         PR c/12148
11772         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
11773         `int' in a number of places to make sure we always have a SImode
11774         and not a HImode.  Add a 'L' suffix to a number of constants.
11775
11776 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11777
11778         * pa.c: Don't include obstack.h.
11779
11780         * pa.md: Correct constraint in pattern for loading PIC label address.
11781
11782 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
11783
11784         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
11785          before defining.
11786
11787 2004-01-11  Steven Bosscher  <stevenb@suse.de>
11788
11789         PR fortran/9972
11790         * toplev.c (rest_of_handle_inline): Also consider functions
11791         for deferral if the language is GNU F77.
11792
11793 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
11794
11795         * c-decl.c (diagnose_arglist_conflict): Add missing space to
11796         diagnostic messages.
11797
11798 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
11799
11800         PR middle-end/13392
11801         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
11802         to drop through label.  Don't fall back to SCC even when conditional
11803         jump has not been found.
11804
11805 2004-01-11  Jan Hubicka  <jh@suse.cz>
11806
11807         * invoke.texi: Fix syntax error in previous patch.
11808
11809         Partial fix for PR opt/10776
11810         * Makefile.in (reload.o): Include param.h
11811         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
11812         * reload.c: Include params.h.
11813         (find_equiv_reg): Work limiting check.
11814         * invoke.texi: Document.
11815
11816 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
11817
11818         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
11819         out-of-bounds accesses to string constants.  Simplify mips16
11820         case accordingly.
11821
11822 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
11823
11824         PR optimization/13469
11825         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
11826         reload_cse_regs (-fnon-call-exceptions only).
11827
11828 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
11829
11830         * config/mcore/lib1.asm: Fix comment formatting.
11831         * config/mcore/mcore-elf.h: Likewise.
11832         * config/mcore/mcore.c: Likewise.
11833         * config/mcore/mcore.h: Likewise.
11834         * config/mcore/mcore.md: Likewise.
11835
11836 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
11837
11838         * c-decl.c (duplicate_decls): Break apart into...
11839         (diagnose_arglist_conflict, validate_proto_after_old_defn)
11840         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
11841         ... these new functions.  Restructure for comprehensibility.
11842         Remove various archaic special cases.  Always report the
11843         location of the previous declaration when a diagnostic is issued.
11844         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
11845         (match_builtin_function_types): Delete unnecessary forward declaration.
11846
11847 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
11848
11849         * genautomata.c (make_automaton, NDFA_to_DFA):
11850         Print progress bars with '.' characters instead of '*'.
11851         (build_automaton): Change notes to match.
11852
11853 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
11854
11855         * config/m32r/m32r.md: Use define_constants for unspec and
11856         unspec_volatile.
11857
11858 2004-01-10  Jan Hubicka  <jh@suse.cz>
11859
11860         PR opt/11635
11861         * expr.c (expand_expr_real):  More curefully expand union casts.
11862
11863 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
11864
11865         * config/m32r/m32r.md (flush_icache): Use 1 for
11866         unspec_volatile.
11867
11868 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
11869             James E Wilson  <wilson@specifixinc.com>
11870
11871         PR debug/12860
11872         * dbxout.c (dbxout_symbol): Remove initialization of
11873         current_sym_code, current_sym_value, and current_sym_addr.
11874         (dbxout_symbol_location): Same.
11875         (dbxout_prepare_symbol): Zero current_sym_code,
11876         current_sym_value, and current_sym_addr.
11877
11878 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
11879
11880         * tree.c (get_unwidened): Reorder conditions so that the null pointer
11881         check is done first.
11882
11883 2004-01-09  Eric Christopher  <echristo@redhat.com>
11884
11885         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
11886         if we're running mark_constant_function.
11887
11888 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
11889
11890         PR target/12561
11891         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
11892
11893 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
11894
11895         PR debug/11231
11896         * dbxout.c (dbxout_type_fields): Return if any item is
11897         error_mark_node or the type is error_mark_node.
11898
11899 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
11900
11901         * config/rs6000/darwin-ldouble.c: Add big comment explaining
11902         exactly what is expected as a 'long double'.
11903         (_xlqadd): When a value to be returned is representable as a
11904         'double', just return it directly, do not construct it using a union.
11905         Also, correct final fixup.
11906         (_xlqmul): Likewise.
11907         (_xlqdiv): Likewise.
11908         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
11909
11910         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
11911
11912 2004-01-09  Richard Henderson  <rth@redhat.com>
11913
11914         * recog.c (constrain_operands): Validate mem operands.
11915
11916 2004-01-09   James E Wilson  <wilson@specifixinc.com>
11917
11918         * gcc.c (init_spec): Remove -lunwind from shared case.
11919         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
11920
11921 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
11922
11923         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
11924         * configure: Regenerate
11925
11926 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
11927
11928         PR c/11234
11929         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
11930         between function and object pointers.
11931         (digest_init): When comparing a pointer to function type to the
11932         target type, only apply TREE_TYPE once to the pointer to function
11933         type.
11934         * except.c (for_each_eh_label_1): Treat data as a pointer to a
11935         function pointer rather than casting it to a function pointer.
11936         (for_each_eh_label): Update caller.
11937         * recog.h (struct insn_data): Use a struct or union for output.
11938         * genoutput.c (output_insn_data): Update.
11939         * final.c (get_insn_template): Update.
11940
11941 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
11942
11943         * expr.h (expand_expr): Make it a macro, not a function.
11944         (expand_expr_real): New function.
11945         * expr.c (store_expr): Adjust logic for deciding whether or not to
11946         copy the value returned by expand_expr.
11947         (expand_expr): Rename to ...
11948         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
11949         calls to language hooks.
11950         * c-common.h (c_expand_expr): Adjust prototype.
11951         * c-common.c (c_expand_expr): Add alt_rtl parameter.
11952         * langhooks-def.h (lhd_expand_expr): Change prototype.
11953         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
11954         * langhooks.h (lang_hooks): Change type of expand_expr.
11955         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
11956         (last_expr_alt_rtl): Likewise.
11957         (expand_expr_stmt_value): Set last_expr_alt_rtl.
11958         (clear_last_expr): Clear it.
11959         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
11960         (expand_end_bindings): Save and restor last_expr_alt_rtl.
11961         * tree.def (RTL_EXPR): Give it an additional operand.
11962         * tree.h (RTL_EXPR_ALT_RTL): New macro.
11963
11964 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
11965
11966         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
11967         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
11968
11969 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
11970
11971         PR target/13380.
11972         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
11973         or (ne:SI (reg:CC 17) (const_int 0)).
11974         Be specific about modes wherever possible.
11975
11976 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
11977
11978         * config/m32r/m32r.c (m32r_expand_block_move): Call
11979         gen_movestrsi_internal with two more arguments.
11980         (m32r_output_block_move): Adjust operand numbers.
11981         Properly update the source and destination pointers.
11982         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
11983         'r+'.  Change the set detinations to match_operand.
11984
11985 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
11986
11987         * final.c (FIRST_INSN_ADDRESS): Remove.
11988         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
11989         * system.h (FIRST_INSN_ADDRESS): Poison.
11990         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
11991         * config/m32r/m32r-protos.h: Remove the prototype for
11992         m32r_first_insn_address.
11993         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
11994         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
11995         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
11996
11997 2004-01-09  J. Brobecker  <brobecker@gnat.com>
11998
11999         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
12000         we just created.
12001         (is_ada_subrange_type): DIEs for enumeration subtypes should be
12002         emitted as subrange types too.
12003         (subrange_type_die): Add handling of enumeration subtypes.
12004
12005 2004-01-08  Richard Henderson  <rth@redhat.com>
12006
12007         PR opt/12441
12008         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
12009         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
12010         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
12011         (ix86_address_cost): Be prepared for SUBREGed registers.
12012         (legitimate_address_p): Accept SUBREGed registers.
12013
12014 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
12015
12016         * Makefile.in: Rename configure.in to configure.ac
12017         * doc/sourcebuild.texi: Likewise.
12018         * configure: Regenerate.
12019         * config.in: Regenerate.
12020
12021 2004-01-08  Stuart Hastings  <stuart@apple.com>
12022
12023         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
12024
12025 2004-01-08  Jan Hubicka  <jh@suse.cz>
12026
12027         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
12028
12029 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
12030
12031         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
12032         (UNSPEC_FIX_TRUNC_TF): New constant.
12033         (movtf_internal): Make splitter active only when insn is active.
12034         (extenddftf2): Rewrite to properly load zero into low part.
12035         (extenddftf2_internal): New.
12036         (extendsftf2): Rewrite.
12037         (truncdftf2): Correct length.
12038         (floatditf2): Delete.
12039         (fix_trunc_helper): New.
12040         (fix_trunctfdi2): Use fix_trunc_helper.
12041         (fix_trunctfsi2): Likewise.fix_trunc
12042         (fix_trunctfsi2_internal): New.
12043
12044         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
12045         addresses are legitimate on Darwin even when flag_pic.
12046         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
12047         non-offsettable addresses for loads of TFmode constants.
12048
12049 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
12050
12051         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
12052         variables in the appropriate bss section.
12053
12054 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
12055
12056         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
12057         target_flags has MASK_POWERPC64 when -m64.
12058         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
12059         to 620, 630, power3, power4 and rs64a entries.
12060         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
12061
12062 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
12063
12064         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
12065         floating-point constants.
12066
12067 2004-01-08  J. Brobecker  <brobecker@gnat.com>
12068
12069         * dwarf2out.c (subrange_type_die): Add context_die parameter.
12070         Create the subrange_type DIE using the given context DIE.
12071         (modified_type_die): Update call to subrange_type_die.
12072
12073 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
12074
12075         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
12076         Add multiple-include guard.
12077
12078 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
12079
12080         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
12081         all vector constant loadable by vsplt*.
12082         (output_vec_const_move): Likewise.
12083
12084 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
12085
12086         PR c/6024
12087         * c-typeck.c (comptypes): Only treat enumerated types in the same
12088         translation unit as compatible with each other when they are the
12089         same type.
12090         * doc/extend.texi: Update.
12091
12092 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
12093
12094         PR c/12165
12095         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
12096         array type from the array element type.
12097
12098 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
12099
12100         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
12101         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
12102         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
12103         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
12104         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
12105
12106 2004-01-06  Eric Christopher  <echristo@redhat.com>
12107
12108         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
12109         (DWARF2_DEBUGGING_INFO): Define.
12110         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
12111         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
12112         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
12113         for irix as.
12114         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
12115         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
12116         * config/mips/iris5gas.h: Ditto.
12117         (DBX_DEBUGGING_INFO): Remove.
12118         (DWARF2_DEBUGGING_INFO): Ditto.
12119         (MIPS_DEBUGGING_INFO): Ditto.
12120         (PREFERRED_DEBUGGING_TYPE): Ditto.
12121         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
12122         (PREFERRED_DEBUGGING_TYPE): Ditto.
12123         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
12124         * config/mips/elf64.h: Ditto.
12125
12126 2004-01-06  Jan Hubicka  <jh@suse.cz>
12127
12128         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
12129         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
12130
12131 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
12132
12133         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
12134         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
12135         * config/rs6000/darwin-ldouble.c: New.
12136
12137         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
12138         for constants.
12139         (constant_subword): Delete.
12140         * rtl.h (constant_subword): Delete prototype.
12141         (immed_double_const): Is not in varasm.c.
12142         * simplify-rtx.c (simplify_immed_subreg): New.
12143         (simplify_subreg): Use simplify_immed_subreg.
12144
12145         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
12146         than trying to generate RTL directly.
12147         (fix_trunctfsi2): Use expand_fix rather than trying to generate
12148         RTL directly.
12149
12150         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
12151
12152 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
12153
12154         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
12155         function into a separate macro.
12156         (read_only_data_section): Add void argument.
12157         (private_data_section): Same.
12158         (read_only_private_data_section): Same.
12159         (toc_section): Same.
12160
12161 2004-01-06  Jan Hubicka  <jh@suse.cz>
12162
12163         * invoke.texi:  Remove typo in last change.
12164
12165         PR target/10301
12166         * config.gcc: Accept opteron and athlon-64 as variants
12167         of k8.
12168         * i386.c (override_options): Likewise.
12169         * invoke.texi (i386 -mtune): Expand documentation.
12170
12171 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
12172
12173         * alias.c: Fix comment typos.
12174         * builtins.c: Likewise.
12175         * cfg.c: Likewise.
12176         * df.c: Likewise.
12177         * dominance.c: Likewise.
12178         * dwarf2out.c: Likewise.
12179         * emit-rtl.c: Likewise.
12180         * expr.c: Likewise.
12181         * final.c: Likewise.
12182         * fold-const.c: Likewise.
12183         * gcse.c: Likewise.
12184         * genattrtab.c: Likewise.
12185         * genrecog.c: Likewise.
12186         * gensupport.c: Likewise.
12187         * ggc-zone.c: Likewise.
12188         * integrate.c: Likewise.
12189         * local-alloc.c: Likewise.
12190         * loop.c: Likewise.
12191         * recog.c: Likewise.
12192         * regmove.c: Likewise.
12193         * reg-stack.c: Likewise.
12194         * reorg.c: Likewise.
12195         * rtlanal.c: Likewise.
12196         * rtl.h: Likewise.
12197         * sched-ebb.c: Likewise.
12198         * simplify-rtx.c: Likewise.
12199         * toplev.c: Likewise.
12200         * varasm.c: Likewise.
12201
12202 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
12203
12204         * doc/install.texi: Fix typos.
12205         * doc/invoke.texi: Likewise.
12206         * doc/md.texi: Likewise.
12207
12208 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
12209
12210         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
12211
12212 2004-01-06  Jan Hubicka  <jh@suse.cz>
12213
12214         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
12215         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
12216         of MMX_REGPARM.
12217         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
12218         add MMX_REGPARM.
12219         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
12220         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
12221         (MMX_REGPARM_MAX): Similarly for -mmmx.
12222
12223 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
12224
12225         * config/sh/linux.h: Fix comment formatting.
12226         * config/sh/netbsd-elf.h: Likewise.
12227         * config/sh/sh.c: Likewise.
12228         * config/sh/sh.h: Likewise.
12229         * config/sh/vxworks.h: Likewise.
12230
12231 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
12232
12233         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
12234         * toplev.c (output_file_directive): Don't use
12235         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
12236
12237 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
12238
12239         * toplev.c: Fix broken checkin of 2003-12-30.
12240
12241 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
12242
12243         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
12244         (USING_MMAP): We don't support non-mmap.
12245         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
12246         large objects.
12247         (struct page_entry): Remove bytes_free.
12248         (struct page_table_chain): Remove.
12249         (struct globals): Remove page_table member.
12250         (loookup_page_table_entry): Function deleted.
12251         (set_page_table_entry): Ditto.
12252         (ggc_allocated_p): No longer need page table lookups.
12253         (ggc_marked_p): Ditto.
12254         (alloc_small_page): Don't care about bytes_free anymore.
12255         (alloc_large_page): Round up size.
12256         (ggc_alloc_zone_1): Mark large objects as such, and calculate
12257         their size the new way.
12258         Remove page table lookups and setting.
12259         (ggc_get_size): Calculate large object size the new way.
12260         (sweep_pages): Redo to account for fact that we no longer have
12261         bytes_free.
12262         (ggc_collect): No longer need to reincrement bytes_free.
12263         (ggc_pch_alloc_object): Handle new large objects properly.
12264         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
12265
12266 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
12267
12268         * doc/invoke.texi: Remove a page break.
12269
12270 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
12271
12272         * config/avr/avr.c (avr_output_function_prologue): Remove an
12273         extra pair of curly braces.
12274
12275 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
12276
12277         * config/mn10300/mn10300.c: Fix comment formatting.
12278         * config/mn10300/mn10300.h: Likewise.
12279
12280 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12281
12282         * tree.h: Update documentation on nothrow_flag.
12283         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
12284         types.
12285
12286 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
12287
12288         * doc/invoke.texi: Remove traces of dead ports.
12289
12290 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
12291
12292         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
12293         option.
12294
12295 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
12296
12297         PR target/12945
12298         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
12299         counter labels.
12300         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
12301         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
12302         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
12303         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
12304         (mips_symbol_insns): Don't trust the local/global classification.
12305         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
12306         (override_options): Make -mabicalls -fno-unit-at-a-time imply
12307         -mno-explicit-relocs.
12308         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
12309         between local and global symbols.
12310
12311 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
12312
12313         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
12314         (mips_preferred_reload_class): Declare.
12315         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
12316         (EXTRA_CONSTRAINT): Update accordingly.
12317         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
12318         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
12319         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
12320         mips_dangerous_for_la25_p.
12321         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
12322         if mips_dangerous_for_la25_p.
12323
12324 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
12325
12326         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
12327         warning.
12328
12329 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
12330
12331         * configure.ac: Use AC_PROG_CPP_WERROR.
12332         * configure: Regenerate.
12333
12334 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
12335
12336         * .cvsignore: Add autom4te.cache.
12337
12338 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
12339
12340         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
12341         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
12342         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
12343         then architecture options, then ABI options.  General rewording.
12344
12345 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
12346
12347         PR c/3414
12348         * doc/extend.texi: Clarify definition of malloc attribute.
12349
12350 2004-01-04  Jan Hubicka  <jh@suse.cz>
12351
12352         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
12353         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
12354         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
12355         (cgraph_inline_p): Add extra argument reason.
12356         * cgraphunit.c: Minor formating fixes.
12357         cgraph_first_inlined_callee): New functions.
12358         (record_call_1): Record builtins too.
12359         (cgraph_analyze_function): Update inline_failed messages.
12360         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
12361         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
12362         (cgraph_check_inline_limits): Likewise; Add argument reason.
12363         (cgraph_set_inline_failed): New static function.
12364         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
12365         reasons.
12366         (cgraph_inline_p): Add new argument reason.
12367         * tree-inline.c (expand_call_inline):  Update warning.
12368
12369 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
12370
12371         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
12372         with modern equivalents.
12373         * configure: Regenerate.
12374
12375         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
12376         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
12377         * configure: Regenerate.
12378
12379         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
12380
12381         * configure.in: Rename to configure.ac.
12382         * configure.ac: Renamed from configure.in; make minimum necessary
12383         changes for autoconf 2.5x.
12384         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
12385         * configure: Regenerate with autoconf 2.57.
12386
12387 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
12388
12389         * config/mips/linux.h: Fix comment formatting.
12390         * config/mips/mips.c: Likewise.
12391         * config/mips/mips.h: Likewise.
12392         * config/mips/mips.md: Likewise.
12393         * config/mips/netbsd.h: Likewise.
12394         * config/mips/windiss.h: Likewise.
12395
12396 2004-01-02  Richard Henderson  <rth@redhat.com>
12397
12398         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
12399         for sse and 387; add suppression for mmx.
12400
12401 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
12402
12403         * loop.c (loop_optimize): Free all loops_info's mems.
12404
12405         * c-typeck.c (finish_init): Free spelling_base before
12406         setting it again.
12407
12408         * cfgloop.c (flow_loops_find): Always free the sbitmap
12409         headers.
12410
12411         * predict.c (estimate_probability): Free bbs after being
12412         done with it.
12413
12414 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
12415
12416         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
12417         const_8bit_operand and call_address_operand.
12418
12419 2004-01-02  Jan Hubicka  <jh@suse.cz>
12420
12421         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
12422         when there is nothing to inline but warnings are requested.
12423         (cgraph_decide_inlining):  Fix memory leak.
12424
12425 2004-01-02  Jan Hubicka  <jh@suse.cz>
12426
12427         * expr.c (store_constructor):  Fix pasto in previous patch.
12428
12429 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
12430
12431         * config/i386/cygming.h: Fix comment formatting.
12432         * config/i386/djgpp.h: Likewise.
12433         * config/i386/gthr-win32.c: Likewise.
12434         * config/i386/i386-interix.h: Likewise.
12435         * config/i386/i386.c: Likewise.
12436         * config/i386/i386.h: Likewise.
12437         * config/i386/openbsd.h: Likewise.
12438         * config/i386/winnt.c: Likewise.
12439         * config/i386/xm-mingw32.h: Likewise.
12440
12441 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
12442
12443         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
12444         copyright and last modification dates.
12445
12446 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
12447
12448         * doc/install.texi (Specific): Mention x86_64.
12449
12450 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
12451
12452         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
12453         Call force_operand on plus_constant result.
12454
12455 2004-01-01  Jan Hubicka  <jh@suse.cz>
12456
12457         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
12458         * expr.c (store_constructor): Use vec_init pattern.
12459         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
12460         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
12461         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
12462         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
12463         New patterns.
12464         (sse2_unpc?pd): Fix pattern.
12465         (sse2_movlpd): Kill.
12466         (sse2_movsd): Deal with movlpd too.
12467         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
12468         (ix86_expand_vector_init): New.
12469         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
12470         * md.texi (vec_set, vec_extract): Document
12471
12472 2003-12-31  Jan Hubicka  <jh@suse.cz>
12473
12474         PR opt/13473
12475         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
12476         ASM input operands
12477
12478         PR opt/12617
12479         * toplev.c (dump_file_index): Reorder ce3 and bbro.
12480         (dump_file): Likewise.
12481         (rest_of_compilation): Likewise.
12482
12483         PR debug/13367
12484         * cgraph.c (cgraph_function_possibly_inlined):  Even with
12485         flag_really_no_inline we inline always_inline functions.
12486         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
12487         for non-always_inline functions when there is flag_really_no_inline.
12488         (cgraph_decide_inlining): Limit work done when not inlining.
12489         (cgraph_decide_inlining_incrementally): Likewise.
12490         (cgraph_optimize_function): Check whether something got inlined.
12491         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
12492         extern inline functions when not inlining.
12493
12494         * opts.c (decode_options):  Disable crossjumping at -O1
12495         * invoke.texi (-O1): Document change.
12496
12497 See ChangeLog.10 for earlier changes.