OSDN Git Service

a64562a2a0adae39250838f385ebade0f0fe3531
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-04-29  Richard Sandiford  <rsandifo@redhat.com>
2
3         PR target/15189
4         * config/mips/mips.md (load_df_low): Use default length.
5         (load_df_high, store_df_high): Likewise.
6
7 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
8
9         * config/mips/mips.md, config/mips/sb1.md,
10         config/rs6000/rs6000.c: Fix comment typos.
11
12 2004-04-29  Kazu Hirata  <kazu@cs.umass.edu>
13
14         * builtins.c, cgraph.c, cgraphunit.c, final.c, fold-const.c:
15         Fix comment typos.
16
17 2004-04-29  Douglas B Rupp  <rupp@gnat.com>
18
19         * gcc.c (DELETE_IF_ORDINARY): New macro default definition.
20         (delete_if_ordinary): Use above macro.
21         * config/alpha/xm-vms.h (DELETE_IF_ORDINARY): New macro VMS definition.
22         Update copyright.
23         * doc/hostconfig.texi (DELETE_IF_ORDINARY): Document new macro.
24
25 2004-04-29  Richard Earnshaw  <rearnsha@arm.com>
26
27         * c-decl.c (get_parm_info): Use the correct tag keywords when
28         warning about type declarations in prototypes.
29
30 2004-04-29  Paul Brook  <paul@codesourcery.com>
31
32         * config.gcc: Pull list of cores from arm-cores.def.
33
34 2004-04-29  Paolo Bonzini  <bonzini@gnu.org>
35
36         * combine.c (combine_simplify_rtx): Adjust call to use
37         simplify_relational_operation.  Do not use SELECT_CC_MODE
38         when a comparison already has a MODE_CC mode.
39         (simplify_set): simplify_relational_operation may now
40         return another relational expression.
41         * cse.c (fold_rtx): simplify_relational_operation now
42         takes of computing the comparison mode.
43         * dojump.c (compare_from_rtx): Use simplify_relational_operation,
44         remove dead code.
45         (do_compare_rtx_and_jump): Likewise.
46         * integrate.c (subst_constants): simplify_relational_operation
47         may now return another relational expression.
48         * simplify-rtx.c (simplify_gen_relational): Move most code to
49         the new simplify_relational_operation and
50         simplify_relational_operation_1 functions.
51         (simplify_relational_operation): Rewritten.
52         (simplify_relational_operation_1): New function.
53         (simplify_ternary_operation): simplify_relational_operation
54         may now return another relational expression.
55         (simplify_rtx): Remove unnecessary temp variable. 
56
57 2004-04-29  Uros Bizjak  <uros@kss-loka.si>
58
59         * reg-stack.c (swap_to_top): New function.
60         (subst_stack_regs_pat): UNSPEC_FPATAN, UNSPEC_FYL2X: Use
61         swap_to_top().
62         (subst_stack_regs_pat): UNSPEC_FSCALE: Remove.
63         (subst_stack_regs_pat): Handle UNSPEC_FSCALE_FRACT and 
64         UNSPEC_FSCALE_EXP.
65
66         * config/i386/i386.md (UNSPEC_FSCALE): Remove.
67         (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): Remove insn pattern.
68         (UNSPEC_FSCALE_FRACT, UNSPEC_FSCALE_EXP): New unspecs to represent
69         x87's fscale insn.
70         (*fscalexf4: Define new insn pattern to implement x87 fscale insn.
71         (exp?f2, exp10?f2, exp2?f2): Use *fscalexf4 and float_truncate
72         patterns.
73
74 2004-04-28  Serge Belyshev  <1319@bot.ru>
75
76         PR 14944
77         * coverage.c (read_counts_file): Fix usage of warning () call.
78         * pretty-print.c (pp_base_format_text): Fix typo in the comment.
79
80 2004-04-28  Ben Elliston  <bje@au.ibm.com>
81
82         * doc/invoke.texi (Objective-C Dialect Options): Don't prefix
83         options with "-" in the option index.
84         (SPARC Options): Likewise.
85         (M32R/D Options): Likewise.
86
87 2004-04-28  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
88
89         * convert.c (convert_to_integer): Convert (long)round -> lround,
90         etc.
91
92 2004-04-28  Andrew Pinski  <pinskia@physics.uc.edu>
93
94         * config/rs6000/rs6000.c (registers_ok_for_quad_peep):
95         Return false if we do not have fp register.
96         (addrs_ok_for_quad_peep): Rename to ...
97         (mems_ok_for_quad_peep): this.
98         Add check for volatile memory.
99         * config/rs6000/rs6000-protos.h (addrs_ok_for_quad_peep):
100         Rename to ...
101         (mems_ok_for_quad_peep): this.
102         * config/rs6000/rs6000.md: Change peephole's for lfq/stq
103         to peephole2's.
104         (lfq_power2): New instruction.
105         (stfq_power2): Likewise.
106
107 2004-04-28  Jan Hubicka  <jh@suse.cz>
108
109         PR c/15004
110         * function.c (do_warn_unused_parameter): Break out form ...
111         (expand_function_end): ... here; warn only when not using cgraphunit.
112         * function.h (do_warn_unused_parameter): Declare.
113         * cgraphunit.c: Include function.h.
114         (cgraph_finalize_function): Do unused parameter warning.
115         * Makefile.in (cgraphunit.o): Depend on function.h
116
117 2004-04-28  Joseph S. Myers  <jsm@polyomino.org.uk>
118
119         * Makefile.in ($(DESTDIR)$(infodir)/%.info): Don't condition
120         calling install-info on $(DESTDIR)$(infodir)/dir already being
121         present.
122
123 2004-04-28  Paul Brook  <paul@codesourcery.com>
124
125         * dwarf2out.c (mem_loc_descriptor): Handle shifts.
126
127 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
128
129         * gcse.c (find_moveable_store): Do not accept store insns with 
130         REG_EH_REGION note.
131
132 2004-04-28  Paul Brook  <paul@codesourcery.com>
133
134         * calls.c (precompute_arguments): Remove PROMOTE_FOR_CALL_ONLY.
135         * function.c (assign_temp): Ditto.
136         * system.h (PROMOTE_FOR_CALL_ONLY): Poison.
137
138 2004-04-28  Paul Brook  <paul@codesourcery.com>
139
140         * config/arm/lib1funcs.asm: Recognize armv5tej and armv6.
141
142 2004-04-28  Josef Zlomek  <zlomekj@suse.cz>
143
144         * var-tracking.c (variable_different_p): Add a parameter
145         compare_current_location, compare current location of variable parts
146         if it is true.
147         (dataflow_set_different_1): Pass compare_current_location == false.
148         (dataflow_set_different_2): Pass compare_current_location == false.
149         (emit_notes_for_differences_1): Pass compare_current_location == true.
150
151 2004-04-28  Ulrich Weigand  <uweigand@de.ibm.com>
152
153         * config/s390/s390.md ("casesi"): Mark jump table access as
154         non-trapping and unchanging.
155
156 2004-04-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
157
158         PR debug/14829
159         * dwarf2out.c (reg_number): Rename to dbx_reg_number.  Adjust all
160         callers.
161         (multiple_reg_loc_descriptor, reg_loc_descriptor): Use gcc register
162         number for indexing hard_regno_nregs array.
163         
164 2004-04-27  Geoffrey Keating  <geoffk@apple.com>
165
166         * config/darwin.h (STARTFILE_SPEC): Use %s to find crt2.o.
167         * config/darwin-crt2.c: Only have contents on __ppc__.
168
169 2004-04-27  Bob Wilson  <bob.wilson@acm.org>
170
171         * config/xtensa/xtensa.c (call_insn_operand): Check
172         SYMBOL_REF_EXTERNAL_P in addition to SYMBOL_REF_LOCAL_P.
173         * config/xtensa/xtensa.h (LEGITIMATE_PIC_OPERAND): Likewise.
174         * config/xtensa/xtensa.md (call, call_value): Likewise.
175
176 2004-04-27  Wu Yongwei  <adah@sh163.net>
177
178         * gthr-win32.h (__gthread_mutex_t): Change typedef to new structure.
179         (__GTHREAD_MUTEX_INIT_DEFAULT): Adjust.
180         (__gthread_mutex_init_function): Replace CreateMutex with
181         initialization of custom mutex using CreateSemaphore.
182         (__gthread_mutex_lock): Use InterlockedIncrement.
183         (__gthread_mutex_trylock): Use InterlockedCompareExchange.
184         (__gthread_mutex_unlock): Use InterlockedDecrement and
185         ReleaseSemaphore to unlock
186         * config/i386/gthr-win32.c (__gthread_mutex_init_function,
187         __gthread_mutex_lock, __gthread_mutex_trylock,
188         __gthread_mutex_unlock): Adjust to match inline versions in
189         gthr-win32.h.
190
191 2004-04-27  Paul Brook  <paul@codesourcery.com>
192
193         * config/arm/arm.c (arm_promote_prototypes): New function.
194         (TARGET_PROMOTE_PROTOTYPES): Use it.
195
196 2004-04-27  Paul Brook  <paul@codesourcery.com>
197
198         * config/arm/arm.c (arm_expand_epilogue): Count blocks of 4 regs.
199
200 2004-04-26  Bernard Giroud  <bgiroud@free.fr>
201
202         * config/alpha.c (alpha_end_function): For OpenVMS gas,
203         correctly output .pdesc directive before .end.
204
205 2004-04-26  James E Wilson  <wilson@specifixinc.com>
206
207         Bug 14927
208         * config/ia64/ia64.md (movxf): New local op0.  Handle case where
209         operands[0] is a SUBREG.  Handle case where operands[1] is a GR reg.
210
211 2004-04-26  Zack Weinberg  <zack@codesourcery.com>
212
213         * config/ia64/hpux.h: Predefine __STDCPP__ when compiling C++.
214         * config/pa/pa-hpux10.h: Likewise.
215         * config/pa/pa-hpux11.h: Likewise.
216
217 2004-04-26  Geoffrey Keating  <geoffk@apple.com>
218
219         * doc/invoke.texi (Overall Options): Document default for -o
220         for PCH files.
221
222 2004-04-26  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
223
224         * builtins.c (expand_builtin_update_setjmp_buf): New function.
225         (expand_builtin, case BUILT_IN_UPDATE_SETJMP_BUF): New case.
226         * builtins.def (BUILT_IN_UPDATE_SETJMP_BUF): New code.
227
228 2004-04-26  Paul Brook  <paul@codesourcery.com>
229
230         * config/arm/arm.c (arm_legitimate_index_p): Correct iwmmxt offsets.
231
232 2004-04-26  Paul Brook  <paul@codesourcery.com>
233
234         * config/arm/arm.c (arm_legitimate_index_p): Correct maverick offsets.
235
236 2004-04-25  Roger Sayle  <roger@eyesopen.com>
237
238         * fold-const.c (fold): Prefer fold_convert (negate_expr (...)) to
239         fold (build1 (NEGATE_EXPR, ...)).  Optimize X / -1 as -X and
240         X % -1 as 0.
241
242 2004-04-26  Hans-Peter Nilsson  <hp@bitrange.com>
243
244         PR bootstrap/15141
245         * except.c (connect_post_landing_pads): Delete insns after the
246         barrier when generating a unwind_resume_libfunc call.
247
248 2004-04-25  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
249
250         PR/c++ 15119
251         * tree.c (substitute_placeholder_in_expr, case 4): New case,
252         for TARGET_EXPR.
253
254 2004-04-25  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
255
256         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
257         __gcov_execv, __gcov_execvp, __gcov_execve): Do not declare when
258         inhibit_libc is defined.
259
260 2004-04-25  Richard Sandiford  <rsandifo@redhat.com>
261
262         * config/mips/mips-protos.h (mips_linked_macc_p): Declare.
263         * config/mips/mips.h (TUNE_MACC_CHAINS): New macro.
264         * config/mips/mips.c (TARGET_SCHED_REORDER): Define.
265         (TARGET_SCHED_VARIABLE_ISSUE): Define.
266         (mips_adjust_cost): Move later in file, next to other sched hooks.
267         (mips_macc_chains_last_hilo): New variable.
268         (mips_linked_madd_p, mips_macc_chains_record, mips_macc_chains_reorder)
269         (mips_promote_ready, mips_sched_reorder, mips_variable_issue): New.
270         * config/mips/mips.md (may_clobber_hilo): New attribute.
271
272 2004-04-24  Roger Sayle  <roger@eyesopen.com>
273             Bruce Korb  <bkorb@gnu.org>
274
275         * fixinc/inclhack.def (aix_syswait_2): New fix.
276         * fixinc/fixincl.x: Regenerate.
277         * fixinc/tests/base/sys/wait.h: Update for new test.
278
279 2004-04-24  Alan Modra  <amodra@bigpond.net.au>
280
281         PR target/14960
282         * config/rs6000/rs6000.c (rs6000_stack_info): Rename total_raw_size
283         to non_fixed_size, and leave out fixed_size from the sum.
284         (generate_set_vrsave): Correct clobbers.
285         (rs6000_emit_epilogue): Test TARGET_ALTIVEC with TARGET_ALTIVEC_SAVE.
286         (rs6000_function_value): Test TARGET_ALTIVEC and TARGET_ALTIVEC_ABI.
287         (rs6000_libcall_value): Likewise.
288         * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Likewise.
289         (FUNCTION_ARG_REGNO_P): Likewise.
290
291 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
292
293         * expmed.c (expand_mult_highpart_adjust): Do not assume OP1
294         is a CONST_INT.
295         (expand_mult_highpart_optab): Call expand_mult_highpart_adjust
296         with NARROW_OP1 instead of OP1.
297
298 2004-04-24  Ulrich Weigand  <uweigand@de.ibm.com>
299
300         * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __s390__
301         and __s390x__ hosts.
302
303 2004-03-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
304
305         * Makefile.in (LIBGCOV): Add _gcov_fork, _gcov_execl, _gcov_execlp,
306         _gcov_execle, _gcov_execv, _gcov_execvp, _gcov_execve.
307         * builtin-types.def (BT_PID, BT_PTR_CONST_STRING, BT_FN_PID,
308         BT_FN_INT_CONST_STRING_PTR_CONST_STRING,
309         BT_FN_INT_CONST_STRING_PTR_CONST_STRING_PTR_CONST_STRING): New.
310         * builtins.c (expand_builtin_fork_or_exec): New.
311         (expand_builtin): Call it.
312         * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP,BUILT_IN_EXECLE,
313         BUILT_IN_EXECV, BUILT_IN_EXECVP, BUILT_IN_EXECVE, BUILT_IN_FORK): New.
314         * c-common.c (PID_TYPE): New macro.
315         (c_common_nodes_and_builtins): Initialize pid_type_node.
316         * calls.c (special_function_p): Do not handle fork and exec.
317         (expand_call): Do not handle ECF_FORK_OR_EXEC.
318         * gcov-io.h (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
319         __gcov_execv, __gcov_execvp, __gcov_execve): Declare.
320         * libgcov.c (__gcov_fork, __gcov_execl, __gcov_execlp, __gcov_execle,
321         __gcov_execv, __gcov_execvp, __gcov_execve): New.
322         * tree.h (enum tree_index): Add TI_PID_TYPE.
323         (pid_type_node): New macro.
324         (ECF_FORK_OR_EXEC): Removed.
325
326 2004-04-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
327
328         PR optimization/13985
329         * cfgloopmanip.c (fix_loop_placements): New prototype.
330         Call fix_bb_placements on the preheader of loops that have
331         been reparented.
332         (remove_path): Adjust call to fix_loop_placements.
333
334 2004-04-23  Andrew Pinski  <pinskia@physics.uc.edu>
335
336         * config/darwin7.h: New file.
337         * config.gcc (*-*-darwin*): Add darwin7.h if the
338         version is greater than 6.
339         * config/darwin.h (TARGET_C99_FUNCTIONS): Define.
340         (MATH_LIBRARY): Wrap in ifdefs.
341
342 2004-04-23  Daniel Jacobowitz  <drow@mvista.com>
343
344         * config/arm/arm.c (arm_output_epilogue): Reverse the order of
345         loading iWMMXt registers with a frame pointer.  Use post-increment
346         without a frame pointer.
347         (arm_expand_prologue): Reverse the order of saving iWMMXt registers.
348
349 2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
350
351         * doc/invoke.texi (Optimize Options): Refer to "unit-at-a-time
352         mode" rather than "-funit-at-a-time" since -O2 enables it
353         without requiring -f* options.  Refer to -fprofile-generate and
354         -fprofile-use correctly.  Move -funit-at-a-time among options
355         enabled by -O.  Add information about unit-at-a-time caveats.
356
357 2004-04-22  Per Bothner  <per@bothner.com>
358
359         * line-map.h (struct line_maps):  New field highest_line.
360         (linemap_position_for_column):  Make non-inline function.
361         (LINEMAP_POSITION_FOR_COLUMN):  New macro.
362         * line-map.c (linemap_init):  Clear highest_line field.
363         (linemap_add):  Set highest_line field.
364         (linemap_line_start):  Minor optimization - use highest_line field.
365         Reduce maximum column hint to 10000.  Update highest_line field.
366         (linemap_position_for_column):  Moved from line-map.h.  Optimize a bit.
367         * cpphash.h (struct cpp_reader):  Remove line field - instead use
368         line_table->highest_line.
369         (saved_line):  Remove unused field.
370         (CPP_INCREMENT_FILE):  Don't do linemap_lookup - just use newest map.
371         Use  line_table's highest_line field instead of cpp_reader's line.
372         * cpplib.c (start_directive):  Likewise use highest_line field.
373         (do_line, do_linemarker):  Likewise just use newest map.
374         (_cpp_do_file_change):  Don't need to set cpp_reader's line field.
375         * cpperror.c (cpp_error):  Likewise use highest_line field.
376         * cppfiles.c (open_file_failed:  Likewise.
377         (cpp_make_system_header):  Likewise use newest map and highest_line.
378         * cppinit.c (cpp_create_reader):  Don't initialize removed field.
379         * cpplex.c (_cpp_process_line_notes, _cpp_skip_block_comment,
380         skip_line_comment, skip_whitespace, _cpp_get_fresh_line,
381         _cpp_lex_direct):  Likewise use highest_line.
382         (_cpp_lex_direct):  Use new LINEMAP_POSITION_FOR_COLUMN macro.
383         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use highest_line,
384         and use newest map.
385         * cpppch.c (cpp_read_state):  Don't save+restore cpp_reader's line.
386         * cpptrad.c (_cpp_overlay_buffer):  Don't save cpp_reader's line.
387         (copy_comment, _cpp_scan_out_logical_line):  Likewise use highest_line.
388
389 2004-04-23  Alan Modra  <amodra@bigpond.net.au>
390
391         PR bootstrap/14992
392         * gcc.c (init_gcc_specs): Test USE_LD_AS_NEEDED, not HAVE_LD_AS_NEEDED.
393         * config/linux.h (USE_LD_AS_NEEDED): Define.
394         * gcc/config/alpha/linux.h (USE_LD_AS_NEEDED): Define.
395         * gcc/config/arm/linux-elf.h (USE_LD_AS_NEEDED): Define.
396         * gcc/config/rs6000/linux.h (USE_LD_AS_NEEDED): Define.
397         * gcc/config/rs6000/linux64.h (USE_LD_AS_NEEDED): Define.
398         * gcc/config/sh/linux.h (USE_LD_AS_NEEDED): Define.
399         * gcc/config/sparc/linux.h (USE_LD_AS_NEEDED): Define.
400         * gcc/config/sparc/linux64.h (USE_LD_AS_NEEDED): Define.
401
402 2004-04-22  Per Bothner  <per@bothner.com>
403
404         * cppinit.c (cpp_read_main_file):  Return NULL rather than false.
405         Fixes PR preprocessor/15067.
406
407 2004-04-23  Andreas Schwab  <schwab@suse.de>
408
409         * config/ia64/ia64intrin.h: Add intermediate cast to void * to
410         avoid aliasing warning.
411
412 2004-04-22  Jan Hubicka  <jh@suse.cz>
413             Mostafa Hagog <mustafa@il.ibm.com>
414
415       * cfgloopmanip.c (scale_bbs_frequencies): Use RDIV macro
416       * cfgloopanal.c (expected_loop_iterations): Change the return value
417
418 2004-04-22  Jakub Jelinek  <jakub@redhat.com>
419
420         * cselib.h (struct elt_loc_list): Remove canon_loc field.
421         * cselib.c (new_elt_loc_list): Remove canon_loc initialization.
422         (cselib_invalidate_mem): Remove all canon_loc and canon_x
423         traces.
424
425 2004-04-22  Josef Zlomek  <zlomekj@suse.cz>
426
427         Revert
428         2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
429
430                 * var-tracking.c (variable_part_different_p): Variable parts
431                 differ when the most recent locations differ.
432
433 2004-04-22  Richard Sandiford  <rsandifo@redhat.com>
434
435         * doc/invoke.texi: Remove the MIPS -membedded-pic option.
436         * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): Delete.
437         (embedded_pic_offset): Delete.
438         * config/mips/mips.h (MASK_EMBEDDED_PIC): Delete.  Shuffle other
439         MASK_* constants.
440         (TARGET_EMBEDDED_PIC): Delete.
441         (TARGET_SWITCHES): Remove -m{no-,}embedded-pic.
442         (ASM_SPEC): Remove -membedded-pic.
443         (ASM_OUTPUT_ADDR_DIFF_ELT): Remove embedded-pic handling.
444         (ASM_OUTPUT_CASE_LABEL): Likewise.
445         * config/mips/vxworks.h (ASM_SPEC): Remove -membedded-pic.
446         * config/mips/windiss.h (ASM_SPEC): Likewise.
447         * config/mips/mips.c (struct machine_function): Remove
448         embedded_pic_fnaddr_rtx.
449         (TARGET_ENCODE_SECTION_INFO): Remove override.
450         (embedded_pic_fnaddr_reg, embedded_pic_offset): Delete.
451         (override_options): Remove -membedded-pic handling.
452         (print_operand): Remove handling of '%S'.
453         (mips_select_section: Remove -membedded-pic handling.
454         (mips_encode_section_info): Delete.
455         (mips_output_conditional_branch): Remove mention of -membedded-pic.
456         * config/mips/mips.md (define_attr length, movsi, movdi, jump): Remove
457         -membedded-pic handling.
458         (casesi, casesi_internal, casesi_internal_di, get_fnaddr): Delete.
459
460 2004-04-22  Alan Modra  <amodra@bigpond.net.au>
461
462         * var-tracking.c (frame_base_decl): Remove useless GTY.
463
464 2004-04-21  Aldy Hernandez  <aldyh@redhat.com>
465
466         * config/rs6000/rs6000.c (rs6000_override_options): Error when
467         user wants altivec and e500 instructions.
468
469 2004-04-21  H.J. Lu  <hongjiu.lu@intel.com>
470
471         PR target/14813
472         * config/ia64/crtend.asm: Move pointer to __do_global_ctors_aux
473         in .init_array section to ...
474         * config/ia64/crtbegin.asm: Here.
475
476         * config/ia64/crtend.asm: Mark __do_global_ctors_aux global
477         and hidden if HAVE_INITFINI_ARRAY is defined.
478
479 2004-04-21  James E Wilson  <wilson@specifixinc.com>
480
481         * config/mips/mips-protos.h (fp_register_operand, lo_operand): Declare.
482         * config/mips/mips.c (mips_multipass_dfa_lookahead): Declare.
483         (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): New.
484         (fp_register_operand, lo_operand): New.
485         (mips_rtx_costs): Add TUNE_SB1 support.
486         (mips_issue_rate): Add comment.  Add PROCESSOR_SB1 support.
487         (mips_use_dfa_pipeline_interface): Add PROCESSOR_SB1 support.
488         (mips_multipass_dfa_lookahead): New.
489         * config/mips/mips.h (MASK_FP_EXCEPTIONS, TARGET_FP_EXCEPTIONS,
490         TUNE_SB1): New.
491         (TARGET_SWITCHES): Add -mfp-exceptions support.
492         (TARGET_FP_EXCEPTIONS_DEFAULT): New.
493         (BRANCH_COST): Fix whitespace.
494         * config/mips/mips.md: Include sb1.md.
495         * config/mips/sb1.md: New file.
496         * doc/invoke.texi: Document -mfp-exceptions.
497
498         * Makefile.in (fixinc.sh): Don't set or export WARN_CFLAGS.  Fix
499         comment.
500         * fixinc/Makefile.in (FL_LIST): Don't mention WARN_CFLAGS.
501         (fixincl.o-warn): Delete.
502
503 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
504
505         * config/rs6000/rs6000 (print_operand) ['z']:
506         Change ifdef of TARGET_MACHO to if TARGET_MACHO.
507
508 2004-04-21 Daniel Jacobowitz  <drow@mvista.com>
509
510         * config.gcc: Support --with-arch=iwmmxt for ARM.
511
512 2004-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
513
514         * expmed.c (expand_mult_highpart_optab): Use narrower version of OP1
515         in two more places; remove unneeded force_reg
516
517 2004-04-21  Andrew Pinski  <pinskia@physics.uc.edu>
518
519         * config/rs6000/rs6000.c (symbol_ref_operand): Remove hack
520         for TARGET_MACHO.
521         (print_operand): For TARGET_MACHO check to see if we need a stub
522         and output one if we need it.
523
524         PR debug/15033
525         * dwarf2out.c (rtl_for_decl_location): Check for NULL
526         rtl.
527
528 2004-04-20  James E Wilson  <wilson@specifixinc.com>
529
530         * config/ia64/ia64.md (call_value_nogp): Add constraints for op0.
531         (vall_value_gp): Likewise.
532
533 2004-04-20  DJ Delorie  <dj@redhat.com>
534
535         * dwarf2out.c (rtl_for_decl_location): Adjust rtl for byte
536         variables stored in word registers, then in memory.
537
538 2004-04-20  Eric Christopher  <echristo@redhat.com>
539
540         * cp/parser.c (cp_parser_declaration): Move translate
541         up before tokens are lexed.
542
543 2004-04-20  Uros Bizjak  <uros@kss-loka.si>
544
545         * optabs.h (enum optab_index): Add new OTI_asin and OTI_acos.
546         (asin_optab, acos_optab): Define corresponding macros.
547         * optabs.c (init_optabs): Initialize asin_optab and acos_optab.
548         * genopinit.c (optabs): Implement asin_optab and acos_optab
549         using asin?f2 and acos?f2 patterns.
550         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_ASIN{,F,L}
551         using asin_optab, and BUILT_IN_ACOS{,F,L} using acos_optab.
552         (expand_builtin): Expand BUILT_IN_ASIN{,F,L} and BUILT_IN_ACOS{,F,L}
553         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
554
555         * config/i386/i386.md (asindf2, asinsf2, asinxf2, acosdf2,
556         acossf2, acosxf2): New expanders to implement asin, asinf, asinl,
557         acos, acosf and acosl built-ins as inline x87 intrinsics.
558
559 2004-04-20  Paul Brook  <paul@codesourcery.com>
560
561         * config/arm/arm.c (arm_legitimate_address_p): Use rtx_equal_p.
562
563 2004-04-20  Paul Brook  <paul@codesourcery.com>
564
565         * config/arm/arm.c (arm_expand_prologue): Fix size calculation.
566
567 2004-04-20  Paolo Bonzini  <bonzini@gnu.org>
568
569         Revert part of 2004-04-17 change that moved -frename-registers
570         to -O1.  -frename-registers is buggy.
571
572         * toplev.c (flag_rename_registers): Initialize to 0.
573         * doc/invoke.texi (Optimize options): Move -frename-registers
574         to "Not triggered by any -O level" section.  Adjust commentary
575         accordingly.
576
577 2004-04-20  Anil Paranjpe <anilp1@kpitcummins.com>
578
579         * toplev.c (compile_file): Move targetm.asm_out.file_end call to end.
580
581 2004-04-20  Richard Sandiford  <rsandifo@redhat.com>
582
583         * config/mips/mips.c (mips_legitimize_move): Generate special patterns
584         for mflo and mfhi instructions.
585         (mips_output_move): Remove mflo and mfhi handling.
586         * config/mips/mips.md (UNSPEC_MFHILO): New unspec.
587         (*mulsidi3_64bit): Update for new mfhi/mflo representation.
588         Likewise various define_peephole2s.
589         (*movdi_32bit, *movdi_64bit, *movsi_internal): Merge x<-J and x<-d
590         alternatives.
591         (*movdi_64bit, *movdi_64bit_mips16, *mov[shq]i_internal)
592         (*mov[shq]i_mips16): Remove mflo and mfhi alternatives.
593         (mfhilo_di, mfhilo_si): New patterns.
594
595 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
596
597         * function.c (assign_parms): Force
598         MEM_EXPR (DECL_INCOMING_RTL (parm)) == parm.
599
600 2004-04-20  Josef Zlomek  <zlomekj@suse.cz>
601
602         * var-tracking.c (variable_part_different_p): Variable parts differ
603         when the most recent locations differ.
604
605 2004-04-19  James E Wilson  <wilson@specifixinc.com>
606
607         * rtl.h (reg_set_last): Delete declaration.
608         * rtlanal.c (reg_set_last): Delete.
609
610 2004-04-19  Roger Sayle  <roger@eyesopen.com>
611
612         * fold-const.c (fold_convert): Make function extern/public.
613         * tree.h (fold_convert): Prototype here.
614         * builtins.c (expand_builtin_strstr, expand_builtin_strchr,
615         expand_builtin_strrchr, expand_builtin_strpbrk,
616         expand_builtin_mempcpy, expand_builtin_bcopy,
617         expand_builtin_bzero, expand_builtin_memcmp,
618         expand_builtin_strcmp, expand_builtin_strncmp,
619         stabilize_va_list, expand_builtin_sprintf,
620         fold_trunc_transparent_mathfn, fold_builtin_logarithm,
621         fold_builtin_exponent, fold_builtin_mempcpy,
622         fold_builtin_strcpy, fold_builtin_strcmp, fold_builtin_strncmp,
623         fold_builtin_signbit, fold_builtin_isdigit, fold_builtin): Prefer
624         fold_convert to "convert" or "fold (build1 (NOP_EXPR, ...))".
625
626 2004-04-19  Aldy Hernandez  <aldyh@redhat.com>
627
628         * config/rs6000/rs6000.md (UNSPEC_MV_CR_GT): New constant.
629         (move_from_CR_gt_bit): New.
630         (cceq_ior_compare): Name previously unnamed pattern.  Disable for
631         E500.
632         (cceq_rev_compare): Name previously unnamed pattern.  Allow for
633         E500.
634
635         * config/rs6000/spe.md (cmpsfeq_gpr): Rewrite as unspec.
636         (tstsfeq_gpr): Same.
637         (cmpsfgt_gpr): Same.
638         (tstsfgt_gpr): Same.
639         (cmpsflt_gpr): Same.
640         (tstsflt_gpr): Same.
641         (e500_cceq_ior_compare): New.
642         (e500_flip_gt_bit): New.
643
644         * config/rs6000/rs6000.c (ccr_bit): Remove E500 specific code.
645         (print_operand): Add 'c' and 'D'.
646         (rs6000_generate_compare): Rewrite to generate correct rtl.
647         (rs6000_emit_sCOND): Handle E500.
648         (output_cbranch): Adjust for changes in rs6000_generate_compare.
649         (output_e500_flip_gt_bit): New.
650
651         * config/rs6000/rs6000-protos.h (output_e500_flip_gt_bit):
652         Protoize.
653
654 2004-04-19  Eric Christopher  <echristo@redhat.com>
655
656         * config/mips/mips.h (DWARF2_ADDR_SIZE): New.
657
658 2004-04-19  David Edelsohn  <edelsohn@gnu.org>
659
660         * doc/install.texi (*-ibm-aix*): Add AIX 5.1 assembler and archiver
661         fix information.
662
663 2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
664
665         * doc/install.texi (Specific, mips-sgi-irix5): Fix IRIX 5.3 IDO
666         download URL.
667
668 2004-04-19  Daniel Jacobowitz  <drow@mvista.com>
669
670         * stor-layout.c (layout_decl): Check DECL_PACKED before calling
671         ADJUST_FIELD_ALIGN.  Check maximum_field_alignment after.
672
673 2004-04-19  Andrew PInski  <pinskia@physics.uc.edu>
674
675         * builtins.c (fold_builtin_cabs): Remove fndecl parameter.
676         (fold_builtin): Update caller to match.
677
678         PR bootstrap/15009
679         * bb-reorder.c (fix_up_fall_thru_edges): Init cond_jump.
680
681         PR bootstrap/14999
682         * builtins.c (fold_builtin_cabs): Mark fndecl as unused.
683
684 2004-04-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
685
686         * varasm.c (compare_constant, case VIEW_CONVERT_EXPR): Add case.
687
688         * expmed.c (expand_mult_highpart_adjust): Make OP1 valid for MODE.
689         (expand_mult_highpart_optab): Likewise.
690         (expand_mult_highpart): Make OP1 valid for WIDER_MODE, not MODE.
691
692 2004-04-19  Paul Brook  <paul@codesourcery.com>
693
694         * config/arm/arm.md (fixuns_truncsfsi2, fixuns_truncdfsi2,
695         floatunssisf2, floatunssidf2): New patterns.
696
697 2004-04-18  Mark Mitchell  <mark@codesourcery.com>
698
699         PR other/14918
700         * doc/invoke.texi (-fprofile-generate): Document requirement to
701         use -fprofile-generate when linking.
702
703         * doc/extend.texi (Strong Using): Warn users against using this
704         feature.
705
706 2004-04-18  Richard Sandiford  <rsandifo@redhat.com>
707
708         * config/mips/mips-protos.h (m16_usym8_4, m16_usym5_4): Delete.
709         * config/mips/mips.h (mips_entry, mips_string_length): Delete.
710         (CONSTANT_POOL_BEFORE_FUNCTION, ASM_OUTPUT_POOL_EPILOGUE): Undefine.
711         * config/mips/mips.c (struct mips16_constant): Renamed from struct
712         constant.  Propogate change throughout file.
713         (struct machine_function): Remove insns_len.
714         (mips_string_length, mips16_strings, string_constants): Delete.
715         (mips_classify_symbol): Return SYMBOL_CONSTANT_POOL for LABEL_REFs
716         when generating mips16 code.  Remove special mips16 treatment of
717         string constants.
718         (mips_symbolic_constant_p): Allow mips16 constant pool accesses
719         to have the form LABEL+CONSTANT.
720         (mips_symbolic_address_p): Fix comment.
721         (m16_usym8_4, m16_usym5_4): Delete.
722         (mips_output_function_epilogue): Remove mips16 string handling.
723         (mips_output_mi_thunk): Call mips16_lay_out_constants.
724         (mips_select_section, mips_encode_section_info): Remove mips16
725         string handling.
726         (struct mips16_constant_pool): New.
727         (add_constant): Take a mips16_constant_pool structure.  Keep pool
728         sorted into order of ascending mode size.  Keep track of the highest
729         possible start address, taking padding and the masking of the base PC
730         value into account.
731         (dump_constants_1): New function, split out from dump_constants.
732         Handle vector constants.  Use gen_consttable_{int,float} rather than
733         separate functions for each mode.
734         (dump_constants): Simplify.  Use GET_MODE_ALIGNMENT.  Use gen_align
735         rather than separate functions for each alignment.
736         (mips_find_symbol): Delete.
737         (mips16_insn_length): New function, split out from
738         mips16_lay_out_constants.
739         (mips16_rewrite_pool_refs): New function.
740         (mips16_lay_out_constants): Rework. Remove string handling.
741         Always create an inline constant pool.
742         * config/mips/mips.md (UNSPEC_CONSTTABLE_INT, UNSPEC_CONSTTABLE_FLOAT)
743         (UNSPEC_ALIGN): New constants.
744         (UNSPEC_CONSTTABLE_[QHSD]I, UNSPEC_CONSTTABLE_[SD]F): Delete.
745         (UNSPEC_ALIGN_[248]): Delete.
746         (consttable_int, consttable_float, align): New patterns.
747         (consttable_[qhsd]i, consttable_[sd]f, align_[248]): Delete.
748
749 2004-04-17  Aldy Hernandez  <aldyh@redhat.com>
750
751         * config/rs6000/altivec.h (vec_any_numeric): Correct typo in
752         __unn_args_eq.
753
754 2004-04-17  Alan Modra  <amodra@bigpond.net.au>
755
756         PR target/14715
757         * config/rs6000/rs6000.c (rs6000_stack_info): Make parm_size agree
758         with STARTING_FRAME_OFFSET.
759
760 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
761
762         * config/mips/mips.h (PREDICATE_CODES): Add macc_msac_operand.
763         * config/mips/mips.c (macc_msac_operand): New function.
764         * config/mips/mips.md (*msac): Move after *macc.
765         (*msac2): New.  Generalize macc-related peepholes so that they apply
766         to msac too.
767
768 2004-04-17  Paolo Bonzini  <bonzini@gnu.org>
769
770         * opts.c (decode_options): Do not enable flag_rename_registers
771         and flag_web at -O3.
772         * toplev.c (flag_rename_registers): Initialize
773         flag_rename_registers and flag_web to
774         AUTODETECT_FLAG_VAR_TRACKING.
775         (default_debug_hooks): New global.
776         (process_options): Initialize default_debug_hooks.  Warn if
777         -fvar-tracking specified but not supported by the current
778         debug format.  Do not run var tracking at -O0 or if not
779         supported by the current debug format, even if
780         -fvar-tracking was given.  If -fno-rename-registers
781         is not specified, always run register renaming if var
782         tracking is supported by the default debugging information
783         format for the target, and we are at -O1 or higher; similarly
784         for -fweb, but only at -O2 or higher.
785         * doc/invoke.texi (Optimize Options): Document this.
786
787 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
788
789         * configure.ac (gcc_cv_ld_as_needed): Use AC_CACHE_CHECK.
790         * configure: Regenerate.
791
792 2004-04-17  Richard Sandiford  <rsandifo@redhat.com>
793
794         * gcc.c (used_arg): Check whether an option has been removed.
795
796 2004-04-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
797
798         * config.gcc (i[34567]86-*-solaris2*): Default to DWARF-2
799         debugging on Solaris 7 and up.
800
801 2004-04-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
802
803         * doc/install.texi (Specific, mips-sgi-irix5): Reflect working
804         IRIX 5 port.
805         Remove -save-temps workaround, handled automatically.
806         Require GNU binutils 2.15 for debugging.
807         Remove SGI make warnings since GNU make is now required.
808         (Specific, mips-sgi-irix6): Some markup fixes.
809         Describe MIPSpro C problems and workarounds.
810         Mention working O32 ABI support.
811         Recommend GNU as 2.15 for O32 with debugging.
812         Remove description of fixed structure pass/return bug.
813
814 2004-04-16  DJ Delorie  <dj@redhat.com>
815
816         * sdbout.c (sdbout_one_type): Use TYPE_VALUES for enums, not
817         TYPE_FIELDS.
818         (sdbout_finish): Don't free deferred_global_decls; it's GC'd.
819
820 2004-04-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
821
822         * pa.md: Remove unnecessary declarations for asm_out_file.
823
824         * pa64-regs.h (DBX_REGISTER_NUMBER): Simplify and correct mapping of
825         SAR register.  Fix comment.
826         (ADDITIONAL_REGISTER_NAMES): Correct register number of SAR register
827         (%cr11).
828
829         * pa64-hpux.h (LIB_SPEC): Fix library specification used with GNU ld.
830
831 2004-04-16  Nick Clifton  <nickc@redhat.com>
832
833         * config/arm/arm.c (arm_override_options): Revert previous patch.
834         * config/arm/t-xscale-elf: Disable iwmmxt multilibs until they can
835         be safely built.
836
837 2004-04-16  Kazuhiro Inaoka <inaoka dot kazuhiro at renesas dot com>
838
839         * config/m32r/m32r.h (BIG_ENDIAN_BIT): Deleted to fix endian
840         bug.
841         (TARGET_LITTLE_ENDIAN, TARGET_BIG_ENDIAN,
842         TARGET_DEFAULT): Changed. Ditto.
843         (LITTLE_ENDIAN_BIT, TARGET_CPU_DEFAULT,
844         TARGET_ENDIAN_DEFAULT): Added. Ditto.
845         * config/m32r/little.h (TARGET_LITTLE_ENDIAN): Deleted.
846         (TARGET_ENDIAN_DEFAULT): Added.
847
848 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
849
850         * builtins.def (BUILT_IN_ISDIGIT, BUILT_IN_ISXDIGIT): Mark with
851         ATTR_CONST_NOTHROW_LIST.
852
853 2004-04-15  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
854
855         PR/middle-end 14915
856         * builtins.c (expand_builtin_signbit): Test BYTES_BIG_ENDIAN, not
857         BITS_BIG_ENDIAN.
858
859 2004-04-15  Pat Haugen  <pthaugen@us.ibm.com>
860
861         * ra-debug.c (ra_print_rtx): Add break's to case legs.
862
863 2004-04-14  James E Wilson  <wilson@specifixinc.com>
864
865         * Makefile.in (fixinc.sh): Set WARN_CFLAGS to empty string.
866
867 2004-04-14  Nathanael Nerode  <neroden@gcc.gnu.org>
868
869         * libada-mk.in: New file.
870         * configure.ac: Create libada-mk from libada-mk.in.
871         * configure: Regenerate.
872
873 2004-04-14  Uros Bizjak  <uros@kss-loka.si>
874
875         * optabs.h (enum optab_index): Add new OTI_logb and OTI_ilogb.
876         (logb_optab, ilogb_optab): Define corresponding macros.
877         * optabs.c (init_optabs): Initialize logb_optab and ilogb_optab.
878         * genopinit.c (optabs): Implement logb_optab and ilogb_optab
879         using logb?f2 and ilogb?i2 patterns.
880         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOGB{,F,L}
881         using logb_optab, and BUILT_IN_ILOGB{,F,L} using ilogb_optab.
882         (expand_builtin): Expand BUILT_IN_LOGB{,F,L} and BUILT_IN_ILOGB{,F,L}
883         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
884
885         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_XTRACT_FRACT
886         and UNSPEC_XTRACT_EXP.
887
888         * config/i386/i386.md (*fxtractdf3, *fxtractsf3, *fxtractxf3): New
889         patterns to implement fxtract x87 instruction.
890         (logbdf2, logbsf2, logbxf2, ilogbsi2): New expanders to implement
891         logb, logbf, logbl, ilogb, ilogbf and ilogbl built-ins as inline x87
892         intrinsics.
893         (UNSPEC_XTRACT_FRACT, UNSPEC_XTRACT_EXP): New unspecs to represent
894         x87's fxtract insn.
895
896 2004-04-14  Eric Christopher  <echristo@redhat.com>
897
898         * config/mips/t-elf: Enable multilibs by default.
899
900 2004-04-14  Andreas Tobler  <a.tobler@schweiz.ch>
901
902         * bb-reorder.c (fix_crossing_conditional_branches): Adjust the
903         previous fix to check HAVE_return at runtime too.
904
905 2004-04-14  Nick Clifton  <nickc@redhat.com>
906
907         * config/arm/arm.c (arm_override_options): If the user has not
908         specified an ABI, then default to AAPCS for the iWMMXt processor.
909         * config/arm/t-xscale-elf: Remove redundant multilib specifications.
910         * config/arm/t-xscale-coff: Likewise.
911
912 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
913
914         * builtins.c (fold_builtin_isdigit): New.
915         (fold_builtin): Handle BUILT_IN_ISDIGIT.
916         * defaults.h: Add TARGET_DIGIT0 and sort.
917         * doc/tm.texi: Add TARGET_BS and TARGET_DIGIT0.
918
919 2004-04-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
920
921         * builtins.c (fold_builtin_cabs, fold_builtin): Use
922         `mathfn_built_in' to determine the new builtin.
923         * fold-const.c (fold): Likewise.
924
925 2004-04-14  Richard Sandiford  <rsandifo@redhat.com>
926
927         * doc/invoke.texi: Rename MIPS's -mfix-vr4122-bugs to -mfix-vr4120.
928         * config/mips/mips.h (MASK_FIX_VR4120): Renamed from MASK_FIX_VR4122.
929         (TARGET_FIX_VR4120): Likewise TARGET_FIX_VR4122.
930         (TARGET_SWITCHES): Replace -mfix-vr4122-bugs with -mfix-vr4120.
931         (ASM_SPEC): Update accordingly.
932         * config/mips/mips.c: Update after above renaming.
933         * config/mips/mips.md, config/mips/t-vr, config/mips/vr.h: Likewise.
934         * config/mips/vr4120-div.S: Renamed from vr4122-div.S.
935
936 2004-04-13  James E Wilson  <wilson@specifixinc.com>
937
938         * c-opt.c (c_common_post_options): If this_input_filename is NULL,
939         increment errorcount and return false instead of true.
940
941 2004-04-13  Uros Bizjak  <uros@kss-loka.si>:
942
943         * optabs.c (expand_twoval_unop): Reorder function arguments.
944         * builtins.c (expand_builtin_mathfn_3): Update calls to
945         expand_twoval_unop.
946
947         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_TAN_ONE
948         and UNSPEC_TAN_TAN. Add missing comment.
949
950         * config/i386/i386.md (*tandf3_1, *tansf3_1, *tanxf3_1): New
951         patterns to implement fptan x87 instruction.
952         (tandf2, tansf2, tanxf2): New expanders to implement tan, tanf
953         and tanl built-ins as inline x87 intrinsics. Define corresponding
954         peephole2 optimizers for 'fptan; fstp %st(0); fld1' sequence.
955         (UNSPEC_TAN_ONE, UNSPEC_TAN_TAN): New unspecs to represent
956         x87's fptan insn.
957
958 2004-03-13  Richard Henderson  <rth@redhat.com>
959
960         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
961         for LABEL_REFs.
962
963         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
964         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
965         * doc/invoke.texi: Update to match.
966
967         * varasm.c (unlikely_text_section): Use assemble_align instead of
968         ASM_OUTPUT_ALIGN.  Use it in the correct place with an approximately
969         correct alignment argument.
970
971 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
972
973         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
974         after setting reg_last_reload_reg for optional output reloads.
975
976 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
977
978         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
979         Definition of these two macros are corrected by adding
980         matchine right paren.
981
982 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
983
984         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
985
986 2004-04-12  Roger Sayle  <roger@eyesopen.com>
987
988         * config/i386/i386.c (output_387_reg_move): New function.
989         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
990         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
991         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
992         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
993         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
994
995 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
996
997         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
998         TYPE_DECL.
999         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
1000         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
1001         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
1002         Use skip_simple_arithmetic to find SAVE_EXPR.
1003         (force_type_save_exprs, force_type_save_exprs_1): New functions.
1004         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
1005         Properly chain multiple pointers.
1006         (copy_tree_r): Copy a TYPE_DECL.
1007         * tree.c (variably_modified_type_p): Add some missing tests and
1008         make some other minor changes.
1009         * tree.h (force_type_save_exprs): New declaration.
1010
1011 2004-04-12  Roger Sayle  <roger@eyesopen.com>
1012
1013         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
1014         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
1015         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
1016         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
1017         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
1018         x%-1 into 0 (or x&0 if x has side-effects).
1019
1020 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
1021
1022         * config/rs6000/rs6000.md: Document why a pattern is not
1023         available.
1024
1025         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
1026         of floats on the E500.
1027         (branch_positive_comparison_operator): Do not allow NE even on the
1028         E500.
1029
1030 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
1031
1032         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
1033         in_text_unlikely_section to in_unlikely_text_section.
1034
1035 2004-04-11  Roger Sayle  <roger@eyesopen.com>
1036
1037         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
1038         calling convention to allow a NULL_TREE to be returned.  Factor
1039         sanity checks from callers, return NULL_TREE when appropriate.
1040         (fold): Handle COMPOUND_EXPR operands of binary expressions
1041         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
1042         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
1043         calls to fold_binary_op_with_conditional_arg.
1044
1045 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1046
1047         * config/mips/iris5.h (current_section_flags):  Add
1048         in_unlikely_executed_text and default case.
1049
1050 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
1051
1052         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
1053         failure on solaris. Place ifdef HAVE_return around gen_ret call.
1054         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
1055         HAVE_return and place it around the place where it is needed.
1056
1057 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
1058
1059         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
1060         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
1061         and NORMAL_TEXT_SECTION_NAME.
1062         (unlikely_text_section): Check targetm.have_named_sections
1063         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
1064         instead of SECTION_FORMAT_STRING.
1065         * config/mips/iris5.h (current_section_name): Add
1066         in_unlikely_executed_text case and move the abort into the switch.
1067         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
1068         (NORMAL_TEXT_SECTION_NAME): Remove.
1069         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
1070         (SECTION_FORMAT_STRING): Remove.
1071         * defaults.h (SECTION_FORMAT_STRING): Remove.
1072         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
1073         (SECTION_FORMAT_STRING): Remove.
1074
1075 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
1076
1077         * c-typeck.c (common_type): Prefer long long to long when same
1078         precision.
1079
1080 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
1081
1082         PR 14887
1083         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
1084         mode argument.
1085         * config/ia64/ia64.c (ia64_hpux_file_end): Check
1086         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
1087
1088 2004-04-09  Roger Sayle  <roger@eyesopen.com>
1089
1090         * simplify-rtx.c (mode_signbit_p): New function to check whether
1091         an RTX is an immediate constant that represents the most significant
1092         bit of a given machine mode.
1093         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
1094         C is the sign bit.
1095         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
1096         when C2 is the sign bit.
1097         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
1098         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
1099         sign bit.
1100
1101 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1102
1103         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
1104         TYPE_MODE.
1105
1106 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
1107
1108         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
1109         of TREE_READONLY for types.
1110
1111 2004-04-09  Caroline Tice  <ctice@apple.com>
1112
1113         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
1114         (struct basic_block_def):  Add new field, partition.
1115         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
1116         definitions.
1117         (partition_hot_cold_basic_blocks): Add extern function
1118         declaration.
1119         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
1120         include statements.
1121         (N_ROUNDS): Increase the maximum number of rounds by 1.
1122         (branch_threshold): Add array value for new round.
1123         (exec_threshold): Add array value for new round.
1124         (push_to_next_round_p): New function.
1125         (add_unlikely_executed_notes): New function.
1126         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
1127         (mark_bb_for_unlikely_executed_section): New function.
1128         (add_labels_and_missing_jumps): New function.
1129         (add_reg_crossing_jump_notes): New function.
1130         (fix_up_fall_thru_edges): New function.
1131         (find_jump_block): New function.
1132         (fix_crossing_conditional_branches): New function.
1133         (fix_crossing_unconditional_branches): New function.
1134         (fix_edges_for_rarely_executed_code): New function.
1135         (partition_hot_cold_basic_blocks): New function.
1136         (find_traces):  Add an extra round for partitioning hot/cold
1137         basic blocks.
1138         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
1139         and only cold blocks, into the last (extra) round of collecting traces.
1140         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
1141         over crossing edges.
1142         (bb_to_key):  Add code to correctly identify cold blocks when
1143         doing partitioning.
1144         (connect_traces): Modify to connect all the non-cold traces first, then
1145         go back and connect up all the cold traces.
1146         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
1147         * cfg.c (entry_exit_blocks): Add initialization for partition field in
1148         entry and exit blocks.
1149         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
1150         if we are doing hot/cold partitioning.
1151         * cfgcleanup.c (cfglayout.h): Add new include statement.
1152         (try_simplify_condjump): Modify to not attempt on blocks with jumps
1153         that cross section boundaries.
1154         (try_forward_edges): Likewise.
1155         (merge_blocks_move_predecessor_nojumps): Likewise.
1156         (merge_blocks_move_successor_nojumps): Likewise.
1157         (merge_blocks_move): Likewise.
1158         (try_crossjump_to_edge): Modify to not attempt after we have done
1159         the block partitioning.
1160         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
1161         cross section boundaries.
1162         (try_optimize_cfg): Likewise.
1163         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
1164         jumps that cross section boundaries.
1165         * cfglayout.c (flags.h): Add new include statement.
1166         (update_unlikely_executed_notes):  New function.
1167         (fixup_reorder_chain):  Add code so when a new jumping basic block is
1168         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
1169         updated appropriately.
1170         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
1171         introduced by this optimization.
1172         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
1173         extern function declaration.
1174         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
1175         list of notes that can be deleted.
1176         (create_basic_block_structure):  Add initialization for partition field.
1177         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
1178         section boundaries.
1179         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
1180         cross section boundaries.
1181         (commit_one_edge_insertion): Add code so newly created basic block
1182         ends up in correct (hot or cold) section.  Modify to disallow
1183         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
1184         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
1185         crosses section boundaries.
1186         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
1187         cross section boundaries.
1188         (force_nonfallthru_and_redirect): Modify to make sure new basic block
1189         ends up in correct section, with correct notes attached.
1190         * common.opt (freorder-blocks-and-partition):  Add new flag for this
1191         optimization.
1192         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
1193         the end of functions are written into the correct (hot or cold)
1194         section.
1195         (dbx_source_file): Add code so writing debug file information
1196         doesn't incorrectly change sections.
1197         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
1198         in partitioning hot/cold basic blocks into separate sections.
1199         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
1200         section partitioning.
1201         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
1202         conditional branches can span all of memory.
1203         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
1204         unconditional branches can span all of memory.
1205         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
1206         (final_scan_insn):  Add code to check for NOTE instruction indicating
1207         whether basic block belongs in hot or cold section, and to make sure
1208         the current basic block is being written to the appropriate section.
1209         Also added code to ensure that jump table basic blocks end up in the
1210         correct section.
1211         * flags.h (flag_reorder_blocks_and_partition):  New flag.
1212         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
1213         one of the branches has a jump that crosses between sections.
1214         (find_if_case_2): Likewise.
1215         (ifcvt): Modify to not attempt to mark loop exit edges after
1216         hot/cold partitioning has occurred.
1217         * opts.c (decode_options): Code to handle new flag,
1218         flag_reorder_blocks_and_partition; also to turn it off if
1219         flag_exceptions is on.
1220         (common_handle_option): Code to handle new flag,
1221         flag_reorder_blocks_and_partition.
1222         * output.h (unlikely_text_section): New extern function declaration.
1223         (in_unlikely_text_section): New extern function declaration.
1224         * passes.c (rest_of_handle_stack_regs):  Add
1225         flag_reorder_blocks_and_partition as an 'or' condition for calling
1226         reorder_basic_blocks.
1227         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
1228         as an 'or' condition for calling reorder_basic_blocks.
1229         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
1230         * print-rtl.c (print_rtx): Add code for handling new note,
1231         NOTE_INSN_UNLIKELY_EXECUTED_CODE
1232         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
1233         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
1234         cross between section boundaries.
1235         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
1236         indicating the basic block containing it belongs in the cold section.
1237         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
1238         between hot and cold sections.
1239         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
1240         initialize this flag, and to tie it to the command-line option
1241         freorder-blocks-and-partition.
1242         * varasm.c (cfglayout.h):  Add new include statement.
1243         (unlikely_section_label_printed):  New global variable, used for
1244         determining when to output section name labels for cold sections.
1245         (in_section):  Add in_unlikely_executed_text to enum data structure.
1246         (text_section):  Modify code to use SECTION_FORMAT_STRING and
1247         NORMAL_TEXT_SECTION_NAME macros.
1248         (unlikely_text_section):  New function.
1249         (in_unlikely_text_section):  New function.
1250         (function_section):  Add code to make sure beginning of function is
1251         written into correct section (hot or cold).
1252         (assemble_start_function):  Add code to make sure stuff is written to
1253         the correct section.
1254         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
1255         to an if statement that was checking 'in_text_section'.
1256         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
1257         condition to an if statement that was checking 'in_text_section'.
1258         (default_section_type_flags_1):  Add check: if in cold section
1259         flags = SECTION_CODE.
1260         * config/darwin.c (darwin_asm_named_section):  Modify to use
1261         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
1262         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
1263         specifically for the i386.
1264         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
1265         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
1266         text string to something more informative.
1267         (NORMAL_TEXT_SECTION_NAME): Add new definition.
1268         (SECTION_FORMAT_STRING):  Add new definition.
1269         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
1270         '!in_unlikely_text_section' as an 'and' condition to an if statement
1271         that was already checking '!in_text_section'.
1272         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
1273         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
1274         sure these are properly defined for linux on ppc.
1275         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
1276         for this new flag.
1277         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
1278         reg_note.
1279         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
1280         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
1281         these new macros.
1282
1283 2004-04-08  Roger Sayle  <roger@eyesopen.com>
1284
1285         * function.c (gen_mem_addressof): When changing the RTX from a REG
1286         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
1287
1288 2004-04-08  Roger Sayle  <roger@eyesopen.com>
1289
1290         PR target/14888
1291         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
1292         truncxfdf2_noop): Provide dummy "fmov" implementations.
1293
1294 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
1295
1296         * gcc.c (default_compilers): Add missing initializers.
1297
1298         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
1299         Return 1 if file was successfully mapped.
1300
1301 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
1302
1303         PR pch/13419
1304         PR pch/14137
1305         Radar #: 3315288
1306         * doc/invoke.texi (Precompiled Headers): Suggest -o
1307         to put an output file in a particular place.  Be more detailed
1308         about which options affect PCH validity and which options
1309         might not work.
1310         * c-pch.c (pch_matching): New.
1311         (MATCH_SIZE): New.
1312         (struct c_pch_validity): New field 'match'.
1313         (pch_init): Handle pch_matching.
1314         (c_common_valid_pch): Check pch_matching.
1315
1316         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
1317
1318 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
1319
1320         * doc/invoke.texi (Precompiled Headers): Warn about known
1321         problems.
1322
1323 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
1324
1325         PR c++/14808
1326         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
1327         to 1 if ASM_OUTPUT_DEF is defined.
1328         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
1329         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
1330         Set to non-zero iff not a one_only decl.
1331
1332 2004-04-08  Paul Brook  <paul@codesourcery.com>
1333
1334         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
1335
1336 2004-04-08  Paul Brook  <paul@codesourcery.com>
1337
1338         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
1339         PROMOTE_FOR_CALL_ONLY.
1340         * config/arm/arm-protos.h (arm_function_value): Declare.
1341         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
1342         (TARGET_PROMOTE_PROTOTYPES): Return false.
1343         (arm_function_value): New function.
1344         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
1345         (FUNCTION_VALUE): Call arm_function_value.
1346         * config/cris/cris.h (PROMOTE_MODE): Rename ...
1347         (PROMOTE_FUNCTION_MODE): ... to this.
1348         (PROMOTE_FOR_CALL_ONLY): Remove.
1349         * config/mmix/mmix.h: Likewise.
1350         * config/s390/s390.h: Likewise.
1351         * config/sparc/sparc.h: Likewise.
1352         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
1353         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
1354         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
1355         (PROMOTE_FOR_CALL_ONLY): Remove.
1356
1357 2004-04-08  Joel Sherrill <joel@oarcorp.com>
1358
1359         PR ada/14538
1360         * ada/5rosinte.adb: Remove fake mprotect() body.
1361         * ada/5rosinte.ads: Add SA_SIGINFO.
1362         * ada/5rtpopsp.adb: Rewrite to use new interface.
1363         * ada/init.c: Reorder so the simple single OS conditional __rtems__
1364         is tested before more complex ones which mix UNIX and embedded
1365         systems in the conditional.
1366
1367 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
1368
1369         PR ada/14665
1370         * ada/osint.adb (Find_Program_Name): Rework to properly handle
1371         filenames which end in .exe or have versioning suffixes like VMS.
1372
1373 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
1374
1375         PR target/10129
1376         * config/darwin.c (darwin_encode_section_info): When the decl has
1377         a DECL_INITIAL, it is only defined also when it is not a common.
1378
1379 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1380
1381         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
1382         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
1383
1384 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
1385
1386         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
1387         global register variables.
1388
1389 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
1390
1391         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
1392         rpc_xdr_lvalue_cast_b): New fixes.
1393         * fixinc/fixincl.x: Regenerate.
1394         * fixinc/tests/base/rpc/xdr.h: Add new tests.
1395
1396 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
1397
1398         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
1399         to power4 and power5 entries.
1400
1401 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
1402
1403         * c-common.h (pending_lang_change): Mark for PCH.
1404
1405 2004-04-07  Caroline Tice  <ctice@apple.com>
1406
1407         * gcc.c (main): Move 'break' in main loops (on an error)
1408         to wait until error processing has occurred.
1409
1410 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
1411
1412         * config.gcc: Stop changing enable_threads midstream.
1413         Replace uses of enable_threads_flag with enable_threads.
1414         * configure.ac: Replace uses of enable_threads_flag with
1415         enable_threads.  Improve autoconf quotation in one place.
1416         * configure: Regenerate.
1417
1418 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
1419
1420         * builtins.c: Implement support for sincos function.
1421         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
1422         BUILT_IN_COS{,F,L}.
1423         (expand_builtin_mathfn_3): New function.
1424         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
1425         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
1426         flag_unsafe_math_optimization is set.
1427
1428         * optabs.h (enum optab_index): Add new OTI_sincos.
1429         (sincos_optab): Define corresponding macro.
1430
1431         * optabs.c (init_optabs): Initialize sincos_optab.
1432         (expand_twoval_unop): New function.
1433
1434         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
1435         patterns.
1436
1437         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
1438         and UNSPEC_SINCOS_SIN.
1439
1440         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
1441         sincosxf3): New patterns to implement sincos, sincosf and sincosl
1442         built-ins as inline x87 intrinsics. Define splits for
1443         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
1444         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
1445         sincos patterns.
1446         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
1447         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
1448
1449         (UNSPEC_SINCOS_SIN, UNSPEC_SINCOS_COS): New unspecs to represent
1450         x87's fsincos insn.
1451
1452 2004-04-06  Devang Patel  <dpatel@apple.com>
1453
1454         PR 14467
1455         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
1456
1457 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1458
1459         * doc/install.texi: Update HP-UX 11 installation procedure.
1460
1461 2004-04-06  Paul Brook  <paul@codesourcery.com>
1462
1463         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
1464
1465 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
1466
1467         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
1468         when the TLS address is generated by a function call.
1469         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
1470         (tls_local_dynamic): Likewise.
1471
1472 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
1473
1474         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
1475         and TYPE_VOLATILE.
1476
1477 2004-04-05  Caroline Tice  <ctice@apple.com>
1478
1479         * gcc.c (combine_flag): New global variable, for new driver option.
1480         (struct compiler): Add two new fields, to be used when
1481         combining multiple input files in a single pass (IMA).
1482         (default_compilers):  Add values for the new fields to all
1483         compiler entries. Modify the "@c" compiler entry for doing IMA
1484         properly with "-save-temps" and the "combine" flag.
1485         (option_map):  Add new driver option, "--combine", to tell driver
1486         to pass multiple input files to compiler at one time.
1487         (have_o_argbuf_index): New global variable.
1488         (store_arg): Modify to assign value to have_o_argbuf_index.
1489         (struct infile):  Add three new fields, to help with IMA.
1490         (display_help): Add help for new "combine" option.
1491         (process_command): Remove local variable have_o; add code to check
1492         for new "combine" option; remove assignment to combine_inputs.
1493         (do_spec_1):  Modify to deal with IMA better.
1494         (main): Make variable 'lang_n_infiles' local to entire function
1495         rather than to a single block.  Use flag combine_flag to
1496         determine whether to do IMA or not; Modify loop initializing
1497         infiles to deal properly with linker files.
1498         Add code for doing preprocessing in presence of
1499         IMA with "-save-temps" flag.  Modify "main" loop to handle
1500         multiple input files, in multiple languages, with or without
1501         preprocessing,  gracefully.
1502         * toplev.c (set_src_pwd): Modify to not complain if attempting to
1503         re-set it to same directory it's previously been set to (avoid
1504         irritating, meaningless warning messages when doing IMA with
1505         save-temps).
1506         * doc/invoke.texi: Add "-combine" to list of Overall Options;
1507         remove documentation about IMA that is no longer accurate; Add
1508         documentation explaining what "-combine" does.
1509         * ada/lang-specs.h: Add initialization values for new fields in
1510         "struct compiler".
1511         * cp/lang-specs.h: Likewise.
1512         * f/lang-specs.h: Likewise.
1513         * java/lang-specs.h: Likewise.
1514         * objc/lang-specs.h: Likewise.
1515         * treelang/lang-specs.h: Likewise.
1516
1517 2004-04-05  David Edelsohn
1518
1519         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
1520         symbol handling.
1521
1522 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
1523             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1524
1525         PR optimization/13424 (hppa), bootstrap/14462, c/14828
1526         * pa.md: Use replace_equiv_address to retain the attributes of the
1527         memory operands used in the split and peephole2 patterns for optimizing
1528         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
1529
1530 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1531
1532         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
1533         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
1534         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
1535         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
1536         PARM_DECL.
1537         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
1538         for a type.
1539         * print-tree.c (print_node): Properly handle side-effects, readonly,
1540         and constant flags.
1541         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
1542         and TREE_CONSTANT if not a type.
1543         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
1544         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
1545         (NON_TYPE_CHECK): New macro.
1546         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
1547
1548 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
1549
1550         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
1551         to DWARF2_DEBUG unconditionally.
1552         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
1553
1554 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
1555             Nathanael Nerode  <neroden@gcc.gnu.org>
1556
1557         PR target/14548
1558         * config.host: Set the shell variable host_can_use_collect2.
1559         Set it to yes by default, and to no for alpha*-dec-*vms*,
1560         i[34567]86-*-mingw32*, and powerpc-*-beos*.
1561         * configure.ac: Set and substitute the shell variable collect2.
1562         Give an error if use_collect2 is yes and host_can_use_collect2 is
1563         no.
1564         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
1565         uses.  Initialize to @collect2@.
1566         (STAGESTUFF): Remove $(USE_COLLECT2).
1567         * config/alpha/x-vms (USE_COLLECT2): Don't set.
1568         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
1569         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
1570         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
1571         * configure: Regenerate.
1572
1573 2004-04-04  Roger Sayle  <roger@eyesopen.com>
1574
1575         * simplify-rtx.c (simplify_binary_operation): Constant fold
1576         DIV, MOD, UDIV and UMOD using div_and_round_double.
1577
1578 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
1579
1580         PR c++/14804
1581         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
1582         RECORD_TYPEs.
1583
1584 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
1585
1586         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
1587         documentation.
1588
1589 2004-04-04  Roger Sayle  <roger@eyesopen.com>
1590
1591         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
1592         updating the REG_EQUAL note on an insn's libcall_insn.
1593
1594 2004-04-04  Roger Sayle  <roger@eyesopen.com>
1595
1596         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
1597
1598 2004-04-03  Roger Sayle  <roger@eyesopen.com>
1599
1600         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
1601         with reorder_operands_p.
1602
1603 2004-04-03  Jan Hubicka  <jh@suse.cz>
1604
1605         * md.texi (vec_set, vec_extract, vec_init): Document.
1606
1607 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
1608
1609        * opts.c (decode_options): Do function inlining with very small
1610        max-inline-insns-* parameters when optimizing for size.
1611
1612 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
1613
1614         * config/i386/i386.h (TARGET_NOCONA): New macro.
1615         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
1616         (processor_type): Add PROCESSOR_NOCONA.
1617
1618         * config/i386/i386.md (cpu): Add nocona to the attribute values.
1619
1620         * config/i386/i386.c (nocona_cost): New variable.
1621         (m_NOCONA): New macro.
1622         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
1623         x86_branch_hints, x86_use_sahf, x86_single_stringop,
1624         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
1625         x86_integer_DFmode_moves, x86_partial_reg_dependency,
1626         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
1627         x86_decompose_lea, x86_arch_always_fancy_math_387,
1628         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
1629         x86_ext_80387_constants, x86_four_jump_limit):
1630         (override_options): Add nocona_cost to processor_target_table.
1631         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
1632         (incdec_operand): Prevent inc/dec generation for Nocona too.
1633         (ix86_issue_rate): Add PROCESSOR_NOCONA.
1634
1635 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
1636
1637         * rtlanal.c (find_reg_note): Manually
1638         unswitch the loop.
1639
1640 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
1641
1642         * genemit.c (gen_split): Change prototype of generated code.
1643         * genrecog.c (write_action): Adjust prototype for and calls to
1644         gen_split_*.
1645         * gensupport.c (struct queue_elem): Add split field.
1646         (queue_pattern): Return a value.  Clear the split field.
1647         (process_rtx): Maintain an association between an insn and the
1648         split generated from it for a define_insn_and_split.
1649         (process_one_cond_exec): Generate a new split for a
1650         define_insn_and_split.
1651         * config/arm/arm-protos.h (arm_split_constant): Add insn
1652         parameter.
1653         (emit_constant_insn): New function.
1654         (arm_gen_constant): Use it.
1655         * config/arm/arm.md: Adjust calls to arm_split_constant.
1656
1657 2004-04-02  Jan Hubicka  <jh@suse.cz>
1658
1659         * cgraph.c: Add overall comment.
1660         (cgraph_inline_hash): New global variable.
1661         (cgraph_create_node): Break out from ...
1662         (cgraph_node): ... here.
1663         (cgraph_edge): New function.
1664         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
1665         (cgraph_remove_edge): Accept edge, intead of source and destination.
1666         (cgraph_redirect_edge_callee): New.
1667         (cgraph_remove_node): Update all new datastructures.
1668         (cgraph_record_call, cgraph_remove_call): Kill.
1669         (dump_cgraph_node): Break out from ... ; dump new datastructures.
1670         (dump_cgraph): ... here.
1671         (cgraph_function_possibly_inlined_p): Use new hashtable.
1672         (cgraph_clone_edge, cgraph_clone_node): New.
1673         * cgraph.h: Include hashtab.h
1674         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
1675         fields, add inlined_to pointer.
1676         (cgraph_node): Add pointer to next_clone.
1677         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
1678         (cgraph_remove_call, cgraph_record_call): Kill.
1679         (cgraph_inline_hash): Declare.
1680         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
1681         cgraph_redirect_edge_callee): Declare.
1682         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
1683         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
1684         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
1685         * cgraphunit.c: Add overall comment.
1686         (cgraph_optimize_function): Kill.
1687         (cgraph_assemble_pending_functions): Do not assemble inline clones.
1688         (cgraph_finalize_function): Update call of cgraph_remove_node
1689         (record_call_1): Record call sites.
1690         (cgraph_create_edges): Accept node instead of decl argument.
1691         (error_found): New static variable.
1692         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
1693         (cgraph_analyze_function): Update for new datastructures.
1694         (cgraph_finalize_compilation_unit): Plug memory leak.
1695         (cgraph_optimize_function): Kill.
1696         (cgraph_expand_function): Do not use cgraph_optimize_function.
1697         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
1698         cgraph_inlined_callees): Kill.
1699         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
1700         clones.
1701         (estimate_growth): Simplify.
1702         (cgraph_clone_inlined_nodes): New function.
1703         (cgraph_mark_inline_edge): Re-implement.
1704         (cgraph_mark_inline): Likewise.
1705         (cgraph_check_inline_limits): Simplify.
1706         (cgraph_recursive_inlining_p): New.
1707         (update_callee_keys): Break out from ...
1708         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
1709         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
1710         Likewise.
1711         (cgraph_expand_all_functions):  Remove inline clones from the ordered
1712         list.
1713         (cgraph_preserve_function_body_p): New predicate.
1714         (cgraph_optimize): Verify cgraph.
1715         * function.h (struct function): Add fields saved_tree/saved_args.
1716         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
1717         * toplev.c (rest_of_compilation): Do not free cfun.
1718         * tree-inline.c: Include function.h
1719         (struct inline_data): Add saving_p field; replace decl/current_decl by
1720         node/current_node.
1721         (insert_decl_map): New function.
1722         (copy_body_r): Handle saving; update cgraph datastructure.
1723         (copy_body): Handle recursive inlining.
1724         (initialize_inlined_parameters): Likewise.
1725         (expand_call_inline): Propagate node attributes; update cgraph.
1726         (optimize_inline_calls): Verify that datastructure still match.
1727         (save_body): New function.
1728         * tree-inline.h (save_body): New.
1729         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
1730         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
1731         * langhooks.c (lang_hooks): Add update_decl_after_saving.
1732
1733 2004-04-01  Serge Belyshev  <1319@bot.ru>
1734
1735         PR target/14702
1736         * config/i386/i386.md: fix source operand constraints in
1737         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
1738
1739 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
1740
1741         * fold-const.c (folda): Preserve types of comparisons.
1742
1743 2004-04-01  Richard Henderson  <rth@redhat.com>
1744
1745         * toplev.c (backend_init): Move init_optimization_passes call ...
1746         (lang_dependent_init): ... here.
1747
1748 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
1749             Jakub Jelinek  <jakub@redhat.com>
1750
1751         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
1752         -lgcc --as-needed -lgcc_s --no-as-needed by default.
1753         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
1754         * configure: Rebuilt.
1755         * config.in: Rebuilt.
1756         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
1757         (stage2-start, stage3-start, stage4-start): Likewise.
1758         (stageprofile-start, stagefeedback-start): Likewise.
1759
1760 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
1761
1762         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
1763         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
1764         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
1765         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
1766         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
1767         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
1768         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
1769         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
1770         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
1771         * config/sparc/t-linux: Removed.
1772
1773 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
1774
1775         PR c++/14755
1776         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
1777         "bitfld++ == const" to "++bitfld == const + incr" transformations.
1778
1779 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1780
1781         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
1782         * stor-layout.c (layout_decl): Likewise.
1783         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
1784         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
1785         * print-tree.c (print_node): Handle various used of unsigned_flag.
1786         * tree.def (BIT_FIELD_REF): Update comment.
1787         * tree.h (TREE_UNSIGNED): Deleted.
1788         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
1789
1790 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1791
1792         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
1793         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
1794         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
1795         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
1796         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
1797         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
1798         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
1799         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
1800         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
1801         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
1802         REAL_TYPE, not INTEGER_TYPE.
1803         (layout_type, case VECTOR_TYPE): Simplify code.
1804         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
1805         * tree.h: Update comments.
1806         (STRIP_NOPS): Use TYPE_UNSIGNED.
1807         (TYPE_UNSIGNED): New macro.
1808         (TYPE_TRAP_SIGNED): Remove now redundant check.
1809         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
1810
1811 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1812
1813         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
1814
1815 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
1816
1817         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
1818         Add darwin-fpsave.asm, darwin-vecsave.asm,
1819         and darwin-world.asm.
1820         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
1821         as the asm files contain altivec instructions.
1822         * config/rs6000/darwin-fpsave.asm: New file.
1823         * config/rs6000/darwin-vecsave.asm: New file.
1824         * config/rs6000/darwin-world.asm: New file.
1825
1826 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
1827
1828         * gengtype-yacc.y (option, stringseq): Add missing
1829         terminating semicolon.
1830
1831 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
1832
1833         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
1834         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
1835         tls_dtprel_ha_32, tls_dtprel_ha_64,
1836         tls_dtprel_lo_32, tls_dtprel_lo_64,
1837         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
1838         tls_tprel_ha_32, tls_tprel_ha_64,
1839         tls_tprel_lo_32, tls_tprel_lo_64,
1840         tls_got_tprel_32, tls_got_tprel_64,
1841         tls_tls_32, tls_tls_64): Replace register_operand with
1842         gpc_reg_operand.
1843
1844 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
1845
1846         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
1847         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
1848         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
1849         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
1850         *ctrdi_internal6): Replace register_operand with
1851         nonimmediate_operand.
1852
1853 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
1854
1855         * fold-const.c (fold): Reassociate multiply expression
1856         with an adjacent non-multiply expression to use
1857         architecture's multiply-add instruction.
1858
1859 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
1860
1861         * gengtype.c (create_option): New function.
1862         * gengtype.h: Prototype it.
1863         * gengtype-yacc.y (stringseq): New rule.
1864         (option): Use create_option.  Add new bare ID production.  Use
1865         stringseq, not STRING directly.
1866
1867         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
1868         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
1869         * varray.h, config/alpha/alpha.c:
1870         Use new shorter form of GTY markers.
1871
1872         * doc/gty.texi: Rewrite.
1873
1874 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
1875
1876         * config/darwin.c (machopic_function_base_name):
1877         Remove current_name and getting the name of the
1878         current function.
1879
1880 2004-03-30  Nick Clifton  <nickc@redhat.com>
1881
1882         * config/arm/arm.md (thumb_jump): Reduce the backward branch
1883         range, and increase the forward branch range, to allow for
1884         the fact that the PC will be off by 4.
1885
1886 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
1887
1888         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
1889
1890 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
1891
1892         * config/rs6000/rs6000.c (output_vec_const_move):
1893         Find all cases of EASY_VECTOR_15_ADD_SELF.
1894         (easy_vector_constant_add_self): Accept
1895         all vector constant loadable by vsplt* and vadd*.
1896         (easy_vector_same): Use easy_vector_splat_const.
1897         (easy_vector_const): Use easy_vector_splat_const.
1898         (easy_vector_splat_const): New function.
1899         (gen_easy_vector_constant_add_self): New function.
1900
1901         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
1902         New prototype.
1903
1904         * config/rs6000/altivec.md (movv4si splitter): Change to
1905         emit move insn with halfed vector constant.
1906         (*movv8hi splitter): Likewise.
1907         (*movv16qi splitter): Likewise.
1908
1909 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
1910
1911         PR 11591
1912         * config/rs6000/rs6000.c (rs6000_legitimate_address):
1913         Allow any offset to argument pointer in no-strict case.
1914
1915 2004-03-30  Jan Hubicka  <jh@suse.cz>
1916
1917         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
1918         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
1919         dump file in non-unit-at-a-time mode.
1920
1921 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
1922
1923         * config/cris/cris.h: Correct #ifdef to test for
1924         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
1925         HAVE_AS_MUL_BUG_ABORT_OPTION.
1926
1927 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1928
1929         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
1930         the address inside the old RTL.
1931
1932 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
1933
1934         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
1935         (struct c_binding, struct c_scope): Add chain_next
1936         attributes to GTY markers.
1937         (struct lang_identifier, struct lang_tree_node): Define
1938         here...
1939         * c-tree.h: ... not here.  No longer need to declare struct
1940         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
1941         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
1942         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
1943
1944         PR 14734, 11944
1945         * c-decl.c (get_parm_info): If error_mark_node is encountered
1946         in the bindings chain, unbind and discard it; don't abort.
1947
1948 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
1949             Dorit Naishlos <dorit@il.ibm.com>
1950
1951         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
1952         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
1953
1954 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
1955
1956         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
1957
1958         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
1959         (m68hc11_attribute_table): New attribute "page0" to mark a global
1960         variable as being allocated from within page0 section.
1961         (m68hc11_encode_label): New function.
1962         (m68hc11_strip_name_encoding): New function.
1963         (m68hc11_page0_symbol_p): New function.
1964         (m68hc11_indirect_p): Accept global variables marked in page0.
1965         (m68hc11_encode_section_info): Lookup "page0" attribute.
1966
1967         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
1968         represents access to page0 variables.
1969
1970         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
1971         ("*logicalsi3_silshl16_zext"): Likewise.
1972         ("*ashldi3_const32"): Likewise.
1973         (peephole2 ashift): Likewise.
1974
1975 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
1976
1977         * c-tree.h (C_DECL_REGISTER): New.
1978         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
1979         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
1980         (build_array_ref, c_mark_addressable): Set and use it.
1981         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
1982         Allow structures with volatile fields to be declared register.
1983         Don't check TREE_ADDRESSABLE before warning about taking address
1984         of register.
1985         * c-decl.c (finish_decl): Don't allow structures with volatile
1986         fields to be placed in named register.
1987         * doc/trouble.texi: Remove reference to structures with volatile
1988         fields in registers.
1989
1990 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
1991
1992         * function.c (thread_prologue_and_epilogue): Move
1993         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
1994         before the epilogue.
1995
1996 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
1997
1998         * expr.c (store_constructor): Use gen_int_mode to correctly
1999         sign-extend CONST_INT value.
2000
2001 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2002
2003         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
2004         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
2005         * doc/extend.texi: Likewise.
2006
2007 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
2008
2009         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
2010           with TYPE_ORIG_SIZE_TYPE.
2011
2012 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
2013
2014         PR 14219
2015         * c-typeck.c (build_binary_op): Do not allow comparisons of
2016         vectors.
2017
2018 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
2019
2020         * config.gcc: Remove sparc-tti-*.
2021         * config/sparc/pbd.h: Delete.
2022
2023         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
2024         * config/sparc/aout.h: Likewise.
2025
2026         * config/sparc/sparc.h: Remove if 0'd code.
2027         * config/sparc/sparc.md (call): Remove if 0'd code.
2028         (call_value): Likewise.
2029         (nonlocal_goto): Likewise.
2030         (unimp_insn): Delete.
2031
2032 2004-03-25  Roger Sayle  <roger@eyesopen.com>
2033
2034         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
2035         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
2036
2037 2004-03-25  Richard Henderson  <rth@redhat.com>
2038
2039         PR 11527
2040         * c-typeck.c (pop_init_level): Emit pending init elements earlier
2041         rather than later.
2042
2043 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2044
2045         * builtins.c (fold_builtin): Fix error in last change.
2046
2047 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
2048
2049         * config/mips/mips.h: Formatting fix.
2050
2051 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2052
2053         * builtins.def: Add ctype builtins.
2054         * doc/extend.texi: Likewise.
2055
2056 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2057
2058         * builtins.c (fold_builtin): Add new builtin optimizations for
2059         sqrt and/or cbrt.
2060         * fold-const.c (fold): Likewise.
2061
2062 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
2063
2064         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
2065         (rs6000_sched_groups): New variable.
2066         (processor_target_table): Add power5.
2067         (rs6000_override_options): Set rs6000_sched_insert_nops,
2068         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
2069         from rs6000_sched_groups.
2070         (output_cbranch): Use rs6000_always_hint.
2071         (rs6000_variable_issue): Use rs6000_sched_groups.
2072         (rs6000_adjust_cost): Add CPU_POWER5.
2073         (is_microcoded_insn): Use rs6000_sched_groups.
2074         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
2075         Return 2 for POWER5 cracked instructions.
2076         (is_cracked_insn): Use rs6000_sched_groups.
2077         (is_branch_slot_insn): Use rs6000_sched_groups.
2078         (rs6000_issue_rate): Add CPU_POWER5.
2079         (rs6000_sched_finish): Use rs6000_sched_groups.
2080         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
2081         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
2082         (DEFAULT_SCHED_COSTLY_DEP): Delete.
2083         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
2084         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
2085         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
2086         * config/rs6000/power5.md: New file.
2087         * doc/invoke.texi: Add power5 option.
2088
2089 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
2090
2091         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
2092         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
2093         * doc/invoke.texi: Fix a typo.
2094
2095 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
2096
2097         PR optimization/9707.
2098         * stmt.c (emit_case_nodes): Emit equality comparisons instead
2099         of recursing if both children are single-valued cases with no
2100         children.
2101
2102 2004-03-25  Paul Brook  <paul@codesourcery.com>
2103
2104         * config/arm/arm.c (vfp_print_multi): Remove.
2105         (arm_output_fldmx): New function.
2106         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
2107         (arm_expand_prologue): Update to match.
2108         (arm_get_vfp_saved_size): New Function.
2109         (arm_get_frame_offsets): Use it.
2110         (arm_output_epilogue): Use new functions.
2111
2112 2004-03-24  Richard Henderson  <rth@redhat.com>
2113
2114         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
2115         (reg_known_value, reg_known_value_size): Likewise; make static.
2116         (reg_known_equiv_p): Make static.
2117         (clear_reg_alias_info): Update for new indexing.
2118         (get_reg_known_value, set_reg_known_value): New.
2119         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
2120         (canon_rtx): Use them.
2121         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
2122         Don't play queer offsetting games with reg_known_value and
2123         reg_known_equiv_p.
2124         (end_alias_analysis): Free reg_known_value with gc.
2125         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
2126         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
2127         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
2128         functions instead.
2129
2130 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
2131
2132         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
2133         config/i386/mmintrin.h: Update copyright.
2134
2135 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
2136
2137         * configure.ac: Add --enable-werror-always (for top level bootstrap
2138         support).
2139         * configure: Regenerate.
2140
2141 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
2142
2143         * objc/objc-act.c (objc_comptypes): Treat comparisons
2144         between 'Class' and '<class> *' as explicitly invalid.
2145
2146 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
2147
2148         * doc/invoke.texi (-frename-registers: Add enabled at -O3.
2149         (-fprofile-values): Add enabled with profile-{generate,use}.
2150         (-fvpt): Same.
2151         (-ftracer): Add enabled with profile-use.
2152         (-funit-at-a-time): Add enabled at -O2,-O3.
2153         (-funroll-loops): Add enabled with profile-use.
2154         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
2155         (max-gcse-passes): Mention default.
2156         (max-cse-path-length): Mention default.
2157
2158 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
2159
2160         * Makefile.in (STRICT2_WARN): Reorder.
2161         * configure.ac: Check for -Wold-style-definition, and use it
2162         in strict1_warn if it's available.
2163         * configure: Regnerate.
2164
2165 2004-03-24  Paul Brook  <paul@nowt.org>
2166
2167         * config.gcc <arm>: Add --with-abi=
2168         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
2169         thumb_far_jump_used): Remove prototypes.
2170         (arm_needs_doubleword_align): Add prototype.
2171         (thumb_compute_initial_elimination_offset): Ditto.
2172         * config/arm/arm.c (arm_get_frame_offsets): New function.
2173         (use_return_insn, output_return_instruction, arm_output_epilogue,
2174         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
2175         arm_expand_prologue, thumb_expand_epilogue): Use it.
2176         (arm_abi, target_abi_name, all_arm_abis): New variables.
2177         (arm_override_options): Set them.  Set structure padding for AAPCS.
2178         (arm_return_in_memory): Update ABI check.
2179         (arm_init_cumulative_args): Initialize can_split.
2180         (arm_needs_doubleword_align): New function.
2181         (arm_function_arg): Don't split args after pushing to stack. Handle
2182         doubleword/even reg alignment.
2183         (arm_va_arg): Handle all doubleword aligned args.
2184         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
2185         on ABI, not CPU.
2186         (arm_compute_save_reg0_reg12_mask): Fix comment.
2187         (thumb_get_frame_size, thumb_get_frame_size): Remove.
2188         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
2189         value for alignment.
2190         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
2191         to match.
2192         (thumb_compute_initial_elimination_offset): New function.
2193         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
2194         unneccessary rounding.
2195         * config/arm/arm.h (target_abi_name): Declare.
2196         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
2197         arm_abi_type, ARM_DEFAULT_ABI): Define.
2198         (ARM_FLAG_ATPCS): Remove.
2199         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
2200         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
2201         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
2202         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
2203         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
2204         Contitionalize on ABI, not CPU.
2205         (struct arm_stack_offsets): Define.
2206         (struct machine_function): Add stack_offsets.  Remove frame_size.
2207         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
2208         pushed.
2209         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
2210         doubleword alignment.
2211         (THUMB_INITIAL_ELIMINATION_OFFSET,
2212         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
2213         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
2214         * config/arm/arm.md (align_8): Enable for all targets.
2215         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
2216         (ARM_DEFAULT_ABI): Define.
2217         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
2218         -mstructure-size-boundary.
2219
2220 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
2221
2222         * configure.ac: Check for -Wno-variadic-macros; don't use
2223         -pedantic (in stage 1 or a simple 'make all') unless it's available,
2224         and if it's available, use it.  Also, clean up check for
2225         -Wno-long-long.
2226         * configure: Regenerate.
2227
2228 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
2229
2230         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
2231         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
2232         (MULTILIB_DEFAULTS): Use it.
2233         (MIPS_CPU_STRING_DEFAULT): Remove.
2234         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
2235         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
2236         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
2237         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
2238         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
2239         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
2240         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
2241         accordingly.
2242
2243 2004-03-24  DJ Delorie  <dj@redhat.com>
2244             Richard Sandiford  <rsandifo@redhat.com>
2245
2246         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
2247         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
2248         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
2249         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
2250         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
2251         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
2252         if TARGET_FIX_VR4122.
2253         * config/mips/mips.md (define_attr length): Account for nops inserted
2254         after macc and dmult when using -mfix-vr4122-bugs.
2255         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
2256         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
2257         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
2258         * config/mips/vr4122-div.S: New file.
2259         * doc/invoke.texi: Document -mfix-vr4122-bugs.
2260
2261 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
2262
2263         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
2264         (TARGET_MIPS4130): New macro.
2265         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
2266         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
2267         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
2268         with PROCESSOR_R4130.
2269         * config/mips/mips.md (define_attr cpu): Add r4130.
2270         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
2271
2272 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
2273             Richard Sandiford  <rsandifo@redhat.com>
2274
2275         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
2276
2277 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
2278
2279         PR preprocessor/14438
2280         * cpplib.c (do_pragma): Remove line_change call after pragma
2281         handler.
2282
2283 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
2284
2285         * doc/extend.texi (ARM Built-in Functions): Replace with correct
2286         declarations.
2287
2288 2004-03-23  Roger Sayle  <roger@eyesopen.com>
2289
2290         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
2291         if flag_unsafe_math_optimizations.
2292         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
2293         and TARGET_80387 expand using truncdfsf2_noop pattern.
2294         (truncxfsf2): Likewise using truncxfsf2_noop.
2295         (truncxfdf2): Likewise using truncxfdf2_noop.
2296         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
2297
2298 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
2299
2300         * hooks.c (hook_constcharptr_tree_null): New hook.
2301         * hooks.h (hook_constcharptr_tree_null): New prototype.
2302         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
2303         * target.h (mangle_fundamental_type): New target hook.
2304         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
2305         target hook at rs6000_mangle_fundamental_type.
2306         (rs6000_mangle_fundamental_type): New function.
2307         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
2308
2309 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
2310
2311         PR 12267, 12391, 12560, 13129, 14114, 14133
2312         * c-tree.h: Forward declare struct c_binding.  Declare
2313         c_override_bindings_to_false.  Update prototypes.
2314         (struct lang_identifier): Update comments.  Change fields to be
2315         struct c_binding *.
2316         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
2317         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
2318         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
2319         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
2320         * c-common.h: Update prototypes.
2321         * c-decl.c (struct c_scope): Update commentary.  Remove names,
2322         names_last, parms, parms_last, tags, and shadowed fields.  Add
2323         bindings and depth fields.
2324         (scope_freelist): Move to more appropriate location.
2325         (c_print_identifier): Update for changes to struct lang_identifier.
2326         (objc_mark_locals_volatile): Update for new bindings structures.
2327         (global_bindings_p): Honor c_override_global_bindings_to_false.
2328         (pushlevel): Rename to push_scope; take no arguments; use the
2329         scope_freelist; initialize scope->depth and check for overflow.
2330         (poplevel): Rename to pop_scope; totally rewritten for new bindings
2331         structures.
2332         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
2333         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
2334         Improve some commentary.  Adjust handling of forward parm decls.
2335         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
2336         Preserve C_DECL_IN_EXTERNAL_SCOPE.
2337         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
2338         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
2339         decls.  Rewrite for new bindings structures.  Improve commentary.
2340         Eliminate the copy_node call.
2341         (implicit_decl_warning): Use the "diag" idiom (as seen in
2342         locate_old_decl) to reduce code duplication; call locate_old_decl
2343         if appropriate.  Relocate to remove need for forward declaration.
2344         (implicitly_declare): Adjust for new bindings structures.  Kludge
2345         around Objective-C not-really-builtin functions.
2346         (undeclared_variable): Improve diagnostics.  If current_function_decl
2347         is nonnull but current_function_scope is null, use current_scope.
2348         Use bind.
2349         (lookup_tag): Adjust for new bindings structures.  Kludge around
2350         Objective-C's tag declarations that wind up in the external scope.
2351         (lookup_name): Adjust for new bindings structures.  Kludge around
2352         c-common.c's pseudo-typedefs that wind up in the external scope.
2353         (lookup_name_current_level): Rename lookup_name_in_scope; take a
2354         second argument indicating the scope to examine; rewrite for
2355         new bindings structures.
2356         (c_init_decl_processing): Adjust for renamed functions.  Do not
2357         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
2358         First scope pushed is the external scope, not the global scope.
2359         (builtin_function): Use bind, not pushdecl.  Adjust other bits
2360         for new data structures.  Keep track of builtins that should be
2361         made visible automatically.
2362         (start_decl): Adjust diagnostics.  Remove unnecessary call to
2363         expand_decl.
2364         (grokparms): Return 0 if arg_types is error_mark_node.
2365         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
2366         reversed sense.  Rewrite for new bindings structures.  Do not
2367         leave any decls in the scope, to prevent pop_scope from doing
2368         contradictory things with them.
2369         (finish_struct, finish_enum): Remove redundant diagnostics.
2370         (build_enumerator): Don't cascade diagnostics for error_mark_node.
2371         Mark location where -pedantic changes the meaning of the program.
2372         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
2373         parameter decls into the function's scope structure using bind.
2374         Warn here about function definitions in the wrong style.
2375         Adjust diagnostics.
2376         (store_parm_decls): Correct the determination of whether a
2377         function was defined with a prototype.
2378         (c_write_global_declarations): Operate on all file decls and on
2379         the external scope.  Split body of the loop to...
2380         (c_write_global_declarations_1): ... this new function, to avoid
2381         code duplication.
2382         (truly_local_externals, first_builtin_decl, last_builtin_decl)
2383         (make_scope, pop_scope, in_parm_level_p, set_block)
2384         (any_external_decl, record_external_decl, bind_label, getdecls)
2385         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
2386         (c_reset_state): Delete.
2387         (visible_builtins, c_override_global_bindings_to_false)
2388         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
2389         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
2390         (external_scope, binding_freelist, bind, free_binding_and_advance)
2391         (push_file_scope, pop_file_scope): New.
2392         (pushtag, pushdecl_top_level, lookup_label, declare_label)
2393         (define_label, c_make_fname_decl, finish_decl)
2394         (mark_forward_parm_decls, build_compound_literal)
2395         (grokdeclarator, start_function, check_for_loop_decls)
2396         (identifier_global_value, record_builtin_type): Minor adjustments
2397         for new bindings structures.  Improve diagnostics and commentary.
2398         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
2399         pushlevel/poplevel respectively.
2400         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
2401         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
2402         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
2403         correct loop over multiple translation units; call fatal_error if
2404         requested to compile more than one file at once.  (This disables
2405         IMA temporarily - an up-front error being preferable to a crash.)
2406         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
2407         (all actions): Adjust calls to pushlevel/poplevel.
2408         (parsing_iso_function_signature): Delete.
2409         (extdef_1): Fold into extdef.
2410         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
2411         warn here about function definitions in the wrong style.
2412         (after_tyle_declarator, parm_declarator_starttypename)
2413         (parm_declarator_nostarttypename, notype_declarator): Remove
2414         commented-out productions.
2415         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
2416         an empty TREE_LIST node.  Adjust calls to get_parm_info.
2417         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
2418         to suppress -Wold-style-definition after this error.
2419         (c_parse_file): Don't clear the binding stack or call
2420         finish_fname_decls here.  Correct comment.
2421         * c-typeck.c (same_translation_unit_p): Export.
2422         (common_type): Use c_override_global_bindings_to_false, not
2423         pushlevel/poplevel/declare_parm_level.
2424         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
2425         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
2426         and LANG_HOOKS_GETDECLS with do-nothing stubs.
2427         * objc/objc-lang.c: Likewise.
2428         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
2429         get_parm_info.
2430         (OBJC_VOID_AT_END): Delete; replace all uses
2431         with void_list_node.
2432         (generate_forward_declaration_to_string_table): Delete.
2433         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
2434
2435         * coverage.c (create_coverage): Don't pushdecl anything.
2436         * langhooks.c (lhd_clear_binding_stack): Call
2437         lang_hooks.decls.poplevel, not poplevel.
2438         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
2439         circular list rather than going into an infinite loop.
2440
2441 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
2442
2443         * optabs.c (expand_binop): When synthesizing double word rotates
2444         from single word shifts, use a new register target if the provided
2445         target is not a REG already.
2446
2447 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2448
2449         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
2450         * c-common.c (handle_mode_attribute): Add extra arg to
2451         build_pointer_type_for_mode and build_reference_type_for_mode.
2452         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
2453         for INTEGER_CST.
2454         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
2455         Chain pointers via TYPE_NEXT_PTR_TO.
2456         (build_reference_type_for_mode): Similarly.
2457         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
2458         and build_reference_type_for_mode.
2459         (tree_check4_failed): New function.
2460         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
2461         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
2462         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
2463         Add check.
2464
2465 2004-03-23  Roger Sayle  <roger@eyesopen.com>
2466
2467         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
2468         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
2469         when both A and B are nonnegative.
2470         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
2471         nonzero.
2472
2473 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
2474
2475         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
2476         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
2477
2478 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
2479
2480         PR optimization/14669
2481         * fold-const.c (fold): Only unwiden integer comparisons for equality
2482         and inequality operators, or when the signedness doesn't change.
2483
2484 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
2485
2486         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
2487         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
2488         * config/sparc/t-linux: New file.
2489
2490 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
2491
2492         * gcse.c (can_assign_to_reg_p): New function, split out from...
2493         (want_to_gcse_p): ...here.
2494         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
2495         the rhs of a store.
2496
2497 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
2498
2499         * c-typeck.c (same_translation_unit_p): Fix pasto.
2500
2501 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
2502
2503         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
2504         (PARAM_MAX_SCHED_REGION_INSNS): New.
2505         * sched-rgn.c: Include params.h
2506         (MAX_RGN_BLOCKS): Delete.
2507         (MAX_RGN_INSNS): Delete.
2508         (too_large): Return bool.  Convert to PARAM_VALUE.
2509         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
2510         * doc/invoke.texi (param): Document max-sched-region-blocks and
2511         max-sched-region-insns.
2512
2513 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
2514
2515         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
2516         for base types.
2517
2518 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
2519
2520         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
2521         change.
2522
2523 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
2524
2525         PR c/14069
2526         * c-decl.c (finish_struct): Change type of incorrect flexible array
2527         field into error_mark_node.
2528
2529 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
2530
2531         PR target/14580
2532         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
2533         who are not local for Darwin PIC.
2534
2535 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
2536
2537         * regrename.c (regrename_optimize): Set regs_ever_live for all
2538         registers introduced as replacement.
2539
2540 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
2541
2542         PR middle-end/14470
2543         * expr.c (mark_queue): New function.
2544         (emit_insns_enqueued_after_mark): New function replacing
2545         emit_queue.  Clear the body of emitted queued insns.
2546         (emit_queue): Call emit_insns_enqueued_after_mark.
2547         (store_expr): Mark the increment queue on entry.  Emit
2548         only the incrementations queued when expanding the source.
2549
2550 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
2551
2552         * configure.ac: Allow --disable-coverage-flags (for the future benefit
2553         of top level bootstrap, and consistency).  Reindent.
2554         * configure: Regenerate.
2555
2556 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
2557
2558         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
2559         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
2560         unnecessary casts.
2561
2562 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
2563
2564         PR target/14291
2565         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
2566         __MINGW32__.
2567
2568 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
2569
2570         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
2571         to nonimmediate_operand.
2572         ("*doloop_di"): Likewise.
2573
2574 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
2575
2576         * real.h (struct real_value): Use the same type for all
2577         bitfields.  Rename exp to uexp.
2578         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
2579         Adjust all uses of exp...
2580         * builtins.c: ... here, ...
2581         * emit-rtl.c: ... here, and ...
2582         * real.c: ... and here.
2583
2584 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2585
2586         * pretty-print.c (pp_base_maybe_space): New function.
2587         * pretty-print.h (pp_base_maybe_space): Declare.
2588         (pp_maybe_space): New macro.
2589
2590 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
2591
2592         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
2593
2594 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
2595
2596         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
2597         of using register multiplication cost.
2598         (expand_mult): Adapt choose_mult_variant call.
2599         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
2600         of MODE; pass appropriate cost bound.  Adjust result when
2601         performing signed multiplication by a negative constant.
2602         Don't use intermediate modes larger than word_mode.
2603
2604 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2605
2606         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
2607         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
2608         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
2609         * explow.c (expr_size): Likewise.
2610         * expr.h (placeholder_list, find_placeholder): Deleted.
2611         * expr.c (store_constructor): Likewise.
2612         (get_inner_reference): Likewise.  Also don't call find_placeholder.
2613         (placeholder_list, find_placeholder): Deleted.
2614         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
2615         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
2616         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
2617         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
2618         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
2619         Likewise.
2620         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
2621         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
2622         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
2623         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
2624         Clean up by using first_rtl_op.
2625         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
2626         (substitute_placeholder_in_expr): New function.
2627         * tree.def (WITH_RECORD_EXPR): Deleted.
2628         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
2629         (substitute_placeholder_in_expr): New.
2630
2631 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
2632
2633         * dojump.c (prefer_and_bit_test): Fix which part of
2634         the and_test is replaced.
2635
2636 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
2637
2638         * frontends.texi: Add missing line.
2639
2640 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
2641             Chris Devers  <cdevers@pobox.com>
2642             Joseph S. Myers  <jsm@polyomino.org.uk>
2643
2644         * doc/frontends.texi: Rewrite.
2645         * doc/gcc.texi: Update last modification date.
2646
2647 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
2648
2649         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
2650         message before redirecting the edge.
2651
2652 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2653
2654         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
2655         flag.
2656         * explow.c (force_not_mem): Set REG_POINTER flag according to
2657         MEM_POINTER one.
2658         * rtl.h (MEM_POINTER): New macro.
2659         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
2660         for MEM_POINTER.
2661
2662 2004-03-20  Roger Sayle  <roger@eyesopen.com>
2663
2664         PR target/13889
2665         * cse.c (fold_rtx): Avoid substituting constants into unary
2666         conversion operations.
2667
2668 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2669
2670         * fold-const.c (fold): Replace "expr" with "t".
2671
2672 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
2673
2674         PR c/12373
2675         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
2676         DECL_ORIGINAL_TYPE if there isn't one.
2677
2678 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2679
2680         * fold-const.c (fold): Replace "final_type" with "type".
2681         Remove variable "final_type".
2682
2683 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2684
2685         * fold-const.c (fold): Constify "type".
2686         Replace "TREE_TYPE (t)" with "type".
2687
2688 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2689
2690         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
2691         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
2692         via (*targetm.foo) () with targetm.foo ().
2693
2694 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
2695
2696         PR other/14630
2697         * doc/install.texi: Add info directory category and entry.
2698
2699 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2700
2701         * fold-const.c (fold): Replace "t" with "tem" where it is used
2702         as a temporary variable.  Remove "orig_t" and all of its uses.
2703
2704 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2705
2706         * fold-const.c (fold): Remove variable "invert".
2707         Move the handling of relational expressions that can be folded
2708         to a constant ...
2709         (fold_relational_const): ... here.
2710         (tree_expr_nonzero_p): New.
2711
2712 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
2713
2714         PR c/14635
2715         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
2716         DEF_GCC_BUILTIN.
2717
2718 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
2719
2720         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
2721         (GTFILES): Add $(srcdir)/dojump.h.
2722         (gt-dojump.h): New dependency.
2723         * dojump.c (and_reg, and_test, shift_test): New static variables.
2724         (prefer_and_bit_test): New function.
2725         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
2726
2727 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
2728
2729         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
2730         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
2731         reorg.c, tree.h: Fix comment typos.
2732
2733 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
2734
2735         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
2736         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
2737         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
2738         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
2739         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
2740         vmsdbgout.c: Replace calls via (*targetm.foo) () with
2741         targetm.foo ().
2742
2743 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
2744
2745         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
2746         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
2747         always_inline attribute.
2748         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
2749         Treat expansion as completed even if literal argument is
2750         invalid (so that other expansions are not tried in vain).
2751
2752 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
2753
2754         * loop-doloop.c (add_test): Replace GEN_INT (0) with
2755         const0_rtx.
2756
2757 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
2758
2759         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
2760         ...
2761         (fold_abs_const): ... here.
2762
2763 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2764
2765         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
2766
2767 2004-03-19  Denis Chertykov  <denisc@overta.ru>
2768
2769         PR target/11520
2770         * config/avr/avr.md ("call_insn"): Handle explicit integer
2771         specially.
2772         (call_value_insn): Likewise.
2773
2774 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2775
2776         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
2777
2778 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
2779
2780         * fold-const.c (negate_expr): Move the handling of constants
2781         ...
2782         (fold_negate_const): ... here.
2783
2784 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2785
2786         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
2787         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
2788         * tree.c (debug_no_type_hash): Deleted.
2789         (type_hash_canon): Abort if passed a variant.
2790         Check lang_hooks.types.hash_types.
2791         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
2792         (build_array_type): Remove unnecessary allocation of pointer type.
2793         (build_complex_type): Properly qualify resulting type.
2794
2795 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
2796
2797         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
2798
2799 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
2800
2801         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
2802         (expand_mult): ...here.
2803         (extract_high_half): New, split out from expand_mult_highpart.
2804         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
2805         (expand_highpart): Evaluate the cost of a shift/add sequence,
2806         then see if any of the specialized optabs are cheaper.
2807
2808 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
2809
2810         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
2811
2812 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2813
2814         * convert.c (convert_to_real): Add more math builtins.
2815
2816 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2817
2818         * convert.c (convert_to_real): Reformat using switch stmt.
2819
2820 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
2821
2822         * c-common.c (pointer_int_sum): Do not complain about using
2823         pointers to pointers-to-members.
2824
2825 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
2826
2827         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
2828         have moved to the target hooks structure".
2829
2830 2004-03-18  James E Wilson  <wilson@specifixinc.com>
2831
2832         * config/mips/mips.md (type): Split move into arith and fmove.  Split
2833         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
2834         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
2835         Likewise.
2836         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
2837         Likewise.
2838         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
2839         rm7_fp_quick): Likewise.
2840         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
2841         rm9k_fquick): Likewise.
2842         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
2843         Likewise.
2844         (ir_sr70_icmp): Delete.
2845
2846 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
2847
2848         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
2849         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
2850         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
2851         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
2852         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
2853         Protect with proper check.
2854         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
2855         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
2856         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
2857         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
2858         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
2859         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
2860         not TYPE_FIELDS.
2861         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
2862
2863 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
2864
2865         * gcse.c (eliminate_partially_redundant_loads): Reject change if
2866         dest is set between beginning and current insn.
2867
2868 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
2869
2870         * c-decl.c (grokdeclarator): Do not complain about redeclaring
2871         visible "static" identifiers "extern" in a local scope.
2872         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
2873         post-increments/decrements.
2874
2875 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
2876
2877         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
2878         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
2879         (xtensa_va_start): Remove assignment to current_function_arg_words.
2880
2881 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
2882
2883         * alias.c (record_set): Detect the case where a register is assigned
2884         a new value that has the same base term as the old one.
2885
2886 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2887
2888         * doloop.c: Removed.
2889         * loop-doloop.c: New file.
2890         * Makefile.in (doloop.o): Remove.
2891         (loop-doloop.o): New.
2892         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
2893         * cfgloopanal.c (get_loop_level): New function.
2894         * loop-iv.c (iv_number_of_iterations): Handle case when loop
2895         is leaved immediatelly.
2896         * loop.c (strength_reduce): Do not call doloop optimization.
2897         * loop.h (LOOP_BCT): Removed.
2898         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
2899         (rest_of_handle_loop2): Call doloop_optimize_loops.
2900         (rest_of_compilation): Test for optimizations moved to
2901         rest_of_handle_loop2.
2902
2903 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
2904
2905         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
2906         for mixed mode.
2907         (rs6000_emit_prologue): Ditto.
2908         (rs6000_emit_epilogue): Ditto.
2909         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
2910         macro for mixed mode.
2911
2912 2004-03-18  Jan Hubicka  <jh@suse.cz>
2913
2914         * predict.c (propagate_freq): Compute correctly frequency of
2915         EXIT_BLOCK.
2916
2917 2004-03-17  Eric Christopher  <echristo@redhat.com>
2918
2919         * builtins.c (apply_args_size): Use reg_raw_mode.
2920         (apply_result_size): Ditto.
2921
2922 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
2923
2924         PR target/14620
2925         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
2926
2927 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
2928
2929         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
2930         32-bit builds when defaulting to 32-bit.
2931
2932 2004-03-17  Jan Hubicka  <jh@suse.cz>
2933
2934         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
2935         array.
2936
2937 2004-03-17  James E Wilson  <wilson@specifixinc.com>
2938
2939         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
2940         (hazard_nop): Change type to nop.
2941         (type): Split arith into arith, shift, slt, clz.  Delete darith.
2942         Fix all uses.  Change arith to multi if more than one insn emitted.
2943         * config/mips/5400.md (ir_vr54_arith): Likewise.
2944         * config/mips/5500.md (ir_vr55_arith): Likewise.
2945         * config/mips/7000.md (rm7_int_other): Likewise.
2946         * config/mips/9000.md (rm9k_int): Likewise.
2947         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
2948
2949 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
2950
2951         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
2952         to hold the subtype tree instead of recomputing it several times.
2953
2954 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
2955
2956         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
2957         CC_INVERT.
2958         * config/mn10300/mn10300.md (cc): Remove "invert".
2959
2960 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2961
2962         * builtins.c (integer_valued_real_p): Add builtin rint.
2963         (fold_builtin): Likewise.
2964         * convert.c (convert_to_real): Likewise.
2965
2966         * convert.c (convert_to_real): Fix typos in `long double'
2967         builtins.
2968
2969 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
2970
2971         PR c++/14481
2972         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
2973         generated COMPOUND_EXPRs.
2974
2975 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
2976
2977         * config/h8300/t-rtems (h8300-*-rtems*): New.
2978
2979 2004-03-16  Eric Christopher  <echristo@redhat.com>
2980
2981         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
2982
2983 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
2984
2985         * config/i386/i386-protos.h: Add a prototype for
2986         ix86_reverse_condition.
2987         * config/i386/i386.c (ix86_reverse_condition): New.
2988         * config/i386/i386.h (REVERSE_CONDITION): Use
2989         ix86_reverse_condition.
2990         * config/i386/i386.md: Use ix86_reverse_condition instead of
2991         REVERSE_CONDITION.
2992
2993 2004-03-16  J. Brobecker  <brobecker@gnat.com>
2994
2995         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
2996
2997 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
2998
2999         PR bootstrap/12974
3000         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
3001
3002 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
3003
3004         * c-common.c (c_common_type_for_mode): Build vector types on
3005         demand.
3006         (handle_mode_attribute): Deprecate using the mode attribute
3007         to create vector types.  Fix indentation.
3008         (vector_type_node_list): Remove.
3009         (handle_vector_size_attribute): Create vector types on demand.
3010         Strip a NON_LVALUE_EXPR from the attribute if there is one.
3011         * c-typeck.c (comptypes): Make vector types compatible if they
3012         have the same underlying mode.
3013         (convert_for_assignment): Use comptypes to convert between
3014         vector types.
3015         * tree.c (build_common_tree_nodes_2): Do not create vector types.
3016         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
3017         vector types.
3018         * tree.h: Remove vector types.
3019         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
3020         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
3021         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
3022         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
3023         * doc/extend.texi (Vector Types): Document how to use the
3024         vector_size attribute to create vectors, rather than mode.
3025
3026         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
3027         * config/i386/emmintrin.h: Likewise.
3028         * config/i386/mmintrin.h: Likewise.
3029         * config/i386/xmmintrin.h: Likewise.
3030         * config/sh/ushmedia.h: Likewise.
3031
3032 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
3033
3034         * config/freebsd-spec.h, config/arc/arc-protos.h,
3035         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
3036         config/arm/linux-gas.h, config/arm/semi.h,
3037         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
3038         config/ia64/freebsd.h, config/mips/7000.md,
3039         config/mips/9000.md, config/ns32k/ns32k-protos.h,
3040         config/sparc/pbd.h: Update copyright.
3041
3042 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
3043
3044         PR target/14577
3045         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
3046
3047 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
3048
3049         * combine.c (combine_simplify_rtx): Remove the "last"
3050         parameter and its documentation.  Adjust recursive calls.
3051         (simplify_logical): Always perform the only simplification
3052         controlled by "last", if the simplified expression is
3053         actually different.
3054         (try_combine): Do not pass the "last" parameter to
3055         combine_simplify_rtx.
3056
3057 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
3058
3059         PR target/14599
3060         * config/mips/mips.md (UNSPEC_GP): New constant.
3061         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
3062         an UNSPEC instead of (reg $gp).
3063         (mips16_gp_pseudo_reg): Change accordingly.
3064         (print_operand): Print $gp directly when handling CONST_GP_P.
3065
3066 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
3067
3068         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
3069         * longlong.h: Make code 68060 clean when compiling for m68060.
3070
3071 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
3072
3073         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
3074         * doc/md.texi: Clarify description of "i" constraint.
3075
3076 2004-03-15  James E Wilson  <wilson@specifixinc.com>
3077
3078         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
3079         Split store into store, fpstore, fpidxstore.  Fix all uses.
3080         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
3081         Likewise.
3082         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
3083         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
3084         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
3085         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
3086         ir_sr70_fstore): Likewise.
3087
3088 2004-03-15  Richard Henderson  <rth@redhat.com>
3089
3090         PR middle-end/14535
3091         * except.c (collect_one_action_chain): Record action for cleanup
3092         outer of exception spec.
3093
3094 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
3095
3096         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
3097         Fix the check for abort and only do the mmap if we can.
3098
3099 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
3100
3101         * config/sparc/sparc.h: Rework comments about the code model
3102         in 64-bit environment and the mode 'Pmode'.
3103         * doc/invoke.texi (SPARC options): Rework description of the
3104         different code models supported in 64-bit environment.
3105
3106 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
3107
3108         * defaults.h (REVERSIBLE_CC_MODE): Define.
3109         * jump.c (reversed_comparison_code_parts): Don't check if
3110         REVERSIBLE_CC_MODE is defined.
3111
3112 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
3113
3114         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
3115         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
3116         hosthooks.h, params.h, ra-colorize.c, web.c,
3117         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
3118         config/avr/avr-protos.h, config/avr/avr.md,
3119         config/fr30/fr30-protos.h, config/fr30/fr30.md,
3120         config/h8300/fixunssfsi.c, config/i386/darwin.h,
3121         config/i386/freebsd.h, config/i386/freebsd64.h,
3122         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
3123         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
3124         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
3125         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
3126         config/pa/pa64-regs.h, config/rs6000/aix41.h,
3127         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
3128         config/sparc/aout.h, config/sparc/freebsd.h,
3129         config/sparc/litecoff.h, config/vax/vax-protos.h,
3130         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
3131         copyright.
3132
3133 2004-03-15  Paul Brook  <paul@codesourcery.com>
3134
3135         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
3136
3137 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3138
3139         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
3140         (pp_c_cv_qualifier): Document.
3141         (pp_c_space_for_pointer_operator): Likewise.
3142         (pp_c_integer_constant): Likewise.
3143         (pp_c_identifier): Likewise.
3144         (pp_c_init_declarator): Don't print function body.
3145
3146 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
3147
3148         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
3149         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
3150         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
3151         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
3152         wording and grammar.
3153
3154 2004-03-14  Roger Sayle  <roger@eyesopen.com>
3155
3156         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
3157         with lang_hooks.foo ().
3158         * builtins.c (expand_builtin_va_arg): Likewise.
3159         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
3160         c_common_type_for_mode, c_common_nodes_and_builtins,
3161         handle_mode_attribute, handle_vector_size_attribute): Likewise.
3162         * c-convert.c (convert): Likewise.
3163         * c-format.c (check_format_types): Likewise.
3164         * c-objc-common.c (c_tree_printer): Likewise.
3165         * c-typeck.c (build_unary_op, build_conditional_expr,
3166         build_binary_op): Likewise.
3167         * calls.c (try_to_integrate, expand_call,
3168         emit_library_call_value_1): Likewise.
3169         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
3170         Likewise.
3171         * cgraphunit.c (record_call_1, cgraph_analyze_function,
3172         cgraph_expand_function): Likewise.
3173         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
3174         * coverage.c (build_fn_info_type, build_ctr_info_type,
3175         build_gcov_info, create_coverage): Likewise.
3176         * dbxout.c (dbxout_init): Likewise.
3177         * diagnostic.c (diagnostic_report_current_function): Likewise.
3178         * dojump.c (do_jump): Likewise.
3179         * dwarf2out.c (dwarf2_name): Likewise.
3180         * except.c (init_eh): Likewise.
3181         * explow.c (expr_size, int_expr_size): Likewise.
3182         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
3183         Likewise.
3184         * expr.c (store_expr, store_constructor, safe_from_p,
3185         expand_expr_real, do_store_flag, try_casesi): Likewise.
3186         * function.c (push_function_context_to, pop_function_context_from,
3187         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
3188         put_var_into_stack, allocate_struct_function, current_function_name):
3189         Likewise.
3190         * integrate.c (copy_decl_for_inlining, expand_inline_function):
3191         Likewise.
3192         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
3193         lhd_print_error_function): Likewise.
3194         * opts.c (handle_option, decode_options): Likewise.
3195         * passes.c (open_dump_file): Likewise.
3196         * print-tree.c (print_node): Likewise.
3197         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
3198         expand_decl_cleanup, emit_case_nodes): Likewise.
3199         * stor-layout.c (variable_size): Likewise.
3200         * toplev.c (announce_function, wrapup_global_declarations,
3201         check_global_declarations, compile_file, default_tree_printer,
3202         process_options, lang_dependent_init, finalize): Likewise.
3203         * tree-dump.c (dequeue_and_dump): Likewise.
3204         * tree-inline.c (remap_decl, remap_block, copy_body_r,
3205         initialize_inlined_parameters, declare_return_variable,
3206         inlinable_function_p, expand_call_inline, optimize_inline_calls,
3207         walk_tree, copy_tree_r): Likewise.
3208         * tree-optimize.c (tree_rest_of_compilation): Likewise.
3209         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
3210         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
3211         variably_modified_type_p, dump_tree_statistics): Likewise.
3212         * varasm.c (assemble_variable, compare_constant, copy_constant,
3213         force_const_mem, compute_reloc_for_constant, output_constant,
3214         output_addressed_constants, initializer_constant_valid_p): Likewise.
3215
3216 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
3217
3218         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
3219
3220 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
3221
3222         * doc/install.texi: Reflect autoconf and automake version for
3223         libffi. Update autoconf version to 2.59.
3224
3225 2004-03-13  Roger Sayle  <roger@eyesopen.com>
3226
3227         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
3228         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
3229         make_range, build_range_check, fold_range_test, unextend,
3230         constant_boolean_node, fold_binary_op_with_conditional_arg,
3231         fold_truthop, fold_mathfn_compare, fold_inf_compare,
3232         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
3233         with lang_hooks.foo ().
3234
3235 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
3236
3237         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
3238
3239 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
3240
3241         * doc/install.texi: Note status of -fnew-ra.
3242
3243 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
3244
3245         PR middle-end/14470
3246         * expr.c (store_expr): Call emit_queue before generating the move
3247         from the temporary to the original target.  Protect the temporary
3248         from emit_queue.
3249
3250 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
3251
3252         PR target/14533
3253         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
3254         other than UNSPEC_GOTOFF.
3255
3256 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
3257
3258         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
3259         to arm_legitimate_index_p.  Update all callers with SET as default
3260         value.
3261         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
3262         range if OUTER is a sign-extend operation on QImode.  Correctly
3263         reject shift operations on sign-extended QImode addresses.
3264         (bad_signed_byte_operand): Delete.
3265         (arm_extendqisi_mem_op): New function.
3266         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
3267         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
3268         constraints.
3269         (CONSTRAINT_LEN): New.
3270         (EXTRA_CONSTRAINT): Delete.  Replace with...
3271         (EXTRA_CONSTRAINT_STR): ... this.
3272         (PREDICATE_CODES): Remove bad_signed_byte_operand.
3273         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
3274         is now always default.
3275         (define_splits for bad sign-extend loads): Delete.
3276         (arm_extendqisi, arm_extendqisi_v5): Likewise.
3277         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
3278         Rework 'U' constraint to 'Uv'.
3279         * arm-protos.h: Remove bad_signed_byte_operand.  Add
3280         arm_extendqisi_mem_op.
3281         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
3282         Add Uq constraint.
3283
3284 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
3285
3286         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
3287         with targetm version.
3288
3289         PR target/14567
3290         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
3291         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
3292         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
3293         Update all users of RS6000_ARG_SIZE.
3294         (function_arg_advance): Count fregno using mode size.
3295         (function_arg): Handle long double split over regs and memory.
3296         (function_arg_partial_nregs): Likewise.
3297         (rs6000_va_arg): Repackage complex args.
3298
3299 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
3300
3301         PR target/14047
3302         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
3303         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
3304         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
3305
3306 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
3307
3308         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
3309         prototype.
3310         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
3311         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
3312
3313 2003-03-12  Andrew Pinski  <apinski@apple.com>
3314
3315         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
3316         Use ret instead of result. Use addr instead of base.
3317
3318 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
3319
3320         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
3321         fixes required by libstdc++ and update installation instructions
3322         for libstdc++.a.
3323
3324 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
3325
3326         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
3327         leading '@' on fastcall symbols before stripping suffix.
3328
3329 2004-03-12  Roger Sayle  <roger@eyesopen.com>
3330
3331         * combine.c (unmentioned_reg_p): New function to check whether an
3332         expression is a "specialization" of another, i.e. that there are
3333         no registers or memory references mentioned in the first that don't
3334         appear in the second.
3335         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
3336         (combine_instructions): Also try combining instructions using the
3337         REG_EQUAL note from a preceding log-linked instruction.
3338
3339 2004-03-12  Roger Sayle  <roger@eyesopen.com>
3340
3341         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
3342
3343 2004-03-12  Matt Austern  <austern@apple.com>
3344
3345         * target.h (struct gcc_target): New target hook, unwind_label.
3346         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
3347         * output.h (default_emit_unwind_label): New function.
3348         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
3349         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
3350         (TARGET_SUPPORTS_HIDDEN): New target macro.
3351         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
3352         that corresponds to this FDE.
3353         (FRAME_BEGIN_LABEL): Allow target to override default label.
3354         (output_call_frame_info): If FDEs are linknonce, then use extra
3355         indirection for FDE encoding, output a label for each FDE, and
3356         output an empty label for each function without an FDE.
3357         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
3358         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
3359         decls with DECL_ONE_ONLY set, if that macro is defined.
3360         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
3361         for a SUPPORTS_ONE_ONLY target.
3362         * config/darwin-protos.h (darwin_unique_section): Declare.
3363         (darwin_asm_named_section): Likewise.
3364         (darwin_section_type_flags): Likewise.
3365         (darwin_non_lazy_pcrel): Likewise.
3366         (darwin_emit_unwind_label): Likewise.
3367         (darwin_make_decl_one_only): Likewise.
3368         * config/darwin.c (machopic_finish): Get rid of tweak that
3369         eliminate stubs for symbols that are defined.
3370         (darwin_encode_section_info): Don't treat weak functions as defined.
3371         (darwin_make_decl_one_only): Define.
3372         (darwin_asm_named_section): Likewise.
3373         (darwin_section_type_flags): Likewise.
3374         (darwin_unique_section): Likewise.
3375         (darwin_emit_unwind_label): Likewise.
3376         (darwin_non_lazy_pcrel): Likewise.
3377         (darwin_asm_output_dwarf_delta): Difference between two labels is
3378         local only if both labels are local.
3379         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
3380         (ASM_MAKE_LABEL_LINKONCE): Likewise.
3381         (TARGET_SUPPORTS_HIDDEN): Likewise.
3382         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
3383         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
3384         (FRAME_BEGIN_LABEL): Likewise.
3385         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
3386         (ASM_DECLARE_FUNCTION_NAME): Likewise.
3387         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
3388         (TARGET_ASM_UNIQUE_SECTION): Define.
3389         (EH_FRAME_SECTION_NAME): Define.
3390         (EH_FRAME_SECTION_ATTR): Likewise.
3391         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
3392         (TARGET_ASM_NAMED_SECTION): Likewise.
3393         (TARGET_SECTION_TYPE_FLAGS): Likewise.
3394         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
3395         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
3396         TARGET_ASM_EMIT_UNWIND_LABEL.
3397
3398 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3399
3400         * builtins.c (expand_builtin_mathfn): Add pow10* to the
3401         existing exp10* case.
3402         (expand_builtin): Likewise.
3403
3404 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
3405
3406         * doc/tm.texi (registers) <Values in Registers>: Add
3407         entry for REGMODE_NATURAL_SIZE.
3408
3409 2004-03-12  Richard Henderson  <rth@redhat.com>
3410
3411         PR target/14547
3412         * target.h (struct gcc_target): Move calls substructure before
3413         booleans.  Add split_complex_arg.
3414         * function.c (assign_parms, split_complex_args): Use it.
3415         * calls.c (expand_call): Likewise.
3416         (split_complex_values): Likewise.  Check for splittable types
3417         before allocating memory.
3418         (split_complex_types): Likewise.
3419         * system.h (SPLIT_COMPLEX_ARGS): Poison.
3420         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
3421         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
3422         * config/alpha/alpha.c (alpha_split_complex_arg): New.
3423         (TARGET_SPLIT_COMPLEX_ARG): New.
3424         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
3425         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
3426         (rs6000_override_options): Zap it for non-AIX.
3427         (rs6000_function_value): Use targetm.calls.split_complex_arg.
3428         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
3429         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
3430         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
3431         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
3432         SPLIT_COMPLEX_ARGS entry.
3433
3434 2004-03-11  Richard Henderson  <rth@redhat.com>
3435
3436         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
3437         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
3438         (alpha_emit_xfloating_arith): Update to match.
3439         (alpha_emit_xfloating_compare): Likewise.
3440         (alpha_emit_xfloating_cvt): Likewise.
3441         (alpha_emit_xfloating_libcall): Take already built symbol,
3442         mark call const.
3443         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
3444         op1 in a register.
3445
3446 2004-03-11  Richard Henderson  <rth@redhat.com>
3447
3448         PR target/14539
3449         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
3450
3451         * simplify-rtx.c (simplify_relational_operation): Fix typo.
3452
3453 2004-03-11  Richard Henderson  <rth@redhat.com>
3454
3455         PR middle-end/14477
3456         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
3457
3458 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
3459
3460         PR target/14262
3461         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
3462         defined, pass small BLKmode values in registers in the low-order part.
3463
3464 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
3465
3466         * combine.c (if_then_else_cond): Check for NULL return value of
3467         simplify_gen_subreg.
3468
3469 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
3470
3471         PR target/14496
3472         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
3473         TARGET_SINGLE_FLOAT.
3474
3475 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
3476
3477         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
3478         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
3479         * config/ia64/ia64.c (ia64_init_libfuncs): New.
3480         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
3481
3482 2004-03-11  Roger Sayle  <roger@eyesopen.com>
3483
3484         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
3485         -((int)X>>C) where C is an integer constant one bit less than the
3486         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
3487         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
3488
3489         * simplify-rtx.c (simplify_unary_operation): Also implement the
3490         above transformations at the RTL level.
3491
3492 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
3493
3494         * real.c (encode_ibm_extended): Do round low word.
3495
3496 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
3497
3498         * config/arm/arm.md (is_xscale): Comment this attribute and move
3499         it a bit further up in the file, closer to related attributes.
3500
3501 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
3502
3503         * config/host-solaris.c (sol_gt_pch_use_address): Add
3504         missing terminating marker to comment.
3505
3506 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
3507
3508         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
3509         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
3510         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
3511         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
3512         move_operand as source predicate in all cases.
3513         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
3514         Test reg_or_0_operand.  Use move_operand as source predicate.
3515         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
3516         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
3517         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
3518         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
3519         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
3520         Use move_operand as source predicate.  Remove 'K' constraint.
3521         (*movqi_internal): Likewise movqi_internal.
3522         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
3523         reg_or_0_operand.  Use move_operand as source predicate.
3524         (*movsf_softfloat): Likewise movsf_internal2.
3525         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
3526         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
3527         (*movdf_softfloat): Likewise movdf_internal2.
3528         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
3529         for DImode if !TARGET_64BIT.
3530         (mips_legitimize_move): Simplify accordingly.
3531
3532 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
3533
3534         PR/14362
3535         * var-tracking.c (struct variable_def): Added field refcount.
3536         (variable_htab_free): Decrease the refcount and delete variable
3537         only if there are no more references.
3538         (unshare_variable): New function.
3539         (vars_copy_1): Increase refcount instead of copying the variable.
3540         (variable_union): Share the variables where possible, unshare
3541         the variables if needed.
3542         (variable_different_p): Return false if var1 and var2 are
3543         the same structure.
3544         (variable_was_changed): Init the refcount of new variable.
3545         (set_frame_base_location): Unshare variable if needed.
3546         (set_variable_part): Init the refcount of new variable.
3547         Unshare the variables if needed.
3548         (delete_variable_part): Unshare the variables if needed.
3549         (emit_notes_for_differences_1): Init the refcount of new variable.
3550         (vt_add_function_parameters): Do not add function parameters to
3551         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
3552         (vt_initialize): Do not add frame_base_decl to IN set of
3553         ENTRY_BLOCK_PTR because it is unused anyway.
3554
3555 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
3556
3557         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
3558         (vars_copy): Likewise.
3559         (variable_union): Likewise.
3560         (set_variable_part): Likewise.
3561         (delete_variable_part): Likewise.
3562
3563 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
3564
3565         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
3566         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
3567         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
3568         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
3569         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
3570         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
3571         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
3572         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
3573         config/stormy16/stormy16.c: Fix comment typos and formatting.
3574
3575 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
3576
3577         * configure: Regenerate, since I forgot to while committing Paolo's
3578         changes.
3579
3580 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
3581
3582         PR ada/14131
3583         Move language detection to the top level.
3584         * configure.ac: Remove code to detect languages,
3585         it now lives exclusively in the top level.
3586         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
3587         top level, renamed to ACX_PROG_GNAT.
3588
3589 2004-03-10  Richard Henderson  <rth@redhat.com>
3590
3591         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
3592         extra arguments.
3593         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
3594         and host_xmake_file fragments.
3595         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
3596         (gt_pch_restore): Similarly for gt_pch_use_address.
3597         (default_gt_pch_get_address): New.
3598         (mmap_gt_pch_get_address): Split out of gt_pch_save.
3599         (default_gt_pch_use_address): Split out of gt_pch_restore.
3600         (mmap_gt_pch_use_address): Likewise.
3601         * hooks.c (hook_voidp_size_t_null): Remove.
3602         (hook_bool_voidp_size_t_false): Remove.
3603         * hooks.h: Likewise.
3604         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
3605         default_ or mmap_ definitions.
3606         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
3607         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
3608         and gt_pch_use_address.
3609         * config/host-linux.c, config/host-solaris.c: New files.
3610         * config/x-linux, config/x-solaris: New files.
3611         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
3612         Update for changed definition.
3613         (darwin_rs6000_gt_pch_use_address): Likewise.
3614         * doc/hostconfig.texi: Update docs.
3615
3616 2004-03-10  Richard Henderson  <rth@redhat.com>
3617
3618         PR c/14517
3619         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
3620         except for pedantic c90 mode.
3621
3622 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
3623
3624         * configure.ac: Bump AC_PREREQ to 2.59.
3625         * configure: Regenerate.
3626
3627 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
3628
3629         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
3630         (exp10_optab, exp2_optab): Define corresponding macros.
3631         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
3632         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
3633         using exp10?f2 and exp2?f2 patterns.
3634         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
3635         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
3636         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
3637         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
3638
3639         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
3640         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
3641         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
3642
3643 2004-03-10  Anthony Green  <green@redhat.com>
3644
3645         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
3646
3647 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
3648
3649         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
3650         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
3651         __LONGDOUBLE128.
3652         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
3653         TARGET_OS_AIX_CPP_BUILTINS.
3654         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
3655         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
3656         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
3657         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
3658         previous change.
3659
3660 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3661
3662         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
3663
3664 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
3665
3666         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
3667         __LONGDOUBLE128 on AIX.
3668
3669 2004-03-10  Andrew Haley  <aph@redhat.com>
3670
3671         PR optimization/14381
3672         * function.c (expand_function_end): Emit a blockage insn before
3673         the epilogue when -fnon-call-exceptions is used.
3674
3675         * except.c (expand_start_all_catch): Make comment more accurate.
3676
3677 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
3678
3679         PR target/14480
3680         * config/rs6000/t-rtems: Add missing file on branch.
3681
3682 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
3683
3684         * dbxout.c (dbxout_symbol_location): Do not output references
3685         to optimized-out constant pool symbols.
3686
3687 2004-03-10  Andreas Schwab  <schwab@suse.de>
3688
3689         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
3690         twon34_r.
3691
3692 2004-03-09  James E Wilson  <wilson@specifixinc.com>
3693
3694         * alias.c (alias_sets_might_conflict_p): New.
3695         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
3696         * common.opt (Wstrict-aliasing=): New.
3697         * flags.h (warn_strict_aliasing): Change type to int.
3698         * opts.c (warn_strict_aliasing): Change type to int.
3699         (common_handle_option): Handle OPT_Wstrict_aliasing_.
3700         * tree.h (alias_sets_might_conflict_p): Declare it.
3701         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
3702
3703 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
3704
3705         PR bootstrap/12371
3706         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
3707         (CALL_USED_REGISTERS): Likewise.
3708         (REG_CLASS_CONTENTS): Likewise.
3709         (REG_ALLOC_ORDER): New.
3710         (REGNO_REG_CLASS): Use regno_reg_class.
3711         * config/m68k/m68k.c: Add regno_reg_class array.
3712
3713 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
3714
3715         * config/ia64/ia64.md (divsi3): Fix algorithm.
3716           (udivsi3): Ditto.
3717           (setf_exp_xf): Remove '*' from name.
3718         * testsuite/gcc.dg/20040309-1.c: New test.
3719
3720 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
3721
3722         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
3723         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
3724         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
3725         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
3726         (sparc_aout_select_rtx_section): Don't check
3727         SUNOS4_SHARED_LIBRARIES.
3728         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
3729
3730 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
3731
3732         PR other/14474
3733         * doc/md.texi (Pattern Ordering, Dependent Patterns)
3734         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
3735         INTERNALS".
3736
3737 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
3738
3739         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
3740         (LIBGCC_SPEC): Update to match.
3741
3742 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
3743
3744         * c-decl.c (last_function_parms, last_function_parm_tags)
3745         (last_function_parm_others, current_function_parms)
3746         (current_function_parm_tags, current_function_parm_others):
3747         Delete.
3748         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
3749         New macros.
3750         (grokdeclarator): For function definitions, save the arg-info
3751         block from the declarator in DECL_ARGUMENTS.
3752         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
3753         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
3754         contains only PARM_DECLs.  Improve diagnostics.
3755         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
3756         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
3757         (store_parm_decls_newstyle): Take the function to operate on,
3758         and an arg-info block, as arguments; don't get anything from
3759         current_function_* globals.
3760         (store_parm_decls_oldstyle): Likewise.
3761         (store_parm_decls): Pass fndecl and its arg-info block down to
3762         store_parm_decls_newstyle/oldstyle.  Send functions with empty
3763         argument lists through store_parm_decls_newstyle to reduce
3764         overhead.
3765         (pushdecl): Comment on the problems with the call to copy_node.
3766         Clear DECL_ARGUMENTS of the old node after copying it, if it
3767         is an arg-info block instead of a chain of decls.
3768         (start_function): Do not manipulate current_function_parm* or
3769         last_function_parm*.
3770
3771 2004-03-09  Roger Sayle  <roger@eyesopen.com>
3772             Andrew Pinski  <pinskia@physics.uc.edu>
3773
3774         * ifcvt.c (noce_try_sign_mask): New function to transform
3775         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
3776         (noce_process_if_block): Call noce_try_sign_mask.
3777
3778 2004-03-09  Andrew Pinski  <apinski@apple.com>
3779
3780         * c-typeck.c (tagged_types_tu_compatible_p):
3781         Fix typo.
3782
3783 2004-03-09  Roger Sayle  <roger@eyesopen.com>
3784
3785         * simplify-rtx.c (simplify_const_relational_operation): New function
3786         renamed from simplify_relational_operation.
3787         (simplify_relational_operation): Change prototype to accept an
3788         additional mode argument.  Call simplify_const_relational_operation.
3789         (simplify_gen_relational): Update simplify_relational_operation call.
3790         (simplify_ternary_operation): Update simplify_relational_operation
3791         subroutine call to use simplify_const_relational_operation instead.
3792
3793         * rtl.h (simplify_const_relational_operation): Prototype here.
3794         (simplify_relational_operation): Add addtional mode argument.
3795
3796         * combine.c (combine_simplify_rtx): Update calls to
3797         simplify_relational_operation.
3798         (simplify_set): Likewise.
3799         (gen_binary): Likewise.
3800         * cse.c (fold_rtx): Likewise.
3801         * dojump.c (compare_from_rtx): Likewise.
3802         (do_compare_rtx_and_jump): Likewise.
3803         * integrate.c (subst_constants): Likewise.
3804         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
3805
3806 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
3807
3808         * config/m32r/m32r.md: Remove all define_peephole's.
3809
3810 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
3811
3812         * config/rs6000/rs6000.md: Remove trailing whitespace.
3813
3814 2004-03-08  Eric Christopher  <echristo@redhat.com>
3815
3816         * Makefile.in (site.exp): Add libiconv variable definition.
3817
3818 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
3819
3820         * configure: Regenerate for config/accross.m4 correction.
3821
3822 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
3823
3824         PR target/14480
3825         * config/rs6000/t-rtems: Add missing file on branch.
3826
3827 2004-03-08  Roger Sayle  <roger@eyesopen.com>
3828
3829         PR middle-end/14289
3830         * c-typeck.c (c_mark_addressable): A register variable should
3831         be considered global if its not automatic, i.e. TREE_PUBLIC,
3832         TREE_STATIC or DECL_EXTERNAL.
3833         * function.c (put_var_into_stack): Call abort when placing a
3834         hard register into the stack, if x_parm_reg_stack_loc is NULL.
3835
3836 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
3837
3838         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
3839         ("*extendqisi2_short_displ"): Likewise.
3840
3841 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
3842
3843         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
3844         (comp_operator): Likewise.
3845         * config/pdp11/pdp11-protos.h: Remove corresponding
3846         prototypes.
3847
3848 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
3849
3850         * expr.c (highest_pow2_factor_for_type): Rename into
3851         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
3852         TYPE_ALIGN when the target is a COMPONENT_REF.
3853         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
3854
3855 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
3856
3857         * config/rs6000/rs6000.c: Formatting fix.
3858         (legitimate_offset_address_p): Correct offset range check.
3859
3860         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
3861         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
3862         and MASK_STRING.
3863
3864 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
3865
3866         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
3867         for little endian.
3868         ("ashrdi3_no_power"): Disable for little endian.
3869         (ashrdi3): Same.
3870
3871 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3872
3873         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
3874         builtins.
3875
3876 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
3877
3878         PR target/14471
3879         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
3880         case, checking for -no-mul-bug-abort option.
3881         * configure, config.in: Regenerate.
3882         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
3883         and -mno-mul-bug-workaround.
3884         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
3885         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
3886         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
3887         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
3888         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
3889         sure mulu.d is not last on cache-line.
3890         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
3891         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
3892         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
3893         (TARGET_SWITCHES): New options -mmul-bug-workaround and
3894         -mno-mul-bug-workaround.
3895         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
3896         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
3897         * config/cris/cris.c (cris_operand_extend_operator): Clarify
3898         relation to MULT in head comment.
3899         (cris_op_str): Abort for MULT.
3900         (cris_print_operand) <case '!'>: New case.
3901
3902 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
3903
3904         PR debug/11983
3905         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
3906         dw_val_class_vec.  Replace use throughout file.
3907         (dw_float_const): Delete.
3908         (dw_vec_const): New.
3909         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
3910         throughout file.
3911         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
3912         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
3913         (size_of_die): Adjust dw_val_class_vec sizing.
3914         (output_die): Output dw_val_class_vec.
3915         (insert_int, extract_int, insert_float): New functions.
3916         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
3917         Handle CONST_VECTOR.
3918         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
3919
3920 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
3921
3922         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
3923         AltiVec abi cannot co-exist.
3924
3925         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
3926
3927 2004-03-07  Jan Hubicka  <jh@suse.cz>
3928
3929         * except.c (emit_to_new_bb_before):  Break fallthru edges.
3930
3931 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
3932
3933         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
3934         ("*lshrsi3"): Also accept an immediate for 68HC12.
3935         ("*ashrsi3_const"): Likewise.
3936         ("*ashrsi3"): Likewise.
3937         ("*ashlsi3_const"): Likewise.
3938         ("*ashlsi3"): Likewise.
3939         ("cmphi_1_hc12"): Compare two hard register by pushing them and
3940         comparing with a pop; don't use a split for that.
3941         ("cmphi split"): Disable compare split for 68HC12.
3942
3943         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
3944         the status operands if they have side effects.
3945
3946 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
3947
3948         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
3949         definition.
3950         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
3951         config/h8300/h8300.h, config/ia64/ia64.h,
3952         config/mcore/mcore.h, config/mmix/mmix.h,
3953         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
3954         config/stormy16/stormy16.h, config/v850/v850.h,
3955         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
3956         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
3957         definition.
3958
3959 2004-03-07  Roger Sayle  <roger@eyesopen.com>
3960
3961         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
3962         <XOR_EXPR>: Fold x ^ x as zero.
3963         <AND_EXPR>: Fold x & x as x.
3964
3965 2004-03-07  Roger Sayle  <roger@eyesopen.com>
3966
3967         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
3968         "foo++ == const" into "++foo == const+incr".
3969
3970 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
3971
3972         * config/mips/mips.c (mips_in_small_data_p): Return false if
3973         TARGET_ABICALLS.
3974
3975 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
3976
3977         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
3978         the stack register.
3979         (expand_prologue): Don't make an interrupt or a trap handler a far
3980         symbol.
3981         (m68hc11_initial_elimination_offset): Likewise.
3982
3983 2004-03-06  Richard Henderson  <rth@redhat.com>
3984
3985         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
3986
3987 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
3988
3989         * config/ns32k/ns32k-protos.h: Add a prototype for
3990         ns32k_notice_update_cc.
3991         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
3992         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
3993         ns32k_notice_update_cc.
3994
3995 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
3996
3997         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
3998         "*load_multiple_si"): Allow only if reload_completed.
3999         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
4000         Likewise.
4001
4002 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
4003
4004         * config/vax/vax-protos.h: Add a prototype for
4005         vax_notice_update_cc.
4006         * config/vax/vax.c (vax_notice_update_cc): New.
4007         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
4008         vax_notice_update_cc.
4009
4010 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
4011
4012         * collect2.c (main): Only export initfunc and finifunc if
4013         LD_INIT_SWITCH not defined.
4014         (scan_prog_file): Only export constructors and destructors if
4015         LD_INIT_SWITCH not defined.  Only export symbols not found in
4016         shared objects.
4017
4018 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4019
4020         * pa.md (icacheflush): Reorder operands to make match_scratch operand
4021         last.
4022         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
4023         from calls to gen_icacheflush.
4024
4025 2004-03-06  Richard Henderson  <rth@redhat.com>
4026
4027         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
4028         (TARGET_LONG_DOUBLE_128): New.
4029         (TARGET_SWITCHES): Add long-double-{128,64}.
4030         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
4031         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
4032         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
4033         (WIDEST_HARDWARE_FP_SIZE): New.
4034         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
4035         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
4036         if TARGET_VAX_FLOAT.
4037         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
4038         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
4039
4040 2004-03-06  Richard Henderson  <rth@redhat.com>
4041
4042         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
4043         botched rtx class conversion.
4044
4045 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4046
4047         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
4048         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
4049
4050         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
4051         macros.
4052         * fold-const.c (fold_mathfn_compare, fold): Likewise.
4053
4054 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
4055
4056         PR target/14343
4057         * config/i386/i386.md (movv2di_internal): Conditionalize on
4058         TARGET_SSE, not TARGET_SSE2.
4059
4060 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
4061
4062         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
4063         duplicated line.
4064
4065 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
4066
4067         * builtins.c: Consistently use logN not log* in comments.
4068
4069 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
4070
4071         * rtl.h (mem_expr_equal_p): Function prototype added.
4072         * cfgcleanup.c (merge_memattrs): New function.
4073         (flow_find_cross_jump): Call merge_memattrs for matching insns.
4074         * emit-rtl.c (mem_expr_equal_p): New function.
4075
4076 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
4077
4078         * objc/objc-act.c (synth_module_prologue): Const-qualify
4079         objc_selector type if using the GNU runtime; fix generated
4080         signatures for objc_msg_lookup and objc_msg_lookup_super
4081         to match what GNU ObjC headers provide; reformat and clean up.
4082         (synth_self_and_ucmd_args): Use previously constructed (and
4083         hence possibly const-qualified) objc_selector type.
4084
4085 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
4086
4087         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
4088
4089 2004-03-05  Jason Merrill  <jason@redhat.com>
4090
4091         * tree.h (TYPE_HASH): Use TYPE_UID.
4092         (TREE_HASH): New macro with old definition of TYPE_HASH.
4093         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
4094         (build_array_type, build_function_type): Likewise.
4095         (build_method_type_directly): Likewise.
4096         (build_offset_type, build_complex_type): Likewise.
4097         (type_hash_list, attribute_hash_list): Likewise. Now static.
4098         * except.c: s/TYPE_HASH/TREE_HASH/.
4099
4100 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
4101
4102         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
4103         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
4104         __va_ndx by 2 words when referencing an argument on the stack.
4105         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
4106         words when an arg on the stack is first seen.
4107
4108 2004-03-05  Paul Brook  <paul@codesourcery.com>
4109
4110         * arm.h (ARM_FLAG_VFP): Remove.
4111         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
4112         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
4113
4114 2004-03-05  Paul Brook  <paul@codesourcery.com>
4115
4116         * function.c (assign_parms): Include pretend alignment offset.
4117
4118 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4119
4120         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
4121         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
4122
4123 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
4124
4125         * configure.ac: When passing --enable-languages to subdir
4126         configure when host != build, make sure we don't pass an empty
4127         value.
4128         * configure: Regenerate.
4129
4130 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
4131
4132         PR 13577
4133         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
4134         options.
4135
4136 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
4137
4138         * simplify-rtx.c (simplify_relational_operation): If
4139         flag_wrapv is set, do not move terms between the two
4140         side of a relational operator.
4141
4142 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
4143
4144         * rtlanal.c: Include target.h and output.h
4145         (rtx_cost, address_cost, default_address_cost): Move from...
4146         * cse.c (rtx_cost, address_cost, default_address_cost):
4147         ... this file.
4148         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
4149         * Makefile.in: Adjust dependencies.
4150
4151 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
4152
4153         * cse.c (cse_end_of_basic_block): Make static.
4154         * local-alloc.c (function_invariant_p): Move to
4155         reload1.c.
4156         * loop.c (libcall_other_reg, record_excess_regs):
4157         Make static.
4158         * reload1.c (function_invariant_p): Moved here
4159         from local-alloc.c, made static.
4160         * rtl.h (cse_end_of_basic_block, function_invariant_p,
4161         libcall_other_reg, record_excess_regs): Remove
4162         declarations.
4163
4164 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
4165
4166         * config/m32r/m32r.c (signed_comparison_operator): Add a
4167         missing parenthesis.
4168
4169 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
4170
4171         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
4172         going to call mmap again.  Read the file into the right place.
4173         Give a fatal error if we have to relocate.
4174
4175 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
4176
4177         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
4178         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
4179
4180 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
4181
4182         PR other/14354
4183         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
4184         round the same.  When rounding, clear bits that would cause a
4185         second rounding in pack_d.
4186         (_fpmul_parts): Ditto.  Remove #if 0:d code.
4187
4188 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
4189
4190         PR c++/14425, c++/14426
4191         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
4192         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
4193         Change C++ definitions to accept a 'const int' argument;
4194         the prototypes already do.
4195         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
4196         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
4197         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
4198         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
4199         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
4200         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
4201         end in ..._int; change them to accept an int instead of a char
4202         as the last parameter.
4203
4204 2004-03-04  Phil Edwards  <phil@codesourcery.com>
4205
4206         * genmultilib:  Change '=' to '-' when translating option names
4207         to directory names.
4208
4209 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4210
4211         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
4212         stack slot for temp used for result of BLKmode but in integral mode.
4213
4214 2004-03-04  Jan Hubicka  <jh@suse.cz>
4215
4216         * reload.c (find_reloads): Reorganize if seqeunce to switch.
4217
4218         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
4219         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
4220
4221 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
4222
4223         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
4224         * testsuite/gcc.dg/20040303-1.c: New test.
4225
4226 2004-03-04  Steven Bosscher  <stevenb@suse.de>
4227
4228         * ppro.md: Rewrite as a DFA pipeline description.
4229         * i386.md: Remove all uses of the ppro_uops attribute.
4230         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
4231         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
4232         ix86_sched_reorder, ix86_variable_issue,
4233         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
4234         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
4235         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
4236         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
4237         * athlon.md (athlon_ssecmp_load): Fix comment
4238
4239 2004-03-04  Stuart Hastings  <stuart@apple.com>
4240
4241         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
4242
4243 2004-03-04  Stuart Hastings  <stuart@apple.com>
4244
4245         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
4246         686, tell Darwin assembler to allow prefetch insns, non-empty def
4247         of SUBTARGET_OPTION_TRANSLATE_TABLE.
4248
4249 2004-03-04  DJ Delorie  <dj@redhat.com>
4250
4251         PR optimization/14282
4252         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
4253         between a call and the assignment of its return value.
4254
4255 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
4256
4257         * config/h8300/h8300.c: Put a comment for every function.
4258
4259 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
4260
4261         * config/h8300/h8300.md: Add comments about peephole2's.
4262
4263 2004-03-04  Steven Bosscher  <stevenb@suse.de>
4264
4265         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
4266
4267 2004-03-04  Jan Hubicka  <jh@suse.cz>
4268
4269         * cfgcleanup.c (thread_jump): Update call of cselib_init.
4270         * cselib.c (cselib_record_memory): New static variable.
4271         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
4272         Give up on memories when asked for.
4273         (cselib_init): Accept new argument.
4274         * cselib.h (cselib_init): Update prototype.
4275         * gcse.c (local_cprop_pass): Update call of cselib_init.
4276         * loop.c (load_mems): Update call of cselib_init.
4277         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
4278         * sched-deps.c (sched_analyze): Update call of cselib_init.
4279
4280 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
4281             GP <gp@qnx.com>
4282
4283         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
4284         when compiling PIC.
4285
4286 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
4287
4288         PR/14362
4289         * var-tracking.c (track_expr_p): Do not track variables which
4290         should be ignored for debugging purposes.
4291
4292 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
4293
4294         * real.c (encode_ibm_extended): Don't bother rounding low double.
4295         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
4296         when fmt->pnan < fmt->p.
4297
4298 2004-03-04  Eric Christopher  <echristo@redhat.com>
4299
4300         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
4301         only range of valid arg registers and fixed_regs.
4302
4303 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
4304
4305         PR target/14406
4306         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
4307         (abstf2, abstf2_internal): New define_expand.
4308
4309 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
4310
4311         PR optimization/14235
4312         * expr.c (convert_move): Copy the source to a new pseudo
4313         when converting from a sub-word source to a larger-than-word
4314         register which conflicts with the source.
4315
4316 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
4317
4318         PR 13728
4319         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
4320         parameters with the same name, unless one is a forward decl.
4321         Do not issue a redundant-redeclaration warning for forward
4322         decls of parameters.
4323
4324 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
4325
4326         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
4327         configuration.
4328
4329 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
4330
4331         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
4332
4333 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
4334
4335         * target-def.h (TARGET_OPTF): Delete.
4336         * c-opts.c (TARGET_OPTF): Define.
4337
4338 2004-03-04  Jan Hubicka  <jh@suse.cz>
4339
4340         * cselib.c (cselib_finish): Fix another miss-application of my previous
4341         patch.
4342
4343 2004-03-03  Mike Stump  <mrs@apple.com>
4344
4345         Add framework support for darwin.
4346
4347         * c-incpath.c: Include target.h and machmode.h.
4348         (add_path): Use a consistent style for cpp_dir.  Initialize
4349         p->construct to 0.
4350         (add_cpp_dir_path): New.
4351         (register_include_chains): Add use of extra_includes callback.
4352         (hook_void_int): Add.
4353         (target_c_incpath): Add.
4354         * c-incpath.h (add_cpp_dir_path): New.
4355         (target_c_incpath_s): Add.
4356         (target_c_incpath): Add.
4357         (C_INCPATH_INIT): Add.
4358         * c-opts.c (c_common_missing_argument,
4359         c_common_handle_option): Add -F argument processing.
4360         * c.opt: Add -F argument processing.
4361         * gcc.c (trad_capable_cpp): Add -F argument processing.
4362         * cppfiles.c (find_file_in_dir): Update to use construct
4363         callback.
4364         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
4365         cpp_get_prev): New.
4366         (_cpp_find_file): Use search_path_exhausted.
4367         (make_cpp_dir): Initialize construct to 0.
4368         * cpplib.h (missing_header_cb
4369         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
4370         (cpp_callbacks): Add missing_header
4371         (cpp_dir): Add construct.
4372         * target-def.h: (TARGET_OPTF): New.
4373         * hooks.c (hook_void_int, hook_void_charptr): Add.
4374         * hooks.h (hook_void_int, hook_void_charptr): Add.
4375         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
4376         $(MACHMODE_H) dependencies.
4377         * doc/invoke.texi (Darwin Options): Document -F.
4378         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
4379         (TARGET_OPTF): Add.
4380         * fix-header.c (target_c_incpath): Add.
4381
4382         * config/darwin-c.c: Add c-incpath.h include.
4383         (using_frameworks, find_subframework_file,
4384         find_subframework_header, add_system_framework_path,
4385         frameworks_in_use, num_frameworks, max_frameworks,
4386         add_framework, find_framework, struct framework_header,
4387         framework_header_dirs, framework_construct_pathname,
4388         find_subframework_file, add_system_framework_path,
4389         add_framework_path, framework_defaults,
4390         darwin_register_frameworks, find_subframework_header): Add.
4391         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
4392         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
4393         (CPP_SPEC): Add __APPLE_CC__ support.
4394         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
4395
4396 2004-03-04  Jan Hubicka  <jh@suse.cz>
4397
4398         * cselib.c (cselib_finish): Fix miss-application of my previous
4399         patch.
4400
4401 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
4402
4403         * hooks.c (hook_tree_tree_identity): New.
4404         * hooks.h: Add a prototype for hook_tree_tree_identity.
4405         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
4406         instead of MD_ASM_CLOBBERS.
4407         * system.h (MD_ASM_CLOBBERS): Poison.
4408         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
4409         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
4410         * target.h (gcc_target): Add md_asm_clobbers.
4411         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
4412         (ix86_md_asm_clobbers): New.
4413         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
4414         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
4415         TARGET_MD_ASM_CLOBBERS.
4416
4417 2004-03-03  Stuart Hastings  <stuart@apple.com>
4418
4419         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
4420
4421 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
4422
4423         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
4424
4425         * config/sparc/sparc.h (ASM_FLOAT): Delete.
4426         (ASM_DOUBLE): Likewise.
4427         (ASM_LONGDOUBLE): Likewise.
4428         * config/sparc/pbd.h (ASM_INT_OP): Delete.
4429
4430 2003-03-03  Richard Henderson  <rth@redhat.com>
4431
4432         PR opt/13862
4433         * cselib.c (cselib_record_sets): Don't record multiple sets in
4434         asm insns.
4435
4436 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
4437
4438         * common.opt: Add description of the new -fgcse-after-reload flag.
4439
4440         * flags.h (flag_gcse_after_reload): Declaration of global variable.
4441
4442         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
4443         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
4444         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
4445         get_bb_avail_insn, hash_scan_set_after_reload,
4446         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
4447         gcse_after_reload, get_bb_avail_insn): New functions to implement
4448         gcse-after-reload.
4449         (gcse_after_reload_main): New function, the main entry point to
4450         gcse-after-reload.
4451
4452         * rtl.h (gcse_after_reload_main): Declaration of the new function.
4453
4454         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
4455
4456         * toplev.c (flag_gcse_after_reload): Initialization.
4457
4458         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
4459
4460         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
4461         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
4462         the gcse after reload optimization.
4463
4464         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
4465         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
4466         parameters.
4467
4468         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
4469
4470 2004-03-03  Nicolas Pitre <nico@cam.org>
4471
4472         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
4473         small negative values.
4474
4475 2004-03-03  Jan Hubicka  <jh@suse.cz>
4476
4477         * cselib.c (hash_table):  Remove GTY marker.
4478         (reg_values): Turn into array.
4479         (used_regs): Likewise.
4480         (n_used_regs): New static variable.
4481         (reg_values_old): Kill.
4482         (clear_table): Update uses of arrays.
4483         (cselib_lookup): Likewise.
4484         (cselib_record_set): Likewise.
4485         (cselib_init): Likewise.
4486         (cselib_finish): Likewise.
4487         (cselib_udpate_varray_sizes): Kill.
4488         * cselib.h (cselib_update_varray_sizes): Kill.
4489
4490 2004-03-03  Paul Brook  <paul@codesourcery.com>
4491
4492         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
4493
4494 2004-03-03  Jan Hubicka  <jh@suse.cz>
4495
4496         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
4497         Rename from ...; make statistics transparent.
4498         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
4499         (loc_descriptor): New structure.
4500         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
4501         add_statistics):
4502         New static function.
4503         (ggc_record_overhead, dump_statistics): New global function.
4504         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
4505         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
4506         from ...; accept locations
4507         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
4508         ggc_realloc, ggc_alloc_typed):  ... this one.
4509         from ...; accept locations
4510         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
4511         ggc_alloc_stat): Rename from ... ; pass locations
4512         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
4513         ... this one.
4514         (ggc_alloc_stat): Record overehead.
4515         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
4516         ggc_realloc, ggc_alloc_typed):  Turn to macros
4517         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
4518         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
4519         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
4520         * langhooks.h (lhd_make_node): Declare.
4521         (LANG_HOOKS_MAKE_TYPE): Default to new function,
4522         * langhooks.c (lhd_make_node): New.
4523         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
4524         locations.
4525         (rtx_alloc, swallow_copy_rtx): ... this one.
4526         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
4527         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
4528         * toplpev.c (finalize): Dump stats.
4529         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
4530         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
4531         Rename from ... ; pass locators.
4532         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
4533         build?,  build_decl): Declare.
4534         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
4535         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
4536         Declare.
4537         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
4538         build?,  build_decl): New macros.
4539         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
4540         * statistics.h: New file.
4541
4542 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
4543             Richard Sandiford  <rsandifo@redhat.com>
4544
4545         * config/mips/mips.h (MASK_FIX_SB1): Bump.
4546         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
4547         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
4548         * config/mips/mips.c (mips_output_division): Fill the branch delay
4549         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
4550         TARGET_FIX_R4400.
4551         (mips_output_division): Adjust accordingly.
4552         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
4553         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
4554
4555 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
4556
4557         * alias.c (rtx_equal_for_memref_p): Use predicates
4558         to test rtx classes and new rtx class codes, possibly
4559         splitting conditionals that tested against '<' and 'o'.
4560         * caller-save.c (save_call_clobbered_regs): Likewise.
4561         * combine.c (contains_muldiv, find_split_point, subst,
4562         combine_simplify_rtx, simplify_if_then_else,
4563         simplify_set, simplify_logical, expand_compound_operation,
4564         make_compound_operation, if_then_else_cond, known_cond,
4565         apply_distributive_law, cached_nonzero_bits,
4566         cached_num_sign_bit_copies, simplify_shift_const,
4567         gen_binary, simplify_comparison, update_table_tick,
4568         record_value_for_reg, get_lsat_value_validate): Likewise.
4569         * cse.c (mention_regs, find_best_addr, find_comparison_args,
4570         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
4571         Likewise.
4572         * emit-rtl.c (copy_insn_1): Likewise.
4573         * expr.c (force_operand): Likewise.
4574         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
4575         * flow.c (notice_stack_pointer_modification_1,
4576         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
4577         and_reg_cond, elim_reg_cond): Likewise.
4578         * function.c (update_epilogue_consts): Likewise.
4579         * genattrtab.c (attr_rtx_1): Likewise.
4580         * genopinit.c (gen_insn): Likewise.
4581         * integrate.c (subst_constants): Likewise.
4582         * jump.c (reversed_comparison_code_parts,
4583         reversed_comparison_code, delete_related_insns,
4584         rtx_renumbered_equal_p): Likewise.
4585         * local-alloc.c (block_alloc): Likewise.
4586         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
4587         canonicalize_condition): Likewise.
4588         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
4589         Likewise.
4590         * optabs.c (add_equal_node, expand_binop): Likewise.
4591         * predict.c (estimate_probability): Likewise.
4592         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
4593         * recog.c (validate_replace_rtx_1, comparison_operator,
4594         offsettable_address_p, constrain_operands): Likewise.
4595         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
4596         Likewise.
4597         * regclass.c (scan_one_insn): Likewise.
4598         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
4599         * regrename.c (kill_autoinc_value): Likewise.
4600         * reload.c (find_reusable_reload, find_reloads,
4601         reg_overlap_mentioned_for_reload_p): Likewise.
4602         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
4603         * rtl.c (copy_rtx): Likewise.
4604         * rtl.h (CONSTANT_P, INSN_P): Likewise.
4605         * rtlanal.c (commutative_operand_precedence): Likewise.
4606         * sched-deps.c (conditions_mutex_p): Likewise.
4607         * sched-rgn.c (is_cfg_nonregular): Likewise.
4608         * simplify-rtx.c (simplify_gen_binary,
4609         simplify_gen_relational, simplify_replace_rtx,
4610         simplify_unary_operation, simplify_binary_operation,
4611         simplify_ternary_operation, simplify_rtx): Likewise.
4612         * unroll.c (reg_dead_after_loop): Likewise.
4613         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
4614         print_operand): Likewise.
4615         * config/arc/arc.c (proper_comparison_operator): Likewise.
4616         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
4617         Likewise.
4618         * config/avr/avr.c (_reg_unused_after): Likewise.
4619         * config/frv/frv.c (frv_ifcvt_modify_tests,
4620         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
4621         * config/i386/i386.c (ix86_comparison_operator,
4622         ix86_carry_flag_operator, fcmov_comparison_operator,
4623         arith_or_logical_operator, print_operand,
4624         ix86_expand_binary_operator, ix86_binary_operator_ok):
4625         Likewise.
4626         * config/i386/i386.md: Likewise.
4627         * config/ia64/ia64.c (not_postinc_memory_operand,
4628         ia64_print_operand, update_set_flags, errata_emit_nops):
4629         Likewise.
4630         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
4631         CONSTRAINT_OK_FOR_S): Likewise.
4632         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
4633         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
4634         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
4635         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
4636         Likewise.
4637         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
4638         eqne_comparison_operator, signed_comparison_operator):
4639         Likewise.
4640         * config/mips/mips.c (cmp_op, symbolic_expression_p):
4641         Likewise.
4642         * config/mmix/mmix (mmix_foldable_comparison_operator,
4643         mmix_comparison_operator): Likewise.
4644         * config/pa/pa.c (hppa_legitimize_address): Likewise.
4645         * config/rs6000/rs6000.c (stmw_operation,
4646         branch_comparison_operator, trap_comparison_operator,
4647         ccr_bit): Likewise.
4648         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
4649         * config/s390/s390.c (s390_alc_comparison,
4650         s390_slb_comparison):L Likewise.
4651         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
4652         Likewise.
4653         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
4654         noov_compare_op, noov_compare64_op, v9_regcmp_op,
4655         emit_hard_tfmode_operation, reg_unused_after)
4656         * doc/md.texi, doc/rtl.texi: Likewise.
4657
4658         * ra-debug.c: Add 2004 to list of copyright years.
4659         * unroll.c: Likewise.
4660
4661         * combine.c (simplify_logical): Remove dummy test,
4662         (apply_distributive_law): Fix typo in comment.
4663         GET_CODE (x) == AND so x is a commutative binary op.
4664         * jump.c (delete_related_insns): simplify loop
4665         condition, move testing of RTX codes inside the loop.
4666         (rtx_renumbered_equal_p): do not use RTX_CODE.
4667         * rtl.c (rtx_class): Declare as enum rtx_class.
4668         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
4669         Move to RTX_COMM_COMPARE class.
4670         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
4671         Move to RTX_CONST_OBJ class.
4672         * rtl.h (enum rtx_class): New declaration,
4673         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
4674         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
4675         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
4676         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
4677         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
4678         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
4679         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
4680         OBJECT_P): New macros.
4681         * config/sparc/sparc.c (noov_compare_op): Remove register
4682         from parameter.
4683
4684 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
4685
4686         * target.h: Remove texi jargons in comments.
4687
4688 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4689
4690         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
4691         threshold to 0x4f.
4692
4693         Revert:
4694         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
4695         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
4696         as well.
4697         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
4698         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
4699
4700 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4701
4702         * doc/md.texi (cbranchmode4): New.
4703
4704 2004-03-02  Eric Christopher  <echristo@redhat.com>
4705
4706         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
4707         fix_trunc.
4708         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
4709         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
4710         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
4711         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
4712
4713 2004-03-02  Richard Henderson  <rth@redhat.com>
4714
4715         PR middle-end/11767
4716         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
4717         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
4718         before the compare, if flag_non_call_exceptions.
4719
4720 2004-03-02  Richard Henderson  <rth@redhat.com>
4721
4722         PR middle-end/14327
4723         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
4724         emitting the label, not after.
4725
4726 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
4727
4728         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
4729         (m68hc11_mov_addr_mode): Likewise.
4730         (m68hc11_override_options): Initialize them based on target.
4731         (register_indirect_p): Allow a MEM for indirect addressing modes and
4732         use flags to control what is allowed.
4733         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
4734         supported addressing modes.
4735         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
4736         (go_if_legitimate_address_internal): Likewise.
4737         (m68hc11_indirect_p): Likewise and check the mode.
4738         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
4739
4740 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4741
4742         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
4743         (expand_builtin_setjmp_setup): Use
4744         targetm.builtin_setjmp_frame_value instead of
4745         BUILTIN_SETJMP_FRAME_VALUE.
4746         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
4747         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
4748         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
4749         * target.h (gcc_target): Add builtin_setjmp_frame_value.
4750         * targhooks.c (default_builtin_setjmp_frame_value): New.
4751         * targhooks.h: Add a prototype for
4752         default_builtin_setjmp_frame_value.
4753         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
4754         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
4755
4756 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
4757
4758         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
4759         sequences of moves.
4760         (add peepholes): New peepholes to optimize sequences adding small
4761         constants.
4762         (bset peepholes): New peepholes to transform an OR in a bset form
4763         (bclr peepholes): Likewise for bclr form.
4764         (cmp peepholes): New peepholes to avoid register copies when comparing.
4765
4766 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
4767
4768         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
4769         to separate push from moves.
4770         ("*pushdf_internal"): Likewise.
4771         ("*pushsf_internal"): Likewise.
4772         ("*pushsi_internal"): Likewise.
4773         ("movdi_internal"): Use define_insn_and_split; non push operand.
4774         ("movdf_internal"): Likewise.
4775         ("movsf_internal"): Likewise.
4776         ("movsi_internal"): Likewise.
4777         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
4778         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
4779         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
4780
4781 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
4782
4783         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
4784         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
4785         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
4786         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
4787         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
4788         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
4789         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
4790         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
4791         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
4792         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
4793         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
4794
4795 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
4796
4797         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
4798         (SOFT_XY_REGNUM): Define.
4799         (cmp split): Use the above instead of hard coded numbers.
4800         (8-bit op split): No need to check the mode; allow Q_REG.
4801         (ashift split): Adjust the first operand if it uses the SP and we
4802         are pushing the shifted value.
4803         (plus shift split): Fix when a source is in register D+X.
4804         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
4805
4806 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
4807
4808         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
4809         comparing with Z register.
4810
4811 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4812
4813         * cfgloop.h (struct loop_desc): Removed.
4814         (struct loop): Fields simple, desc and has_desc removed.
4815         (simple_loop_p, count_loop_iterations): Declaration removed.
4816         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
4817         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
4818         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
4819         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
4820         simple_loop_exit_p, variable_initial_value, variable_initial_values,
4821         simple_condition_p, simple_increment, count_strange_loop_iterations,
4822         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
4823         Removed.
4824         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
4825
4826 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4827
4828         * genattrtab.c: Don't handle MATCH_INSN.
4829         * genrecog.c: Likewise.
4830         * gensupport.c: Likewise.
4831         * rtl.def (match_insn): Remove.
4832         * doc/md.texi (match_insn, match_insn2): Remove.
4833
4834 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
4835
4836         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
4837         macro results in memory allocation.
4838
4839 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
4840
4841         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
4842         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
4843         %(fbsd_dynamic_linker),
4844         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
4845         config/i386/freebsd.h
4846         * config/arm/freebsd.h: Ditto.
4847         * config/i386/freebsd.h: Ditto.
4848         * config/i386/freebsd64.h: Ditto.
4849         * config/ia64/freebsd.h: Ditto.
4850         * config/rs6000/sysv4.h: Ditto.
4851         * config/sparc/freebsd.h: Ditto.
4852
4853 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
4854
4855         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
4856
4857 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4858
4859         * rtl.def (define_combine): Remove.
4860
4861 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4862
4863         * config/h8300/h8300.md: Tweak formatting.
4864
4865 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4866
4867         * config/h8300/h8300.md (*cmphi_h8300): Rename to
4868         *cmphi_h8300_znvc.
4869         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
4870
4871 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
4872
4873         PR bootstrap/14356
4874         * gcc.c (process_command): Remove const-qualification from argv.
4875         (main): Likewise.
4876
4877 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4878
4879         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
4880         pushqi1_h8300hs_advanced.  Adjust its caller.
4881         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
4882         Adjust its caller.
4883
4884 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
4885
4886         * Makefile.in (install-libgcc, install-multilib): Pass
4887         mkinstalldirs var to libgcc.mk.
4888
4889 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
4890
4891         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
4892         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
4893
4894 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
4895
4896         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
4897         * config/h8300/h8300.md: Split several peephole2's, each into
4898         two.
4899
4900 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4901
4902         * dominance.c (recount_dominator): Handle postdominators.
4903
4904 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
4905
4906         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
4907         (NUM_SYMBOL_TYPES): Likewise.
4908         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
4909         (mips_unspec_address): Declare.
4910         (mips_gotoff_page, mips_gotoff_global): Delete.
4911         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
4912         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
4913         (mips_symbolic_constant_p, mips_symbolic_address_p)
4914         (mips_symbol_insns): Handle new symbol types.
4915         (general_symbolic_operand): New predicate.
4916         (mips_unspec_address): Make extern.
4917         (mips_gotoff_page, mips_gotoff_global): Delete.
4918         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
4919         Handle new symbol types.
4920         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
4921         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
4922         mips_unspec_address directly.
4923         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
4924         the documentation of -mexplicit-relocs.
4925
4926 2004-03-01  Jeff Law  <law@redhat.com>
4927
4928         * fold-const.c (fold): An equality comparison of a non-weak object
4929         against zero has a known result.  Similarly an equality comparison
4930         of the address of two non-weak, unaliased symbols has a known result.
4931
4932         * ggc-page.c (struct page_entry): New field PREV.
4933         (ggc_alloc): Update PREV field appropriately.
4934         (sweep_pages): Likewise.
4935         (ggc_free): Likewise.  Use PREV field rather than loop to
4936         improve ggc_free performance.
4937
4938 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
4939
4940         * config/mips/mips.c (mips_output_division): Use the division
4941         instruction to fill the delay slot of a zero check.
4942         (mips_idiv_insns): Adjust accordingly.
4943
4944 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
4945
4946         * config.gcc: Create a default tmake_file for linux, and use
4947         it in all but two linux clauses.  Comment those two.
4948
4949 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
4950
4951         * combine.c (try_combine):  Do not refer to is_replaced.
4952         (gen_lowpart_for_combine):  Perverse subregs now have a
4953         more politically correct name.
4954         * cse.c (cse_insn): Likewise.
4955         * jump.c: Fix bogus reference to delete_insn.
4956
4957 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
4958
4959         PR debug/14328
4960         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
4961         constants as signed values.
4962
4963         PR middle-end/13448
4964         * c-tree.h (readonly_warning): Rename to ...
4965         (readonly_error): ... this.
4966         * c-typeck.c (build_unary_op): Adjust accordingly.
4967         (readonly_warning): Rename to ...
4968         (readonly_error): ... this and issue errors, not warnings.
4969         (build_modify_expr): Call readonly_error, not readonly_warning.
4970         (c_expand_asm_operands): Likewise.
4971         * tree-inline.c (optimize_inline_calls): Do not inline functions
4972         after errors have occurred.
4973
4974 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
4975
4976         * configure.ac: Rearrange some threading code for clarity;
4977         add section comment.
4978         * configure: Regenerate.
4979
4980 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4981
4982         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
4983         typos.
4984         * doc/cppopts.texi: Fix a typo.
4985
4986 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4987
4988         * config/i386/i386.md: Fix formatting.
4989
4990 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
4991
4992         * configure.ac: Add some comments delineating sections of code.
4993
4994         * doc/install.texi: Note that libada uses autoconf 2.57 also.
4995
4996         * doc/install.texi: Fix idiot typo in previous commit.
4997
4998         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
4999
5000 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
5001
5002         * config/h8300/h8300.md: Add comments about peephole2's.
5003
5004 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
5005
5006         * config/h8300/h8300.md: Tweak operand numbers of some
5007         peephole2's.
5008
5009 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
5010
5011         * config/h8300/h8300.md: Tweak comments about peephole2's.
5012
5013 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
5014
5015         PR middle-end/14203
5016         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
5017         instead of testing whether DECL_RTL is not NULL.
5018
5019 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
5020
5021         * config/sh/sh.c: Fix formatting.
5022
5023 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
5024
5025         * config/sh/sh.c: Convert to ISO-C.
5026
5027 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
5028
5029         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
5030         my previous patch.
5031
5032         * config/darwin.h (machopic_finish): Output stub even if the
5033         symbol is already defined.
5034
5035 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5036
5037         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
5038
5039 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
5040
5041         * genattr.c (main): Don't define
5042         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
5043         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
5044         (DFA_PIPELINE_INTERFACE): Likewise.
5045         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
5046         (DFA_PIPELINE_INTERFACE): Likewise.
5047
5048 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
5049
5050         * config/mips/mips.md (tstsi, tstdi): Delete.
5051
5052 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5053
5054         * config/mips/mips.c (override_options): Remove an obsolete
5055         duplicate definition of the "e" constraint.
5056         * config/mips/mips.h: Update a comment accordingly.
5057
5058 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5059
5060         * config/mips/mips.md: Complete the unfinished R4000
5061         multiply/shift errata workaround.  Improve documentation.
5062         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
5063         has a hilo hazard.
5064         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
5065         (muldi3, muldi3_internal): Likewise.
5066         (muldi3_internal2): Remove, replacing with...
5067         (muldi3_mult3, muldi3_r4000): ...these new patterns.
5068         (mulsidi3): Take the errata into account.
5069         (mulsidi3_32bit): Remove, replacing with...
5070         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
5071         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
5072         (umulsidi3): Take the errata into account.
5073         (umulsidi3_32bit): Remove, replacing with..
5074         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
5075         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
5076         TARGET_FIX_R4000.
5077         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
5078         (smuldi3_highpart, umuldi3_highpart): Likewise.
5079         * doc/invoke.texi: Document the errata workaround.
5080
5081 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5082
5083         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
5084         * config/mips/mips.h (MASK_FIX_SB1): Bump.
5085         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
5086         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
5087         * config/mips/mips.c (mips_idiv_insns): New function.
5088         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
5089         (mips_output_division): Add a workaround for the R4000 divide/shift
5090         errata.
5091         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
5092         the length of an "idiv" instruction.
5093         * doc/invoke.texi: Document the new switches.
5094
5095 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
5096
5097         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
5098         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
5099
5100 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5101
5102         PR optimization/14229
5103         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
5104
5105 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
5106
5107         * fold-const.c (fold): Strip NOPs that change the signedness
5108         for RSHIFT too.  Expand comment.
5109
5110 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
5111
5112         PR optimization/7871
5113         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
5114         from or to call insns.
5115
5116 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
5117
5118         PR optimization/7871
5119         * flow.c (propagate_one_insn): Interpret calls as setting global
5120         registers, not merely clobbering them.
5121
5122 2004-02-27  Dale Johannesen  <dalej@apple.com>
5123
5124         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
5125         config/darwin-protos.h:  Ditto.
5126         config/darwin.h:  Remove call to it.
5127         * combine.c (distribute_notes): Do not place a REG_DEAD note
5128         when value is both set and used.
5129
5130 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
5131
5132         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
5133         as well.
5134         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
5135         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
5136
5137 2004-02-27  Andrew Pinski  <apinski@apple.com>
5138
5139         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
5140         Speedup common case of the type values being in the same order.
5141
5142 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
5143
5144         * config/ia64/ia64.h (no-inline-float-divide): New option.
5145         * config/ia64/ia64.h (no-inline-int-divide): New option.
5146         * config/ia64/ia64.h (no-inline-sqrt): New option.
5147         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
5148         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
5149         * config/ia64/ia64.c (ia64_override_options): Modify error
5150         checking for inlined division/sqrt.
5151
5152 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
5153
5154         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
5155         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
5156         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
5157         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
5158         copyright.
5159
5160 2004-02-27  Paul Brook  <paul@codesourcery.com>
5161
5162         * function.c (assign_parms): Don't count pretend args for alignment.
5163
5164 2004-02-27  Richard Henderson  <rth@redhat.com>
5165
5166         * passes.c: New file.
5167         * Makefile.in (OBJS-common): Add it.
5168         * diagnostic.c (rtl_dump_and_exit): Move decl ...
5169         * flags.h (rtl_dump_and_exit): ... here.
5170         * output.h (size_directive_output, last_assemble_variable_decl):
5171         Move from toplev.c.
5172         * rtl.h (reg_alloc): Move from toplev.c.
5173         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
5174         struct dump_file_info, enum dump_file_index, dump_file_tbl,
5175         open_dump_file, close_dump_file, rest_of_decl_compilation,
5176         rest_of_type_compilation, rest_of_handle_final,
5177         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
5178         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
5179         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
5180         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
5181         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
5182         rest_of_handle_tracer, rest_of_handle_if_conversion,
5183         rest_of_handle_if_after_combine, rest_of_handle_web,
5184         rest_of_handle_branch_prob,
5185         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
5186         rest_of_handle_addressof, rest_of_handle_sibling_calls,
5187         rest_of_handle_jump_bypass, rest_of_handle_inlining,
5188         rest_of_handle_null_pointer, rest_of_handle_combine,
5189         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
5190         rest_of_handle_gcse, rest_of_handle_loop_optimize,
5191         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
5192         (decode_d_option): Use enable_rtl_dump_file.
5193         (compile_file, finalize, do_compile): Move profile+combine+graph
5194         cleanup to finish_optimization_passes.
5195         * toplev.h (init_optimization_passes, finish_optimization_passes,
5196         enable_rtl_dump_file): Declare.
5197
5198 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
5199             Roger Sayle  <roger@eyesopen.com>
5200
5201         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
5202         operands to build a tree with swapped operands.
5203         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
5204         'unsignedp' predicate to specify the signedness.
5205
5206 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
5207
5208         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
5209         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
5210         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
5211         comment typos and formatting.  Follow spelling conventions.
5212
5213 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
5214
5215         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
5216         fix_truncsfsi2.
5217
5218         * config/rs6000/spe.md: Delete spe_efsctuiz.
5219         Add spe_fixuns_truncsfsi2.
5220         Add spe_fix_truncsfsi2.
5221
5222 2004-02-26  Eric Christopher  <echristo@redhat.com>
5223
5224         * c-lex.c (c_lex_string_translate): New variable.
5225         (lex_string): Use to determine string translation.
5226         * c-pragma.h: Prototype.
5227         * c-parse.in (start_string_translation): New. Set above.
5228         (stop_string_translation): Ditto.
5229         (attribute, attribute_list, asm_def, asm_stmt,
5230         asm_operand): Use above functions.
5231         * cp/parser.c (cp_parser_declaration): Translate strings
5232         unless token is RID_EXTERN. Set c_lex_string_translate
5233         for recursive use.
5234         (cp_parser_asm_definition): Only translate argument strings
5235         to asms.
5236         (cp_parser_asm_operand_list): Ditto.
5237         (cp_parser_attribute_list): Do not translate attribute strings.
5238
5239 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
5240
5241         * stmt.c (expand_start_case_dummy): Remove.
5242         * tree.h: Remove the corresponding prototype.
5243
5244 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
5245
5246         * builtins.c (apply_args_register_offset): Remove.
5247         * tree.h: Remove the corresponding prototype.
5248
5249 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
5250
5251         * stor-layout.c (is_pending_size): Remove.
5252         * tree.h: Remove the corresponding prototype.
5253
5254 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
5255
5256         * recog.c (validate_replace_src): Remove.
5257         * recog.h: Remove the corresponding prototype.
5258
5259 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
5260
5261         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
5262         MAYBE_REG_PARM_STACK_SPACE.
5263         * function.c: Likewise.
5264         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
5265         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
5266         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
5267         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
5268
5269 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
5270
5271         * c-decl.c (c_expand_deferred_function): Remove.
5272         * c-tree.h: Remove the corresponding prototype.
5273
5274 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
5275
5276         * postreload.c (reload_cse_move2add): Generate just a PLUS
5277         instead of an entire SET.
5278
5279 2004-02-26  Jan Hubicka  <jh@suse.cz>
5280
5281         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
5282         /pentium4m.
5283         * i386.c (override_options): Add support for new CPUs.
5284         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
5285         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
5286         constants.
5287         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
5288
5289 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
5290
5291         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
5292
5293 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
5294
5295         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
5296         (sparc_emit_fixunsdi): New prototype.
5297         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
5298         (sparc_emit_fixunsdi): New function.
5299         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
5300         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
5301         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
5302         to sparc_emit_floatunsdi.
5303         (fixuns_truncsfdi2): New expander.
5304         (fixuns_truncdfdi2): Likewise.
5305
5306 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
5307
5308         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
5309         unless HAVE_cc0.
5310
5311 2004-02-25  Richard Henderson  <rth@redhat.com>
5312
5313         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
5314         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
5315         use (op0-op1) == 0 if op0 is a pointer.
5316         * config/alpha/alpha.md (cmpdi): Use some_operand.
5317         (three comparison combine splits): Remove.
5318
5319 2004-02-25  Richard Henderson  <rth@redhat.com>
5320
5321         PR c/12794
5322         * c-common.c (handle_alias_attribute): Reject the attribute if
5323         current_function_decl is set.
5324
5325 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
5326
5327         * config.gcc: Add comment describing extra_gcc_objs.
5328         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
5329         * configure.ac (extra_gcc_objs): New substitution variable.
5330         (host_extra_gcc_objs): Don't substitute.
5331         * configure: Regenerate.
5332         * Makefile.in: Use extra_gcc_objs.
5333
5334 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
5335
5336         * doc/contrib.texi: Add an entry for myself.
5337
5338 2004-02-25  Jan Hubicka  <jh@suse.cz>
5339
5340         * basic-block.h (make_eh_edge, break_superblocks): Declare.
5341         * cfgbuild.c (make_eh_edge):  Make global.
5342         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
5343         * except.c (build_post_landing_pads, connect_post_landing_pads,
5344         dw2_build_landing_pads, sjlj_emit_function_enter,
5345         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
5346         sjlj_build_landing_pads): Update CFG.
5347         (emit_to_new_bb_before): New function.
5348         (finish_eh_generation): Do not rebuild the CFG.
5349
5350 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5351
5352         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
5353         target_cpu_default defines.
5354         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
5355         * pa.h (TARGET_DEFAULT): Likewise.
5356
5357 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
5358
5359         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
5360         comparisons with regard to signedness.
5361
5362 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
5363
5364         * arm.c (thumb_legitimize_address): New function.
5365         * arm-protos.h: Prototype it.
5366         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
5367         (LEGITIMIZE_ADDRESS): Use it.
5368
5369 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
5370
5371         * reload1.c (reload): Only spill eliminable register with multiple
5372         adjacent elimination alternatives if all alternatives fail.
5373
5374 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
5375
5376         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
5377         is -4095...+4095 inclusive.
5378
5379 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
5380
5381         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
5382         the bootstrap failure with Sun CC 5.4 and 5.5.
5383
5384 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
5385
5386         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
5387         which modifies NEWREG.
5388         (cse_condition_code_reg): Update the mode of CC_REG in
5389         CC_SRC_INSN on our own.
5390
5391 2004-02-24  Michael Matz  <matz@suse.de>
5392
5393         * config/i386/i386.c (ix86_comp_type_attributes): Check for
5394         regparm attributes.
5395
5396 2004-02-24  Richard Henderson  <rth@redhat.com>
5397
5398         * toplev.c (dump_file_tbl): Rename from dump_file.
5399         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
5400         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
5401         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
5402         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
5403         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
5404         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
5405         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
5406         s/rtl_dump_file/dump_file/g.
5407
5408 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
5409
5410         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
5411         (spe_fixuns_truncsfsi2): Delete.
5412
5413         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
5414         (fixuns_truncsfsi2): Delete.
5415
5416 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
5417
5418         PR/14240
5419         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
5420
5421 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
5422
5423         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
5424
5425 2004-02-24  Jason Merrill  <jason@redhat.com>
5426
5427         * tree.c (check_qualified_type): New fn.
5428         (get_qualified_type): Use it.  If type already has the desired
5429         quals, just return it.
5430         * tree.h: Declare it.
5431
5432 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
5433
5434         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
5435         TARGET_SCHED_FINISH_GLOBAL): New macros.
5436
5437         * target.h (md_init_global, md_finish_global): Function
5438         declarations corresponding to new target macros.
5439
5440         * haifa-sched.c (sched_init, sched_finish): Allow target to
5441         call the new schedular hooks.
5442
5443         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
5444         call to update_life_info.
5445
5446         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
5447         flag_schedule_insns for SH4.
5448
5449         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
5450         find_set_regmode_weight, find_insn_regmode_weight,
5451         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
5452         sh_variable_issue, high_pressure, ready_reorder,
5453         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
5454         functions used to throttle the insn movement in first
5455         scheduling pass for SH.
5456
5457         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
5458         TARGET_SCHED_FINISH_GLOBAL.
5459
5460 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
5461
5462         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
5463         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
5464         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
5465         symbols in sections named by the user.
5466         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
5467         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
5468         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
5469         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
5470         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
5471         the above.
5472         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
5473         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
5474         one more pseudo to further improve code generation.
5475         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
5476         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
5477         inside UNSPEC.
5478         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
5479         * config/frv/frv.c (frv_legitimate_address_p): Added
5480         allow_double_reg_p argument.  Adjust all callers.  Use it to
5481         decide whether to enable double-register indirect addressing.
5482         (frv_funcdesc_alias_set): Remove.
5483         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
5484         register.  Emit movdi_ldd.
5485         (ldd_address_operand): New.
5486         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
5487         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
5488         (PREDICATE_CODES): Add ldd_address_operand.
5489         * config/frv/frv.md (movdi_ldd): New.
5490         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
5491         intermediate computations if possible.
5492         (symGOTOFF2reg_i): Fix harmless typo.
5493         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
5494         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
5495         relocated p_vaddr to vaddr type.
5496         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
5497         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
5498         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
5499         MEM, or use a funcdesc alias set.  Use regular move instead of
5500         ldd.
5501         (dbl_memory_one_insn_operand): Recognize function descriptors by
5502         type or by alias set, and don't split them.
5503         * config/frv/frv.md (call, call_value): Never use call_internal
5504         for fdpic.
5505         (call_internal, call_value_internal): Never match for FDPIC.
5506         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
5507         call_value_fdpicsi): Require FDPIC.
5508         (ldd): Removed.
5509         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
5510         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
5511         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
5512         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
5513         FDPIC.  Compute data base address.
5514         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
5515         before the other self-specs are processed.
5516         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
5517         Build with -fPIC.
5518         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
5519         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
5520         inhibit_libc is defined.
5521         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
5522         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
5523         __FRV_FDPIC__.
5524         (__RELOC_POINTER): Define.
5525         (_Unwind_IteratePhdrCallback): Use it.
5526         * config/frv/frv.h (Twrite): Define.
5527         (TRANSFER_FROM_TRAMPOLINE): Use it.
5528         * config/frv/linux.h (INVOKE__main): Undefine.
5529         (Twrite): Override.
5530         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
5531         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
5532         (-mlibrary-pic): Emphasize that this option generates EABI code.
5533         (-mcpu): Add fr550.
5534         (-mpack): Remove.
5535         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
5536         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
5537         and CONSTs in FDPIC mode.
5538         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
5539         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
5540         * config/frv/frv.c (move_source_operand): Don't accept symbolic
5541         constants.
5542         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
5543         rather than 'i' constraint for the 2-instruction alternative.
5544         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
5545         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
5546         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
5547         EXTRA_CONSTRAINT_FOR_Y.
5548         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
5549         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
5550         (addsi3): Change 'Y' constraint to 'Q'.
5551         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
5552         * reload.c (CONST_POOL_OK_P): New macro.
5553         (find_reloads): Use it to decide whether a constant can be forced
5554         into memory.
5555         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
5556         constant satisfies got12_operand.
5557         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
5558         (frv_legitimate_address_p): Check for valid unspec offsets using
5559         got12_operand rather than frv_legitimate_fdpic_operand_p.
5560         (frv_legitimate_fdpic_operand_p): Delete.
5561         (frv_emit_movsi): Abort if we try to use the FDPIC register during
5562         or after reload.
5563         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
5564         TARGET_FDPIC.
5565         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
5566         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
5567         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
5568         (frv_fdpic_fptr_operand): Don't declare here.
5569         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
5570         rather than fdpic_got12_operand.
5571         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
5572         got12_operand and const_unspec_operand.
5573         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
5574         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
5575         (symbolic_operand): Remove.
5576         (const_unspec_operand): New predicate.
5577         * config/frv/frv.md (*movsi_got): Use got12_operand.
5578         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
5579         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
5580         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
5581         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
5582         * config/frv/frv.c (frv_unspec): New structure.
5583         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
5584         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
5585         validate CONST indices.  Use frv_output_const_unspec to print them.
5586         (frv_print_operand): Update call to unspec_got_name.  Use
5587         frv_output_const_unspec to print constant unspecs.
5588         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
5589         Reject UNSPECs otherwise.
5590         (unspec_got_name): Take the relocation number as argument, not an
5591         rtx containing it.
5592         (frv_output_addr_const_extra): Remove, replacing with...
5593         (frv_output_const_unspec): ...this new function.
5594         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
5595         (gpr_or_int12_operand): Use fdpic_got12_operand.
5596         (dbl_memory_one_insn_operand): Likewise.
5597         (fdpic_got12_operand): Use frv_const_unspec_p.
5598         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
5599         are already legitimate.  Use frv_small_data_reloc_p when deciding
5600         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
5601         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
5602         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
5603         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
5604         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
5605         label, for real this time.
5606         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
5607         representation of visibility.
5608         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
5609         such.
5610         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
5611         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
5612         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
5613         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
5614         it was explicitly disabled.
5615         (frv_stack_info): There is no need to save the link register in every
5616         frame unless TARGET_LINKED_FP is true.
5617         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
5618         frame pointer if the stack pointer might change value.
5619         (frv_return_addr_rtx): Check and process "count" argument.
5620         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
5621         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
5622         (frv_find_base_term): Declare.
5623         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
5624         (FIND_BASE_TERM): Define.
5625         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
5626         small_data_register_operand, small_data_symbolic_operand.  Add
5627         symbolic_operand.
5628         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
5629         (frv_print_operand_memory_reference, output_move_single): Remove
5630         special handling for unlegitimized sdata addresses.
5631         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
5632         and symbolic addresses.
5633         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
5634         (frv_find_base_term): New function.
5635         (int_2word_operand): Check specifically for symbolic address constants.
5636         (pic_register_operand, pic_symbolic_operand): Delete.
5637         (small_data_register_operand, small_data_symbolic_operand): Delete.
5638         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
5639         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
5640         (move_source_operand): Only accept CONSTs if they're a two-insn
5641         symbolic constant.
5642         (fdpic_got12_operand): Don't require TARGET_FDPIC.
5643         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
5644         using gen_symGOTOFF2reg*.
5645         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
5646         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
5647         themselves a cost of 3 insns.
5648         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
5649         Change predicate to symbolic_operand.
5650         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
5651         (*movsi_lda_sdata): Delete.
5652         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
5653         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
5654         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
5655         frv-*-*linux*.
5656         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
5657         label.
5658         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
5659         -multilib-library-pic.
5660         (LINK_SPEC): Add -z text for -mfdpic.
5661         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
5662         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
5663         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
5664         Override.
5665         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
5666         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
5667         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
5668         crtstuff-generated files.
5669         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
5670         * config.gcc: Add frv-*-*linux*.
5671         * config/frv/linux.h, config/frv/t-linux: New.
5672         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
5673         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
5674         when -mfdpic even if a linker script is explicitly listed.
5675         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
5676         * config/frv/frv.c (frv_override_options): Clear asm_out
5677         unaligned_op for SImode on FDPIC.
5678         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
5679         argument passed to decl_readonly_section.
5680         (frv_assemble_integer): Revert 2003-09-30's change, but make the
5681         whole block run with FDPIC even with -fno-PIC.
5682         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
5683         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
5684         symbol or label plus offset to memory.
5685         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
5686         GOTOFF and GPREL for LABEL_REF.
5687         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
5688         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
5689         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
5690         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
5691         * doc/invoke.texi: Document them.
5692         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
5693         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
5694         (frv_splittable_got_operand): Removed.
5695         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
5696         LO_SUM.  Add comments.
5697         (frv_override_options): Moved enabling of FDPIC to
5698         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
5699         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
5700         (frv_legitimize_fdpic_address): Don't duplicate logic in
5701         frv_emit_movsi.
5702         (frv_gen_GPsym2reg): New.
5703         (unspec_got_name): Added gprel.
5704         (frv_expand_fdpic_call): Add support for inlining PLTs.
5705         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
5706         (gpr_or_int12_operand): Added GPREL12.
5707         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
5708         (small_data_symbolic_operand): Fail if FDPIC.
5709         (fdpic_splittable_got_operand): Removed.
5710         (fdpic_got12_operand): Added GPREL12.
5711         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
5712         when appropriate.  Fix sdata GOTOFF.
5713         (frv_legitimate_constant_p): Require legitimate PIC operand for
5714         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
5715         (frv_assemble_integer): Move FDPIC funcdesc handling out of
5716         flag_pic case.
5717         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
5718         frv_assemble_integer fails.
5719         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
5720         (SUBTARGET_DRIVER_SELF_SPECS): New.
5721         (ASM_SPEC): Don't pass -mno-fdpic.
5722         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
5723         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
5724         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
5725         -multilib-library-pic.
5726         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
5727         condexec_si_media_operator, condexec_sf_add_operator and
5728         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
5729         and condexec_sf_unary_operator.
5730         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
5731         New.
5732         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
5733         movsi_internal.  Give them internal names.  movsi_got has type
5734         int.
5735         (fdpic got splitters): Remove.
5736         (symGPREL2reg, symGPREL2reg_hilo): New.
5737         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
5738         to -mlibrary-pic.  Map -multilib-library-pic to it.
5739         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
5740         Document.
5741         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
5742         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
5743         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
5744         (frv_cannot_force_const_mem): New function.
5745         (const_small_data_p, plus_small_data_p): Update comments on sdata
5746         on FDPIC.
5747         (frv_override_options): Set flag_pie for FDPIC too.
5748         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
5749         call-saved registers on FDPIC.
5750         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
5751         don't force LR to be preserved.
5752         (frv_expand_prologue): Likewise.
5753         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
5754         (frv_frame_pointer_required): Don't force it just because the
5755         FDPIC register is used.
5756         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
5757         operand only if !condexec_p.
5758         (frv_legitimize_address): Return the FDPIC-legitimized address.
5759         Don't match small data here on FDPIC.
5760         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
5761         symbols.  Use TRUE/FALSE instead of 1/0.
5762         (frv_local_funcdesc_p): New.
5763         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
5764         immediates when possible.
5765         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
5766         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
5767         an UNSPEC_GOT.
5768         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
5769         12-bit immediates when possible.
5770         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
5771         are not legitimate pic operands.
5772         (frv_in_small_data_p): Re-enable for FDPIC.
5773         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
5774         (FRV_GLOBAL_P): Removed.
5775         * config/frv/frv.md: Add modes to CONSTs.
5776         (movsi_got): New.
5777         (movsi_lo_sum_got): Use separate matches instead of match_dup.
5778         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
5779         (fdpic splittable operations): Match on flag_pic != 1.
5780         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
5781         * config/frv/frv.c (frv_asm_out_constructor,
5782         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
5783         bytes, not bits.
5784         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
5785         * config/frv/frv.c (frv_assemble_integer): Reject complex
5786         expressions referencing function SYMBOL_REFs.
5787         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
5788         (move_source_operand): Reject CONSTs that reference function
5789         SYMBOL_REFs on FDPIC.
5790         (frv_emit_movsi): If we get such a CONST, break it up.
5791         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
5792         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
5793         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
5794         MEM.
5795         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
5796         (frv_trampoline_size): Increase for FDPIC.
5797         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
5798         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
5799         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
5800         Disable use of GOTOFF for now.
5801         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
5802         Disable use of small data in FDPIC for now.
5803         (frv_asm_output_mi_thunk): Implement for FDPIC.
5804         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
5805         * config/frv/frv.c (frv_asm_out_constructor): Use
5806         frv_assemble_integer for FDPIC pointers.
5807         (frv_asm_out_destructor): Likewise.
5808         * config/frv/frv.md (ldd): Fix order of operands.  Use
5809         address_operand for input.
5810         2003-09-18  DJ Delorie  <dj@redhat.com>
5811         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
5812         (unspec_got_name): Correct typo.
5813         (frv_emit_movsi): Pre-expand splittable GOTs.
5814         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
5815         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
5816         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
5817         * config/frv/t-frv: Add -mfdpic multilibs.
5818         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
5819         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
5820         * config/frv/frv.c (frv_override_options): -mfdpic assumes
5821         flag_pic, default to 32-bit pics, require DWORD ops.
5822         (frv_override_options): Add W and Z constraints.
5823         (frv_expand_prologue): No pic prologue for -mfdpic.
5824         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
5825         (frv_print_operand_memory_reference): Handle GOT constants.
5826         (frv_legitimate_address_p): Allow GOT constants.
5827         (frv_legitimize_address): Handle GOT addresses too.
5828         (frv_legitimate_fdpic_operand_p): New.
5829         (frv_legitimize_fdpic_address): New.
5830         (unspec_got_name): New.
5831         (frv_output_addr_const_extra): New.
5832         (frv_expand_fdpic_call): New.
5833         (frv_fdpic_fptr_operand): New.
5834         (gpr_or_int12_operand): Handle GOT operands.
5835         (int_2word_operand): Handle GOT operands.
5836         (fdpic_operand): New.
5837         (fdpic_splittable_got_operand): New.
5838         (fdpic_got12_operand): New.
5839         (frv_emit_movsi): Handle GOT operands.
5840         (frv_assemble_integer): -mfdpic doesn't use rofixups.
5841         (frv_print_operand): Support 'g' code for GOT operands.
5842         * config/frv/frv-protos.h: Add prototypes as needed.
5843         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
5844         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
5845         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
5846         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
5847         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
5848         R_FRV_GOTOFFLO): New.
5849         (movsi_high_got, movsi_lo_sum_got): New.
5850         (*movsi_pic): Don't use this splitter for -mfdpic.
5851         (addsi3): Allow GOT references also.
5852         (call, call_value): Handle -mfdpic separately.
5853         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
5854         call_value_fdpicsi): New.
5855         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
5856         symGOTOFF2reg_i): New.
5857         * config/frv/frv.h (MASK_FDPIC): New.
5858         (TARGET_FDPIC): New.
5859         (TARGET_SWITCHES): Add -mfdpic.
5860         (FDPIC_FPTR_REGNO): New.
5861         (FDPIC_REGNO): New.
5862         (OUR_FDPIC_REG): New.
5863         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
5864         FDPIC_CALL_REGS.
5865         (REG_CLASS_NAMES): Likewise.
5866         (REG_CLASS_CONTENTS): Likewise.
5867         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
5868         (EXTRA_CONSTRAINT): Add it here.
5869         (FRV_GLOBAL_P): New.
5870         (OUTPUT_ADDR_CONST_EXTRA): New.
5871
5872 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
5873
5874         * config/sparc/sparc.h: Remove commented-out definitions of
5875         TARGET_EDOM and GEN_ERRNO_RTX.
5876
5877 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
5878
5879         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
5880         df_analyse with df_analyze.
5881
5882 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
5883
5884         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
5885         beginning of block.
5886
5887 2004-02-23  James E Wilson  <wilson@specifixinc.com>
5888
5889         * calls.c (precompute_arguments): Update comment.
5890
5891 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
5892
5893         * et-forest.c: Replace et_occurences with et_occurrences.
5894
5895 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
5896
5897         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
5898         with iv_analyze.
5899
5900 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
5901
5902         * config/i386/i386.c: Rename pni to sse3.
5903         * config/i386/i386.h: Likewise.
5904         * config/i386/i386.md: Likewise.
5905         * config/i386/pmmintrin.h: Likewise.
5906         * doc/extend.texi: Likewise.
5907         * doc/invoke.texi: Likewise.
5908
5909 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
5910             Kazu Hirata  <kazu@cs.umass.edu>
5911
5912         Remove -fwritable-strings.
5913         * c-common.c (fix_string_type): Don't check
5914         flag_writable_strings.
5915         (fix_string_type): Likewise.
5916         * c-opts.c (set_std_c89): Don't initialize
5917         flag_writable_strings.
5918         (set_std_c99): Likewise.
5919         * common.opt (fwritable-strings): Remove.
5920         * flags.h: Remove the external declaration of
5921         flag_writable_strings.
5922         * opts.c (common_handle_option) <OPT_fwritable_strings>:
5923         Remove.
5924         * toplev.c (flag_writable_strings): Remove.
5925         (f_options): Remove an entry for writable-strings.
5926         * varasm.c (const_hash_1) <STRING_CST>: Don't check
5927         flag_writable_strings.
5928         (compare_constant) <STRING_CST>: Likewise.
5929         (build_constant_desc): Likewise.
5930         * config/darwin.c (machopic_select_section): Likewise.
5931         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
5932         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
5933         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
5934         * config/mips/mips.c (mips_select_section): Likewise.
5935         (mips_encode_section_info): Likewise.
5936         * config/pa/pa.c (pa_select_section): Likewise.
5937         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
5938         * config/v850/v850.c (v850_select_section): Likewise.
5939         * doc/invoke.texi (-fwritable-strings): Remove.
5940         (-fno-const-strings): Don't mention -fwritable-strings.
5941         * doc/trouble.texi: Don't mention -fwritable-strings.
5942
5943 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
5944
5945         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
5946
5947 2004-02-23  Dale Johannesen  <dalej@apple.com>
5948
5949         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
5950         (movdf_hardfloat64):  Ditto.
5951         (movdf_softfloat64):  Ditto.
5952
5953 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
5954         * config/rs6000/rs6000.c (function_arg): call to
5955         rs6000_mixed_function_arg for DFmode moved to allow
5956         normal DFmode incoming register assignment.
5957
5958 2004-02-23  Dale Johannesen  <dalej@apple.com>
5959
5960         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
5961         (movdf_hardfloat64):  Ditto.
5962
5963 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
5964
5965         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
5966         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
5967         copyright.
5968
5969 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
5970
5971         PR c/14156
5972         * c-typeck.c (c_expand_return): Change check for VAR_DECL
5973         to use DECL_P instead.
5974
5975         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
5976         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
5977
5978 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
5979
5980         * Makefile.in (opts.o): Depend on target.h.
5981         * opts.c (decode_options): Use targetm.default_short_enums
5982         instead of DEFAULT_SHORT_ENUMS.
5983         * system.h (DEFAULT_SHORT_ENUMS): Poison.
5984         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
5985         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
5986         * target.h (gcc_target): Add default_short_enums.
5987         * config/cris/cris.h: Remove a comment about
5988         DEFAULT_SHORT_ENUMS.
5989         * config/ip2k/ip2k.h: Likewise.
5990         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
5991         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
5992
5993 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
5994             Falk Hueffner  <falk@debian.org>
5995
5996         PR c/14188
5997         * builtins.c (expand_builtin_va_arg): Emit an informative message
5998         if a trap is generated.
5999         * c-typeck.c (build_function_call): Likewise.
6000
6001 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
6002
6003         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
6004         fopen.
6005         * libgcov.c: Include sys/stat.h.
6006         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
6007         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
6008         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
6009         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
6010
6011 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
6012
6013         * reorg.c: Remove comments about dead ports.
6014
6015 2004-02-22  Christopher Faylor  <cgf@redhat.com>
6016
6017         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
6018         extra host object file when targetting cygwin rather than generic
6019         object files.
6020
6021 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
6022
6023         Merge from tree-ssa:
6024         2003-11-20  Richard Henderson  <rth@redhat.com>
6025
6026                 * tree-inline.c (insert_decl_map): New.
6027                 (remap_decl, remap_type, remap_block, copy_body_r,
6028                 initialize_inlined_parameters, declare_return_variable,
6029                 remap_save_expr): Use it.
6030
6031         * function.c (copy_body_r): Add mapping from id->ret_label to
6032         id->ret_label.  Revert test for ret_label.
6033
6034 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
6035
6036         * genoutput.c (process_template): Strip trailing whitespace in @
6037         templates and issue a warning if there was any.
6038
6039 2004-02-21  Christopher Faylor  <cgf@redhat.com>
6040
6041         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
6042         object file when targetting cygwin.
6043         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
6044         overridden by top-level Makefile.
6045
6046 2004-02-21  Roger Sayle  <roger@eyesopen.com>
6047
6048         * config/i386/i386.c (standard_80387_constant_p): Also prefer
6049         the x87's load constant instructions when optimizing for size.
6050
6051 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
6052
6053         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
6054         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
6055         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
6056         * fold-const.c: Likewise.
6057         * simplify-rtx.c: Likewise.
6058
6059 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
6060
6061         * combine.c (can_combine_p): Don't ignore SETs marked with
6062         REG_EH_REGION notes.
6063         (try_combine): When attemting to fix unrecognized insns, don't
6064         split a PARALLEL that contains the original i2.
6065
6066 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
6067
6068         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
6069         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
6070         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
6071         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
6072         (vector, pixel, bool): #define to __vector, __pixel and __bool.
6073         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
6074         portion of header.
6075         (__altivec_link_error_invalid_argument): Remove prototype; will use
6076         __builtin_altivec_compiletime_error("vec_*") instead.
6077         (vec_*): Fix/complete set of available operation overloads given the
6078         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
6079         cv-correctness of pointer arguments; in C, always check for correct
6080         argument types before macro expansion.
6081         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
6082         defining Darwin/PowerPC-specific '-f[no-]altivec' and
6083         '-W[no-]altivec-long-deprecated' switches.
6084         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
6085         '__vector', '__pixel' and '__bool' macros using
6086         '__attribute__((altivec(...)))' types.
6087         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
6088         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
6089         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
6090         New type nodes.
6091         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
6092         handling '-W[no-]altivec-long-deprecated'.
6093         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
6094         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
6095         altivec_expand_dst_builtin): Remove casts from integer literals.
6096         (altivec_expand_builtin): Likewise; handle expansion of new
6097         '__builtin_altivec_compiletime_error' function.
6098         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
6099         types, and make them distinct from other vector types; register
6100         '__builtin_altivec_compiletime_error' function.
6101         (print_operand): For 'P', print a full target register name instead of
6102         merely its number.
6103         (rs6000_attribute_table): Add "altivec" attribute.
6104         (rs6000_handle_altivec_attribute): New function.
6105         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
6106         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
6107         maps to).
6108         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
6109         declare.
6110         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
6111
6112 2004-02-20  James E Wilson  <wilson@specifixinc.com>
6113
6114         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
6115         check.
6116         (shift_mix4left+2): Delete redundant pattern.
6117
6118 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
6119
6120         * alias.c (OUTGOING_REGNO): Don't define the default.
6121         * builtins.c (OUTGOING_REGNO): Likewise.
6122         (INCOMING_REGNO): Likewise.
6123         (apply_args_register_offset): Always use OUTGOING_REGNO.
6124         * combine.c (OUTGOING_REGNO): Likewise.
6125         * sibcall.c (OUTGOING_REGNO): Likewise.
6126         * defaults.h (INCOMING_REGNO): Provide the default.
6127         (OUTGOING_REGNO): Likewise.
6128
6129 2004-02-21  Jan Hubicka  <jh@suse.cz>
6130
6131         * params.def (max-peeled-insns, max-completely-peeled-insns,
6132         max-once-peeled-insns): Set to 400.
6133
6134 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6135
6136         PR c++/12007
6137         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
6138         are set for parameters before outputing debugging information.
6139
6140 2004-02-20  Falk Hueffner  <falk@debian.org>
6141
6142         PR target/14201
6143         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
6144         numbers.
6145
6146 2004-02-20  Per Bothner  <per@bothner.com>
6147
6148         * input.h:  Don't #include line-map.h.  It may cause link problems
6149         with undefined linemap_line_start when line-map.h is included but
6150         line-map.o is not linked, as currently happens with gengtype on
6151         compilers that don't support inline.
6152         * toplev.c:  So we do have to explicitly #include line-map.h here.
6153
6154 2004-02-20  Richard Henderson  <rth@redhat.com>
6155
6156         * doc/invoke.texi: Add -Wvariadic-macros.
6157
6158 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
6159
6160         * haifa-sched.c (sched_emit_insn): Remove.
6161         * sched-int.h: Remove the corresponding prototype.
6162
6163 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
6164
6165         Revert:
6166         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
6167         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
6168         * system.h (DEFAULT_SHORT_ENUMS): Poison.
6169         * config/cris/cris.h: Remove a comment about
6170         DEFAULT_SHORT_ENUMS.
6171         * config/ip2k/ip2k.h: Likewise.
6172         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
6173
6174 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
6175             Tom Tromey  <tromey@redhat.com>
6176
6177         * doc/install.texi: Moved --disable-libgcj and
6178         --with-system-zlib documentation to new section for
6179         Java-specific options.
6180         Added explicit Cross-Compiler-Specific Options subheading.
6181         Added section for Java-specific options.
6182
6183 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
6184
6185         * doc/install.texi (Building the Ada compiler): Remove
6186         example.
6187
6188 2004-02-20  James E Wilson  <wilson@specifixinc.com>
6189
6190         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
6191
6192 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
6193
6194         * gcc.c (process_command): Allow translation of the copyright
6195         symbol but not the rest of the copyright message.
6196         * gcov.c (print_version): Likewise.  Allow translation of the
6197         message about warranty.
6198
6199 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
6200
6201         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
6202         predicate.
6203         ("*andsi_clear"): Tweak constraints to not match postincrement.
6204         Adjust the predicate to exclude a volatile memory reference.
6205         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
6206         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
6207
6208 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
6209
6210         * move-if-change: Remove.
6211         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
6212         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
6213         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
6214         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
6215         (s-gtyp-gen, s-iov): Use the top level move-if-change.
6216         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
6217
6218 2004-02-19  James E Wilson  <wilson@specifixinc.com>
6219
6220         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
6221         for operand2.  Add condition that requires register_operand operand2
6222         before reload.
6223
6224 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
6225             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
6226
6227         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
6228         * config/mips/mips.md: Expand comment above unaligned loads and stores.
6229
6230 2004-02-19  Richard Henderson  <rth@redhat.com>
6231
6232         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
6233         * tree.c (build0, build1, build2, build3, build4): Split out from...
6234         (build): ... here.  Call them.
6235         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
6236
6237         * convert.c (convert_to_integer): Remove extra build argument.
6238         * tree-inline.c (expand_call_inline): Likewise.
6239
6240 2004-02-19  Richard Henderson  <rth@redhat.com>
6241
6242         * c-opts.c (warn_variadic_macros): New.
6243         (c_common_handle_option): Set it.
6244         (sanitize_cpp_opts): Copy it to cpp_opts.
6245         * c.opt (Wvariadic-macros): New.
6246         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
6247         * cppinit.c (cpp_create_reader): Initialize it.
6248         * cppmacro.c (parse_params): Check it.
6249
6250 2004-02-19  David Daney <ddaney@avtrex.com>
6251
6252         PR preprocessor/14198
6253         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
6254         builtin_assert ("machine=mips")
6255
6256 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
6257
6258         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
6259         * system.h (DEFAULT_SHORT_ENUMS): Poison.
6260         * config/cris/cris.h: Remove a comment about
6261         DEFAULT_SHORT_ENUMS.
6262         * config/ip2k/ip2k.h: Likewise.
6263         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
6264
6265 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
6266
6267         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
6268         when passing single SFmode quantities in general registers,
6269         put them in the high half.
6270
6271 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
6272
6273         * doc/md.texi (Standard Names): Document additional dependency on
6274         fix pattern.
6275
6276         * optabs.c (ftruncify): Remove.
6277         (expand_fix): Manually inline ftruncify above.
6278         (can_fix_p): Add FIXME note.
6279
6280 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
6281
6282         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
6283         spe_fixuns_truncsfsi2.
6284
6285         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
6286         fixuns_truncsfsi2.
6287
6288 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
6289
6290         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
6291         * testsuite/gcc.dg/20040219-1.c: New test.
6292
6293 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
6294
6295         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
6296         "*subsf3_cconly"): Subtraction is not commutative.
6297
6298 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
6299
6300         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
6301         (sdbout_symbol): If called before sdbout_init, queue DECL for
6302         later and return.
6303         (sdbout_init): Set sdbout_initialized true, process decls
6304         queued earlier by sdbout_symbol.
6305         (sdbout_finish): Use size_t for index variable.
6306
6307 2004-02-19  Jeff Law  <law@redhat.com>
6308
6309         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
6310         for unordered comparison codes.
6311
6312 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
6313
6314         * reload1.c (reload): Correct comment.
6315         (scan_paradoxical_subregs): Remove #if 0 and old comment.
6316         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
6317         register variables are not used by reload.
6318
6319 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
6320
6321         PR target/14209
6322         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
6323         constraints to not match postincrement.  Adjust the predicate to
6324         exclude a volatile memory reference.
6325
6326 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
6327
6328         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
6329
6330 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
6331
6332         * hooks.c (hook_void_tree_int): Remove.
6333         (hook_void_constcharptr): Likewise.
6334         (hook_int_void_0): Likewise.
6335         * hooks.h: Remove the prototypes for the above three
6336         functions.
6337         * targhooks.c (hook_bool_machine_mode_true): Remove.
6338         * targhooks.h: Remove the prototype for
6339         hook_bool_machine_mode_true.
6340
6341 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
6342
6343         * emit-rtl.c (subreg_realpart_p): Remove.
6344         (reorder_insns_with_line_notes): Likewise.
6345         (end_full_sequence): Likewise.
6346         * rtl.h: Remove the prototype for the above functions.
6347
6348 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
6349
6350         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
6351         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
6352         config/iq2000/iq2000.h, config/m32r/m32r.h,
6353         config/pdp11/pdp11.h, config/sparc/sparc.h,
6354         config/xtensa/xtensa.h: Remove commented-out or useless
6355         definitions of CASE_VECTOR_PC_RELATIVE.
6356
6357 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
6358
6359         * loop.c (all_sets_invariant_p): Remove.
6360
6361 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
6362
6363         PR target/12916
6364         * config/sparc/sparc.h (NPARM_REGS): Delete.
6365         (BASE_RETURN_VALUE_REG): Likewise.
6366         (BASE_OUTGOING_VALUE_REG): Likewise.
6367         (BASE_PASSING_ARG_REG): Likewise.
6368         (BASE_INCOMING_ARG_REG): Likewise.
6369         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
6370         TARGET_ARCH64, not TARGET_V9.
6371         (function_arg_slotno): Dispatch based on the mode class.
6372         Handle vector modes like floating-point modes.
6373         (function_arg_record_value_1): Handle vector types like
6374         floating-point types.
6375         (function_arg_record_value_2): Likewise.
6376         Calculate regno after mode transformation.
6377         (function_arg): Handle vector modes like floating-point modes.
6378         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
6379         If ARCH64, do not recheck alignment.
6380         (function_arg_pass_by_reference): Reorder the conditions.
6381         (sparc_return_in_memory): Move after function_arg_padding.
6382         Implement calling conventions for vector modes.
6383         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
6384         (function_value): Move scope of 'regbase'.
6385         Implement calling conventions for vector modes.
6386         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
6387         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
6388         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
6389         the argument is passed by reference.
6390         (sparc_type_code): Handle vector types.
6391
6392 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
6393
6394         * function.c (assign_parms): When building decl_rtl for
6395         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
6396
6397 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
6398
6399         * expr.c (is_aligning_offset): Check if we are aligning the
6400         expressions's address over BIGGEST_ALIGNMENT in bytes, not
6401         in bits.
6402
6403 2003-02-18  Matt Austern  <austern@apple.com>
6404
6405         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
6406         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
6407         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
6408         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
6409         spec string.
6410         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
6411
6412 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
6413
6414         * dwarf2out.c (loclabel_num): Move outside #ifdef
6415         DWARF2_DEBUGGING_INFO and mark with GTY(()).
6416         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
6417         Mark with GTY(()).
6418         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
6419         Allocate memory with ggc_alloc.  No need to copy anything.
6420         (ia64_hpux_file_end): Update to match.
6421
6422 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
6423
6424         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
6425         by default.
6426
6427 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
6428
6429         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
6430         ("divmodtisi3"): Likewise.
6431         ("udivmoddi4", "udivmodtidi3"): Likewise.
6432         ("divmodsi4", "divmoddisi3"): Likewise.
6433         ("udivmodsi4", "udivmoddisi3"): Likewise.
6434         ("udivsi3", "umodsi3"): Likewise.
6435
6436 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
6437
6438         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
6439         placeholder insn when chunkifying the pool.
6440
6441 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
6442
6443         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
6444         generating PIC code.
6445
6446 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6447
6448         * config/h8300/h8300-protos.h: Add a prototype for
6449         h8300_expand_branch.
6450         * config/h8300/h8300.c (h8300_expand_branch): New.
6451         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
6452         bgtu, beq, bne): Call h8300_expand_branch().
6453
6454 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6455
6456         * config/h8300/h8300-protos.h: Add prototypes for
6457         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
6458         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
6459         (h8300_hard_regno_mode_ok): Likewise.
6460         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
6461         h8300_hard_regno_nregs().
6462         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
6463
6464 2004-02-18  Per Bothner  <per@bothner.com>
6465
6466         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
6467         partly reverts my 2003-10-01 change, because we're back to logically
6468         including <command line> inside the main line.
6469         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
6470         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
6471         Fixes PR preprocessor/14103.
6472
6473         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
6474         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
6475         (cpp_push_include):  Don't need to increment pfile's line field.
6476         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
6477
6478         * c-ppoutput.c (print struct):  New first_time field.
6479         (init_pp_output):  Set print.first_time.
6480         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
6481         which is set also for (say) <command line>.  Clear print.first_time.
6482
6483         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
6484         does not match the code, so fix both.
6485         (should_stack_file):  Inline include_pch_p function.
6486         (include_pch_p):  Remove pointless function.
6487
6488         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
6489
6490 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6491
6492         * config/h8300/h8300.md (four define_peephole2's): Use
6493         h8300_regs_ok_for_stm().
6494
6495 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6496
6497         * config/h8300/h8300-protos.h: Update the prototype for
6498         expand_a_rotate().
6499         * config/h8300/h8300.c (expand_a_rotate): Remove the first
6500         argument.
6501         * config/h8300/h8300.md: Update all callers.
6502
6503 2004-02-18  Jan Hubicka  <jh@suse.cz>
6504
6505         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
6506         floats.
6507         (simplify_binary_operation): Deal with logicals on floats.
6508
6509         * i386.md (SSE fabs splitters): Emit new patterns.
6510         (SSE cmov splitters): Likewise.
6511         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
6512         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
6513         subregs.
6514         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
6515         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
6516
6517 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6518
6519         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
6520         by hand.
6521         (output_a_rotate): Tweak a comment.
6522         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
6523         (*rotlhi3_1): Change to rotlhi3_1.
6524         (*rotlsi3_1): Change to rotlsi3_1.
6525
6526 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
6527
6528         PR target/13866
6529         * arm.c (load_multiple_operation): Don't insist that the source reg
6530         of a post-increment component is the same as the destination.
6531         (store_multiple_operation): Likewise.
6532
6533 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6534
6535         * config/h8300/h8300.md: Move movsf patterns into one section
6536         of the file.
6537
6538 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6539
6540         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
6541         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
6542         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
6543         config/mips/linux64.h, config/pa/pa-64.h,
6544         config/rs6000/aix51.h, config/rs6000/aix52.h,
6545         config/rs6000/spe.md, config/sparc/linux.h,
6546         config/sparc/linux64.h: Update copyright.
6547
6548 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
6549
6550         * config/h8300/h8300.md: Move push patterns into one
6551         section of the file.
6552
6553 2004-02-18  Mark Mitchell <mark@codesourcery.com>
6554
6555         PR c++/11326
6556         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
6557         fntype.
6558
6559 2004-02-18  Paul Brook  <paul@codesourcery.com>
6560
6561         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
6562
6563 2004-02-18  Paul Brook  <paul@codesourcery.com>
6564
6565         PR debug/12934
6566         * dwarf2out.c (loc_descriptor_from_tree): Handle
6567         EXPR_WITH_FILE_LOCATION.
6568
6569 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
6570
6571         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
6572         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
6573         trailing whitespace from instructions.
6574
6575 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
6576
6577         * configure.ac: When generating auto-build.h, pass
6578         --enable-languages to the sub-configure.
6579         Put quotes around ${program_transform_name} when generating
6580         name of as, ld, nm, objdump.
6581         * configure: Regenerate.
6582
6583 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
6584
6585         * Makefile.in (s-check, s-config, s-conditions, s-flags)
6586         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
6587         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
6588         (s-preds, s-iov): Do not depend on move-if-change.
6589
6590 2004-02-17  James E Wilson  <wilson@specifixinc.com>
6591
6592         * caller-save.c (insert_restore): Pass mem through copy_rtx.
6593         (insert_save): Likewise.
6594
6595 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6596
6597         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
6598         warning.
6599
6600 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6601
6602         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
6603         *one_cmplsi2_h8300.
6604         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
6605
6606 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6607
6608         * config/h8300/h8300-protos.h: Update the prototype of
6609         fix_bit_operand().
6610         * config/h8300/h8300.c (fix_bit_operand): Remove the second
6611         argument "what".
6612         * config/h8300/h8300.md: Update all callers.
6613
6614 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6615
6616         * config/h8300/h8300.c (fix_bit_operand): Change the name of
6617         the last argument to "code" from "type".
6618
6619 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6620
6621         * config/h8300/h8300.c: Remove an extern declaration of
6622         rtx_equal_function_value_matters.
6623
6624 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6625
6626         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
6627         by hand.
6628         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
6629         (*iorqi3_1): Change to iorqi3_1.
6630         (*xorqi3_1): Change to xorqi3_1.
6631
6632 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6633
6634         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
6635         typos.
6636
6637 2004-02-17  Jan Hubicka  <jh@suse.cz>
6638
6639         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
6640
6641 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
6642
6643         PR optimization/14119
6644         * combine.c (try_combine): When attemting to fix unrecognized insns,
6645         don't delete SETs marked with REG_EH_REGION notes.
6646
6647 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
6648
6649         * combine.c (simplify_if_then_else): Do not replace
6650         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
6651         modes differ.
6652
6653 2004-02017  Steven Bosscher  <stevenb@suse.de>
6654
6655         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
6656         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
6657         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
6658         * ada/utils.c: Likewise.
6659         * cp/decl.c: Likewise.
6660         * f/com.c: Likewise.
6661         * java/class.c: Likewise.
6662
6663 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6664
6665         * config/h8300/h8300.md: Fix comment typos.
6666
6667 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6668
6669         * config/mips/t-iris6gld: Renamed to ...
6670         * config/mips/t-irix-gld: ... this.
6671         * config.gcc (mips-sgi-irix6*): Reflect this
6672         (mips-sgi-irix5*): Use it with GNU ld.
6673
6674         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
6675         to ...
6676         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
6677         * config/mips/t-irix-gld: Reflect this.
6678         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
6679
6680         * config/mips/iris5gld.h: New file.
6681         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
6682         Only use collect2 without gas.
6683
6684         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
6685         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
6686         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
6687         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
6688
6689         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
6690         * config/mips/iris5.h: ... here.
6691
6692         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
6693         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
6694         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
6695
6696         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
6697         using irix_startfile_spec, irix_endfile_spec.
6698
6699 2004-02-16  Gunther Nikl  <gni@gecko.de>
6700
6701         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
6702
6703 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6704
6705         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
6706         insns by hand.
6707
6708 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6709
6710         * cfghooks.c (split_edge): Speed up updating of dominators.
6711
6712 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
6713
6714         PR c++/11326
6715         * c-common.c (flag_abi_version): Remove.
6716         * c-common.h (flag_abi_version): Likewise.
6717         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
6718         * c.opt (fabi-version): Remove.
6719         * calls.c (expand_call): Always pass a function type to
6720         struct_value_rtx.  Use convert_memory_address.
6721         * common.opt (fabi-version): Add it.
6722         * flags.h (flag_abi_version): Likewise.
6723         (abi_version_at_least): New macro.
6724         * opts.c (common_handle_option): Add OPT_fabi_version.
6725         * toplev.c (flag_abi_version): Define it.
6726         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
6727         New function.
6728         (ia64_output_mi_thunk): Use it.
6729         (ia64_struct_value_rtx): Likewise.
6730
6731 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6732
6733         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
6734         Don't generate insns by hand.
6735
6736 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
6737
6738         PR c++/14178
6739         * doc/invoke.texi (fabi-version): The default is 2 now.
6740
6741 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6742
6743         * loop-iv.c: New file.
6744         * Makefile.in (loop-iv.o): New.
6745         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
6746         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
6747         num_loop_branches): New functions.
6748         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
6749         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
6750         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
6751         get_simple_loop_desc, free_simple_loop_desc): Declare.
6752         (simple_loop_desc): New inline function.
6753         (struct rtx_iv, struct niter_desc): New.
6754         * cfgloopmanip.c (loopify): Specify semantics more precisely.
6755         * expr.c (force_operand): Handle subregs of expressions created by
6756         loop unroller.
6757         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
6758         parts of the initialization to toplev.c
6759         * loop-unroll.c (loop_exit_at_end_p): New.
6760         (unroll_and_peel_loops): Call iv_analysis_done.
6761         (decide_peel_once_rolling, decide_peel_completely,
6762         decide_unroll_stupid, decide_unroll_constant_iterations,
6763         decide_unroll_runtime_iterations, decide_peel_simple,
6764         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
6765         unroll_loop_runtime_iterations): Use new simple loop analysis.
6766         * loop-unswitch.c (compare_and_jump_seq): New.
6767         (may_unswitch_on_p): Renamed to ...
6768         (may_unswitch_on): Use new iv analysis.
6769         (reversed_condition): Export.
6770         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
6771         * predict.c (estimate_probability): Use new simple loop analysis.
6772         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
6773         canon_condition, simplify_using_condition): Declare.
6774         * stor-layout.c (get_mode_bounds): New.
6775         * toplev.c (rest_of_handle_loop2): Some parts of
6776         initialization/finalization moved here from loop-init.c.
6777
6778 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
6779
6780         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
6781         pointer.
6782         (CALL_USED_REGISTERS): Likewise.
6783         (REG_ALLOC_ORDER): Likewise.
6784         (REG_CLASS) <GENERAL_REGS>: Likewise.
6785
6786 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
6787
6788         * doc/md.texi (Insn Canonicalizations): Document left-chaining
6789         in associative operators.
6790         * rtlanal.c (commutative_operand_precedence): Create some new
6791         variables.  Prefer a commutative operand on the left, then
6792         binary expressions, then NEG and NOT.
6793
6794 2004-02-16  Matthias Klose  <doko@debian.org>
6795
6796         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
6797         in terms of SHLIB_SOVERSION.
6798         * config/m68k/t-slibgcc-elf-ver: New file.
6799         * config/pa/t-slibgcc-elf-ver: New file.
6800         * config.gcc (m68k-linux, parisc-linux): Use them when not
6801         sjlj exceptions are not configured.
6802
6803 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
6804
6805         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
6806
6807 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
6808
6809         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
6810
6811 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
6812
6813         * doc/sourcebuild.texi: Mention backends.html.
6814
6815 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
6816
6817         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
6818         line-map.c, line-map.h, var-tracking.c: Fix comment
6819         formatting.
6820
6821 2004-02-16  Richard Henderson  <rth@redhat.com>
6822
6823         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
6824
6825         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
6826
6827 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
6828
6829         * config/h8300/h8300.md: Remove unnecessary parallels from
6830         all define_insn and define_split patterns.
6831
6832 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
6833
6834         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
6835         "clobber").
6836
6837 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
6838
6839         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
6840         '%#'.
6841
6842 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
6843
6844         * config/ia64/ia64.c, config/mips/mips.c,
6845         config/mmix/mmix-modes.def: Fix comment typos.
6846
6847 2004-02-15  Roger Sayle  <roger@eyesopen.com>
6848
6849         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
6850         (get_directive_line): Remove unused function prototype.
6851
6852 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
6853
6854         * tree-inline.c (copy_body_r): Do not replace ret_label.
6855
6856 2004-02-14  Jan Hubicka  <jh@suse.cz>
6857
6858         * i386.c (x86_four_jump_limit): New variable.
6859         (k8_avoid_jump_misspredicts): Rename to ...
6860         (ix86_avoid_jump_misspredicts): .. this one.
6861         (ix86_pad_returns): Break out from ...
6862         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
6863         to.
6864         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
6865
6866 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
6867
6868         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
6869         PARALLEL is NULL.
6870
6871 2004-02-14  Per Bothner  <per@bothner.com>
6872
6873         * fix-header.c (line_table):  Move local variable in main to global.
6874         * scan.h (line_table):  Use it.
6875         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
6876         line (recently renamed to src_loc) before calling recognized_function.
6877
6878 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
6879
6880         * Makefile.in: Fix comment typos.
6881
6882 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
6883
6884         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
6885         for start_value when it is directly moved into reg, and factorize
6886         the retrieval of GET_MODE (reg).
6887
6888 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
6889
6890         * config/mips/mips-protos.h (mips_load_got_page): Delete.
6891         (mips_load_got_global): Delete.
6892         (mips_gotoff_page): Declare.
6893         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
6894         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
6895         UNSPEC_LOAD_GOT pattern rather than a MEM.
6896         (*load_got[sd]i): New patterns.
6897         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
6898         (mips_load_got_page, mips_load_got_global): Delete.
6899         (mips_gotoff_page): New function.
6900         (override_options): Don't initialize mips_got_alias_set.
6901
6902 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
6903
6904         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
6905         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
6906         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
6907         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
6908         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
6909         * config/mips/mips.c: Fix some overly-long lines.
6910         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
6911         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
6912
6913 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6914
6915         * configure.ac: Search for as, ld below libexec/gcc.
6916         * configure: Regenerate.
6917
6918 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
6919
6920         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
6921         __builtin_arm_setwcx ().
6922         * config/arm/arm.c (arm_expand_builtin): Generate operands
6923         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
6924
6925 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
6926
6927         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
6928         and "wmuluh" to "wmulsm" and "wmulum", respectively.
6929         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
6930         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
6931         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
6932         (_mm_mulhi_pu16): Likewise.
6933
6934 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
6935
6936         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
6937         DECL_NAME != 0 before dereferencing.
6938
6939 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
6940
6941         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
6942         (s390_output_addr_const_extra): Declare.
6943         (s390_output_pool_entry): Remove FILE * argument.
6944         * config/s390/s390.c (s390_output_symbolic_const): Remove.
6945         (s390_output_addr_const_extra): New function.
6946         (print_operand_address): Call output_addr_const instead of
6947         s390_output_symbolic_const.
6948         (print_operand): Likewise.
6949         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
6950         Remove FILE * argument.
6951         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
6952         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
6953         call.
6954
6955 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
6956
6957         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
6958         (struct edge, struct vertex, struct graph): New.
6959         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
6960         free_graph): New functions.
6961
6962 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
6963
6964         * config/mips/mips.md (casesi_internal, casesi_internal_di):
6965         Use ".set macro" to avoid warnings about multi-instruction
6966         macros, since they're intentional.
6967
6968 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
6969
6970         * config/darwin.h: Add include guards.  Remove old, now incorrect,
6971         comment about STANDARD_EXEC_PREFIX.
6972
6973         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
6974         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
6975         for installing .1 manpages.  Add rules for installing cpp
6976         and gcov manpages under their installed names.
6977
6978 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
6979
6980         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
6981         host, but try LD_FOR_TARGET first.
6982         * configure: Rebuilt.
6983
6984 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
6985
6986         * dbxout.c: Move declaration of dbxout_type_decl outside
6987         #ifdef DBX_DEBUGGING_INFO.
6988         * c-parse.in: Don't give the asmdef production a type.
6989
6990 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
6991
6992         * debug.h (struct gcc_debug_hooks): Add type_decl field.
6993         (debug_nothing_tree_int): Prototype.
6994         (dwarf_debug_hooks): Delete, unused.
6995         * debug.c (do_nothing_debug_hooks): Update.
6996         (debug_nothing_tree_int): New function.
6997         * langhooks.h (struct lang_hooks_for_decls):
6998         Remove builtin_type_decls field.
6999         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
7000         (LANG_HOOKS_DECLS): Update.
7001         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
7002         Use debug_hooks->type_decl.
7003         * dbxout.c (preinit_symbols): New static.
7004         (dbx_debug_hooks, xcoff_debug_hooks): Update.
7005         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
7006         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
7007         for symbols to output.
7008         (dbxout_type_decl): New function.
7009         (dbxout_symbol): If called before dbxout_init has run, queue
7010         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
7011         to TYPE_DECLs before emitting them.
7012         * xcoffout.c (assign_type_number): Delete.
7013         (xcoff_type_numbers): New static table.
7014         (xcoff_assign_fundamental_type_number): New function.
7015         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
7016         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
7017         * sdbout.c: Include varray.h.
7018         (deferred_global_decls): New static.
7019         (sdb_debug_hooks): Update.
7020         (sdbout_global_decl): If we can't emit something right now,
7021         remember it in deferred_global_decls.
7022         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
7023         (sdbout_init): Initialize deferred_global_decls.
7024         * Makefile.in: Update dependencies of sdbout.o.
7025         * dwarf2out.c (dwarf2out_type_decl): New function.
7026         (dwarf2_debug_hooks): Update.
7027         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
7028         * c-decl.c (getdecls): Just return 0.
7029         (check_for_loop_decls): Don't use getdecls.
7030         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
7031         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
7032
7033 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
7034
7035         * config/s390/s390.c (s390_sched_reorder2): Remove.
7036         (TARGET_SCHED_REORDER2): Do not redefine.
7037
7038 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
7039
7040         * c-parse.in (maybe_type_qual): Delete.
7041         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
7042         (asm_argument): New grammar rules.
7043         (extdef_1): Use asmdef.
7044         (maybeasm): Move down with other asm rules; use simple_asm_expr.
7045         (xexpr): Move up with other expression rules.
7046         (stmt): Use asm_stmt.
7047
7048         * c-typeck.c (build_asm_expr): New function - body mostly
7049         pulled from build_asm_stmt.
7050         (build_asm_stmt): Just handle tacking on the volatile qualifier.
7051         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
7052
7053 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
7054
7055         PR bootstrap/13617
7056         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
7057         (mips_declare_object): Make variadic.
7058         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
7059         mips_output_aligned_decl_common.
7060         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
7061         (mips_declare_object): Make variadic.
7062
7063 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
7064
7065         * function.c (update_epilogue_consts): Teach about binary operations.
7066
7067         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
7068         previous MEM_VOLATILE in REF.
7069         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
7070         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
7071
7072 2004-02-12  Gunther Nikl  <gni@gecko.de>
7073
7074         * config.gcc: Restore support for m68k-openbsd.
7075
7076 2004-02-12  Jan Hubicka  <jh@suse.cz>
7077
7078         * tree-optimize.c (tree_rest_of_compilation): Do not release
7079         DECL_ARGUMENTS.
7080
7081 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
7082
7083         * doc/install.texi: Fix the spelling of "explicitly".
7084
7085 2004-02-11  Eric Christopher  <echristo@redhat.com>
7086
7087         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
7088         duplicate argument structure of cpp_interpret_string.
7089         * cpphash.h: Move prototype...
7090         * cpplib.h: Here.
7091         * cpplib.c: Fix calls to match new function signature.
7092
7093 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
7094
7095         PR c/456
7096         * cppexp.c (num_binary_op): Don't allow comma operators in #if
7097         constant expressions at all outside C99 mode if pedantic.
7098
7099 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
7100
7101         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
7102         (log10_optab, log2_optab): Define corresponding macros.
7103         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
7104         * genopinit.c (optabs): Implement log10_optab and log2_optab
7105         using log10?f2 and log2?f2 patterns.
7106         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
7107         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
7108         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
7109         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
7110
7111         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
7112         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
7113         log2, log2f and log2l built-ins as inline x87 intrinsics.
7114
7115 2004-02-11  Richard Henderson  <rth@redhat.com>
7116
7117         PR target/1532
7118         * flow.c (insn_dead_p): A clobber of a dead hard register is a
7119         dead insn after reload.
7120
7121 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
7122
7123         * tree.h (frame_base_decl): Add GTY marker.
7124         * var-tracking.c (frame_base_decl): Likewise.
7125
7126 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
7127
7128         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
7129         incorrect, hunk.
7130         (add_location_or_const_value_attribute): Use text_section_label,
7131         not TEXT_SECTION_NAME.
7132
7133 2004-02-11  Per Bothner  <per@bothner.com>
7134
7135         Represent column numbers using line-map's source_location.
7136         The "next available source_location" is now managed internally by
7137         line-maps.c rather than by clients.
7138         * line-map.h (struct line_map):  New field column_bits.
7139         <from_line>:  Rename field to start_location.
7140         (struct line_maps):  New fields highest_location and max_column_hint.
7141         (linemap_check_files_exited):  New declaration.
7142         (linemap_line_start):  New declaration.
7143         (linemap_add):  Remove from_line parameter; use highest_location field.
7144         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
7145         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
7146         (CURRENT_LINE_MAP):  Remove macro.
7147         (linemap_position_for_column):  New inline function.
7148         * line-map.c (linemap_init):  Clear new fields.
7149         (linemap_check_files_exited):  New function, extracted from ...
7150         (linemap_free):  Use linemap_check_files_exited.
7151         (linemap_add):  Remove from_line parameter.  Various updates.
7152         (linemap_line_start):  New function.
7153         (linemap_lookeup):  Update for new field names.
7154         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
7155         linemap_position_for_column may unpredictably change the current map,
7156         it is cleaner and simpler for us to not cache it in cpp_reader.
7157         (struct cpp_buffer):  New sysp field.
7158         Changed warned_cplusplus_comments and from_stage3 to bitfields.
7159         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
7160         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
7161         current map using linemap_lookup.
7162         (do_linemarker):  Also set buffer's sysp field.
7163         (destringize_and_run):  No longer need to decrement current line.
7164         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
7165         (search_path_head, open_file_failed):  Use buffer's sysp.
7166         (cpp_make_system_header):  Get current map using linemap_lookup.
7167         Also set buffer's sysp flag.
7168         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
7169         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
7170         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
7171         (struct cpp_reader):  ... and adding saved_line_base field.
7172         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
7173         Update accordingly.  Don't adjust line.
7174         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
7175         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
7176         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
7177         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
7178         * cpplex.c (_cpp_lex_direct):  Likewise.
7179         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
7180         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
7181         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
7182         Remove col field as it is now subsumed by src_loc.
7183         * cpperror.c:  Update various field, parameter, and macro names.
7184         (print_location):  If col==0, try SOURCE_COLUMN of line.
7185         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
7186         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
7187         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
7188         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
7189         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
7190         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
7191         (_cpp_lex_direct):  Use linemap_position_for_column.
7192         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
7193         parameter.  Instead get it from the line_table global.  Adjust callers.
7194         (print):  Remove map field.  Replace line field to src_line.
7195         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
7196         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
7197         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
7198         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
7199         * cpptrad.c (copy_comment):  Rename variable.
7200         * c-lex.c (map):  Remove static variable, for same reason we removed
7201         cpp_reader's map field.
7202         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
7203         to call linemap_lookup.
7204         (cb_line_change):  Token's line field replaced by src_loc.
7205         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
7206         Don't save new_map.
7207
7208         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
7209         source_location.
7210
7211 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
7212
7213         * config/rs6000/altivec.md (*movv4si_internal): At least one
7214         operand must be register_operand.
7215         (*movv8hi_internal1): Likewise.
7216         (*movv16qi_internal1): Likewise.
7217         (*movv4sf_internal1): Likewise.
7218
7219 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
7220
7221         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
7222         operand.
7223         (movv4hi_internal): Same.
7224         (movv2sf_internal): Same.
7225         (movv1di_internal): Same.
7226
7227 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
7228
7229         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
7230         TARGET_OLDABI consistently.
7231         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
7232         mips_va_arg,override_options,compute_frame_size,
7233         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
7234         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
7235         and TARGET_OLDABI consistently.
7236         * config/mips/mips.md (exception_receiver): Likewise.
7237         * config/mips/linux64.h: Likewise.
7238
7239 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
7240
7241         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
7242         Set AltiVec ABI and vrsave as default for ppc64 linux.
7243         (init_cumulative_args): Post error, if try to return
7244         value in AltiVec register without enable AltiVec.
7245         (function_arg_advance): Ditto for passing arguments.
7246
7247 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
7248
7249         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
7250         a label before updating its usage count.
7251
7252 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
7253
7254         * doc/install.texi: Remove extra cd.
7255
7256 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
7257
7258         * c-common.c (vector_size_helper): Remove; call
7259         reconstruct_complex_type() instead.
7260         * tree.c (reconstruct_complex_type): New function
7261         (formerly vector_size_helper() in c-common.c).
7262         (make_vector): Make externally visible.
7263         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
7264
7265 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
7266
7267         * config/h8300/h8300-protos.h: Add a prototype for
7268         h8300_regs_ok_for_stm.
7269         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
7270         * config/h8300/h8300.md (stm_h8300s_2_advanced,
7271         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
7272         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
7273         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
7274         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
7275         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
7276         ldm_h8300s_4_normal, ldm_h8300s_4): Use
7277         h8300_regs_ok_for_stm().
7278
7279 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
7280
7281         PR c/14088
7282         * real.c (real_from_string): Look for 'X' as well as 'x' in
7283         hexfloat strings.
7284
7285 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
7286
7287         * config/h8300/h8300.md: Remove an incorrect comment about
7288         peephole2.  Add comments.
7289
7290 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
7291
7292         PR/14058
7293         * emit-rtl.c (set_decl_incoming_rtl): New.
7294         * tree.h (set_decl_incoming_rtl): New.
7295         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
7296         DECL_INCOMING_RTL.
7297         * ada/misc.c (adjust_decl_rtl): Likewise.
7298
7299 2004-02-10  Per Bothner  <per@bothner.com>
7300
7301         * c-opts.c (c_common_post_options):   Don't emit working directory
7302         in cpp output if -P was specified.
7303
7304 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
7305
7306         PR c/14092
7307         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
7308         negate_expr back to the original type.
7309
7310 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
7311
7312         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
7313         bump retaddr here.
7314
7315 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
7316
7317         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
7318         gen_lowpart_SUBREG): Move under the file in which they
7319         are actually declared.
7320
7321 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
7322
7323         * doc/sourcebuild.texi: Add libada documentation.
7324
7325         * doc/install.texi: Update documentation on Ada build, now
7326         that the GNAT lib and tools are built automatically.
7327
7328 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
7329
7330         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
7331         && TARGET_IRIX.
7332
7333 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
7334
7335         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
7336         boundaries outside build_component_ref() call (a macro in ObjC++).
7337
7338 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
7339
7340         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
7341         (init_cumulative_args): Likewise.
7342         (a7_overlap_mentioned_p): Delete prototype.
7343         * config/xtensa/xtensa.c (struct machine_function): Replace
7344         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
7345         Add set_frame_ptr_insn field.
7346         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
7347         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
7348         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
7349         at the function entry and replace the operand with the pseudo.
7350         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
7351         argument and record this flag in CUMULATIVE_ARGS.
7352         (function_arg): Remove result_mode and special-case code to handle
7353         arguments in a7.  Instead, set need_a7_copy flag when there is an
7354         incoming argument in a7.
7355         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
7356         and use the value recorded in cfun->machine->set_frame_ptr_insn.
7357         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
7358         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
7359         special-case code.
7360         (a7_overlap_mentioned_p): Delete.
7361         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
7362         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
7363         arguments to init_cumulative_args and pass "incoming" flag instead.
7364         (BLOCK_REG_PADDING): Delete.
7365         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
7366         checks for reload_in_progress and reload_completed.  Update calls to
7367         xtensa_copy_incoming_a7.
7368         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
7369         to call xtensa_copy_incoming_a7.
7370
7371 2004-02-09  DJ Delorie  <dj@redhat.com>
7372
7373         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
7374         longer modify standard_exec_prefix, standard_bindir_prefix, or
7375         standard_startfile_prefix.
7376
7377 2004-02-09  James E Wilson  <wilson@specifixinc.com>
7378
7379         PR c++/11295
7380         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
7381         to expand_expr_real call, and pass in alt_rtl as last argument.
7382
7383         PR libstdc++/5625
7384         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
7385         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
7386         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
7387         * except.c (expand_builtin_extend_pointer): New.
7388         * except.h (expand_builtin_extend_pointer): Declare.
7389
7390 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
7391
7392         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
7393         unaligned loads and stores.
7394
7395 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7396
7397         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
7398         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
7399
7400         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
7401         * config/mips/iris5.h: ... here.
7402         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
7403
7404         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
7405         * config/mips/iris5.h: ... here.
7406
7407 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7408
7409         * configure.ac: Remove default executable files before AC_PROG_CC.
7410         * configure: Regenerate.
7411
7412 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
7413
7414         PR target/13721
7415         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
7416         print a operand other than a register.
7417
7418 2004-02-09  Roger Sayle  <roger@eyesopen.com>
7419
7420         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
7421         tree code rather than call fold_convert, which doesn't specify a
7422         default floating point to integer conversion.
7423
7424 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
7425
7426         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
7427         code to support SGS assembler.  Reformat adjacent code where possible.
7428         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
7429         definition.
7430         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
7431         for '%#'.
7432         * config/m68k/linux.h, config/m68k/m68k.c,
7433         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
7434         macros and asm_printf() format strings.
7435         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
7436         * config/m68k/linux.h: Update copyright.
7437         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
7438
7439 2004-02-08  Andreas Schwab  <schwab@suse.de>
7440             Bernardo Innocenti  <bernie@develer.com>
7441
7442         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
7443         REGISTER_PREFIX.
7444         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
7445         frame pointer register, overridable by OS targets.
7446         * (M68K_REGNAME): Macro to obtain register name for asm output,
7447         eventually replacing %a6 with M68K_FP_REG_NAME.
7448         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
7449         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
7450         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
7451         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
7452         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
7453
7454 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
7455
7456         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
7457         hook_rtx_tree_int_null.
7458         * targhooks.c (default_struct_value_rtx): Remove.
7459         * targhooks.h: Remove the prototype for
7460         default_struct_value_rtx.
7461         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
7462         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
7463         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
7464         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
7465         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
7466         config/rs6000/rs6000.c, config/s390/s390.c,
7467         config/stormy16/stormy16.c, config/v850/v850.c,
7468         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
7469         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
7470
7471 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
7472
7473         * README.Portability: Change "ISO C89" to "ISO C90".
7474         * c-parse.in (primary, initelt): Likewise.
7475
7476 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
7477
7478         * real.c (encode_ibm_extended): Normalize the input value before
7479         converting it to a double.  Handle the case where a normal value
7480         rounds to infinity.
7481
7482 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
7483
7484         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
7485         warning.
7486         * cse.c (preferrable): Change to preferable. Update all of its
7487         callers.
7488         * genautomata.c (ainsn): Change
7489         first_ainsn_with_given_equialence_num to
7490         first_ainsn_with_given_equivalence_num.  Update all of its
7491         references.
7492
7493 2004-02-08  Jan Hubicka  <jh@suse.cz>
7494
7495         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
7496
7497 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
7498
7499         * function.c (assign_parms): Fix formatting.
7500
7501 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
7502
7503         * default.h (PROMOTE_PROTOTYPES): Remove.
7504         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
7505         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
7506         EXPAND_BUILTIN_SAVEREGS): Poison.
7507         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
7508         hook_bool_tree_false.
7509         (TARGET_PROMOTE_PROTOTYPES): Likewise.
7510         * target.h: Replace SETUP_INCOMING_VARARGS with
7511         targetm.calls.setup_incoming_varargs().
7512         * targhooks.c (default_promote_function_return): Remove.
7513         (default_promote_prototypes): Likewise.
7514         (default_struct_value_rtx): Always abort().
7515         (default_expand_builtin_saveregs): Always print an error
7516         message.
7517         (default_setup_incoming_varargs): Do nothing.
7518         (default_pretend_outgoing_varargs_named): Don't depend on
7519         SETUP_INCOMING_VARARGS.
7520         * targhooks.h: Remove the prototype for
7521         default_promote_function_return and
7522         default_promote_prototypes.
7523
7524 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
7525
7526         * system.h (SHARED_SECTION_ASM_OP): Poison.
7527         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
7528         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
7529
7530 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
7531
7532         Bug 13856
7533         * c-decl.c (diagnose_mismatched_decls): Only give special
7534         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
7535         is also true.
7536         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
7537         DECL_FUNCTION_CODE when defining a built-in function.
7538         Don't update DECL_ESTIMATED_INSNS.
7539         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
7540         FUNCTION_DECLs.
7541         * tree.h: Delete DECL_ESTIMATED_INSNS.
7542         * tree-inline.c (struct inline_data): Delete inlined_insns field.
7543         (expand_call_inline, optimize_inline_calls): Don't update
7544         DECL_ESTIMATED_INSNS nor inlined_insns.
7545         * cgraphunit.c (cgraph_analyze_function): Don't update
7546         DECL_ESTIMATED_INSNS.
7547
7548 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
7549
7550         * c-common.c (shadow_warning): Delete.
7551         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
7552         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
7553         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
7554         * c-parse.in (free_parser_stacks): Delete.
7555
7556 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
7557
7558         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
7559         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
7560         Use the top level mkinstalldirs, not the one in the gcc subdir.
7561         * mkinstalldirs: Remove (from the gcc subdir).
7562
7563 2004-02-07  Roger Sayle  <roger@eyesopen.com>
7564
7565         PR middle-end/13696
7566         * fold-const.c (fold_convert): New function to provide type
7567         conversion to the middle-end without using convert.
7568         (negate_expr, associate_trees, size_diffop, omit_one_operand,
7569         operand_equal_for_comparison_p, pedantic_omit_one_operand,
7570         invert_truthvalue, optimize_bit_field_compare, range_binop,
7571         decode_field_reference, make_range, build_range_check, unextend,
7572         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
7573         fold_binary_op_with_conditional_arg, fold_inf_compare,
7574         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
7575         convert with calls to fold_convert.
7576
7577 2004-02-07  Jan Hubicka  <jh@suse.cz>
7578
7579         * genrecog.c (find_operand): add extra argument stop.
7580         (validate_pattern): Verify that mach_dup is duplicating operand
7581         defined lexically earlier.
7582
7583 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
7584
7585         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
7586         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
7587         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
7588         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
7589         config/ia64/ia64.h, config/ip2k/ip2k.h,
7590         config/iq2000/iq2000.h, config/mips/iris5.h,
7591         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
7592         config/rs6000/aix51.h, config/rs6000/aix52.h,
7593         config/rs6000/darwin.h, config/rs6000/rs6000.h,
7594         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
7595         config/sparc/linux.h, config/sparc/linux64.h,
7596         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
7597         config/xtensa/xtensa.h: Remove the definitions of
7598         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
7599         MAX_WCHAR_TYPE_SIZE.
7600         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
7601         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
7602
7603 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
7604
7605         PR bootstrap/13990
7606         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
7607         gen_rtx_NE.
7608
7609 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
7610
7611         * var-tracking.c (vt_add_function_parameters): Surround checkings by
7612         #ifdef ENABLE_CHECKING and #endif.
7613
7614 2004-02-07  Roger Sayle  <roger@eyesopen.com>
7615
7616         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
7617         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
7618         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
7619         integer types and floating point with unsafe_math_optimizations.
7620         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
7621         Optimize A - B as A + (-B), if B is easily negated.
7622
7623 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
7624
7625         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
7626         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
7627         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
7628         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
7629         Update copyright.
7630
7631 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
7632
7633         * c-ppoutput.c, var-tracking.c: Fix comment typos.
7634
7635 2004-02-06  James E Wilson  <wilson@specifixinc.com>
7636
7637         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
7638         glibc 2.3 or better.
7639
7640 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7641
7642         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
7643         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
7644
7645 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
7646
7647         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
7648         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
7649         (SHLIB_MKMAP_OPTS): Delete.
7650         (TARGET_LIBGCC2_CFLAGS): Add -specs.
7651         (bispecs): Add rule.
7652         * config/rs6000/libgcc-ppc64.ver: New file.
7653         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
7654         (__floatdidf, __floatdisf): Optimize multiply.
7655         (__fixunstfdi): New function.
7656         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
7657         real and imag parts larger than one register.
7658         (function_arg): Correct type of reg used when fp arg split partially
7659         to stack.
7660         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
7661         and __MACH__ or __powerpc64__.
7662
7663 2004-02-06  Roger Sayle  <roger@eyesopen.com>
7664             Ulrich Weigand  <uweigand@de.ibm.com>
7665
7666         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
7667         of gen_highpart or gen_lowpart when the floating point format is
7668         wider than the result mode.
7669
7670 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
7671
7672         * dwarf2out.c (loclabel_num): Move into #ifdef
7673         DWARF2_DEBUGGING_INFO.
7674
7675 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
7676
7677         * objc/objc-act.c (build_super_template) the 'class' field of
7678         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
7679         (get_super_receiver): Likewise.
7680
7681 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7682
7683         * reload1.c (check_eliminable_occurrences): Optimize the reset
7684         of can_eliminate.
7685         (eliminate_regs_in_insn): Likewise.
7686
7687 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
7688             Josef Zlomek  <zlomekj@suse.cz>
7689
7690         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
7691         at the beginning of function, call dwarf2out_var_location for
7692         NOTE_INSN_VAR_LOCATION note.
7693         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
7694         decl_loc_table): New.
7695         (lookup_decl_loc): New function.
7696         (add_var_loc_to_decl): New function.
7697         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
7698         only if can_use_fbreg.
7699         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
7700         functions.
7701         (loc_descriptor): Likewise. Process VAR_LOCATION.
7702         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
7703         (loc_descriptor_from_tree): Call mem_loc_descriptor with
7704         can_use_fbreg == true.
7705         (add_location_or_const_value_attribute): Added parameter enum
7706         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
7707         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
7708         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
7709         with attr == DW_AT_location.
7710         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
7711         if frame_base_decl is defined and has a location list.
7712         (gen_variable_die): Call add_location_or_const_value_attribute with
7713         attr == DW_AT_location.
7714         (dwarf2out_var_location): New function.
7715         (dwarf2out_begin_function): New function.
7716         (dwarf2out_init): Create decl_loc_table.
7717
7718 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
7719
7720         * loop.c (force_movables): Transitively increase the priorities of
7721         all insns forces by an insn, not just the first one.
7722
7723 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
7724             Daniel Berlin <dberlin@dberlin.org>
7725
7726         Josef Zlomek  <zlomekj@suse.cz>
7727         * Makefile.in (var-tracking.o): New.
7728         * common.opt (fvar-tracking): New.
7729         * flags.h (flag_var_tracking): New.
7730         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
7731         * opts.c (common_handle_option): Add OPT_fvar_tracking.
7732         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
7733         * rtl.c (note_insn_name): Likewise.
7734         * rtl.def (VAR_LOCATION): New.
7735         * rtl.h (NOTE_VAR_LOCATION): New.
7736         (NOTE_VAR_LOCATION_DECL): New.
7737         (NOTE_VAR_LOCATION_LOC): New.
7738         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
7739         (variable_tracking_main): New exported function.
7740         * timevar.def (TV_VAR_TRACKING): New.
7741         * toplev.c (enum dump_file_index): Added DFI_vartrack.
7742         (dump_file): "vartrack" was added (-dV).
7743         (flag_var_tracking): New.
7744         (f_options): "var-tracking" was added.
7745         (rest_of_handle_variable_tracking): New function.
7746         (rest_of_compilation): Run variable tracking.
7747         (process_options): If user has not specified flag_var_tracking set it
7748         according to optimize, debug_info_level and debug_hooks.
7749         * tree.h (frame_base_decl): New.
7750         * var-tracking.c: New file.
7751         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
7752         (ia64_override_options): Set flags to run variable tracking in machine
7753         dependent reorg instead of toplev.c.
7754         (ia64_reorg): Run variable tracking if wanted.
7755         * doc/invoke.texi: Mention variable tracking in -dV,
7756         add and -fvar-tracking.
7757         * doc/passes.texi: Added variable tracking pass.
7758
7759         Daniel Berlin <dberlin@dberlin.org>
7760         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
7761         * dbxout.c (dbx_debug_hooks): Likewise.
7762         (xcoff_debug): Likewise.
7763         * debug.c (do_nothing_debug_hooks): Likewise.
7764         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
7765         * dwarfout.c (dwarf_debug_hooks): Likewise.
7766         * sdbout.c (sdb_debug_hooks): Likewise.
7767         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
7768         * final.c (final_scan_insn): Call var_location debug hook for each
7769         NOTE_INSN_VAR_LOCATION.
7770
7771 2004-02-06  Jan Hubicka  <jh@suse.cz>
7772
7773         * flow.c (update_life_info): Allocate reg_deaths when called from
7774         scheudler.
7775         (attempt_auto_inc):  Update life ranges accordingly.
7776
7777 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
7778
7779         PR debug/11816
7780         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
7781
7782 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
7783
7784         * cfganal.c (flow_call_edges_add): Never split a libcall block.
7785
7786 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
7787
7788         * dwarf2out.c (output_loc_list): Don't use deltas if we have
7789         a separate line info table in use.
7790         Use the correct size for terminators.
7791         (output_die): Use offset, not delta.
7792
7793 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
7794
7795         * doc/invoke.texi: Remove the pni option from -mfpmath=.
7796
7797 2004-02-06  Jan Hubicka  <jh@suse.cz>
7798
7799         * recog.c (split_all_insns): Do not update reg info.
7800         * regrename.c (regrename_optimize): Likewise.
7801         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
7802         * flow.c (struct propagate_block_info): Add insn_num field.
7803         (reg_deaths): New array.
7804         (life_analysis): Free reg_deaths info.
7805         (allocate_reg_life_data): Allocate reg_deaths array.
7806         (propagate_one_insn): Use new array.
7807         (init_propagate_block): Initialize it.
7808         (free_propagate_block_info): Finish compuation of
7809         REG_LIVE_LENGTH
7810         (attempt_auto_inc): Sanity check that REG_INFO is not
7811         computed at same time.
7812         (mark_used_regs): Update new array.
7813
7814         * reg-stack.c (subst_stack_regs): Unshare clobbers before
7815         substitution.
7816
7817 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7818
7819         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
7820         *extendqisi2_short_displ.
7821
7822 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
7823
7824         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
7825         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
7826         (emit_library_call_value_1): Likewise pass nargs.
7827         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
7828         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
7829         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
7830         parameter instead of scanning TYPE_ARGS_TYPES to count args.
7831         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
7832         prototype.
7833         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
7834         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
7835         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
7836         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
7837         INIT_CUMULATIVE_ARGS.
7838         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
7839         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
7840         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
7841         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
7842         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
7843         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
7844         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
7845         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
7846         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
7847         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
7848         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
7849         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
7850
7851 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7852
7853         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
7854         possible.
7855
7856 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7857
7858         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
7859         note containing (plus (reg) (const_int)), where reg is an
7860         eliminable reg, then perform the register elimination without
7861         depending on eliminate_regs().
7862
7863 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7864
7865         * config/arc/arc.c (arc_return_in_memory): Check the return
7866         value of int_size_in_bytes against -1.  Don't check
7867         TREE_ADDRESSABLE.
7868         * config/avr/avr.c (avr_return_in_memory): Check the return
7869         value of int_size_in_bytes against -1.
7870         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
7871         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
7872         Likewise.
7873         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
7874         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
7875         Likewise.
7876
7877 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7878
7879         * config/frv/frv-protos.h: Remove the prototype for
7880         frv_setup_incoming_varargs.
7881         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
7882         (frv_setup_incoming_varargs): Make it static.
7883         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
7884
7885 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7886
7887         * config/fr30/fr30-protos.h: Remove the prototype for
7888         fr30_setup_incoming_varargs.
7889         Update the prototypes for fr30_num_arg_regs and
7890         fr30_function_arg_partial_nregs.
7891         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
7892         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
7893         (fr30_setup_incoming_varargs): Make it static.
7894         Add argument second_time.  Don't do anything when second_time
7895         is nonzero.
7896         (fr30_num_arg_regs): Change the type of the first argument to
7897         enum machine_mode.
7898         (fr30_function_arg_partial_nregs): Change the type of the
7899         second argument to enum machine_mode.
7900         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
7901         (SETUP_INCOMING_VARARGS): Remove.
7902
7903 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
7904
7905         * config/arc/arc-protos.h: Remove the prototype for
7906         arc_setup_incoming_varargs.
7907         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
7908         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
7909         (arc_setup_incoming_varargs): Make it static.
7910         (arc_external_libcall): Likewise.
7911         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
7912         Remove the commented-out definition of
7913         ASM_OUTPUT_EXTERNAL_LIBCALL.
7914
7915 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
7916
7917         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
7918         to $$(slibdir) in the installation commands.
7919
7920 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
7921
7922         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
7923         with inner_regno, not regno.
7924         * rtlanal.c (refers_to_regno_p): Same.
7925
7926 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7927
7928         * config.gcc: Remove i370 support.
7929
7930 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
7931
7932         * doc/install.texi:  Update automake and autoconf version
7933         requirements.  Note where to find gcj automake version.
7934
7935 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
7936
7937         * Makefile.in (generate-manpages): Move dependencies to ...
7938         (man): here.
7939         * doc/makefile.texi: Document new targets.
7940         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
7941
7942 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
7943
7944         PR/13485
7945         Makefile.in (srcextra):  Add a level of indirection to ...
7946         (gcc.srcextra): ... here.
7947         (po-generated): Delete.
7948         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
7949         options.c.
7950         (start.encap): Remove superfluous lang.srcextra dependency.
7951         objc/Make-lang.in (po-generated):  Delete.
7952
7953 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7954
7955         * config/ia64/ia64.c (REG_GP): Remove.
7956
7957 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7958
7959         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
7960
7961 2004-02-05  Devang Patel  <dpatel@apple.com>
7962
7963         * dwarf2out.c (force_type_die): Look up input type itself
7964         instead of root_type() of type.
7965
7966 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
7967
7968         * config/s390/s390.md ("*tmqidi_ext"): New insn.
7969         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
7970         pre-reload splitters are transformed to post-reload
7971         define_insn_and_split patterns.
7972         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
7973
7974 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7975
7976         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
7977         TARGET_PROMOTE_PROTOTYPES.
7978
7979 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7980
7981         PR middle-end/13750
7982         Revert:
7983         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
7984         PR pch/13361
7985         * c-typeck.c (constructor_asmspec): Delete.
7986         (struct initializer_stack): Delete field 'asmspec'.
7987         (start_init): Delete saving of asmspec.
7988         (finish_init): Don't update constructor_asmspec.
7989         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
7990         * stmt.c (expand_asm): Duplicate strings from tree.
7991         (expand_asm_operands): Likewise.
7992         * tree.c (tree_size): Update computation of size of STRING_CST.
7993         (make_node): Don't make STRING_CST nodes.
7994         (build_string): Allocate string with tree node.
7995         * tree.def (STRING_CST): Update comment.
7996         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
7997         (tree_string): Place contents of string in tree node.
7998         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
7999         from tree.
8000
8001 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
8002
8003         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
8004         msgid.
8005
8006 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
8007
8008         * config/rs6000/altivec.md (*movv4si_internal): At least one
8009         operand must be altivec_register_operand.
8010         (*movv8hi_internal1): Likewise.
8011         (*movv16qi_internal1): Likewise.
8012         (*movv4sf_internal1): Likewise.
8013
8014 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
8015
8016         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
8017         * configure: Regenerate.
8018
8019 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
8020
8021         * doc/install.texi: Update description of --gxx-include-dir to
8022         give correct default value.
8023
8024 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
8025
8026         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
8027         8 with MAC_REG.
8028
8029 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
8030
8031         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
8032         gen_rtx_PARALLEL.
8033
8034 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
8035
8036         * emit-rtl.c: Update the comment about the file.
8037
8038 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
8039
8040         * sourcebuild.texi (Test Idioms): Update testcase naming
8041         conventions.
8042
8043 2004-02-04  Per Bothner  <per@bothner.com>
8044
8045         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
8046         * c-ppoutput.c (pp_dir_change):  New function.
8047         * c-common.h (pp_dir_change):  New declaration.
8048         * cpplib.h (struct cpp_options):  Remove working_directory field.
8049         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
8050         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
8051         Don't handle -fworking_directory here, but in c_common_post_options.
8052         (read_original_directory): Don't back up when done.
8053         Don't clear no-longer used working_directory flag.
8054         * cpplib.h:  Update declarations to match.
8055         * c-lex.c (cb_dir_change):  Move to c-opts.c.
8056         (init_c_lex):  Don't set dir_change callback here, since we want
8057         to set it even if flag_preprocess_only.
8058         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
8059         (c_common_post_options):  Set dir_change callback.
8060         Call pp_dir_change if approporiate.
8061         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
8062         unneeded parameter and result. Do LC_RENAME for <built-in>.
8063         (c_common_post_options):  Call cpp_read_main_file here instead.
8064         (c_common_init):  Update accordingly.
8065         (push_command_line_include):  Don't cpp_push_main_file.
8066         Do LC_RENAME rather than LC_LEASE to get back to main file.
8067         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
8068         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
8069         files, but call finish_options for all files.
8070         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
8071         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
8072         cpp_find_main_file + cpp_push_main_file.
8073         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
8074         * opts.c (handle_options):  Only set main_input_filename first time.
8075
8076 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
8077
8078         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
8079
8080 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
8081
8082         * reload.c (find_equiv_reg): When checking for register overlap,
8083         don't index hard_regno_nregs with a pseudo-reg.
8084
8085 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
8086
8087         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
8088
8089 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
8090
8091         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
8092         against FIRST_PSEUDO_REGISTER.
8093
8094 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
8095
8096         * Makefile.in: Move target, host overrides after per-language
8097         fragments.
8098
8099         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
8100         (GNATLIBCFLAGS): Remove -g.
8101
8102 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8103
8104         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
8105         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
8106         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
8107         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
8108         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
8109         config/sparc/sparc.c, config/vax/vax.c: Revert the
8110         replacements of "FALLTHRU" with "Fall through" done in the
8111         previous patch.
8112
8113 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8114
8115         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
8116         config/arm/arm.c, config/arm/arm.md,
8117         config/cris/cris-protos.h, config/fr30/fr30.c,
8118         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
8119         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
8120         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
8121         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
8122         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
8123         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
8124         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
8125         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
8126         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
8127         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
8128         config/s390/s390.md, config/sparc/netbsd-elf.h,
8129         config/sparc/openbsd.h, config/sparc/sparc.c,
8130         config/xtensa/lib2funcs.S: Fix comment formatting.
8131
8132 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8133
8134         * config/alpha/alpha.c, config/arc/arc.c,
8135         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
8136         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
8137         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
8138         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
8139         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
8140         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
8141         config/iq2000/iq2000.c, config/m32r/m32r.c,
8142         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
8143         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
8144         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
8145         config/rs6000/rs6000.h, config/sparc/sparc.c,
8146         config/vax/vax.c: Fix comment typos.  Follow spelling
8147         conventions.
8148
8149 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8150
8151         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
8152         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
8153         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
8154         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
8155         config/arm/fpa.md, config/arm/iwmmxt.md,
8156         config/arm/netbsd-elf.h, config/arm/netbsd.h,
8157         config/m68hc11/m68hc11.md, config/mips/iris5.h,
8158         config/mn10300/mn10300.md, config/rs6000/altivec.md,
8159         config/sparc/netbsd-elf.h: Update copyright.
8160
8161 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
8162
8163         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
8164         for all modes whose size is greater than 8 bytes if ARCH32.
8165         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
8166         by reference if ARCH32.
8167
8168 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
8169
8170         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
8171
8172 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
8173
8174         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
8175         to before adddi3 insn patterns.
8176         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
8177         "reload_insi"): Move to before addsi3 insn patterns.
8178
8179 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
8180
8181         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
8182         parameter.  Use it instead of current_function_is_thunk.
8183         * function.h (struct function): Update documentation for is_thunk.
8184         * tree.h (CALL_FROM_THUNK_P): New macro.
8185         * config/alpha/alpha.c (alpha_sa_mask): Do not check
8186         no_new_pseudos when testing current_function_is_thunk.
8187         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
8188
8189 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8190
8191         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
8192         TARGET_SETUP_INCOMING_VARARGS.
8193
8194 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8195
8196         * emit-rtl.c (gen_rtx): Remove.
8197         * genattrtab.c: Don't mention gen_rtx in a comment.
8198         * rtl.h: Remove the prototype for gen_rtx.
8199         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
8200
8201 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8202
8203         * config/arc/arc.h, config/fr30/fr30.h
8204         (SETUP_INCOMING_VARARGS): Remove the target-independent
8205         comments.
8206         * doc/tm.texi: Don't mention deprecated target macros.
8207
8208 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8209
8210         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
8211         target-independent comment.
8212
8213 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8214
8215         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
8216         mention deprecated target macros.
8217
8218 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
8219
8220         * config.gcc: Remove obsolete ports and configurations.
8221         * config/linux-aout.h, config/netware.h,
8222         config/t-linux-gnulibc1, config/d30v/abi,
8223         config/d30v/d30v-protos.h, config/d30v/d30v.c,
8224         config/d30v/d30v.h, config/d30v/d30v.md,
8225         config/d30v/libgcc1.asm, config/d30v/t-d30v,
8226         config/dsp16xx/dsp16xx-modes.def,
8227         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
8228         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
8229         config/i370/README, config/i370/i370-c.c,
8230         config/i370/i370-protos.h, config/i370/i370.c,
8231         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
8232         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
8233         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
8234         config/i386/moss.h, config/i386/netware.h,
8235         config/i386/svr3.ifile, config/i386/svr3dbx.h,
8236         config/i386/svr3gas.h, config/i386/svr3z.ifile,
8237         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
8238         config/i960/i960-c.c, config/i960/i960-coff.h,
8239         config/i960/i960-modes.def, config/i960/i960-protos.h,
8240         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
8241         config/i960/rtems.h, config/i960/t-960bare,
8242         config/m68k/hp310.h, config/m68k/hp320.h,
8243         config/m68k/hp320base.h, config/m68k/m68kv4.h,
8244         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
8245         Remove.
8246         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
8247         doc/md.texi: Remove mentions of obsolete ports.
8248
8249 2004-02-04  Jan Hubicka  <jh@suse.cz>
8250
8251         * alias.c (find_base_term, get_addr):  Do not dereference NULL
8252         pointer when all VALUE's locations has been invalidated.
8253         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
8254
8255 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
8256
8257         * doc/invoke.texi (x86 options): Fix spelling/wording.
8258
8259 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
8260
8261         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
8262         put the original string in a comment.
8263         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
8264         * config/mips/mips.c (mips_output_ascii): Likewise.
8265         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
8266
8267 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
8268
8269         * system.h (GIV_SORT_CRITERION): Poison.
8270         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
8271         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
8272
8273 2004-02-03  Roger Sayle  <roger@eyesopen.com>
8274
8275         PR target/9348
8276         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
8277         multiplies with a multiplication of the wrong signedness, its the
8278         signedness of the multiplication that we've performed that needs to
8279         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
8280         if expand_mult_highpart_adjust places the result in target.
8281
8282 2004-02-03  Richard Henderson  <rth@redhat.com>
8283
8284         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
8285
8286 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
8287
8288         * config.gcc (sh[234]l): Use little endian fragments.
8289
8290 2004-02-03  Paul Koning  <pkoning@equallogic.com>
8291
8292         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
8293         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
8294         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
8295         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
8296         floating point format.
8297         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
8298         the above functions.
8299         (output_move_quad): Output float values in correct target format.
8300         (legitimate_const_double_p): New function.
8301         * config/pdp11/pdp11.h: Fix typos.
8302         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
8303         (TARGET_FLOAT_FORMAT): Ditto.
8304         (pdp11_f_format, pdp11_d_format): Add external declarations.
8305         (MAX_REGS_PER_ADDRESS): Corrected.
8306         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
8307         (PRINT_OPERAND): Output float literals in target format.
8308
8309 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
8310
8311         PR c++/13975
8312         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
8313         TI_PRIVATE.
8314         (access_public_node): Redefine.
8315         (access_protected_node): Likewise.
8316         (access_private_node): Likewise.
8317         * tree.c (build_common_tree_nodes): Create access_public_node,
8318         access_protected_node, and access_private_node.
8319
8320 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
8321
8322         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
8323         (MASK_INLINE_INT_DIV_THR): Ditto.
8324         (MASK_INLINE_SQRT_LAT): Ditto.
8325         (MASK_INLINE_SQRT_THR): Ditto.
8326         (MASK_DWARF2_ASM): Ditto.
8327         (MASK_EARLY_STOP_BITS): Ditto.
8328
8329 2004-02-02  Paul Brook  <paul@codesourcery.com>
8330
8331         Merge from csl-arm-branch.
8332
8333         2004-01-30  Paul Brook  <paul@codesourcery.com>
8334
8335         * aof.h (REGISTER_NAMES): Add vfp reg names
8336         (ADDITIONAL_REGISTER_NAMES): Ditto.
8337         * aout.h (REGISTER_NAMES): Ditto.
8338         (ADDITIONAL_REGISTER_NAMES): Ditto.
8339         * arm-protos.h: Update/Add Prototypes.
8340         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
8341         Only allow 0.0 for VFP.
8342         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
8343         (values_fp): Rename from values_fpa.  Update Users.
8344         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
8345         Update users.  Only check valid constants for this hardware.
8346         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
8347         Only allow consts for FPA.
8348         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
8349         Only allow consts for FPA.
8350         (use_return_insn): Check for saved VFP regs.
8351         (arm_legitimate_address_p): Handle VFP DFmode addressing.
8352         (arm_legitimize_address): Ditto.
8353         (arm_general_register_operand): New function.
8354         (vfp_mem_operand): New function.
8355         (vfp_compare_operand): New function.
8356         (vfp_secondary_reload_class): New function.
8357         (arm_float_compare_operand): New function.
8358         (vfp_print_multi): New function.
8359         (vfp_output_fstmx): New function.
8360         (vfp_emit_fstm): New function.
8361         (arm_output_epilogue): Output VPF reg restore code.
8362         (arm_expand_prologue): Output VFP reg save code.
8363         (arm_print_operand): Add 'P'.
8364         (arm_hard_regno_mode_ok): Return modes for VFP regs.
8365         (arm_regno_class): Return classes for VFP regs.
8366         (arm_compute_initial_elimination_offset): Include space for VFP regs.
8367         (arm_get_frame_size): Ditto.
8368         * arm.h (FIXED_REGISTERS): Add VFP regs.
8369         (CALL_USED_REGISTERS): Ditto.
8370         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
8371         (FIRST_VFP_REGNUM): Define.
8372         (LAST_VFP_REGNUM): Define.
8373         (IS_VFP_REGNUM): Define.
8374         (FIRST_PSEUDO_REGISTER): Include VFP regs.
8375         (HARD_REGNO_NREGS): Handle VFP regs.
8376         (REG_ALLOC_ORDER): Add VFP regs.
8377         (enum reg_class): Add VFP_REGS.
8378         (REG_CLASS_NAMES): Ditto.
8379         (REG_CLASS_CONTENTS): Ditto.
8380         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
8381         (REG_CLASS_FROM_LETTER): Add 'w'.
8382         (EXTRA_CONSTRAINT_ARM): Add 'U'.
8383         (EXTRA_MEMORY_CONSTRAINT): Define.
8384         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
8385         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
8386         (REGISTER_MOVE_COST): Ditto.
8387         (PREDICATE_CODES): Add arm_general_register_operand,
8388         arm_float_compare_operand and vfp_compare_operand.
8389         * arm.md (various): Rename as above.
8390         (divsf3): Enable when TARGET_VFP.
8391         (divdf3): Ditto.
8392         (movdfcc): Ditto.
8393         (sqrtsf2): Ditto.
8394         (sqrtdf2): Ditto.
8395         (arm_movdi): Disable when TARGET_VFP.
8396         (arm_movsi_insn): Ditto.
8397         (movsi): Only split with general regs.
8398         (cmpsf): Use arm_float_compare_operand.
8399         (push_fp_multi): Restrict to TARGET_FPA.
8400         (vfp.md): Include.
8401         * vfp.md: New file.
8402         * fpa.md (various): Rename as above.
8403         * doc/md.texi: Document ARM w and U constraints.
8404
8405         2004-01-15  Paul Brook  <paul@codesourcery.com>
8406
8407         * config.gcc: Add with_fpu.  Allow with-float=softfp.
8408         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
8409         Break out of loop when we find a float-abi.  Fix typo.
8410         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
8411         Set -mfloat-abi=.
8412         * doc/install.texi: Document --with-fpu.
8413
8414         2003-01-14  Paul Brook  <paul@codesourcery.com>
8415
8416         * config.gcc (with_arch): Add armv6.
8417         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
8418         * config/arm/arm.c (arm_overrride_options): Ditto.
8419
8420         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
8421
8422         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
8423         (FL_ARCH6): Renamed from FL_ARCH6J.
8424         (arm_arch3m): Renamed from arm_fast_multiply.
8425         (arm_arch6): Renamed from arm_arch6j.
8426         * arm.h: Update all uses of above.
8427         * arm-cores.def: Likewise.
8428         * arm.md: Likewise.
8429
8430         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
8431         not arm6j.  Add entry for arch armv6.
8432
8433         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
8434
8435         * arm.c (arm_emit_extendsi): Delete.
8436         * arm-protos.h (arm_emit_extendsi): Delete.
8437         * arm.md (zero_extendhisi2): Also handle zero-extension of
8438         non-subregs.
8439         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
8440         (thumb_zero_extendhisi2): Only match if not v6.
8441         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
8442         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
8443         (thumb_extendqisi2): Likewise.
8444         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
8445         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
8446         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
8447         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
8448         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
8449         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
8450         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
8451         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
8452         (arm_extendqisi2addsi): Likewise.
8453
8454         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
8455
8456         Revert this change:
8457         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
8458         + REG addressing modes.
8459
8460         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
8461         + REG addressing modes.
8462
8463         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
8464
8465         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
8466         CONSTANT_P_RTX.
8467
8468         2003-30-12  Paul Brook  <paul@codesourcery.com>
8469
8470         * longlong.h: protect arm inlines with !defined (__thumb__)
8471
8472         2003-30-12  Paul Brook  <paul@codesourcery.com>
8473
8474         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
8475
8476         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
8477
8478         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
8479         change.
8480
8481         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
8482
8483         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
8484         to the virtual incoming args pointer for downward stacks.
8485
8486         2003-12-29  Paul Brook  <paul@codesourcery.com>
8487
8488         * config/arm/arm-cores.def: Add cost function.
8489         * config/arm/arm.c (arm_*_rtx_costs): New functions.
8490         (arm_rtx_costs): Remove
8491         (struct processors): Add rtx_costs field.
8492         (all_cores, all_architectures): Ditto.
8493         (arm_override_options): Set targetm.rtx_costs.
8494         (thumb_rtx_costs): New function.
8495         (arm_rtx_costs_1): Remove cases handled elsewhere.
8496         * config/arm/arm.h (processor_type): Add COSTS parameter.
8497
8498         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
8499
8500         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
8501         (arm926ejs.md): Include it.
8502         * config/arm/arm926ejs.md: New pipeline description.
8503
8504         2003-12-24  Paul Brook  <paul@codesourcery.com>
8505
8506         * config/arm/arm.c (arm_arch6j): New variable.
8507         (arm_override_options): Set it.
8508         (arm_emit_extendsi): New function.
8509         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
8510         * config/arm/arm.h (arm_arch6j): Declare.
8511         * config/arm/arm.md: Add sign/zero extend insns.
8512
8513         2003-12-23  Paul Brook  <paul@codesourcery.com>
8514
8515         * config/arm/arm.c (all_architectures): Add armv6.
8516         * doc/invoke.texi: Document it.
8517
8518         2003-12-19  Paul Brook  <paul@codesourcery.com>
8519
8520         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
8521         insn patterns to match.
8522         * config/arm/arm-generic.md: Ditto.
8523         * config/arm/cirrus.md: Ditto.
8524         * config/arm/fpa.md: Ditto.
8525         * config/amm/iwmmxt.md: Ditto.
8526         * config/arm/arm1026ejs.md: Ditto.
8527         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
8528         for 11_loadb.
8529
8530         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
8531
8532         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
8533         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
8534         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
8535         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
8536         arm_no_early_mul_dep): Correctly deal with conditional execution,
8537         parallels and single shift operations.
8538         (arm_no_early_alu_shift_value_dep): Define.
8539         * arm.md (attr type): Replace 'normal' with 'alu',
8540         'alu_shift' and 'alu_shift_reg'.
8541         (attr core_cycles): Adjust.
8542         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
8543         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
8544         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
8545         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
8546         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
8547         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
8548         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
8549         attribute appropriately.
8550         * config/arm/arm1026ejs.md (alu_op): Adjust.
8551         (alu_shift_op, alu_shift_reg_op): New.
8552         * config/arm/arm1136.md: Add better bypasses for early
8553         registers. Remove load[234] and store[234] bypasses.
8554         (11_alu_op): Adjust.
8555         (11_alu_shift_op, 11_alu_shift_reg_op): New.
8556
8557         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
8558
8559         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
8560         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
8561         * config/arm/arm.c (arm_no_early_store_addr_dep,
8562         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
8563         * config/arm/arm1026ejs.md: Add load-store bypass.
8564         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
8565         Add bypasses between instructions.
8566
8567         2003-12-10  Paul Brook  <paul@codesourcery.com>
8568
8569         * config/arm/arm.c (arm_fpu_model): New variable.
8570         (arm_fload_abi): New variable.
8571         (target_fpe_name): Rename from target_fp_name.
8572         (target_fpu_name): New variable.
8573         (arm_is_cirrus): Remove.
8574         (fpu_desc): New struct.
8575         (all_fpus): Define.
8576         (pf_model_for_fpu): Define.
8577         (all_loat_abis): Define.
8578         (arm_override_options): Set fp arch flags based on -mfpu=
8579         and -float-abi=.
8580         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
8581         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
8582         (*): Use new TARGET_* flags.
8583         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
8584         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
8585         (TARGET_SOFT_FLOAT): Ditto.
8586         (TARGET_SOFT_FLOAT_ABI): New.
8587         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
8588         TARGET_HARD_FLOAT.
8589         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
8590         (TARGET_OPTIONS): Add -mfpu=.
8591         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
8592         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
8593         (arm_pf_model): Define.
8594         (arm_float_abi_type): Define.
8595         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
8596         * config/arm/arm.md: Use new TARGET_* flags.
8597         * config/arm/cirrus.md: Ditto.
8598         * config/arm/fpa.md: Ditto.
8599         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
8600         * config/arm/semi.h (ASM_SPEC): Ditto.
8601         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
8602         (FPUTYPE_DEFAULT): Set to VFP.
8603         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
8604
8605         2003-11-22  Phil Edwards  <phil@codesourcery.com>
8606
8607         PR target/12476
8608         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
8609         'bx' instead of 'b' to avoid branch range restrictions.  Output
8610         the thunk immediately before the thunked-to function.
8611         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
8612         .thumb_func if a thunk is being generated.  Emit .code 16 along
8613         with .thumb_func if a thunk is not being generated.
8614
8615         2003-11-15  Nicolas Pitre <nico@cam.org>
8616
8617         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
8618         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
8619         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
8620         (lshrdi3_iwmmxt): Renamed from lshrdi3.
8621         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
8622
8623         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
8624             Ian Lance Taylor  <ian@wasabisystems.com>
8625
8626         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
8627         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
8628
8629         2003-11-05  Phil Edwards  <phil@codesourcery.com>
8630
8631         * config/arm/arm.md (insn):  Add new V6 instruction names.
8632         (generic_sched):  New attr.
8633         * config/arm/arm-generic.md:  Use generic_sched here.
8634         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
8635         stages of pipeline.  Adjust latency counts accordingly.
8636         * config/arm/arm1136jfs.md:  New file.
8637
8638         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
8639
8640         * config/arm/arm.h (processor_type): New enumeration type.
8641         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
8642         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
8643         (CPP_CPU_ARCH_SPEC): Likewise.
8644         * config/arm/arm.c (arm_tune): New variable.
8645         (all_cores): Use cores.def.
8646         (all_architectures): Add representative processor.
8647         (arm_override_options): Restructure way in which tuning
8648         information is deduced.
8649         * arm.md: Update "insn" and "type" attributes throughout.
8650         (insn): New attribute.
8651         (type): Compute "mult" from "insn" attribute.  Add load2,
8652         load3, load4 alternatives.
8653         (arm automaton): Move to arm-generic.md.
8654         * config/arm/arm-cores.def: New file.
8655         * config/arm/arm-generic.md: Likewise.
8656         * config/arm/arm1026ejs.md: Likewise.
8657
8658 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
8659
8660         * doc/invoke.texi (SPARC options): Remove -mflat and
8661         all -mxxx (xxx:chip) options.
8662         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
8663         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
8664         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
8665         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
8666         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
8667         * config/sparc/sparc.c: Likewise.
8668         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
8669         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
8670         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
8671         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
8672         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
8673         (sparc_flat_must_save_register_p): Likewise.
8674         (sparc_flat_compute_frame_size): Likewise.
8675         (sparc_flat_save_restore): Likewise.
8676         (sparc_flat_function_prologue): Likewise.
8677         (sparc_flat_function_epilogue): Likewise.
8678         (sparc_flat_epilogue_delay_slots): Likewise.
8679         (sparc_flat_eligible_for_epilogue_delay): Likewise.
8680         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
8681         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
8682         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
8683         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
8684         (CONDITIONAL_REGISTER_USAGE): Likewise.
8685         (FRAME_POINTER_REQUIRED): Likewise.
8686         (INITIAL_ELIMINATION_OFFSET): Likewise.
8687         (BASE_RETURN_VALUE_REG): Likewise.
8688         (BASE_OUTGOING_VALUE_REG): Likewise.
8689         (BASE_PASSING_ARG_REG): Likewise.
8690         (BASE_INCOMING_ARG_REG): Likewise.
8691         (INCOMING_REGNO): Likewise.
8692         (OUTGOING_REGNO): Likewise.
8693         (LOCAL_REGNO): Likewise.
8694         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
8695         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
8696         (EPILOGUE_USES): Likewise.
8697         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
8698         ("flat" attribute): Delete.
8699         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
8700         handling.
8701         (call followed by jump define_peephole's): Delete.
8702         (exception_receiver): Likewise.
8703         (builtin_setjmp_receiver): Likewise.
8704         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
8705
8706 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
8707
8708         PR c/11658
8709         PR c/13994
8710         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
8711         on langhooks.h.
8712         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
8713         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
8714         Include langhooks.h.  Replace c_common_truthvalue_conversion
8715         with the truthvalue_conversion language hook throughout.
8716         (expr_no_commas): Call default_conversion before save_expr
8717         for the first term of the production 'x ? : y'.
8718         * c-common.c (c_common_truthvalue_conversion): Remove
8719         obsolete block.  Invoke recursively the hook instead
8720         of this function.
8721         * c-convert.c (convert): handle ERROR_MARK_NODE.
8722         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
8723         returned by the truthvalue_conversion language hook.
8724         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
8725         c_objc_common_truthvalue_conversion.
8726         * c-objc-common.c (c_objc_common_truthvalue_conversion):
8727         New function.
8728         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
8729         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
8730         c_objc_common_truthvalue_conversion.
8731
8732 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
8733
8734         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
8735         of gen_rtx.
8736         (LIBCALL_VALUE): Likewise.
8737         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
8738         gen_rtx_CC0 instead of gen_rtx.
8739         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
8740         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
8741         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
8742         gen_rtx.
8743         (m68hc11_emit_logical): Likewise.
8744
8745 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
8746
8747         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
8748         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
8749         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
8750         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
8751         config/mips/mips.md, config/mmix/mmix.c,
8752         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
8753         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
8754         config/rs6000/altivec.md, config/s390/s390.c,
8755         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
8756         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
8757         Use const0_rtx instead of GEN_INT (0).  Do the same for other
8758         constants that are readily available.
8759
8760 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
8761
8762         * doloop.c, optabs.c, regmove.c, sched-deps.c,
8763         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
8764         instead of GEN_INT (0).  Do the same for other constants that
8765         are readily available.
8766
8767 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
8768
8769         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
8770         gen_rtx.
8771         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
8772         instead of gen_rtx.
8773         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
8774         gen_rtx.
8775         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
8776         gen_rtx_ASHIFT instead of gen_rtx.
8777         (udivmodqi4): Likewise.
8778
8779 2004-02-02  Richard Henderson  <rth@redhat.com>
8780
8781         PR target/13789
8782         * expr.c (store_expr): Use force_operand before emit_move_insn.
8783
8784 2004-02-02  Jeff Law  <law@redhat.com>
8785             Roger Sayle  <roger@eyesopen.com>
8786
8787         * tree.c (commutative_tree_code, associative_tree_code): New
8788         functions.
8789         (iterative_hash_expr): Use commutative_tree_code.
8790         * tree.h (commutative_tree_code, associative_tree_code): Declare.
8791         * fold-const.c (operand_equal_p): Use commutative_tree_code
8792         rather than inlining the commutativity check.
8793         (fold): Likewise.
8794
8795 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
8796
8797         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
8798         * config/frv/frv-protos.h: Remove the prototype for
8799         frv_function_arg_keep_as_reference.
8800         * config/frv/frv.c (frv_function_arg_keep_as_reference):
8801         Remove.
8802         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
8803         * config/stormy16/stormy16.h: Remove the commented-out
8804         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
8805
8806 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
8807
8808         PR target/13914
8809         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
8810         for retaddr_column.
8811
8812 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
8813
8814         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
8815         gen_rtx.
8816
8817 2004-02-02  Eric Christopher  <echristo@redhat.com>
8818             Zack Weinberg  <zack@codesourcery.com>
8819
8820         * c-opts.c (c_common_handle_option): Add -finput-charset.
8821         * c.opt: Ditto.
8822         * cppcharset.c (one_iso88591_to_utf8): Remove.
8823         (convert_iso88591_utf8): Ditto.
8824         (conversion_tab): Remove 8859-1 converter.
8825         (_cpp_input_to_utf8): Remove.
8826         (_cpp_init_iconv_buffer): Ditto.
8827         (_cpp_close_iconv_buffer): Ditto.
8828         (_cpp_convert_input): New function.
8829         (_cpp_default_encoding): Ditto.
8830         * cpphash.h: Add/remove prototypes for above.
8831         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
8832         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
8833         for narrow execution and input character sets.
8834         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
8835         * doc/cppopts.texi: Document -finput-charset.
8836
8837 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
8838
8839         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
8840         against FIRST_PSEUDO_REGISTER.
8841
8842 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
8843
8844         * doc/invoke.texi (SPARC options): Further improve.
8845
8846 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
8847
8848         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
8849         config/h8300/h8300.c, config/ip2k/ip2k.md,
8850         config/iq2000/iq2000.c, config/mips/mips.c,
8851         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
8852         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
8853         config/v850/v850.md: Fix indentation.
8854
8855 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
8856
8857         * config/sparc/sparc.c (function_arg_slotno): Align TImode
8858         arguments on a 16-byte boundary in the parameter array if ARCH64.
8859         Split handling of TFmode.
8860
8861 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
8862
8863         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
8864         Don't test CONSTANT_P (x).
8865         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
8866         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
8867         Fix misindentation.
8868
8869 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
8870
8871         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
8872
8873 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
8874
8875         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
8876         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
8877         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
8878         config/iq2000/iq2000.c, config/m32r/m32r.c,
8879         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
8880         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
8881         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
8882         config/stormy16/stormy16.c, config/v850/v850.md,
8883         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
8884
8885 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
8886
8887         * config/mcore/mcore.c (block_move_sequence): Replace
8888         gen_rtx_CONST_INT with GEN_INT.
8889
8890 2004-02-02  Jan Hubicka  <jh@suse.cz>
8891
8892         * alias.c (record_set): Use hard_regno_nregs.
8893         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
8894         * builtins.c (apply_args_size): Likewise.
8895         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
8896         mark_set_regs, add_stored_regs, mark_referenced_regs,
8897         insert_restore, insert_save, insert_one_insn): Likewise.
8898         * cfgcleanup.c: Include regs.h
8899         (mark_effect, mentions_nonequal_regs): Likewise.
8900         * cfgrtl.c (mark_killed_regs): Likewise
8901         * combine.c (update_table_tick, record_value_for_reg,
8902         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
8903         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
8904         reg_bitfield_target_p, distribute_notes): Likewise.
8905         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
8906         exp_equiv_p, cse_insn): Likewise.
8907         * cselib.c (cselib_lookup): Likewise.
8908         (cselib_invalidate_regno, cselib_record_set): Likewise.
8909         * df.c (df_ref_record): Likewise.
8910         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
8911         Likewise.
8912         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
8913         count_or_remove_death_notes_bb): Likewise.
8914         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
8915         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
8916         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
8917         * integrate.c (mark_stores): Likewise.
8918         * jump.c (delete_prior_computation): Likewise.
8919         * lcm.c (reg_dies, reg_becomes_live): Likewise.
8920         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
8921         * loop.c (LOOP_REGNO_NREGS): Likewise.
8922         * postreload.c (reload_combine, reload_combine_note_store,
8923         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
8924         * ra-colorize.c (combine, color_usable_p, get_free_reg,
8925         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
8926         try_recolor_web, insert_coalesced_conflicts, check_colors,
8927         break_precolored_alias): Likewise.
8928         * ra-debug.c: Include regs.h
8929         (ra_print_rtx_object): Likewise.
8930         * ra-rewrite (choose_spill_colors): Likewise.
8931         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
8932         * ra.c (init_ra): Likewise.
8933         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
8934         peep2_find_free_register): Likewise.
8935         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
8936         * regclass.c (hard_regno_nregs): New array.
8937         (init_reg_modes_once): Initialize it.
8938         (choose_hard_reg_mode): Use it.
8939         (record_reg_classes): Likewise.
8940         * regmove.c (mark_flags_life_zones): Likewise.
8941         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
8942         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
8943         copy_value, maybe_mode_change, find_oldest_value_reg,
8944         copyprop_hardreg_forward_1):
8945         * regs.h (hard_regno_nregs): Declare.
8946         * realod.c (reload_inner_reg_of_subreg): Use it.
8947         (push_reload, combine_reloads, find_dummy_reload,
8948         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
8949         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
8950         reload_adjust_reg_for_mode): Likewise.
8951         * reload1.c (compute_use_by_pseudos, count_pseudo,
8952         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
8953         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
8954         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
8955         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
8956         delete_output_reload): Likewise.
8957         * resource.c (update_live_status, mark_referenced_resources,
8958         mark_set_resources, mark_target_live_regs): Likewise.
8959         * rtlanal.c:  Include regs.h
8960         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
8961         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
8962         subreg_regno_offset, subreg_offset_representable_p,
8963         hoist_test_store): Likewise.
8964         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
8965         * sched-rgn.c (check_live_1, update_live_1): Likewise.
8966         * stmt.c: Include regs.h
8967         (decl_conflicts_with_clobbers_p): Likewise.
8968         * varasm.c (make_decl_rtl): Likewise.
8969         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
8970
8971 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
8972
8973         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
8974         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
8975         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
8976         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
8977         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
8978         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
8979         config/iq2000/iq2000.h, config/m32r/m32r.c,
8980         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
8981         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
8982         config/mcore/mcore.c, config/mcore/mcore.h,
8983         config/mcore/mcore.md, config/mips/mips.c,
8984         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
8985         config/rs6000/rs6000.c, config/s390/s390.c,
8986         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
8987         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
8988         "gen_rtx (FOO, " with "gen_rtx_FOO (".
8989
8990 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
8991
8992         * config/h8300/h8300.md (two peephole2's): New.
8993
8994 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
8995
8996         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
8997         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
8998         (ASM_CPU_SPEC): Likewise
8999         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
9000         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
9001
9002 2004-02-01  Roger Sayle  <roger@eyesopen.com>
9003
9004         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
9005         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
9006         (expand_builtin): Always call expand_builtin_pow.
9007
9008 2004-02-01  Roger Sayle  <roger@eyesopen.com>
9009
9010         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
9011         BUILT_IN_SIGNBITL): New GCC builtins.
9012         * builtins.c (expand_builtin_signbit): New function to RTL expand
9013         calls to signbit, signbitf and signbitl as inline intrinsics.
9014         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
9015         (fold_builtin_signbit): New function to perform constant folding
9016         of signbit, signbitf and signbitl.
9017         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
9018
9019         * doc/extend.texi: Document new signbit{,f,l} builtins.
9020
9021 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
9022
9023         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
9024
9025 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
9026
9027         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
9028         "mips_const_double_ok" and "simple_memory_operand", which were
9029         removed from the MIPS port with the mips-3_4-rewrite branch merge.
9030         * config/mips/mips.c (mips16_lay_out_constants): Update comment
9031         for removal of simple_memory_operand.
9032
9033 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9034
9035         * config/c4x/c4x.md: Use GEN_INT instead of
9036         gen_rtx (CONST_INT, ...).
9037
9038 2004-01-31  Richard Henderson  <rth@redhat.com>
9039
9040         * varasm.c (output_constant_pool): Don't zap the pool.
9041
9042 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9043
9044         * genrecog.c (decision_type): Add DT_const_int.
9045         (write_cond) [DT_const_int]: Print a comparison against small
9046         constant.
9047         (write_node): Simplify comparisons against small constants
9048         before printing tests.
9049
9050 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9051
9052         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
9053         instead of gen_rtx_CONST_INT.
9054
9055 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9056
9057         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
9058         instead of gen_rtx_CONST_INT.
9059
9060 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9061
9062         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
9063         hook_bool_CUMULATIVE_ARGS_false.
9064         * targhooks.c (default_strict_argument_naming): Rename to
9065         hook_bool_CUMULATIVE_ARGS_false.
9066         * targhooks.h: Update the prototype for
9067         default_strict_argument_naming.
9068
9069 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9070
9071         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
9072         * config/sh/sh.h: Likewise.
9073         * config/sh/sh.md: Likewise.
9074
9075 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
9076
9077         * doc/invoke.texi (SPARC options): Restructure and update.
9078
9079 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9080
9081         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
9082         STRICT_ARGUMENT_NAMING): Poison.
9083         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
9084         hook_bool_tree_false.
9085         * targhooks.c (default_promote_function_args): Remove.
9086         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
9087         Don't check incoming.
9088         (default_strict_argument_naming): Don't use
9089         STRICT_ARGUMENT_NAMING.
9090         * targhooks.h: Remove the prototype for
9091         default_promote_function_args.
9092
9093 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9094
9095         * config/i386/i386-protos.h: Remove the prototype for
9096         ix86_setup_incoming_varargs.
9097         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
9098         (ix86_setup_incoming_varargs): Make it static.
9099         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
9100
9101 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9102
9103         * alloc-pool.c: Fix comment typos.
9104         * builtin-types.def: Likewise.
9105         * builtins.def: Likewise.
9106         * c-pretty-print.c: Likewise.
9107         * df.h: Likewise.
9108         * reload1.c: Likewise.
9109
9110 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9111
9112         * doc/invoke.texi: Follow spelling conventions.
9113         * doc/tm.texi: Likewise.
9114
9115 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9116
9117         * doc/install.texi: Fix typos.
9118         * doc/invoke.texi: Likewise.
9119
9120 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
9121
9122         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
9123         registers as pointers.
9124         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
9125
9126 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
9127
9128         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
9129         and restore it to gen_lowpart_general on exit.
9130         (gen_lowpart_for_combine): Adjust all callers to go through
9131         gen_lowpart.
9132         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
9133         and restore it to gen_lowpart_general on exit.
9134         (gen_lowpart_if_possible): Adjust all callers to go through
9135         gen_lowpart.
9136         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
9137         (gen_lowpart): Declare as pointer to function, initialized to
9138         gen_lowpart_general.
9139         * rtl.h (gen_lowpart): Declare as pointer to function.
9140
9141 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
9142
9143         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
9144         * calls.c: Likewise.
9145         * emit-rtl.c: Likewise.
9146         * function.c: Likewise.
9147         * reload1.c: Likewise.
9148         * config/i386/cygming.h: Likewise.
9149         * config/i386/i386.c: Likewise.
9150         * config/i386/winnt.c: Likewise.
9151
9152 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
9153
9154         PR bootstrap/9249
9155         * doc/install.texi: document --enable-__cxa_atexit option.
9156         * configure.ac: Disable __cxa_atexit if not supported.
9157         * configure: Regenerate.
9158
9159 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
9160
9161         * ggc-zone.c (ggc_free): New function.
9162
9163 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
9164
9165         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
9166         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
9167         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
9168         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
9169         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
9170         config/alpha/alpha.c, config/alpha/alpha.h,
9171         config/alpha/alpha.md, config/alpha/unicosmk.h,
9172         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
9173         config/c4x/c4x-protos.h, config/c4x/c4x.md,
9174         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
9175         config/frv/frvend.c, config/i386/cygming.h,
9176         config/i386/djgpp.h, config/i386/emmintrin.h,
9177         config/i386/gthr-win32.c, config/i386/i386-interix.h,
9178         config/i386/i386-protos.h, config/i386/openbsd.h,
9179         config/i386/winnt.c, config/i386/xm-mingw32.h,
9180         config/i386/xmmintrin.h, config/ia64/ia64.md,
9181         config/iq2000/iq2000.md, config/m32r/m32r.md,
9182         config/m68k/m68k.md, config/mcore/mcore-elf.h,
9183         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
9184         config/mips/iris5gas.h, config/mips/iris6.h,
9185         config/mips/iris6gas.h, config/mips/linux.h,
9186         config/mips/mips.md, config/mips/netbsd.h,
9187         config/mips/openbsd.h, config/mips/windiss.h,
9188         config/pa/fptr.c, config/rs6000/aix.h,
9189         config/rs6000/altivec.h, config/rs6000/darwin.h,
9190         config/rs6000/xcoff.h, config/s390/s390-protos.h,
9191         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
9192         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
9193         config/sparc/sol2.h: Update copyright.
9194
9195 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
9196
9197         * Makefile.in (abs_docdir, abs_srcdir): Define.
9198         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
9199
9200 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
9201
9202         * genconfig.c (main): Have CC0_P check its operand even on a
9203         target without cc0.
9204
9205 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
9206
9207         * config/alpha/alpha.c: Remove mentions of deprecates macros
9208         in comments, remove some target-independent comments about target
9209         macros, and/or add minimal function comments for target hook
9210         implementations.
9211         * config/avr/avr.c: Likewise.
9212         * config/ia64/ia64.h: Likewise.
9213         * config/ip2k/ip2k.c: Likewise.
9214         * config/iq2000/iq2000.c: Likewise.
9215         * config/m32r/m32r.h: Likewise.
9216         * config/m68hc11/m68hc11.c: Likewise.
9217         * config/mcore/mcore.c: Likewise.
9218         * config/mmix/mmix.c: Likewise.
9219         * config/mn10300/mn10300.c: Likewise.
9220         * config/pa/pa.c: Likewise.
9221         * config/pdp11/pdp11.c: Likewise.
9222         * config/rs6000/rs6000.h: Likewise.
9223         * config/sh/sh.c: Likewise.
9224         * config/sh/sh.h: Likewise.
9225         * config/sparc/sparc.c: Likewise.
9226         * config/sparc/sparc.h: Likewise.
9227         * config/stormy16/stormy16.c: Likewise.
9228         * config/xtensa/xtensa.c: Likewise.
9229
9230 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
9231
9232         PR optimization/12147
9233         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
9234         RELOAD_FOR_OPADDR_ADDR.
9235         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
9236         might be reused as RELOAD_FOR_OPADDR_ADDR register.
9237
9238 2004-01-30  Jan Hubicka  <jh@suse.cz>
9239
9240         * reload.c (get_secondary_mem): Fix updating of
9241         secondary_memlocs_elim_used.
9242
9243 2004-01-30  Richard Henderson  <rth@redhat.com>
9244
9245         * varasm.c (struct rtx_const, struct pool_constant): Remove.
9246         (MAX_RTX_HASH_TABLE): Remove.
9247         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
9248         (first_pool, last_pool, pool_offset): Remove.
9249         (struct rtx_constant_pool): Split out from ...
9250         (struct varasm_status): ... here.  Reference one via pointer.
9251         (struct constant_descriptor_rtx): Merge struct pool_constant.
9252         (SYMHASH): Remove.
9253         (decode_rtx_const): Remove.
9254         (const_hash_rtx, compare_constant_rtx): Remove.
9255         (record_constant_rtx): Remove.
9256         (const_desc_rtx_hash, const_desc_rtx_eq): New.
9257         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
9258         (const_rtx_hash_1, const_rtx_hash): New.
9259         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
9260         (simplify_subtraction): Use simplify_rtx.
9261         (force_const_mem): Rewrite to use new data structures.
9262         (find_pool_constant): Likewise.
9263         (get_pool_constant, get_pool_constant_mark,
9264         get_pool_constant_for_function, get_pool_mode,
9265         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
9266         (output_constant_pool_2): Split out from output_constant_pool.
9267         (output_constant_pool_1): Likewise.  Use new pool datastructures.
9268         (output_constant_pool): Zap entire pool datastructure.
9269         (mark_constant): Use new pool datastructures.
9270         (mark_constants): Use for_each_rtx.
9271         (mark_constant_pool): Use new pool datastructures.
9272
9273 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
9274
9275         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
9276         Copy operands[1] to pseudo for simplify_gen_subreg.
9277
9278 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
9279
9280         * gcse.c (bypass_block): Fix a typo in the previous check-in
9281         to the file.
9282
9283 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
9284
9285         * toplev.c: Include alloc-pool.h.
9286         * Makefile.in (toplev.c): Update dependencies.
9287
9288 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
9289
9290         * combine.c (simplify_shift_const, case XOR): Be careful when
9291         commuting XOR with ASHIFTRT.
9292
9293 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
9294             Eric Botcazou  <ebotcazou@libertysurf.fr>
9295
9296         * config/sparc/sparc-protos.h: Remove the prototype for
9297         sparc_builtin_saveregs.
9298         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9299         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9300         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9301         (TARGET_STRUCT_VALUE_RTX): Likewise.
9302         (TARGET_RETURN_IN_MEMORY): Likewise.
9303         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9304         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
9305         (sparc_builtin_saveregs): Make it static.
9306         (sparc_promote_prototypes): New.
9307         (sparc_struct_value_rtx): Likewise.
9308         (sparc_return_in_memory): Likewise.
9309         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
9310         (PROMOTE_FUNCTION_RETURN): Likewise.
9311         (RETURN_IN_MEMORY): Likewise.
9312         (STRUCT_VALUE): Likewise.
9313         (STRUCT_VALUE_INCOMING): Likewise.
9314         (EXPAND_BUILTIN_SAVEREGS): Likewise.
9315         (STRICT_ARGUMENT_NAMING): Likewise.
9316         (PROMOTE_PROTOTYPES): Likewise.
9317
9318         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
9319
9320 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
9321
9322         PR c/12818
9323         * varasm.c (const_hash_1) <STRING_CST>: Use the
9324         address to compute the hash value if flag_writable_strings.
9325         (compare_constant) <STRING_CST>: Compare the addresses
9326         if flag_writable_strings.
9327         (build_constant_desc): Do not copy the expression for a
9328         STRING_CST if flag_writable_strings.
9329
9330 2004-01-30  Jan Hubicka  <jh@suse.cz>
9331
9332         * alloc-pool.c: Include hashtab.h
9333         (alloc_pool_descriptor): New structure
9334         (alloc_pool_hash): New global variable.
9335         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
9336         (create_alloc_pool): Update statistics.
9337         (free_alloc_pool): Likewise.
9338         (pool_alloc): Likewise.
9339         (output_info): New structure
9340         (print_statistics, dump_alloc_pool_statistics): New function.
9341         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
9342         (dump_alloc_pool_statistics): Declare.
9343         * toplev.c (finalize):  Dump statistics.
9344
9345         * reload.c (secondary_memlocs_elim_used): New static variable.
9346         (get_secondary_mem): Update it.
9347         (find_reloads): Use it.
9348
9349 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
9350
9351         * toplev.c: Fix broken checkin of 2003-12-30, again.
9352
9353 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
9354
9355         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
9356         s390*-*-* targets by specifying a 'nop' insn.
9357         * configure: Regenerate.
9358
9359 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
9360
9361         PR target/11475
9362         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
9363
9364 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
9365
9366         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
9367         of addr when creating MEM copy.
9368
9369 2004-01-29  Devang Patel  <dpatel@apple.com>
9370
9371         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
9372
9373 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
9374
9375         PR inline-asm/6162
9376         * reload.c (find_reloads): Only support one pair of commutative
9377         operands.
9378
9379 2004-01-29  Roger Sayle  <roger@eyesopen.com>
9380
9381         PR java/13824
9382         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
9383         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
9384         recursion.
9385
9386 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
9387
9388         * config/frv/frv.c: Don't mention deprecated macros in
9389         comments.  Remove some target-independent comments about
9390         target macros.
9391         * config/frv/frv.h: Likewise.
9392
9393 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9394
9395         * cfghooks.c (split_block): Set probability and count of the
9396         new edge.
9397
9398 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
9399
9400         * dwarf2out.c (struct die_struct): Added field decl_id.
9401         (decl_die_table): Changed to hash table.
9402         (decl_die_table_allocated): Deleted.
9403         (decl_die_table_in_use): Deleted.
9404         (DECL_DIE_TABLE_INCREMENT): Deleted.
9405         (decl_die_table_hash): New function.
9406         (decl_die_table_eq): New function.
9407         (lookup_decl_die): Lookup in a hash table.
9408         (equate_decl_number_to_die): Insert into a hash table.
9409         (dwarf2out_init): Init hash table decl_die_table.
9410
9411 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
9412
9413         PR optimization/13424
9414         * expr.c (store_constructor): Revert 2003-12-03 change.
9415
9416         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
9417         expected before returning early.  Avoid sharing RTL if they
9418         need to be changed.
9419
9420         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
9421         handling so that memory attributes are preserved.  Don't call
9422         ix86_set_move_mem_attrs.
9423         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
9424         (ix86_expand_clrstr): Rename src argument to
9425         dst.  Rework rep_stos and strset handling so that memory attributes
9426         are preserved.
9427         (ix86_expand_strlen): Pass src argument to
9428         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
9429         memory attributes are preserved.
9430         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
9431         change_address instead of gen_rtx_MEM.
9432         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
9433         expanders.
9434         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
9435         strmovqi, strmovqi_rex64): Remove.
9436         (rep_mov*, strmov*): Prefix insn names with *.
9437         (strset, strset_singleop, rep_stos): New expanders.
9438         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
9439         strsetqi, strsetqi_rex64): Remove.
9440         (rep_stos*, strset*): Prefix insn names with *.
9441         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
9442         to SImode.
9443         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
9444         are preserved.
9445         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
9446         Prefix insn names with *.
9447         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
9448         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
9449         (strlenqi_1): New expander.
9450         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
9451
9452 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9453
9454         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
9455         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
9456         verify_flow_info): Declaration removed.
9457         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
9458         (debug_bb, debug_bb_n): Add argument to dump_bb call.
9459         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
9460         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
9461         instead of delete_block.
9462         * cfghooks.c: Include timevar.h and toplev.h.
9463         (cfg_hooks): Define here.
9464         (verify_flow_info, dump_bb): Moved from cfg.c.
9465         (redirect_edge_and_branch, redirect_edge_and_branch_force,
9466         split_block, split_block_after_labels, move_block_after,
9467         delete_basic_block, split_edge, create_basic_block,
9468         create_empty_bb, can_merge_blocks_p, merge_blocks,
9469         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
9470         New functions.
9471         * cfghooks.h (struct cfg_hooks): Added fields name,
9472         make_forwarder_block, tidy_fallthru_edge and
9473         move_block_after. Changed type of verify_flow_info, dump_bb,
9474         split_block fields. Renamed cfgh_split_edge and delete_block
9475         fields.
9476         (redirect_edge_and_branch, redirect_edge_and_branch_force,
9477         split_block, delete_block, split_edge, create_basic_block,
9478         can_merge_blocks_p, merge_blocks): Macros removed.
9479         (cfg_hooks): Do not export.
9480         (verify_flow_info, dump_bb, redirect_edge_and_branch,
9481         redirect_edge_and_branch_force, split_block, split_block_after_labels,
9482         move_block_after, delete_basic_block, split_edge, create_basic_block,
9483         create_empty_bb, can_merge_blocks_p, merge_blocks,
9484         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
9485         Declare.
9486         (cfg_layout_rtl_cfg_hooks): Declare.
9487         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
9488         New functions.
9489         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
9490         (redirect_edge_with_latch_update): Removed.
9491         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
9492         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
9493         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
9494         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
9495         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
9496         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
9497         cfghooks.c.
9498         (rtl_create_basic_block): Coding style fix.
9499         (rtl_tidy_fallthru_edge, rtl_move_block_after,
9500         rtl_make_forwarder_block): New functions.
9501         (update_cfg_after_block_merging): Removed.
9502         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
9503         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
9504         to dump_bb.
9505         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
9506         find_if_case_2): Don't update dominators.
9507         * timevar.def (TV_CFG_VERIFY): New.
9508         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
9509         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
9510         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
9511         (remove_bbs): Don't call remove_bbs.
9512         (create_preheader): Use make_forwarder_block.
9513         (mfb_keep_just, mfb_update_loops): New static functions.
9514
9515 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
9516
9517         * config/avr/avr.h: Remove target-independent comments about
9518         target macros.
9519
9520 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
9521
9522         * timevar.c (timevar_print): Mention when checking is enabled.
9523
9524 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
9525
9526         * c-lex.c (c_lex): Rename to...
9527         (c_lex_with_flags): Add new parameter to get CPP flags.
9528         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
9529         * c-pragma.h (c_lex_with_flags): Declare.
9530
9531 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9532
9533         * config/mcore/mcore.c (mcore_external_libcall): Add a
9534         comment.
9535         (mcore_return_in_memory): Likewise.
9536
9537 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9538
9539         * config/mcore/mcore-protos.h: Remove the prototype for
9540         mcore_setup_incoming_varargs.
9541         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
9542         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
9543         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9544         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9545         (TARGET_STRUCT_VALUE_RTX): Likewise.
9546         (TARGET_RETURN_IN_MEMORY): Likewise.
9547         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9548         (mcore_setup_incoming_varargs): Make it static.  Receive the
9549         first argument by reference.  Add argument second_time.
9550         (mcore_external_libcall): New.
9551         (mcore_return_in_memory): Likewise.
9552         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
9553         (PROMOTE_FUNCTION_RETURN): Likewise.
9554         (STRUCT_VALUE): Likewise.
9555         (RETURN_IN_MEMORY): Likewise.
9556         (SETUP_INCOMING_VARARGS): Likewise.
9557         (PROMOTE_PROTOTYPES): Likewise.
9558         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
9559
9560 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9561
9562         * config/m32r/m32r-protos.h: Remove the prototype for
9563         m32r_setup_incoming_varargs.
9564         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
9565         (TARGET_STRUCT_VALUE_RTX): Likewise.
9566         (TARGET_RETURN_IN_MEMORY): Likewise.
9567         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9568         (m32r_return_in_memory): New.
9569         (m32r_setup_incoming_varargs): Make it static.
9570         * config/m32r/m32r.h: Remove #undef of
9571         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
9572         definitions of PROMOTE_FUNCTION_ARGS and
9573         PROMOTE_FUNCTION_RETURN.
9574         (PROMOTE_PROTOTYPES): Remove.
9575         (RETURN_IN_MEMORY): Likewise.
9576         (STRUCT_VALUE): Likewise.
9577
9578 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9579
9580         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
9581         (TARGET_STRUCT_VALUE_RTX): Likewise.
9582         (m68k_struct_value_rtx): Likewise.
9583         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
9584         STRUCT_VALUE_REGNUM.
9585         (PROMOTE_PROTOTYPES): Remove.
9586         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
9587         STRUCT_VALUE_REGNUM.
9588         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
9589         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
9590
9591 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9592
9593         * config/stormy16/stormy16.c
9594         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
9595         TARGET_BUILD_BUILTIN_VA_LIST.
9596
9597 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9598
9599         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
9600         (TARGET_STRUCT_VALUE_RTX): Likewise.
9601         (TARGET_RETURN_IN_MEMORY): Likewise.
9602         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9603         (v850_return_in_memory): Likewise.
9604         (v850_setup_incoming_varargs): Likewise.
9605         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
9606         (SETUP_INCOMING_VARARGS): Likewise.
9607         (RETURN_IN_MEMORY): Likewise.
9608         (STRUCT_VALUE): Likewise.
9609
9610 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9611
9612         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
9613         (fr30_setup_incoming_varargs): Don't use
9614         STRICT_ARGUMENT_NAMING.
9615         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
9616         (STRICT_ARGUMENT_NAMING): Likewise.
9617
9618 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9619
9620         * config/frv/frv-protos.h: Remove the prototype for
9621         frv_expand_builtin_saveregs.
9622         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
9623         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9624         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
9625         STRUCT_VALUE_REGNUM.
9626         (frv_expand_builtin_saveregs): Make it static.
9627         (frv_struct_value_rtx): New.
9628         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
9629
9630 2004-01-29  Jan Hubicka  <jh@suse.cz>
9631
9632         PR c++/12850
9633         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
9634         initial pointers.
9635         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
9636         for functions that will be only inlined.
9637         (cgraph_mark_function_to_output): Likewise.
9638         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
9639         do not clear function body.
9640         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
9641         (tree_rest_of_compilation): Reorganize the logic releasing function
9642         body to use callgraph datastructure.
9643
9644 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9645
9646         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
9647         to register_operand.
9648
9649 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
9650
9651         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
9652         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
9653         match_operand expressions so that all match_dups appear
9654         lexically after their corresponding match_operands.
9655
9656 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9657
9658         * config/h8300/h8300.c (WORD_REG_USED): Use
9659         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
9660         (compute_saved_regs): Likewise.
9661         (h8300_expand_prologue): Likewise.  Allocate locals after
9662         saving registers.
9663         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
9664         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
9665         registers.
9666         (h8300_initial_elimination_offset): Adjust for the new frame
9667         layout, which swaps flips the order of locals and saved
9668         registers.
9669         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
9670         (HARD_FRAME_POINTER_REGNUM): New.
9671         (ELIMINABLE_REGS): Add an elimination rule from
9672         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
9673         (REGISTER_NAMES): Add fp.
9674         * config/h8300/h8300.md (FP_REG): Change to 11.
9675         (HFP_REG): New.
9676
9677 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9678
9679         * genrecog.c (write_node): Remove a useless local variable.
9680
9681 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
9682
9683         * Makefile.in (options.c options.h): Use stamp file s-options to
9684         avoid unnecessary rebuilds.
9685         (options.o): New target listing dependencies.
9686         (gtyp-gen.h): Use stamp file s-gtyp-gen.
9687         (STAGESTUFF): Add s-gtyp-gen.
9688
9689 2004-01-28  Richard Henderson  <rth@redhat.com>
9690
9691         * ggc.h (ggc_free): Declare.
9692         * ggc-common.c (ggc_realloc): Use it.
9693         * ggc-page.c: Remove lots of inline markers.
9694         (globals): Add free_object_list.
9695         (ggc_alloc): Tidy.
9696         (ggc_free, validate_free_objects): New.
9697         (poison_pages): Provide default.
9698         (ggc_collect): Call validate_free_objects; emit markers to
9699         the debug file.
9700
9701 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
9702             Jim Wilson  <wilson@specifixinc.com>
9703
9704         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
9705         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
9706         scratch pointer.
9707         (ia64_secondary_reload_class): Delete case GR_REGS.
9708         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
9709         Do not allocate a scratch register.
9710         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
9711
9712 2004-01-28  Jan Hubicka  <jh@suse.cz>
9713
9714         * gcse.c (bypass_block): Prevent edges to be unified when we are
9715         about to emit compenstation code.
9716
9717 2004-01-28  Nick Clifton  <nickc@redhat.com>
9718
9719         * config/arm/arm.c (arm_expand_builtin): Force second argument of
9720         the setcwx insn into a register.
9721
9722 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
9723
9724         * config/fp-bit.c (pack_d): When using paired doubles to implement
9725         a long double, round the high part separately.
9726         (unpack_d): Fix the case in which the high part is a power of two
9727         and the low part is a nonzero value of the opposite sign.
9728
9729 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9730
9731         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
9732         (TARGET_STRUCT_VALUE_RTX): Likewise.
9733         (c4x_external_libcall): Likewise.
9734         (c4x_struct_value_rtx): Likewise.
9735         * config/c4x/c4x.h: Remove.
9736         (STRUCT_VALUE_REGNUM): Likewise.
9737         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
9738
9739 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
9740
9741         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
9742         (TARGET_STRUCT_VALUE_RTX): Likewise.
9743         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
9744         (STRUCT_VALUE): Likewise.
9745         (PROMOTE_PROTOTYPES): Likewise.
9746
9747 2004-01-27  Roger Sayle  <roger@eyesopen.com>
9748
9749         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
9750         CONST_INT before using INTVAL.
9751
9752 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
9753
9754         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
9755         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
9756         frame if !TARGET_BACKCHAIN.
9757         * config/s390/s390.md ("allocate_stack"): Use pattern only if
9758         TARGET_BACKCHAIN.
9759         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
9760
9761 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
9762
9763         * ia64.c (ia64_function_arg): When placing HFAs in integer
9764         registers, do not special case the mode used for complex
9765         types.  Do not advance int_regs until the current register
9766         is full.
9767
9768 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
9769
9770         PR target/7297
9771         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
9772
9773 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
9774
9775         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
9776         slow, unaligned loads and stores while debugging.  Fix formatting.
9777
9778 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
9779
9780         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
9781         of computing wmode.
9782         (restore_stack_nonlocal): Same.
9783
9784 2004-01-27  Devang Patel <dpatel@apple.com>
9785
9786         * Makefile.in (dwarf2out.o): Depend on input.h
9787         * dbxout.c (dbx_debug_hooks): Add new empty hook for
9788         imported_module_or_decl.
9789         (xcoff_debug_hooks): Same.
9790         * sdbout.c (sdb_debug_hooks): Same.
9791         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
9792         * debug.c (do_nothing_debug_hooks): Same.
9793         (debug_nothing_tree_tree): New function.
9794         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
9795         * dwarf2out.c: Include input.h.
9796         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
9797         (remove_child_TAG): New function.
9798         (dwarf_tag_name): Handle DW_TAG_imported_module.
9799         (gen_subprogram_die): Equate decl number to declaration die. Do not
9800         remove all children dies while reusing declaration die for definition.
9801         Instead, selectively remove only formal parameters.
9802         (gen_variable_die): Equate variable decl to declaration die.
9803         (gen_field_die): Equate field decl to line number.
9804         (force_namespace_die): Replace it with ...
9805         (force_decl_die): ... this.
9806         (force_type_die): New function.
9807         (setup_namespace_context): Replace use of force_namespace_die() with
9808         force_decl_die().
9809         (gen_namespace_die): Same.
9810         (dwarf2out_imported_module_or_decl): New function.
9811
9812 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
9813
9814         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
9815         on CQImode and CHImode incoming arguments in register a7.
9816         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
9817         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
9818         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
9819         xtensa_copy_incoming_a7 before reload.
9820
9821 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
9822
9823         * coverage.c (get_coverage_counts): Give a different message
9824         if flag_guess_branch_prob is set.
9825         * predict.c (counts_to_freqs): Return an int.
9826         (estimate_bb_frequencies): If counts_to_freqs returns zero,
9827         calculate estimates.
9828
9829 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
9830
9831         * config/iq2000/iq2000-protos.h: Remove the prototype for
9832         iq2000_setup_incoming_varargs.
9833         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9834         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9835         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9836         (TARGET_STRUCT_VALUE_RTX): Likewise.
9837         (TARGET_RETURN_IN_MEMORY): Likewise.
9838         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9839         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
9840         (iq2000_return_in_memory): Likewise.
9841         (iq2000_setup_incoming_varargs): Make it static.  Receive the
9842         first argument by reference.
9843         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
9844         (PROMOTE_FUNCTION_RETURN): Likewise.
9845         (PROMOTE_PROTOTYPES): Likewise.
9846         (RETURN_IN_MEMORY): Likewise.
9847         (STRUCT_VALUE): Likewise.
9848         (SETUP_INCOMING_VARARGS): Likewise.
9849         (STRICT_ARGUMENT_NAMING): Likewise.
9850
9851 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
9852
9853         * fixinc/fixinc.c (test_test): Initialize res.
9854         (start_flexer): Initialize pz_cmd_save.
9855
9856 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
9857
9858         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
9859         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
9860
9861 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
9862
9863         PR 7198
9864         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
9865         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
9866         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
9867         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
9868         Possibly rename pattern for consistency.
9869         Remove ??? comments suggesting that this be done.
9870         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
9871         New patterns.
9872         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
9873         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
9874         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
9875         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
9876         Update to match.
9877
9878 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
9879
9880         * config/arm/arm.c (output_return_instruction): Only restore IP
9881         into SP if frame_pointer_needed.
9882
9883 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
9884
9885         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
9886         for SCmode and DCmode if ARCH32.
9887         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
9888         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
9889         if ARCH32.
9890         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
9891         if ARCH32.
9892         (BASE_OUTGOING_VALUE_REG): Likewise.
9893
9894 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
9895
9896         PR target/10904
9897         PR target/13058
9898         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
9899         Forbid mode changes from SImode for lower FP regs if ARCH64.
9900
9901 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
9902
9903         * Makefile.in (bt-load.o): Depend on except.h.
9904         * bt-load.c (except.h): #include.
9905         (compute_defs_uses_and_gen): If insn at end of BB can throw
9906         within this function, consider registers used by it unavailable for
9907         btr migration.
9908         (move_btr_def): If insn at end of BB can throw, insert before rather
9909         than after.
9910
9911         * flags.h (flag_btr_bb_exclusive): Declare.
9912         * toplev.c (flag_btr_bb_exclusive): New variable.
9913         (f_options): Add btr-bb-exclusive.
9914         * bt-load.c (augment_live_range): Restore old behaviour if
9915         flag_btr_bb_exclusive is set.
9916         * common.opt: Add entry for -fbtr-bb-exclusive.
9917         * opts.c (common_handle_options): Same.
9918         * doc/invoke.texi: Document -fbtr-bb-exclusive.
9919
9920         * bt-load.c (btrs_live_at_end): New variable.
9921         (compute_defs_uses_and_gen): Compute its pointed-to array.
9922         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
9923         (augment_live_range): When augmenting with a new dominator,
9924         use only its btrs_live_at_end set, but also add in the full set
9925         of the old dominator.
9926         (btr_def_live_range): Use btrs_live_at_end.
9927         (move_btr_def): Set other_btr_uses_before_def, and move new set
9928         to the end of the basic block, if appropriate.
9929         (migrate_btr_defs): Allocate and free btrs_live_at_end.
9930
9931         * bt-load.c (basic_block_freq): Remove outdated comment.
9932
9933 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
9934
9935         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
9936         (PREDICATE_CODES): Remove duplicate.
9937         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
9938         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
9939         (MASK_PROFILE_KERNEL): Adjust define.
9940
9941 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
9942
9943         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
9944         of long string literals from 32 bytes to sizeof (void *) when !-Os
9945         and to 1 with -Os.
9946
9947 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9948
9949         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
9950         constant addresses in the normal mode.
9951
9952 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9953
9954         * system.h (CHAR_BITFIELD): Delete.
9955         (BOOL_BITFIELD): New.
9956         * c-decl.c (c_scope): Use BOOL_BITFIELD.
9957         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
9958
9959 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9960
9961         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9962         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9963         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9964         (TARGET_STRUCT_VALUE_RTX): Likewise.
9965         (TARGET_RETURN_IN_MEMORY): Likewise.
9966         (arc_return_in_memory): Likewise.
9967         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
9968         (PROMOTE_FUNCTION_RETURN): Likewise.
9969         (RETURN_IN_MEMORY): Likewise.
9970         (STRUCT_VALUE): Likewise.
9971
9972 2004-01-26  Richard Henderson  <rth@redhat.com>
9973
9974         * c-parse.in (extension): Use itype.
9975         (SAVE_EXT_FLAGS): Don't allocate a tree.
9976         (RESTORE_EXT_FLAGS): Don't read a tree.
9977
9978 2004-01-26  Jan Hubicka  <jh@suse.cz>
9979
9980         * cselib.c (discard_useless_values):  Clear out value pointer pointing
9981         to datastructure to be recycled.
9982
9983 2004-01-25  Jan Hubicka  <jh@suse.cz>
9984
9985         * genextract.c (main): Do not output the memset when not checking.
9986
9987 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9988
9989         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
9990         switch statement instead of a chain of if statements.
9991
9992 2004-01-26  Jeff Law  <law@redhat.com>
9993
9994         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
9995         acute accents for Petur Runolfsson's entry.
9996
9997 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9998
9999         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
10000         (TARGET_RETURN_IN_MEMORY): Likewise.
10001         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
10002         (RETURN_IN_MEMORY): Likewise.
10003
10004 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
10005
10006          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
10007          unaligned load/store into smaller loads and stores.
10008
10009 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
10010
10011         * function.c (assign_parms): Do not assign
10012         long long argument to memory in prologue if
10013         is it loaded into register.
10014
10015 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
10016
10017          PR middle-end/13779
10018          * expr.c (emit_group_load): split constant
10019          correctly into register components of PARALLEL insn.
10020
10021 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
10022
10023         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
10024         Use adjust_address_nv directly with appropriate mode.
10025         (restore_stack_nonlocal): Ditto.
10026
10027 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10028
10029         * config/xtensa/xtensa-protos.h: Remove the prototype for
10030         xtensa_builtin_saveregs.
10031         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10032         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10033         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10034         (TARGET_STRUCT_VALUE_RTX): Likewise.
10035         (TARGET_RETURN_IN_MEMORY): Likewise.
10036         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
10037         (xtensa_builtin_saveregs): Make it static.
10038         (xtensa_return_in_memory): New.
10039         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
10040         (PROMOTE_FUNCTION_RETURN): Likewise.
10041         (PROMOTE_PROTOTYPES): Likewise.
10042         (STRUCT_VALUE): Likewise.
10043         (RETURN_IN_MEMORY): Likewise.
10044         (EXPAND_BUILTIN_SAVEREGS): Likewise.
10045
10046 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10047
10048         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
10049         (arm_setup_incoming_varargs): Likewise.
10050         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
10051
10052 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10053
10054         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
10055         (cris_setup_incoming_varargs): Likewise.
10056         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
10057
10058 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10059
10060         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
10061         (ns32k_struct_value_rtx): Likewise.
10062         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
10063         NS32K_STRUCT_VALUE_REGNUM.
10064
10065 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10066
10067         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10068         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10069         (TARGET_STRUCT_VALUE_RTX): Likewise.
10070         (arm_struct_value_rtx): Likewise.
10071         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
10072         (STRUCT_VALUE): Likewise.
10073         (STRUCT_VALUE_REGNUM): Likewise.
10074         (PROMOTE_PROTOTYPES): Likewise.
10075
10076 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
10077
10078         * config/ia64/ia64-protos.h: Remove the prototype for
10079         ia64_setup_incoming_varargs and ia64_return_in_memory.
10080         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
10081         (TARGET_RETURN_IN_MEMORY): Likewise.
10082         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10083         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
10084         (ia64_setup_incoming_varargs): Adjust the arguments to meet
10085         the requirement of TARGET_SETUP_INCOMING_VARARGS.
10086         (ia64_return_in_memory): Make it static.  Change the return
10087         type to bool from int.  Add an argument.
10088         (ia64_struct_value_rtx): New.
10089         * config/ia64/ia64.h: Remove commented-out definitions of
10090         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
10091         PROMOTE_PROTOTYPES.
10092         (RETURN_IN_MEMORY): Remove.
10093         (STRUCT_VALUE_REGNUM): Likewise.
10094         (STRICT_ARGUMENT_NAMING): Likewise.
10095
10096 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
10097
10098         PR target/13666
10099         * config/sparc/sparc.c (function_arg_union_value): New function.
10100         (function_arg): Use it to deal with unions.
10101         (function_value): Likewise.  Define 'regbase' only for ARCH64.
10102         Replace a conditional statement by a simpler one.
10103
10104 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
10105
10106         * config/mips/mips.c (mips16_optimize_gp): Delete.
10107         (mips_reorg): Don't call it.
10108
10109 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10110
10111         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
10112         (floatunsqihf2): Remove operand 6.
10113         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
10114         fix patterns.
10115         (ldi_conditional, ldf_conditional): Validate operands.
10116
10117 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10118
10119         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
10120         (HAVE_GAS_HIDDEN): Undefine as interim measure.
10121
10122 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10123
10124         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
10125         memory references if TARGET_EXPOSE_LDP nonzero.
10126
10127 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10128
10129         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
10130
10131 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10132
10133         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
10134         invalid operand combinations.
10135
10136 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10137
10138         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
10139         c4x_legitimate_address_p.  Fix post_modify check.
10140
10141         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
10142         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
10143
10144 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10145
10146         * config/pa/pa-protos.h: Remove the prototype for
10147         hppa_builtin_saveregs.  Add a prototype for
10148         pa_return_in_memory.
10149         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
10150         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10151         (TARGET_STRUCT_VALUE_RTX): Likewise.
10152         (TARGET_RETURN_IN_MEMORY): Likewise.
10153         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
10154         (pa_struct_value_rtx): Likewise.
10155         (pa_return_in_memory): Likewise.
10156         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
10157         PA_STRUCT_VALUE_REGNUM.
10158         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
10159         (EXPAND_BUILTIN_SAVEREGS): Remove.
10160         (PROMOTE_PROTOTYPES): Likewise.
10161         (PROMOTE_FUNCTION_RETURN): Likewise.
10162
10163 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10164
10165         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
10166         (TARGET_STRUCT_VALUE_RTX): Likewise.
10167         (vax_struct_value_rtx): Likewise.
10168         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
10169         VAX_STRUCT_VALUE_REGNUM.
10170         (PROMOTE_PROTOTYPES): Remove.
10171
10172 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
10173
10174         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
10175
10176 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
10177
10178         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
10179         and MIPS64 have HI/LO interlocks.  Update comment.
10180
10181 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10182
10183         * config/stormy16/stormy16-protos.h: Remove the prototype for
10184         xstormy16_setup_incoming_varargs.
10185         * config/stormy16/stormy16.c
10186         (xstormy16_setup_incoming_varargs): Remove.
10187         (xstormy16_return_in_memory): New.
10188         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
10189         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10190         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10191         (TARGET_STRUCT_VALUE_RTX): Likewise.
10192         (TARGET_RETURN_IN_MEMORY): Likewise.
10193         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
10194         (PROMOTE_FUNCTION_RETURN): Likewise
10195         (PROMOTE_PROTOTYPES): Likewise
10196         (RETURN_IN_MEMORY): Likewise
10197         (STRUCT_VALUE): Likewise
10198         (SETUP_INCOMING_VARARGS): Likewise
10199
10200 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
10201
10202         * config/mips/mips.c (mips_offset_within_object_p): New function.
10203         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
10204         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
10205         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
10206
10207 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10208
10209         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
10210         (PROMOTE_FUNCTION_RETURN): Likewise.
10211
10212 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10213
10214         * config/mn10300/mn10300-protos.h: Remove the prototype for
10215         mn10300_builtin_saveregs.
10216         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
10217         (TARGET_STRUCT_VALUE_RTX): Likewise.
10218         (TARGET_RETURN_IN_MEMORY): Likewise.
10219         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
10220         (mn10300_return_in_memory): Likewise.
10221         (mn10300_builtin_saveregs): Make it static.
10222         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
10223         (RETURN_IN_MEMORY): Likewise.
10224         (STRUCT_VALUE): Likewise.
10225         (EXPAND_BUILTIN_SAVEREGS): Likewise.
10226
10227 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
10228
10229         PR bootstrap/13853
10230         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
10231
10232 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10233
10234         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
10235         using ccr.
10236
10237 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10238
10239         * config/i860/i860-protos.h: Remove the prototype for
10240         i860_saveregs.
10241         * config/i860/i860.c (i860_saveregs): Make it static.
10242         (i860_struct_value_rtx): New.
10243         (TARGET_STRUCT_VALUE_RTX): Likewise.
10244         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
10245         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
10246         I860_STRUCT_VALUE_REGNUM.
10247         (EXPAND_BUILTIN_SAVEREGS): Remove.
10248
10249 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10250
10251         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
10252         (TARGET_RETURN_IN_MEMORY): Likewise.
10253         (m68hc11_struct_value_rtx): Likewise.
10254         (m68hc11_return_in_memory): Likewise.
10255         * config/m68hc11/m68hc11.h: Remove a commented-out definition
10256         of PROMOTE_PROTOTYPES.
10257         (RETURN_IN_MEMORY): Remove.
10258         (STRUCT_VALUE_REGNUM): Likewise.
10259
10260 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10261
10262         * config/mmix/mmix-protos.h: Remove the prototype for
10263         mmix_setup_incoming_varargs.
10264         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10265         (TARGET_STRUCT_VALUE_RTX): Likewise.
10266         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10267         (mmix_setup_incoming_varargs): Make it static.
10268         (mmix_struct_value_rtx): New.
10269         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
10270         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
10271         (STRUCT_VALUE_REGNUM): Remove.
10272         (SETUP_INCOMING_VARARGS): Likewise.
10273
10274 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10275
10276         * config/mips/mips-protos.h: Remove the prototypes for
10277         mips_setup_incoming_varargs and mips_return_in_memory.
10278         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10279         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10280         (TARGET_PROMOTE_PROTOTYPES): Likewise.
10281         (TARGET_STRUCT_VALUE_RTX): Likewise.
10282         (TARGET_RETURN_IN_MEMORY): Likewise.
10283         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10284         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
10285         (mips_setup_incoming_varargs): Match the prototype for
10286         TARGET_SETUP_INCOMING_VARARGS.
10287         (mips_return_in_memory): Make it static.  Add argument fntype.
10288         (mips_strict_argument_naming): New.
10289         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
10290         (PROMOTE_FUNCTION_ARGS): Likewise.
10291         (PROMOTE_FUNCTION_RETURN): Likewise.
10292         (STRUCT_VALUE): Likewise.
10293         (RETURN_IN_MEMORY): Likewise.
10294         (SETUP_INCOMING_VARARGS): Likewise.
10295         (STRICT_ARGUMENT_NAMING): Likewise.
10296
10297 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10298
10299         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
10300         (TARGET_RETURN_IN_MEMORY): Likewise.
10301         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
10302         (ip2k_return_in_memory): Likewise.
10303         (ip2k_setup_incoming_varargs): Likewise.
10304         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
10305         (STRUCT_VALUE): Likewise.
10306         (STRUCT_VALUE_INCOMING): Likewise.
10307         (SETUP_INCOMING_VARARGS): Likewise.
10308
10309 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
10310
10311         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
10312         (TARGET_RETURN_IN_MEMORY): Likewise.
10313         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
10314         (avr_return_in_memory): Remove.
10315         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
10316         (STRUCT_VALUE): Likewise.
10317         (STRUCT_VALUE_INCOMING): Likewise.
10318         (STRICT_ARGUMENT_NAMING): Likewise.
10319
10320 2004-01-25  Jan Hubicka  <jh@suse.cz>
10321
10322         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
10323
10324 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
10325
10326         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
10327         (mips_regno_mode_ok_for_base_p): Declare.
10328         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
10329         (FRAME_POINTER_REGNUM): Renumber to 78.
10330         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
10331         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
10332         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
10333         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
10334         (REG_MODE_OK_FOR_BASE_P): Likewise.
10335         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
10336         entry for 77 to "$arg" and entry for 78 to "$frame".
10337         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
10338         (mips_reg_mode_ok_for_base_p): Remove.
10339         (mips_regno_mode_ok_for_base_p): New function, derived from old
10340         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
10341         restrictions unless we're being strict.
10342         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
10343
10344 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10345
10346         * c-common.h: Fix comment typos.
10347         * c-decl.c: Likewise.
10348         * cgraphunit.c: Likewise.
10349         * combine.c: Likewise.
10350         * et-forest.c: Likewise.
10351         * flow.c: Likewise.
10352         * function.c: Likewise.
10353         * ifcvt.c: Likewise.
10354         * integrate.c: Likewise.
10355         * jump.c: Likewise.
10356         * postreload.c: Likewise.
10357         * varray.c: Likewise.
10358
10359 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10360
10361         * doc/frontends.texi: Update copyright.
10362         * doc/gcov.texi: Likewise.
10363         * doc/gty.texi: Likewise.
10364         * doc/sourcebuild.texi: Likewise.
10365         * doc/standards.texi: Likewise.
10366
10367 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
10368
10369         PR target/12978
10370         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
10371         Remove movstrqi_small because it conflicts with movstrqi_large.
10372
10373 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10374
10375         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
10376         (TARGET_STRUCT_VALUE_RTX): Likewise.
10377         (cris_struct_value_rtx): Likewise.
10378         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
10379         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
10380         STRUCT_VALUE_REGNUM.
10381         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
10382
10383 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
10384
10385         PR bootstrap/13848
10386         * cse.c (cse_cc_succs): Change the mode of the source expression
10387         as soon as decide we need a new mode.  Don't permit changing modes
10388         if we found a match in a successor block.
10389         (cse_condition_code_reg): Save original mode of source expression
10390         so that we know whether we have to change the mode in other
10391         insns.
10392
10393 2004-01-24  Jan Hubicka  <jh@suse.cz>
10394
10395         * emit-rtl.c (change_address, adjust_address_1, offset_address,
10396         widen_memory_access):  Return early when there is nothing to change.
10397
10398 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
10399
10400         * simplify-rtx.c (simplify_relational_operation): Don't
10401         simplify address == constant into address + -constant == 0.
10402
10403 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10404
10405         * gcc.c (process_command): Don't internationalize the
10406         Copyright message.
10407         * mips-tfile.c (main): Likewise.
10408
10409 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
10410
10411         * cse.c: (cse_cc_succs) Fix comparison warning.
10412
10413 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10414
10415         * config/h8300/h8300.md: Remove extraneous USE in expanders.
10416
10417 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10418
10419         * config/h8300/h8300-protos.h: Provide prototypes for
10420         h8300_legitimate_constant_p and h8300_legitimate_address_p.
10421         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
10422         (h8300_rtx_ok_for_base_p): Likewise.
10423         (h8300_legitimate_address_p): Likewise.
10424         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
10425         h8300_legitimate_constant_p.
10426         (RTX_OK_FOR_BASE_P): Remove.
10427         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
10428
10429 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
10430
10431         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
10432         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
10433         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
10434         (REG_OK_FOR_BASE_STRICT_P): Likewise.
10435         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
10436         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
10437         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
10438         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
10439
10440 2004-01-24  Jan Hubicka  <jh@suse.cz>
10441
10442         * cselib.c (remove_useless_values):  Do not access discarded values.
10443
10444 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
10445
10446         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
10447         arrays.
10448
10449 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
10450
10451         * recog.c: Fix a typo in copyright.
10452
10453 2004-01-23  Andrew Pinski  <apinski@apple.com>
10454
10455         * config/rs6000/rs6000.md (call): Fix misappiled patch.
10456         (call_value): Likewise.
10457
10458 2004-01-23  Richard Henderson  <rth@redhat.com>
10459
10460         PR opt/12941
10461         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
10462         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
10463         if SHIFT_COUNT_TRUNCATED is set.
10464
10465 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
10466
10467         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
10468         separate real and imaginary parts.
10469         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
10470
10471 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
10472
10473         PR target/13674
10474         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
10475         loading into GPR.
10476
10477 2004-01-23  Jan Hubicka  <jh@suse.cz>
10478
10479         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
10480         change.
10481
10482         * alloc-pool.c (align_four): Kill.
10483         (create_alloc_pool): Align size to eight.
10484         (free_alloc_pool, free_pool): Invalidate deallocated data.
10485
10486 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
10487
10488         PR gcc/1532
10489         * cse.c (cse_change_cc_mode): New static function.
10490         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
10491         (cse_condition_code_reg): New function.
10492         * rtl.h (cse_condition_code_reg): Declare.
10493         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
10494         * target.h (struct gcc_target): Add fixed_condition_code_regs and
10495         cc_modes_compatible.
10496         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
10497         (TARGET_CC_MODES_COMPATIBLE): Define.
10498         (TARGET_INITIALIZER): Add new initializers.
10499         * targhooks.c (default_cc_modes_compatible): New function.
10500         * targhooks.c (default_cc_modes_compatible): Declare.
10501         * hooks.c (hook_bool_intp_intp_false): New function.
10502         * hooks.h (hook_bool_intp_intp_false): Declare.
10503         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
10504         (TARGET_CC_MODES_COMPATIBLE): Define.
10505         (ix86_fixed_condition_code_regs): New static function.
10506         (ix86_cc_modes_compatible): Likewise.
10507         * doc/tm.texi (Condition Code): Document new hooks.
10508
10509 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10510
10511         * fixinc/inclhack.def (bad_lval): Renamed to ...
10512         (alpha_bad_lval): ... this.
10513         Removed file list.
10514         Restrict to alpha*-dec-osf*.
10515         * fixinc/fixincl.x: Regenerate.
10516         * fixinc/tests/base/dirent.h: Remove, moving test ...
10517         * fixinc/tests/base/testing.h: ... here, reflecting new name.
10518
10519 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
10520
10521         PR c/13814
10522         * c-decl.c (diagnose_mismatched_decls): Also discard a
10523         built-in if we encounter an old-style definition with the
10524         same name.
10525
10526 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
10527
10528         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
10529         set to default{32,64}.
10530
10531 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
10532
10533         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
10534         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
10535
10536 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
10537             Olivier Hainque  <hainque@act-europe.fr>
10538
10539         * fold-const.c (fold_binary_op_with_conditional_arg): Only
10540         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
10541
10542 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
10543
10544         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
10545         size for minipool references.
10546
10547 2004-01-23  Roger Sayle  <roger@eyesopen.com>
10548
10549         * real.c (real_floor, real_ceil): Tweak to allow input and output
10550         arguments to overlap.
10551         (real_round): New function to implement round(3m) semantics.
10552         * real.h (real_round): Prototype here.
10553         * builtins.c (fold_builtin_round): New function to constant fold
10554         round, roundf and roundl.
10555         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
10556
10557 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
10558
10559         PR optimization/13819
10560         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
10561         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
10562         (sh_handle_sp_switch_attribute): Remove warning.
10563
10564 2003-11-30  Jan Hubicka  <jh@suse.cz>
10565
10566         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
10567
10568 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
10569
10570         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
10571         may or may not return non-NIL.
10572         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
10573         check CANNOT_CHANGE_MODE_CLASS
10574
10575 2004-01-23  Jan Hubicka  <jh@suse.cz>
10576
10577         * basic-block.h (PROP_POSTRELOAD): New macro.
10578         (CLEANUP_LOG_LINKS): New.
10579         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
10580         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
10581
10582         * cselib.c (value_pool): New.
10583         (new_cselib_val): Use pool.
10584         (cselib_init): Initialize value_pool
10585         (cselib_finish): Free pool.
10586
10587 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
10588
10589         * config/sparc/sparc.c (scan_record_type): New function.
10590         (function_arg_slotno): Use it to determine which kinds of
10591         registers the record can be passed in.
10592
10593 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
10594
10595         * config/pa/fptr.c: Fix old-style definition.
10596
10597 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
10598
10599         PR optimization/13724
10600         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
10601         represents the zero bits produced by a ZERO_EXTEND operation.
10602
10603 2004-01-22  Roger Sayle  <roger@eyesopen.com>
10604
10605         PR optimization/13821
10606         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
10607         correctly calculate the lowpart offset of the contracted subreg.
10608
10609 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
10610
10611         * doc/invoke.texi (Optimize Options): Note that --param arguments
10612         are subject to change without notice.
10613
10614 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10615
10616         * config.gcc (mips-sgi-irix6*o32): Removed.
10617         * config/mips/iris6-o32-as.h: Likewise.
10618         * config/mips/iris6-o32-gas.h: Likewise.
10619         * config/mips/iris6-o32.h: Likewise.
10620
10621 2004-01-22  Jan Hubicka  <jh@suse.cz>
10622
10623         * cfgcleanup.c (first_pass): New static variable.
10624         (try_forward_edges):  Add work limiting check for threading.
10625         (try_crossjump_bb):  Add work limiting check for crossjumping.
10626         (try_optimize_cfg):  Maintain first pass variable.
10627
10628 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
10629
10630         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
10631         handles complex and vector modes.
10632
10633 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
10634
10635         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
10636         (REG_OK_FOR_BASE_P_STRICT): Likewise.
10637         (STRICT): Likewise.
10638
10639 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
10640
10641         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
10642         (genrtl_for_stmt): Remove emit_nop calls.
10643
10644 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10645
10646         PR target/13713
10647         PR target/13324
10648         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
10649         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
10650         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
10651
10652 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
10653
10654         * config/arm/arm.c: Include "debug.h".
10655         (thumb_pushpop): Take two new arguments.  Add some commentary.
10656         Output frame information when pushing.
10657         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
10658         thumb_pushpop.
10659         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
10660         offset, and pass it to thumb_pushpop.  Output CFI information.
10661         (thumb_expand_prologue): Add some frame-related markers and notes.
10662
10663 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
10664
10665         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
10666         for TARGET_64BIT.
10667         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
10668         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
10669
10670 2004-01-22  Roger Sayle  <roger@eyesopen.com>
10671             Paolo Bonzini  <bonzini@gnu.org>
10672
10673         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
10674         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
10675         * rtl.h (subreg_lsb_1): Prototype here.
10676         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
10677         sign extensions.
10678
10679 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
10680
10681         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
10682         macro need not be defined if jump-tables should contain
10683         relative addresses only when -fPIC or -fPIC is in effect.
10684
10685 2004-01-22  Jan Hubicka  <jh@suse.cz>
10686
10687         * alias.c (reg_base_value): Turn into varray.
10688         (reg_base_value_size): Kill.
10689         (old_reg_base_value): New deletable varray.
10690         (alias_invariant_size): New variable.
10691         (REG_BASE_VALUE): Update to use varray.
10692         (find_base_value): Likewise.
10693         (record_set): Likewise.
10694         (record_base_value): Likewise.
10695         (memrefs_conflict_p): Likewise.
10696         (record_set): Likewise
10697         (record_base_value): Likewise.
10698         (memrefs_conflict_p): Use alias_invariant_size.
10699         (init_alias_analysis): Use varray; set alias_invariant_size;
10700         rescale other arrays to be sized by maxreg.
10701         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
10702
10703 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
10704
10705         * config/sparc/sparc.c (function_arg_slotno): Use
10706         FLOAT_TYPE_P to detect FP fields in structures.
10707         (function_arg_record_value_1): Likewise.
10708         (function_arg_record_value_2): Likewise.
10709
10710 2004-01-22  Jan Hubicka  <jh@suse.cz>
10711
10712         * function.c (allocate_struct_function): Do not initialize expr, emit
10713         and varasm.
10714         (prepare_function_start): Do it here.
10715         * c-parse.in (maybe_type_qual): Do not produce line number notes.
10716
10717 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
10718
10719         PR target/13559
10720         * config/sparc/sparc.c (function_arg_record_value_3): Revert
10721         to 'word_mode' once the first slot has been filled.
10722
10723 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
10724
10725         * config/sparc/sparc.c (function_arg_record_value_1): Fix
10726         computation of the number of integer registers required.
10727
10728 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
10729
10730         * config/i386/i386.md: Simplify certain comparisons of
10731         const_int.
10732
10733 2004-01-21  Andrew Pinski  <apinski@apple.com>
10734
10735         PR target/13785
10736         * config/rs6000/rs6000.md (call_value): Force operand
10737         1 not operand 0 into a register.
10738
10739 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
10740
10741         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
10742         unwind-dw2-fde.h: Update copyright.
10743
10744 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10745
10746         * pa-protos.h: Update copyright.
10747         * pa.h: Likewise.
10748         * pa.md: Likewise.
10749
10750 2004-01-21  Caroline Tice  <ctice@apple.com>
10751
10752         PR target/12308
10753         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
10754         flags register.
10755         (fix_truncdfdi2): Likewise.
10756         (fix_truncsfdi2): Likewise.
10757         (*fix_truncdi_1): Likewise.
10758         (fix_truncxfsi2): Likewise.
10759         (fix_truncdfsi2): Likewise.
10760         (fix_truncsfsi2): Likewise.
10761         (*fix_truncsi_1): Likewise.
10762         (fix_truncxfhi2): Likewise.
10763         (fix_truncdfhi2): Likewise.
10764         (fix_truncsfhi2): Likewise.
10765         (*fix_trunchi_1): Likewise.
10766
10767 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
10768
10769         * alias.c, basic-block.h, c-common.c, c-common.h,
10770         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
10771         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
10772         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
10773         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
10774         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
10775         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
10776         genautomata.c, genconditions.c, genemit.c, genflags.c,
10777         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
10778         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
10779         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
10780         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
10781         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
10782         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
10783         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
10784         unwind.h, varray.c, varray.h: Update copyright.
10785
10786 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
10787
10788         * config/h8300/coff.h: Update copyright.
10789         * config/h8300/elf.h: Likewise.
10790         * config/h8300/h8300-protos.h: Likewise.
10791         * config/h8300/h8300.c: Likewise.
10792         * config/h8300/h8300.h: Likewise.
10793         * config/h8300/h8300.md: Likewise.
10794
10795 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10796
10797         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
10798         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
10799         ultrix_unistd): New hacks.
10800         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
10801         ULTRIX_CONST2_CHECK): Add checks.
10802         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
10803         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
10804         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
10805         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
10806         * fixinc/tests/base/locale.h: New file.
10807         * fixinc/fixincl.x: Rebuilt.
10808
10809 2004-01-21  Andreas Jaeger  <aj@suse.de>
10810             Michael Matz  <matz@suse.de>
10811
10812         * doc/extend.texi (Extended Asm): Clarify memory clobber.
10813
10814 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
10815
10816         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
10817         _Jv_RegisterClasses through a function pointer.
10818
10819 2004-01-21  Falk Hueffner  <falk@debian.org>
10820
10821         PR target/12898
10822         * config/alpha/alpha.c (alpha_emit_set_const_1): If
10823         no_new_pseudos, use gen_rtx_SET directly for SImode constants
10824         which need multiple instructions to emit.
10825
10826 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
10827
10828         * config/m32r/m32r.h (CPP_SPEC): Define.
10829
10830 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
10831
10832         * c-decl.c (merge_decls): Kill different_binding_level and
10833         different_tu arguments; simplify throughout.
10834         (duplicate_decls): Likewise.
10835         (pushdecl, merge_translation_unit_decls): Update calls to
10836         duplicate_decls.
10837
10838 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10839
10840         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
10841         $(SYSTEM_H).
10842         (print-rtl1.o): Depend on $(SYSTEM_H).
10843
10844 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
10845
10846         PR bootstrap/12730
10847         * configure.ac: Delete definition and subsitution of docdir.
10848         Add info, man, srcman and srcinfo to target hooks. Create doc/
10849         directory.
10850         * configure: Regenerate.
10851         * Makefile.in: Don't substitute docdir and delete all references
10852         throughout.
10853         (MAKEINFOFLAGS): Define.
10854         (stmp-docobjdir): Delete.
10855         (INFOFILES, MANFILES): Define.
10856         (info): Call lang.info, srcinfo and lang.srcinfo.
10857         (generated-manpages): Call lang.man, srcman and lang.srcman.
10858         (srcinfo, srcman): New rules to copy back files to source directory.
10859         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
10860         (install-man): Revamp rule.
10861         (clean): Update dvi directory.
10862         (distclean): Delete TAGS from front end directorys.
10863         (maintainer-clean): Delete all document files in source directory.
10864
10865         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
10866         (objc.srcman, objc.srcinfo): Likewise.
10867
10868 2004-01-20  Bruce Korb  <bkorb@gnu.org>
10869
10870         * fixinc/inclhack.def(math_exception): bypass only for glibc.
10871         (matherr_decl): rename & relocate as exception_structure.
10872         This fix must precede the math_exception fix.
10873
10874 2004-01-20  Roger Sayle  <roger@eyesopen.com>
10875
10876         * fold-const.c (fold_convert): Rename to fold_convert_const.
10877         (fold_convert_const): Change arguments to take a tree_code,
10878         a type and the operand/expression to be converted.  Return
10879         NULL_TREE if no simplification is possible.  Add support for
10880         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
10881         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
10882         Adjust call to fold_convert to match new fold_convert_const.
10883         Avoid modifying the tree passed to fold in-place.
10884
10885 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
10886
10887         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
10888         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
10889         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
10890
10891 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10892
10893         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
10894         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
10895         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
10896         (emit_move_sequence): Check scratch_reg first in various if statements.
10897         Extend source simplification to handle all 64-bit CONST_INTs.
10898         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
10899         frame size.
10900         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
10901         frame offset calculations.
10902         * pa.h (NEW_HP_ASSEMBLER): Add comment.
10903         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
10904         LEGITIMATE_64BIT_CONST_INT_P): Define.
10905         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
10906         any CONST_INT as legitimate during and after reload.
10907         (VAL_32_BITS_P, INT_32_BITS): Define.
10908         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
10909
10910 2004-01-20  Jan Hubicka  <jh@suse.cz>
10911
10912         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
10913         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
10914         containing hard regs are shared.
10915         (gen_hard_reg_clobber): New function.
10916         (hard_reg_clobbers): New array.
10917         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
10918         (copy_rtx): Do not copy clobbers containing hard regs.
10919         * rtl.h (gen_hard_reg_clobber): Declare.
10920
10921 2004-01-20  Jan Hubicka  <jh@suse.cz>
10922
10923         * varray.c:  Include hashtab.h
10924         (varray_descriptor): New structure.
10925         (hash_descriptor, eq_descriptor, varray_descriptor,
10926         print_statistics): New static functions
10927         (varray_init, varray_grow): Update statistics
10928         (dump_varray_statistics): New function.
10929         * varray.h (dump_varray_statistics): Declare.
10930         * toplev.c (finalize): Call it.
10931         * Makefile.in (varray.o): Add dependency.
10932
10933 2004-01-20  Jan Hubicka  <jh@suse.cz>
10934
10935         * cselib.c: Include alloc-pool.h
10936         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
10937         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
10938         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
10939         unchain_one_elt_loc_list_pool, unchain_one_value,
10940         new_cselib_val): Simplify using allocpool.
10941         (cselib_init): Initialize allocpools.
10942         (cselib_finish): Finish allocpools.
10943         * Makefile.in (cselib.o): Depend on alloc-pool.h
10944
10945 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
10946
10947         * config/mips/mips.c (mips_load_call_address): Make the call insn
10948         use $gp if it could be calling a lazy binding stub.
10949
10950 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
10951
10952         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
10953         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
10954         (TARGET_STRUCT_VALUE_RTX): Likewise.
10955         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
10956         (PROMOTE_FUNCTION_RETURN): Remove.
10957         (STRUCT_VALUE): Remove.
10958
10959 2004-01-20  Denis Chertykov  <denisc@overta.ru>
10960
10961         PR bootstrap/13735
10962         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
10963         register as pointer after reload.
10964
10965 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10966
10967         PR optimization/12440
10968         * loop.c: Include ggc.h.
10969         (loop_optimize): Run garbage collector between optimization of loops.
10970         * Makefile.in (loop.o): Add GGC_H dependency.
10971
10972 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
10973
10974         * gcc/config/rs6000/rs6000.c (function_arg) Handle
10975         vector register special in function without prototype.
10976         (function_arg_advance): Vector parameters get always
10977         GPRs allocated for the linux64 target.
10978
10979 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
10980
10981         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
10982         not TARGET_M32RX_MASK.
10983
10984 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
10985
10986         PR target/13557
10987         * config/sparc/sparc.c (function_arg): Reorder the cases.
10988
10989 2004-01-19  Per Bothner  <per@bothner.com>
10990
10991         Move cpp_reader's line_maps field to a shared global.
10992         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
10993         and change the type to a pointer rather than a struct.
10994         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
10995         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
10996         Likewise.
10997         * cppfiles.c (validate_pch):  Likewise.
10998         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
10999         Likewise.
11000         * cpperror.c (print_location):  Likewise.
11001         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
11002         * cppinit.c (cpp_create_reader):  Handle new parameter.
11003         (cpp_destroy):  Don't free line_maps - that's no longer our job.
11004         * input.h (line_table):  New variable.
11005         * toplev.c (line_table):  Declare variable.
11006         (general_init):  Initialize line_table.
11007         * c-opts.c (c_common_init_options):  Pass line_table to
11008         cpp_create_reader.
11009         * fix-header.c (read_scan_file):  New local variable line_table.
11010         Initialize, and pass it to cpp_create_reader.
11011         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
11012         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
11013
11014 2004-01-19  Per Bothner  <per@bothner.com>
11015
11016         Implement a cache for linemap_lookup.
11017         * line-map.h (struct_line_maps):  Add cache field.
11018         * line-map.c (linemap_init):  Zero cache field.
11019         (linemap_add):  Set cache field to offset of newly allocated map.
11020         (linemap_lookup):  Use and set cache field.
11021
11022 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
11023
11024         PR optimization/13567
11025         * cse.c (cse_basic_block): Call cse_insn with a non-null
11026         libcall_insn for the last SET insn of a no-confilict block.
11027
11028 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
11029
11030         * Makefile.in (target_noncanonical, program_transform_name): Use
11031         immediate define instead of deferred.
11032         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
11033         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
11034         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
11035         deferred backquote.
11036
11037 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
11038
11039         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
11040         true unconditionally.
11041         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
11042         Remove.
11043         (build_unary_op, build_modify_expr): Don't handle extended
11044         lvalues.
11045         (build_component_ref, build_conditional_expr): Call non_lvalue
11046         instead of pedantic_non_lvalue.
11047         (build_c_cast): Don't condition use of non_lvalue on pedantic.
11048         * fold-const.c (fold): Don't check pedantic directly for
11049         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
11050         passed to pedantic_non_lvalue.
11051         * doc/extend.texi: Remove documentation of extended lvalues.
11052
11053 2004-01-19  Roger Sayle  <roger@eyesopen.com>
11054
11055         PR optimization/5263
11056         * simplify-rtx.c (associative_constant_p): Delete.
11057         (simplify_associative_operation): Rewrite to linearize terms, and
11058         attempt to simplify new term against both left and right subterms.
11059         (simplify_binary_operation): Call swap_commutative_operands_p on
11060         op0 and op1, not trueop0 and trueop1.  Move the initialization of
11061         trueop0 and trueop1 down to where first needed.
11062         (simplify_relational_operation): Likewise.
11063         * rtlanal.c (commutative_operand_precedence): Also order constant
11064         operands using avoid_constant_pool_reference.
11065
11066 2004-01-19  Richard Henderson  <rth@redhat.com>
11067
11068         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
11069         don't check memory mode.
11070         (unaligned_memory_operand): Likewise.
11071         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
11072         abort for op0 not MEM.
11073
11074         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
11075         is not a reg, copy to a scratch first.
11076         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
11077         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
11078         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
11079         (reload_inqi, reload_inhi): Fix mode of op0.
11080         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
11081         reload_outhi_help): Likewise.  Use define_insn_and_split.
11082
11083         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
11084         as well as $29 dead.
11085
11086 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
11087
11088         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
11089         "tls_object" for thread-local objects.
11090         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
11091         "#tls" for thread-local sections.
11092         * configure.ac (thread-local checks): Specify --fatal-warnings in
11093         every binutils-specific checks.  For sparc*-*-*, test whether the
11094         OS is Solaris and the tools are native and act accordingly.
11095         * configure: Rebuild.
11096
11097 2004-01-19  Jeff Law  <law@redhat.com>
11098
11099         * contrib.texi: Update Paolo Carlini's entry.  New entries for
11100         Jerry Quinn and Petur Runolfsson.
11101
11102 2004-01-19  Roger Sayle  <roger@eyesopen.com>
11103
11104         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
11105         size, don't use the larger zero-extending loads.
11106
11107 2004-01-19  Richard Henderson  <rth@redhat.com>
11108
11109         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
11110         * alpha.md (UNSPEC_NT_LDA): Remove.
11111         (UNSPEC_CVTLQ, cvtlq): New.
11112         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
11113         (extendsidi2_fix): Remove.
11114         (extendsidi2 splitter): Use cvtlq.
11115         (extendsidi2 fp peepholes): Remove.
11116         (cvtql): Use SFmode instead of SImode.
11117         (fix_trunc?fsi): Update to match.
11118         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
11119         (movsi): Rename from movsi_nofix, remove f alternatives.
11120         (movsi_nt_vms): Similarly.
11121         (movsi_fix, movsi_nt_vms_fix): Remove.
11122         (nt_lda): Remove.
11123         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
11124
11125 2004-01-19  Jan Hubicka  <jh@suse.cz>
11126
11127         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
11128         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
11129         list.
11130         (cgraph_remove_unreachable_nodes): New function
11131         (cgraph_decide_inlining_of_small_function): Fix pasto.
11132         (cgraph_decide_inlining_incrementally): Fix pasto.
11133         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
11134
11135 2004-01-19  Steven Bosscher  <stevenb@suse.de>
11136
11137         * gengtype.c (header_file): Make it static.
11138         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
11139         * gengtype.h (header_file): No longer extern.
11140
11141 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
11142
11143         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
11144         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
11145         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
11146
11147 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
11148
11149         * stmt.c (HAVE_casesi): Define it not already defined.
11150         (HAVE_tablejump): Likewise.
11151         (expand_end_case_type): Resort to the binary tree method if
11152         neither casesi or tablejump is available.
11153
11154 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
11155
11156         * final.c (final_scan_insn): Make non-static again.
11157         * output.h (final_scan_insn): Re-add prototype.
11158         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
11159         to final_scan_insn call.
11160         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
11161         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
11162         * config/pa/pa.c (output_lbranch, output_call): Likewise.
11163         * config/sh/sh.c (print_slot): Likewise.
11164         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
11165         (output_sibcall, sparc_flat_function_epilogue): Likewise.
11166
11167 2004-01-18  Jan Hubicka  <jh@suse.cz>
11168
11169         * basic-block.h (try_redirect_by_replacing_jump): Declare.
11170         * cfgcleanup.c (try_optimize_cfg): Use it.
11171         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
11172         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
11173         Kill hack.
11174         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
11175
11176         Revert:
11177         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
11178
11179                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
11180                 even after reload, just don't remove the actual jump tables.
11181
11182 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
11183
11184         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
11185
11186 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
11187
11188         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
11189         the size of a pointer in bytes.
11190
11191 2004-01-18  Roger Sayle  <roger@eyesopen.com>
11192
11193         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
11194         live "next" variable, which could lead to an infinite loop.
11195
11196 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
11197
11198         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
11199         block.
11200
11201         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
11202         Check for NULL in the chain and remove repeated code.
11203
11204 2004-01-18  Jan Hubicka  <jh@suse.cz>
11205
11206         * coverage.c (checksum_string): Rename to ...
11207         (coverage_checksum_string): ... this one, Use crc32_string; recognize
11208         names containing random number and zero the number out in order to get
11209         match.
11210
11211 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
11212
11213         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
11214
11215 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
11216
11217         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
11218         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
11219         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
11220         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
11221         doc/trouble.texi: Remove trailing whitespace.
11222
11223 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
11224
11225         PR target/7618
11226         * config/mips/mips.c: Include cfglayout.h.
11227         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
11228         (mips_unspec_offset_high): Add temporary register argument.
11229         (mips_load_call_address): New function, split out from...
11230         (mips_expand_call): ...here.
11231         (mips_output_cplocal): New function.
11232         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
11233         (mips_emit_loadgp): New function, split out from...
11234         (mips_expand_prologue): ...here.
11235         (mips_output_mi_thunk): New function.
11236
11237 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
11238
11239         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
11240         mcpu32): Remove redundant checks for implied target predefines.
11241
11242 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
11243
11244         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
11245         Return type is unsigned int not int.
11246         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
11247         Likewise.
11248
11249 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
11250
11251         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
11252         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
11253         "GNU/Linux" and "Microsoft Windows" terminology.
11254
11255 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
11256
11257         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
11258         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
11259         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
11260         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
11261         @smallexample instead of @example.
11262
11263 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
11264
11265         * objc/objc-act.c (build_objc_method_call): Use target
11266         hooks instead of macros to determine if ..._stret
11267         dispatchers should be used (NeXT runtime only).
11268
11269 2004-01-17  Roger Sayle  <roger@eyesopen.com>
11270
11271         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
11272         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
11273
11274 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
11275
11276         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
11277         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
11278         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
11279         macros.
11280         * reload1.c (emit_reload_insns): Use them.
11281         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
11282         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
11283         for NULL PATTERN.
11284
11285 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
11286
11287         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
11288         (final_scan_insn): Update to take an additional SEEN argument.  Emit
11289         a line note after the prologue.  Make static.
11290         (line_note_exists): Remove.
11291         (final): Don't initialize line_note_exists.  Update call to
11292         final_scan_insn.
11293         * output.h (final_scan_insn): Remove prologue.
11294         * function.c (set_insn_locators): Update comment.
11295         (thread_prologue_and_epilogue_insns): Add a comment.
11296
11297 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
11298
11299         PR target/10781
11300         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
11301         Prototype.
11302         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
11303         New function.
11304         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
11305         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
11306         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
11307
11308 2004-01-17  Jan Hubicka  <jh@suse.cz>
11309
11310         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
11311         commit.
11312
11313         * toplev.c (HAVE_conditional_execution): Provide default.
11314         (rest_of_handle_reorder_blocks): For conditional_execution target
11315         update liveness once after all transformations
11316         (rest_of_compilation): Do crossjumping before ce3.
11317
11318 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
11319
11320         * alias.c (new_alias_set): Mark last_alias_set for PCH.
11321         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
11322         for PCH.
11323         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
11324         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
11325         (get_TOC_alias_set): Mark 'set' for PCH.
11326
11327 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
11328
11329         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
11330         even after reload, just don't remove the actual jump tables.
11331
11332 2004-01-17  J. Brobecker  <brobecker@gnat.com>
11333
11334         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
11335         Remove checks for is_ada() and TREE_UNSIGNED.
11336         (subrange_type_die): Emit a byte_size attribute if the subrange
11337         type size is different from the base type size.
11338         (modified_type_die): Replace call to is_ada_subrange_type() by
11339         call to is_subrange_type().
11340
11341 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
11342
11343         * config/sh/sh.c: Include ggc.h.
11344
11345 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
11346
11347         * Makefile.in (MD5_H): New.
11348         (fold-const.o): Depend on md5.h.
11349         (dwarf2out.o): Likewise.
11350         (cppfiles.o): Likewise.
11351         * cppfiles.c: Include md5.h.
11352         (should_stack_file): Check against list read from PCH file.
11353         (struct pchf_data): New.
11354         (pchf): New variable.
11355         (struct pchf_adder_info): New.
11356         (pchf_adder): New.
11357         (pchf_save_compare): New.
11358         (_cpp_save_file_entries): New.
11359         (_cpp_read_file_entries): New.
11360         (struct pchf_compare_data): New.
11361         (pchf_compare): New.
11362         (check_file_against_entries): New.
11363         * cpphash.h (_cpp_save_file_entries): Prototype.
11364         (_cpp_read_file_entries): Prototype.
11365         * cpppch.c (cpp_write_pch_state): Write the list of headers.
11366         (cpp_read_state): Read the list of headers.
11367
11368 2004-01-17  Jan Hubicka  <jh@suse.cz>
11369
11370         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
11371         builtin_expect specially.
11372         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
11373         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
11374         * invoke.texi (max-inline-insns-single): Set to 100.
11375         (large-function-insns): Set to 3000.
11376
11377 2004-01-16  Eric Christopher  <echristo@redhat.com>
11378             Chandrakala Chavva <cchavva@redhat.com>
11379
11380         * cppcharset.c (one_iso88591_to_utf8): New function.
11381         (convert_iso88591_utf8): Ditto. Use.
11382         (conversion_tab): Use.
11383         (_cpp_input_to_utf8): New function.
11384         (_cpp_init_iconv_buffer): Ditto.
11385         (_cpp_close_iconv_buffer): Ditto.
11386         * cpphash.h: Prototype new functions.
11387         (cpp_buffer): Add input_cset_desc.
11388         * cppinit.c: Add input_charset default.
11389         * cpplib.c (cpp_push_buffer): Support init and
11390         close of iconv.
11391         * cpplib.h (cpp_options): Add input_charset.
11392
11393 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
11394
11395         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
11396         * config/alpha/unicosmk.h: Remove a commented-out definition
11397         of ASM_OUTPUT_SECTION_NAME.
11398         * config/stormy16/stormy16.h: Likewise.
11399
11400 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
11401
11402         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
11403         (alpha___extern_prefix_sys_stat): ... this.
11404         Apply to <sys/mount.h>, too.
11405         Tweak to match more variations.
11406         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
11407
11408         * fixinc/inclhack.def (alpha___extern_prefix,
11409         alpha___extern_prefix_standards): New hacks to obey
11410         __PRAGMA_EXTERN_PREFIX.
11411         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
11412         test.
11413         * fixinc/tests/base/standards.h: Likewise.
11414
11415         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
11416         variations.
11417         New testcase.
11418         * fixinc/tests/base/pthread.h: Handle it.
11419
11420         * fixincl/inclhack.def (bad_lval): Sort file list.
11421         Add many missing files up to Tru64 UNIX V5.1B.
11422         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
11423         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
11424         order.
11425
11426         * fixinc/fixincl.x: Regenerate.
11427
11428 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
11429
11430         * version.c (version_string): Change to 3.5.0.
11431         * doc/include/gcc-common.texi (version-GCC): Likewise.
11432
11433 2004-01-16  Jan Hubicka  <jh@suse.cz>
11434
11435         * i386.md (load_tp_di): Fix pasto.
11436
11437         PR opt/13608
11438         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
11439
11440         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
11441         pp_c_character_constant, pp_c_floating_constant,
11442         pp_c_additive_expression, pp_c_shift_expression,
11443         pp_c_equality_expression, pp_c_and_expression,
11444         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
11445         pp_c_logical_and_expression): Remove inline modifier.
11446         * dwarf2out.c (get_AT): Likewise.
11447         * et-forest.c (et_splay): Likewise.
11448         * ra.h (ra_alloc, ra_calloc): Likewise
11449
11450 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
11451
11452         * config/frv/frv-protos.h: Fix comment formatting.
11453         * config/frv/frv.c: Likewise.
11454         * config/frv/frv.h: Likewise.
11455         * config/frv/frv.md: Likewise.
11456         * config/frv/frvbegin.c: Likewise.
11457         * config/frv/frvend.c: Likewise.
11458
11459 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
11460
11461         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
11462         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
11463         LINKER_DOES_NOT_WORK_WITH_DWARF2.
11464         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
11465
11466 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
11467
11468         PR 11864
11469         * postreload.c (reload_cse_simplify_operands): Don't remove
11470         implicit extension from LOAD_EXTEND_OP.
11471
11472 2004-01-16  Jan Hubicka  <jh@suse.cz>
11473
11474         PR opt/11350
11475         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
11476         after reload.
11477         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
11478         rtl_try_redirect_by_replacing_branch): Likewise.
11479
11480 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
11481
11482         PR pch/13689
11483         * alias.c (struct alias_set_entry): Mark for GC.
11484         (alias_sets): Make static, mark for GC.
11485         (record_alias_subset): Use GC to allocate alias structures.
11486         * varray.c (element): Make generic varrays GCed.
11487
11488         PR pch/13361
11489         * c-typeck.c (constructor_asmspec): Delete.
11490         (struct initializer_stack): Delete field 'asmspec'.
11491         (start_init): Delete saving of asmspec.
11492         (finish_init): Don't update constructor_asmspec.
11493         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
11494         * stmt.c (expand_asm): Duplicate strings from tree.
11495         (expand_asm_operands): Likewise.
11496         * tree.c (tree_size): Update computation of size of STRING_CST.
11497         (make_node): Don't make STRING_CST nodes.
11498         (build_string): Allocate string with tree node.
11499         * tree.def (STRING_CST): Update comment.
11500         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
11501         (tree_string): Place contents of string in tree node.
11502         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
11503         from tree.
11504
11505         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
11506         altivec operands.
11507
11508 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11509
11510         * c-common.h: Fix comment formatting.
11511         * c-cppbuiltin.c: Likewise.
11512         * c-pragma.c: Likewise.
11513         * calls.c: Likewise.
11514         * collect2.c: Likewise.
11515         * cppcharset.c: Likewise.
11516         * cpptrad.c: Likewise.
11517         * dbxout.c: Likewise.
11518         * defaults.h: Likewise.
11519         * dwarf2out.c: Likewise.
11520         * fold-const.c: Likewise.
11521         * genautomata.c: Likewise.
11522         * genconditions.c: Likewise.
11523         * genflags.c: Likewise.
11524         * gengtype.c: Likewise.
11525         * integrate.c: Likewise.
11526         * loop.c: Likewise.
11527         * predict.c: Likewise.
11528         * sdbout.c: Likewise.
11529
11530 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
11531
11532         * config/ia64/ia64.md (*movti_internal): C output template
11533         extracted to ia64.c.
11534         (*movti_internal_reg): Delete.
11535         (reload_inti, reload_outti): Use the correct mode on operand 2
11536         in the first place, don't fix it up in the output template.
11537         (movtf, reload_ointf, reload_outtf): New expanders.
11538         (*movtf_internal): New define_insn_and_split.
11539         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
11540         make static; do not hand TFmode CONST_DOUBLEs to split_double.
11541         (ia64_split_tmode_move): New function, body mostly pulled
11542         from ia64.md:*movti_internal.
11543         (ia64_function_arg_words): New function, extracted common
11544         logic from ia64_function_arg et seq.
11545         (ia64_function_arg_offset): Likewise.  Handle correctly the
11546         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
11547         (ia64_function_arg, ia64_function_arg_partial_nregs)
11548         (ia64_function_arg_advance): Use ia64_function_arg_words and
11549         ia64_function_arg_offset.
11550         (ia64_function_value): TCmode does not go in float regs.
11551         (ia64_secondary_reload_class): Also handle TFmode.
11552         * config/ia64/ia64-protos.h: Remove prototype for
11553         ia64_split_timode; add prototype for ia64_split_tmode_move.
11554
11555 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
11556
11557         * Makefile.in (MAINT): Make it an immediate assignment.
11558
11559 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11560
11561         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
11562
11563 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11564
11565         * config/h8300/coff.h: Replace Hitachi with Renesas.
11566         * config/h8300/elf.h: Likewise.
11567         * config/h8300/h8300-protos.h: Likewise.
11568         * config/h8300/h8300.c: Likewise.
11569         * config/h8300/h8300.h: Likewise.
11570         * config/h8300/h8300.md: Likewise.
11571         * config/h8300/lib1funcs.asm: Likewise.
11572
11573 2004-01-15  Andrew Pinski  <apinski@apple.com>
11574
11575         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
11576         around it.
11577
11578 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11579
11580         * config/h8300/h8300.c (h8300_return_in_memory): New.
11581         (TARGET_STRUCT_VALUE_RTX): Likewise.
11582         (TARGET_RETURN_IN_MEMORY): Likewise.
11583         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
11584         (RETURN_IN_MEMORY): Likewise.
11585
11586 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
11587
11588         PR optimization/13375
11589         * gcse.c (handle_avail_expr): Just return if the source is not a
11590         single set.
11591
11592 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
11593             Daniel Jacobowitz  <drow@mvista.com>
11594
11595         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
11596         (EQUIV): Define.
11597         (ARM_FUNC_ALIAS): New macro.
11598         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
11599         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
11600
11601 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11602
11603         PR optimization/12372
11604         * calls.c (expand_call): Add call_fusage data for stack arguments in
11605         constant calls.
11606
11607 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
11608
11609         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
11610         (rs6000_elf_declare_function_name): Formatting.
11611         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
11612
11613 2004-01-15  Jan Hubicka  <jh@suse.cz>
11614
11615         PR bootstrap/13692
11616         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
11617         previous patch.
11618
11619 2004-01-15  Richard Henderson  <rth@redhat.com>
11620
11621         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
11622         integer regs of the same call-savedness.
11623
11624 2004-01-15  Andreas Schwab  <schwab@suse.de>
11625
11626         PR bootstrap/13562
11627         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
11628         status for NOTB/NOTW/NEGW methods.
11629
11630 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11631
11632         * doc/invoke.texi: Update dump file names.  Fix a typo.
11633
11634 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11635
11636         * builtins.c (expand_builtin_va_end): Don't use
11637         EXPAND_BUILTIN_VA_END.
11638         * system.h (EXPAND_BUILTIN_VA_END): Poison.
11639         * config/d30v/d30v.h: Remove a commented-out definition of
11640         EXPAND_BUILTIN_VA_END.
11641         * config/stormy16/stormy16.h: Likewise.
11642
11643 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
11644
11645         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
11646         * targhooks.c (default_struct_value_rtx): Don't use
11647         STRUCT_VALUE_INCOMING_REGNUM.
11648
11649 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
11650
11651         PR bootstrap/12744
11652         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
11653         GENINSRC and not parsedir.  Define srcextra as a langhook.
11654         * configure: Regenerate.
11655         * Makefile.in: Suppress default .l.c rule.  Don't substitute
11656         parsedir and delete all references throughout.  Conditionally define
11657         rule for srcextra dependent on GENINSRC.
11658         (stmp-docobjdir): Delete.
11659         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
11660         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
11661         and gengtype-yacc.h back to source directory.
11662         (maintainer-clean): Delete all parse files in source directory.
11663         (distclean): Delete generated files.
11664
11665         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
11666         (objc-parse.c, objc-parse.y): Don't use parsedir.
11667         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
11668         directory if requested.
11669         (po-generated): Don't use parsedir.
11670         (objc.maintainer-clean): Delete above files from source directory.
11671
11672 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11673
11674         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
11675
11676 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11677
11678         * doc/tm.texi: Replace RETURN_IN_MEMORY with
11679         TARGET_RETURN_IN_MEMORY.
11680
11681 2004-01-15  Jan Hubicka  <jh@suse.cz>
11682
11683         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
11684         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
11685         functions accepting SSE arguments
11686         (function_arg): Warn only when asked to warn.
11687         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
11688
11689 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
11690
11691         * c-parse.in (stmts_and_decls): Make label at end of compound
11692         statement a hard error.
11693
11694 2004-01-14  Jan Hubicka  <jh@suse.cz>
11695
11696         * cgraph.c (create_edge): Use local.redefined_extern_inline.
11697         * cgraph.h (cgraph_local_info): Sort fields by size; add
11698         redefined_extern_inline
11699         (cgraph_global_info): Sort fields by size.
11700         (cgraph_node): Likewise.
11701         * cgraphunit.c (cgraph_finalize_function): Se
11702         local.redefined_extern_inline on redefinition.
11703         (cgraph_analyze_function): Use it; fix formating.
11704
11705 2004-01-14  Jan Hubicka  <jh@suse.cz>
11706
11707         PR c++/10776
11708         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
11709         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
11710         bitmaps
11711         (cache_size): New variable
11712         (add_dependence): Update use; canonize early memory locations
11713         (sched_analyze_1): Likewise.
11714         (sched_analyze_2): Likewise.
11715         (init_dependency_caches): Initialize bitmaps.
11716         (free_dependency_caches): Free bitmaps
11717
11718 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11719
11720         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
11721         targetm.calls.strict_argument_naming().
11722         * target.h: Likewise.
11723
11724 2004-01-14  Richard Henderson  <rth@redhat.com>
11725
11726         PR debug/13231
11727         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
11728         instructions.
11729
11730 2004-01-14  Richard Henderson  <rth@redhat.com>
11731
11732         PR c++/12491
11733         * except.c (struct eh_region): Add u.fixup.resolved.
11734         (resolve_one_fixup_region): Split out from ...
11735         (resolve_fixup_regions): ... here.
11736
11737 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11738
11739         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
11740
11741 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11742
11743         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
11744         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
11745         (STRUCT_VALUE): Remove.
11746
11747 2004-01-14  Steven Bosscher  <stevenb@suse.de>
11748
11749         * system.h: Poison PROMOTED_MODE
11750         * integrate.c (expand_inline_function): Don't mention the
11751         PROMOTED_MODE.
11752         * loop.c (update_giv_derive): Same.
11753         * tree.h (DECL_RTL): Same.
11754
11755 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
11756
11757         PR target/9365
11758         * sh.c (gen_block_redirect): Add special handling of RETURN.
11759         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
11760         far branch target (i.e. it's a return).
11761
11762 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11763
11764         * regrename.c (find_oldest_value_reg): Fix a warning.
11765
11766 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
11767
11768         PR bootstrap/12527
11769         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
11770         Move linux-gas.h and linux-elf.h before aout.h.
11771         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
11772         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
11773
11774 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
11775
11776         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
11777         (CONST_INT, VOIDmode, ...).
11778
11779 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
11780
11781         * regrename.c (find_oldest_value_reg): If the replacement uses
11782         multiple hard registers, check that all of them are in CLASS.
11783
11784 2004-01-14  Jan Hubicka  <jh@suse.cz>
11785
11786         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
11787         impossible.
11788
11789 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
11790
11791         * Makefile.in: Define MAINT from --enable-maintainer-mode.
11792
11793 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
11794
11795         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
11796         Calculate always vrsave_mask if TARGET_ALTIVEC.
11797         (rs6000_emit_prologue): Emit code for vrsave
11798         only if TARGET_ALTIVEC_VRSAVE.
11799         (rs6000_emit_epilogue): Likewise.
11800
11801 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
11802
11803         * config/sparc/sparc.md (tie_add32): Fix pasto.
11804         (tie_add64): Likewise.
11805
11806 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11807
11808         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
11809
11810 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
11811
11812         * config/iq2000/iq2000-protos.h: Fix comment formatting.
11813         * config/iq2000/iq2000.c: Likewise.
11814         * config/iq2000/iq2000.md: Likewise.
11815
11816 2004-01-14  J. Brobecker  <brobecker@gnat.com>
11817
11818         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
11819         (subrange_type_die): Add handle for nameless subrange types.
11820
11821 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
11822
11823         * config/h8300/h8300-protos.h: Replace do_movsi with
11824         h8300_expand_movsi.
11825         * config/h8300/h8300.c (do_movsi): Change to
11826         h8300_expand_movsi.
11827         * config/h8300/h8300.md (movsi): Replace do_movsi with
11828         h8300_expand_movsi.
11829         (movsf): Likewise.
11830
11831 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
11832
11833         * config/h8300/h8300.c (dosize): Change to
11834         h8300_emit_stack_adjustment.  Update callers.
11835
11836 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
11837
11838         * config/h8300/h8300.md (movstrictqi): Add an alternative with
11839         the source being post_inc.  Tighten the predicate for the
11840         destination to register_operand.
11841         (movstricthi): Likewise.
11842
11843 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
11844
11845         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
11846         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
11847         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
11848
11849 2004-01-14  Jan Hubicka  <jh@suse.cz>
11850
11851         Partial fix PR c++/12850
11852         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
11853         at zero nest level.
11854
11855 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
11856
11857         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
11858         pseudo-register.
11859
11860 2004-01-13  Devang Patel <dpatel@apple.com
11861
11862         PR debug/7078
11863         * dbxout.c (dbxout_symbol_name): Emit mangled names for
11864         NAMESPACE_DECL memebers.
11865
11866 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
11867
11868         PR c++/12709
11869         * c-common.c (finish_fname_decls): Use the chain only if the
11870         tree is an expr_stmt.
11871
11872 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
11873
11874         * rtl.def: Add comment about new option in automata_option.
11875
11876         * genautomata.c (PROGRESS_OPTION): New macro.
11877         (progress_flag): New global variable.
11878         (gen_automata_option): Process `progress'.
11879         (transform_insn_regexps, check_unit_distributions_to_automata,
11880         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
11881         expand_automata, write_automata): Print about the progress only if
11882         progress_flag.  Remove fflush.
11883         (initiate_automaton_gen): Process command line flag `-progress'.
11884
11885         * doc/md.texi: Describe the new option.
11886
11887 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
11888
11889         * cfg.c (dump_bb): Dump entry edges.
11890
11891 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
11892
11893         * arm.c (thumb_legitimate_address_p): Only allow constant pool
11894         references from SImode.
11895         * arm.md (thumb_movhi_insn): Don't allow minipool references.
11896
11897 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
11898
11899         * system.h (TEXT_SECTION): Poison.
11900         * varasm.c (text_section): Don't use TEXT_SECTION.
11901         * config/sh/sh.c (sh_file_start): Fix a comment typo.
11902         * doc/tm.texi (TEXT_SECTION): Remove.
11903
11904 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
11905
11906         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
11907
11908 2004-01-12  James E Wilson  <wilson@specifixinc.com>
11909
11910         * unwind-libunwind.c: Delete.
11911
11912 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
11913
11914         PR 13656
11915         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
11916         oldtype is set, set *newtypep or *oldtypep too.  Do not set
11917         them at the very end.
11918         (validate_proto_after_old_defn): Restructure for comprehensibility;
11919         make error messages clearer.
11920
11921 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
11922
11923         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
11924         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
11925         * varray.c: No need to prototype error.
11926         (varray_check_failed): Wrap long string onto two lines.
11927         (varray_underflow): New function.
11928
11929 2004-01-13  Steven Bosscher  <stevenb@suse.de>
11930
11931         PR c++/13376
11932         * function.h (struct function): Kill `name' field.
11933         (current_function_name): Make it an extern function.
11934         * function.c (current_function_name): New function.
11935         * graph.c: Update all uses of current_function_name.
11936         * gcse.c: Likewise.
11937         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
11938         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
11939         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
11940         instead of a strcmp with "main".
11941
11942 2004-01-13  Jan Hubicka  <jh@suse.cz>
11943
11944         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
11945
11946         * cgraphunit.c (cgraph_optimize_function):  Always do
11947         optimize_inline_calls when there is always_inline callee.
11948         (cgraph_decide_inlining): Fix formating.
11949         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
11950         functions.
11951         (expand_call_inline): Likewise.
11952         * toplev.h (sorry): Fix prototype.
11953
11954 2004-01-12  Roger Sayle  <roger@eyesopen.com>
11955
11956         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
11957         conditional jumps that drop through to unconditional jumps or the
11958         end of the sequence.
11959
11960 2004-01-13  Jan Hubicka  <jh@suse.cz>
11961
11962         * alias.c (new_alias_set): Construct the alias_set varray.
11963         (init_alias_once): Don't do it here.
11964
11965 2004-01-12  Marc Espie <espie@openbsd.org>
11966
11967         * system.h: handle YYBYACC like YYBISON.
11968
11969 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
11970
11971         PR target/10847
11972         * config.gcc: No longer includes conflicting header sparc/sol2.h when
11973         building on sparc64-*-openbsd*.
11974
11975 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
11976
11977         PR debug/13539
11978         * dbxout.c (dbxout_type): Protected inheritance is not
11979         private but protected.
11980
11981 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
11982
11983         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
11984
11985 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
11986
11987         PR optimization/12508.
11988         * combine.c (try_combine): Remove a dead set in a parallel
11989         even if its destination is a subreg.
11990
11991         Revert:
11992         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
11993         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
11994         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
11995
11996 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
11997
11998         * real.c: Update copyright date.
11999         * emit-rtl.c: Likewise.
12000         * rtl.h: Likewise.
12001         * dwarf2out.c: Likewise.
12002         * config/rs6000/darwin-ldouble.c: Likewise.
12003         * config/rs6000/rs6000.md: Likewise.
12004
12005 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
12006
12007         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
12008         TFmode to SImode libfuncs.
12009
12010 2004-01-12  Roger Sayle  <roger@eyesopen.com>
12011
12012         PR middle-end/11397
12013         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
12014
12015 2004-01-12  Jan Hubicka  <jh@suse.cz>
12016
12017         PR opt/12826
12018         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
12019         stored.
12020
12021         PR opt/12863
12022         * cfgcleanup.c (label_is_jump_target_p): Move to...
12023         * rtlanal.c (label_is_jump_target_p): ... here.
12024         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
12025         edges unified with branch edges.
12026
12027 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
12028
12029         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
12030         high word of an integral CONST_DOUBLE.
12031
12032 2004-01-12  Paul Brook  <paul@codesourcery.com>
12033
12034         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
12035
12036 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
12037
12038         PR target/13585
12039         * sh-protos.h (check_use_sfunc_addr): Declare.
12040         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
12041         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
12042
12043 2004-01-12  Jan Hubicka  <jh@suse.cz>
12044
12045         * alias.c:  Invlude varray.h
12046         (alias_sets): Turn into varray.
12047         (get_alias_set_entry): Use VARRAY; mark inline.
12048         (mems_in_disjoint_alias_sets_p): Mark inline.
12049         (record_alias_subset): Use varray.
12050         (init_alias_once): Initialize varray.
12051         (new_alias_set): Grow array.
12052         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
12053
12054 2004-01-12  Jan Hubicka  <jh@suse.cz>
12055
12056         Partial fix for PR opt/10776 II
12057         * cselib.c: Include params.h
12058         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
12059         locations.
12060         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
12061         * Makefile.in (cselib.o): Depend on params.h
12062
12063 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
12064
12065         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
12066         simplify_unary_operation if the operand has a known mode.
12067
12068 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
12069
12070         PR target/13534
12071         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
12072         predicate to handle 'ld' conform addresses.
12073         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
12074         contraint.
12075         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
12076         are memory contraints.
12077         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
12078         New prototype.
12079         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
12080         Change 'o' to 'Y' constraint.
12081         (*movdf_softfloat64): Ditto.
12082
12083 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
12084
12085         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
12086         brace-enclosed syntax in all C output statements.
12087
12088 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
12089
12090         PR target/13401
12091         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
12092         Objective-C language type value is 14.
12093
12094 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
12095
12096         PR c/12148
12097         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
12098         `int' in a number of places to make sure we always have a SImode
12099         and not a HImode.  Add a 'L' suffix to a number of constants.
12100
12101 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
12102
12103         * pa.c: Don't include obstack.h.
12104
12105         * pa.md: Correct constraint in pattern for loading PIC label address.
12106
12107 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
12108
12109         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
12110          before defining.
12111
12112 2004-01-11  Steven Bosscher  <stevenb@suse.de>
12113
12114         PR fortran/9972
12115         * toplev.c (rest_of_handle_inline): Also consider functions
12116         for deferral if the language is GNU F77.
12117
12118 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
12119
12120         * c-decl.c (diagnose_arglist_conflict): Add missing space to
12121         diagnostic messages.
12122
12123 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
12124
12125         PR middle-end/13392
12126         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
12127         to drop through label.  Don't fall back to SCC even when conditional
12128         jump has not been found.
12129
12130 2004-01-11  Jan Hubicka  <jh@suse.cz>
12131
12132         * invoke.texi: Fix syntax error in previous patch.
12133
12134         Partial fix for PR opt/10776
12135         * Makefile.in (reload.o): Include param.h
12136         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
12137         * reload.c: Include params.h.
12138         (find_equiv_reg): Work limiting check.
12139         * invoke.texi: Document.
12140
12141 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
12142
12143         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
12144         out-of-bounds accesses to string constants.  Simplify mips16
12145         case accordingly.
12146
12147 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
12148
12149         PR optimization/13469
12150         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
12151         reload_cse_regs (-fnon-call-exceptions only).
12152
12153 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
12154
12155         * config/mcore/lib1.asm: Fix comment formatting.
12156         * config/mcore/mcore-elf.h: Likewise.
12157         * config/mcore/mcore.c: Likewise.
12158         * config/mcore/mcore.h: Likewise.
12159         * config/mcore/mcore.md: Likewise.
12160
12161 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
12162
12163         * c-decl.c (duplicate_decls): Break apart into...
12164         (diagnose_arglist_conflict, validate_proto_after_old_defn)
12165         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
12166         ... these new functions.  Restructure for comprehensibility.
12167         Remove various archaic special cases.  Always report the
12168         location of the previous declaration when a diagnostic is issued.
12169         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
12170         (match_builtin_function_types): Delete unnecessary forward declaration.
12171
12172 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
12173
12174         * genautomata.c (make_automaton, NDFA_to_DFA):
12175         Print progress bars with '.' characters instead of '*'.
12176         (build_automaton): Change notes to match.
12177
12178 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
12179
12180         * config/m32r/m32r.md: Use define_constants for unspec and
12181         unspec_volatile.
12182
12183 2004-01-10  Jan Hubicka  <jh@suse.cz>
12184
12185         PR opt/11635
12186         * expr.c (expand_expr_real):  More curefully expand union casts.
12187
12188 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
12189
12190         * config/m32r/m32r.md (flush_icache): Use 1 for
12191         unspec_volatile.
12192
12193 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
12194             James E Wilson  <wilson@specifixinc.com>
12195
12196         PR debug/12860
12197         * dbxout.c (dbxout_symbol): Remove initialization of
12198         current_sym_code, current_sym_value, and current_sym_addr.
12199         (dbxout_symbol_location): Same.
12200         (dbxout_prepare_symbol): Zero current_sym_code,
12201         current_sym_value, and current_sym_addr.
12202
12203 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
12204
12205         * tree.c (get_unwidened): Reorder conditions so that the null pointer
12206         check is done first.
12207
12208 2004-01-09  Eric Christopher  <echristo@redhat.com>
12209
12210         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
12211         if we're running mark_constant_function.
12212
12213 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
12214
12215         PR target/12561
12216         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
12217
12218 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
12219
12220         PR debug/11231
12221         * dbxout.c (dbxout_type_fields): Return if any item is
12222         error_mark_node or the type is error_mark_node.
12223
12224 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
12225
12226         * config/rs6000/darwin-ldouble.c: Add big comment explaining
12227         exactly what is expected as a 'long double'.
12228         (_xlqadd): When a value to be returned is representable as a
12229         'double', just return it directly, do not construct it using a union.
12230         Also, correct final fixup.
12231         (_xlqmul): Likewise.
12232         (_xlqdiv): Likewise.
12233         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
12234
12235         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
12236
12237 2004-01-09  Richard Henderson  <rth@redhat.com>
12238
12239         * recog.c (constrain_operands): Validate mem operands.
12240
12241 2004-01-09   James E Wilson  <wilson@specifixinc.com>
12242
12243         * gcc.c (init_spec): Remove -lunwind from shared case.
12244         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
12245
12246 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
12247
12248         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
12249         * configure: Regenerate
12250
12251 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
12252
12253         PR c/11234
12254         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
12255         between function and object pointers.
12256         (digest_init): When comparing a pointer to function type to the
12257         target type, only apply TREE_TYPE once to the pointer to function
12258         type.
12259         * except.c (for_each_eh_label_1): Treat data as a pointer to a
12260         function pointer rather than casting it to a function pointer.
12261         (for_each_eh_label): Update caller.
12262         * recog.h (struct insn_data): Use a struct or union for output.
12263         * genoutput.c (output_insn_data): Update.
12264         * final.c (get_insn_template): Update.
12265
12266 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
12267
12268         * expr.h (expand_expr): Make it a macro, not a function.
12269         (expand_expr_real): New function.
12270         * expr.c (store_expr): Adjust logic for deciding whether or not to
12271         copy the value returned by expand_expr.
12272         (expand_expr): Rename to ...
12273         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
12274         calls to language hooks.
12275         * c-common.h (c_expand_expr): Adjust prototype.
12276         * c-common.c (c_expand_expr): Add alt_rtl parameter.
12277         * langhooks-def.h (lhd_expand_expr): Change prototype.
12278         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
12279         * langhooks.h (lang_hooks): Change type of expand_expr.
12280         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
12281         (last_expr_alt_rtl): Likewise.
12282         (expand_expr_stmt_value): Set last_expr_alt_rtl.
12283         (clear_last_expr): Clear it.
12284         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
12285         (expand_end_bindings): Save and restor last_expr_alt_rtl.
12286         * tree.def (RTL_EXPR): Give it an additional operand.
12287         * tree.h (RTL_EXPR_ALT_RTL): New macro.
12288
12289 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
12290
12291         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
12292         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
12293
12294 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
12295
12296         PR target/13380.
12297         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
12298         or (ne:SI (reg:CC 17) (const_int 0)).
12299         Be specific about modes wherever possible.
12300
12301 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
12302
12303         * config/m32r/m32r.c (m32r_expand_block_move): Call
12304         gen_movestrsi_internal with two more arguments.
12305         (m32r_output_block_move): Adjust operand numbers.
12306         Properly update the source and destination pointers.
12307         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
12308         'r+'.  Change the set detinations to match_operand.
12309
12310 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
12311
12312         * final.c (FIRST_INSN_ADDRESS): Remove.
12313         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
12314         * system.h (FIRST_INSN_ADDRESS): Poison.
12315         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
12316         * config/m32r/m32r-protos.h: Remove the prototype for
12317         m32r_first_insn_address.
12318         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
12319         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
12320         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
12321
12322 2004-01-09  J. Brobecker  <brobecker@gnat.com>
12323
12324         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
12325         we just created.
12326         (is_ada_subrange_type): DIEs for enumeration subtypes should be
12327         emitted as subrange types too.
12328         (subrange_type_die): Add handling of enumeration subtypes.
12329
12330 2004-01-08  Richard Henderson  <rth@redhat.com>
12331
12332         PR opt/12441
12333         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
12334         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
12335         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
12336         (ix86_address_cost): Be prepared for SUBREGed registers.
12337         (legitimate_address_p): Accept SUBREGed registers.
12338
12339 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
12340
12341         * Makefile.in: Rename configure.in to configure.ac
12342         * doc/sourcebuild.texi: Likewise.
12343         * configure: Regenerate.
12344         * config.in: Regenerate.
12345
12346 2004-01-08  Stuart Hastings  <stuart@apple.com>
12347
12348         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
12349
12350 2004-01-08  Jan Hubicka  <jh@suse.cz>
12351
12352         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
12353
12354 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
12355
12356         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
12357         (UNSPEC_FIX_TRUNC_TF): New constant.
12358         (movtf_internal): Make splitter active only when insn is active.
12359         (extenddftf2): Rewrite to properly load zero into low part.
12360         (extenddftf2_internal): New.
12361         (extendsftf2): Rewrite.
12362         (truncdftf2): Correct length.
12363         (floatditf2): Delete.
12364         (fix_trunc_helper): New.
12365         (fix_trunctfdi2): Use fix_trunc_helper.
12366         (fix_trunctfsi2): Likewise.fix_trunc
12367         (fix_trunctfsi2_internal): New.
12368
12369         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
12370         addresses are legitimate on Darwin even when flag_pic.
12371         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
12372         non-offsettable addresses for loads of TFmode constants.
12373
12374 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
12375
12376         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
12377         variables in the appropriate bss section.
12378
12379 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
12380
12381         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
12382         target_flags has MASK_POWERPC64 when -m64.
12383         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
12384         to 620, 630, power3, power4 and rs64a entries.
12385         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
12386
12387 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
12388
12389         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
12390         floating-point constants.
12391
12392 2004-01-08  J. Brobecker  <brobecker@gnat.com>
12393
12394         * dwarf2out.c (subrange_type_die): Add context_die parameter.
12395         Create the subrange_type DIE using the given context DIE.
12396         (modified_type_die): Update call to subrange_type_die.
12397
12398 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
12399
12400         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
12401         Add multiple-include guard.
12402
12403 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
12404
12405         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
12406         all vector constant loadable by vsplt*.
12407         (output_vec_const_move): Likewise.
12408
12409 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
12410
12411         PR c/6024
12412         * c-typeck.c (comptypes): Only treat enumerated types in the same
12413         translation unit as compatible with each other when they are the
12414         same type.
12415         * doc/extend.texi: Update.
12416
12417 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
12418
12419         PR c/12165
12420         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
12421         array type from the array element type.
12422
12423 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
12424
12425         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
12426         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
12427         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
12428         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
12429         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
12430
12431 2004-01-06  Eric Christopher  <echristo@redhat.com>
12432
12433         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
12434         (DWARF2_DEBUGGING_INFO): Define.
12435         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
12436         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
12437         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
12438         for irix as.
12439         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
12440         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
12441         * config/mips/iris5gas.h: Ditto.
12442         (DBX_DEBUGGING_INFO): Remove.
12443         (DWARF2_DEBUGGING_INFO): Ditto.
12444         (MIPS_DEBUGGING_INFO): Ditto.
12445         (PREFERRED_DEBUGGING_TYPE): Ditto.
12446         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
12447         (PREFERRED_DEBUGGING_TYPE): Ditto.
12448         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
12449         * config/mips/elf64.h: Ditto.
12450
12451 2004-01-06  Jan Hubicka  <jh@suse.cz>
12452
12453         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
12454         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
12455
12456 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
12457
12458         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
12459         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
12460         * config/rs6000/darwin-ldouble.c: New.
12461
12462         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
12463         for constants.
12464         (constant_subword): Delete.
12465         * rtl.h (constant_subword): Delete prototype.
12466         (immed_double_const): Is not in varasm.c.
12467         * simplify-rtx.c (simplify_immed_subreg): New.
12468         (simplify_subreg): Use simplify_immed_subreg.
12469
12470         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
12471         than trying to generate RTL directly.
12472         (fix_trunctfsi2): Use expand_fix rather than trying to generate
12473         RTL directly.
12474
12475         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
12476
12477 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
12478
12479         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
12480         function into a separate macro.
12481         (read_only_data_section): Add void argument.
12482         (private_data_section): Same.
12483         (read_only_private_data_section): Same.
12484         (toc_section): Same.
12485
12486 2004-01-06  Jan Hubicka  <jh@suse.cz>
12487
12488         * invoke.texi:  Remove typo in last change.
12489
12490         PR target/10301
12491         * config.gcc: Accept opteron and athlon-64 as variants
12492         of k8.
12493         * i386.c (override_options): Likewise.
12494         * invoke.texi (i386 -mtune): Expand documentation.
12495
12496 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
12497
12498         * alias.c: Fix comment typos.
12499         * builtins.c: Likewise.
12500         * cfg.c: Likewise.
12501         * df.c: Likewise.
12502         * dominance.c: Likewise.
12503         * dwarf2out.c: Likewise.
12504         * emit-rtl.c: Likewise.
12505         * expr.c: Likewise.
12506         * final.c: Likewise.
12507         * fold-const.c: Likewise.
12508         * gcse.c: Likewise.
12509         * genattrtab.c: Likewise.
12510         * genrecog.c: Likewise.
12511         * gensupport.c: Likewise.
12512         * ggc-zone.c: Likewise.
12513         * integrate.c: Likewise.
12514         * local-alloc.c: Likewise.
12515         * loop.c: Likewise.
12516         * recog.c: Likewise.
12517         * regmove.c: Likewise.
12518         * reg-stack.c: Likewise.
12519         * reorg.c: Likewise.
12520         * rtlanal.c: Likewise.
12521         * rtl.h: Likewise.
12522         * sched-ebb.c: Likewise.
12523         * simplify-rtx.c: Likewise.
12524         * toplev.c: Likewise.
12525         * varasm.c: Likewise.
12526
12527 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
12528
12529         * doc/install.texi: Fix typos.
12530         * doc/invoke.texi: Likewise.
12531         * doc/md.texi: Likewise.
12532
12533 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
12534
12535         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
12536
12537 2004-01-06  Jan Hubicka  <jh@suse.cz>
12538
12539         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
12540         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
12541         of MMX_REGPARM.
12542         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
12543         add MMX_REGPARM.
12544         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
12545         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
12546         (MMX_REGPARM_MAX): Similarly for -mmmx.
12547
12548 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
12549
12550         * config/sh/linux.h: Fix comment formatting.
12551         * config/sh/netbsd-elf.h: Likewise.
12552         * config/sh/sh.c: Likewise.
12553         * config/sh/sh.h: Likewise.
12554         * config/sh/vxworks.h: Likewise.
12555
12556 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
12557
12558         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
12559         * toplev.c (output_file_directive): Don't use
12560         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
12561
12562 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
12563
12564         * toplev.c: Fix broken checkin of 2003-12-30.
12565
12566 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
12567
12568         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
12569         (USING_MMAP): We don't support non-mmap.
12570         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
12571         large objects.
12572         (struct page_entry): Remove bytes_free.
12573         (struct page_table_chain): Remove.
12574         (struct globals): Remove page_table member.
12575         (loookup_page_table_entry): Function deleted.
12576         (set_page_table_entry): Ditto.
12577         (ggc_allocated_p): No longer need page table lookups.
12578         (ggc_marked_p): Ditto.
12579         (alloc_small_page): Don't care about bytes_free anymore.
12580         (alloc_large_page): Round up size.
12581         (ggc_alloc_zone_1): Mark large objects as such, and calculate
12582         their size the new way.
12583         Remove page table lookups and setting.
12584         (ggc_get_size): Calculate large object size the new way.
12585         (sweep_pages): Redo to account for fact that we no longer have
12586         bytes_free.
12587         (ggc_collect): No longer need to reincrement bytes_free.
12588         (ggc_pch_alloc_object): Handle new large objects properly.
12589         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
12590
12591 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
12592
12593         * doc/invoke.texi: Remove a page break.
12594
12595 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
12596
12597         * config/avr/avr.c (avr_output_function_prologue): Remove an
12598         extra pair of curly braces.
12599
12600 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
12601
12602         * config/mn10300/mn10300.c: Fix comment formatting.
12603         * config/mn10300/mn10300.h: Likewise.
12604
12605 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
12606
12607         * tree.h: Update documentation on nothrow_flag.
12608         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
12609         types.
12610
12611 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
12612
12613         * doc/invoke.texi: Remove traces of dead ports.
12614
12615 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
12616
12617         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
12618         option.
12619
12620 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
12621
12622         PR target/12945
12623         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
12624         counter labels.
12625         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
12626         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
12627         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
12628         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
12629         (mips_symbol_insns): Don't trust the local/global classification.
12630         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
12631         (override_options): Make -mabicalls -fno-unit-at-a-time imply
12632         -mno-explicit-relocs.
12633         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
12634         between local and global symbols.
12635
12636 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
12637
12638         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
12639         (mips_preferred_reload_class): Declare.
12640         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
12641         (EXTRA_CONSTRAINT): Update accordingly.
12642         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
12643         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
12644         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
12645         mips_dangerous_for_la25_p.
12646         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
12647         if mips_dangerous_for_la25_p.
12648
12649 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
12650
12651         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
12652         warning.
12653
12654 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
12655
12656         * configure.ac: Use AC_PROG_CPP_WERROR.
12657         * configure: Regenerate.
12658
12659 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
12660
12661         * .cvsignore: Add autom4te.cache.
12662
12663 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
12664
12665         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
12666         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
12667         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
12668         then architecture options, then ABI options.  General rewording.
12669
12670 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
12671
12672         PR c/3414
12673         * doc/extend.texi: Clarify definition of malloc attribute.
12674
12675 2004-01-04  Jan Hubicka  <jh@suse.cz>
12676
12677         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
12678         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
12679         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
12680         (cgraph_inline_p): Add extra argument reason.
12681         * cgraphunit.c: Minor formating fixes.
12682         cgraph_first_inlined_callee): New functions.
12683         (record_call_1): Record builtins too.
12684         (cgraph_analyze_function): Update inline_failed messages.
12685         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
12686         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
12687         (cgraph_check_inline_limits): Likewise; Add argument reason.
12688         (cgraph_set_inline_failed): New static function.
12689         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
12690         reasons.
12691         (cgraph_inline_p): Add new argument reason.
12692         * tree-inline.c (expand_call_inline):  Update warning.
12693
12694 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
12695
12696         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
12697         with modern equivalents.
12698         * configure: Regenerate.
12699
12700         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
12701         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
12702         * configure: Regenerate.
12703
12704         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
12705
12706         * configure.in: Rename to configure.ac.
12707         * configure.ac: Renamed from configure.in; make minimum necessary
12708         changes for autoconf 2.5x.
12709         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
12710         * configure: Regenerate with autoconf 2.57.
12711
12712 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
12713
12714         * config/mips/linux.h: Fix comment formatting.
12715         * config/mips/mips.c: Likewise.
12716         * config/mips/mips.h: Likewise.
12717         * config/mips/mips.md: Likewise.
12718         * config/mips/netbsd.h: Likewise.
12719         * config/mips/windiss.h: Likewise.
12720
12721 2004-01-02  Richard Henderson  <rth@redhat.com>
12722
12723         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
12724         for sse and 387; add suppression for mmx.
12725
12726 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
12727
12728         * loop.c (loop_optimize): Free all loops_info's mems.
12729
12730         * c-typeck.c (finish_init): Free spelling_base before
12731         setting it again.
12732
12733         * cfgloop.c (flow_loops_find): Always free the sbitmap
12734         headers.
12735
12736         * predict.c (estimate_probability): Free bbs after being
12737         done with it.
12738
12739 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
12740
12741         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
12742         const_8bit_operand and call_address_operand.
12743
12744 2004-01-02  Jan Hubicka  <jh@suse.cz>
12745
12746         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
12747         when there is nothing to inline but warnings are requested.
12748         (cgraph_decide_inlining):  Fix memory leak.
12749
12750 2004-01-02  Jan Hubicka  <jh@suse.cz>
12751
12752         * expr.c (store_constructor):  Fix pasto in previous patch.
12753
12754 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
12755
12756         * config/i386/cygming.h: Fix comment formatting.
12757         * config/i386/djgpp.h: Likewise.
12758         * config/i386/gthr-win32.c: Likewise.
12759         * config/i386/i386-interix.h: Likewise.
12760         * config/i386/i386.c: Likewise.
12761         * config/i386/i386.h: Likewise.
12762         * config/i386/openbsd.h: Likewise.
12763         * config/i386/winnt.c: Likewise.
12764         * config/i386/xm-mingw32.h: Likewise.
12765
12766 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
12767
12768         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
12769         copyright and last modification dates.
12770
12771 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
12772
12773         * doc/install.texi (Specific): Mention x86_64.
12774
12775 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
12776
12777         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
12778         Call force_operand on plus_constant result.
12779
12780 2004-01-01  Jan Hubicka  <jh@suse.cz>
12781
12782         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
12783         * expr.c (store_constructor): Use vec_init pattern.
12784         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
12785         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
12786         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
12787         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
12788         New patterns.
12789         (sse2_unpc?pd): Fix pattern.
12790         (sse2_movlpd): Kill.
12791         (sse2_movsd): Deal with movlpd too.
12792         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
12793         (ix86_expand_vector_init): New.
12794         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
12795         * md.texi (vec_set, vec_extract): Document
12796
12797 2003-12-31  Jan Hubicka  <jh@suse.cz>
12798
12799         PR opt/13473
12800         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
12801         ASM input operands
12802
12803         PR opt/12617
12804         * toplev.c (dump_file_index): Reorder ce3 and bbro.
12805         (dump_file): Likewise.
12806         (rest_of_compilation): Likewise.
12807
12808         PR debug/13367
12809         * cgraph.c (cgraph_function_possibly_inlined):  Even with
12810         flag_really_no_inline we inline always_inline functions.
12811         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
12812         for non-always_inline functions when there is flag_really_no_inline.
12813         (cgraph_decide_inlining): Limit work done when not inlining.
12814         (cgraph_decide_inlining_incrementally): Likewise.
12815         (cgraph_optimize_function): Check whether something got inlined.
12816         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
12817         extern inline functions when not inlining.
12818
12819         * opts.c (decode_options):  Disable crossjumping at -O1
12820         * invoke.texi (-O1): Document change.
12821
12822 See ChangeLog.10 for earlier changes.