OSDN Git Service

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