OSDN Git Service

7f60022e9618cb0097d383d0af00097052425c30
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-03-13  Richard Henderson  <rth@redhat.com>
2
3         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
4         for LABEL_REFs.
5
6 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
7
8         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
9         after setting reg_last_reload_reg for optional output reloads.
10
11 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
12
13         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
14         Definition of these two macros are corrected by adding
15         matchine right paren.
16
17 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
18
19         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
20
21 2004-04-12  Roger Sayle  <roger@eyesopen.com>
22
23         * config/i386/i386.c (output_387_reg_move): New function.
24         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
25         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
26         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
27         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
28         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
29
30 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
31
32         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
33         TYPE_DECL.
34         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
35         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
36         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
37         Use skip_simple_arithmetic to find SAVE_EXPR.
38         (force_type_save_exprs, force_type_save_exprs_1): New functions.
39         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
40         Properly chain multiple pointers.
41         (copy_tree_r): Copy a TYPE_DECL.
42         * tree.c (variably_modified_type_p): Add some missing tests and
43         make some other minor changes.
44         * tree.h (force_type_save_exprs): New declaration.
45
46 2004-04-12  Roger Sayle  <roger@eyesopen.com>
47
48         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
49         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
50         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
51         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
52         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
53         x%-1 into 0 (or x&0 if x has side-effects).
54
55 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
56
57         * config/rs6000/rs6000.md: Document why a pattern is not
58         available.
59
60         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
61         of floats on the E500.
62         (branch_positive_comparison_operator): Do not allow NE even on the
63         E500.
64
65 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
66
67         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
68         in_text_unlikely_section to in_unlikely_text_section.
69
70 2004-04-11  Roger Sayle  <roger@eyesopen.com>
71
72         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
73         calling convention to allow a NULL_TREE to be returned.  Factor
74         sanity checks from callers, return NULL_TREE when appropriate.
75         (fold): Handle COMPOUND_EXPR operands of binary expressions
76         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
77         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
78         calls to fold_binary_op_with_conditional_arg.
79
80 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
81
82         * config/mips/iris5.h (current_section_flags):  Add
83         in_unlikely_executed_text and default case.
84
85 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
86
87         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
88         failure on solaris. Place ifdef HAVE_return around gen_ret call.
89         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
90         HAVE_return and place it around the place where it is needed.
91
92 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
93
94         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
95         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
96         and NORMAL_TEXT_SECTION_NAME.
97         (unlikely_text_section): Check targetm.have_named_sections
98         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
99         instead of SECTION_FORMAT_STRING.
100         * config/mips/iris5.h (current_section_name): Add
101         in_unlikely_executed_text case and move the abort into the switch.
102         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
103         (NORMAL_TEXT_SECTION_NAME): Remove.
104         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
105         (SECTION_FORMAT_STRING): Remove.
106         * defaults.h (SECTION_FORMAT_STRING): Remove.
107         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
108         (SECTION_FORMAT_STRING): Remove.
109
110 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
111
112         * c-typeck.c (common_type): Prefer long long to long when same
113         precision.
114
115 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
116
117         PR 14887
118         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
119         mode argument.
120         * config/ia64/ia64.c (ia64_hpux_file_end): Check
121         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
122
123 2004-04-09  Roger Sayle  <roger@eyesopen.com>
124
125         * simplify-rtx.c (mode_signbit_p): New function to check whether
126         an RTX is an immediate constant that represents the most significant
127         bit of a given machine mode.
128         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
129         C is the sign bit.
130         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
131         when C2 is the sign bit.
132         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
133         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
134         sign bit.
135
136 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
137
138         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
139         TYPE_MODE.
140
141 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
142
143         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
144         of TREE_READONLY for types.
145
146 2004-04-09  Caroline Tice  <ctice@apple.com>
147
148         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
149         (struct basic_block_def):  Add new field, partition.
150         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
151         definitions.
152         (partition_hot_cold_basic_blocks): Add extern function
153         declaration.
154         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
155         include statements.
156         (N_ROUNDS): Increase the maximum number of rounds by 1.
157         (branch_threshold): Add array value for new round.
158         (exec_threshold): Add array value for new round.
159         (push_to_next_round_p): New function.
160         (add_unlikely_executed_notes): New function.
161         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
162         (mark_bb_for_unlikely_executed_section): New function.
163         (add_labels_and_missing_jumps): New function.
164         (add_reg_crossing_jump_notes): New function.
165         (fix_up_fall_thru_edges): New function.
166         (find_jump_block): New function.
167         (fix_crossing_conditional_branches): New function.
168         (fix_crossing_unconditional_branches): New function.
169         (fix_edges_for_rarely_executed_code): New function.
170         (partition_hot_cold_basic_blocks): New function.
171         (find_traces):  Add an extra round for partitioning hot/cold
172         basic blocks.
173         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
174         and only cold blocks, into the last (extra) round of collecting traces.
175         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
176         over crossing edges.
177         (bb_to_key):  Add code to correctly identify cold blocks when
178         doing partitioning.
179         (connect_traces): Modify to connect all the non-cold traces first, then
180         go back and connect up all the cold traces.
181         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
182         * cfg.c (entry_exit_blocks): Add initialization for partition field in
183         entry and exit blocks.
184         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
185         if we are doing hot/cold partitioning.
186         * cfgcleanup.c (cfglayout.h): Add new include statement.
187         (try_simplify_condjump): Modify to not attempt on blocks with jumps
188         that cross section boundaries.
189         (try_forward_edges): Likewise.
190         (merge_blocks_move_predecessor_nojumps): Likewise.
191         (merge_blocks_move_successor_nojumps): Likewise.
192         (merge_blocks_move): Likewise.
193         (try_crossjump_to_edge): Modify to not attempt after we have done
194         the block partitioning.
195         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
196         cross section boundaries.
197         (try_optimize_cfg): Likewise.
198         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
199         jumps that cross section boundaries.
200         * cfglayout.c (flags.h): Add new include statement.
201         (update_unlikely_executed_notes):  New function.
202         (fixup_reorder_chain):  Add code so when a new jumping basic block is
203         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
204         updated appropriately.
205         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
206         introduced by this optimization.
207         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
208         extern function declaration.
209         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
210         list of notes that can be deleted.
211         (create_basic_block_structure):  Add initialization for partition field.
212         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
213         section boundaries.
214         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
215         cross section boundaries.
216         (commit_one_edge_insertion): Add code so newly created basic block
217         ends up in correct (hot or cold) section.  Modify to disallow
218         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
219         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
220         crosses section boundaries.
221         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
222         cross section boundaries.
223         (force_nonfallthru_and_redirect): Modify to make sure new basic block
224         ends up in correct section, with correct notes attached.
225         * common.opt (freorder-blocks-and-partition):  Add new flag for this
226         optimization.
227         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
228         the end of functions are written into the correct (hot or cold)
229         section.
230         (dbx_source_file): Add code so writing debug file information
231         doesn't incorrectly change sections.
232         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
233         in partitioning hot/cold basic blocks into separate sections.
234         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
235         section partitioning.
236         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
237         conditional branches can span all of memory.
238         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
239         unconditional branches can span all of memory.
240         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
241         (final_scan_insn):  Add code to check for NOTE instruction indicating
242         whether basic block belongs in hot or cold section, and to make sure
243         the current basic block is being written to the appropriate section.
244         Also added code to ensure that jump table basic blocks end up in the
245         correct section.
246         * flags.h (flag_reorder_blocks_and_partition):  New flag.
247         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
248         one of the branches has a jump that crosses between sections.
249         (find_if_case_2): Likewise.
250         (ifcvt): Modify to not attempt to mark loop exit edges after
251         hot/cold partitioning has occurred.
252         * opts.c (decode_options): Code to handle new flag,
253         flag_reorder_blocks_and_partition; also to turn it off if
254         flag_exceptions is on.
255         (common_handle_option): Code to handle new flag,
256         flag_reorder_blocks_and_partition.
257         * output.h (unlikely_text_section): New extern function declaration.
258         (in_unlikely_text_section): New extern function declaration.
259         * passes.c (rest_of_handle_stack_regs):  Add
260         flag_reorder_blocks_and_partition as an 'or' condition for calling
261         reorder_basic_blocks.
262         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
263         as an 'or' condition for calling reorder_basic_blocks.
264         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
265         * print-rtl.c (print_rtx): Add code for handling new note,
266         NOTE_INSN_UNLIKELY_EXECUTED_CODE
267         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
268         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
269         cross between section boundaries.
270         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
271         indicating the basic block containing it belongs in the cold section.
272         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
273         between hot and cold sections.
274         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
275         initialize this flag, and to tie it to the command-line option
276         freorder-blocks-and-partition.
277         * varasm.c (cfglayout.h):  Add new include statement.
278         (unlikely_section_label_printed):  New global variable, used for
279         determining when to output section name labels for cold sections.
280         (in_section):  Add in_unlikely_executed_text to enum data structure.
281         (text_section):  Modify code to use SECTION_FORMAT_STRING and
282         NORMAL_TEXT_SECTION_NAME macros.
283         (unlikely_text_section):  New function.
284         (in_unlikely_text_section):  New function.
285         (function_section):  Add code to make sure beginning of function is
286         written into correct section (hot or cold).
287         (assemble_start_function):  Add code to make sure stuff is written to
288         the correct section.
289         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
290         to an if statement that was checking 'in_text_section'.
291         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
292         condition to an if statement that was checking 'in_text_section'.
293         (default_section_type_flags_1):  Add check: if in cold section
294         flags = SECTION_CODE.
295         * config/darwin.c (darwin_asm_named_section):  Modify to use
296         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
297         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
298         specifically for the i386.
299         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
300         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
301         text string to something more informative.
302         (NORMAL_TEXT_SECTION_NAME): Add new definition.
303         (SECTION_FORMAT_STRING):  Add new definition.
304         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
305         '!in_unlikely_text_section' as an 'and' condition to an if statement
306         that was already checking '!in_text_section'.
307         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
308         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
309         sure these are properly defined for linux on ppc.
310         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
311         for this new flag.
312         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
313         reg_note.
314         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
315         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
316         these new macros.
317
318 2004-04-08  Roger Sayle  <roger@eyesopen.com>
319
320         * function.c (gen_mem_addressof): When changing the RTX from a REG
321         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
322
323 2004-04-08  Roger Sayle  <roger@eyesopen.com>
324
325         PR target/14888
326         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
327         truncxfdf2_noop): Provide dummy "fmov" implementations.
328
329 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
330
331         * gcc.c (default_compilers): Add missing initializers.
332
333         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
334         Return 1 if file was successfully mapped.
335
336 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
337
338         PR pch/13419
339         PR pch/14137
340         Radar #: 3315288
341         * doc/invoke.texi (Precompiled Headers): Suggest -o
342         to put an output file in a particular place.  Be more detailed
343         about which options affect PCH validity and which options
344         might not work.
345         * c-pch.c (pch_matching): New.
346         (MATCH_SIZE): New.
347         (struct c_pch_validity): New field 'match'.
348         (pch_init): Handle pch_matching.
349         (c_common_valid_pch): Check pch_matching.
350
351         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
352
353 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
354
355         * doc/invoke.texi (Precompiled Headers): Warn about known
356         problems.
357
358 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
359
360         PR c++/14808
361         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
362         to 1 if ASM_OUTPUT_DEF is defined.
363         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
364         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
365         Set to non-zero iff not a one_only decl.
366
367 2004-04-08  Paul Brook  <paul@codesourcery.com>
368
369         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
370
371 2004-04-08  Paul Brook  <paul@codesourcery.com>
372
373         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
374         PROMOTE_FOR_CALL_ONLY.
375         * config/arm/arm-protos.h (arm_function_value): Declare.
376         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
377         (TARGET_PROMOTE_PROTOTYPES): Return false.
378         (arm_function_value): New function.
379         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
380         (FUNCTION_VALUE): Call arm_function_value.
381         * config/cris/cris.h (PROMOTE_MODE): Rename ...
382         (PROMOTE_FUNCTION_MODE): ... to this.
383         (PROMOTE_FOR_CALL_ONLY): Remove.
384         * config/mmix/mmix.h: Likewise.
385         * config/s390/s390.h: Likewise.
386         * config/sparc/sparc.h: Likewise.
387         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
388         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
389         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
390         (PROMOTE_FOR_CALL_ONLY): Remove.
391
392 2004-04-08  Joel Sherrill <joel@oarcorp.com>
393
394         PR ada/14538
395         * ada/5rosinte.adb: Remove fake mprotect() body.
396         * ada/5rosinte.ads: Add SA_SIGINFO.
397         * ada/5rtpopsp.adb: Rewrite to use new interface.
398         * ada/init.c: Reorder so the simple single OS conditional __rtems__
399         is tested before more complex ones which mix UNIX and embedded
400         systems in the conditional.
401
402 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
403
404         PR ada/14665
405         * ada/osint.adb (Find_Program_Name): Rework to properly handle
406         filenames which end in .exe or have versioning suffixes like VMS.
407
408 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
409
410         PR target/10129
411         * config/darwin.c (darwin_encode_section_info): When the decl has
412         a DECL_INITIAL, it is only defined also when it is not a common.
413
414 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
415
416         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
417         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
418
419 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
420
421         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
422         global register variables.
423
424 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
425
426         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
427         rpc_xdr_lvalue_cast_b): New fixes.
428         * fixinc/fixincl.x: Regenerate.
429         * fixinc/tests/base/rpc/xdr.h: Add new tests.
430
431 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
432
433         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
434         to power4 and power5 entries.
435
436 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
437
438         * c-common.h (pending_lang_change): Mark for PCH.
439
440 2004-04-07  Caroline Tice  <ctice@apple.com>
441
442         * gcc.c (main): Move 'break' in main loops (on an error)
443         to wait until error processing has occurred.
444
445 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
446
447         * config.gcc: Stop changing enable_threads midstream.
448         Replace uses of enable_threads_flag with enable_threads.
449         * configure.ac: Replace uses of enable_threads_flag with
450         enable_threads.  Improve autoconf quotation in one place.
451         * configure: Regenerate.
452
453 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
454
455         * builtins.c: Implement support for sincos function.
456         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
457         BUILT_IN_COS{,F,L}.
458         (expand_builtin_mathfn_3): New function.
459         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
460         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
461         flag_unsafe_math_optimization is set.
462
463         * optabs.h (enum optab_index): Add new OTI_sincos.
464         (sincos_optab): Define corresponding macro.
465
466         * optabs.c (init_optabs): Initialize sincos_optab.
467         (expand_twoval_unop): New function.
468
469         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
470         patterns.
471
472         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
473         and UNSPEC_SINCOS_SIN.
474
475         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
476         sincosxf3): New patterns to implement sincos, sincosf and sincosl
477         built-ins as inline x87 intrinsics. Define splits for
478         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
479         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
480         sincos patterns.
481         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
482         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
483
484         (UNSPEC_SINCOS_SIN, UNPEC_SINCOS_COS): New unspecs to represent
485         x87's unspec insn.
486
487 2004-04-06  Devang Patel  <dpatel@apple.com>
488
489         PR 14467
490         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
491
492 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
493
494         * doc/install.texi: Update HP-UX 11 installation procedure.
495
496 2004-04-06  Paul Brook  <paul@codesourcery.com>
497
498         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
499
500 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
501
502         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
503         when the TLS address is generated by a function call.
504         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
505         (tls_local_dynamic): Likewise.
506
507 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
508
509         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
510         and TYPE_VOLATILE.
511
512 2004-04-05  Caroline Tice  <ctice@apple.com>
513
514         * gcc.c (combine_flag): New global variable, for new driver option.
515         (struct compiler): Add two new fields, to be used when
516         combining multiple input files in a single pass (IMA).
517         (default_compilers):  Add values for the new fields to all
518         compiler entries. Modify the "@c" compiler entry for doing IMA
519         properly with "-save-temps" and the "combine" flag.
520         (option_map):  Add new driver option, "--combine", to tell driver
521         to pass multiple input files to compiler at one time.
522         (have_o_argbuf_index): New global variable.
523         (store_arg): Modify to assign value to have_o_argbuf_index.
524         (struct infile):  Add three new fields, to help with IMA.
525         (display_help): Add help for new "combine" option.
526         (process_command): Remove local variable have_o; add code to check
527         for new "combine" option; remove assignment to combine_inputs.
528         (do_spec_1):  Modify to deal with IMA better.
529         (main): Make variable 'lang_n_infiles' local to entire function
530         rather than to a single block.  Use flag combine_flag to
531         determine whether to do IMA or not; Modify loop initializing
532         infiles to deal properly with linker files.
533         Add code for doing preprocessing in presence of
534         IMA with "-save-temps" flag.  Modify "main" loop to handle
535         multiple input files, in multiple languages, with or without
536         preprocessing,  gracefully.
537         * toplev.c (set_src_pwd): Modify to not complain if attempting to
538         re-set it to same directory it's previously been set to (avoid
539         irritating, meaningless warning messages when doing IMA with
540         save-temps).
541         * doc/invoke.texi: Add "-combine" to list of Overall Options;
542         remove documentation about IMA that is no longer accurate; Add
543         documentation explaining what "-combine" does.
544         * ada/lang-specs.h: Add initialization values for new fields in
545         "struct compiler".
546         * cp/lang-specs.h: Likewise.
547         * f/lang-specs.h: Likewise.
548         * java/lang-specs.h: Likewise.
549         * objc/lang-specs.h: Likewise.
550         * treelang/lang-specs.h: Likewise.
551
552 2004-04-05  David Edelsohn
553
554         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
555         symbol handling.
556
557 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
558             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
559
560         PR optimization/13424 (hppa), bootstrap/14462, c/14828
561         * pa.md: Use replace_equiv_address to retain the attributes of the
562         memory operands used in the split and peephole2 patterns for optimizing
563         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
564
565 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
566
567         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
568         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
569         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
570         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
571         PARM_DECL.
572         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
573         for a type.
574         * print-tree.c (print_node): Properly handle side-effects, readonly,
575         and constant flags.
576         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
577         and TREE_CONSTANT if not a type.
578         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
579         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
580         (NON_TYPE_CHECK): New macro.
581         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
582
583 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
584
585         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
586         to DWARF2_DEBUG unconditionally.
587         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
588
589 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
590             Nathanael Nerode  <neroden@gcc.gnu.org>
591
592         PR target/14548
593         * config.host: Set the shell variable host_can_use_collect2.
594         Set it to yes by default, and to no for alpha*-dec-*vms*,
595         i[34567]86-*-mingw32*, and powerpc-*-beos*.
596         * configure.ac: Set and substitute the shell variable collect2.
597         Give an error if use_collect2 is yes and host_can_use_collect2 is
598         no.
599         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
600         uses.  Initialize to @collect2@.
601         (STAGESTUFF): Remove $(USE_COLLECT2).
602         * config/alpha/x-vms (USE_COLLECT2): Don't set.
603         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
604         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
605         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
606         * configure: Regenerate.
607
608 2004-04-04  Roger Sayle  <roger@eyesopen.com>
609
610         * simplify-rtx.c (simplify_binary_operation): Constant fold
611         DIV, MOD, UDIV and UMOD using div_and_round_double.
612
613 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
614
615         PR c++/14804
616         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
617         RECORD_TYPEs.
618
619 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
620
621         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
622         documentation.
623
624 2004-04-04  Roger Sayle  <roger@eyesopen.com>
625
626         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
627         updating the REG_EQUAL note on an insn's libcall_insn.
628
629 2004-04-04  Roger Sayle  <roger@eyesopen.com>
630
631         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
632
633 2004-04-03  Roger Sayle  <roger@eyesopen.com>
634
635         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
636         with reorder_operands_p.
637
638 2004-04-03  Jan Hubicka  <jh@suse.cz>
639
640         * md.texi (vec_set, vec_extract, vec_init): Document.
641
642 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
643
644        * opts.c (decode_options): Do function inlining with very small
645        max-inline-insns-* parameters when optimizing for size.
646
647 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
648
649         * config/i386/i386.h (TARGET_NOCONA): New macro.
650         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
651         (processor_type): Add PROCESSOR_NOCONA.
652
653         * config/i386/i386.md (cpu): Add nocona to the attribute values.
654
655         * config/i386/i386.c (nocona_cost): New variable.
656         (m_NOCONA): New macro.
657         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
658         x86_branch_hints, x86_use_sahf, x86_single_stringop,
659         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
660         x86_integer_DFmode_moves, x86_partial_reg_dependency,
661         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
662         x86_decompose_lea, x86_arch_always_fancy_math_387,
663         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
664         x86_ext_80387_constants, x86_four_jump_limit):
665         (override_options): Add nocona_cost to processor_target_table.
666         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
667         (incdec_operand): Prevent inc/dec generation for Nocona too.
668         (ix86_issue_rate): Add PROCESSOR_NOCONA.
669
670 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
671
672         * rtlanal.c (find_reg_note): Manually
673         unswitch the loop.
674
675 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
676
677         * genemit.c (gen_split): Change prototype of generated code.
678         * genrecog.c (write_action): Adjust prototype for and calls to
679         gen_split_*.
680         * gensupport.c (struct queue_elem): Add split field.
681         (queue_pattern): Return a value.  Clear the split field.
682         (process_rtx): Maintain an association between an insn and the
683         split generated from it for a define_insn_and_split.
684         (process_one_cond_exec): Generate a new split for a
685         define_insn_and_split.
686         * config/arm/arm-protos.h (arm_split_constant): Add insn
687         parameter.
688         (emit_constant_insn): New function.
689         (arm_gen_constant): Use it.
690         * config/arm/arm.md: Adjust calls to arm_split_constant.
691
692 2004-04-02  Jan Hubicka  <jh@suse.cz>
693
694         * cgraph.c: Add overall comment.
695         (cgraph_inline_hash): New global variable.
696         (cgraph_create_node): Break out from ...
697         (cgraph_node): ... here.
698         (cgraph_edge): New function.
699         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
700         (cgraph_remove_edge): Accept edge, intead of source and destination.
701         (cgraph_redirect_edge_callee): New.
702         (cgraph_remove_node): Update all new datastructures.
703         (cgraph_record_call, cgraph_remove_call): Kill.
704         (dump_cgraph_node): Break out from ... ; dump new datastructures.
705         (dump_cgraph): ... here.
706         (cgraph_function_possibly_inlined_p): Use new hashtable.
707         (cgraph_clone_edge, cgraph_clone_node): New.
708         * cgraph.h: Include hashtab.h
709         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
710         fields, add inlined_to pointer.
711         (cgraph_node): Add pointer to next_clone.
712         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
713         (cgraph_remove_call, cgraph_record_call): Kill.
714         (cgraph_inline_hash): Declare.
715         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
716         cgraph_redirect_edge_callee): Declare.
717         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
718         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
719         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
720         * cgraphunit.c: Add overall comment.
721         (cgraph_optimize_function): Kill.
722         (cgraph_assemble_pending_functions): Do not assemble inline clones.
723         (cgraph_finalize_function): Update call of cgraph_remove_node
724         (record_call_1): Record call sites.
725         (cgraph_create_edges): Accept node instead of decl argument.
726         (error_found): New static variable.
727         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
728         (cgraph_analyze_function): Update for new datastructures.
729         (cgraph_finalize_compilation_unit): Plug memory leak.
730         (cgraph_optimize_function): Kill.
731         (cgraph_expand_function): Do not use cgraph_optimize_function.
732         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
733         cgraph_inlined_callees): Kill.
734         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
735         clones.
736         (estimate_growth): Simplify.
737         (cgraph_clone_inlined_nodes): New function.
738         (cgraph_mark_inline_edge): Re-implement.
739         (cgraph_mark_inline): Likewise.
740         (cgraph_check_inline_limits): Simplify.
741         (cgraph_recursive_inlining_p): New.
742         (update_callee_keys): Break out from ...
743         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
744         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
745         Likewise.
746         (cgraph_expand_all_functions):  Remove inline clones from the ordered
747         list.
748         (cgraph_preserve_function_body_p): New predicate.
749         (cgraph_optimize): Verify cgraph.
750         * function.h (struct function): Add fields saved_tree/saved_args.
751         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
752         * toplev.c (rest_of_compilation): Do not free cfun.
753         * tree-inline.c: Include function.h
754         (struct inline_data): Add saving_p field; replace decl/current_decl by
755         node/current_node.
756         (insert_decl_map): New function.
757         (copy_body_r): Handle saving; update cgraph datastructure.
758         (copy_body): Handle recursive inlining.
759         (initialize_inlined_parameters): Likewise.
760         (expand_call_inline): Propagate node attributes; update cgraph.
761         (optimize_inline_calls): Verify that datastructure still match.
762         (save_body): New function.
763         * tree-inline.h (save_body): New.
764         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
765         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
766         * langhooks.c (lang_hooks): Add update_decl_after_saving.
767
768 2004-04-01  Serge Belyshev  <1319@bot.ru>
769
770         PR target/14702
771         * config/i386/i386.md: fix source operand constraints in
772         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
773
774 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
775
776         * fold-const.c (folda): Preserve types of comparisons.
777
778 2004-04-01  Richard Henderson  <rth@redhat.com>
779
780         * toplev.c (backend_init): Move init_optimization_passes call ...
781         (lang_dependent_init): ... here.
782
783 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
784             Jakub Jelinek  <jakub@redhat.com>
785
786         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
787         -lgcc --as-needed -lgcc_s --no-as-needed by default.
788         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
789         * configure: Rebuilt.
790         * config.in: Rebuilt.
791         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
792         (stage2-start, stage3-start, stage4-start): Likewise.
793         (stageprofile-start, stagefeedback-start): Likewise.
794
795 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
796
797         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
798         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
799         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
800         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
801         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
802         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
803         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
804         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
805         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
806         * config/sparc/t-linux: Removed.
807
808 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
809
810         PR c++/14755
811         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
812         "bitfld++ == const" to "++bitfld == const + incr" transformations.
813
814 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
815
816         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
817         * stor-layout.c (layout_decl): Likewise.
818         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
819         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
820         * print-tree.c (print_node): Handle various used of unsigned_flag.
821         * tree.def (BIT_FIELD_REF): Update comment.
822         * tree.h (TREE_UNSIGNED): Deleted.
823         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
824
825 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
826
827         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
828         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
829         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
830         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
831         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
832         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
833         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
834         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
835         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
836         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
837         REAL_TYPE, not INTEGER_TYPE.
838         (layout_type, case VECTOR_TYPE): Simplify code.
839         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
840         * tree.h: Update comments.
841         (STRIP_NOPS): Use TYPE_UNSIGNED.
842         (TYPE_UNSIGNED): New macro.
843         (TYPE_TRAP_SIGNED): Remove now redundant check.
844         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
845
846 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
847
848         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
849
850 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
851
852         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
853         Add darwin-fpsave.asm, darwin-vecsave.asm,
854         and darwin-world.asm.
855         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
856         as the asm files contain altivec instructions.
857         * config/rs6000/darwin-fpsave.asm: New file.
858         * config/rs6000/darwin-vecsave.asm: New file.
859         * config/rs6000/darwin-world.asm: New file.
860
861 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
862
863         * gengtype-yacc.y (option, stringseq): Add missing
864         terminating semicolon.
865
866 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
867
868         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
869         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
870         tls_dtprel_ha_32, tls_dtprel_ha_64,
871         tls_dtprel_lo_32, tls_dtprel_lo_64,
872         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
873         tls_tprel_ha_32, tls_tprel_ha_64,
874         tls_tprel_lo_32, tls_tprel_lo_64,
875         tls_got_tprel_32, tls_got_tprel_64,
876         tls_tls_32, tls_tls_64): Replace register_operand with
877         gpc_reg_operand.
878
879 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
880
881         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
882         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
883         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
884         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
885         *ctrdi_internal6): Replace register_operand with
886         nonimmediate_operand.
887
888 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
889
890         * fold-const.c (fold): Reassociate multiply expression
891         with an adjacent non-multiply expression to use
892         architecture's multiply-add instruction.
893
894 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
895
896         * gengtype.c (create_option): New function.
897         * gengtype.h: Prototype it.
898         * gengtype-yacc.y (stringseq): New rule.
899         (option): Use create_option.  Add new bare ID production.  Use
900         stringseq, not STRING directly.
901
902         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
903         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
904         * varray.h, config/alpha/alpha.c:
905         Use new shorter form of GTY markers.
906
907         * doc/gty.texi: Rewrite.
908
909 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
910
911         * config/darwin.c (machopic_function_base_name):
912         Remove current_name and getting the name of the
913         current function.
914
915 2004-03-30  Nick Clifton  <nickc@redhat.com>
916
917         * config/arm/arm.md (thumb_jump): Reduce the backward branch
918         range, and increase the forward branch range, to allow for
919         the fact that the PC will be off by 4.
920
921 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
922
923         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
924
925 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
926
927         * config/rs6000/rs6000.c (output_vec_const_move):
928         Find all cases of EASY_VECTOR_15_ADD_SELF.
929         (easy_vector_constant_add_self): Accept
930         all vector constant loadable by vsplt* and vadd*.
931         (easy_vector_same): Use easy_vector_splat_const.
932         (easy_vector_const): Use easy_vector_splat_const.
933         (easy_vector_splat_const): New function.
934         (gen_easy_vector_constant_add_self): New function.
935
936         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
937         New prototype.
938
939         * config/rs6000/altivec.md (movv4si splitter): Change to
940         emit move insn with halfed vector constant.
941         (*movv8hi splitter): Likewise.
942         (*movv16qi splitter): Likewise.
943
944 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
945
946         PR 11591
947         * config/rs6000/rs6000.c (rs6000_legitimate_address):
948         Allow any offset to argument pointer in no-strict case.
949
950 2004-03-30  Jan Hubicka  <jh@suse.cz>
951
952         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
953         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
954         dump file in non-unit-at-a-time mode.
955
956 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
957
958         * config/cris/cris.h: Correct #ifdef to test for
959         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
960         HAVE_AS_MUL_BUG_ABORT_OPTION.
961
962 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
963
964         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
965         the address inside the old RTL.
966
967 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
968
969         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
970         (struct c_binding, struct c_scope): Add chain_next
971         attributes to GTY markers.
972         (struct lang_identifier, struct lang_tree_node): Define
973         here...
974         * c-tree.h: ... not here.  No longer need to declare struct
975         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
976         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
977         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
978
979         PR 14734, 11944
980         * c-decl.c (get_parm_info): If error_mark_node is encountered
981         in the bindings chain, unbind and discard it; don't abort.
982
983 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
984             Dorit Naishlos <dorit@il.ibm.com>
985
986         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
987         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
988
989 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
990
991         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
992
993         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
994         (m68hc11_attribute_table): New attribute "page0" to mark a global
995         variable as being allocated from within page0 section.
996         (m68hc11_encode_label): New function.
997         (m68hc11_strip_name_encoding): New function.
998         (m68hc11_page0_symbol_p): New function.
999         (m68hc11_indirect_p): Accept global variables marked in page0.
1000         (m68hc11_encode_section_info): Lookup "page0" attribute.
1001
1002         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
1003         represents access to page0 variables.
1004
1005         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
1006         ("*logicalsi3_silshl16_zext"): Likewise.
1007         ("*ashldi3_const32"): Likewise.
1008         (peephole2 ashift): Likewise.
1009
1010 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
1011
1012         * c-tree.h (C_DECL_REGISTER): New.
1013         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
1014         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
1015         (build_array_ref, c_mark_addressable): Set and use it.
1016         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
1017         Allow structures with volatile fields to be declared register.
1018         Don't check TREE_ADDRESSABLE before warning about taking address
1019         of register.
1020         * c-decl.c (finish_decl): Don't allow structures with volatile
1021         fields to be placed in named register.
1022         * doc/trouble.texi: Remove reference to structures with volatile
1023         fields in registers.
1024
1025 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
1026
1027         * function.c (thread_prologue_and_epilogue): Move
1028         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
1029         before the epilogue.
1030
1031 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
1032
1033         * expr.c (store_constructor): Use gen_int_mode to correctly
1034         sign-extend CONST_INT value.
1035
1036 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1037
1038         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
1039         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
1040         * doc/extend.texi: Likewise.
1041
1042 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
1043
1044         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
1045           with TYPE_ORIG_SIZE_TYPE.
1046
1047 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
1048
1049         PR 14219
1050         * c-typeck.c (build_binary_op): Do not allow comparisons of
1051         vectors.
1052
1053 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
1054
1055         * config.gcc: Remove sparc-tti-*.
1056         * config/sparc/pbd.h: Delete.
1057
1058         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
1059         * config/sparc/aout.h: Likewise.
1060
1061         * config/sparc/sparc.h: Remove if 0'd code.
1062         * config/sparc/sparc.md (call): Remove if 0'd code.
1063         (call_value): Likewise.
1064         (nonlocal_goto): Likewise.
1065         (unimp_insn): Delete.
1066
1067 2004-03-25  Roger Sayle  <roger@eyesopen.com>
1068
1069         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
1070         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
1071
1072 2004-03-25  Richard Henderson  <rth@redhat.com>
1073
1074         PR 11527
1075         * c-typeck.c (pop_init_level): Emit pending init elements earlier
1076         rather than later.
1077
1078 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1079
1080         * builtins.c (fold_builtin): Fix error in last change.
1081
1082 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
1083
1084         * config/mips/mips.h: Formatting fix.
1085
1086 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1087
1088         * builtins.def: Add ctype builtins.
1089         * doc/extend.texi: Likewise.
1090
1091 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1092
1093         * builtins.c (fold_builtin): Add new builtin optimizations for
1094         sqrt and/or cbrt.
1095         * fold-const.c (fold): Likewise.
1096
1097 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
1098
1099         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
1100         (rs6000_sched_groups): New variable.
1101         (processor_target_table): Add power5.
1102         (rs6000_override_options): Set rs6000_sched_insert_nops,
1103         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
1104         from rs6000_sched_groups.
1105         (output_cbranch): Use rs6000_always_hint.
1106         (rs6000_variable_issue): Use rs6000_sched_groups.
1107         (rs6000_adjust_cost): Add CPU_POWER5.
1108         (is_microcoded_insn): Use rs6000_sched_groups.
1109         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
1110         Return 2 for POWER5 cracked instructions.
1111         (is_cracked_insn): Use rs6000_sched_groups.
1112         (is_branch_slot_insn): Use rs6000_sched_groups.
1113         (rs6000_issue_rate): Add CPU_POWER5.
1114         (rs6000_sched_finish): Use rs6000_sched_groups.
1115         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
1116         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
1117         (DEFAULT_SCHED_COSTLY_DEP): Delete.
1118         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
1119         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
1120         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
1121         * config/rs6000/power5.md: New file.
1122         * doc/invoke.texi: Add power5 option.
1123
1124 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
1125
1126         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
1127         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
1128         * doc/invoke.texi: Fix a typo.
1129
1130 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
1131
1132         PR optimization/9707.
1133         * stmt.c (emit_case_nodes): Emit equality comparisons instead
1134         of recursing if both children are single-valued cases with no
1135         children.
1136
1137 2004-03-25  Paul Brook  <paul@codesourcery.com>
1138
1139         * config/arm/arm.c (vfp_print_multi): Remove.
1140         (arm_output_fldmx): New function.
1141         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
1142         (arm_expand_prologue): Update to match.
1143         (arm_get_vfp_saved_size): New Function.
1144         (arm_get_frame_offsets): Use it.
1145         (arm_output_epilogue): Use new functions.
1146
1147 2004-03-24  Richard Henderson  <rth@redhat.com>
1148
1149         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
1150         (reg_known_value, reg_known_value_size): Likewise; make static.
1151         (reg_known_equiv_p): Make static.
1152         (clear_reg_alias_info): Update for new indexing.
1153         (get_reg_known_value, set_reg_known_value): New.
1154         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
1155         (canon_rtx): Use them.
1156         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
1157         Don't play queer offsetting games with reg_known_value and
1158         reg_known_equiv_p.
1159         (end_alias_analysis): Free reg_known_value with gc.
1160         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
1161         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
1162         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
1163         functions instead.
1164
1165 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
1166
1167         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
1168         config/i386/mmintrin.h: Update copyright.
1169
1170 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
1171
1172         * configure.ac: Add --enable-werror-always (for top level bootstrap
1173         support).
1174         * configure: Regenerate.
1175
1176 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
1177
1178         * objc/objc-act.c (objc_comptypes): Treat comparisons
1179         between 'Class' and '<class> *' as explicitly invalid.
1180
1181 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
1182
1183         * doc/invoke.texi (-frename-registers: Add enabled at -O3.
1184         (-fprofile-values): Add enabled with profile-{generate,use}.
1185         (-fvpt): Same.
1186         (-ftracer): Add enabled with profile-use.
1187         (-funit-at-a-time): Add enabled at -O2,-O3.
1188         (-funroll-loops): Add enabled with profile-use.
1189         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
1190         (max-gcse-passes): Mention default.
1191         (max-cse-path-length): Mention default.
1192
1193 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
1194
1195         * Makefile.in (STRICT2_WARN): Reorder.
1196         * configure.ac: Check for -Wold-style-definition, and use it
1197         in strict1_warn if it's available.
1198         * configure: Regnerate.
1199
1200 2004-03-24  Paul Brook  <paul@nowt.org>
1201
1202         * config.gcc <arm>: Add --with-abi=
1203         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
1204         thumb_far_jump_used): Remove prototypes.
1205         (arm_needs_doubleword_align): Add prototype.
1206         (thumb_compute_initial_elimination_offset): Ditto.
1207         * config/arm/arm.c (arm_get_frame_offsets): New function.
1208         (use_return_insn, output_return_instruction, arm_output_epilogue,
1209         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
1210         arm_expand_prologue, thumb_expand_epilogue): Use it.
1211         (arm_abi, target_abi_name, all_arm_abis): New variables.
1212         (arm_override_options): Set them.  Set structure padding for AAPCS.
1213         (arm_return_in_memory): Update ABI check.
1214         (arm_init_cumulative_args): Initialize can_split.
1215         (arm_needs_doubleword_align): New function.
1216         (arm_function_arg): Don't split args after pushing to stack. Handle
1217         doubleword/even reg alignment.
1218         (arm_va_arg): Handle all doubleword aligned args.
1219         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
1220         on ABI, not CPU.
1221         (arm_compute_save_reg0_reg12_mask): Fix comment.
1222         (thumb_get_frame_size, thumb_get_frame_size): Remove.
1223         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
1224         value for alignment.
1225         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
1226         to match.
1227         (thumb_compute_initial_elimination_offset): New function.
1228         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
1229         unneccessary rounding.
1230         * config/arm/arm.h (target_abi_name): Declare.
1231         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
1232         arm_abi_type, ARM_DEFAULT_ABI): Define.
1233         (ARM_FLAG_ATPCS): Remove.
1234         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
1235         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
1236         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
1237         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
1238         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
1239         Contitionalize on ABI, not CPU.
1240         (struct arm_stack_offsets): Define.
1241         (struct machine_function): Add stack_offsets.  Remove frame_size.
1242         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
1243         pushed.
1244         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
1245         doubleword alignment.
1246         (THUMB_INITIAL_ELIMINATION_OFFSET,
1247         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
1248         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
1249         * config/arm/arm.md (align_8): Enable for all targets.
1250         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
1251         (ARM_DEFAULT_ABI): Define.
1252         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
1253         -mstructure-size-boundary.
1254
1255 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
1256
1257         * configure.ac: Check for -Wno-variadic-macros; don't use
1258         -pedantic (in stage 1 or a simple 'make all') unless it's available,
1259         and if it's available, use it.  Also, clean up check for
1260         -Wno-long-long.
1261         * configure: Regenerate.
1262
1263 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
1264
1265         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
1266         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
1267         (MULTILIB_DEFAULTS): Use it.
1268         (MIPS_CPU_STRING_DEFAULT): Remove.
1269         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
1270         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
1271         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
1272         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
1273         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
1274         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
1275         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
1276         accordingly.
1277
1278 2004-03-24  DJ Delorie  <dj@redhat.com>
1279             Richard Sandiford  <rsandifo@redhat.com>
1280
1281         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
1282         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
1283         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
1284         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
1285         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
1286         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
1287         if TARGET_FIX_VR4122.
1288         * config/mips/mips.md (define_attr length): Account for nops inserted
1289         after macc and dmult when using -mfix-vr4122-bugs.
1290         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
1291         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
1292         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
1293         * config/mips/vr4122-div.S: New file.
1294         * doc/invoke.texi: Document -mfix-vr4122-bugs.
1295
1296 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
1297
1298         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
1299         (TARGET_MIPS4130): New macro.
1300         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
1301         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
1302         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
1303         with PROCESSOR_R4130.
1304         * config/mips/mips.md (define_attr cpu): Add r4130.
1305         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
1306
1307 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
1308             Richard Sandiford  <rsandifo@redhat.com>
1309
1310         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
1311
1312 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
1313
1314         PR preprocessor/14438
1315         * cpplib.c (do_pragma): Remove line_change call after pragma
1316         handler.
1317
1318 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
1319
1320         * doc/extend.texi (ARM Built-in Functions): Replace with correct
1321         declarations.
1322
1323 2004-03-23  Roger Sayle  <roger@eyesopen.com>
1324
1325         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
1326         if flag_unsafe_math_optimizations.
1327         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
1328         and TARGET_80387 expand using truncdfsf2_noop pattern.
1329         (truncxfsf2): Likewise using truncxfsf2_noop.
1330         (truncxfdf2): Likewise using truncxfdf2_noop.
1331         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
1332
1333 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
1334
1335         * hooks.c (hook_constcharptr_tree_null): New hook.
1336         * hooks.h (hook_constcharptr_tree_null): New prototype.
1337         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
1338         * target.h (mangle_fundamental_type): New target hook.
1339         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
1340         target hook at rs6000_mangle_fundamental_type.
1341         (rs6000_mangle_fundamental_type): New function.
1342         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
1343
1344 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
1345
1346         PR 12267, 12391, 12560, 13129, 14114, 14133
1347         * c-tree.h: Forward declare struct c_binding.  Declare
1348         c_override_bindings_to_false.  Update prototypes.
1349         (struct lang_identifier): Update comments.  Change fields to be
1350         struct c_binding *.
1351         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
1352         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
1353         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
1354         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
1355         * c-common.h: Update prototypes.
1356         * c-decl.c (struct c_scope): Update commentary.  Remove names,
1357         names_last, parms, parms_last, tags, and shadowed fields.  Add
1358         bindings and depth fields.
1359         (scope_freelist): Move to more appropriate location.
1360         (c_print_identifier): Update for changes to struct lang_identifier.
1361         (objc_mark_locals_volatile): Update for new bindings structures.
1362         (global_bindings_p): Honor c_override_global_bindings_to_false.
1363         (pushlevel): Rename to push_scope; take no arguments; use the
1364         scope_freelist; initialize scope->depth and check for overflow.
1365         (poplevel): Rename to pop_scope; totally rewritten for new bindings
1366         structures.
1367         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
1368         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
1369         Improve some commentary.  Adjust handling of forward parm decls.
1370         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
1371         Preserve C_DECL_IN_EXTERNAL_SCOPE.
1372         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
1373         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
1374         decls.  Rewrite for new bindings structures.  Improve commentary.
1375         Eliminate the copy_node call.
1376         (implicit_decl_warning): Use the "diag" idiom (as seen in
1377         locate_old_decl) to reduce code duplication; call locate_old_decl
1378         if appropriate.  Relocate to remove need for forward declaration.
1379         (implicitly_declare): Adjust for new bindings structures.  Kludge
1380         around Objective-C not-really-builtin functions.
1381         (undeclared_variable): Improve diagnostics.  If current_function_decl
1382         is nonnull but current_function_scope is null, use current_scope.
1383         Use bind.
1384         (lookup_tag): Adjust for new bindings structures.  Kludge around
1385         Objective-C's tag declarations that wind up in the external scope.
1386         (lookup_name): Adjust for new bindings structures.  Kludge around
1387         c-common.c's pseudo-typedefs that wind up in the external scope.
1388         (lookup_name_current_level): Rename lookup_name_in_scope; take a
1389         second argument indicating the scope to examine; rewrite for
1390         new bindings structures.
1391         (c_init_decl_processing): Adjust for renamed functions.  Do not
1392         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
1393         First scope pushed is the external scope, not the global scope.
1394         (builtin_function): Use bind, not pushdecl.  Adjust other bits
1395         for new data structures.  Keep track of builtins that should be
1396         made visible automatically.
1397         (start_decl): Adjust diagnostics.  Remove unnecessary call to
1398         expand_decl.
1399         (grokparms): Return 0 if arg_types is error_mark_node.
1400         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
1401         reversed sense.  Rewrite for new bindings structures.  Do not
1402         leave any decls in the scope, to prevent pop_scope from doing
1403         contradictory things with them.
1404         (finish_struct, finish_enum): Remove redundant diagnostics.
1405         (build_enumerator): Don't cascade diagnostics for error_mark_node.
1406         Mark location where -pedantic changes the meaning of the program.
1407         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
1408         parameter decls into the function's scope structure using bind.
1409         Warn here about function definitions in the wrong style.
1410         Adjust diagnostics.
1411         (store_parm_decls): Correct the determination of whether a
1412         function was defined with a prototype.
1413         (c_write_global_declarations): Operate on all file decls and on
1414         the external scope.  Split body of the loop to...
1415         (c_write_global_declarations_1): ... this new function, to avoid
1416         code duplication.
1417         (truly_local_externals, first_builtin_decl, last_builtin_decl)
1418         (make_scope, pop_scope, in_parm_level_p, set_block)
1419         (any_external_decl, record_external_decl, bind_label, getdecls)
1420         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
1421         (c_reset_state): Delete.
1422         (visible_builtins, c_override_global_bindings_to_false)
1423         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
1424         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
1425         (external_scope, binding_freelist, bind, free_binding_and_advance)
1426         (push_file_scope, pop_file_scope): New.
1427         (pushtag, pushdecl_top_level, lookup_label, declare_label)
1428         (define_label, c_make_fname_decl, finish_decl)
1429         (mark_forward_parm_decls, build_compound_literal)
1430         (grokdeclarator, start_function, check_for_loop_decls)
1431         (identifier_global_value, record_builtin_type): Minor adjustments
1432         for new bindings structures.  Improve diagnostics and commentary.
1433         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
1434         pushlevel/poplevel respectively.
1435         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
1436         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
1437         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
1438         correct loop over multiple translation units; call fatal_error if
1439         requested to compile more than one file at once.  (This disables
1440         IMA temporarily - an up-front error being preferable to a crash.)
1441         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
1442         (all actions): Adjust calls to pushlevel/poplevel.
1443         (parsing_iso_function_signature): Delete.
1444         (extdef_1): Fold into extdef.
1445         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
1446         warn here about function definitions in the wrong style.
1447         (after_tyle_declarator, parm_declarator_starttypename)
1448         (parm_declarator_nostarttypename, notype_declarator): Remove
1449         commented-out productions.
1450         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
1451         an empty TREE_LIST node.  Adjust calls to get_parm_info.
1452         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
1453         to suppress -Wold-style-definition after this error.
1454         (c_parse_file): Don't clear the binding stack or call
1455         finish_fname_decls here.  Correct comment.
1456         * c-typeck.c (same_translation_unit_p): Export.
1457         (common_type): Use c_override_global_bindings_to_false, not
1458         pushlevel/poplevel/declare_parm_level.
1459         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
1460         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
1461         and LANG_HOOKS_GETDECLS with do-nothing stubs.
1462         * objc/objc-lang.c: Likewise.
1463         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
1464         get_parm_info.
1465         (OBJC_VOID_AT_END): Delete; replace all uses
1466         with void_list_node.
1467         (generate_forward_declaration_to_string_table): Delete.
1468         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
1469
1470         * coverage.c (create_coverage): Don't pushdecl anything.
1471         * langhooks.c (lhd_clear_binding_stack): Call
1472         lang_hooks.decls.poplevel, not poplevel.
1473         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
1474         circular list rather than going into an infinite loop.
1475
1476 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
1477
1478         * optabs.c (expand_binop): When synthesizing double word rotates
1479         from single word shifts, use a new register target if the provided
1480         target is not a REG already.
1481
1482 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1483
1484         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
1485         * c-common.c (handle_mode_attribute): Add extra arg to
1486         build_pointer_type_for_mode and build_reference_type_for_mode.
1487         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
1488         for INTEGER_CST.
1489         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
1490         Chain pointers via TYPE_NEXT_PTR_TO.
1491         (build_reference_type_for_mode): Similarly.
1492         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
1493         and build_reference_type_for_mode.
1494         (tree_check4_failed): New function.
1495         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
1496         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
1497         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
1498         Add check.
1499
1500 2004-03-23  Roger Sayle  <roger@eyesopen.com>
1501
1502         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
1503         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
1504         when both A and B are nonnegative.
1505         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
1506         nonzero.
1507
1508 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
1509
1510         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
1511         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
1512
1513 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
1514
1515         PR optimization/14669
1516         * fold-const.c (fold): Only unwiden integer comparisons for equality
1517         and inequality operators, or when the signedness doesn't change.
1518
1519 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
1520
1521         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
1522         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
1523         * config/sparc/t-linux: New file.
1524
1525 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
1526
1527         * gcse.c (can_assign_to_reg_p): New function, split out from...
1528         (want_to_gcse_p): ...here.
1529         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
1530         the rhs of a store.
1531
1532 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
1533
1534         * c-typeck.c (same_translation_unit_p): Fix pasto.
1535
1536 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
1537
1538         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
1539         (PARAM_MAX_SCHED_REGION_INSNS): New.
1540         * sched-rgn.c: Include params.h
1541         (MAX_RGN_BLOCKS): Delete.
1542         (MAX_RGN_INSNS): Delete.
1543         (too_large): Return bool.  Convert to PARAM_VALUE.
1544         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
1545         * doc/invoke.texi (param): Document max-sched-region-blocks and
1546         max-sched-region-insns.
1547
1548 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
1549
1550         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
1551         for base types.
1552
1553 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
1554
1555         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
1556         change.
1557
1558 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
1559
1560         PR c/14069
1561         * c-decl.c (finish_struct): Change type of incorrect flexible array
1562         field into error_mark_node.
1563
1564 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
1565
1566         PR target/14580
1567         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
1568         who are not local for Darwin PIC.
1569
1570 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
1571
1572         * regrename.c (regrename_optimize): Set regs_ever_live for all
1573         registers introduced as replacement.
1574
1575 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
1576
1577         PR middle-end/14470
1578         * expr.c (mark_queue): New function.
1579         (emit_insns_enqueued_after_mark): New function replacing
1580         emit_queue.  Clear the body of emitted queued insns.
1581         (emit_queue): Call emit_insns_enqueued_after_mark.
1582         (store_expr): Mark the increment queue on entry.  Emit
1583         only the incrementations queued when expanding the source.
1584
1585 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
1586
1587         * configure.ac: Allow --disable-coverage-flags (for the future benefit
1588         of top level bootstrap, and consistency).  Reindent.
1589         * configure: Regenerate.
1590
1591 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
1592
1593         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
1594         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
1595         unnecessary casts.
1596
1597 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
1598
1599         PR target/14291
1600         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
1601         __MINGW32__.
1602
1603 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
1604
1605         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
1606         to nonimmediate_operand.
1607         ("*doloop_di"): Likewise.
1608
1609 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
1610
1611         * real.h (struct real_value): Use the same type for all
1612         bitfields.  Rename exp to uexp.
1613         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
1614         Adjust all uses of exp...
1615         * builtins.c: ... here, ...
1616         * emit-rtl.c: ... here, and ...
1617         * real.c: ... and here.
1618
1619 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1620
1621         * pretty-print.c (pp_base_maybe_space): New function.
1622         * pretty-print.h (pp_base_maybe_space): Declare.
1623         (pp_maybe_space): New macro.
1624
1625 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
1626
1627         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
1628
1629 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
1630
1631         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
1632         of using register multiplication cost.
1633         (expand_mult): Adapt choose_mult_variant call.
1634         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
1635         of MODE; pass appropriate cost bound.  Adjust result when
1636         performing signed multiplication by a negative constant.
1637         Don't use intermediate modes larger than word_mode.
1638
1639 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1640
1641         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
1642         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
1643         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
1644         * explow.c (expr_size): Likewise.
1645         * expr.h (placeholder_list, find_placeholder): Deleted.
1646         * expr.c (store_constructor): Likewise.
1647         (get_inner_reference): Likewise.  Also don't call find_placeholder.
1648         (placeholder_list, find_placeholder): Deleted.
1649         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
1650         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
1651         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
1652         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
1653         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
1654         Likewise.
1655         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
1656         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
1657         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
1658         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
1659         Clean up by using first_rtl_op.
1660         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
1661         (substitute_placeholder_in_expr): New function.
1662         * tree.def (WITH_RECORD_EXPR): Deleted.
1663         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
1664         (substitute_placeholder_in_expr): New.
1665
1666 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
1667
1668         * dojump.c (prefer_and_bit_test): Fix which part of
1669         the and_test is replaced.
1670
1671 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
1672
1673         * frontends.texi: Add missing line.
1674
1675 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
1676             Chris Devers  <cdevers@pobox.com>
1677             Joseph S. Myers  <jsm@polyomino.org.uk>
1678
1679         * doc/frontends.texi: Rewrite.
1680         * doc/gcc.texi: Update last modification date.
1681
1682 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
1683
1684         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
1685         message before redirecting the edge.
1686
1687 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1688
1689         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
1690         flag.
1691         * explow.c (force_not_mem): Set REG_POINTER flag according to
1692         MEM_POINTER one.
1693         * rtl.h (MEM_POINTER): New macro.
1694         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
1695         for MEM_POINTER.
1696
1697 2004-03-20  Roger Sayle  <roger@eyesopen.com>
1698
1699         PR target/13889
1700         * cse.c (fold_rtx): Avoid substituting constants into unary
1701         conversion operations.
1702
1703 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
1704
1705         * fold-const.c (fold): Replace "expr" with "t".
1706
1707 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
1708
1709         PR c/12373
1710         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
1711         DECL_ORIGINAL_TYPE if there isn't one.
1712
1713 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
1714
1715         * fold-const.c (fold): Replace "final_type" with "type".
1716         Remove variable "final_type".
1717
1718 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
1719
1720         * fold-const.c (fold): Constify "type".
1721         Replace "TREE_TYPE (t)" with "type".
1722
1723 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
1724
1725         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
1726         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
1727         via (*targetm.foo) () with targetm.foo ().
1728
1729 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
1730
1731         PR other/14630
1732         * doc/install.texi: Add info directory category and entry.
1733
1734 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
1735
1736         * fold-const.c (fold): Replace "t" with "tem" where it is used
1737         as a temporary variable.  Remove "orig_t" and all of its uses.
1738
1739 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
1740
1741         * fold-const.c (fold): Remove variable "invert".
1742         Move the handling of relational expressions that can be folded
1743         to a constant ...
1744         (fold_relational_const): ... here.
1745         (tree_expr_nonzero_p): New.
1746
1747 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
1748
1749         PR c/14635
1750         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
1751         DEF_GCC_BUILTIN.
1752
1753 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
1754
1755         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
1756         (GTFILES): Add $(srcdir)/dojump.h.
1757         (gt-dojump.h): New dependency.
1758         * dojump.c (and_reg, and_test, shift_test): New static variables.
1759         (prefer_and_bit_test): New function.
1760         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
1761
1762 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
1763
1764         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
1765         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
1766         reorg.c, tree.h: Fix comment typos.
1767
1768 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
1769
1770         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
1771         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
1772         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
1773         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
1774         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
1775         vmsdbgout.c: Replace calls via (*targetm.foo) () with
1776         targetm.foo ().
1777
1778 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
1779
1780         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
1781         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
1782         always_inline attribute.
1783         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
1784         Treat expansion as completed even if literal argument is
1785         invalid (so that other expansions are not tried in vain).
1786
1787 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
1788
1789         * loop-doloop.c (add_test): Replace GEN_INT (0) with
1790         const0_rtx.
1791
1792 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
1793
1794         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
1795         ...
1796         (fold_abs_const): ... here.
1797
1798 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1799
1800         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
1801
1802 2004-03-19  Denis Chertykov  <denisc@overta.ru>
1803
1804         PR target/11520
1805         * config/avr/avr.md ("call_insn"): Handle explicit integer
1806         specially.
1807         (call_value_insn): Likewise.
1808
1809 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1810
1811         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
1812
1813 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
1814
1815         * fold-const.c (negate_expr): Move the handling of constants
1816         ...
1817         (fold_negate_const): ... here.
1818
1819 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1820
1821         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
1822         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
1823         * tree.c (debug_no_type_hash): Deleted.
1824         (type_hash_canon): Abort if passed a variant.
1825         Check lang_hooks.types.hash_types.
1826         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
1827         (build_array_type): Remove unnecessary allocation of pointer type.
1828         (build_complex_type): Properly qualify resulting type.
1829
1830 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
1831
1832         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
1833
1834 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
1835
1836         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
1837         (expand_mult): ...here.
1838         (extract_high_half): New, split out from expand_mult_highpart.
1839         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
1840         (expand_highpart): Evaluate the cost of a shift/add sequence,
1841         then see if any of the specialized optabs are cheaper.
1842
1843 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
1844
1845         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
1846
1847 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1848
1849         * convert.c (convert_to_real): Add more math builtins.
1850
1851 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1852
1853         * convert.c (convert_to_real): Reformat using switch stmt.
1854
1855 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
1856
1857         * c-common.c (pointer_int_sum): Do not complain about using
1858         pointers to pointers-to-members.
1859
1860 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
1861
1862         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
1863         have moved to the target hooks structure".
1864
1865 2004-03-18  James E Wilson  <wilson@specifixinc.com>
1866
1867         * config/mips/mips.md (type): Split move into arith and fmove.  Split
1868         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
1869         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
1870         Likewise.
1871         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
1872         Likewise.
1873         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
1874         rm7_fp_quick): Likewise.
1875         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
1876         rm9k_fquick): Likewise.
1877         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
1878         Likewise.
1879         (ir_sr70_icmp): Delete.
1880
1881 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1882
1883         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
1884         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
1885         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
1886         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
1887         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
1888         Protect with proper check.
1889         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
1890         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
1891         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
1892         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
1893         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
1894         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
1895         not TYPE_FIELDS.
1896         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
1897
1898 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
1899
1900         * gcse.c (eliminate_partially_redundant_loads): Reject change if
1901         dest is set between beginning and current insn.
1902
1903 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
1904
1905         * c-decl.c (grokdeclarator): Do not complain about redeclaring
1906         visible "static" identifiers "extern" in a local scope.
1907         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
1908         post-increments/decrements.
1909
1910 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
1911
1912         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
1913         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
1914         (xtensa_va_start): Remove assignment to current_function_arg_words.
1915
1916 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
1917
1918         * alias.c (record_set): Detect the case where a register is assigned
1919         a new value that has the same base term as the old one.
1920
1921 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1922
1923         * doloop.c: Removed.
1924         * loop-doloop.c: New file.
1925         * Makefile.in (doloop.o): Remove.
1926         (loop-doloop.o): New.
1927         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
1928         * cfgloopanal.c (get_loop_level): New function.
1929         * loop-iv.c (iv_number_of_iterations): Handle case when loop
1930         is leaved immediatelly.
1931         * loop.c (strength_reduce): Do not call doloop optimization.
1932         * loop.h (LOOP_BCT): Removed.
1933         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
1934         (rest_of_handle_loop2): Call doloop_optimize_loops.
1935         (rest_of_compilation): Test for optimizations moved to
1936         rest_of_handle_loop2.
1937
1938 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
1939
1940         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
1941         for mixed mode.
1942         (rs6000_emit_prologue): Ditto.
1943         (rs6000_emit_epilogue): Ditto.
1944         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
1945         macro for mixed mode.
1946
1947 2004-03-18  Jan Hubicka  <jh@suse.cz>
1948
1949         * predict.c (propagate_freq): Compute correctly frequency of
1950         EXIT_BLOCK.
1951
1952 2004-03-17  Eric Christopher  <echristo@redhat.com>
1953
1954         * builtins.c (apply_args_size): Use reg_raw_mode.
1955         (apply_result_size): Ditto.
1956
1957 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
1958
1959         PR target/14620
1960         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
1961
1962 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
1963
1964         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
1965         32-bit builds when defaulting to 32-bit.
1966
1967 2004-03-17  Jan Hubicka  <jh@suse.cz>
1968
1969         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
1970         array.
1971
1972 2004-03-17  James E Wilson  <wilson@specifixinc.com>
1973
1974         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
1975         (hazard_nop): Change type to nop.
1976         (type): Split arith into arith, shift, slt, clz.  Delete darith.
1977         Fix all uses.  Change arith to multi if more than one insn emitted.
1978         * config/mips/5400.md (ir_vr54_arith): Likewise.
1979         * config/mips/5500.md (ir_vr55_arith): Likewise.
1980         * config/mips/7000.md (rm7_int_other): Likewise.
1981         * config/mips/9000.md (rm9k_int): Likewise.
1982         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
1983
1984 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
1985
1986         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
1987         to hold the subtype tree instead of recomputing it several times.
1988
1989 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
1990
1991         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
1992         CC_INVERT.
1993         * config/mn10300/mn10300.md (cc): Remove "invert".
1994
1995 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1996
1997         * builtins.c (integer_valued_real_p): Add builtin rint.
1998         (fold_builtin): Likewise.
1999         * convert.c (convert_to_real): Likewise.
2000
2001         * convert.c (convert_to_real): Fix typos in `long double'
2002         builtins.
2003
2004 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
2005
2006         PR c++/14481
2007         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
2008         generated COMPOUND_EXPRs.
2009
2010 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
2011
2012         * config/h8300/t-rtems (h8300-*-rtems*): New.
2013
2014 2004-03-16  Eric Christopher  <echristo@redhat.com>
2015
2016         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
2017
2018 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
2019
2020         * config/i386/i386-protos.h: Add a prototype for
2021         ix86_reverse_condition.
2022         * config/i386/i386.c (ix86_reverse_condition): New.
2023         * config/i386/i386.h (REVERSE_CONDITION): Use
2024         ix86_reverse_condition.
2025         * config/i386/i386.md: Use ix86_reverse_condition instead of
2026         REVERSE_CONDITION.
2027
2028 2004-03-16  J. Brobecker  <brobecker@gnat.com>
2029
2030         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
2031
2032 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
2033
2034         PR bootstrap/12974
2035         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
2036
2037 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
2038
2039         * c-common.c (c_common_type_for_mode): Build vector types on
2040         demand.
2041         (handle_mode_attribute): Deprecate using the mode attribute
2042         to create vector types.  Fix indentation.
2043         (vector_type_node_list): Remove.
2044         (handle_vector_size_attribute): Create vector types on demand.
2045         Strip a NON_LVALUE_EXPR from the attribute if there is one.
2046         * c-typeck.c (comptypes): Make vector types compatible if they
2047         have the same underlying mode.
2048         (convert_for_assignment): Use comptypes to convert between
2049         vector types.
2050         * tree.c (build_common_tree_nodes_2): Do not create vector types.
2051         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
2052         vector types.
2053         * tree.h: Remove vector types.
2054         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
2055         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
2056         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
2057         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
2058         * doc/extend.texi (Vector Types): Document how to use the
2059         vector_size attribute to create vectors, rather than mode.
2060
2061         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
2062         * config/i386/emmintrin.h: Likewise.
2063         * config/i386/mmintrin.h: Likewise.
2064         * config/i386/xmmintrin.h: Likewise.
2065         * config/sh/ushmedia.h: Likewise.
2066
2067 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
2068
2069         * config/freebsd-spec.h, config/arc/arc-protos.h,
2070         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
2071         config/arm/linux-gas.h, config/arm/semi.h,
2072         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
2073         config/ia64/freebsd.h, config/mips/7000.md,
2074         config/mips/9000.md, config/ns32k/ns32k-protos.h,
2075         config/sparc/pbd.h: Update copyright.
2076
2077 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
2078
2079         PR target/14577
2080         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
2081
2082 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
2083
2084         * combine.c (combine_simplify_rtx): Remove the "last"
2085         parameter and its documentation.  Adjust recursive calls.
2086         (simplify_logical): Always perform the only simplification
2087         controlled by "last", if the simplified expression is
2088         actually different.
2089         (try_combine): Do not pass the "last" parameter to
2090         combine_simplify_rtx.
2091
2092 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
2093
2094         PR target/14599
2095         * config/mips/mips.md (UNSPEC_GP): New constant.
2096         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
2097         an UNSPEC instead of (reg $gp).
2098         (mips16_gp_pseudo_reg): Change accordingly.
2099         (print_operand): Print $gp directly when handling CONST_GP_P.
2100
2101 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
2102
2103         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
2104         * longlong.h: Make code 68060 clean when compiling for m68060.
2105
2106 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
2107
2108         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
2109         * doc/md.texi: Clarify description of "i" constraint.
2110
2111 2004-03-15  James E Wilson  <wilson@specifixinc.com>
2112
2113         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
2114         Split store into store, fpstore, fpidxstore.  Fix all uses.
2115         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
2116         Likewise.
2117         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
2118         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
2119         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
2120         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
2121         ir_sr70_fstore): Likewise.
2122
2123 2004-03-15  Richard Henderson  <rth@redhat.com>
2124
2125         PR middle-end/14535
2126         * except.c (collect_one_action_chain): Record action for cleanup
2127         outer of exception spec.
2128
2129 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
2130
2131         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
2132         Fix the check for abort and only do the mmap if we can.
2133
2134 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
2135
2136         * config/sparc/sparc.h: Rework comments about the code model
2137         in 64-bit environment and the mode 'Pmode'.
2138         * doc/invoke.texi (SPARC options): Rework description of the
2139         different code models supported in 64-bit environment.
2140
2141 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
2142
2143         * defaults.h (REVERSIBLE_CC_MODE): Define.
2144         * jump.c (reversed_comparison_code_parts): Don't check if
2145         REVERSIBLE_CC_MODE is defined.
2146
2147 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
2148
2149         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
2150         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
2151         hosthooks.h, params.h, ra-colorize.c, web.c,
2152         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
2153         config/avr/avr-protos.h, config/avr/avr.md,
2154         config/fr30/fr30-protos.h, config/fr30/fr30.md,
2155         config/h8300/fixunssfsi.c, config/i386/darwin.h,
2156         config/i386/freebsd.h, config/i386/freebsd64.h,
2157         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
2158         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
2159         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
2160         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
2161         config/pa/pa64-regs.h, config/rs6000/aix41.h,
2162         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
2163         config/sparc/aout.h, config/sparc/freebsd.h,
2164         config/sparc/litecoff.h, config/vax/vax-protos.h,
2165         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
2166         copyright.
2167
2168 2004-03-15  Paul Brook  <paul@codesourcery.com>
2169
2170         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
2171
2172 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2173
2174         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
2175         (pp_c_cv_qualifier): Document.
2176         (pp_c_space_for_pointer_operator): Likewise.
2177         (pp_c_integer_constant): Likewise.
2178         (pp_c_identifier): Likewise.
2179         (pp_c_init_declarator): Don't print function body.
2180
2181 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
2182
2183         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
2184         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
2185         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
2186         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
2187         wording and grammar.
2188
2189 2004-03-14  Roger Sayle  <roger@eyesopen.com>
2190
2191         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
2192         with lang_hooks.foo ().
2193         * builtins.c (expand_builtin_va_arg): Likewise.
2194         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
2195         c_common_type_for_mode, c_common_nodes_and_builtins,
2196         handle_mode_attribute, handle_vector_size_attribute): Likewise.
2197         * c-convert.c (convert): Likewise.
2198         * c-format.c (check_format_types): Likewise.
2199         * c-objc-common.c (c_tree_printer): Likewise.
2200         * c-typeck.c (build_unary_op, build_conditional_expr,
2201         build_binary_op): Likewise.
2202         * calls.c (try_to_integrate, expand_call,
2203         emit_library_call_value_1): Likewise.
2204         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
2205         Likewise.
2206         * cgraphunit.c (record_call_1, cgraph_analyze_function,
2207         cgraph_expand_function): Likewise.
2208         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
2209         * coverage.c (build_fn_info_type, build_ctr_info_type,
2210         build_gcov_info, create_coverage): Likewise.
2211         * dbxout.c (dbxout_init): Likewise.
2212         * diagnostic.c (diagnostic_report_current_function): Likewise.
2213         * dojump.c (do_jump): Likewise.
2214         * dwarf2out.c (dwarf2_name): Likewise.
2215         * except.c (init_eh): Likewise.
2216         * explow.c (expr_size, int_expr_size): Likewise.
2217         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
2218         Likewise.
2219         * expr.c (store_expr, store_constructor, safe_from_p,
2220         expand_expr_real, do_store_flag, try_casesi): Likewise.
2221         * function.c (push_function_context_to, pop_function_context_from,
2222         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
2223         put_var_into_stack, allocate_struct_function, current_function_name):
2224         Likewise.
2225         * integrate.c (copy_decl_for_inlining, expand_inline_function):
2226         Likewise.
2227         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
2228         lhd_print_error_function): Likewise.
2229         * opts.c (handle_option, decode_options): Likewise.
2230         * passes.c (open_dump_file): Likewise.
2231         * print-tree.c (print_node): Likewise.
2232         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
2233         expand_decl_cleanup, emit_case_nodes): Likewise.
2234         * stor-layout.c (variable_size): Likewise.
2235         * toplev.c (announce_function, wrapup_global_declarations,
2236         check_global_declarations, compile_file, default_tree_printer,
2237         process_options, lang_dependent_init, finalize): Likewise.
2238         * tree-dump.c (dequeue_and_dump): Likewise.
2239         * tree-inline.c (remap_decl, remap_block, copy_body_r,
2240         initialize_inlined_parameters, declare_return_variable,
2241         inlinable_function_p, expand_call_inline, optimize_inline_calls,
2242         walk_tree, copy_tree_r): Likewise.
2243         * tree-optimize.c (tree_rest_of_compilation): Likewise.
2244         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
2245         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
2246         variably_modified_type_p, dump_tree_statistics): Likewise.
2247         * varasm.c (assemble_variable, compare_constant, copy_constant,
2248         force_const_mem, compute_reloc_for_constant, output_constant,
2249         output_addressed_constants, initializer_constant_valid_p): Likewise.
2250
2251 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
2252
2253         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
2254
2255 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
2256
2257         * doc/install.texi: Reflect autoconf and automake version for
2258         libffi. Update autoconf version to 2.59.
2259
2260 2004-03-13  Roger Sayle  <roger@eyesopen.com>
2261
2262         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
2263         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
2264         make_range, build_range_check, fold_range_test, unextend,
2265         constant_boolean_node, fold_binary_op_with_conditional_arg,
2266         fold_truthop, fold_mathfn_compare, fold_inf_compare,
2267         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
2268         with lang_hooks.foo ().
2269
2270 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
2271
2272         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
2273
2274 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
2275
2276         * doc/install.texi: Note status of -fnew-ra.
2277
2278 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
2279
2280         PR middle-end/14470
2281         * expr.c (store_expr): Call emit_queue before generating the move
2282         from the temporary to the original target.  Protect the temporary
2283         from emit_queue.
2284
2285 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
2286
2287         PR target/14533
2288         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
2289         other than UNSPEC_GOTOFF.
2290
2291 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
2292
2293         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
2294         to arm_legitimate_index_p.  Update all callers with SET as default
2295         value.
2296         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
2297         range if OUTER is a sign-extend operation on QImode.  Correctly
2298         reject shift operations on sign-extended QImode addresses.
2299         (bad_signed_byte_operand): Delete.
2300         (arm_extendqisi_mem_op): New function.
2301         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
2302         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
2303         constraints.
2304         (CONSTRAINT_LEN): New.
2305         (EXTRA_CONSTRAINT): Delete.  Replace with...
2306         (EXTRA_CONSTRAINT_STR): ... this.
2307         (PREDICATE_CODES): Remove bad_signed_byte_operand.
2308         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
2309         is now always default.
2310         (define_splits for bad sign-extend loads): Delete.
2311         (arm_extendqisi, arm_extendqisi_v5): Likewise.
2312         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
2313         Rework 'U' constraint to 'Uv'.
2314         * arm-protos.h: Remove bad_signed_byte_operand.  Add
2315         arm_extendqisi_mem_op.
2316         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
2317         Add Uq constraint.
2318
2319 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
2320
2321         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
2322         with targetm version.
2323
2324         PR target/14567
2325         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
2326         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
2327         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
2328         Update all users of RS6000_ARG_SIZE.
2329         (function_arg_advance): Count fregno using mode size.
2330         (function_arg): Handle long double split over regs and memory.
2331         (function_arg_partial_nregs): Likewise.
2332         (rs6000_va_arg): Repackage complex args.
2333
2334 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
2335
2336         PR target/14047
2337         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
2338         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
2339         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
2340
2341 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
2342
2343         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
2344         prototype.
2345         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
2346         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
2347
2348 2003-03-12  Andrew Pinski  <apinski@apple.com>
2349
2350         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
2351         Use ret instead of result. Use addr instead of base.
2352
2353 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
2354
2355         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
2356         fixes required by libstdc++ and update installation instructions
2357         for libstdc++.a.
2358
2359 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
2360
2361         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
2362         leading '@' on fastcall symbols before stripping suffix.
2363
2364 2004-03-12  Roger Sayle  <roger@eyesopen.com>
2365
2366         * combine.c (unmentioned_reg_p): New function to check whether an
2367         expression is a "specialization" of another, i.e. that there are
2368         no registers or memory references mentioned in the first that don't
2369         appear in the second.
2370         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
2371         (combine_instructions): Also try combining instructions using the
2372         REG_EQUAL note from a preceding log-linked instruction.
2373
2374 2004-03-12  Roger Sayle  <roger@eyesopen.com>
2375
2376         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
2377
2378 2004-03-12  Matt Austern  <austern@apple.com>
2379
2380         * target.h (struct gcc_target): New target hook, unwind_label.
2381         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
2382         * output.h (default_emit_unwind_label): New function.
2383         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
2384         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
2385         (TARGET_SUPPORTS_HIDDEN): New target macro.
2386         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
2387         that corresponds to this FDE.
2388         (FRAME_BEGIN_LABEL): Allow target to override default label.
2389         (output_call_frame_info): If FDEs are linknonce, then use extra
2390         indirection for FDE encoding, output a label for each FDE, and
2391         output an empty label for each function without an FDE.
2392         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
2393         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
2394         decls with DECL_ONE_ONLY set, if that macro is defined.
2395         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
2396         for a SUPPORTS_ONE_ONLY target.
2397         * config/darwin-protos.h (darwin_unique_section): Declare.
2398         (darwin_asm_named_section): Likewise.
2399         (darwin_section_type_flags): Likewise.
2400         (darwin_non_lazy_pcrel): Likewise.
2401         (darwin_emit_unwind_label): Likewise.
2402         (darwin_make_decl_one_only): Likewise.
2403         * config/darwin.c (machopic_finish): Get rid of tweak that
2404         eliminate stubs for symbols that are defined.
2405         (darwin_encode_section_info): Don't treat weak functions as defined.
2406         (darwin_make_decl_one_only): Define.
2407         (darwin_asm_named_section): Likewise.
2408         (darwin_section_type_flags): Likewise.
2409         (darwin_unique_section): Likewise.
2410         (darwin_emit_unwind_label): Likewise.
2411         (darwin_non_lazy_pcrel): Likewise.
2412         (darwin_asm_output_dwarf_delta): Difference between two labels is
2413         local only if both labels are local.
2414         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
2415         (ASM_MAKE_LABEL_LINKONCE): Likewise.
2416         (TARGET_SUPPORTS_HIDDEN): Likewise.
2417         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
2418         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
2419         (FRAME_BEGIN_LABEL): Likewise.
2420         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
2421         (ASM_DECLARE_FUNCTION_NAME): Likewise.
2422         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
2423         (TARGET_ASM_UNIQUE_SECTION): Define.
2424         (EH_FRAME_SECTION_NAME): Define.
2425         (EH_FRAME_SECTION_ATTR): Likewise.
2426         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
2427         (TARGET_ASM_NAMED_SECTION): Likewise.
2428         (TARGET_SECTION_TYPE_FLAGS): Likewise.
2429         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
2430         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
2431         TARGET_ASM_EMIT_UNWIND_LABEL.
2432
2433 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2434
2435         * builtins.c (expand_builtin_mathfn): Add pow10* to the
2436         existing exp10* case.
2437         (expand_builtin): Likewise.
2438
2439 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
2440
2441         * doc/tm.texi (registers) <Values in Registers>: Add
2442         entry for REGMODE_NATURAL_SIZE.
2443
2444 2004-03-12  Richard Henderson  <rth@redhat.com>
2445
2446         PR target/14547
2447         * target.h (struct gcc_target): Move calls substructure before
2448         booleans.  Add split_complex_arg.
2449         * function.c (assign_parms, split_complex_args): Use it.
2450         * calls.c (expand_call): Likewise.
2451         (split_complex_values): Likewise.  Check for splittable types
2452         before allocating memory.
2453         (split_complex_types): Likewise.
2454         * system.h (SPLIT_COMPLEX_ARGS): Poison.
2455         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
2456         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
2457         * config/alpha/alpha.c (alpha_split_complex_arg): New.
2458         (TARGET_SPLIT_COMPLEX_ARG): New.
2459         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
2460         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
2461         (rs6000_override_options): Zap it for non-AIX.
2462         (rs6000_function_value): Use targetm.calls.split_complex_arg.
2463         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
2464         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
2465         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
2466         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
2467         SPLIT_COMPLEX_ARGS entry.
2468
2469 2004-03-11  Richard Henderson  <rth@redhat.com>
2470
2471         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
2472         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
2473         (alpha_emit_xfloating_arith): Update to match.
2474         (alpha_emit_xfloating_compare): Likewise.
2475         (alpha_emit_xfloating_cvt): Likewise.
2476         (alpha_emit_xfloating_libcall): Take already built symbol,
2477         mark call const.
2478         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
2479         op1 in a register.
2480
2481 2004-03-11  Richard Henderson  <rth@redhat.com>
2482
2483         PR target/14539
2484         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
2485
2486         * simplify-rtx.c (simplify_relational_operation): Fix typo.
2487
2488 2004-03-11  Richard Henderson  <rth@redhat.com>
2489
2490         PR middle-end/14477
2491         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
2492
2493 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
2494
2495         PR target/14262
2496         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
2497         defined, pass small BLKmode values in registers in the low-order part.
2498
2499 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
2500
2501         * combine.c (if_then_else_cond): Check for NULL return value of
2502         simplify_gen_subreg.
2503
2504 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
2505
2506         PR target/14496
2507         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
2508         TARGET_SINGLE_FLOAT.
2509
2510 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
2511
2512         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
2513         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
2514         * config/ia64/ia64.c (ia64_init_libfuncs): New.
2515         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
2516
2517 2004-03-11  Roger Sayle  <roger@eyesopen.com>
2518
2519         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
2520         -((int)X>>C) where C is an integer constant one bit less than the
2521         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
2522         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
2523
2524         * simplify-rtx.c (simplify_unary_operation): Also implement the
2525         above transformations at the RTL level.
2526
2527 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
2528
2529         * real.c (encode_ibm_extended): Do round low word.
2530
2531 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
2532
2533         * config/arm/arm.md (is_xscale): Comment this attribute and move
2534         it a bit further up in the file, closer to related attributes.
2535
2536 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
2537
2538         * config/host-solaris.c (sol_gt_pch_use_address): Add
2539         missing terminating marker to comment.
2540
2541 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
2542
2543         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
2544         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
2545         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
2546         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
2547         move_operand as source predicate in all cases.
2548         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
2549         Test reg_or_0_operand.  Use move_operand as source predicate.
2550         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
2551         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
2552         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
2553         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
2554         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
2555         Use move_operand as source predicate.  Remove 'K' constraint.
2556         (*movqi_internal): Likewise movqi_internal.
2557         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
2558         reg_or_0_operand.  Use move_operand as source predicate.
2559         (*movsf_softfloat): Likewise movsf_internal2.
2560         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
2561         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
2562         (*movdf_softfloat): Likewise movdf_internal2.
2563         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
2564         for DImode if !TARGET_64BIT.
2565         (mips_legitimize_move): Simplify accordingly.
2566
2567 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
2568
2569         PR/14362
2570         * var-tracking.c (struct variable_def): Added field refcount.
2571         (variable_htab_free): Decrease the refcount and delete variable
2572         only if there are no more references.
2573         (unshare_variable): New function.
2574         (vars_copy_1): Increase refcount instead of copying the variable.
2575         (variable_union): Share the variables where possible, unshare
2576         the variables if needed.
2577         (variable_different_p): Return false if var1 and var2 are
2578         the same structure.
2579         (variable_was_changed): Init the refcount of new variable.
2580         (set_frame_base_location): Unshare variable if needed.
2581         (set_variable_part): Init the refcount of new variable.
2582         Unshare the variables if needed.
2583         (delete_variable_part): Unshare the variables if needed.
2584         (emit_notes_for_differences_1): Init the refcount of new variable.
2585         (vt_add_function_parameters): Do not add function parameters to
2586         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
2587         (vt_initialize): Do not add frame_base_decl to IN set of
2588         ENTRY_BLOCK_PTR because it is unused anyway.
2589
2590 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
2591
2592         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
2593         (vars_copy): Likewise.
2594         (variable_union): Likewise.
2595         (set_variable_part): Likewise.
2596         (delete_variable_part): Likewise.
2597
2598 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
2599
2600         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
2601         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
2602         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
2603         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
2604         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
2605         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
2606         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
2607         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
2608         config/stormy16/stormy16.c: Fix comment typos and formatting.
2609
2610 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
2611
2612         * configure: Regenerate, since I forgot to while committing Paolo's
2613         changes.
2614
2615 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
2616
2617         PR ada/14131
2618         Move language detection to the top level.
2619         * configure.ac: Remove code to detect languages,
2620         it now lives exclusively in the top level.
2621         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
2622         top level, renamed to ACX_PROG_GNAT.
2623
2624 2004-03-10  Richard Henderson  <rth@redhat.com>
2625
2626         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
2627         extra arguments.
2628         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
2629         and host_xmake_file fragments.
2630         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
2631         (gt_pch_restore): Similarly for gt_pch_use_address.
2632         (default_gt_pch_get_address): New.
2633         (mmap_gt_pch_get_address): Split out of gt_pch_save.
2634         (default_gt_pch_use_address): Split out of gt_pch_restore.
2635         (mmap_gt_pch_use_address): Likewise.
2636         * hooks.c (hook_voidp_size_t_null): Remove.
2637         (hook_bool_voidp_size_t_false): Remove.
2638         * hooks.h: Likewise.
2639         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
2640         default_ or mmap_ definitions.
2641         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
2642         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
2643         and gt_pch_use_address.
2644         * config/host-linux.c, config/host-solaris.c: New files.
2645         * config/x-linux, config/x-solaris: New files.
2646         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
2647         Update for changed definition.
2648         (darwin_rs6000_gt_pch_use_address): Likewise.
2649         * doc/hostconfig.texi: Update docs.
2650
2651 2004-03-10  Richard Henderson  <rth@redhat.com>
2652
2653         PR c/14517
2654         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
2655         except for pedantic c90 mode.
2656
2657 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
2658
2659         * configure.ac: Bump AC_PREREQ to 2.59.
2660         * configure: Regenerate.
2661
2662 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
2663
2664         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
2665         (exp10_optab, exp2_optab): Define corresponding macros.
2666         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
2667         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
2668         using exp10?f2 and exp2?f2 patterns.
2669         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
2670         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
2671         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
2672         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
2673
2674         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
2675         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
2676         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
2677
2678 2004-03-10  Anthony Green  <green@redhat.com>
2679
2680         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
2681
2682 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
2683
2684         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
2685         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
2686         __LONGDOUBLE128.
2687         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
2688         TARGET_OS_AIX_CPP_BUILTINS.
2689         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
2690         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
2691         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
2692         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
2693         previous change.
2694
2695 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2696
2697         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
2698
2699 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
2700
2701         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
2702         __LONGDOUBLE128 on AIX.
2703
2704 2004-03-10  Andrew Haley  <aph@redhat.com>
2705
2706         PR optimization/14381
2707         * function.c (expand_function_end): Emit a blockage insn before
2708         the epilogue when -fnon-call-exceptions is used.
2709
2710         * except.c (expand_start_all_catch): Make comment more accurate.
2711
2712 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
2713
2714         PR target/14480
2715         * config/rs6000/t-rtems: Add missing file on branch.
2716
2717 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
2718
2719         * dbxout.c (dbxout_symbol_location): Do not output references
2720         to optimized-out constant pool symbols.
2721
2722 2004-03-10  Andreas Schwab  <schwab@suse.de>
2723
2724         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
2725         twon34_r.
2726
2727 2004-03-09  James E Wilson  <wilson@specifixinc.com>
2728
2729         * alias.c (alias_sets_might_conflict_p): New.
2730         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
2731         * common.opt (Wstrict-aliasing=): New.
2732         * flags.h (warn_strict_aliasing): Change type to int.
2733         * opts.c (warn_strict_aliasing): Change type to int.
2734         (common_handle_option): Handle OPT_Wstrict_aliasing_.
2735         * tree.h (alias_sets_might_conflict_p): Declare it.
2736         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
2737
2738 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
2739
2740         PR bootstrap/12371
2741         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
2742         (CALL_USED_REGISTERS): Likewise.
2743         (REG_CLASS_CONTENTS): Likewise.
2744         (REG_ALLOC_ORDER): New.
2745         (REGNO_REG_CLASS): Use regno_reg_class.
2746         * config/m68k/m68k.c: Add regno_reg_class array.
2747
2748 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
2749
2750         * config/ia64/ia64.md (divsi3): Fix algorithm.
2751           (udivsi3): Ditto.
2752           (setf_exp_xf): Remove '*' from name.
2753         * testsuite/gcc.dg/20040309-1.c: New test.
2754
2755 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
2756
2757         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
2758         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
2759         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
2760         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
2761         (sparc_aout_select_rtx_section): Don't check
2762         SUNOS4_SHARED_LIBRARIES.
2763         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
2764
2765 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
2766
2767         PR other/14474
2768         * doc/md.texi (Pattern Ordering, Dependent Patterns)
2769         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
2770         INTERNALS".
2771
2772 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
2773
2774         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
2775         (LIBGCC_SPEC): Update to match.
2776
2777 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
2778
2779         * c-decl.c (last_function_parms, last_function_parm_tags)
2780         (last_function_parm_others, current_function_parms)
2781         (current_function_parm_tags, current_function_parm_others):
2782         Delete.
2783         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
2784         New macros.
2785         (grokdeclarator): For function definitions, save the arg-info
2786         block from the declarator in DECL_ARGUMENTS.
2787         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
2788         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
2789         contains only PARM_DECLs.  Improve diagnostics.
2790         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
2791         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
2792         (store_parm_decls_newstyle): Take the function to operate on,
2793         and an arg-info block, as arguments; don't get anything from
2794         current_function_* globals.
2795         (store_parm_decls_oldstyle): Likewise.
2796         (store_parm_decls): Pass fndecl and its arg-info block down to
2797         store_parm_decls_newstyle/oldstyle.  Send functions with empty
2798         argument lists through store_parm_decls_newstyle to reduce
2799         overhead.
2800         (pushdecl): Comment on the problems with the call to copy_node.
2801         Clear DECL_ARGUMENTS of the old node after copying it, if it
2802         is an arg-info block instead of a chain of decls.
2803         (start_function): Do not manipulate current_function_parm* or
2804         last_function_parm*.
2805
2806 2004-03-09  Roger Sayle  <roger@eyesopen.com>
2807             Andrew Pinski  <pinskia@physics.uc.edu>
2808
2809         * ifcvt.c (noce_try_sign_mask): New function to transform
2810         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
2811         (noce_process_if_block): Call noce_try_sign_mask.
2812
2813 2004-03-09  Andrew Pinski  <apinski@apple.com>
2814
2815         * c-typeck.c (tagged_types_tu_compatible_p):
2816         Fix typo.
2817
2818 2004-03-09  Roger Sayle  <roger@eyesopen.com>
2819
2820         * simplify-rtx.c (simplify_const_relational_operation): New function
2821         renamed from simplify_relational_operation.
2822         (simplify_relational_operation): Change prototype to accept an
2823         additional mode argument.  Call simplify_const_relational_operation.
2824         (simplify_gen_relational): Update simplify_relational_operation call.
2825         (simplify_ternary_operation): Update simplify_relational_operation
2826         subroutine call to use simplify_const_relational_operation instead.
2827
2828         * rtl.h (simplify_const_relational_operation): Prototype here.
2829         (simplify_relational_operation): Add addtional mode argument.
2830
2831         * combine.c (combine_simplify_rtx): Update calls to
2832         simplify_relational_operation.
2833         (simplify_set): Likewise.
2834         (gen_binary): Likewise.
2835         * cse.c (fold_rtx): Likewise.
2836         * dojump.c (compare_from_rtx): Likewise.
2837         (do_compare_rtx_and_jump): Likewise.
2838         * integrate.c (subst_constants): Likewise.
2839         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
2840
2841 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
2842
2843         * config/m32r/m32r.md: Remove all define_peephole's.
2844
2845 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
2846
2847         * config/rs6000/rs6000.md: Remove trailing whitespace.
2848
2849 2004-03-08  Eric Christopher  <echristo@redhat.com>
2850
2851         * Makefile.in (site.exp): Add libiconv variable definition.
2852
2853 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
2854
2855         * configure: Regenerate for config/accross.m4 correction.
2856
2857 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
2858
2859         PR target/14480
2860         * config/rs6000/t-rtems: Add missing file on branch.
2861
2862 2004-03-08  Roger Sayle  <roger@eyesopen.com>
2863
2864         PR middle-end/14289
2865         * c-typeck.c (c_mark_addressable): A register variable should
2866         be considered global if its not automatic, i.e. TREE_PUBLIC,
2867         TREE_STATIC or DECL_EXTERNAL.
2868         * function.c (put_var_into_stack): Call abort when placing a
2869         hard register into the stack, if x_parm_reg_stack_loc is NULL.
2870
2871 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
2872
2873         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
2874         ("*extendqisi2_short_displ"): Likewise.
2875
2876 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
2877
2878         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
2879         (comp_operator): Likewise.
2880         * config/pdp11/pdp11-protos.h: Remove corresponding
2881         prototypes.
2882
2883 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
2884
2885         * expr.c (highest_pow2_factor_for_type): Rename into
2886         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
2887         TYPE_ALIGN when the target is a COMPONENT_REF.
2888         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
2889
2890 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
2891
2892         * config/rs6000/rs6000.c: Formatting fix.
2893         (legitimate_offset_address_p): Correct offset range check.
2894
2895         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
2896         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
2897         and MASK_STRING.
2898
2899 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
2900
2901         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
2902         for little endian.
2903         ("ashrdi3_no_power"): Disable for little endian.
2904         (ashrdi3): Same.
2905
2906 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2907
2908         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
2909         builtins.
2910
2911 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
2912
2913         PR target/14471
2914         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
2915         case, checking for -no-mul-bug-abort option.
2916         * configure, config.in: Regenerate.
2917         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
2918         and -mno-mul-bug-workaround.
2919         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
2920         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
2921         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
2922         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
2923         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
2924         sure mulu.d is not last on cache-line.
2925         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
2926         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
2927         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
2928         (TARGET_SWITCHES): New options -mmul-bug-workaround and
2929         -mno-mul-bug-workaround.
2930         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
2931         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
2932         * config/cris/cris.c (cris_operand_extend_operator): Clarify
2933         relation to MULT in head comment.
2934         (cris_op_str): Abort for MULT.
2935         (cris_print_operand) <case '!'>: New case.
2936
2937 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
2938
2939         PR debug/11983
2940         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
2941         dw_val_class_vec.  Replace use throughout file.
2942         (dw_float_const): Delete.
2943         (dw_vec_const): New.
2944         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
2945         throughout file.
2946         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
2947         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
2948         (size_of_die): Adjust dw_val_class_vec sizing.
2949         (output_die): Output dw_val_class_vec.
2950         (insert_int, extract_int, insert_float): New functions.
2951         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
2952         Handle CONST_VECTOR.
2953         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
2954
2955 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
2956
2957         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
2958         AltiVec abi cannot co-exist.
2959
2960         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
2961
2962 2004-03-07  Jan Hubicka  <jh@suse.cz>
2963
2964         * except.c (emit_to_new_bb_before):  Break fallthru edges.
2965
2966 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
2967
2968         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
2969         ("*lshrsi3"): Also accept an immediate for 68HC12.
2970         ("*ashrsi3_const"): Likewise.
2971         ("*ashrsi3"): Likewise.
2972         ("*ashlsi3_const"): Likewise.
2973         ("*ashlsi3"): Likewise.
2974         ("cmphi_1_hc12"): Compare two hard register by pushing them and
2975         comparing with a pop; don't use a split for that.
2976         ("cmphi split"): Disable compare split for 68HC12.
2977
2978         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
2979         the status operands if they have side effects.
2980
2981 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
2982
2983         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
2984         definition.
2985         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
2986         config/h8300/h8300.h, config/ia64/ia64.h,
2987         config/mcore/mcore.h, config/mmix/mmix.h,
2988         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
2989         config/stormy16/stormy16.h, config/v850/v850.h,
2990         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
2991         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
2992         definition.
2993
2994 2004-03-07  Roger Sayle  <roger@eyesopen.com>
2995
2996         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
2997         <XOR_EXPR>: Fold x ^ x as zero.
2998         <AND_EXPR>: Fold x & x as x.
2999
3000 2004-03-07  Roger Sayle  <roger@eyesopen.com>
3001
3002         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
3003         "foo++ == const" into "++foo == const+incr".
3004
3005 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
3006
3007         * config/mips/mips.c (mips_in_small_data_p): Return false if
3008         TARGET_ABICALLS.
3009
3010 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
3011
3012         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
3013         the stack register.
3014         (expand_prologue): Don't make an interrupt or a trap handler a far
3015         symbol.
3016         (m68hc11_initial_elimination_offset): Likewise.
3017
3018 2004-03-06  Richard Henderson  <rth@redhat.com>
3019
3020         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
3021
3022 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
3023
3024         * config/ns32k/ns32k-protos.h: Add a prototype for
3025         ns32k_notice_update_cc.
3026         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
3027         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
3028         ns32k_notice_update_cc.
3029
3030 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
3031
3032         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
3033         "*load_multiple_si"): Allow only if reload_completed.
3034         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
3035         Likewise.
3036
3037 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
3038
3039         * config/vax/vax-protos.h: Add a prototype for
3040         vax_notice_update_cc.
3041         * config/vax/vax.c (vax_notice_update_cc): New.
3042         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
3043         vax_notice_update_cc.
3044
3045 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
3046
3047         * collect2.c (main): Only export initfunc and finifunc if
3048         LD_INIT_SWITCH not defined.
3049         (scan_prog_file): Only export constructors and destructors if
3050         LD_INIT_SWITCH not defined.  Only export symbols not found in
3051         shared objects.
3052
3053 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3054
3055         * pa.md (icacheflush): Reorder operands to make match_scratch operand
3056         last.
3057         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
3058         from calls to gen_icacheflush.
3059
3060 2004-03-06  Richard Henderson  <rth@redhat.com>
3061
3062         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
3063         (TARGET_LONG_DOUBLE_128): New.
3064         (TARGET_SWITCHES): Add long-double-{128,64}.
3065         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
3066         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
3067         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
3068         (WIDEST_HARDWARE_FP_SIZE): New.
3069         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
3070         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
3071         if TARGET_VAX_FLOAT.
3072         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
3073         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
3074
3075 2004-03-06  Richard Henderson  <rth@redhat.com>
3076
3077         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
3078         botched rtx class conversion.
3079
3080 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3081
3082         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
3083         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
3084
3085         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
3086         macros.
3087         * fold-const.c (fold_mathfn_compare, fold): Likewise.
3088
3089 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
3090
3091         PR target/14343
3092         * config/i386/i386.md (movv2di_internal): Conditionalize on
3093         TARGET_SSE, not TARGET_SSE2.
3094
3095 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
3096
3097         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
3098         duplicated line.
3099
3100 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3101
3102         * builtins.c: Consistently use logN not log* in comments.
3103
3104 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
3105
3106         * rtl.h (mem_expr_equal_p): Function prototype added.
3107         * cfgcleanup.c (merge_memattrs): New function.
3108         (flow_find_cross_jump): Call merge_memattrs for matching insns.
3109         * emit-rtl.c (mem_expr_equal_p): New function.
3110
3111 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
3112
3113         * objc/objc-act.c (synth_module_prologue): Const-qualify
3114         objc_selector type if using the GNU runtime; fix generated
3115         signatures for objc_msg_lookup and objc_msg_lookup_super
3116         to match what GNU ObjC headers provide; reformat and clean up.
3117         (synth_self_and_ucmd_args): Use previously constructed (and
3118         hence possibly const-qualified) objc_selector type.
3119
3120 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
3121
3122         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
3123
3124 2004-03-05  Jason Merrill  <jason@redhat.com>
3125
3126         * tree.h (TYPE_HASH): Use TYPE_UID.
3127         (TREE_HASH): New macro with old definition of TYPE_HASH.
3128         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
3129         (build_array_type, build_function_type): Likewise.
3130         (build_method_type_directly): Likewise.
3131         (build_offset_type, build_complex_type): Likewise.
3132         (type_hash_list, attribute_hash_list): Likewise. Now static.
3133         * except.c: s/TYPE_HASH/TREE_HASH/.
3134
3135 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
3136
3137         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
3138         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
3139         __va_ndx by 2 words when referencing an argument on the stack.
3140         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
3141         words when an arg on the stack is first seen.
3142
3143 2004-03-05  Paul Brook  <paul@codesourcery.com>
3144
3145         * arm.h (ARM_FLAG_VFP): Remove.
3146         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
3147         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
3148
3149 2004-03-05  Paul Brook  <paul@codesourcery.com>
3150
3151         * function.c (assign_parms): Include pretend alignment offset.
3152
3153 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3154
3155         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
3156         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
3157
3158 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
3159
3160         * configure.ac: When passing --enable-languages to subdir
3161         configure when host != build, make sure we don't pass an empty
3162         value.
3163         * configure: Regenerate.
3164
3165 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
3166
3167         PR 13577
3168         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
3169         options.
3170
3171 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
3172
3173         * simplify-rtx.c (simplify_relational_operation): If
3174         flag_wrapv is set, do not move terms between the two
3175         side of a relational operator.
3176
3177 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
3178
3179         * rtlanal.c: Include target.h and output.h
3180         (rtx_cost, address_cost, default_address_cost): Move from...
3181         * cse.c (rtx_cost, address_cost, default_address_cost):
3182         ... this file.
3183         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
3184         * Makefile.in: Adjust dependencies.
3185
3186 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
3187
3188         * cse.c (cse_end_of_basic_block): Make static.
3189         * local-alloc.c (function_invariant_p): Move to
3190         reload1.c.
3191         * loop.c (libcall_other_reg, record_excess_regs):
3192         Make static.
3193         * reload1.c (function_invariant_p): Moved here
3194         from local-alloc.c, made static.
3195         * rtl.h (cse_end_of_basic_block, function_invariant_p,
3196         libcall_other_reg, record_excess_regs): Remove
3197         declarations.
3198
3199 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
3200
3201         * config/m32r/m32r.c (signed_comparison_operator): Add a
3202         missing parenthesis.
3203
3204 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
3205
3206         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
3207         going to call mmap again.  Read the file into the right place.
3208         Give a fatal error if we have to relocate.
3209
3210 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
3211
3212         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
3213         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
3214
3215 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
3216
3217         PR other/14354
3218         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
3219         round the same.  When rounding, clear bits that would cause a
3220         second rounding in pack_d.
3221         (_fpmul_parts): Ditto.  Remove #if 0:d code.
3222
3223 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
3224
3225         PR c++/14425, c++/14426
3226         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
3227         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
3228         Change C++ definitions to accept a 'const int' argument;
3229         the prototypes already do.
3230         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
3231         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
3232         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
3233         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
3234         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
3235         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
3236         end in ..._int; change them to accept an int instead of a char
3237         as the last parameter.
3238
3239 2004-03-04  Phil Edwards  <phil@codesourcery.com>
3240
3241         * genmultilib:  Change '=' to '-' when translating option names
3242         to directory names.
3243
3244 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3245
3246         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
3247         stack slot for temp used for result of BLKmode but in integral mode.
3248
3249 2004-03-04  Jan Hubicka  <jh@suse.cz>
3250
3251         * reload.c (find_reloads): Reorganize if seqeunce to switch.
3252
3253         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
3254         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
3255
3256 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
3257
3258         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
3259         * testsuite/gcc.dg/20040303-1.c: New test.
3260
3261 2004-03-04  Steven Bosscher  <stevenb@suse.de>
3262
3263         * ppro.md: Rewrite as a DFA pipeline description.
3264         * i386.md: Remove all uses of the ppro_uops attribute.
3265         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
3266         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
3267         ix86_sched_reorder, ix86_variable_issue,
3268         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
3269         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
3270         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
3271         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
3272         * athlon.md (athlon_ssecmp_load): Fix comment
3273
3274 2004-03-04  Stuart Hastings  <stuart@apple.com>
3275
3276         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
3277
3278 2004-03-04  Stuart Hastings  <stuart@apple.com>
3279
3280         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
3281         686, tell Darwin assembler to allow prefetch insns, non-empty def
3282         of SUBTARGET_OPTION_TRANSLATE_TABLE.
3283
3284 2004-03-04  DJ Delorie  <dj@redhat.com>
3285
3286         PR optimization/14282
3287         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
3288         between a call and the assignment of its return value.
3289
3290 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
3291
3292         * config/h8300/h8300.c: Put a comment for every function.
3293
3294 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
3295
3296         * config/h8300/h8300.md: Add comments about peephole2's.
3297
3298 2004-03-04  Steven Bosscher  <stevenb@suse.de>
3299
3300         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
3301
3302 2004-03-04  Jan Hubicka  <jh@suse.cz>
3303
3304         * cfgcleanup.c (thread_jump): Update call of cselib_init.
3305         * cselib.c (cselib_record_memory): New static variable.
3306         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
3307         Give up on memories when asked for.
3308         (cselib_init): Accept new argument.
3309         * cselib.h (cselib_init): Update prototype.
3310         * gcse.c (local_cprop_pass): Update call of cselib_init.
3311         * loop.c (load_mems): Update call of cselib_init.
3312         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
3313         * sched-deps.c (sched_analyze): Update call of cselib_init.
3314
3315 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
3316             GP <gp@qnx.com>
3317
3318         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
3319         when compiling PIC.
3320
3321 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
3322
3323         PR/14362
3324         * var-tracking.c (track_expr_p): Do not track variables which
3325         should be ignored for debugging purposes.
3326
3327 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
3328
3329         * real.c (encode_ibm_extended): Don't bother rounding low double.
3330         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
3331         when fmt->pnan < fmt->p.
3332
3333 2004-03-04  Eric Christopher  <echristo@redhat.com>
3334
3335         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
3336         only range of valid arg registers and fixed_regs.
3337
3338 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
3339
3340         PR target/14406
3341         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
3342         (abstf2, abstf2_internal): New define_expand.
3343
3344 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
3345
3346         PR optimization/14235
3347         * expr.c (convert_move): Copy the source to a new pseudo
3348         when converting from a sub-word source to a larger-than-word
3349         register which conflicts with the source.
3350
3351 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
3352
3353         PR 13728
3354         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
3355         parameters with the same name, unless one is a forward decl.
3356         Do not issue a redundant-redeclaration warning for forward
3357         decls of parameters.
3358
3359 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
3360
3361         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
3362         configuration.
3363
3364 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
3365
3366         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
3367
3368 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
3369
3370         * target-def.h (TARGET_OPTF): Delete.
3371         * c-opts.c (TARGET_OPTF): Define.
3372
3373 2004-03-04  Jan Hubicka  <jh@suse.cz>
3374
3375         * cselib.c (cselib_finish): Fix another miss-application of my previous
3376         patch.
3377
3378 2004-03-03  Mike Stump  <mrs@apple.com>
3379
3380         Add framework support for darwin.
3381
3382         * c-incpath.c: Include target.h and machmode.h.
3383         (add_path): Use a consistent style for cpp_dir.  Initialize
3384         p->construct to 0.
3385         (add_cpp_dir_path): New.
3386         (register_include_chains): Add use of extra_includes callback.
3387         (hook_void_int): Add.
3388         (target_c_incpath): Add.
3389         * c-incpath.h (add_cpp_dir_path): New.
3390         (target_c_incpath_s): Add.
3391         (target_c_incpath): Add.
3392         (C_INCPATH_INIT): Add.
3393         * c-opts.c (c_common_missing_argument,
3394         c_common_handle_option): Add -F argument processing.
3395         * c.opt: Add -F argument processing.
3396         * gcc.c (trad_capable_cpp): Add -F argument processing.
3397         * cppfiles.c (find_file_in_dir): Update to use construct
3398         callback.
3399         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
3400         cpp_get_prev): New.
3401         (_cpp_find_file): Use search_path_exhausted.
3402         (make_cpp_dir): Initialize construct to 0.
3403         * cpplib.h (missing_header_cb
3404         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
3405         (cpp_callbacks): Add missing_header
3406         (cpp_dir): Add construct.
3407         * target-def.h: (TARGET_OPTF): New.
3408         * hooks.c (hook_void_int, hook_void_charptr): Add.
3409         * hooks.h (hook_void_int, hook_void_charptr): Add.
3410         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
3411         $(MACHMODE_H) dependencies.
3412         * doc/invoke.texi (Darwin Options): Document -F.
3413         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
3414         (TARGET_OPTF): Add.
3415         * fix-header.c (target_c_incpath): Add.
3416
3417         * config/darwin-c.c: Add c-incpath.h include.
3418         (using_frameworks, find_subframework_file,
3419         find_subframework_header, add_system_framework_path,
3420         frameworks_in_use, num_frameworks, max_frameworks,
3421         add_framework, find_framework, struct framework_header,
3422         framework_header_dirs, framework_construct_pathname,
3423         find_subframework_file, add_system_framework_path,
3424         add_framework_path, framework_defaults,
3425         darwin_register_frameworks, find_subframework_header): Add.
3426         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
3427         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
3428         (CPP_SPEC): Add __APPLE_CC__ support.
3429         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
3430
3431 2004-03-04  Jan Hubicka  <jh@suse.cz>
3432
3433         * cselib.c (cselib_finish): Fix miss-application of my previous
3434         patch.
3435
3436 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
3437
3438         * hooks.c (hook_tree_tree_identity): New.
3439         * hooks.h: Add a prototype for hook_tree_tree_identity.
3440         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
3441         instead of MD_ASM_CLOBBERS.
3442         * system.h (MD_ASM_CLOBBERS): Poison.
3443         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
3444         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
3445         * target.h (gcc_target): Add md_asm_clobbers.
3446         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
3447         (ix86_md_asm_clobbers): New.
3448         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
3449         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
3450         TARGET_MD_ASM_CLOBBERS.
3451
3452 2004-03-03  Stuart Hastings  <stuart@apple.com>
3453
3454         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
3455
3456 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
3457
3458         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
3459
3460         * config/sparc/sparc.h (ASM_FLOAT): Delete.
3461         (ASM_DOUBLE): Likewise.
3462         (ASM_LONGDOUBLE): Likewise.
3463         * config/sparc/pbd.h (ASM_INT_OP): Delete.
3464
3465 2003-03-03  Richard Henderson  <rth@redhat.com>
3466
3467         PR opt/13862
3468         * cselib.c (cselib_record_sets): Don't record multiple sets in
3469         asm insns.
3470
3471 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
3472
3473         * common.opt: Add description of the new -fgcse-after-reload flag.
3474
3475         * flags.h (flag_gcse_after_reload): Declaration of global variable.
3476
3477         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
3478         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
3479         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
3480         get_bb_avail_insn, hash_scan_set_after_reload,
3481         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
3482         gcse_after_reload, get_bb_avail_insn): New functions to implement
3483         gcse-after-reload.
3484         (gcse_after_reload_main): New function, the main entry point to
3485         gcse-after-reload.
3486
3487         * rtl.h (gcse_after_reload_main): Declaration of the new function.
3488
3489         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
3490
3491         * toplev.c (flag_gcse_after_reload): Initialization.
3492
3493         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
3494
3495         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
3496         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
3497         the gcse after reload optimization.
3498
3499         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
3500         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
3501         parameters.
3502
3503         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
3504
3505 2004-03-03  Nicolas Pitre <nico@cam.org>
3506
3507         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
3508         small negative values.
3509
3510 2004-03-03  Jan Hubicka  <jh@suse.cz>
3511
3512         * cselib.c (hash_table):  Remove GTY marker.
3513         (reg_values): Turn into array.
3514         (used_regs): Likewise.
3515         (n_used_regs): New static variable.
3516         (reg_values_old): Kill.
3517         (clear_table): Update uses of arrays.
3518         (cselib_lookup): Likewise.
3519         (cselib_record_set): Likewise.
3520         (cselib_init): Likewise.
3521         (cselib_finish): Likewise.
3522         (cselib_udpate_varray_sizes): Kill.
3523         * cselib.h (cselib_update_varray_sizes): Kill.
3524
3525 2004-03-03  Paul Brook  <paul@codesourcery.com>
3526
3527         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
3528
3529 2004-03-03  Jan Hubicka  <jh@suse.cz>
3530
3531         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
3532         Rename from ...; make statistics transparent.
3533         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
3534         (loc_descriptor): New structure.
3535         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
3536         add_statistics):
3537         New static function.
3538         (ggc_record_overhead, dump_statistics): New global function.
3539         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
3540         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
3541         from ...; accept locations
3542         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
3543         ggc_realloc, ggc_alloc_typed):  ... this one.
3544         from ...; accept locations
3545         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
3546         ggc_alloc_stat): Rename from ... ; pass locations
3547         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
3548         ... this one.
3549         (ggc_alloc_stat): Record overehead.
3550         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
3551         ggc_realloc, ggc_alloc_typed):  Turn to macros
3552         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
3553         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
3554         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
3555         * langhooks.h (lhd_make_node): Declare.
3556         (LANG_HOOKS_MAKE_TYPE): Default to new function,
3557         * langhooks.c (lhd_make_node): New.
3558         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
3559         locations.
3560         (rtx_alloc, swallow_copy_rtx): ... this one.
3561         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
3562         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
3563         * toplpev.c (finalize): Dump stats.
3564         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
3565         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
3566         Rename from ... ; pass locators.
3567         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
3568         build?,  build_decl): Declare.
3569         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
3570         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
3571         Declare.
3572         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
3573         build?,  build_decl): New macros.
3574         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
3575         * statistics.h: New file.
3576
3577 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
3578             Richard Sandiford  <rsandifo@redhat.com>
3579
3580         * config/mips/mips.h (MASK_FIX_SB1): Bump.
3581         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
3582         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
3583         * config/mips/mips.c (mips_output_division): Fill the branch delay
3584         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
3585         TARGET_FIX_R4400.
3586         (mips_output_division): Adjust accordingly.
3587         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
3588         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
3589
3590 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
3591
3592         * alias.c (rtx_equal_for_memref_p): Use predicates
3593         to test rtx classes and new rtx class codes, possibly
3594         splitting conditionals that tested against '<' and 'o'.
3595         * caller-save.c (save_call_clobbered_regs): Likewise.
3596         * combine.c (contains_muldiv, find_split_point, subst,
3597         combine_simplify_rtx, simplify_if_then_else,
3598         simplify_set, simplify_logical, expand_compound_operation,
3599         make_compound_operation, if_then_else_cond, known_cond,
3600         apply_distributive_law, cached_nonzero_bits,
3601         cached_num_sign_bit_copies, simplify_shift_const,
3602         gen_binary, simplify_comparison, update_table_tick,
3603         record_value_for_reg, get_lsat_value_validate): Likewise.
3604         * cse.c (mention_regs, find_best_addr, find_comparison_args,
3605         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
3606         Likewise.
3607         * emit-rtl.c (copy_insn_1): Likewise.
3608         * expr.c (force_operand): Likewise.
3609         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
3610         * flow.c (notice_stack_pointer_modification_1,
3611         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
3612         and_reg_cond, elim_reg_cond): Likewise.
3613         * function.c (update_epilogue_consts): Likewise.
3614         * genattrtab.c (attr_rtx_1): Likewise.
3615         * genopinit.c (gen_insn): Likewise.
3616         * integrate.c (subst_constants): Likewise.
3617         * jump.c (reversed_comparison_code_parts,
3618         reversed_comparison_code, delete_related_insns,
3619         rtx_renumbered_equal_p): Likewise.
3620         * local-alloc.c (block_alloc): Likewise.
3621         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
3622         canonicalize_condition): Likewise.
3623         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
3624         Likewise.
3625         * optabs.c (add_equal_node, expand_binop): Likewise.
3626         * predict.c (estimate_probability): Likewise.
3627         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
3628         * recog.c (validate_replace_rtx_1, comparison_operator,
3629         offsettable_address_p, constrain_operands): Likewise.
3630         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
3631         Likewise.
3632         * regclass.c (scan_one_insn): Likewise.
3633         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
3634         * regrename.c (kill_autoinc_value): Likewise.
3635         * reload.c (find_reusable_reload, find_reloads,
3636         reg_overlap_mentioned_for_reload_p): Likewise.
3637         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
3638         * rtl.c (copy_rtx): Likewise.
3639         * rtl.h (CONSTANT_P, INSN_P): Likewise.
3640         * rtlanal.c (commutative_operand_precedence): Likewise.
3641         * sched-deps.c (conditions_mutex_p): Likewise.
3642         * sched-rgn.c (is_cfg_nonregular): Likewise.
3643         * simplify-rtx.c (simplify_gen_binary,
3644         simplify_gen_relational, simplify_replace_rtx,
3645         simplify_unary_operation, simplify_binary_operation,
3646         simplify_ternary_operation, simplify_rtx): Likewise.
3647         * unroll.c (reg_dead_after_loop): Likewise.
3648         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
3649         print_operand): Likewise.
3650         * config/arc/arc.c (proper_comparison_operator): Likewise.
3651         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
3652         Likewise.
3653         * config/avr/avr.c (_reg_unused_after): Likewise.
3654         * config/frv/frv.c (frv_ifcvt_modify_tests,
3655         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
3656         * config/i386/i386.c (ix86_comparison_operator,
3657         ix86_carry_flag_operator, fcmov_comparison_operator,
3658         arith_or_logical_operator, print_operand,
3659         ix86_expand_binary_operator, ix86_binary_operator_ok):
3660         Likewise.
3661         * config/i386/i386.md: Likewise.
3662         * config/ia64/ia64.c (not_postinc_memory_operand,
3663         ia64_print_operand, update_set_flags, errata_emit_nops):
3664         Likewise.
3665         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
3666         CONSTRAINT_OK_FOR_S): Likewise.
3667         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
3668         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
3669         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
3670         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
3671         Likewise.
3672         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
3673         eqne_comparison_operator, signed_comparison_operator):
3674         Likewise.
3675         * config/mips/mips.c (cmp_op, symbolic_expression_p):
3676         Likewise.
3677         * config/mmix/mmix (mmix_foldable_comparison_operator,
3678         mmix_comparison_operator): Likewise.
3679         * config/pa/pa.c (hppa_legitimize_address): Likewise.
3680         * config/rs6000/rs6000.c (stmw_operation,
3681         branch_comparison_operator, trap_comparison_operator,
3682         ccr_bit): Likewise.
3683         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
3684         * config/s390/s390.c (s390_alc_comparison,
3685         s390_slb_comparison):L Likewise.
3686         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
3687         Likewise.
3688         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
3689         noov_compare_op, noov_compare64_op, v9_regcmp_op,
3690         emit_hard_tfmode_operation, reg_unused_after)
3691         * doc/md.texi, doc/rtl.texi: Likewise.
3692
3693         * ra-debug.c: Add 2004 to list of copyright years.
3694         * unroll.c: Likewise.
3695
3696         * combine.c (simplify_logical): Remove dummy test,
3697         (apply_distributive_law): Fix typo in comment.
3698         GET_CODE (x) == AND so x is a commutative binary op.
3699         * jump.c (delete_related_insns): simplify loop
3700         condition, move testing of RTX codes inside the loop.
3701         (rtx_renumbered_equal_p): do not use RTX_CODE.
3702         * rtl.c (rtx_class): Declare as enum rtx_class.
3703         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
3704         Move to RTX_COMM_COMPARE class.
3705         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
3706         Move to RTX_CONST_OBJ class.
3707         * rtl.h (enum rtx_class): New declaration,
3708         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
3709         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
3710         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
3711         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
3712         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
3713         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
3714         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
3715         OBJECT_P): New macros.
3716         * config/sparc/sparc.c (noov_compare_op): Remove register
3717         from parameter.
3718
3719 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
3720
3721         * target.h: Remove texi jargons in comments.
3722
3723 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
3724
3725         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
3726         threshold to 0x4f.
3727
3728         Revert:
3729         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
3730         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
3731         as well.
3732         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
3733         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
3734
3735 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
3736
3737         * doc/md.texi (cbranchmode4): New.
3738
3739 2004-03-02  Eric Christopher  <echristo@redhat.com>
3740
3741         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
3742         fix_trunc.
3743         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
3744         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
3745         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
3746         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
3747
3748 2004-03-02  Richard Henderson  <rth@redhat.com>
3749
3750         PR middle-end/11767
3751         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
3752         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
3753         before the compare, if flag_non_call_exceptions.
3754
3755 2004-03-02  Richard Henderson  <rth@redhat.com>
3756
3757         PR middle-end/14327
3758         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
3759         emitting the label, not after.
3760
3761 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
3762
3763         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
3764         (m68hc11_mov_addr_mode): Likewise.
3765         (m68hc11_override_options): Initialize them based on target.
3766         (register_indirect_p): Allow a MEM for indirect addressing modes and
3767         use flags to control what is allowed.
3768         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
3769         supported addressing modes.
3770         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
3771         (go_if_legitimate_address_internal): Likewise.
3772         (m68hc11_indirect_p): Likewise and check the mode.
3773         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
3774
3775 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
3776
3777         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
3778         (expand_builtin_setjmp_setup): Use
3779         targetm.builtin_setjmp_frame_value instead of
3780         BUILTIN_SETJMP_FRAME_VALUE.
3781         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
3782         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
3783         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
3784         * target.h (gcc_target): Add builtin_setjmp_frame_value.
3785         * targhooks.c (default_builtin_setjmp_frame_value): New.
3786         * targhooks.h: Add a prototype for
3787         default_builtin_setjmp_frame_value.
3788         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
3789         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
3790
3791 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
3792
3793         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
3794         sequences of moves.
3795         (add peepholes): New peepholes to optimize sequences adding small
3796         constants.
3797         (bset peepholes): New peepholes to transform an OR in a bset form
3798         (bclr peepholes): Likewise for bclr form.
3799         (cmp peepholes): New peepholes to avoid register copies when comparing.
3800
3801 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
3802
3803         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
3804         to separate push from moves.
3805         ("*pushdf_internal"): Likewise.
3806         ("*pushsf_internal"): Likewise.
3807         ("*pushsi_internal"): Likewise.
3808         ("movdi_internal"): Use define_insn_and_split; non push operand.
3809         ("movdf_internal"): Likewise.
3810         ("movsf_internal"): Likewise.
3811         ("movsi_internal"): Likewise.
3812         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
3813         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
3814         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
3815
3816 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
3817
3818         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
3819         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
3820         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
3821         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
3822         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
3823         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
3824         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
3825         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
3826         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
3827         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
3828         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
3829
3830 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
3831
3832         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
3833         (SOFT_XY_REGNUM): Define.
3834         (cmp split): Use the above instead of hard coded numbers.
3835         (8-bit op split): No need to check the mode; allow Q_REG.
3836         (ashift split): Adjust the first operand if it uses the SP and we
3837         are pushing the shifted value.
3838         (plus shift split): Fix when a source is in register D+X.
3839         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
3840
3841 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
3842
3843         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
3844         comparing with Z register.
3845
3846 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3847
3848         * cfgloop.h (struct loop_desc): Removed.
3849         (struct loop): Fields simple, desc and has_desc removed.
3850         (simple_loop_p, count_loop_iterations): Declaration removed.
3851         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
3852         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
3853         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
3854         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
3855         simple_loop_exit_p, variable_initial_value, variable_initial_values,
3856         simple_condition_p, simple_increment, count_strange_loop_iterations,
3857         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
3858         Removed.
3859         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
3860
3861 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
3862
3863         * genattrtab.c: Don't handle MATCH_INSN.
3864         * genrecog.c: Likewise.
3865         * gensupport.c: Likewise.
3866         * rtl.def (match_insn): Remove.
3867         * doc/md.texi (match_insn, match_insn2): Remove.
3868
3869 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
3870
3871         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
3872         macro results in memory allocation.
3873
3874 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
3875
3876         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
3877         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
3878         %(fbsd_dynamic_linker),
3879         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
3880         config/i386/freebsd.h
3881         * config/arm/freebsd.h: Ditto.
3882         * config/i386/freebsd.h: Ditto.
3883         * config/i386/freebsd64.h: Ditto.
3884         * config/ia64/freebsd.h: Ditto.
3885         * config/rs6000/sysv4.h: Ditto.
3886         * config/sparc/freebsd.h: Ditto.
3887
3888 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
3889
3890         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
3891
3892 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
3893
3894         * rtl.def (define_combine): Remove.
3895
3896 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
3897
3898         * config/h8300/h8300.md: Tweak formatting.
3899
3900 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
3901
3902         * config/h8300/h8300.md (*cmphi_h8300): Rename to
3903         *cmphi_h8300_znvc.
3904         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
3905
3906 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
3907
3908         PR bootstrap/14356
3909         * gcc.c (process_command): Remove const-qualification from argv.
3910         (main): Likewise.
3911
3912 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
3913
3914         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
3915         pushqi1_h8300hs_advanced.  Adjust its caller.
3916         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
3917         Adjust its caller.
3918
3919 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
3920
3921         * Makefile.in (install-libgcc, install-multilib): Pass
3922         mkinstalldirs var to libgcc.mk.
3923
3924 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
3925
3926         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
3927         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
3928
3929 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
3930
3931         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
3932         * config/h8300/h8300.md: Split several peephole2's, each into
3933         two.
3934
3935 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3936
3937         * dominance.c (recount_dominator): Handle postdominators.
3938
3939 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
3940
3941         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
3942         (NUM_SYMBOL_TYPES): Likewise.
3943         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
3944         (mips_unspec_address): Declare.
3945         (mips_gotoff_page, mips_gotoff_global): Delete.
3946         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
3947         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
3948         (mips_symbolic_constant_p, mips_symbolic_address_p)
3949         (mips_symbol_insns): Handle new symbol types.
3950         (general_symbolic_operand): New predicate.
3951         (mips_unspec_address): Make extern.
3952         (mips_gotoff_page, mips_gotoff_global): Delete.
3953         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
3954         Handle new symbol types.
3955         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
3956         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
3957         mips_unspec_address directly.
3958         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
3959         the documentation of -mexplicit-relocs.
3960
3961 2004-03-01  Jeff Law  <law@redhat.com>
3962
3963         * fold-const.c (fold): An equality comparison of a non-weak object
3964         against zero has a known result.  Similarly an equality comparison
3965         of the address of two non-weak, unaliased symbols has a known result.
3966
3967         * ggc-page.c (struct page_entry): New field PREV.
3968         (ggc_alloc): Update PREV field appropriately.
3969         (sweep_pages): Likewise.
3970         (ggc_free): Likewise.  Use PREV field rather than loop to
3971         improve ggc_free performance.
3972
3973 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
3974
3975         * config/mips/mips.c (mips_output_division): Use the division
3976         instruction to fill the delay slot of a zero check.
3977         (mips_idiv_insns): Adjust accordingly.
3978
3979 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
3980
3981         * config.gcc: Create a default tmake_file for linux, and use
3982         it in all but two linux clauses.  Comment those two.
3983
3984 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
3985
3986         * combine.c (try_combine):  Do not refer to is_replaced.
3987         (gen_lowpart_for_combine):  Perverse subregs now have a
3988         more politically correct name.
3989         * cse.c (cse_insn): Likewise.
3990         * jump.c: Fix bogus reference to delete_insn.
3991
3992 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
3993
3994         PR debug/14328
3995         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
3996         constants as signed values.
3997
3998         PR middle-end/13448
3999         * c-tree.h (readonly_warning): Rename to ...
4000         (readonly_error): ... this.
4001         * c-typeck.c (build_unary_op): Adjust accordingly.
4002         (readonly_warning): Rename to ...
4003         (readonly_error): ... this and issue errors, not warnings.
4004         (build_modify_expr): Call readonly_error, not readonly_warning.
4005         (c_expand_asm_operands): Likewise.
4006         * tree-inline.c (optimize_inline_calls): Do not inline functions
4007         after errors have occurred.
4008
4009 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
4010
4011         * configure.ac: Rearrange some threading code for clarity;
4012         add section comment.
4013         * configure: Regenerate.
4014
4015 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4016
4017         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
4018         typos.
4019         * doc/cppopts.texi: Fix a typo.
4020
4021 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4022
4023         * config/i386/i386.md: Fix formatting.
4024
4025 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
4026
4027         * configure.ac: Add some comments delineating sections of code.
4028
4029         * doc/install.texi: Note that libada uses autoconf 2.57 also.
4030
4031         * doc/install.texi: Fix idiot typo in previous commit.
4032
4033         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
4034
4035 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4036
4037         * config/h8300/h8300.md: Add comments about peephole2's.
4038
4039 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4040
4041         * config/h8300/h8300.md: Tweak operand numbers of some
4042         peephole2's.
4043
4044 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4045
4046         * config/h8300/h8300.md: Tweak comments about peephole2's.
4047
4048 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
4049
4050         PR middle-end/14203
4051         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
4052         instead of testing whether DECL_RTL is not NULL.
4053
4054 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
4055
4056         * config/sh/sh.c: Fix formatting.
4057
4058 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
4059
4060         * config/sh/sh.c: Convert to ISO-C.
4061
4062 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
4063
4064         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
4065         my previous patch.
4066
4067         * config/darwin.h (machopic_finish): Output stub even if the
4068         symbol is already defined.
4069
4070 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4071
4072         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
4073
4074 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
4075
4076         * genattr.c (main): Don't define
4077         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
4078         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
4079         (DFA_PIPELINE_INTERFACE): Likewise.
4080         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
4081         (DFA_PIPELINE_INTERFACE): Likewise.
4082
4083 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
4084
4085         * config/mips/mips.md (tstsi, tstdi): Delete.
4086
4087 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
4088
4089         * config/mips/mips.c (override_options): Remove an obsolete
4090         duplicate definition of the "e" constraint.
4091         * config/mips/mips.h: Update a comment accordingly.
4092
4093 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
4094
4095         * config/mips/mips.md: Complete the unfinished R4000
4096         multiply/shift errata workaround.  Improve documentation.
4097         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
4098         has a hilo hazard.
4099         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
4100         (muldi3, muldi3_internal): Likewise.
4101         (muldi3_internal2): Remove, replacing with...
4102         (muldi3_mult3, muldi3_r4000): ...these new patterns.
4103         (mulsidi3): Take the errata into account.
4104         (mulsidi3_32bit): Remove, replacing with...
4105         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
4106         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
4107         (umulsidi3): Take the errata into account.
4108         (umulsidi3_32bit): Remove, replacing with..
4109         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
4110         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
4111         TARGET_FIX_R4000.
4112         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
4113         (smuldi3_highpart, umuldi3_highpart): Likewise.
4114         * doc/invoke.texi: Document the errata workaround.
4115
4116 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
4117
4118         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
4119         * config/mips/mips.h (MASK_FIX_SB1): Bump.
4120         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
4121         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
4122         * config/mips/mips.c (mips_idiv_insns): New function.
4123         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
4124         (mips_output_division): Add a workaround for the R4000 divide/shift
4125         errata.
4126         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
4127         the length of an "idiv" instruction.
4128         * doc/invoke.texi: Document the new switches.
4129
4130 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
4131
4132         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
4133         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
4134
4135 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4136
4137         PR optimization/14229
4138         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
4139
4140 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
4141
4142         * fold-const.c (fold): Strip NOPs that change the signedness
4143         for RSHIFT too.  Expand comment.
4144
4145 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
4146
4147         PR optimization/7871
4148         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
4149         from or to call insns.
4150
4151 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
4152
4153         PR optimization/7871
4154         * flow.c (propagate_one_insn): Interpret calls as setting global
4155         registers, not merely clobbering them.
4156
4157 2004-02-27  Dale Johannesen  <dalej@apple.com>
4158
4159         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
4160         config/darwin-protos.h:  Ditto.
4161         config/darwin.h:  Remove call to it.
4162         * combine.c (distribute_notes): Do not place a REG_DEAD note
4163         when value is both set and used.
4164
4165 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
4166
4167         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
4168         as well.
4169         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
4170         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
4171
4172 2004-02-27  Andrew Pinski  <apinski@apple.com>
4173
4174         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
4175         Speedup common case of the type values being in the same order.
4176
4177 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
4178
4179         * config/ia64/ia64.h (no-inline-float-divide): New option.
4180         * config/ia64/ia64.h (no-inline-int-divide): New option.
4181         * config/ia64/ia64.h (no-inline-sqrt): New option.
4182         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
4183         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
4184         * config/ia64/ia64.c (ia64_override_options): Modify error
4185         checking for inlined division/sqrt.
4186
4187 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
4188
4189         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
4190         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
4191         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
4192         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
4193         copyright.
4194
4195 2004-02-27  Paul Brook  <paul@codesourcery.com>
4196
4197         * function.c (assign_parms): Don't count pretend args for alignment.
4198
4199 2004-02-27  Richard Henderson  <rth@redhat.com>
4200
4201         * passes.c: New file.
4202         * Makefile.in (OBJS-common): Add it.
4203         * diagnostic.c (rtl_dump_and_exit): Move decl ...
4204         * flags.h (rtl_dump_and_exit): ... here.
4205         * output.h (size_directive_output, last_assemble_variable_decl):
4206         Move from toplev.c.
4207         * rtl.h (reg_alloc): Move from toplev.c.
4208         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
4209         struct dump_file_info, enum dump_file_index, dump_file_tbl,
4210         open_dump_file, close_dump_file, rest_of_decl_compilation,
4211         rest_of_type_compilation, rest_of_handle_final,
4212         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
4213         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
4214         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
4215         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
4216         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
4217         rest_of_handle_tracer, rest_of_handle_if_conversion,
4218         rest_of_handle_if_after_combine, rest_of_handle_web,
4219         rest_of_handle_branch_prob,
4220         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
4221         rest_of_handle_addressof, rest_of_handle_sibling_calls,
4222         rest_of_handle_jump_bypass, rest_of_handle_inlining,
4223         rest_of_handle_null_pointer, rest_of_handle_combine,
4224         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
4225         rest_of_handle_gcse, rest_of_handle_loop_optimize,
4226         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
4227         (decode_d_option): Use enable_rtl_dump_file.
4228         (compile_file, finalize, do_compile): Move profile+combine+graph
4229         cleanup to finish_optimization_passes.
4230         * toplev.h (init_optimization_passes, finish_optimization_passes,
4231         enable_rtl_dump_file): Declare.
4232
4233 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
4234             Roger Sayle  <roger@eyesopen.com>
4235
4236         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
4237         operands to build a tree with swapped operands.
4238         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
4239         'unsignedp' predicate to specify the signedness.
4240
4241 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
4242
4243         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
4244         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
4245         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
4246         comment typos and formatting.  Follow spelling conventions.
4247
4248 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
4249
4250         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
4251         fix_truncsfsi2.
4252
4253         * config/rs6000/spe.md: Delete spe_efsctuiz.
4254         Add spe_fixuns_truncsfsi2.
4255         Add spe_fix_truncsfsi2.
4256
4257 2004-02-26  Eric Christopher  <echristo@redhat.com>
4258
4259         * c-lex.c (c_lex_string_translate): New variable.
4260         (lex_string): Use to determine string translation.
4261         * c-pragma.h: Prototype.
4262         * c-parse.in (start_string_translation): New. Set above.
4263         (stop_string_translation): Ditto.
4264         (attribute, attribute_list, asm_def, asm_stmt,
4265         asm_operand): Use above functions.
4266         * cp/parser.c (cp_parser_declaration): Translate strings
4267         unless token is RID_EXTERN. Set c_lex_string_translate
4268         for recursive use.
4269         (cp_parser_asm_definition): Only translate argument strings
4270         to asms.
4271         (cp_parser_asm_operand_list): Ditto.
4272         (cp_parser_attribute_list): Do not translate attribute strings.
4273
4274 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4275
4276         * stmt.c (expand_start_case_dummy): Remove.
4277         * tree.h: Remove the corresponding prototype.
4278
4279 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4280
4281         * builtins.c (apply_args_register_offset): Remove.
4282         * tree.h: Remove the corresponding prototype.
4283
4284 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4285
4286         * stor-layout.c (is_pending_size): Remove.
4287         * tree.h: Remove the corresponding prototype.
4288
4289 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4290
4291         * recog.c (validate_replace_src): Remove.
4292         * recog.h: Remove the corresponding prototype.
4293
4294 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4295
4296         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
4297         MAYBE_REG_PARM_STACK_SPACE.
4298         * function.c: Likewise.
4299         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
4300         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
4301         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
4302         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
4303
4304 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4305
4306         * c-decl.c (c_expand_deferred_function): Remove.
4307         * c-tree.h: Remove the corresponding prototype.
4308
4309 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4310
4311         * postreload.c (reload_cse_move2add): Generate just a PLUS
4312         instead of an entire SET.
4313
4314 2004-02-26  Jan Hubicka  <jh@suse.cz>
4315
4316         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
4317         /pentium4m.
4318         * i386.c (override_options): Add support for new CPUs.
4319         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
4320         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
4321         constants.
4322         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
4323
4324 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
4325
4326         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
4327
4328 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
4329
4330         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
4331         (sparc_emit_fixunsdi): New prototype.
4332         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
4333         (sparc_emit_fixunsdi): New function.
4334         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
4335         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
4336         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
4337         to sparc_emit_floatunsdi.
4338         (fixuns_truncsfdi2): New expander.
4339         (fixuns_truncdfdi2): Likewise.
4340
4341 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
4342
4343         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
4344         unless HAVE_cc0.
4345
4346 2004-02-25  Richard Henderson  <rth@redhat.com>
4347
4348         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
4349         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
4350         use (op0-op1) == 0 if op0 is a pointer.
4351         * config/alpha/alpha.md (cmpdi): Use some_operand.
4352         (three comparison combine splits): Remove.
4353
4354 2004-02-25  Richard Henderson  <rth@redhat.com>
4355
4356         PR c/12794
4357         * c-common.c (handle_alias_attribute): Reject the attribute if
4358         current_function_decl is set.
4359
4360 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
4361
4362         * config.gcc: Add comment describing extra_gcc_objs.
4363         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
4364         * configure.ac (extra_gcc_objs): New substitution variable.
4365         (host_extra_gcc_objs): Don't substitute.
4366         * configure: Regenerate.
4367         * Makefile.in: Use extra_gcc_objs.
4368
4369 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
4370
4371         * doc/contrib.texi: Add an entry for myself.
4372
4373 2004-02-25  Jan Hubicka  <jh@suse.cz>
4374
4375         * basic-block.h (make_eh_edge, break_superblocks): Declare.
4376         * cfgbuild.c (make_eh_edge):  Make global.
4377         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
4378         * except.c (build_post_landing_pads, connect_post_landing_pads,
4379         dw2_build_landing_pads, sjlj_emit_function_enter,
4380         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
4381         sjlj_build_landing_pads): Update CFG.
4382         (emit_to_new_bb_before): New function.
4383         (finish_eh_generation): Do not rebuild the CFG.
4384
4385 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4386
4387         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
4388         target_cpu_default defines.
4389         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
4390         * pa.h (TARGET_DEFAULT): Likewise.
4391
4392 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
4393
4394         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
4395         comparisons with regard to signedness.
4396
4397 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
4398
4399         * arm.c (thumb_legitimize_address): New function.
4400         * arm-protos.h: Prototype it.
4401         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
4402         (LEGITIMIZE_ADDRESS): Use it.
4403
4404 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
4405
4406         * reload1.c (reload): Only spill eliminable register with multiple
4407         adjacent elimination alternatives if all alternatives fail.
4408
4409 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
4410
4411         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
4412         is -4095...+4095 inclusive.
4413
4414 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
4415
4416         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
4417         the bootstrap failure with Sun CC 5.4 and 5.5.
4418
4419 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
4420
4421         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
4422         which modifies NEWREG.
4423         (cse_condition_code_reg): Update the mode of CC_REG in
4424         CC_SRC_INSN on our own.
4425
4426 2004-02-24  Michael Matz  <matz@suse.de>
4427
4428         * config/i386/i386.c (ix86_comp_type_attributes): Check for
4429         regparm attributes.
4430
4431 2004-02-24  Richard Henderson  <rth@redhat.com>
4432
4433         * toplev.c (dump_file_tbl): Rename from dump_file.
4434         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
4435         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
4436         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
4437         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
4438         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
4439         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
4440         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
4441         s/rtl_dump_file/dump_file/g.
4442
4443 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
4444
4445         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
4446         (spe_fixuns_truncsfsi2): Delete.
4447
4448         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
4449         (fixuns_truncsfsi2): Delete.
4450
4451 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
4452
4453         PR/14240
4454         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
4455
4456 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
4457
4458         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
4459
4460 2004-02-24  Jason Merrill  <jason@redhat.com>
4461
4462         * tree.c (check_qualified_type): New fn.
4463         (get_qualified_type): Use it.  If type already has the desired
4464         quals, just return it.
4465         * tree.h: Declare it.
4466
4467 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
4468
4469         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
4470         TARGET_SCHED_FINISH_GLOBAL): New macros.
4471
4472         * target.h (md_init_global, md_finish_global): Function
4473         declarations corresponding to new target macros.
4474
4475         * haifa-sched.c (sched_init, sched_finish): Allow target to
4476         call the new schedular hooks.
4477
4478         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
4479         call to update_life_info.
4480
4481         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
4482         flag_schedule_insns for SH4.
4483
4484         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
4485         find_set_regmode_weight, find_insn_regmode_weight,
4486         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
4487         sh_variable_issue, high_pressure, ready_reorder,
4488         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
4489         functions used to throttle the insn movement in first
4490         scheduling pass for SH.
4491
4492         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
4493         TARGET_SCHED_FINISH_GLOBAL.
4494
4495 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
4496
4497         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
4498         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
4499         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
4500         symbols in sections named by the user.
4501         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
4502         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
4503         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
4504         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
4505         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
4506         the above.
4507         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
4508         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
4509         one more pseudo to further improve code generation.
4510         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
4511         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
4512         inside UNSPEC.
4513         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
4514         * config/frv/frv.c (frv_legitimate_address_p): Added
4515         allow_double_reg_p argument.  Adjust all callers.  Use it to
4516         decide whether to enable double-register indirect addressing.
4517         (frv_funcdesc_alias_set): Remove.
4518         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
4519         register.  Emit movdi_ldd.
4520         (ldd_address_operand): New.
4521         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
4522         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
4523         (PREDICATE_CODES): Add ldd_address_operand.
4524         * config/frv/frv.md (movdi_ldd): New.
4525         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
4526         intermediate computations if possible.
4527         (symGOTOFF2reg_i): Fix harmless typo.
4528         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
4529         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
4530         relocated p_vaddr to vaddr type.
4531         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
4532         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
4533         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
4534         MEM, or use a funcdesc alias set.  Use regular move instead of
4535         ldd.
4536         (dbl_memory_one_insn_operand): Recognize function descriptors by
4537         type or by alias set, and don't split them.
4538         * config/frv/frv.md (call, call_value): Never use call_internal
4539         for fdpic.
4540         (call_internal, call_value_internal): Never match for FDPIC.
4541         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
4542         call_value_fdpicsi): Require FDPIC.
4543         (ldd): Removed.
4544         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
4545         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
4546         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
4547         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
4548         FDPIC.  Compute data base address.
4549         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
4550         before the other self-specs are processed.
4551         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
4552         Build with -fPIC.
4553         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
4554         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
4555         inhibit_libc is defined.
4556         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
4557         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
4558         __FRV_FDPIC__.
4559         (__RELOC_POINTER): Define.
4560         (_Unwind_IteratePhdrCallback): Use it.
4561         * config/frv/frv.h (Twrite): Define.
4562         (TRANSFER_FROM_TRAMPOLINE): Use it.
4563         * config/frv/linux.h (INVOKE__main): Undefine.
4564         (Twrite): Override.
4565         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
4566         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
4567         (-mlibrary-pic): Emphasize that this option generates EABI code.
4568         (-mcpu): Add fr550.
4569         (-mpack): Remove.
4570         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
4571         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
4572         and CONSTs in FDPIC mode.
4573         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
4574         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
4575         * config/frv/frv.c (move_source_operand): Don't accept symbolic
4576         constants.
4577         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
4578         rather than 'i' constraint for the 2-instruction alternative.
4579         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
4580         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
4581         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
4582         EXTRA_CONSTRAINT_FOR_Y.
4583         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
4584         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
4585         (addsi3): Change 'Y' constraint to 'Q'.
4586         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
4587         * reload.c (CONST_POOL_OK_P): New macro.
4588         (find_reloads): Use it to decide whether a constant can be forced
4589         into memory.
4590         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
4591         constant satisfies got12_operand.
4592         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
4593         (frv_legitimate_address_p): Check for valid unspec offsets using
4594         got12_operand rather than frv_legitimate_fdpic_operand_p.
4595         (frv_legitimate_fdpic_operand_p): Delete.
4596         (frv_emit_movsi): Abort if we try to use the FDPIC register during
4597         or after reload.
4598         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
4599         TARGET_FDPIC.
4600         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
4601         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
4602         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
4603         (frv_fdpic_fptr_operand): Don't declare here.
4604         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
4605         rather than fdpic_got12_operand.
4606         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
4607         got12_operand and const_unspec_operand.
4608         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
4609         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
4610         (symbolic_operand): Remove.
4611         (const_unspec_operand): New predicate.
4612         * config/frv/frv.md (*movsi_got): Use got12_operand.
4613         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
4614         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
4615         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
4616         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
4617         * config/frv/frv.c (frv_unspec): New structure.
4618         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
4619         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
4620         validate CONST indices.  Use frv_output_const_unspec to print them.
4621         (frv_print_operand): Update call to unspec_got_name.  Use
4622         frv_output_const_unspec to print constant unspecs.
4623         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
4624         Reject UNSPECs otherwise.
4625         (unspec_got_name): Take the relocation number as argument, not an
4626         rtx containing it.
4627         (frv_output_addr_const_extra): Remove, replacing with...
4628         (frv_output_const_unspec): ...this new function.
4629         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
4630         (gpr_or_int12_operand): Use fdpic_got12_operand.
4631         (dbl_memory_one_insn_operand): Likewise.
4632         (fdpic_got12_operand): Use frv_const_unspec_p.
4633         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
4634         are already legitimate.  Use frv_small_data_reloc_p when deciding
4635         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
4636         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
4637         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
4638         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
4639         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
4640         label, for real this time.
4641         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
4642         representation of visibility.
4643         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
4644         such.
4645         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
4646         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
4647         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
4648         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
4649         it was explicitly disabled.
4650         (frv_stack_info): There is no need to save the link register in every
4651         frame unless TARGET_LINKED_FP is true.
4652         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
4653         frame pointer if the stack pointer might change value.
4654         (frv_return_addr_rtx): Check and process "count" argument.
4655         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
4656         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
4657         (frv_find_base_term): Declare.
4658         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
4659         (FIND_BASE_TERM): Define.
4660         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
4661         small_data_register_operand, small_data_symbolic_operand.  Add
4662         symbolic_operand.
4663         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
4664         (frv_print_operand_memory_reference, output_move_single): Remove
4665         special handling for unlegitimized sdata addresses.
4666         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
4667         and symbolic addresses.
4668         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
4669         (frv_find_base_term): New function.
4670         (int_2word_operand): Check specifically for symbolic address constants.
4671         (pic_register_operand, pic_symbolic_operand): Delete.
4672         (small_data_register_operand, small_data_symbolic_operand): Delete.
4673         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
4674         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
4675         (move_source_operand): Only accept CONSTs if they're a two-insn
4676         symbolic constant.
4677         (fdpic_got12_operand): Don't require TARGET_FDPIC.
4678         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
4679         using gen_symGOTOFF2reg*.
4680         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
4681         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
4682         themselves a cost of 3 insns.
4683         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
4684         Change predicate to symbolic_operand.
4685         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
4686         (*movsi_lda_sdata): Delete.
4687         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
4688         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
4689         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
4690         frv-*-*linux*.
4691         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
4692         label.
4693         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
4694         -multilib-library-pic.
4695         (LINK_SPEC): Add -z text for -mfdpic.
4696         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
4697         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
4698         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
4699         Override.
4700         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
4701         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
4702         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
4703         crtstuff-generated files.
4704         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
4705         * config.gcc: Add frv-*-*linux*.
4706         * config/frv/linux.h, config/frv/t-linux: New.
4707         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
4708         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
4709         when -mfdpic even if a linker script is explicitly listed.
4710         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
4711         * config/frv/frv.c (frv_override_options): Clear asm_out
4712         unaligned_op for SImode on FDPIC.
4713         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
4714         argument passed to decl_readonly_section.
4715         (frv_assemble_integer): Revert 2003-09-30's change, but make the
4716         whole block run with FDPIC even with -fno-PIC.
4717         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
4718         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
4719         symbol or label plus offset to memory.
4720         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
4721         GOTOFF and GPREL for LABEL_REF.
4722         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
4723         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
4724         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
4725         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
4726         * doc/invoke.texi: Document them.
4727         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
4728         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
4729         (frv_splittable_got_operand): Removed.
4730         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
4731         LO_SUM.  Add comments.
4732         (frv_override_options): Moved enabling of FDPIC to
4733         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
4734         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
4735         (frv_legitimize_fdpic_address): Don't duplicate logic in
4736         frv_emit_movsi.
4737         (frv_gen_GPsym2reg): New.
4738         (unspec_got_name): Added gprel.
4739         (frv_expand_fdpic_call): Add support for inlining PLTs.
4740         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
4741         (gpr_or_int12_operand): Added GPREL12.
4742         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
4743         (small_data_symbolic_operand): Fail if FDPIC.
4744         (fdpic_splittable_got_operand): Removed.
4745         (fdpic_got12_operand): Added GPREL12.
4746         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
4747         when appropriate.  Fix sdata GOTOFF.
4748         (frv_legitimate_constant_p): Require legitimate PIC operand for
4749         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
4750         (frv_assemble_integer): Move FDPIC funcdesc handling out of
4751         flag_pic case.
4752         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
4753         frv_assemble_integer fails.
4754         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
4755         (SUBTARGET_DRIVER_SELF_SPECS): New.
4756         (ASM_SPEC): Don't pass -mno-fdpic.
4757         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
4758         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
4759         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
4760         -multilib-library-pic.
4761         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
4762         condexec_si_media_operator, condexec_sf_add_operator and
4763         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
4764         and condexec_sf_unary_operator.
4765         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
4766         New.
4767         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
4768         movsi_internal.  Give them internal names.  movsi_got has type
4769         int.
4770         (fdpic got splitters): Remove.
4771         (symGPREL2reg, symGPREL2reg_hilo): New.
4772         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
4773         to -mlibrary-pic.  Map -multilib-library-pic to it.
4774         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
4775         Document.
4776         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
4777         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
4778         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
4779         (frv_cannot_force_const_mem): New function.
4780         (const_small_data_p, plus_small_data_p): Update comments on sdata
4781         on FDPIC.
4782         (frv_override_options): Set flag_pie for FDPIC too.
4783         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
4784         call-saved registers on FDPIC.
4785         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
4786         don't force LR to be preserved.
4787         (frv_expand_prologue): Likewise.
4788         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
4789         (frv_frame_pointer_required): Don't force it just because the
4790         FDPIC register is used.
4791         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
4792         operand only if !condexec_p.
4793         (frv_legitimize_address): Return the FDPIC-legitimized address.
4794         Don't match small data here on FDPIC.
4795         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
4796         symbols.  Use TRUE/FALSE instead of 1/0.
4797         (frv_local_funcdesc_p): New.
4798         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
4799         immediates when possible.
4800         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
4801         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
4802         an UNSPEC_GOT.
4803         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
4804         12-bit immediates when possible.
4805         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
4806         are not legitimate pic operands.
4807         (frv_in_small_data_p): Re-enable for FDPIC.
4808         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
4809         (FRV_GLOBAL_P): Removed.
4810         * config/frv/frv.md: Add modes to CONSTs.
4811         (movsi_got): New.
4812         (movsi_lo_sum_got): Use separate matches instead of match_dup.
4813         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
4814         (fdpic splittable operations): Match on flag_pic != 1.
4815         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
4816         * config/frv/frv.c (frv_asm_out_constructor,
4817         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
4818         bytes, not bits.
4819         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
4820         * config/frv/frv.c (frv_assemble_integer): Reject complex
4821         expressions referencing function SYMBOL_REFs.
4822         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
4823         (move_source_operand): Reject CONSTs that reference function
4824         SYMBOL_REFs on FDPIC.
4825         (frv_emit_movsi): If we get such a CONST, break it up.
4826         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
4827         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
4828         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
4829         MEM.
4830         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
4831         (frv_trampoline_size): Increase for FDPIC.
4832         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
4833         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
4834         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
4835         Disable use of GOTOFF for now.
4836         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
4837         Disable use of small data in FDPIC for now.
4838         (frv_asm_output_mi_thunk): Implement for FDPIC.
4839         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
4840         * config/frv/frv.c (frv_asm_out_constructor): Use
4841         frv_assemble_integer for FDPIC pointers.
4842         (frv_asm_out_destructor): Likewise.
4843         * config/frv/frv.md (ldd): Fix order of operands.  Use
4844         address_operand for input.
4845         2003-09-18  DJ Delorie  <dj@redhat.com>
4846         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
4847         (unspec_got_name): Correct typo.
4848         (frv_emit_movsi): Pre-expand splittable GOTs.
4849         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
4850         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
4851         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
4852         * config/frv/t-frv: Add -mfdpic multilibs.
4853         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
4854         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
4855         * config/frv/frv.c (frv_override_options): -mfdpic assumes
4856         flag_pic, default to 32-bit pics, require DWORD ops.
4857         (frv_override_options): Add W and Z constraints.
4858         (frv_expand_prologue): No pic prologue for -mfdpic.
4859         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
4860         (frv_print_operand_memory_reference): Handle GOT constants.
4861         (frv_legitimate_address_p): Allow GOT constants.
4862         (frv_legitimize_address): Handle GOT addresses too.
4863         (frv_legitimate_fdpic_operand_p): New.
4864         (frv_legitimize_fdpic_address): New.
4865         (unspec_got_name): New.
4866         (frv_output_addr_const_extra): New.
4867         (frv_expand_fdpic_call): New.
4868         (frv_fdpic_fptr_operand): New.
4869         (gpr_or_int12_operand): Handle GOT operands.
4870         (int_2word_operand): Handle GOT operands.
4871         (fdpic_operand): New.
4872         (fdpic_splittable_got_operand): New.
4873         (fdpic_got12_operand): New.
4874         (frv_emit_movsi): Handle GOT operands.
4875         (frv_assemble_integer): -mfdpic doesn't use rofixups.
4876         (frv_print_operand): Support 'g' code for GOT operands.
4877         * config/frv/frv-protos.h: Add prototypes as needed.
4878         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
4879         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
4880         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
4881         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
4882         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
4883         R_FRV_GOTOFFLO): New.
4884         (movsi_high_got, movsi_lo_sum_got): New.
4885         (*movsi_pic): Don't use this splitter for -mfdpic.
4886         (addsi3): Allow GOT references also.
4887         (call, call_value): Handle -mfdpic separately.
4888         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
4889         call_value_fdpicsi): New.
4890         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
4891         symGOTOFF2reg_i): New.
4892         * config/frv/frv.h (MASK_FDPIC): New.
4893         (TARGET_FDPIC): New.
4894         (TARGET_SWITCHES): Add -mfdpic.
4895         (FDPIC_FPTR_REGNO): New.
4896         (FDPIC_REGNO): New.
4897         (OUR_FDPIC_REG): New.
4898         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
4899         FDPIC_CALL_REGS.
4900         (REG_CLASS_NAMES): Likewise.
4901         (REG_CLASS_CONTENTS): Likewise.
4902         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
4903         (EXTRA_CONSTRAINT): Add it here.
4904         (FRV_GLOBAL_P): New.
4905         (OUTPUT_ADDR_CONST_EXTRA): New.
4906
4907 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
4908
4909         * config/sparc/sparc.h: Remove commented-out definitions of
4910         TARGET_EDOM and GEN_ERRNO_RTX.
4911
4912 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
4913
4914         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
4915         df_analyse with df_analyze.
4916
4917 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
4918
4919         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
4920         beginning of block.
4921
4922 2004-02-23  James E Wilson  <wilson@specifixinc.com>
4923
4924         * calls.c (precompute_arguments): Update comment.
4925
4926 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
4927
4928         * et-forest.c: Replace et_occurences with et_occurrences.
4929
4930 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
4931
4932         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
4933         with iv_analyze.
4934
4935 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
4936
4937         * config/i386/i386.c: Rename pni to sse3.
4938         * config/i386/i386.h: Likewise.
4939         * config/i386/i386.md: Likewise.
4940         * config/i386/pmmintrin.h: Likewise.
4941         * doc/extend.texi: Likewise.
4942         * doc/invoke.texi: Likewise.
4943
4944 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
4945             Kazu Hirata  <kazu@cs.umass.edu>
4946
4947         Remove -fwritable-strings.
4948         * c-common.c (fix_string_type): Don't check
4949         flag_writable_strings.
4950         (fix_string_type): Likewise.
4951         * c-opts.c (set_std_c89): Don't initialize
4952         flag_writable_strings.
4953         (set_std_c99): Likewise.
4954         * common.opt (fwritable-strings): Remove.
4955         * flags.h: Remove the external declaration of
4956         flag_writable_strings.
4957         * opts.c (common_handle_option) <OPT_fwritable_strings>:
4958         Remove.
4959         * toplev.c (flag_writable_strings): Remove.
4960         (f_options): Remove an entry for writable-strings.
4961         * varasm.c (const_hash_1) <STRING_CST>: Don't check
4962         flag_writable_strings.
4963         (compare_constant) <STRING_CST>: Likewise.
4964         (build_constant_desc): Likewise.
4965         * config/darwin.c (machopic_select_section): Likewise.
4966         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
4967         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
4968         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
4969         * config/mips/mips.c (mips_select_section): Likewise.
4970         (mips_encode_section_info): Likewise.
4971         * config/pa/pa.c (pa_select_section): Likewise.
4972         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
4973         * config/v850/v850.c (v850_select_section): Likewise.
4974         * doc/invoke.texi (-fwritable-strings): Remove.
4975         (-fno-const-strings): Don't mention -fwritable-strings.
4976         * doc/trouble.texi: Don't mention -fwritable-strings.
4977
4978 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
4979
4980         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
4981
4982 2004-02-23  Dale Johannesen  <dalej@apple.com>
4983
4984         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
4985         (movdf_hardfloat64):  Ditto.
4986         (movdf_softfloat64):  Ditto.
4987
4988 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
4989         * config/rs6000/rs6000.c (function_arg): call to
4990         rs6000_mixed_function_arg for DFmode moved to allow
4991         normal DFmode incoming register assignment.
4992
4993 2004-02-23  Dale Johannesen  <dalej@apple.com>
4994
4995         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
4996         (movdf_hardfloat64):  Ditto.
4997
4998 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
4999
5000         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
5001         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
5002         copyright.
5003
5004 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
5005
5006         PR c/14156
5007         * c-typeck.c (c_expand_return): Change check for VAR_DECL
5008         to use DECL_P instead.
5009
5010         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
5011         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
5012
5013 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
5014
5015         * Makefile.in (opts.o): Depend on target.h.
5016         * opts.c (decode_options): Use targetm.default_short_enums
5017         instead of DEFAULT_SHORT_ENUMS.
5018         * system.h (DEFAULT_SHORT_ENUMS): Poison.
5019         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
5020         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
5021         * target.h (gcc_target): Add default_short_enums.
5022         * config/cris/cris.h: Remove a comment about
5023         DEFAULT_SHORT_ENUMS.
5024         * config/ip2k/ip2k.h: Likewise.
5025         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
5026         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
5027
5028 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
5029             Falk Hueffner  <falk@debian.org>
5030
5031         PR c/14188
5032         * builtins.c (expand_builtin_va_arg): Emit an informative message
5033         if a trap is generated.
5034         * c-typeck.c (build_function_call): Likewise.
5035
5036 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
5037
5038         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
5039         fopen.
5040         * libgcov.c: Include sys/stat.h.
5041         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
5042         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
5043         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
5044         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
5045
5046 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
5047
5048         * reorg.c: Remove comments about dead ports.
5049
5050 2004-02-22  Christopher Faylor  <cgf@redhat.com>
5051
5052         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
5053         extra host object file when targetting cygwin rather than generic
5054         object files.
5055
5056 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
5057
5058         Merge from tree-ssa:
5059         2003-11-20  Richard Henderson  <rth@redhat.com>
5060
5061                 * tree-inline.c (insert_decl_map): New.
5062                 (remap_decl, remap_type, remap_block, copy_body_r,
5063                 initialize_inlined_parameters, declare_return_variable,
5064                 remap_save_expr): Use it.
5065
5066         * function.c (copy_body_r): Add mapping from id->ret_label to
5067         id->ret_label.  Revert test for ret_label.
5068
5069 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
5070
5071         * genoutput.c (process_template): Strip trailing whitespace in @
5072         templates and issue a warning if there was any.
5073
5074 2004-02-21  Christopher Faylor  <cgf@redhat.com>
5075
5076         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
5077         object file when targetting cygwin.
5078         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
5079         overridden by top-level Makefile.
5080
5081 2004-02-21  Roger Sayle  <roger@eyesopen.com>
5082
5083         * config/i386/i386.c (standard_80387_constant_p): Also prefer
5084         the x87's load constant instructions when optimizing for size.
5085
5086 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
5087
5088         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
5089         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
5090         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
5091         * fold-const.c: Likewise.
5092         * simplify-rtx.c: Likewise.
5093
5094 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
5095
5096         * combine.c (can_combine_p): Don't ignore SETs marked with
5097         REG_EH_REGION notes.
5098         (try_combine): When attemting to fix unrecognized insns, don't
5099         split a PARALLEL that contains the original i2.
5100
5101 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
5102
5103         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
5104         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
5105         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
5106         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
5107         (vector, pixel, bool): #define to __vector, __pixel and __bool.
5108         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
5109         portion of header.
5110         (__altivec_link_error_invalid_argument): Remove prototype; will use
5111         __builtin_altivec_compiletime_error("vec_*") instead.
5112         (vec_*): Fix/complete set of available operation overloads given the
5113         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
5114         cv-correctness of pointer arguments; in C, always check for correct
5115         argument types before macro expansion.
5116         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
5117         defining Darwin/PowerPC-specific '-f[no-]altivec' and
5118         '-W[no-]altivec-long-deprecated' switches.
5119         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
5120         '__vector', '__pixel' and '__bool' macros using
5121         '__attribute__((altivec(...)))' types.
5122         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
5123         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
5124         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
5125         New type nodes.
5126         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
5127         handling '-W[no-]altivec-long-deprecated'.
5128         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
5129         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
5130         altivec_expand_dst_builtin): Remove casts from integer literals.
5131         (altivec_expand_builtin): Likewise; handle expansion of new
5132         '__builtin_altivec_compiletime_error' function.
5133         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
5134         types, and make them distinct from other vector types; register
5135         '__builtin_altivec_compiletime_error' function.
5136         (print_operand): For 'P', print a full target register name instead of
5137         merely its number.
5138         (rs6000_attribute_table): Add "altivec" attribute.
5139         (rs6000_handle_altivec_attribute): New function.
5140         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
5141         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
5142         maps to).
5143         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
5144         declare.
5145         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
5146
5147 2004-02-20  James E Wilson  <wilson@specifixinc.com>
5148
5149         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
5150         check.
5151         (shift_mix4left+2): Delete redundant pattern.
5152
5153 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
5154
5155         * alias.c (OUTGOING_REGNO): Don't define the default.
5156         * builtins.c (OUTGOING_REGNO): Likewise.
5157         (INCOMING_REGNO): Likewise.
5158         (apply_args_register_offset): Always use OUTGOING_REGNO.
5159         * combine.c (OUTGOING_REGNO): Likewise.
5160         * sibcall.c (OUTGOING_REGNO): Likewise.
5161         * defaults.h (INCOMING_REGNO): Provide the default.
5162         (OUTGOING_REGNO): Likewise.
5163
5164 2004-02-21  Jan Hubicka  <jh@suse.cz>
5165
5166         * params.def (max-peeled-insns, max-completely-peeled-insns,
5167         max-once-peeled-insns): Set to 400.
5168
5169 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5170
5171         PR c++/12007
5172         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
5173         are set for parameters before outputing debugging information.
5174
5175 2004-02-20  Falk Hueffner  <falk@debian.org>
5176
5177         PR target/14201
5178         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
5179         numbers.
5180
5181 2004-02-20  Per Bothner  <per@bothner.com>
5182
5183         * input.h:  Don't #include line-map.h.  It may cause link problems
5184         with undefined linemap_line_start when line-map.h is included but
5185         line-map.o is not linked, as currently happens with gengtype on
5186         compilers that don't support inline.
5187         * toplev.c:  So we do have to explicitly #include line-map.h here.
5188
5189 2004-02-20  Richard Henderson  <rth@redhat.com>
5190
5191         * doc/invoke.texi: Add -Wvariadic-macros.
5192
5193 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
5194
5195         * haifa-sched.c (sched_emit_insn): Remove.
5196         * sched-int.h: Remove the corresponding prototype.
5197
5198 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
5199
5200         Revert:
5201         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5202         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
5203         * system.h (DEFAULT_SHORT_ENUMS): Poison.
5204         * config/cris/cris.h: Remove a comment about
5205         DEFAULT_SHORT_ENUMS.
5206         * config/ip2k/ip2k.h: Likewise.
5207         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
5208
5209 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
5210             Tom Tromey  <tromey@redhat.com>
5211
5212         * doc/install.texi: Moved --disable-libgcj and
5213         --with-system-zlib documentation to new section for
5214         Java-specific options.
5215         Added explicit Cross-Compiler-Specific Options subheading.
5216         Added section for Java-specific options.
5217
5218 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
5219
5220         * doc/install.texi (Building the Ada compiler): Remove
5221         example.
5222
5223 2004-02-20  James E Wilson  <wilson@specifixinc.com>
5224
5225         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
5226
5227 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
5228
5229         * gcc.c (process_command): Allow translation of the copyright
5230         symbol but not the rest of the copyright message.
5231         * gcov.c (print_version): Likewise.  Allow translation of the
5232         message about warranty.
5233
5234 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
5235
5236         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
5237         predicate.
5238         ("*andsi_clear"): Tweak constraints to not match postincrement.
5239         Adjust the predicate to exclude a volatile memory reference.
5240         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
5241         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
5242
5243 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
5244
5245         * move-if-change: Remove.
5246         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
5247         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
5248         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
5249         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
5250         (s-gtyp-gen, s-iov): Use the top level move-if-change.
5251         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
5252
5253 2004-02-19  James E Wilson  <wilson@specifixinc.com>
5254
5255         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
5256         for operand2.  Add condition that requires register_operand operand2
5257         before reload.
5258
5259 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
5260             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5261
5262         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
5263         * config/mips/mips.md: Expand comment above unaligned loads and stores.
5264
5265 2004-02-19  Richard Henderson  <rth@redhat.com>
5266
5267         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
5268         * tree.c (build0, build1, build2, build3, build4): Split out from...
5269         (build): ... here.  Call them.
5270         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
5271
5272         * convert.c (convert_to_integer): Remove extra build argument.
5273         * tree-inline.c (expand_call_inline): Likewise.
5274
5275 2004-02-19  Richard Henderson  <rth@redhat.com>
5276
5277         * c-opts.c (warn_variadic_macros): New.
5278         (c_common_handle_option): Set it.
5279         (sanitize_cpp_opts): Copy it to cpp_opts.
5280         * c.opt (Wvariadic-macros): New.
5281         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
5282         * cppinit.c (cpp_create_reader): Initialize it.
5283         * cppmacro.c (parse_params): Check it.
5284
5285 2004-02-19  David Daney <ddaney@avtrex.com>
5286
5287         PR preprocessor/14198
5288         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
5289         builtin_assert ("machine=mips")
5290
5291 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5292
5293         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
5294         * system.h (DEFAULT_SHORT_ENUMS): Poison.
5295         * config/cris/cris.h: Remove a comment about
5296         DEFAULT_SHORT_ENUMS.
5297         * config/ip2k/ip2k.h: Likewise.
5298         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
5299
5300 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
5301
5302         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
5303         when passing single SFmode quantities in general registers,
5304         put them in the high half.
5305
5306 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
5307
5308         * doc/md.texi (Standard Names): Document additional dependency on
5309         fix pattern.
5310
5311         * optabs.c (ftruncify): Remove.
5312         (expand_fix): Manually inline ftruncify above.
5313         (can_fix_p): Add FIXME note.
5314
5315 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
5316
5317         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
5318         spe_fixuns_truncsfsi2.
5319
5320         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
5321         fixuns_truncsfsi2.
5322
5323 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
5324
5325         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
5326         * testsuite/gcc.dg/20040219-1.c: New test.
5327
5328 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
5329
5330         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
5331         "*subsf3_cconly"): Subtraction is not commutative.
5332
5333 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
5334
5335         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
5336         (sdbout_symbol): If called before sdbout_init, queue DECL for
5337         later and return.
5338         (sdbout_init): Set sdbout_initialized true, process decls
5339         queued earlier by sdbout_symbol.
5340         (sdbout_finish): Use size_t for index variable.
5341
5342 2004-02-19  Jeff Law  <law@redhat.com>
5343
5344         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
5345         for unordered comparison codes.
5346
5347 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
5348
5349         * reload1.c (reload): Correct comment.
5350         (scan_paradoxical_subregs): Remove #if 0 and old comment.
5351         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
5352         register variables are not used by reload.
5353
5354 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
5355
5356         PR target/14209
5357         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
5358         constraints to not match postincrement.  Adjust the predicate to
5359         exclude a volatile memory reference.
5360
5361 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5362
5363         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
5364
5365 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5366
5367         * hooks.c (hook_void_tree_int): Remove.
5368         (hook_void_constcharptr): Likewise.
5369         (hook_int_void_0): Likewise.
5370         * hooks.h: Remove the prototypes for the above three
5371         functions.
5372         * targhooks.c (hook_bool_machine_mode_true): Remove.
5373         * targhooks.h: Remove the prototype for
5374         hook_bool_machine_mode_true.
5375
5376 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5377
5378         * emit-rtl.c (subreg_realpart_p): Remove.
5379         (reorder_insns_with_line_notes): Likewise.
5380         (end_full_sequence): Likewise.
5381         * rtl.h: Remove the prototype for the above functions.
5382
5383 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5384
5385         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
5386         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
5387         config/iq2000/iq2000.h, config/m32r/m32r.h,
5388         config/pdp11/pdp11.h, config/sparc/sparc.h,
5389         config/xtensa/xtensa.h: Remove commented-out or useless
5390         definitions of CASE_VECTOR_PC_RELATIVE.
5391
5392 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5393
5394         * loop.c (all_sets_invariant_p): Remove.
5395
5396 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
5397
5398         PR target/12916
5399         * config/sparc/sparc.h (NPARM_REGS): Delete.
5400         (BASE_RETURN_VALUE_REG): Likewise.
5401         (BASE_OUTGOING_VALUE_REG): Likewise.
5402         (BASE_PASSING_ARG_REG): Likewise.
5403         (BASE_INCOMING_ARG_REG): Likewise.
5404         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
5405         TARGET_ARCH64, not TARGET_V9.
5406         (function_arg_slotno): Dispatch based on the mode class.
5407         Handle vector modes like floating-point modes.
5408         (function_arg_record_value_1): Handle vector types like
5409         floating-point types.
5410         (function_arg_record_value_2): Likewise.
5411         Calculate regno after mode transformation.
5412         (function_arg): Handle vector modes like floating-point modes.
5413         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
5414         If ARCH64, do not recheck alignment.
5415         (function_arg_pass_by_reference): Reorder the conditions.
5416         (sparc_return_in_memory): Move after function_arg_padding.
5417         Implement calling conventions for vector modes.
5418         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
5419         (function_value): Move scope of 'regbase'.
5420         Implement calling conventions for vector modes.
5421         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
5422         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
5423         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
5424         the argument is passed by reference.
5425         (sparc_type_code): Handle vector types.
5426
5427 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
5428
5429         * function.c (assign_parms): When building decl_rtl for
5430         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
5431
5432 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
5433
5434         * expr.c (is_aligning_offset): Check if we are aligning the
5435         expressions's address over BIGGEST_ALIGNMENT in bytes, not
5436         in bits.
5437
5438 2003-02-18  Matt Austern  <austern@apple.com>
5439
5440         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
5441         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
5442         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
5443         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
5444         spec string.
5445         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
5446
5447 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
5448
5449         * dwarf2out.c (loclabel_num): Move outside #ifdef
5450         DWARF2_DEBUGGING_INFO and mark with GTY(()).
5451         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
5452         Mark with GTY(()).
5453         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
5454         Allocate memory with ggc_alloc.  No need to copy anything.
5455         (ia64_hpux_file_end): Update to match.
5456
5457 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
5458
5459         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
5460         by default.
5461
5462 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
5463
5464         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
5465         ("divmodtisi3"): Likewise.
5466         ("udivmoddi4", "udivmodtidi3"): Likewise.
5467         ("divmodsi4", "divmoddisi3"): Likewise.
5468         ("udivmodsi4", "udivmoddisi3"): Likewise.
5469         ("udivsi3", "umodsi3"): Likewise.
5470
5471 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
5472
5473         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
5474         placeholder insn when chunkifying the pool.
5475
5476 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5477
5478         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
5479         generating PIC code.
5480
5481 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
5482
5483         * config/h8300/h8300-protos.h: Add a prototype for
5484         h8300_expand_branch.
5485         * config/h8300/h8300.c (h8300_expand_branch): New.
5486         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
5487         bgtu, beq, bne): Call h8300_expand_branch().
5488
5489 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
5490
5491         * config/h8300/h8300-protos.h: Add prototypes for
5492         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
5493         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
5494         (h8300_hard_regno_mode_ok): Likewise.
5495         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
5496         h8300_hard_regno_nregs().
5497         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
5498
5499 2004-02-18  Per Bothner  <per@bothner.com>
5500
5501         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
5502         partly reverts my 2003-10-01 change, because we're back to logically
5503         including <command line> inside the main line.
5504         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
5505         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
5506         Fixes PR preprocessor/14103.
5507
5508         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
5509         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
5510         (cpp_push_include):  Don't need to increment pfile's line field.
5511         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
5512
5513         * c-ppoutput.c (print struct):  New first_time field.
5514         (init_pp_output):  Set print.first_time.
5515         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
5516         which is set also for (say) <command line>.  Clear print.first_time.
5517
5518         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
5519         does not match the code, so fix both.
5520         (should_stack_file):  Inline include_pch_p function.
5521         (include_pch_p):  Remove pointless function.
5522
5523         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
5524
5525 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
5526
5527         * config/h8300/h8300.md (four define_peephole2's): Use
5528         h8300_regs_ok_for_stm().
5529
5530 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
5531
5532         * config/h8300/h8300-protos.h: Update the prototype for
5533         expand_a_rotate().
5534         * config/h8300/h8300.c (expand_a_rotate): Remove the first
5535         argument.
5536         * config/h8300/h8300.md: Update all callers.
5537
5538 2004-02-18  Jan Hubicka  <jh@suse.cz>
5539
5540         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
5541         floats.
5542         (simplify_binary_operation): Deal with logicals on floats.
5543
5544         * i386.md (SSE fabs splitters): Emit new patterns.
5545         (SSE cmov splitters): Likewise.
5546         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
5547         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
5548         subregs.
5549         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
5550         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
5551
5552 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
5553
5554         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
5555         by hand.
5556         (output_a_rotate): Tweak a comment.
5557         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
5558         (*rotlhi3_1): Change to rotlhi3_1.
5559         (*rotlsi3_1): Change to rotlsi3_1.
5560
5561 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
5562
5563         PR target/13866
5564         * arm.c (load_multiple_operation): Don't insist that the source reg
5565         of a post-increment component is the same as the destination.
5566         (store_multiple_operation): Likewise.
5567
5568 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
5569
5570         * config/h8300/h8300.md: Move movsf patterns into one section
5571         of the file.
5572
5573 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
5574
5575         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
5576         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
5577         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
5578         config/mips/linux64.h, config/pa/pa-64.h,
5579         config/rs6000/aix51.h, config/rs6000/aix52.h,
5580         config/rs6000/spe.md, config/sparc/linux.h,
5581         config/sparc/linux64.h: Update copyright.
5582
5583 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
5584
5585         * config/h8300/h8300.md: Move push patterns into one
5586         section of the file.
5587
5588 2004-02-18  Mark Mitchell <mark@codesourcery.com>
5589
5590         PR c++/11326
5591         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
5592         fntype.
5593
5594 2004-02-18  Paul Brook  <paul@codesourcery.com>
5595
5596         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
5597
5598 2004-02-18  Paul Brook  <paul@codesourcery.com>
5599
5600         PR debug/12934
5601         * dwarf2out.c (loc_descriptor_from_tree): Handle
5602         EXPR_WITH_FILE_LOCATION.
5603
5604 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
5605
5606         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
5607         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
5608         trailing whitespace from instructions.
5609
5610 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
5611
5612         * configure.ac: When generating auto-build.h, pass
5613         --enable-languages to the sub-configure.
5614         Put quotes around ${program_transform_name} when generating
5615         name of as, ld, nm, objdump.
5616         * configure: Regenerate.
5617
5618 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
5619
5620         * Makefile.in (s-check, s-config, s-conditions, s-flags)
5621         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
5622         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
5623         (s-preds, s-iov): Do not depend on move-if-change.
5624
5625 2004-02-17  James E Wilson  <wilson@specifixinc.com>
5626
5627         * caller-save.c (insert_restore): Pass mem through copy_rtx.
5628         (insert_save): Likewise.
5629
5630 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5631
5632         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
5633         warning.
5634
5635 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5636
5637         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
5638         *one_cmplsi2_h8300.
5639         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
5640
5641 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5642
5643         * config/h8300/h8300-protos.h: Update the prototype of
5644         fix_bit_operand().
5645         * config/h8300/h8300.c (fix_bit_operand): Remove the second
5646         argument "what".
5647         * config/h8300/h8300.md: Update all callers.
5648
5649 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5650
5651         * config/h8300/h8300.c (fix_bit_operand): Change the name of
5652         the last argument to "code" from "type".
5653
5654 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5655
5656         * config/h8300/h8300.c: Remove an extern declaration of
5657         rtx_equal_function_value_matters.
5658
5659 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5660
5661         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
5662         by hand.
5663         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
5664         (*iorqi3_1): Change to iorqi3_1.
5665         (*xorqi3_1): Change to xorqi3_1.
5666
5667 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5668
5669         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
5670         typos.
5671
5672 2004-02-17  Jan Hubicka  <jh@suse.cz>
5673
5674         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
5675
5676 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
5677
5678         PR optimization/14119
5679         * combine.c (try_combine): When attemting to fix unrecognized insns,
5680         don't delete SETs marked with REG_EH_REGION notes.
5681
5682 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
5683
5684         * combine.c (simplify_if_then_else): Do not replace
5685         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
5686         modes differ.
5687
5688 2004-02017  Steven Bosscher  <stevenb@suse.de>
5689
5690         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
5691         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
5692         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
5693         * ada/utils.c: Likewise.
5694         * cp/decl.c: Likewise.
5695         * f/com.c: Likewise.
5696         * java/class.c: Likewise.
5697
5698 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5699
5700         * config/h8300/h8300.md: Fix comment typos.
5701
5702 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5703
5704         * config/mips/t-iris6gld: Renamed to ...
5705         * config/mips/t-irix-gld: ... this.
5706         * config.gcc (mips-sgi-irix6*): Reflect this
5707         (mips-sgi-irix5*): Use it with GNU ld.
5708
5709         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
5710         to ...
5711         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
5712         * config/mips/t-irix-gld: Reflect this.
5713         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
5714
5715         * config/mips/iris5gld.h: New file.
5716         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
5717         Only use collect2 without gas.
5718
5719         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
5720         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
5721         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
5722         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
5723
5724         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
5725         * config/mips/iris5.h: ... here.
5726
5727         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
5728         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
5729         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
5730
5731         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
5732         using irix_startfile_spec, irix_endfile_spec.
5733
5734 2004-02-16  Gunther Nikl  <gni@gecko.de>
5735
5736         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
5737
5738 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5739
5740         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
5741         insns by hand.
5742
5743 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5744
5745         * cfghooks.c (split_edge): Speed up updating of dominators.
5746
5747 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
5748
5749         PR c++/11326
5750         * c-common.c (flag_abi_version): Remove.
5751         * c-common.h (flag_abi_version): Likewise.
5752         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
5753         * c.opt (fabi-version): Remove.
5754         * calls.c (expand_call): Always pass a function type to
5755         struct_value_rtx.  Use convert_memory_address.
5756         * common.opt (fabi-version): Add it.
5757         * flags.h (flag_abi_version): Likewise.
5758         (abi_version_at_least): New macro.
5759         * opts.c (common_handle_option): Add OPT_fabi_version.
5760         * toplev.c (flag_abi_version): Define it.
5761         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
5762         New function.
5763         (ia64_output_mi_thunk): Use it.
5764         (ia64_struct_value_rtx): Likewise.
5765
5766 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5767
5768         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
5769         Don't generate insns by hand.
5770
5771 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
5772
5773         PR c++/14178
5774         * doc/invoke.texi (fabi-version): The default is 2 now.
5775
5776 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5777
5778         * loop-iv.c: New file.
5779         * Makefile.in (loop-iv.o): New.
5780         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
5781         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
5782         num_loop_branches): New functions.
5783         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
5784         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
5785         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
5786         get_simple_loop_desc, free_simple_loop_desc): Declare.
5787         (simple_loop_desc): New inline function.
5788         (struct rtx_iv, struct niter_desc): New.
5789         * cfgloopmanip.c (loopify): Specify semantics more precisely.
5790         * expr.c (force_operand): Handle subregs of expressions created by
5791         loop unroller.
5792         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
5793         parts of the initialization to toplev.c
5794         * loop-unroll.c (loop_exit_at_end_p): New.
5795         (unroll_and_peel_loops): Call iv_analysis_done.
5796         (decide_peel_once_rolling, decide_peel_completely,
5797         decide_unroll_stupid, decide_unroll_constant_iterations,
5798         decide_unroll_runtime_iterations, decide_peel_simple,
5799         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
5800         unroll_loop_runtime_iterations): Use new simple loop analysis.
5801         * loop-unswitch.c (compare_and_jump_seq): New.
5802         (may_unswitch_on_p): Renamed to ...
5803         (may_unswitch_on): Use new iv analysis.
5804         (reversed_condition): Export.
5805         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
5806         * predict.c (estimate_probability): Use new simple loop analysis.
5807         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
5808         canon_condition, simplify_using_condition): Declare.
5809         * stor-layout.c (get_mode_bounds): New.
5810         * toplev.c (rest_of_handle_loop2): Some parts of
5811         initialization/finalization moved here from loop-init.c.
5812
5813 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5814
5815         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
5816         pointer.
5817         (CALL_USED_REGISTERS): Likewise.
5818         (REG_ALLOC_ORDER): Likewise.
5819         (REG_CLASS) <GENERAL_REGS>: Likewise.
5820
5821 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
5822
5823         * doc/md.texi (Insn Canonicalizations): Document left-chaining
5824         in associative operators.
5825         * rtlanal.c (commutative_operand_precedence): Create some new
5826         variables.  Prefer a commutative operand on the left, then
5827         binary expressions, then NEG and NOT.
5828
5829 2004-02-16  Matthias Klose  <doko@debian.org>
5830
5831         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
5832         in terms of SHLIB_SOVERSION.
5833         * config/m68k/t-slibgcc-elf-ver: New file.
5834         * config/pa/t-slibgcc-elf-ver: New file.
5835         * config.gcc (m68k-linux, parisc-linux): Use them when not
5836         sjlj exceptions are not configured.
5837
5838 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
5839
5840         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
5841
5842 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
5843
5844         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
5845
5846 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
5847
5848         * doc/sourcebuild.texi: Mention backends.html.
5849
5850 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
5851
5852         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
5853         line-map.c, line-map.h, var-tracking.c: Fix comment
5854         formatting.
5855
5856 2004-02-16  Richard Henderson  <rth@redhat.com>
5857
5858         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
5859
5860         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
5861
5862 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
5863
5864         * config/h8300/h8300.md: Remove unnecessary parallels from
5865         all define_insn and define_split patterns.
5866
5867 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
5868
5869         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
5870         "clobber").
5871
5872 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
5873
5874         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
5875         '%#'.
5876
5877 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
5878
5879         * config/ia64/ia64.c, config/mips/mips.c,
5880         config/mmix/mmix-modes.def: Fix comment typos.
5881
5882 2004-02-15  Roger Sayle  <roger@eyesopen.com>
5883
5884         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
5885         (get_directive_line): Remove unused function prototype.
5886
5887 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
5888
5889         * tree-inline.c (copy_body_r): Do not replace ret_label.
5890
5891 2004-02-14  Jan Hubicka  <jh@suse.cz>
5892
5893         * i386.c (x86_four_jump_limit): New variable.
5894         (k8_avoid_jump_misspredicts): Rename to ...
5895         (ix86_avoid_jump_misspredicts): .. this one.
5896         (ix86_pad_returns): Break out from ...
5897         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
5898         to.
5899         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
5900
5901 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
5902
5903         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
5904         PARALLEL is NULL.
5905
5906 2004-02-14  Per Bothner  <per@bothner.com>
5907
5908         * fix-header.c (line_table):  Move local variable in main to global.
5909         * scan.h (line_table):  Use it.
5910         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
5911         line (recently renamed to src_loc) before calling recognized_function.
5912
5913 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
5914
5915         * Makefile.in: Fix comment typos.
5916
5917 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
5918
5919         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
5920         for start_value when it is directly moved into reg, and factorize
5921         the retrieval of GET_MODE (reg).
5922
5923 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
5924
5925         * config/mips/mips-protos.h (mips_load_got_page): Delete.
5926         (mips_load_got_global): Delete.
5927         (mips_gotoff_page): Declare.
5928         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
5929         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
5930         UNSPEC_LOAD_GOT pattern rather than a MEM.
5931         (*load_got[sd]i): New patterns.
5932         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
5933         (mips_load_got_page, mips_load_got_global): Delete.
5934         (mips_gotoff_page): New function.
5935         (override_options): Don't initialize mips_got_alias_set.
5936
5937 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
5938
5939         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
5940         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
5941         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
5942         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
5943         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
5944         * config/mips/mips.c: Fix some overly-long lines.
5945         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
5946         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
5947
5948 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5949
5950         * configure.ac: Search for as, ld below libexec/gcc.
5951         * configure: Regenerate.
5952
5953 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
5954
5955         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
5956         __builtin_arm_setwcx ().
5957         * config/arm/arm.c (arm_expand_builtin): Generate operands
5958         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
5959
5960 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
5961
5962         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
5963         and "wmuluh" to "wmulsm" and "wmulum", respectively.
5964         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
5965         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
5966         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
5967         (_mm_mulhi_pu16): Likewise.
5968
5969 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
5970
5971         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
5972         DECL_NAME != 0 before dereferencing.
5973
5974 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
5975
5976         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
5977         (s390_output_addr_const_extra): Declare.
5978         (s390_output_pool_entry): Remove FILE * argument.
5979         * config/s390/s390.c (s390_output_symbolic_const): Remove.
5980         (s390_output_addr_const_extra): New function.
5981         (print_operand_address): Call output_addr_const instead of
5982         s390_output_symbolic_const.
5983         (print_operand): Likewise.
5984         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
5985         Remove FILE * argument.
5986         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
5987         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
5988         call.
5989
5990 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5991
5992         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
5993         (struct edge, struct vertex, struct graph): New.
5994         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
5995         free_graph): New functions.
5996
5997 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
5998
5999         * config/mips/mips.md (casesi_internal, casesi_internal_di):
6000         Use ".set macro" to avoid warnings about multi-instruction
6001         macros, since they're intentional.
6002
6003 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
6004
6005         * config/darwin.h: Add include guards.  Remove old, now incorrect,
6006         comment about STANDARD_EXEC_PREFIX.
6007
6008         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
6009         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
6010         for installing .1 manpages.  Add rules for installing cpp
6011         and gcov manpages under their installed names.
6012
6013 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
6014
6015         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
6016         host, but try LD_FOR_TARGET first.
6017         * configure: Rebuilt.
6018
6019 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
6020
6021         * dbxout.c: Move declaration of dbxout_type_decl outside
6022         #ifdef DBX_DEBUGGING_INFO.
6023         * c-parse.in: Don't give the asmdef production a type.
6024
6025 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
6026
6027         * debug.h (struct gcc_debug_hooks): Add type_decl field.
6028         (debug_nothing_tree_int): Prototype.
6029         (dwarf_debug_hooks): Delete, unused.
6030         * debug.c (do_nothing_debug_hooks): Update.
6031         (debug_nothing_tree_int): New function.
6032         * langhooks.h (struct lang_hooks_for_decls):
6033         Remove builtin_type_decls field.
6034         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
6035         (LANG_HOOKS_DECLS): Update.
6036         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
6037         Use debug_hooks->type_decl.
6038         * dbxout.c (preinit_symbols): New static.
6039         (dbx_debug_hooks, xcoff_debug_hooks): Update.
6040         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
6041         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
6042         for symbols to output.
6043         (dbxout_type_decl): New function.
6044         (dbxout_symbol): If called before dbxout_init has run, queue
6045         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
6046         to TYPE_DECLs before emitting them.
6047         * xcoffout.c (assign_type_number): Delete.
6048         (xcoff_type_numbers): New static table.
6049         (xcoff_assign_fundamental_type_number): New function.
6050         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
6051         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
6052         * sdbout.c: Include varray.h.
6053         (deferred_global_decls): New static.
6054         (sdb_debug_hooks): Update.
6055         (sdbout_global_decl): If we can't emit something right now,
6056         remember it in deferred_global_decls.
6057         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
6058         (sdbout_init): Initialize deferred_global_decls.
6059         * Makefile.in: Update dependencies of sdbout.o.
6060         * dwarf2out.c (dwarf2out_type_decl): New function.
6061         (dwarf2_debug_hooks): Update.
6062         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
6063         * c-decl.c (getdecls): Just return 0.
6064         (check_for_loop_decls): Don't use getdecls.
6065         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
6066         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
6067
6068 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
6069
6070         * config/s390/s390.c (s390_sched_reorder2): Remove.
6071         (TARGET_SCHED_REORDER2): Do not redefine.
6072
6073 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
6074
6075         * c-parse.in (maybe_type_qual): Delete.
6076         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
6077         (asm_argument): New grammar rules.
6078         (extdef_1): Use asmdef.
6079         (maybeasm): Move down with other asm rules; use simple_asm_expr.
6080         (xexpr): Move up with other expression rules.
6081         (stmt): Use asm_stmt.
6082
6083         * c-typeck.c (build_asm_expr): New function - body mostly
6084         pulled from build_asm_stmt.
6085         (build_asm_stmt): Just handle tacking on the volatile qualifier.
6086         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
6087
6088 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
6089
6090         PR bootstrap/13617
6091         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
6092         (mips_declare_object): Make variadic.
6093         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
6094         mips_output_aligned_decl_common.
6095         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
6096         (mips_declare_object): Make variadic.
6097
6098 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6099
6100         * function.c (update_epilogue_consts): Teach about binary operations.
6101
6102         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
6103         previous MEM_VOLATILE in REF.
6104         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
6105         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
6106
6107 2004-02-12  Gunther Nikl  <gni@gecko.de>
6108
6109         * config.gcc: Restore support for m68k-openbsd.
6110
6111 2004-02-12  Jan Hubicka  <jh@suse.cz>
6112
6113         * tree-optimize.c (tree_rest_of_compilation): Do not release
6114         DECL_ARGUMENTS.
6115
6116 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
6117
6118         * doc/install.texi: Fix the spelling of "explicitly".
6119
6120 2004-02-11  Eric Christopher  <echristo@redhat.com>
6121
6122         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
6123         duplicate argument structure of cpp_interpret_string.
6124         * cpphash.h: Move prototype...
6125         * cpplib.h: Here.
6126         * cpplib.c: Fix calls to match new function signature.
6127
6128 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
6129
6130         PR c/456
6131         * cppexp.c (num_binary_op): Don't allow comma operators in #if
6132         constant expressions at all outside C99 mode if pedantic.
6133
6134 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
6135
6136         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
6137         (log10_optab, log2_optab): Define corresponding macros.
6138         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
6139         * genopinit.c (optabs): Implement log10_optab and log2_optab
6140         using log10?f2 and log2?f2 patterns.
6141         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
6142         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
6143         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
6144         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6145
6146         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
6147         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
6148         log2, log2f and log2l built-ins as inline x87 intrinsics.
6149
6150 2004-02-11  Richard Henderson  <rth@redhat.com>
6151
6152         PR target/1532
6153         * flow.c (insn_dead_p): A clobber of a dead hard register is a
6154         dead insn after reload.
6155
6156 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
6157
6158         * tree.h (frame_base_decl): Add GTY marker.
6159         * var-tracking.c (frame_base_decl): Likewise.
6160
6161 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
6162
6163         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
6164         incorrect, hunk.
6165         (add_location_or_const_value_attribute): Use text_section_label,
6166         not TEXT_SECTION_NAME.
6167
6168 2004-02-11  Per Bothner  <per@bothner.com>
6169
6170         Represent column numbers using line-map's source_location.
6171         The "next available source_location" is now managed internally by
6172         line-maps.c rather than by clients.
6173         * line-map.h (struct line_map):  New field column_bits.
6174         <from_line>:  Rename field to start_location.
6175         (struct line_maps):  New fields highest_location and max_column_hint.
6176         (linemap_check_files_exited):  New declaration.
6177         (linemap_line_start):  New declaration.
6178         (linemap_add):  Remove from_line parameter; use highest_location field.
6179         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
6180         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
6181         (CURRENT_LINE_MAP):  Remove macro.
6182         (linemap_position_for_column):  New inline function.
6183         * line-map.c (linemap_init):  Clear new fields.
6184         (linemap_check_files_exited):  New function, extracted from ...
6185         (linemap_free):  Use linemap_check_files_exited.
6186         (linemap_add):  Remove from_line parameter.  Various updates.
6187         (linemap_line_start):  New function.
6188         (linemap_lookeup):  Update for new field names.
6189         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
6190         linemap_position_for_column may unpredictably change the current map,
6191         it is cleaner and simpler for us to not cache it in cpp_reader.
6192         (struct cpp_buffer):  New sysp field.
6193         Changed warned_cplusplus_comments and from_stage3 to bitfields.
6194         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
6195         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
6196         current map using linemap_lookup.
6197         (do_linemarker):  Also set buffer's sysp field.
6198         (destringize_and_run):  No longer need to decrement current line.
6199         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
6200         (search_path_head, open_file_failed):  Use buffer's sysp.
6201         (cpp_make_system_header):  Get current map using linemap_lookup.
6202         Also set buffer's sysp flag.
6203         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
6204         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
6205         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
6206         (struct cpp_reader):  ... and adding saved_line_base field.
6207         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
6208         Update accordingly.  Don't adjust line.
6209         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
6210         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
6211         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
6212         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
6213         * cpplex.c (_cpp_lex_direct):  Likewise.
6214         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
6215         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
6216         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
6217         Remove col field as it is now subsumed by src_loc.
6218         * cpperror.c:  Update various field, parameter, and macro names.
6219         (print_location):  If col==0, try SOURCE_COLUMN of line.
6220         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
6221         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
6222         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
6223         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
6224         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
6225         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
6226         (_cpp_lex_direct):  Use linemap_position_for_column.
6227         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
6228         parameter.  Instead get it from the line_table global.  Adjust callers.
6229         (print):  Remove map field.  Replace line field to src_line.
6230         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
6231         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
6232         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
6233         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
6234         * cpptrad.c (copy_comment):  Rename variable.
6235         * c-lex.c (map):  Remove static variable, for same reason we removed
6236         cpp_reader's map field.
6237         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
6238         to call linemap_lookup.
6239         (cb_line_change):  Token's line field replaced by src_loc.
6240         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
6241         Don't save new_map.
6242
6243         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
6244         source_location.
6245
6246 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
6247
6248         * config/rs6000/altivec.md (*movv4si_internal): At least one
6249         operand must be register_operand.
6250         (*movv8hi_internal1): Likewise.
6251         (*movv16qi_internal1): Likewise.
6252         (*movv4sf_internal1): Likewise.
6253
6254 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
6255
6256         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
6257         operand.
6258         (movv4hi_internal): Same.
6259         (movv2sf_internal): Same.
6260         (movv1di_internal): Same.
6261
6262 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
6263
6264         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
6265         TARGET_OLDABI consistently.
6266         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
6267         mips_va_arg,override_options,compute_frame_size,
6268         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
6269         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
6270         and TARGET_OLDABI consistently.
6271         * config/mips/mips.md (exception_receiver): Likewise.
6272         * config/mips/linux64.h: Likewise.
6273
6274 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
6275
6276         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
6277         Set AltiVec ABI and vrsave as default for ppc64 linux.
6278         (init_cumulative_args): Post error, if try to return
6279         value in AltiVec register without enable AltiVec.
6280         (function_arg_advance): Ditto for passing arguments.
6281
6282 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
6283
6284         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
6285         a label before updating its usage count.
6286
6287 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
6288
6289         * doc/install.texi: Remove extra cd.
6290
6291 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
6292
6293         * c-common.c (vector_size_helper): Remove; call
6294         reconstruct_complex_type() instead.
6295         * tree.c (reconstruct_complex_type): New function
6296         (formerly vector_size_helper() in c-common.c).
6297         (make_vector): Make externally visible.
6298         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
6299
6300 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
6301
6302         * config/h8300/h8300-protos.h: Add a prototype for
6303         h8300_regs_ok_for_stm.
6304         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
6305         * config/h8300/h8300.md (stm_h8300s_2_advanced,
6306         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
6307         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
6308         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
6309         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
6310         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
6311         ldm_h8300s_4_normal, ldm_h8300s_4): Use
6312         h8300_regs_ok_for_stm().
6313
6314 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
6315
6316         PR c/14088
6317         * real.c (real_from_string): Look for 'X' as well as 'x' in
6318         hexfloat strings.
6319
6320 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
6321
6322         * config/h8300/h8300.md: Remove an incorrect comment about
6323         peephole2.  Add comments.
6324
6325 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
6326
6327         PR/14058
6328         * emit-rtl.c (set_decl_incoming_rtl): New.
6329         * tree.h (set_decl_incoming_rtl): New.
6330         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
6331         DECL_INCOMING_RTL.
6332         * ada/misc.c (adjust_decl_rtl): Likewise.
6333
6334 2004-02-10  Per Bothner  <per@bothner.com>
6335
6336         * c-opts.c (c_common_post_options):   Don't emit working directory
6337         in cpp output if -P was specified.
6338
6339 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
6340
6341         PR c/14092
6342         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
6343         negate_expr back to the original type.
6344
6345 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
6346
6347         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
6348         bump retaddr here.
6349
6350 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
6351
6352         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
6353         gen_lowpart_SUBREG): Move under the file in which they
6354         are actually declared.
6355
6356 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
6357
6358         * doc/sourcebuild.texi: Add libada documentation.
6359
6360         * doc/install.texi: Update documentation on Ada build, now
6361         that the GNAT lib and tools are built automatically.
6362
6363 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
6364
6365         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
6366         && TARGET_IRIX.
6367
6368 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
6369
6370         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
6371         boundaries outside build_component_ref() call (a macro in ObjC++).
6372
6373 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
6374
6375         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
6376         (init_cumulative_args): Likewise.
6377         (a7_overlap_mentioned_p): Delete prototype.
6378         * config/xtensa/xtensa.c (struct machine_function): Replace
6379         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
6380         Add set_frame_ptr_insn field.
6381         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
6382         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
6383         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
6384         at the function entry and replace the operand with the pseudo.
6385         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
6386         argument and record this flag in CUMULATIVE_ARGS.
6387         (function_arg): Remove result_mode and special-case code to handle
6388         arguments in a7.  Instead, set need_a7_copy flag when there is an
6389         incoming argument in a7.
6390         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
6391         and use the value recorded in cfun->machine->set_frame_ptr_insn.
6392         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
6393         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
6394         special-case code.
6395         (a7_overlap_mentioned_p): Delete.
6396         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
6397         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
6398         arguments to init_cumulative_args and pass "incoming" flag instead.
6399         (BLOCK_REG_PADDING): Delete.
6400         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
6401         checks for reload_in_progress and reload_completed.  Update calls to
6402         xtensa_copy_incoming_a7.
6403         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
6404         to call xtensa_copy_incoming_a7.
6405
6406 2004-02-09  DJ Delorie  <dj@redhat.com>
6407
6408         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
6409         longer modify standard_exec_prefix, standard_bindir_prefix, or
6410         standard_startfile_prefix.
6411
6412 2004-02-09  James E Wilson  <wilson@specifixinc.com>
6413
6414         PR c++/11295
6415         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
6416         to expand_expr_real call, and pass in alt_rtl as last argument.
6417
6418         PR libstdc++/5625
6419         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
6420         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
6421         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
6422         * except.c (expand_builtin_extend_pointer): New.
6423         * except.h (expand_builtin_extend_pointer): Declare.
6424
6425 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
6426
6427         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
6428         unaligned loads and stores.
6429
6430 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6431
6432         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
6433         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
6434
6435         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
6436         * config/mips/iris5.h: ... here.
6437         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
6438
6439         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
6440         * config/mips/iris5.h: ... here.
6441
6442 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6443
6444         * configure.ac: Remove default executable files before AC_PROG_CC.
6445         * configure: Regenerate.
6446
6447 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
6448
6449         PR target/13721
6450         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
6451         print a operand other than a register.
6452
6453 2004-02-09  Roger Sayle  <roger@eyesopen.com>
6454
6455         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
6456         tree code rather than call fold_convert, which doesn't specify a
6457         default floating point to integer conversion.
6458
6459 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
6460
6461         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
6462         code to support SGS assembler.  Reformat adjacent code where possible.
6463         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
6464         definition.
6465         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
6466         for '%#'.
6467         * config/m68k/linux.h, config/m68k/m68k.c,
6468         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
6469         macros and asm_printf() format strings.
6470         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
6471         * config/m68k/linux.h: Update copyright.
6472         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
6473
6474 2004-02-08  Andreas Schwab  <schwab@suse.de>
6475             Bernardo Innocenti  <bernie@develer.com>
6476
6477         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
6478         REGISTER_PREFIX.
6479         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
6480         frame pointer register, overridable by OS targets.
6481         * (M68K_REGNAME): Macro to obtain register name for asm output,
6482         eventually replacing %a6 with M68K_FP_REG_NAME.
6483         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
6484         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
6485         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
6486         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
6487         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
6488
6489 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
6490
6491         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
6492         hook_rtx_tree_int_null.
6493         * targhooks.c (default_struct_value_rtx): Remove.
6494         * targhooks.h: Remove the prototype for
6495         default_struct_value_rtx.
6496         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
6497         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
6498         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
6499         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
6500         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
6501         config/rs6000/rs6000.c, config/s390/s390.c,
6502         config/stormy16/stormy16.c, config/v850/v850.c,
6503         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
6504         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
6505
6506 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
6507
6508         * README.Portability: Change "ISO C89" to "ISO C90".
6509         * c-parse.in (primary, initelt): Likewise.
6510
6511 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
6512
6513         * real.c (encode_ibm_extended): Normalize the input value before
6514         converting it to a double.  Handle the case where a normal value
6515         rounds to infinity.
6516
6517 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
6518
6519         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
6520         warning.
6521         * cse.c (preferrable): Change to preferable. Update all of its
6522         callers.
6523         * genautomata.c (ainsn): Change
6524         first_ainsn_with_given_equialence_num to
6525         first_ainsn_with_given_equivalence_num.  Update all of its
6526         references.
6527
6528 2004-02-08  Jan Hubicka  <jh@suse.cz>
6529
6530         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
6531
6532 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
6533
6534         * function.c (assign_parms): Fix formatting.
6535
6536 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
6537
6538         * default.h (PROMOTE_PROTOTYPES): Remove.
6539         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
6540         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
6541         EXPAND_BUILTIN_SAVEREGS): Poison.
6542         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
6543         hook_bool_tree_false.
6544         (TARGET_PROMOTE_PROTOTYPES): Likewise.
6545         * target.h: Replace SETUP_INCOMING_VARARGS with
6546         targetm.calls.setup_incoming_varargs().
6547         * targhooks.c (default_promote_function_return): Remove.
6548         (default_promote_prototypes): Likewise.
6549         (default_struct_value_rtx): Always abort().
6550         (default_expand_builtin_saveregs): Always print an error
6551         message.
6552         (default_setup_incoming_varargs): Do nothing.
6553         (default_pretend_outgoing_varargs_named): Don't depend on
6554         SETUP_INCOMING_VARARGS.
6555         * targhooks.h: Remove the prototype for
6556         default_promote_function_return and
6557         default_promote_prototypes.
6558
6559 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
6560
6561         * system.h (SHARED_SECTION_ASM_OP): Poison.
6562         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
6563         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
6564
6565 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
6566
6567         Bug 13856
6568         * c-decl.c (diagnose_mismatched_decls): Only give special
6569         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
6570         is also true.
6571         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
6572         DECL_FUNCTION_CODE when defining a built-in function.
6573         Don't update DECL_ESTIMATED_INSNS.
6574         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
6575         FUNCTION_DECLs.
6576         * tree.h: Delete DECL_ESTIMATED_INSNS.
6577         * tree-inline.c (struct inline_data): Delete inlined_insns field.
6578         (expand_call_inline, optimize_inline_calls): Don't update
6579         DECL_ESTIMATED_INSNS nor inlined_insns.
6580         * cgraphunit.c (cgraph_analyze_function): Don't update
6581         DECL_ESTIMATED_INSNS.
6582
6583 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
6584
6585         * c-common.c (shadow_warning): Delete.
6586         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
6587         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
6588         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
6589         * c-parse.in (free_parser_stacks): Delete.
6590
6591 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
6592
6593         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
6594         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
6595         Use the top level mkinstalldirs, not the one in the gcc subdir.
6596         * mkinstalldirs: Remove (from the gcc subdir).
6597
6598 2004-02-07  Roger Sayle  <roger@eyesopen.com>
6599
6600         PR middle-end/13696
6601         * fold-const.c (fold_convert): New function to provide type
6602         conversion to the middle-end without using convert.
6603         (negate_expr, associate_trees, size_diffop, omit_one_operand,
6604         operand_equal_for_comparison_p, pedantic_omit_one_operand,
6605         invert_truthvalue, optimize_bit_field_compare, range_binop,
6606         decode_field_reference, make_range, build_range_check, unextend,
6607         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
6608         fold_binary_op_with_conditional_arg, fold_inf_compare,
6609         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
6610         convert with calls to fold_convert.
6611
6612 2004-02-07  Jan Hubicka  <jh@suse.cz>
6613
6614         * genrecog.c (find_operand): add extra argument stop.
6615         (validate_pattern): Verify that mach_dup is duplicating operand
6616         defined lexically earlier.
6617
6618 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
6619
6620         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
6621         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
6622         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
6623         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
6624         config/ia64/ia64.h, config/ip2k/ip2k.h,
6625         config/iq2000/iq2000.h, config/mips/iris5.h,
6626         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
6627         config/rs6000/aix51.h, config/rs6000/aix52.h,
6628         config/rs6000/darwin.h, config/rs6000/rs6000.h,
6629         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
6630         config/sparc/linux.h, config/sparc/linux64.h,
6631         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
6632         config/xtensa/xtensa.h: Remove the definitions of
6633         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
6634         MAX_WCHAR_TYPE_SIZE.
6635         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
6636         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
6637
6638 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
6639
6640         PR bootstrap/13990
6641         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
6642         gen_rtx_NE.
6643
6644 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
6645
6646         * var-tracking.c (vt_add_function_parameters): Surround checkings by
6647         #ifdef ENABLE_CHECKING and #endif.
6648
6649 2004-02-07  Roger Sayle  <roger@eyesopen.com>
6650
6651         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
6652         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
6653         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
6654         integer types and floating point with unsafe_math_optimizations.
6655         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
6656         Optimize A - B as A + (-B), if B is easily negated.
6657
6658 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
6659
6660         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
6661         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
6662         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
6663         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
6664         Update copyright.
6665
6666 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
6667
6668         * c-ppoutput.c, var-tracking.c: Fix comment typos.
6669
6670 2004-02-06  James E Wilson  <wilson@specifixinc.com>
6671
6672         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
6673         glibc 2.3 or better.
6674
6675 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
6676
6677         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
6678         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
6679
6680 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
6681
6682         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
6683         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
6684         (SHLIB_MKMAP_OPTS): Delete.
6685         (TARGET_LIBGCC2_CFLAGS): Add -specs.
6686         (bispecs): Add rule.
6687         * config/rs6000/libgcc-ppc64.ver: New file.
6688         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
6689         (__floatdidf, __floatdisf): Optimize multiply.
6690         (__fixunstfdi): New function.
6691         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
6692         real and imag parts larger than one register.
6693         (function_arg): Correct type of reg used when fp arg split partially
6694         to stack.
6695         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
6696         and __MACH__ or __powerpc64__.
6697
6698 2004-02-06  Roger Sayle  <roger@eyesopen.com>
6699             Ulrich Weigand  <uweigand@de.ibm.com>
6700
6701         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
6702         of gen_highpart or gen_lowpart when the floating point format is
6703         wider than the result mode.
6704
6705 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
6706
6707         * dwarf2out.c (loclabel_num): Move into #ifdef
6708         DWARF2_DEBUGGING_INFO.
6709
6710 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
6711
6712         * objc/objc-act.c (build_super_template) the 'class' field of
6713         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
6714         (get_super_receiver): Likewise.
6715
6716 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
6717
6718         * reload1.c (check_eliminable_occurrences): Optimize the reset
6719         of can_eliminate.
6720         (eliminate_regs_in_insn): Likewise.
6721
6722 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
6723             Josef Zlomek  <zlomekj@suse.cz>
6724
6725         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
6726         at the beginning of function, call dwarf2out_var_location for
6727         NOTE_INSN_VAR_LOCATION note.
6728         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
6729         decl_loc_table): New.
6730         (lookup_decl_loc): New function.
6731         (add_var_loc_to_decl): New function.
6732         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
6733         only if can_use_fbreg.
6734         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
6735         functions.
6736         (loc_descriptor): Likewise. Process VAR_LOCATION.
6737         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
6738         (loc_descriptor_from_tree): Call mem_loc_descriptor with
6739         can_use_fbreg == true.
6740         (add_location_or_const_value_attribute): Added parameter enum
6741         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
6742         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
6743         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
6744         with attr == DW_AT_location.
6745         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
6746         if frame_base_decl is defined and has a location list.
6747         (gen_variable_die): Call add_location_or_const_value_attribute with
6748         attr == DW_AT_location.
6749         (dwarf2out_var_location): New function.
6750         (dwarf2out_begin_function): New function.
6751         (dwarf2out_init): Create decl_loc_table.
6752
6753 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
6754
6755         * loop.c (force_movables): Transitively increase the priorities of
6756         all insns forces by an insn, not just the first one.
6757
6758 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
6759             Daniel Berlin <dberlin@dberlin.org>
6760
6761         Josef Zlomek  <zlomekj@suse.cz>
6762         * Makefile.in (var-tracking.o): New.
6763         * common.opt (fvar-tracking): New.
6764         * flags.h (flag_var_tracking): New.
6765         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
6766         * opts.c (common_handle_option): Add OPT_fvar_tracking.
6767         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
6768         * rtl.c (note_insn_name): Likewise.
6769         * rtl.def (VAR_LOCATION): New.
6770         * rtl.h (NOTE_VAR_LOCATION): New.
6771         (NOTE_VAR_LOCATION_DECL): New.
6772         (NOTE_VAR_LOCATION_LOC): New.
6773         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
6774         (variable_tracking_main): New exported function.
6775         * timevar.def (TV_VAR_TRACKING): New.
6776         * toplev.c (enum dump_file_index): Added DFI_vartrack.
6777         (dump_file): "vartrack" was added (-dV).
6778         (flag_var_tracking): New.
6779         (f_options): "var-tracking" was added.
6780         (rest_of_handle_variable_tracking): New function.
6781         (rest_of_compilation): Run variable tracking.
6782         (process_options): If user has not specified flag_var_tracking set it
6783         according to optimize, debug_info_level and debug_hooks.
6784         * tree.h (frame_base_decl): New.
6785         * var-tracking.c: New file.
6786         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
6787         (ia64_override_options): Set flags to run variable tracking in machine
6788         dependent reorg instead of toplev.c.
6789         (ia64_reorg): Run variable tracking if wanted.
6790         * doc/invoke.texi: Mention variable tracking in -dV,
6791         add and -fvar-tracking.
6792         * doc/passes.texi: Added variable tracking pass.
6793
6794         Daniel Berlin <dberlin@dberlin.org>
6795         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
6796         * dbxout.c (dbx_debug_hooks): Likewise.
6797         (xcoff_debug): Likewise.
6798         * debug.c (do_nothing_debug_hooks): Likewise.
6799         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
6800         * dwarfout.c (dwarf_debug_hooks): Likewise.
6801         * sdbout.c (sdb_debug_hooks): Likewise.
6802         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
6803         * final.c (final_scan_insn): Call var_location debug hook for each
6804         NOTE_INSN_VAR_LOCATION.
6805
6806 2004-02-06  Jan Hubicka  <jh@suse.cz>
6807
6808         * flow.c (update_life_info): Allocate reg_deaths when called from
6809         scheudler.
6810         (attempt_auto_inc):  Update life ranges accordingly.
6811
6812 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
6813
6814         PR debug/11816
6815         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
6816
6817 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
6818
6819         * cfganal.c (flow_call_edges_add): Never split a libcall block.
6820
6821 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
6822
6823         * dwarf2out.c (output_loc_list): Don't use deltas if we have
6824         a separate line info table in use.
6825         Use the correct size for terminators.
6826         (output_die): Use offset, not delta.
6827
6828 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
6829
6830         * doc/invoke.texi: Remove the pni option from -mfpmath=.
6831
6832 2004-02-06  Jan Hubicka  <jh@suse.cz>
6833
6834         * recog.c (split_all_insns): Do not update reg info.
6835         * regrename.c (regrename_optimize): Likewise.
6836         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
6837         * flow.c (struct propagate_block_info): Add insn_num field.
6838         (reg_deaths): New array.
6839         (life_analysis): Free reg_deaths info.
6840         (allocate_reg_life_data): Allocate reg_deaths array.
6841         (propagate_one_insn): Use new array.
6842         (init_propagate_block): Initialize it.
6843         (free_propagate_block_info): Finish compuation of
6844         REG_LIVE_LENGTH
6845         (attempt_auto_inc): Sanity check that REG_INFO is not
6846         computed at same time.
6847         (mark_used_regs): Update new array.
6848
6849         * reg-stack.c (subst_stack_regs): Unshare clobbers before
6850         substitution.
6851
6852 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
6853
6854         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
6855         *extendqisi2_short_displ.
6856
6857 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
6858
6859         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
6860         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
6861         (emit_library_call_value_1): Likewise pass nargs.
6862         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
6863         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
6864         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
6865         parameter instead of scanning TYPE_ARGS_TYPES to count args.
6866         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
6867         prototype.
6868         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
6869         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
6870         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
6871         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
6872         INIT_CUMULATIVE_ARGS.
6873         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
6874         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
6875         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
6876         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
6877         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
6878         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
6879         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
6880         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
6881         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
6882         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
6883         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
6884         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
6885
6886 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
6887
6888         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
6889         possible.
6890
6891 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
6892
6893         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
6894         note containing (plus (reg) (const_int)), where reg is an
6895         eliminable reg, then perform the register elimination without
6896         depending on eliminate_regs().
6897
6898 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
6899
6900         * config/arc/arc.c (arc_return_in_memory): Check the return
6901         value of int_size_in_bytes against -1.  Don't check
6902         TREE_ADDRESSABLE.
6903         * config/avr/avr.c (avr_return_in_memory): Check the return
6904         value of int_size_in_bytes against -1.
6905         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
6906         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
6907         Likewise.
6908         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
6909         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
6910         Likewise.
6911
6912 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
6913
6914         * config/frv/frv-protos.h: Remove the prototype for
6915         frv_setup_incoming_varargs.
6916         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
6917         (frv_setup_incoming_varargs): Make it static.
6918         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
6919
6920 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
6921
6922         * config/fr30/fr30-protos.h: Remove the prototype for
6923         fr30_setup_incoming_varargs.
6924         Update the prototypes for fr30_num_arg_regs and
6925         fr30_function_arg_partial_nregs.
6926         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
6927         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
6928         (fr30_setup_incoming_varargs): Make it static.
6929         Add argument second_time.  Don't do anything when second_time
6930         is nonzero.
6931         (fr30_num_arg_regs): Change the type of the first argument to
6932         enum machine_mode.
6933         (fr30_function_arg_partial_nregs): Change the type of the
6934         second argument to enum machine_mode.
6935         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
6936         (SETUP_INCOMING_VARARGS): Remove.
6937
6938 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
6939
6940         * config/arc/arc-protos.h: Remove the prototype for
6941         arc_setup_incoming_varargs.
6942         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
6943         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
6944         (arc_setup_incoming_varargs): Make it static.
6945         (arc_external_libcall): Likewise.
6946         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
6947         Remove the commented-out definition of
6948         ASM_OUTPUT_EXTERNAL_LIBCALL.
6949
6950 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
6951
6952         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
6953         to $$(slibdir) in the installation commands.
6954
6955 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
6956
6957         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
6958         with inner_regno, not regno.
6959         * rtlanal.c (refers_to_regno_p): Same.
6960
6961 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
6962
6963         * config.gcc: Remove i370 support.
6964
6965 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
6966
6967         * doc/install.texi:  Update automake and autoconf version
6968         requirements.  Note where to find gcj automake version.
6969
6970 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
6971
6972         * Makefile.in (generate-manpages): Move dependencies to ...
6973         (man): here.
6974         * doc/makefile.texi: Document new targets.
6975         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
6976
6977 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
6978
6979         PR/13485
6980         Makefile.in (srcextra):  Add a level of indirection to ...
6981         (gcc.srcextra): ... here.
6982         (po-generated): Delete.
6983         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
6984         options.c.
6985         (start.encap): Remove superfluous lang.srcextra dependency.
6986         objc/Make-lang.in (po-generated):  Delete.
6987
6988 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
6989
6990         * config/ia64/ia64.c (REG_GP): Remove.
6991
6992 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6993
6994         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
6995
6996 2004-02-05  Devang Patel  <dpatel@apple.com>
6997
6998         * dwarf2out.c (force_type_die): Look up input type itself
6999         instead of root_type() of type.
7000
7001 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
7002
7003         * config/s390/s390.md ("*tmqidi_ext"): New insn.
7004         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
7005         pre-reload splitters are transformed to post-reload
7006         define_insn_and_split patterns.
7007         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
7008
7009 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7010
7011         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
7012         TARGET_PROMOTE_PROTOTYPES.
7013
7014 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7015
7016         PR middle-end/13750
7017         Revert:
7018         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
7019         PR pch/13361
7020         * c-typeck.c (constructor_asmspec): Delete.
7021         (struct initializer_stack): Delete field 'asmspec'.
7022         (start_init): Delete saving of asmspec.
7023         (finish_init): Don't update constructor_asmspec.
7024         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
7025         * stmt.c (expand_asm): Duplicate strings from tree.
7026         (expand_asm_operands): Likewise.
7027         * tree.c (tree_size): Update computation of size of STRING_CST.
7028         (make_node): Don't make STRING_CST nodes.
7029         (build_string): Allocate string with tree node.
7030         * tree.def (STRING_CST): Update comment.
7031         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
7032         (tree_string): Place contents of string in tree node.
7033         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
7034         from tree.
7035
7036 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
7037
7038         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
7039         msgid.
7040
7041 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
7042
7043         * config/rs6000/altivec.md (*movv4si_internal): At least one
7044         operand must be altivec_register_operand.
7045         (*movv8hi_internal1): Likewise.
7046         (*movv16qi_internal1): Likewise.
7047         (*movv4sf_internal1): Likewise.
7048
7049 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
7050
7051         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
7052         * configure: Regenerate.
7053
7054 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
7055
7056         * doc/install.texi: Update description of --gxx-include-dir to
7057         give correct default value.
7058
7059 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7060
7061         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
7062         8 with MAC_REG.
7063
7064 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7065
7066         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
7067         gen_rtx_PARALLEL.
7068
7069 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7070
7071         * emit-rtl.c: Update the comment about the file.
7072
7073 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
7074
7075         * sourcebuild.texi (Test Idioms): Update testcase naming
7076         conventions.
7077
7078 2004-02-04  Per Bothner  <per@bothner.com>
7079
7080         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
7081         * c-ppoutput.c (pp_dir_change):  New function.
7082         * c-common.h (pp_dir_change):  New declaration.
7083         * cpplib.h (struct cpp_options):  Remove working_directory field.
7084         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
7085         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
7086         Don't handle -fworking_directory here, but in c_common_post_options.
7087         (read_original_directory): Don't back up when done.
7088         Don't clear no-longer used working_directory flag.
7089         * cpplib.h:  Update declarations to match.
7090         * c-lex.c (cb_dir_change):  Move to c-opts.c.
7091         (init_c_lex):  Don't set dir_change callback here, since we want
7092         to set it even if flag_preprocess_only.
7093         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
7094         (c_common_post_options):  Set dir_change callback.
7095         Call pp_dir_change if approporiate.
7096         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
7097         unneeded parameter and result. Do LC_RENAME for <built-in>.
7098         (c_common_post_options):  Call cpp_read_main_file here instead.
7099         (c_common_init):  Update accordingly.
7100         (push_command_line_include):  Don't cpp_push_main_file.
7101         Do LC_RENAME rather than LC_LEASE to get back to main file.
7102         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
7103         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
7104         files, but call finish_options for all files.
7105         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
7106         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
7107         cpp_find_main_file + cpp_push_main_file.
7108         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
7109         * opts.c (handle_options):  Only set main_input_filename first time.
7110
7111 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
7112
7113         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
7114
7115 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
7116
7117         * reload.c (find_equiv_reg): When checking for register overlap,
7118         don't index hard_regno_nregs with a pseudo-reg.
7119
7120 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
7121
7122         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
7123
7124 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
7125
7126         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
7127         against FIRST_PSEUDO_REGISTER.
7128
7129 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7130
7131         * Makefile.in: Move target, host overrides after per-language
7132         fragments.
7133
7134         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
7135         (GNATLIBCFLAGS): Remove -g.
7136
7137 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7138
7139         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
7140         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
7141         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
7142         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
7143         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
7144         config/sparc/sparc.c, config/vax/vax.c: Revert the
7145         replacements of "FALLTHRU" with "Fall through" done in the
7146         previous patch.
7147
7148 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7149
7150         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
7151         config/arm/arm.c, config/arm/arm.md,
7152         config/cris/cris-protos.h, config/fr30/fr30.c,
7153         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
7154         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
7155         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
7156         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
7157         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
7158         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
7159         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
7160         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
7161         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
7162         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
7163         config/s390/s390.md, config/sparc/netbsd-elf.h,
7164         config/sparc/openbsd.h, config/sparc/sparc.c,
7165         config/xtensa/lib2funcs.S: Fix comment formatting.
7166
7167 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7168
7169         * config/alpha/alpha.c, config/arc/arc.c,
7170         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
7171         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
7172         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
7173         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
7174         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
7175         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
7176         config/iq2000/iq2000.c, config/m32r/m32r.c,
7177         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
7178         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
7179         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
7180         config/rs6000/rs6000.h, config/sparc/sparc.c,
7181         config/vax/vax.c: Fix comment typos.  Follow spelling
7182         conventions.
7183
7184 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7185
7186         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
7187         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
7188         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
7189         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
7190         config/arm/fpa.md, config/arm/iwmmxt.md,
7191         config/arm/netbsd-elf.h, config/arm/netbsd.h,
7192         config/m68hc11/m68hc11.md, config/mips/iris5.h,
7193         config/mn10300/mn10300.md, config/rs6000/altivec.md,
7194         config/sparc/netbsd-elf.h: Update copyright.
7195
7196 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
7197
7198         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
7199         for all modes whose size is greater than 8 bytes if ARCH32.
7200         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
7201         by reference if ARCH32.
7202
7203 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
7204
7205         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
7206
7207 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
7208
7209         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
7210         to before adddi3 insn patterns.
7211         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
7212         "reload_insi"): Move to before addsi3 insn patterns.
7213
7214 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
7215
7216         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
7217         parameter.  Use it instead of current_function_is_thunk.
7218         * function.h (struct function): Update documentation for is_thunk.
7219         * tree.h (CALL_FROM_THUNK_P): New macro.
7220         * config/alpha/alpha.c (alpha_sa_mask): Do not check
7221         no_new_pseudos when testing current_function_is_thunk.
7222         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
7223
7224 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7225
7226         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
7227         TARGET_SETUP_INCOMING_VARARGS.
7228
7229 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7230
7231         * emit-rtl.c (gen_rtx): Remove.
7232         * genattrtab.c: Don't mention gen_rtx in a comment.
7233         * rtl.h: Remove the prototype for gen_rtx.
7234         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
7235
7236 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7237
7238         * config/arc/arc.h, config/fr30/fr30.h
7239         (SETUP_INCOMING_VARARGS): Remove the target-independent
7240         comments.
7241         * doc/tm.texi: Don't mention deprecated target macros.
7242
7243 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7244
7245         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
7246         target-independent comment.
7247
7248 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7249
7250         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
7251         mention deprecated target macros.
7252
7253 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7254
7255         * config.gcc: Remove obsolete ports and configurations.
7256         * config/linux-aout.h, config/netware.h,
7257         config/t-linux-gnulibc1, config/d30v/abi,
7258         config/d30v/d30v-protos.h, config/d30v/d30v.c,
7259         config/d30v/d30v.h, config/d30v/d30v.md,
7260         config/d30v/libgcc1.asm, config/d30v/t-d30v,
7261         config/dsp16xx/dsp16xx-modes.def,
7262         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
7263         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
7264         config/i370/README, config/i370/i370-c.c,
7265         config/i370/i370-protos.h, config/i370/i370.c,
7266         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
7267         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
7268         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
7269         config/i386/moss.h, config/i386/netware.h,
7270         config/i386/svr3.ifile, config/i386/svr3dbx.h,
7271         config/i386/svr3gas.h, config/i386/svr3z.ifile,
7272         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
7273         config/i960/i960-c.c, config/i960/i960-coff.h,
7274         config/i960/i960-modes.def, config/i960/i960-protos.h,
7275         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
7276         config/i960/rtems.h, config/i960/t-960bare,
7277         config/m68k/hp310.h, config/m68k/hp320.h,
7278         config/m68k/hp320base.h, config/m68k/m68kv4.h,
7279         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
7280         Remove.
7281         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
7282         doc/md.texi: Remove mentions of obsolete ports.
7283
7284 2004-02-04  Jan Hubicka  <jh@suse.cz>
7285
7286         * alias.c (find_base_term, get_addr):  Do not dereference NULL
7287         pointer when all VALUE's locations has been invalidated.
7288         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
7289
7290 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
7291
7292         * doc/invoke.texi (x86 options): Fix spelling/wording.
7293
7294 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
7295
7296         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
7297         put the original string in a comment.
7298         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
7299         * config/mips/mips.c (mips_output_ascii): Likewise.
7300         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
7301
7302 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
7303
7304         * system.h (GIV_SORT_CRITERION): Poison.
7305         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
7306         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
7307
7308 2004-02-03  Roger Sayle  <roger@eyesopen.com>
7309
7310         PR target/9348
7311         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
7312         multiplies with a multiplication of the wrong signedness, its the
7313         signedness of the multiplication that we've performed that needs to
7314         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
7315         if expand_mult_highpart_adjust places the result in target.
7316
7317 2004-02-03  Richard Henderson  <rth@redhat.com>
7318
7319         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
7320
7321 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
7322
7323         * config.gcc (sh[234]l): Use little endian fragments.
7324
7325 2004-02-03  Paul Koning  <pkoning@equallogic.com>
7326
7327         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
7328         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
7329         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
7330         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
7331         floating point format.
7332         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
7333         the above functions.
7334         (output_move_quad): Output float values in correct target format.
7335         (legitimate_const_double_p): New function.
7336         * config/pdp11/pdp11.h: Fix typos.
7337         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
7338         (TARGET_FLOAT_FORMAT): Ditto.
7339         (pdp11_f_format, pdp11_d_format): Add external declarations.
7340         (MAX_REGS_PER_ADDRESS): Corrected.
7341         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
7342         (PRINT_OPERAND): Output float literals in target format.
7343
7344 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
7345
7346         PR c++/13975
7347         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
7348         TI_PRIVATE.
7349         (access_public_node): Redefine.
7350         (access_protected_node): Likewise.
7351         (access_private_node): Likewise.
7352         * tree.c (build_common_tree_nodes): Create access_public_node,
7353         access_protected_node, and access_private_node.
7354
7355 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
7356
7357         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
7358         (MASK_INLINE_INT_DIV_THR): Ditto.
7359         (MASK_INLINE_SQRT_LAT): Ditto.
7360         (MASK_INLINE_SQRT_THR): Ditto.
7361         (MASK_DWARF2_ASM): Ditto.
7362         (MASK_EARLY_STOP_BITS): Ditto.
7363
7364 2004-02-02  Paul Brook  <paul@codesourcery.com>
7365
7366         Merge from csl-arm-branch.
7367
7368         2004-01-30  Paul Brook  <paul@codesourcery.com>
7369
7370         * aof.h (REGISTER_NAMES): Add vfp reg names
7371         (ADDITIONAL_REGISTER_NAMES): Ditto.
7372         * aout.h (REGISTER_NAMES): Ditto.
7373         (ADDITIONAL_REGISTER_NAMES): Ditto.
7374         * arm-protos.h: Update/Add Prototypes.
7375         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
7376         Only allow 0.0 for VFP.
7377         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
7378         (values_fp): Rename from values_fpa.  Update Users.
7379         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
7380         Update users.  Only check valid constants for this hardware.
7381         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
7382         Only allow consts for FPA.
7383         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
7384         Only allow consts for FPA.
7385         (use_return_insn): Check for saved VFP regs.
7386         (arm_legitimate_address_p): Handle VFP DFmode addressing.
7387         (arm_legitimize_address): Ditto.
7388         (arm_general_register_operand): New function.
7389         (vfp_mem_operand): New function.
7390         (vfp_compare_operand): New function.
7391         (vfp_secondary_reload_class): New function.
7392         (arm_float_compare_operand): New function.
7393         (vfp_print_multi): New function.
7394         (vfp_output_fstmx): New function.
7395         (vfp_emit_fstm): New function.
7396         (arm_output_epilogue): Output VPF reg restore code.
7397         (arm_expand_prologue): Output VFP reg save code.
7398         (arm_print_operand): Add 'P'.
7399         (arm_hard_regno_mode_ok): Return modes for VFP regs.
7400         (arm_regno_class): Return classes for VFP regs.
7401         (arm_compute_initial_elimination_offset): Include space for VFP regs.
7402         (arm_get_frame_size): Ditto.
7403         * arm.h (FIXED_REGISTERS): Add VFP regs.
7404         (CALL_USED_REGISTERS): Ditto.
7405         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
7406         (FIRST_VFP_REGNUM): Define.
7407         (LAST_VFP_REGNUM): Define.
7408         (IS_VFP_REGNUM): Define.
7409         (FIRST_PSEUDO_REGISTER): Include VFP regs.
7410         (HARD_REGNO_NREGS): Handle VFP regs.
7411         (REG_ALLOC_ORDER): Add VFP regs.
7412         (enum reg_class): Add VFP_REGS.
7413         (REG_CLASS_NAMES): Ditto.
7414         (REG_CLASS_CONTENTS): Ditto.
7415         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
7416         (REG_CLASS_FROM_LETTER): Add 'w'.
7417         (EXTRA_CONSTRAINT_ARM): Add 'U'.
7418         (EXTRA_MEMORY_CONSTRAINT): Define.
7419         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
7420         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
7421         (REGISTER_MOVE_COST): Ditto.
7422         (PREDICATE_CODES): Add arm_general_register_operand,
7423         arm_float_compare_operand and vfp_compare_operand.
7424         * arm.md (various): Rename as above.
7425         (divsf3): Enable when TARGET_VFP.
7426         (divdf3): Ditto.
7427         (movdfcc): Ditto.
7428         (sqrtsf2): Ditto.
7429         (sqrtdf2): Ditto.
7430         (arm_movdi): Disable when TARGET_VFP.
7431         (arm_movsi_insn): Ditto.
7432         (movsi): Only split with general regs.
7433         (cmpsf): Use arm_float_compare_operand.
7434         (push_fp_multi): Restrict to TARGET_FPA.
7435         (vfp.md): Include.
7436         * vfp.md: New file.
7437         * fpa.md (various): Rename as above.
7438         * doc/md.texi: Document ARM w and U constraints.
7439
7440         2004-01-15  Paul Brook  <paul@codesourcery.com>
7441
7442         * config.gcc: Add with_fpu.  Allow with-float=softfp.
7443         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
7444         Break out of loop when we find a float-abi.  Fix typo.
7445         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
7446         Set -mfloat-abi=.
7447         * doc/install.texi: Document --with-fpu.
7448
7449         2003-01-14  Paul Brook  <paul@codesourcery.com>
7450
7451         * config.gcc (with_arch): Add armv6.
7452         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
7453         * config/arm/arm.c (arm_overrride_options): Ditto.
7454
7455         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
7456
7457         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
7458         (FL_ARCH6): Renamed from FL_ARCH6J.
7459         (arm_arch3m): Renamed from arm_fast_multiply.
7460         (arm_arch6): Renamed from arm_arch6j.
7461         * arm.h: Update all uses of above.
7462         * arm-cores.def: Likewise.
7463         * arm.md: Likewise.
7464
7465         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
7466         not arm6j.  Add entry for arch armv6.
7467
7468         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
7469
7470         * arm.c (arm_emit_extendsi): Delete.
7471         * arm-protos.h (arm_emit_extendsi): Delete.
7472         * arm.md (zero_extendhisi2): Also handle zero-extension of
7473         non-subregs.
7474         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
7475         (thumb_zero_extendhisi2): Only match if not v6.
7476         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
7477         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
7478         (thumb_extendqisi2): Likewise.
7479         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
7480         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
7481         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
7482         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
7483         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
7484         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
7485         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
7486         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
7487         (arm_extendqisi2addsi): Likewise.
7488
7489         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
7490
7491         Revert this change:
7492         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
7493         + REG addressing modes.
7494
7495         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
7496         + REG addressing modes.
7497
7498         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
7499
7500         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
7501         CONSTANT_P_RTX.
7502
7503         2003-30-12  Paul Brook  <paul@codesourcery.com>
7504
7505         * longlong.h: protect arm inlines with !defined (__thumb__)
7506
7507         2003-30-12  Paul Brook  <paul@codesourcery.com>
7508
7509         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
7510
7511         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
7512
7513         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
7514         change.
7515
7516         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
7517
7518         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
7519         to the virtual incoming args pointer for downward stacks.
7520
7521         2003-12-29  Paul Brook  <paul@codesourcery.com>
7522
7523         * config/arm/arm-cores.def: Add cost function.
7524         * config/arm/arm.c (arm_*_rtx_costs): New functions.
7525         (arm_rtx_costs): Remove
7526         (struct processors): Add rtx_costs field.
7527         (all_cores, all_architectures): Ditto.
7528         (arm_override_options): Set targetm.rtx_costs.
7529         (thumb_rtx_costs): New function.
7530         (arm_rtx_costs_1): Remove cases handled elsewhere.
7531         * config/arm/arm.h (processor_type): Add COSTS parameter.
7532
7533         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
7534
7535         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
7536         (arm926ejs.md): Include it.
7537         * config/arm/arm926ejs.md: New pipeline description.
7538
7539         2003-12-24  Paul Brook  <paul@codesourcery.com>
7540
7541         * config/arm/arm.c (arm_arch6j): New variable.
7542         (arm_override_options): Set it.
7543         (arm_emit_extendsi): New function.
7544         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
7545         * config/arm/arm.h (arm_arch6j): Declare.
7546         * config/arm/arm.md: Add sign/zero extend insns.
7547
7548         2003-12-23  Paul Brook  <paul@codesourcery.com>
7549
7550         * config/arm/arm.c (all_architectures): Add armv6.
7551         * doc/invoke.texi: Document it.
7552
7553         2003-12-19  Paul Brook  <paul@codesourcery.com>
7554
7555         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
7556         insn patterns to match.
7557         * config/arm/arm-generic.md: Ditto.
7558         * config/arm/cirrus.md: Ditto.
7559         * config/arm/fpa.md: Ditto.
7560         * config/amm/iwmmxt.md: Ditto.
7561         * config/arm/arm1026ejs.md: Ditto.
7562         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
7563         for 11_loadb.
7564
7565         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
7566
7567         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
7568         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
7569         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
7570         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
7571         arm_no_early_mul_dep): Correctly deal with conditional execution,
7572         parallels and single shift operations.
7573         (arm_no_early_alu_shift_value_dep): Define.
7574         * arm.md (attr type): Replace 'normal' with 'alu',
7575         'alu_shift' and 'alu_shift_reg'.
7576         (attr core_cycles): Adjust.
7577         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
7578         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
7579         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
7580         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
7581         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
7582         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
7583         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
7584         attribute appropriately.
7585         * config/arm/arm1026ejs.md (alu_op): Adjust.
7586         (alu_shift_op, alu_shift_reg_op): New.
7587         * config/arm/arm1136.md: Add better bypasses for early
7588         registers. Remove load[234] and store[234] bypasses.
7589         (11_alu_op): Adjust.
7590         (11_alu_shift_op, 11_alu_shift_reg_op): New.
7591
7592         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
7593
7594         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
7595         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
7596         * config/arm/arm.c (arm_no_early_store_addr_dep,
7597         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
7598         * config/arm/arm1026ejs.md: Add load-store bypass.
7599         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
7600         Add bypasses between instructions.
7601
7602         2003-12-10  Paul Brook  <paul@codesourcery.com>
7603
7604         * config/arm/arm.c (arm_fpu_model): New variable.
7605         (arm_fload_abi): New variable.
7606         (target_fpe_name): Rename from target_fp_name.
7607         (target_fpu_name): New variable.
7608         (arm_is_cirrus): Remove.
7609         (fpu_desc): New struct.
7610         (all_fpus): Define.
7611         (pf_model_for_fpu): Define.
7612         (all_loat_abis): Define.
7613         (arm_override_options): Set fp arch flags based on -mfpu=
7614         and -float-abi=.
7615         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
7616         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
7617         (*): Use new TARGET_* flags.
7618         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
7619         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
7620         (TARGET_SOFT_FLOAT): Ditto.
7621         (TARGET_SOFT_FLOAT_ABI): New.
7622         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
7623         TARGET_HARD_FLOAT.
7624         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
7625         (TARGET_OPTIONS): Add -mfpu=.
7626         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
7627         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
7628         (arm_pf_model): Define.
7629         (arm_float_abi_type): Define.
7630         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
7631         * config/arm/arm.md: Use new TARGET_* flags.
7632         * config/arm/cirrus.md: Ditto.
7633         * config/arm/fpa.md: Ditto.
7634         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
7635         * config/arm/semi.h (ASM_SPEC): Ditto.
7636         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
7637         (FPUTYPE_DEFAULT): Set to VFP.
7638         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
7639
7640         2003-11-22  Phil Edwards  <phil@codesourcery.com>
7641
7642         PR target/12476
7643         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
7644         'bx' instead of 'b' to avoid branch range restrictions.  Output
7645         the thunk immediately before the thunked-to function.
7646         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
7647         .thumb_func if a thunk is being generated.  Emit .code 16 along
7648         with .thumb_func if a thunk is not being generated.
7649
7650         2003-11-15  Nicolas Pitre <nico@cam.org>
7651
7652         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
7653         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
7654         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
7655         (lshrdi3_iwmmxt): Renamed from lshrdi3.
7656         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
7657
7658         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
7659             Ian Lance Taylor  <ian@wasabisystems.com>
7660
7661         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
7662         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
7663
7664         2003-11-05  Phil Edwards  <phil@codesourcery.com>
7665
7666         * config/arm/arm.md (insn):  Add new V6 instruction names.
7667         (generic_sched):  New attr.
7668         * config/arm/arm-generic.md:  Use generic_sched here.
7669         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
7670         stages of pipeline.  Adjust latency counts accordingly.
7671         * config/arm/arm1136jfs.md:  New file.
7672
7673         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
7674
7675         * config/arm/arm.h (processor_type): New enumeration type.
7676         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
7677         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
7678         (CPP_CPU_ARCH_SPEC): Likewise.
7679         * config/arm/arm.c (arm_tune): New variable.
7680         (all_cores): Use cores.def.
7681         (all_architectures): Add representative processor.
7682         (arm_override_options): Restructure way in which tuning
7683         information is deduced.
7684         * arm.md: Update "insn" and "type" attributes throughout.
7685         (insn): New attribute.
7686         (type): Compute "mult" from "insn" attribute.  Add load2,
7687         load3, load4 alternatives.
7688         (arm automaton): Move to arm-generic.md.
7689         * config/arm/arm-cores.def: New file.
7690         * config/arm/arm-generic.md: Likewise.
7691         * config/arm/arm1026ejs.md: Likewise.
7692
7693 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
7694
7695         * doc/invoke.texi (SPARC options): Remove -mflat and
7696         all -mxxx (xxx:chip) options.
7697         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
7698         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
7699         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
7700         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
7701         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
7702         * config/sparc/sparc.c: Likewise.
7703         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
7704         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
7705         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
7706         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
7707         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
7708         (sparc_flat_must_save_register_p): Likewise.
7709         (sparc_flat_compute_frame_size): Likewise.
7710         (sparc_flat_save_restore): Likewise.
7711         (sparc_flat_function_prologue): Likewise.
7712         (sparc_flat_function_epilogue): Likewise.
7713         (sparc_flat_epilogue_delay_slots): Likewise.
7714         (sparc_flat_eligible_for_epilogue_delay): Likewise.
7715         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
7716         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
7717         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
7718         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
7719         (CONDITIONAL_REGISTER_USAGE): Likewise.
7720         (FRAME_POINTER_REQUIRED): Likewise.
7721         (INITIAL_ELIMINATION_OFFSET): Likewise.
7722         (BASE_RETURN_VALUE_REG): Likewise.
7723         (BASE_OUTGOING_VALUE_REG): Likewise.
7724         (BASE_PASSING_ARG_REG): Likewise.
7725         (BASE_INCOMING_ARG_REG): Likewise.
7726         (INCOMING_REGNO): Likewise.
7727         (OUTGOING_REGNO): Likewise.
7728         (LOCAL_REGNO): Likewise.
7729         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
7730         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
7731         (EPILOGUE_USES): Likewise.
7732         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
7733         ("flat" attribute): Delete.
7734         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
7735         handling.
7736         (call followed by jump define_peephole's): Delete.
7737         (exception_receiver): Likewise.
7738         (builtin_setjmp_receiver): Likewise.
7739         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
7740
7741 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
7742
7743         PR c/11658
7744         PR c/13994
7745         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
7746         on langhooks.h.
7747         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
7748         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
7749         Include langhooks.h.  Replace c_common_truthvalue_conversion
7750         with the truthvalue_conversion language hook throughout.
7751         (expr_no_commas): Call default_conversion before save_expr
7752         for the first term of the production 'x ? : y'.
7753         * c-common.c (c_common_truthvalue_conversion): Remove
7754         obsolete block.  Invoke recursively the hook instead
7755         of this function.
7756         * c-convert.c (convert): handle ERROR_MARK_NODE.
7757         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
7758         returned by the truthvalue_conversion language hook.
7759         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
7760         c_objc_common_truthvalue_conversion.
7761         * c-objc-common.c (c_objc_common_truthvalue_conversion):
7762         New function.
7763         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
7764         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
7765         c_objc_common_truthvalue_conversion.
7766
7767 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
7768
7769         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
7770         of gen_rtx.
7771         (LIBCALL_VALUE): Likewise.
7772         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
7773         gen_rtx_CC0 instead of gen_rtx.
7774         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
7775         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
7776         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
7777         gen_rtx.
7778         (m68hc11_emit_logical): Likewise.
7779
7780 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
7781
7782         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
7783         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
7784         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
7785         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
7786         config/mips/mips.md, config/mmix/mmix.c,
7787         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
7788         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
7789         config/rs6000/altivec.md, config/s390/s390.c,
7790         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
7791         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
7792         Use const0_rtx instead of GEN_INT (0).  Do the same for other
7793         constants that are readily available.
7794
7795 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
7796
7797         * doloop.c, optabs.c, regmove.c, sched-deps.c,
7798         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
7799         instead of GEN_INT (0).  Do the same for other constants that
7800         are readily available.
7801
7802 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
7803
7804         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
7805         gen_rtx.
7806         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
7807         instead of gen_rtx.
7808         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
7809         gen_rtx.
7810         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
7811         gen_rtx_ASHIFT instead of gen_rtx.
7812         (udivmodqi4): Likewise.
7813
7814 2004-02-02  Richard Henderson  <rth@redhat.com>
7815
7816         PR target/13789
7817         * expr.c (store_expr): Use force_operand before emit_move_insn.
7818
7819 2004-02-02  Jeff Law  <law@redhat.com>
7820             Roger Sayle  <roger@eyesopen.com>
7821
7822         * tree.c (commutative_tree_code, associative_tree_code): New
7823         functions.
7824         (iterative_hash_expr): Use commutative_tree_code.
7825         * tree.h (commutative_tree_code, associative_tree_code): Declare.
7826         * fold-const.c (operand_equal_p): Use commutative_tree_code
7827         rather than inlining the commutativity check.
7828         (fold): Likewise.
7829
7830 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
7831
7832         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
7833         * config/frv/frv-protos.h: Remove the prototype for
7834         frv_function_arg_keep_as_reference.
7835         * config/frv/frv.c (frv_function_arg_keep_as_reference):
7836         Remove.
7837         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
7838         * config/stormy16/stormy16.h: Remove the commented-out
7839         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
7840
7841 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
7842
7843         PR target/13914
7844         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
7845         for retaddr_column.
7846
7847 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
7848
7849         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
7850         gen_rtx.
7851
7852 2004-02-02  Eric Christopher  <echristo@redhat.com>
7853             Zack Weinberg  <zack@codesourcery.com>
7854
7855         * c-opts.c (c_common_handle_option): Add -finput-charset.
7856         * c.opt: Ditto.
7857         * cppcharset.c (one_iso88591_to_utf8): Remove.
7858         (convert_iso88591_utf8): Ditto.
7859         (conversion_tab): Remove 8859-1 converter.
7860         (_cpp_input_to_utf8): Remove.
7861         (_cpp_init_iconv_buffer): Ditto.
7862         (_cpp_close_iconv_buffer): Ditto.
7863         (_cpp_convert_input): New function.
7864         (_cpp_default_encoding): Ditto.
7865         * cpphash.h: Add/remove prototypes for above.
7866         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
7867         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
7868         for narrow execution and input character sets.
7869         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
7870         * doc/cppopts.texi: Document -finput-charset.
7871
7872 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
7873
7874         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
7875         against FIRST_PSEUDO_REGISTER.
7876
7877 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
7878
7879         * doc/invoke.texi (SPARC options): Further improve.
7880
7881 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
7882
7883         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
7884         config/h8300/h8300.c, config/ip2k/ip2k.md,
7885         config/iq2000/iq2000.c, config/mips/mips.c,
7886         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
7887         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
7888         config/v850/v850.md: Fix indentation.
7889
7890 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
7891
7892         * config/sparc/sparc.c (function_arg_slotno): Align TImode
7893         arguments on a 16-byte boundary in the parameter array if ARCH64.
7894         Split handling of TFmode.
7895
7896 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
7897
7898         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
7899         Don't test CONSTANT_P (x).
7900         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
7901         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
7902         Fix misindentation.
7903
7904 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
7905
7906         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
7907
7908 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
7909
7910         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
7911         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
7912         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
7913         config/iq2000/iq2000.c, config/m32r/m32r.c,
7914         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
7915         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
7916         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
7917         config/stormy16/stormy16.c, config/v850/v850.md,
7918         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
7919
7920 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
7921
7922         * config/mcore/mcore.c (block_move_sequence): Replace
7923         gen_rtx_CONST_INT with GEN_INT.
7924
7925 2004-02-02  Jan Hubicka  <jh@suse.cz>
7926
7927         * alias.c (record_set): Use hard_regno_nregs.
7928         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
7929         * builtins.c (apply_args_size): Likewise.
7930         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
7931         mark_set_regs, add_stored_regs, mark_referenced_regs,
7932         insert_restore, insert_save, insert_one_insn): Likewise.
7933         * cfgcleanup.c: Include regs.h
7934         (mark_effect, mentions_nonequal_regs): Likewise.
7935         * cfgrtl.c (mark_killed_regs): Likewise
7936         * combine.c (update_table_tick, record_value_for_reg,
7937         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
7938         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
7939         reg_bitfield_target_p, distribute_notes): Likewise.
7940         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
7941         exp_equiv_p, cse_insn): Likewise.
7942         * cselib.c (cselib_lookup): Likewise.
7943         (cselib_invalidate_regno, cselib_record_set): Likewise.
7944         * df.c (df_ref_record): Likewise.
7945         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
7946         Likewise.
7947         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
7948         count_or_remove_death_notes_bb): Likewise.
7949         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
7950         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
7951         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
7952         * integrate.c (mark_stores): Likewise.
7953         * jump.c (delete_prior_computation): Likewise.
7954         * lcm.c (reg_dies, reg_becomes_live): Likewise.
7955         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
7956         * loop.c (LOOP_REGNO_NREGS): Likewise.
7957         * postreload.c (reload_combine, reload_combine_note_store,
7958         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
7959         * ra-colorize.c (combine, color_usable_p, get_free_reg,
7960         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
7961         try_recolor_web, insert_coalesced_conflicts, check_colors,
7962         break_precolored_alias): Likewise.
7963         * ra-debug.c: Include regs.h
7964         (ra_print_rtx_object): Likewise.
7965         * ra-rewrite (choose_spill_colors): Likewise.
7966         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
7967         * ra.c (init_ra): Likewise.
7968         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
7969         peep2_find_free_register): Likewise.
7970         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
7971         * regclass.c (hard_regno_nregs): New array.
7972         (init_reg_modes_once): Initialize it.
7973         (choose_hard_reg_mode): Use it.
7974         (record_reg_classes): Likewise.
7975         * regmove.c (mark_flags_life_zones): Likewise.
7976         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
7977         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
7978         copy_value, maybe_mode_change, find_oldest_value_reg,
7979         copyprop_hardreg_forward_1):
7980         * regs.h (hard_regno_nregs): Declare.
7981         * realod.c (reload_inner_reg_of_subreg): Use it.
7982         (push_reload, combine_reloads, find_dummy_reload,
7983         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
7984         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
7985         reload_adjust_reg_for_mode): Likewise.
7986         * reload1.c (compute_use_by_pseudos, count_pseudo,
7987         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
7988         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
7989         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
7990         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
7991         delete_output_reload): Likewise.
7992         * resource.c (update_live_status, mark_referenced_resources,
7993         mark_set_resources, mark_target_live_regs): Likewise.
7994         * rtlanal.c:  Include regs.h
7995         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
7996         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
7997         subreg_regno_offset, subreg_offset_representable_p,
7998         hoist_test_store): Likewise.
7999         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
8000         * sched-rgn.c (check_live_1, update_live_1): Likewise.
8001         * stmt.c: Include regs.h
8002         (decl_conflicts_with_clobbers_p): Likewise.
8003         * varasm.c (make_decl_rtl): Likewise.
8004         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
8005
8006 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
8007
8008         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
8009         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
8010         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
8011         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
8012         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
8013         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
8014         config/iq2000/iq2000.h, config/m32r/m32r.c,
8015         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
8016         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
8017         config/mcore/mcore.c, config/mcore/mcore.h,
8018         config/mcore/mcore.md, config/mips/mips.c,
8019         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
8020         config/rs6000/rs6000.c, config/s390/s390.c,
8021         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
8022         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
8023         "gen_rtx (FOO, " with "gen_rtx_FOO (".
8024
8025 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
8026
8027         * config/h8300/h8300.md (two peephole2's): New.
8028
8029 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
8030
8031         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
8032         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
8033         (ASM_CPU_SPEC): Likewise
8034         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
8035         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
8036
8037 2004-02-01  Roger Sayle  <roger@eyesopen.com>
8038
8039         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
8040         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
8041         (expand_builtin): Always call expand_builtin_pow.
8042
8043 2004-02-01  Roger Sayle  <roger@eyesopen.com>
8044
8045         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
8046         BUILT_IN_SIGNBITL): New GCC builtins.
8047         * builtins.c (expand_builtin_signbit): New function to RTL expand
8048         calls to signbit, signbitf and signbitl as inline intrinsics.
8049         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
8050         (fold_builtin_signbit): New function to perform constant folding
8051         of signbit, signbitf and signbitl.
8052         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
8053
8054         * doc/extend.texi: Document new signbit{,f,l} builtins.
8055
8056 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
8057
8058         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
8059
8060 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
8061
8062         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
8063         "mips_const_double_ok" and "simple_memory_operand", which were
8064         removed from the MIPS port with the mips-3_4-rewrite branch merge.
8065         * config/mips/mips.c (mips16_lay_out_constants): Update comment
8066         for removal of simple_memory_operand.
8067
8068 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8069
8070         * config/c4x/c4x.md: Use GEN_INT instead of
8071         gen_rtx (CONST_INT, ...).
8072
8073 2004-01-31  Richard Henderson  <rth@redhat.com>
8074
8075         * varasm.c (output_constant_pool): Don't zap the pool.
8076
8077 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8078
8079         * genrecog.c (decision_type): Add DT_const_int.
8080         (write_cond) [DT_const_int]: Print a comparison against small
8081         constant.
8082         (write_node): Simplify comparisons against small constants
8083         before printing tests.
8084
8085 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8086
8087         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
8088         instead of gen_rtx_CONST_INT.
8089
8090 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8091
8092         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
8093         instead of gen_rtx_CONST_INT.
8094
8095 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8096
8097         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
8098         hook_bool_CUMULATIVE_ARGS_false.
8099         * targhooks.c (default_strict_argument_naming): Rename to
8100         hook_bool_CUMULATIVE_ARGS_false.
8101         * targhooks.h: Update the prototype for
8102         default_strict_argument_naming.
8103
8104 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8105
8106         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
8107         * config/sh/sh.h: Likewise.
8108         * config/sh/sh.md: Likewise.
8109
8110 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
8111
8112         * doc/invoke.texi (SPARC options): Restructure and update.
8113
8114 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8115
8116         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
8117         STRICT_ARGUMENT_NAMING): Poison.
8118         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
8119         hook_bool_tree_false.
8120         * targhooks.c (default_promote_function_args): Remove.
8121         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
8122         Don't check incoming.
8123         (default_strict_argument_naming): Don't use
8124         STRICT_ARGUMENT_NAMING.
8125         * targhooks.h: Remove the prototype for
8126         default_promote_function_args.
8127
8128 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8129
8130         * config/i386/i386-protos.h: Remove the prototype for
8131         ix86_setup_incoming_varargs.
8132         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
8133         (ix86_setup_incoming_varargs): Make it static.
8134         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
8135
8136 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8137
8138         * alloc-pool.c: Fix comment typos.
8139         * builtin-types.def: Likewise.
8140         * builtins.def: Likewise.
8141         * c-pretty-print.c: Likewise.
8142         * df.h: Likewise.
8143         * reload1.c: Likewise.
8144
8145 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8146
8147         * doc/invoke.texi: Follow spelling conventions.
8148         * doc/tm.texi: Likewise.
8149
8150 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8151
8152         * doc/install.texi: Fix typos.
8153         * doc/invoke.texi: Likewise.
8154
8155 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
8156
8157         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
8158         registers as pointers.
8159         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
8160
8161 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
8162
8163         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
8164         and restore it to gen_lowpart_general on exit.
8165         (gen_lowpart_for_combine): Adjust all callers to go through
8166         gen_lowpart.
8167         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
8168         and restore it to gen_lowpart_general on exit.
8169         (gen_lowpart_if_possible): Adjust all callers to go through
8170         gen_lowpart.
8171         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
8172         (gen_lowpart): Declare as pointer to function, initialized to
8173         gen_lowpart_general.
8174         * rtl.h (gen_lowpart): Declare as pointer to function.
8175
8176 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8177
8178         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
8179         * calls.c: Likewise.
8180         * emit-rtl.c: Likewise.
8181         * function.c: Likewise.
8182         * reload1.c: Likewise.
8183         * config/i386/cygming.h: Likewise.
8184         * config/i386/i386.c: Likewise.
8185         * config/i386/winnt.c: Likewise.
8186
8187 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
8188
8189         PR bootstrap/9249
8190         * doc/install.texi: document --enable-__cxa_atexit option.
8191         * configure.ac: Disable __cxa_atexit if not supported.
8192         * configure: Regenerate.
8193
8194 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
8195
8196         * ggc-zone.c (ggc_free): New function.
8197
8198 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8199
8200         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
8201         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
8202         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
8203         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
8204         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
8205         config/alpha/alpha.c, config/alpha/alpha.h,
8206         config/alpha/alpha.md, config/alpha/unicosmk.h,
8207         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
8208         config/c4x/c4x-protos.h, config/c4x/c4x.md,
8209         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
8210         config/frv/frvend.c, config/i386/cygming.h,
8211         config/i386/djgpp.h, config/i386/emmintrin.h,
8212         config/i386/gthr-win32.c, config/i386/i386-interix.h,
8213         config/i386/i386-protos.h, config/i386/openbsd.h,
8214         config/i386/winnt.c, config/i386/xm-mingw32.h,
8215         config/i386/xmmintrin.h, config/ia64/ia64.md,
8216         config/iq2000/iq2000.md, config/m32r/m32r.md,
8217         config/m68k/m68k.md, config/mcore/mcore-elf.h,
8218         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
8219         config/mips/iris5gas.h, config/mips/iris6.h,
8220         config/mips/iris6gas.h, config/mips/linux.h,
8221         config/mips/mips.md, config/mips/netbsd.h,
8222         config/mips/openbsd.h, config/mips/windiss.h,
8223         config/pa/fptr.c, config/rs6000/aix.h,
8224         config/rs6000/altivec.h, config/rs6000/darwin.h,
8225         config/rs6000/xcoff.h, config/s390/s390-protos.h,
8226         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
8227         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
8228         config/sparc/sol2.h: Update copyright.
8229
8230 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
8231
8232         * Makefile.in (abs_docdir, abs_srcdir): Define.
8233         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
8234
8235 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8236
8237         * genconfig.c (main): Have CC0_P check its operand even on a
8238         target without cc0.
8239
8240 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8241
8242         * config/alpha/alpha.c: Remove mentions of deprecates macros
8243         in comments, remove some target-independent comments about target
8244         macros, and/or add minimal function comments for target hook
8245         implementations.
8246         * config/avr/avr.c: Likewise.
8247         * config/ia64/ia64.h: Likewise.
8248         * config/ip2k/ip2k.c: Likewise.
8249         * config/iq2000/iq2000.c: Likewise.
8250         * config/m32r/m32r.h: Likewise.
8251         * config/m68hc11/m68hc11.c: Likewise.
8252         * config/mcore/mcore.c: Likewise.
8253         * config/mmix/mmix.c: Likewise.
8254         * config/mn10300/mn10300.c: Likewise.
8255         * config/pa/pa.c: Likewise.
8256         * config/pdp11/pdp11.c: Likewise.
8257         * config/rs6000/rs6000.h: Likewise.
8258         * config/sh/sh.c: Likewise.
8259         * config/sh/sh.h: Likewise.
8260         * config/sparc/sparc.c: Likewise.
8261         * config/sparc/sparc.h: Likewise.
8262         * config/stormy16/stormy16.c: Likewise.
8263         * config/xtensa/xtensa.c: Likewise.
8264
8265 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
8266
8267         PR optimization/12147
8268         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
8269         RELOAD_FOR_OPADDR_ADDR.
8270         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
8271         might be reused as RELOAD_FOR_OPADDR_ADDR register.
8272
8273 2004-01-30  Jan Hubicka  <jh@suse.cz>
8274
8275         * reload.c (get_secondary_mem): Fix updating of
8276         secondary_memlocs_elim_used.
8277
8278 2004-01-30  Richard Henderson  <rth@redhat.com>
8279
8280         * varasm.c (struct rtx_const, struct pool_constant): Remove.
8281         (MAX_RTX_HASH_TABLE): Remove.
8282         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
8283         (first_pool, last_pool, pool_offset): Remove.
8284         (struct rtx_constant_pool): Split out from ...
8285         (struct varasm_status): ... here.  Reference one via pointer.
8286         (struct constant_descriptor_rtx): Merge struct pool_constant.
8287         (SYMHASH): Remove.
8288         (decode_rtx_const): Remove.
8289         (const_hash_rtx, compare_constant_rtx): Remove.
8290         (record_constant_rtx): Remove.
8291         (const_desc_rtx_hash, const_desc_rtx_eq): New.
8292         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
8293         (const_rtx_hash_1, const_rtx_hash): New.
8294         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
8295         (simplify_subtraction): Use simplify_rtx.
8296         (force_const_mem): Rewrite to use new data structures.
8297         (find_pool_constant): Likewise.
8298         (get_pool_constant, get_pool_constant_mark,
8299         get_pool_constant_for_function, get_pool_mode,
8300         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
8301         (output_constant_pool_2): Split out from output_constant_pool.
8302         (output_constant_pool_1): Likewise.  Use new pool datastructures.
8303         (output_constant_pool): Zap entire pool datastructure.
8304         (mark_constant): Use new pool datastructures.
8305         (mark_constants): Use for_each_rtx.
8306         (mark_constant_pool): Use new pool datastructures.
8307
8308 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
8309
8310         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
8311         Copy operands[1] to pseudo for simplify_gen_subreg.
8312
8313 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8314
8315         * gcse.c (bypass_block): Fix a typo in the previous check-in
8316         to the file.
8317
8318 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
8319
8320         * toplev.c: Include alloc-pool.h.
8321         * Makefile.in (toplev.c): Update dependencies.
8322
8323 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8324
8325         * combine.c (simplify_shift_const, case XOR): Be careful when
8326         commuting XOR with ASHIFTRT.
8327
8328 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8329             Eric Botcazou  <ebotcazou@libertysurf.fr>
8330
8331         * config/sparc/sparc-protos.h: Remove the prototype for
8332         sparc_builtin_saveregs.
8333         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
8334         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
8335         (TARGET_PROMOTE_PROTOTYPES): Likewise.
8336         (TARGET_STRUCT_VALUE_RTX): Likewise.
8337         (TARGET_RETURN_IN_MEMORY): Likewise.
8338         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
8339         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
8340         (sparc_builtin_saveregs): Make it static.
8341         (sparc_promote_prototypes): New.
8342         (sparc_struct_value_rtx): Likewise.
8343         (sparc_return_in_memory): Likewise.
8344         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
8345         (PROMOTE_FUNCTION_RETURN): Likewise.
8346         (RETURN_IN_MEMORY): Likewise.
8347         (STRUCT_VALUE): Likewise.
8348         (STRUCT_VALUE_INCOMING): Likewise.
8349         (EXPAND_BUILTIN_SAVEREGS): Likewise.
8350         (STRICT_ARGUMENT_NAMING): Likewise.
8351         (PROMOTE_PROTOTYPES): Likewise.
8352
8353         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
8354
8355 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
8356
8357         PR c/12818
8358         * varasm.c (const_hash_1) <STRING_CST>: Use the
8359         address to compute the hash value if flag_writable_strings.
8360         (compare_constant) <STRING_CST>: Compare the addresses
8361         if flag_writable_strings.
8362         (build_constant_desc): Do not copy the expression for a
8363         STRING_CST if flag_writable_strings.
8364
8365 2004-01-30  Jan Hubicka  <jh@suse.cz>
8366
8367         * alloc-pool.c: Include hashtab.h
8368         (alloc_pool_descriptor): New structure
8369         (alloc_pool_hash): New global variable.
8370         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
8371         (create_alloc_pool): Update statistics.
8372         (free_alloc_pool): Likewise.
8373         (pool_alloc): Likewise.
8374         (output_info): New structure
8375         (print_statistics, dump_alloc_pool_statistics): New function.
8376         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
8377         (dump_alloc_pool_statistics): Declare.
8378         * toplev.c (finalize):  Dump statistics.
8379
8380         * reload.c (secondary_memlocs_elim_used): New static variable.
8381         (get_secondary_mem): Update it.
8382         (find_reloads): Use it.
8383
8384 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
8385
8386         * toplev.c: Fix broken checkin of 2003-12-30, again.
8387
8388 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
8389
8390         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
8391         s390*-*-* targets by specifying a 'nop' insn.
8392         * configure: Regenerate.
8393
8394 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
8395
8396         PR target/11475
8397         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
8398
8399 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
8400
8401         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
8402         of addr when creating MEM copy.
8403
8404 2004-01-29  Devang Patel  <dpatel@apple.com>
8405
8406         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
8407
8408 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
8409
8410         PR inline-asm/6162
8411         * reload.c (find_reloads): Only support one pair of commutative
8412         operands.
8413
8414 2004-01-29  Roger Sayle  <roger@eyesopen.com>
8415
8416         PR java/13824
8417         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
8418         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
8419         recursion.
8420
8421 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
8422
8423         * config/frv/frv.c: Don't mention deprecated macros in
8424         comments.  Remove some target-independent comments about
8425         target macros.
8426         * config/frv/frv.h: Likewise.
8427
8428 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8429
8430         * cfghooks.c (split_block): Set probability and count of the
8431         new edge.
8432
8433 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
8434
8435         * dwarf2out.c (struct die_struct): Added field decl_id.
8436         (decl_die_table): Changed to hash table.
8437         (decl_die_table_allocated): Deleted.
8438         (decl_die_table_in_use): Deleted.
8439         (DECL_DIE_TABLE_INCREMENT): Deleted.
8440         (decl_die_table_hash): New function.
8441         (decl_die_table_eq): New function.
8442         (lookup_decl_die): Lookup in a hash table.
8443         (equate_decl_number_to_die): Insert into a hash table.
8444         (dwarf2out_init): Init hash table decl_die_table.
8445
8446 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
8447
8448         PR optimization/13424
8449         * expr.c (store_constructor): Revert 2003-12-03 change.
8450
8451         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
8452         expected before returning early.  Avoid sharing RTL if they
8453         need to be changed.
8454
8455         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
8456         handling so that memory attributes are preserved.  Don't call
8457         ix86_set_move_mem_attrs.
8458         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
8459         (ix86_expand_clrstr): Rename src argument to
8460         dst.  Rework rep_stos and strset handling so that memory attributes
8461         are preserved.
8462         (ix86_expand_strlen): Pass src argument to
8463         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
8464         memory attributes are preserved.
8465         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
8466         change_address instead of gen_rtx_MEM.
8467         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
8468         expanders.
8469         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
8470         strmovqi, strmovqi_rex64): Remove.
8471         (rep_mov*, strmov*): Prefix insn names with *.
8472         (strset, strset_singleop, rep_stos): New expanders.
8473         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
8474         strsetqi, strsetqi_rex64): Remove.
8475         (rep_stos*, strset*): Prefix insn names with *.
8476         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
8477         to SImode.
8478         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
8479         are preserved.
8480         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
8481         Prefix insn names with *.
8482         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
8483         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
8484         (strlenqi_1): New expander.
8485         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
8486
8487 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8488
8489         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
8490         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
8491         verify_flow_info): Declaration removed.
8492         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
8493         (debug_bb, debug_bb_n): Add argument to dump_bb call.
8494         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
8495         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
8496         instead of delete_block.
8497         * cfghooks.c: Include timevar.h and toplev.h.
8498         (cfg_hooks): Define here.
8499         (verify_flow_info, dump_bb): Moved from cfg.c.
8500         (redirect_edge_and_branch, redirect_edge_and_branch_force,
8501         split_block, split_block_after_labels, move_block_after,
8502         delete_basic_block, split_edge, create_basic_block,
8503         create_empty_bb, can_merge_blocks_p, merge_blocks,
8504         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
8505         New functions.
8506         * cfghooks.h (struct cfg_hooks): Added fields name,
8507         make_forwarder_block, tidy_fallthru_edge and
8508         move_block_after. Changed type of verify_flow_info, dump_bb,
8509         split_block fields. Renamed cfgh_split_edge and delete_block
8510         fields.
8511         (redirect_edge_and_branch, redirect_edge_and_branch_force,
8512         split_block, delete_block, split_edge, create_basic_block,
8513         can_merge_blocks_p, merge_blocks): Macros removed.
8514         (cfg_hooks): Do not export.
8515         (verify_flow_info, dump_bb, redirect_edge_and_branch,
8516         redirect_edge_and_branch_force, split_block, split_block_after_labels,
8517         move_block_after, delete_basic_block, split_edge, create_basic_block,
8518         create_empty_bb, can_merge_blocks_p, merge_blocks,
8519         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
8520         Declare.
8521         (cfg_layout_rtl_cfg_hooks): Declare.
8522         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
8523         New functions.
8524         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
8525         (redirect_edge_with_latch_update): Removed.
8526         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
8527         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
8528         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
8529         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
8530         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
8531         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
8532         cfghooks.c.
8533         (rtl_create_basic_block): Coding style fix.
8534         (rtl_tidy_fallthru_edge, rtl_move_block_after,
8535         rtl_make_forwarder_block): New functions.
8536         (update_cfg_after_block_merging): Removed.
8537         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
8538         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
8539         to dump_bb.
8540         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
8541         find_if_case_2): Don't update dominators.
8542         * timevar.def (TV_CFG_VERIFY): New.
8543         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
8544         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
8545         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
8546         (remove_bbs): Don't call remove_bbs.
8547         (create_preheader): Use make_forwarder_block.
8548         (mfb_keep_just, mfb_update_loops): New static functions.
8549
8550 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
8551
8552         * config/avr/avr.h: Remove target-independent comments about
8553         target macros.
8554
8555 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
8556
8557         * timevar.c (timevar_print): Mention when checking is enabled.
8558
8559 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
8560
8561         * c-lex.c (c_lex): Rename to...
8562         (c_lex_with_flags): Add new parameter to get CPP flags.
8563         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
8564         * c-pragma.h (c_lex_with_flags): Declare.
8565
8566 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8567
8568         * config/mcore/mcore.c (mcore_external_libcall): Add a
8569         comment.
8570         (mcore_return_in_memory): Likewise.
8571
8572 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8573
8574         * config/mcore/mcore-protos.h: Remove the prototype for
8575         mcore_setup_incoming_varargs.
8576         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
8577         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
8578         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
8579         (TARGET_PROMOTE_PROTOTYPES): Likewise.
8580         (TARGET_STRUCT_VALUE_RTX): Likewise.
8581         (TARGET_RETURN_IN_MEMORY): Likewise.
8582         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
8583         (mcore_setup_incoming_varargs): Make it static.  Receive the
8584         first argument by reference.  Add argument second_time.
8585         (mcore_external_libcall): New.
8586         (mcore_return_in_memory): Likewise.
8587         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
8588         (PROMOTE_FUNCTION_RETURN): Likewise.
8589         (STRUCT_VALUE): Likewise.
8590         (RETURN_IN_MEMORY): Likewise.
8591         (SETUP_INCOMING_VARARGS): Likewise.
8592         (PROMOTE_PROTOTYPES): Likewise.
8593         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
8594
8595 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8596
8597         * config/m32r/m32r-protos.h: Remove the prototype for
8598         m32r_setup_incoming_varargs.
8599         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
8600         (TARGET_STRUCT_VALUE_RTX): Likewise.
8601         (TARGET_RETURN_IN_MEMORY): Likewise.
8602         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
8603         (m32r_return_in_memory): New.
8604         (m32r_setup_incoming_varargs): Make it static.
8605         * config/m32r/m32r.h: Remove #undef of
8606         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
8607         definitions of PROMOTE_FUNCTION_ARGS and
8608         PROMOTE_FUNCTION_RETURN.
8609         (PROMOTE_PROTOTYPES): Remove.
8610         (RETURN_IN_MEMORY): Likewise.
8611         (STRUCT_VALUE): Likewise.
8612
8613 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8614
8615         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
8616         (TARGET_STRUCT_VALUE_RTX): Likewise.
8617         (m68k_struct_value_rtx): Likewise.
8618         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
8619         STRUCT_VALUE_REGNUM.
8620         (PROMOTE_PROTOTYPES): Remove.
8621         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
8622         STRUCT_VALUE_REGNUM.
8623         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
8624         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
8625
8626 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8627
8628         * config/stormy16/stormy16.c
8629         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
8630         TARGET_BUILD_BUILTIN_VA_LIST.
8631
8632 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8633
8634         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
8635         (TARGET_STRUCT_VALUE_RTX): Likewise.
8636         (TARGET_RETURN_IN_MEMORY): Likewise.
8637         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
8638         (v850_return_in_memory): Likewise.
8639         (v850_setup_incoming_varargs): Likewise.
8640         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
8641         (SETUP_INCOMING_VARARGS): Likewise.
8642         (RETURN_IN_MEMORY): Likewise.
8643         (STRUCT_VALUE): Likewise.
8644
8645 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8646
8647         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
8648         (fr30_setup_incoming_varargs): Don't use
8649         STRICT_ARGUMENT_NAMING.
8650         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
8651         (STRICT_ARGUMENT_NAMING): Likewise.
8652
8653 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8654
8655         * config/frv/frv-protos.h: Remove the prototype for
8656         frv_expand_builtin_saveregs.
8657         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
8658         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
8659         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
8660         STRUCT_VALUE_REGNUM.
8661         (frv_expand_builtin_saveregs): Make it static.
8662         (frv_struct_value_rtx): New.
8663         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
8664
8665 2004-01-29  Jan Hubicka  <jh@suse.cz>
8666
8667         PR c++/12850
8668         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
8669         initial pointers.
8670         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
8671         for functions that will be only inlined.
8672         (cgraph_mark_function_to_output): Likewise.
8673         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
8674         do not clear function body.
8675         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
8676         (tree_rest_of_compilation): Reorganize the logic releasing function
8677         body to use callgraph datastructure.
8678
8679 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8680
8681         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
8682         to register_operand.
8683
8684 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
8685
8686         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
8687         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
8688         match_operand expressions so that all match_dups appear
8689         lexically after their corresponding match_operands.
8690
8691 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8692
8693         * config/h8300/h8300.c (WORD_REG_USED): Use
8694         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
8695         (compute_saved_regs): Likewise.
8696         (h8300_expand_prologue): Likewise.  Allocate locals after
8697         saving registers.
8698         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
8699         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
8700         registers.
8701         (h8300_initial_elimination_offset): Adjust for the new frame
8702         layout, which swaps flips the order of locals and saved
8703         registers.
8704         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
8705         (HARD_FRAME_POINTER_REGNUM): New.
8706         (ELIMINABLE_REGS): Add an elimination rule from
8707         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
8708         (REGISTER_NAMES): Add fp.
8709         * config/h8300/h8300.md (FP_REG): Change to 11.
8710         (HFP_REG): New.
8711
8712 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8713
8714         * genrecog.c (write_node): Remove a useless local variable.
8715
8716 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
8717
8718         * Makefile.in (options.c options.h): Use stamp file s-options to
8719         avoid unnecessary rebuilds.
8720         (options.o): New target listing dependencies.
8721         (gtyp-gen.h): Use stamp file s-gtyp-gen.
8722         (STAGESTUFF): Add s-gtyp-gen.
8723
8724 2004-01-28  Richard Henderson  <rth@redhat.com>
8725
8726         * ggc.h (ggc_free): Declare.
8727         * ggc-common.c (ggc_realloc): Use it.
8728         * ggc-page.c: Remove lots of inline markers.
8729         (globals): Add free_object_list.
8730         (ggc_alloc): Tidy.
8731         (ggc_free, validate_free_objects): New.
8732         (poison_pages): Provide default.
8733         (ggc_collect): Call validate_free_objects; emit markers to
8734         the debug file.
8735
8736 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
8737             Jim Wilson  <wilson@specifixinc.com>
8738
8739         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
8740         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
8741         scratch pointer.
8742         (ia64_secondary_reload_class): Delete case GR_REGS.
8743         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
8744         Do not allocate a scratch register.
8745         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
8746
8747 2004-01-28  Jan Hubicka  <jh@suse.cz>
8748
8749         * gcse.c (bypass_block): Prevent edges to be unified when we are
8750         about to emit compenstation code.
8751
8752 2004-01-28  Nick Clifton  <nickc@redhat.com>
8753
8754         * config/arm/arm.c (arm_expand_builtin): Force second argument of
8755         the setcwx insn into a register.
8756
8757 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
8758
8759         * config/fp-bit.c (pack_d): When using paired doubles to implement
8760         a long double, round the high part separately.
8761         (unpack_d): Fix the case in which the high part is a power of two
8762         and the low part is a nonzero value of the opposite sign.
8763
8764 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8765
8766         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
8767         (TARGET_STRUCT_VALUE_RTX): Likewise.
8768         (c4x_external_libcall): Likewise.
8769         (c4x_struct_value_rtx): Likewise.
8770         * config/c4x/c4x.h: Remove.
8771         (STRUCT_VALUE_REGNUM): Likewise.
8772         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
8773
8774 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8775
8776         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
8777         (TARGET_STRUCT_VALUE_RTX): Likewise.
8778         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
8779         (STRUCT_VALUE): Likewise.
8780         (PROMOTE_PROTOTYPES): Likewise.
8781
8782 2004-01-27  Roger Sayle  <roger@eyesopen.com>
8783
8784         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
8785         CONST_INT before using INTVAL.
8786
8787 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
8788
8789         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
8790         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
8791         frame if !TARGET_BACKCHAIN.
8792         * config/s390/s390.md ("allocate_stack"): Use pattern only if
8793         TARGET_BACKCHAIN.
8794         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
8795
8796 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
8797
8798         * ia64.c (ia64_function_arg): When placing HFAs in integer
8799         registers, do not special case the mode used for complex
8800         types.  Do not advance int_regs until the current register
8801         is full.
8802
8803 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
8804
8805         PR target/7297
8806         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
8807
8808 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
8809
8810         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
8811         slow, unaligned loads and stores while debugging.  Fix formatting.
8812
8813 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
8814
8815         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
8816         of computing wmode.
8817         (restore_stack_nonlocal): Same.
8818
8819 2004-01-27  Devang Patel <dpatel@apple.com>
8820
8821         * Makefile.in (dwarf2out.o): Depend on input.h
8822         * dbxout.c (dbx_debug_hooks): Add new empty hook for
8823         imported_module_or_decl.
8824         (xcoff_debug_hooks): Same.
8825         * sdbout.c (sdb_debug_hooks): Same.
8826         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
8827         * debug.c (do_nothing_debug_hooks): Same.
8828         (debug_nothing_tree_tree): New function.
8829         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
8830         * dwarf2out.c: Include input.h.
8831         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
8832         (remove_child_TAG): New function.
8833         (dwarf_tag_name): Handle DW_TAG_imported_module.
8834         (gen_subprogram_die): Equate decl number to declaration die. Do not
8835         remove all children dies while reusing declaration die for definition.
8836         Instead, selectively remove only formal parameters.
8837         (gen_variable_die): Equate variable decl to declaration die.
8838         (gen_field_die): Equate field decl to line number.
8839         (force_namespace_die): Replace it with ...
8840         (force_decl_die): ... this.
8841         (force_type_die): New function.
8842         (setup_namespace_context): Replace use of force_namespace_die() with
8843         force_decl_die().
8844         (gen_namespace_die): Same.
8845         (dwarf2out_imported_module_or_decl): New function.
8846
8847 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
8848
8849         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
8850         on CQImode and CHImode incoming arguments in register a7.
8851         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
8852         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
8853         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
8854         xtensa_copy_incoming_a7 before reload.
8855
8856 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
8857
8858         * coverage.c (get_coverage_counts): Give a different message
8859         if flag_guess_branch_prob is set.
8860         * predict.c (counts_to_freqs): Return an int.
8861         (estimate_bb_frequencies): If counts_to_freqs returns zero,
8862         calculate estimates.
8863
8864 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
8865
8866         * config/iq2000/iq2000-protos.h: Remove the prototype for
8867         iq2000_setup_incoming_varargs.
8868         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
8869         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
8870         (TARGET_PROMOTE_PROTOTYPES): Likewise.
8871         (TARGET_STRUCT_VALUE_RTX): Likewise.
8872         (TARGET_RETURN_IN_MEMORY): Likewise.
8873         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
8874         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
8875         (iq2000_return_in_memory): Likewise.
8876         (iq2000_setup_incoming_varargs): Make it static.  Receive the
8877         first argument by reference.
8878         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
8879         (PROMOTE_FUNCTION_RETURN): Likewise.
8880         (PROMOTE_PROTOTYPES): Likewise.
8881         (RETURN_IN_MEMORY): Likewise.
8882         (STRUCT_VALUE): Likewise.
8883         (SETUP_INCOMING_VARARGS): Likewise.
8884         (STRICT_ARGUMENT_NAMING): Likewise.
8885
8886 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
8887
8888         * fixinc/fixinc.c (test_test): Initialize res.
8889         (start_flexer): Initialize pz_cmd_save.
8890
8891 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
8892
8893         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
8894         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
8895
8896 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
8897
8898         PR 7198
8899         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
8900         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
8901         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
8902         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
8903         Possibly rename pattern for consistency.
8904         Remove ??? comments suggesting that this be done.
8905         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
8906         New patterns.
8907         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
8908         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
8909         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
8910         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
8911         Update to match.
8912
8913 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
8914
8915         * config/arm/arm.c (output_return_instruction): Only restore IP
8916         into SP if frame_pointer_needed.
8917
8918 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
8919
8920         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
8921         for SCmode and DCmode if ARCH32.
8922         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
8923         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
8924         if ARCH32.
8925         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
8926         if ARCH32.
8927         (BASE_OUTGOING_VALUE_REG): Likewise.
8928
8929 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
8930
8931         PR target/10904
8932         PR target/13058
8933         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
8934         Forbid mode changes from SImode for lower FP regs if ARCH64.
8935
8936 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
8937
8938         * Makefile.in (bt-load.o): Depend on except.h.
8939         * bt-load.c (except.h): #include.
8940         (compute_defs_uses_and_gen): If insn at end of BB can throw
8941         within this function, consider registers used by it unavailable for
8942         btr migration.
8943         (move_btr_def): If insn at end of BB can throw, insert before rather
8944         than after.
8945
8946         * flags.h (flag_btr_bb_exclusive): Declare.
8947         * toplev.c (flag_btr_bb_exclusive): New variable.
8948         (f_options): Add btr-bb-exclusive.
8949         * bt-load.c (augment_live_range): Restore old behaviour if
8950         flag_btr_bb_exclusive is set.
8951         * common.opt: Add entry for -fbtr-bb-exclusive.
8952         * opts.c (common_handle_options): Same.
8953         * doc/invoke.texi: Document -fbtr-bb-exclusive.
8954
8955         * bt-load.c (btrs_live_at_end): New variable.
8956         (compute_defs_uses_and_gen): Compute its pointed-to array.
8957         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
8958         (augment_live_range): When augmenting with a new dominator,
8959         use only its btrs_live_at_end set, but also add in the full set
8960         of the old dominator.
8961         (btr_def_live_range): Use btrs_live_at_end.
8962         (move_btr_def): Set other_btr_uses_before_def, and move new set
8963         to the end of the basic block, if appropriate.
8964         (migrate_btr_defs): Allocate and free btrs_live_at_end.
8965
8966         * bt-load.c (basic_block_freq): Remove outdated comment.
8967
8968 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
8969
8970         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
8971         (PREDICATE_CODES): Remove duplicate.
8972         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
8973         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
8974         (MASK_PROFILE_KERNEL): Adjust define.
8975
8976 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
8977
8978         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
8979         of long string literals from 32 bytes to sizeof (void *) when !-Os
8980         and to 1 with -Os.
8981
8982 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
8983
8984         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
8985         constant addresses in the normal mode.
8986
8987 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8988
8989         * system.h (CHAR_BITFIELD): Delete.
8990         (BOOL_BITFIELD): New.
8991         * c-decl.c (c_scope): Use BOOL_BITFIELD.
8992         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
8993
8994 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
8995
8996         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
8997         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
8998         (TARGET_PROMOTE_PROTOTYPES): Likewise.
8999         (TARGET_STRUCT_VALUE_RTX): Likewise.
9000         (TARGET_RETURN_IN_MEMORY): Likewise.
9001         (arc_return_in_memory): Likewise.
9002         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
9003         (PROMOTE_FUNCTION_RETURN): Likewise.
9004         (RETURN_IN_MEMORY): Likewise.
9005         (STRUCT_VALUE): Likewise.
9006
9007 2004-01-26  Richard Henderson  <rth@redhat.com>
9008
9009         * c-parse.in (extension): Use itype.
9010         (SAVE_EXT_FLAGS): Don't allocate a tree.
9011         (RESTORE_EXT_FLAGS): Don't read a tree.
9012
9013 2004-01-26  Jan Hubicka  <jh@suse.cz>
9014
9015         * cselib.c (discard_useless_values):  Clear out value pointer pointing
9016         to datastructure to be recycled.
9017
9018 2004-01-25  Jan Hubicka  <jh@suse.cz>
9019
9020         * genextract.c (main): Do not output the memset when not checking.
9021
9022 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9023
9024         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
9025         switch statement instead of a chain of if statements.
9026
9027 2004-01-26  Jeff Law  <law@redhat.com>
9028
9029         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
9030         acute accents for Petur Runolfsson's entry.
9031
9032 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9033
9034         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
9035         (TARGET_RETURN_IN_MEMORY): Likewise.
9036         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
9037         (RETURN_IN_MEMORY): Likewise.
9038
9039 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
9040
9041          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
9042          unaligned load/store into smaller loads and stores.
9043
9044 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
9045
9046         * function.c (assign_parms): Do not assign
9047         long long argument to memory in prologue if
9048         is it loaded into register.
9049
9050 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
9051
9052          PR middle-end/13779
9053          * expr.c (emit_group_load): split constant
9054          correctly into register components of PARALLEL insn.
9055
9056 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
9057
9058         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
9059         Use adjust_address_nv directly with appropriate mode.
9060         (restore_stack_nonlocal): Ditto.
9061
9062 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9063
9064         * config/xtensa/xtensa-protos.h: Remove the prototype for
9065         xtensa_builtin_saveregs.
9066         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9067         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9068         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9069         (TARGET_STRUCT_VALUE_RTX): Likewise.
9070         (TARGET_RETURN_IN_MEMORY): Likewise.
9071         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9072         (xtensa_builtin_saveregs): Make it static.
9073         (xtensa_return_in_memory): New.
9074         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
9075         (PROMOTE_FUNCTION_RETURN): Likewise.
9076         (PROMOTE_PROTOTYPES): Likewise.
9077         (STRUCT_VALUE): Likewise.
9078         (RETURN_IN_MEMORY): Likewise.
9079         (EXPAND_BUILTIN_SAVEREGS): Likewise.
9080
9081 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9082
9083         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
9084         (arm_setup_incoming_varargs): Likewise.
9085         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
9086
9087 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9088
9089         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
9090         (cris_setup_incoming_varargs): Likewise.
9091         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
9092
9093 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9094
9095         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
9096         (ns32k_struct_value_rtx): Likewise.
9097         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
9098         NS32K_STRUCT_VALUE_REGNUM.
9099
9100 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9101
9102         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9103         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9104         (TARGET_STRUCT_VALUE_RTX): Likewise.
9105         (arm_struct_value_rtx): Likewise.
9106         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
9107         (STRUCT_VALUE): Likewise.
9108         (STRUCT_VALUE_REGNUM): Likewise.
9109         (PROMOTE_PROTOTYPES): Likewise.
9110
9111 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9112
9113         * config/ia64/ia64-protos.h: Remove the prototype for
9114         ia64_setup_incoming_varargs and ia64_return_in_memory.
9115         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
9116         (TARGET_RETURN_IN_MEMORY): Likewise.
9117         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9118         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
9119         (ia64_setup_incoming_varargs): Adjust the arguments to meet
9120         the requirement of TARGET_SETUP_INCOMING_VARARGS.
9121         (ia64_return_in_memory): Make it static.  Change the return
9122         type to bool from int.  Add an argument.
9123         (ia64_struct_value_rtx): New.
9124         * config/ia64/ia64.h: Remove commented-out definitions of
9125         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
9126         PROMOTE_PROTOTYPES.
9127         (RETURN_IN_MEMORY): Remove.
9128         (STRUCT_VALUE_REGNUM): Likewise.
9129         (STRICT_ARGUMENT_NAMING): Likewise.
9130
9131 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
9132
9133         PR target/13666
9134         * config/sparc/sparc.c (function_arg_union_value): New function.
9135         (function_arg): Use it to deal with unions.
9136         (function_value): Likewise.  Define 'regbase' only for ARCH64.
9137         Replace a conditional statement by a simpler one.
9138
9139 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
9140
9141         * config/mips/mips.c (mips16_optimize_gp): Delete.
9142         (mips_reorg): Don't call it.
9143
9144 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9145
9146         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
9147         (floatunsqihf2): Remove operand 6.
9148         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
9149         fix patterns.
9150         (ldi_conditional, ldf_conditional): Validate operands.
9151
9152 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9153
9154         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
9155         (HAVE_GAS_HIDDEN): Undefine as interim measure.
9156
9157 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9158
9159         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
9160         memory references if TARGET_EXPOSE_LDP nonzero.
9161
9162 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9163
9164         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
9165
9166 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9167
9168         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
9169         invalid operand combinations.
9170
9171 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9172
9173         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
9174         c4x_legitimate_address_p.  Fix post_modify check.
9175
9176         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
9177         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
9178
9179 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9180
9181         * config/pa/pa-protos.h: Remove the prototype for
9182         hppa_builtin_saveregs.  Add a prototype for
9183         pa_return_in_memory.
9184         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
9185         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9186         (TARGET_STRUCT_VALUE_RTX): Likewise.
9187         (TARGET_RETURN_IN_MEMORY): Likewise.
9188         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9189         (pa_struct_value_rtx): Likewise.
9190         (pa_return_in_memory): Likewise.
9191         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
9192         PA_STRUCT_VALUE_REGNUM.
9193         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
9194         (EXPAND_BUILTIN_SAVEREGS): Remove.
9195         (PROMOTE_PROTOTYPES): Likewise.
9196         (PROMOTE_FUNCTION_RETURN): Likewise.
9197
9198 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9199
9200         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
9201         (TARGET_STRUCT_VALUE_RTX): Likewise.
9202         (vax_struct_value_rtx): Likewise.
9203         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
9204         VAX_STRUCT_VALUE_REGNUM.
9205         (PROMOTE_PROTOTYPES): Remove.
9206
9207 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9208
9209         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
9210
9211 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
9212
9213         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
9214         and MIPS64 have HI/LO interlocks.  Update comment.
9215
9216 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9217
9218         * config/stormy16/stormy16-protos.h: Remove the prototype for
9219         xstormy16_setup_incoming_varargs.
9220         * config/stormy16/stormy16.c
9221         (xstormy16_setup_incoming_varargs): Remove.
9222         (xstormy16_return_in_memory): New.
9223         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
9224         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9225         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9226         (TARGET_STRUCT_VALUE_RTX): Likewise.
9227         (TARGET_RETURN_IN_MEMORY): Likewise.
9228         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
9229         (PROMOTE_FUNCTION_RETURN): Likewise
9230         (PROMOTE_PROTOTYPES): Likewise
9231         (RETURN_IN_MEMORY): Likewise
9232         (STRUCT_VALUE): Likewise
9233         (SETUP_INCOMING_VARARGS): Likewise
9234
9235 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
9236
9237         * config/mips/mips.c (mips_offset_within_object_p): New function.
9238         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
9239         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
9240         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
9241
9242 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9243
9244         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
9245         (PROMOTE_FUNCTION_RETURN): Likewise.
9246
9247 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9248
9249         * config/mn10300/mn10300-protos.h: Remove the prototype for
9250         mn10300_builtin_saveregs.
9251         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
9252         (TARGET_STRUCT_VALUE_RTX): Likewise.
9253         (TARGET_RETURN_IN_MEMORY): Likewise.
9254         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9255         (mn10300_return_in_memory): Likewise.
9256         (mn10300_builtin_saveregs): Make it static.
9257         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
9258         (RETURN_IN_MEMORY): Likewise.
9259         (STRUCT_VALUE): Likewise.
9260         (EXPAND_BUILTIN_SAVEREGS): Likewise.
9261
9262 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
9263
9264         PR bootstrap/13853
9265         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
9266
9267 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9268
9269         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
9270         using ccr.
9271
9272 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9273
9274         * config/i860/i860-protos.h: Remove the prototype for
9275         i860_saveregs.
9276         * config/i860/i860.c (i860_saveregs): Make it static.
9277         (i860_struct_value_rtx): New.
9278         (TARGET_STRUCT_VALUE_RTX): Likewise.
9279         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9280         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
9281         I860_STRUCT_VALUE_REGNUM.
9282         (EXPAND_BUILTIN_SAVEREGS): Remove.
9283
9284 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9285
9286         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
9287         (TARGET_RETURN_IN_MEMORY): Likewise.
9288         (m68hc11_struct_value_rtx): Likewise.
9289         (m68hc11_return_in_memory): Likewise.
9290         * config/m68hc11/m68hc11.h: Remove a commented-out definition
9291         of PROMOTE_PROTOTYPES.
9292         (RETURN_IN_MEMORY): Remove.
9293         (STRUCT_VALUE_REGNUM): Likewise.
9294
9295 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9296
9297         * config/mmix/mmix-protos.h: Remove the prototype for
9298         mmix_setup_incoming_varargs.
9299         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9300         (TARGET_STRUCT_VALUE_RTX): Likewise.
9301         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9302         (mmix_setup_incoming_varargs): Make it static.
9303         (mmix_struct_value_rtx): New.
9304         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
9305         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
9306         (STRUCT_VALUE_REGNUM): Remove.
9307         (SETUP_INCOMING_VARARGS): Likewise.
9308
9309 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9310
9311         * config/mips/mips-protos.h: Remove the prototypes for
9312         mips_setup_incoming_varargs and mips_return_in_memory.
9313         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9314         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9315         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9316         (TARGET_STRUCT_VALUE_RTX): Likewise.
9317         (TARGET_RETURN_IN_MEMORY): Likewise.
9318         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9319         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
9320         (mips_setup_incoming_varargs): Match the prototype for
9321         TARGET_SETUP_INCOMING_VARARGS.
9322         (mips_return_in_memory): Make it static.  Add argument fntype.
9323         (mips_strict_argument_naming): New.
9324         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
9325         (PROMOTE_FUNCTION_ARGS): Likewise.
9326         (PROMOTE_FUNCTION_RETURN): Likewise.
9327         (STRUCT_VALUE): Likewise.
9328         (RETURN_IN_MEMORY): Likewise.
9329         (SETUP_INCOMING_VARARGS): Likewise.
9330         (STRICT_ARGUMENT_NAMING): Likewise.
9331
9332 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9333
9334         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
9335         (TARGET_RETURN_IN_MEMORY): Likewise.
9336         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9337         (ip2k_return_in_memory): Likewise.
9338         (ip2k_setup_incoming_varargs): Likewise.
9339         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
9340         (STRUCT_VALUE): Likewise.
9341         (STRUCT_VALUE_INCOMING): Likewise.
9342         (SETUP_INCOMING_VARARGS): Likewise.
9343
9344 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9345
9346         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
9347         (TARGET_RETURN_IN_MEMORY): Likewise.
9348         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
9349         (avr_return_in_memory): Remove.
9350         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
9351         (STRUCT_VALUE): Likewise.
9352         (STRUCT_VALUE_INCOMING): Likewise.
9353         (STRICT_ARGUMENT_NAMING): Likewise.
9354
9355 2004-01-25  Jan Hubicka  <jh@suse.cz>
9356
9357         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
9358
9359 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
9360
9361         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
9362         (mips_regno_mode_ok_for_base_p): Declare.
9363         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
9364         (FRAME_POINTER_REGNUM): Renumber to 78.
9365         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
9366         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
9367         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
9368         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
9369         (REG_MODE_OK_FOR_BASE_P): Likewise.
9370         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
9371         entry for 77 to "$arg" and entry for 78 to "$frame".
9372         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
9373         (mips_reg_mode_ok_for_base_p): Remove.
9374         (mips_regno_mode_ok_for_base_p): New function, derived from old
9375         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
9376         restrictions unless we're being strict.
9377         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
9378
9379 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9380
9381         * c-common.h: Fix comment typos.
9382         * c-decl.c: Likewise.
9383         * cgraphunit.c: Likewise.
9384         * combine.c: Likewise.
9385         * et-forest.c: Likewise.
9386         * flow.c: Likewise.
9387         * function.c: Likewise.
9388         * ifcvt.c: Likewise.
9389         * integrate.c: Likewise.
9390         * jump.c: Likewise.
9391         * postreload.c: Likewise.
9392         * varray.c: Likewise.
9393
9394 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9395
9396         * doc/frontends.texi: Update copyright.
9397         * doc/gcov.texi: Likewise.
9398         * doc/gty.texi: Likewise.
9399         * doc/sourcebuild.texi: Likewise.
9400         * doc/standards.texi: Likewise.
9401
9402 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
9403
9404         PR target/12978
9405         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
9406         Remove movstrqi_small because it conflicts with movstrqi_large.
9407
9408 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9409
9410         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9411         (TARGET_STRUCT_VALUE_RTX): Likewise.
9412         (cris_struct_value_rtx): Likewise.
9413         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
9414         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
9415         STRUCT_VALUE_REGNUM.
9416         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
9417
9418 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
9419
9420         PR bootstrap/13848
9421         * cse.c (cse_cc_succs): Change the mode of the source expression
9422         as soon as decide we need a new mode.  Don't permit changing modes
9423         if we found a match in a successor block.
9424         (cse_condition_code_reg): Save original mode of source expression
9425         so that we know whether we have to change the mode in other
9426         insns.
9427
9428 2004-01-24  Jan Hubicka  <jh@suse.cz>
9429
9430         * emit-rtl.c (change_address, adjust_address_1, offset_address,
9431         widen_memory_access):  Return early when there is nothing to change.
9432
9433 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
9434
9435         * simplify-rtx.c (simplify_relational_operation): Don't
9436         simplify address == constant into address + -constant == 0.
9437
9438 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9439
9440         * gcc.c (process_command): Don't internationalize the
9441         Copyright message.
9442         * mips-tfile.c (main): Likewise.
9443
9444 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
9445
9446         * cse.c: (cse_cc_succs) Fix comparison warning.
9447
9448 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9449
9450         * config/h8300/h8300.md: Remove extraneous USE in expanders.
9451
9452 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9453
9454         * config/h8300/h8300-protos.h: Provide prototypes for
9455         h8300_legitimate_constant_p and h8300_legitimate_address_p.
9456         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
9457         (h8300_rtx_ok_for_base_p): Likewise.
9458         (h8300_legitimate_address_p): Likewise.
9459         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
9460         h8300_legitimate_constant_p.
9461         (RTX_OK_FOR_BASE_P): Remove.
9462         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
9463
9464 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9465
9466         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
9467         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
9468         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
9469         (REG_OK_FOR_BASE_STRICT_P): Likewise.
9470         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
9471         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
9472         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
9473         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
9474
9475 2004-01-24  Jan Hubicka  <jh@suse.cz>
9476
9477         * cselib.c (remove_useless_values):  Do not access discarded values.
9478
9479 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
9480
9481         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
9482         arrays.
9483
9484 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
9485
9486         * recog.c: Fix a typo in copyright.
9487
9488 2004-01-23  Andrew Pinski  <apinski@apple.com>
9489
9490         * config/rs6000/rs6000.md (call): Fix misappiled patch.
9491         (call_value): Likewise.
9492
9493 2004-01-23  Richard Henderson  <rth@redhat.com>
9494
9495         PR opt/12941
9496         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
9497         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
9498         if SHIFT_COUNT_TRUNCATED is set.
9499
9500 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
9501
9502         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
9503         separate real and imaginary parts.
9504         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
9505
9506 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
9507
9508         PR target/13674
9509         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
9510         loading into GPR.
9511
9512 2004-01-23  Jan Hubicka  <jh@suse.cz>
9513
9514         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
9515         change.
9516
9517         * alloc-pool.c (align_four): Kill.
9518         (create_alloc_pool): Align size to eight.
9519         (free_alloc_pool, free_pool): Invalidate deallocated data.
9520
9521 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
9522
9523         PR gcc/1532
9524         * cse.c (cse_change_cc_mode): New static function.
9525         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
9526         (cse_condition_code_reg): New function.
9527         * rtl.h (cse_condition_code_reg): Declare.
9528         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
9529         * target.h (struct gcc_target): Add fixed_condition_code_regs and
9530         cc_modes_compatible.
9531         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
9532         (TARGET_CC_MODES_COMPATIBLE): Define.
9533         (TARGET_INITIALIZER): Add new initializers.
9534         * targhooks.c (default_cc_modes_compatible): New function.
9535         * targhooks.c (default_cc_modes_compatible): Declare.
9536         * hooks.c (hook_bool_intp_intp_false): New function.
9537         * hooks.h (hook_bool_intp_intp_false): Declare.
9538         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
9539         (TARGET_CC_MODES_COMPATIBLE): Define.
9540         (ix86_fixed_condition_code_regs): New static function.
9541         (ix86_cc_modes_compatible): Likewise.
9542         * doc/tm.texi (Condition Code): Document new hooks.
9543
9544 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9545
9546         * fixinc/inclhack.def (bad_lval): Renamed to ...
9547         (alpha_bad_lval): ... this.
9548         Removed file list.
9549         Restrict to alpha*-dec-osf*.
9550         * fixinc/fixincl.x: Regenerate.
9551         * fixinc/tests/base/dirent.h: Remove, moving test ...
9552         * fixinc/tests/base/testing.h: ... here, reflecting new name.
9553
9554 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
9555
9556         PR c/13814
9557         * c-decl.c (diagnose_mismatched_decls): Also discard a
9558         built-in if we encounter an old-style definition with the
9559         same name.
9560
9561 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
9562
9563         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
9564         set to default{32,64}.
9565
9566 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
9567
9568         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
9569         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
9570
9571 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
9572             Olivier Hainque  <hainque@act-europe.fr>
9573
9574         * fold-const.c (fold_binary_op_with_conditional_arg): Only
9575         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
9576
9577 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
9578
9579         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
9580         size for minipool references.
9581
9582 2004-01-23  Roger Sayle  <roger@eyesopen.com>
9583
9584         * real.c (real_floor, real_ceil): Tweak to allow input and output
9585         arguments to overlap.
9586         (real_round): New function to implement round(3m) semantics.
9587         * real.h (real_round): Prototype here.
9588         * builtins.c (fold_builtin_round): New function to constant fold
9589         round, roundf and roundl.
9590         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
9591
9592 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
9593
9594         PR optimization/13819
9595         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
9596         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
9597         (sh_handle_sp_switch_attribute): Remove warning.
9598
9599 2003-11-30  Jan Hubicka  <jh@suse.cz>
9600
9601         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
9602
9603 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
9604
9605         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
9606         may or may not return non-NIL.
9607         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
9608         check CANNOT_CHANGE_MODE_CLASS
9609
9610 2004-01-23  Jan Hubicka  <jh@suse.cz>
9611
9612         * basic-block.h (PROP_POSTRELOAD): New macro.
9613         (CLEANUP_LOG_LINKS): New.
9614         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
9615         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
9616
9617         * cselib.c (value_pool): New.
9618         (new_cselib_val): Use pool.
9619         (cselib_init): Initialize value_pool
9620         (cselib_finish): Free pool.
9621
9622 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
9623
9624         * config/sparc/sparc.c (scan_record_type): New function.
9625         (function_arg_slotno): Use it to determine which kinds of
9626         registers the record can be passed in.
9627
9628 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
9629
9630         * config/pa/fptr.c: Fix old-style definition.
9631
9632 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
9633
9634         PR optimization/13724
9635         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
9636         represents the zero bits produced by a ZERO_EXTEND operation.
9637
9638 2004-01-22  Roger Sayle  <roger@eyesopen.com>
9639
9640         PR optimization/13821
9641         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
9642         correctly calculate the lowpart offset of the contracted subreg.
9643
9644 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
9645
9646         * doc/invoke.texi (Optimize Options): Note that --param arguments
9647         are subject to change without notice.
9648
9649 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9650
9651         * config.gcc (mips-sgi-irix6*o32): Removed.
9652         * config/mips/iris6-o32-as.h: Likewise.
9653         * config/mips/iris6-o32-gas.h: Likewise.
9654         * config/mips/iris6-o32.h: Likewise.
9655
9656 2004-01-22  Jan Hubicka  <jh@suse.cz>
9657
9658         * cfgcleanup.c (first_pass): New static variable.
9659         (try_forward_edges):  Add work limiting check for threading.
9660         (try_crossjump_bb):  Add work limiting check for crossjumping.
9661         (try_optimize_cfg):  Maintain first pass variable.
9662
9663 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
9664
9665         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
9666         handles complex and vector modes.
9667
9668 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
9669
9670         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
9671         (REG_OK_FOR_BASE_P_STRICT): Likewise.
9672         (STRICT): Likewise.
9673
9674 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
9675
9676         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
9677         (genrtl_for_stmt): Remove emit_nop calls.
9678
9679 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9680
9681         PR target/13713
9682         PR target/13324
9683         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
9684         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
9685         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
9686
9687 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
9688
9689         * config/arm/arm.c: Include "debug.h".
9690         (thumb_pushpop): Take two new arguments.  Add some commentary.
9691         Output frame information when pushing.
9692         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
9693         thumb_pushpop.
9694         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
9695         offset, and pass it to thumb_pushpop.  Output CFI information.
9696         (thumb_expand_prologue): Add some frame-related markers and notes.
9697
9698 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
9699
9700         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
9701         for TARGET_64BIT.
9702         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
9703         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
9704
9705 2004-01-22  Roger Sayle  <roger@eyesopen.com>
9706             Paolo Bonzini  <bonzini@gnu.org>
9707
9708         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
9709         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
9710         * rtl.h (subreg_lsb_1): Prototype here.
9711         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
9712         sign extensions.
9713
9714 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
9715
9716         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
9717         macro need not be defined if jump-tables should contain
9718         relative addresses only when -fPIC or -fPIC is in effect.
9719
9720 2004-01-22  Jan Hubicka  <jh@suse.cz>
9721
9722         * alias.c (reg_base_value): Turn into varray.
9723         (reg_base_value_size): Kill.
9724         (old_reg_base_value): New deletable varray.
9725         (alias_invariant_size): New variable.
9726         (REG_BASE_VALUE): Update to use varray.
9727         (find_base_value): Likewise.
9728         (record_set): Likewise.
9729         (record_base_value): Likewise.
9730         (memrefs_conflict_p): Likewise.
9731         (record_set): Likewise
9732         (record_base_value): Likewise.
9733         (memrefs_conflict_p): Use alias_invariant_size.
9734         (init_alias_analysis): Use varray; set alias_invariant_size;
9735         rescale other arrays to be sized by maxreg.
9736         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
9737
9738 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
9739
9740         * config/sparc/sparc.c (function_arg_slotno): Use
9741         FLOAT_TYPE_P to detect FP fields in structures.
9742         (function_arg_record_value_1): Likewise.
9743         (function_arg_record_value_2): Likewise.
9744
9745 2004-01-22  Jan Hubicka  <jh@suse.cz>
9746
9747         * function.c (allocate_struct_function): Do not initialize expr, emit
9748         and varasm.
9749         (prepare_function_start): Do it here.
9750         * c-parse.in (maybe_type_qual): Do not produce line number notes.
9751
9752 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
9753
9754         PR target/13559
9755         * config/sparc/sparc.c (function_arg_record_value_3): Revert
9756         to 'word_mode' once the first slot has been filled.
9757
9758 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
9759
9760         * config/sparc/sparc.c (function_arg_record_value_1): Fix
9761         computation of the number of integer registers required.
9762
9763 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
9764
9765         * config/i386/i386.md: Simplify certain comparisons of
9766         const_int.
9767
9768 2004-01-21  Andrew Pinski  <apinski@apple.com>
9769
9770         PR target/13785
9771         * config/rs6000/rs6000.md (call_value): Force operand
9772         1 not operand 0 into a register.
9773
9774 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
9775
9776         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
9777         unwind-dw2-fde.h: Update copyright.
9778
9779 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9780
9781         * pa-protos.h: Update copyright.
9782         * pa.h: Likewise.
9783         * pa.md: Likewise.
9784
9785 2004-01-21  Caroline Tice  <ctice@apple.com>
9786
9787         PR target/12308
9788         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
9789         flags register.
9790         (fix_truncdfdi2): Likewise.
9791         (fix_truncsfdi2): Likewise.
9792         (*fix_truncdi_1): Likewise.
9793         (fix_truncxfsi2): Likewise.
9794         (fix_truncdfsi2): Likewise.
9795         (fix_truncsfsi2): Likewise.
9796         (*fix_truncsi_1): Likewise.
9797         (fix_truncxfhi2): Likewise.
9798         (fix_truncdfhi2): Likewise.
9799         (fix_truncsfhi2): Likewise.
9800         (*fix_trunchi_1): Likewise.
9801
9802 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
9803
9804         * alias.c, basic-block.h, c-common.c, c-common.h,
9805         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
9806         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
9807         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
9808         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
9809         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
9810         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
9811         genautomata.c, genconditions.c, genemit.c, genflags.c,
9812         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
9813         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
9814         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
9815         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
9816         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
9817         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
9818         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
9819         unwind.h, varray.c, varray.h: Update copyright.
9820
9821 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
9822
9823         * config/h8300/coff.h: Update copyright.
9824         * config/h8300/elf.h: Likewise.
9825         * config/h8300/h8300-protos.h: Likewise.
9826         * config/h8300/h8300.c: Likewise.
9827         * config/h8300/h8300.h: Likewise.
9828         * config/h8300/h8300.md: Likewise.
9829
9830 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9831
9832         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
9833         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
9834         ultrix_unistd): New hacks.
9835         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
9836         ULTRIX_CONST2_CHECK): Add checks.
9837         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
9838         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
9839         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
9840         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
9841         * fixinc/tests/base/locale.h: New file.
9842         * fixinc/fixincl.x: Rebuilt.
9843
9844 2004-01-21  Andreas Jaeger  <aj@suse.de>
9845             Michael Matz  <matz@suse.de>
9846
9847         * doc/extend.texi (Extended Asm): Clarify memory clobber.
9848
9849 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
9850
9851         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
9852         _Jv_RegisterClasses through a function pointer.
9853
9854 2004-01-21  Falk Hueffner  <falk@debian.org>
9855
9856         PR target/12898
9857         * config/alpha/alpha.c (alpha_emit_set_const_1): If
9858         no_new_pseudos, use gen_rtx_SET directly for SImode constants
9859         which need multiple instructions to emit.
9860
9861 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
9862
9863         * config/m32r/m32r.h (CPP_SPEC): Define.
9864
9865 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
9866
9867         * c-decl.c (merge_decls): Kill different_binding_level and
9868         different_tu arguments; simplify throughout.
9869         (duplicate_decls): Likewise.
9870         (pushdecl, merge_translation_unit_decls): Update calls to
9871         duplicate_decls.
9872
9873 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9874
9875         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
9876         $(SYSTEM_H).
9877         (print-rtl1.o): Depend on $(SYSTEM_H).
9878
9879 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
9880
9881         PR bootstrap/12730
9882         * configure.ac: Delete definition and subsitution of docdir.
9883         Add info, man, srcman and srcinfo to target hooks. Create doc/
9884         directory.
9885         * configure: Regenerate.
9886         * Makefile.in: Don't substitute docdir and delete all references
9887         throughout.
9888         (MAKEINFOFLAGS): Define.
9889         (stmp-docobjdir): Delete.
9890         (INFOFILES, MANFILES): Define.
9891         (info): Call lang.info, srcinfo and lang.srcinfo.
9892         (generated-manpages): Call lang.man, srcman and lang.srcman.
9893         (srcinfo, srcman): New rules to copy back files to source directory.
9894         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
9895         (install-man): Revamp rule.
9896         (clean): Update dvi directory.
9897         (distclean): Delete TAGS from front end directorys.
9898         (maintainer-clean): Delete all document files in source directory.
9899
9900         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
9901         (objc.srcman, objc.srcinfo): Likewise.
9902
9903 2004-01-20  Bruce Korb  <bkorb@gnu.org>
9904
9905         * fixinc/inclhack.def(math_exception): bypass only for glibc.
9906         (matherr_decl): rename & relocate as exception_structure.
9907         This fix must precede the math_exception fix.
9908
9909 2004-01-20  Roger Sayle  <roger@eyesopen.com>
9910
9911         * fold-const.c (fold_convert): Rename to fold_convert_const.
9912         (fold_convert_const): Change arguments to take a tree_code,
9913         a type and the operand/expression to be converted.  Return
9914         NULL_TREE if no simplification is possible.  Add support for
9915         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
9916         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
9917         Adjust call to fold_convert to match new fold_convert_const.
9918         Avoid modifying the tree passed to fold in-place.
9919
9920 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
9921
9922         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
9923         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
9924         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
9925
9926 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9927
9928         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
9929         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
9930         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
9931         (emit_move_sequence): Check scratch_reg first in various if statements.
9932         Extend source simplification to handle all 64-bit CONST_INTs.
9933         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
9934         frame size.
9935         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
9936         frame offset calculations.
9937         * pa.h (NEW_HP_ASSEMBLER): Add comment.
9938         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
9939         LEGITIMATE_64BIT_CONST_INT_P): Define.
9940         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
9941         any CONST_INT as legitimate during and after reload.
9942         (VAL_32_BITS_P, INT_32_BITS): Define.
9943         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
9944
9945 2004-01-20  Jan Hubicka  <jh@suse.cz>
9946
9947         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
9948         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
9949         containing hard regs are shared.
9950         (gen_hard_reg_clobber): New function.
9951         (hard_reg_clobbers): New array.
9952         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
9953         (copy_rtx): Do not copy clobbers containing hard regs.
9954         * rtl.h (gen_hard_reg_clobber): Declare.
9955
9956 2004-01-20  Jan Hubicka  <jh@suse.cz>
9957
9958         * varray.c:  Include hashtab.h
9959         (varray_descriptor): New structure.
9960         (hash_descriptor, eq_descriptor, varray_descriptor,
9961         print_statistics): New static functions
9962         (varray_init, varray_grow): Update statistics
9963         (dump_varray_statistics): New function.
9964         * varray.h (dump_varray_statistics): Declare.
9965         * toplev.c (finalize): Call it.
9966         * Makefile.in (varray.o): Add dependency.
9967
9968 2004-01-20  Jan Hubicka  <jh@suse.cz>
9969
9970         * cselib.c: Include alloc-pool.h
9971         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
9972         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
9973         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
9974         unchain_one_elt_loc_list_pool, unchain_one_value,
9975         new_cselib_val): Simplify using allocpool.
9976         (cselib_init): Initialize allocpools.
9977         (cselib_finish): Finish allocpools.
9978         * Makefile.in (cselib.o): Depend on alloc-pool.h
9979
9980 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
9981
9982         * config/mips/mips.c (mips_load_call_address): Make the call insn
9983         use $gp if it could be calling a lazy binding stub.
9984
9985 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
9986
9987         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
9988         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9989         (TARGET_STRUCT_VALUE_RTX): Likewise.
9990         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
9991         (PROMOTE_FUNCTION_RETURN): Remove.
9992         (STRUCT_VALUE): Remove.
9993
9994 2004-01-20  Denis Chertykov  <denisc@overta.ru>
9995
9996         PR bootstrap/13735
9997         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
9998         register as pointer after reload.
9999
10000 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10001
10002         PR optimization/12440
10003         * loop.c: Include ggc.h.
10004         (loop_optimize): Run garbage collector between optimization of loops.
10005         * Makefile.in (loop.o): Add GGC_H dependency.
10006
10007 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
10008
10009         * gcc/config/rs6000/rs6000.c (function_arg) Handle
10010         vector register special in function without prototype.
10011         (function_arg_advance): Vector parameters get always
10012         GPRs allocated for the linux64 target.
10013
10014 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
10015
10016         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
10017         not TARGET_M32RX_MASK.
10018
10019 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
10020
10021         PR target/13557
10022         * config/sparc/sparc.c (function_arg): Reorder the cases.
10023
10024 2004-01-19  Per Bothner  <per@bothner.com>
10025
10026         Move cpp_reader's line_maps field to a shared global.
10027         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
10028         and change the type to a pointer rather than a struct.
10029         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
10030         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
10031         Likewise.
10032         * cppfiles.c (validate_pch):  Likewise.
10033         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
10034         Likewise.
10035         * cpperror.c (print_location):  Likewise.
10036         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
10037         * cppinit.c (cpp_create_reader):  Handle new parameter.
10038         (cpp_destroy):  Don't free line_maps - that's no longer our job.
10039         * input.h (line_table):  New variable.
10040         * toplev.c (line_table):  Declare variable.
10041         (general_init):  Initialize line_table.
10042         * c-opts.c (c_common_init_options):  Pass line_table to
10043         cpp_create_reader.
10044         * fix-header.c (read_scan_file):  New local variable line_table.
10045         Initialize, and pass it to cpp_create_reader.
10046         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
10047         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
10048
10049 2004-01-19  Per Bothner  <per@bothner.com>
10050
10051         Implement a cache for linemap_lookup.
10052         * line-map.h (struct_line_maps):  Add cache field.
10053         * line-map.c (linemap_init):  Zero cache field.
10054         (linemap_add):  Set cache field to offset of newly allocated map.
10055         (linemap_lookup):  Use and set cache field.
10056
10057 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10058
10059         PR optimization/13567
10060         * cse.c (cse_basic_block): Call cse_insn with a non-null
10061         libcall_insn for the last SET insn of a no-confilict block.
10062
10063 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
10064
10065         * Makefile.in (target_noncanonical, program_transform_name): Use
10066         immediate define instead of deferred.
10067         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
10068         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
10069         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
10070         deferred backquote.
10071
10072 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
10073
10074         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
10075         true unconditionally.
10076         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
10077         Remove.
10078         (build_unary_op, build_modify_expr): Don't handle extended
10079         lvalues.
10080         (build_component_ref, build_conditional_expr): Call non_lvalue
10081         instead of pedantic_non_lvalue.
10082         (build_c_cast): Don't condition use of non_lvalue on pedantic.
10083         * fold-const.c (fold): Don't check pedantic directly for
10084         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
10085         passed to pedantic_non_lvalue.
10086         * doc/extend.texi: Remove documentation of extended lvalues.
10087
10088 2004-01-19  Roger Sayle  <roger@eyesopen.com>
10089
10090         PR optimization/5263
10091         * simplify-rtx.c (associative_constant_p): Delete.
10092         (simplify_associative_operation): Rewrite to linearize terms, and
10093         attempt to simplify new term against both left and right subterms.
10094         (simplify_binary_operation): Call swap_commutative_operands_p on
10095         op0 and op1, not trueop0 and trueop1.  Move the initialization of
10096         trueop0 and trueop1 down to where first needed.
10097         (simplify_relational_operation): Likewise.
10098         * rtlanal.c (commutative_operand_precedence): Also order constant
10099         operands using avoid_constant_pool_reference.
10100
10101 2004-01-19  Richard Henderson  <rth@redhat.com>
10102
10103         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
10104         don't check memory mode.
10105         (unaligned_memory_operand): Likewise.
10106         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
10107         abort for op0 not MEM.
10108
10109         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
10110         is not a reg, copy to a scratch first.
10111         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
10112         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
10113         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
10114         (reload_inqi, reload_inhi): Fix mode of op0.
10115         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
10116         reload_outhi_help): Likewise.  Use define_insn_and_split.
10117
10118         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
10119         as well as $29 dead.
10120
10121 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
10122
10123         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
10124         "tls_object" for thread-local objects.
10125         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
10126         "#tls" for thread-local sections.
10127         * configure.ac (thread-local checks): Specify --fatal-warnings in
10128         every binutils-specific checks.  For sparc*-*-*, test whether the
10129         OS is Solaris and the tools are native and act accordingly.
10130         * configure: Rebuild.
10131
10132 2004-01-19  Jeff Law  <law@redhat.com>
10133
10134         * contrib.texi: Update Paolo Carlini's entry.  New entries for
10135         Jerry Quinn and Petur Runolfsson.
10136
10137 2004-01-19  Roger Sayle  <roger@eyesopen.com>
10138
10139         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
10140         size, don't use the larger zero-extending loads.
10141
10142 2004-01-19  Richard Henderson  <rth@redhat.com>
10143
10144         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
10145         * alpha.md (UNSPEC_NT_LDA): Remove.
10146         (UNSPEC_CVTLQ, cvtlq): New.
10147         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
10148         (extendsidi2_fix): Remove.
10149         (extendsidi2 splitter): Use cvtlq.
10150         (extendsidi2 fp peepholes): Remove.
10151         (cvtql): Use SFmode instead of SImode.
10152         (fix_trunc?fsi): Update to match.
10153         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
10154         (movsi): Rename from movsi_nofix, remove f alternatives.
10155         (movsi_nt_vms): Similarly.
10156         (movsi_fix, movsi_nt_vms_fix): Remove.
10157         (nt_lda): Remove.
10158         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
10159
10160 2004-01-19  Jan Hubicka  <jh@suse.cz>
10161
10162         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
10163         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
10164         list.
10165         (cgraph_remove_unreachable_nodes): New function
10166         (cgraph_decide_inlining_of_small_function): Fix pasto.
10167         (cgraph_decide_inlining_incrementally): Fix pasto.
10168         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
10169
10170 2004-01-19  Steven Bosscher  <stevenb@suse.de>
10171
10172         * gengtype.c (header_file): Make it static.
10173         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
10174         * gengtype.h (header_file): No longer extern.
10175
10176 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
10177
10178         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
10179         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
10180         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
10181
10182 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
10183
10184         * stmt.c (HAVE_casesi): Define it not already defined.
10185         (HAVE_tablejump): Likewise.
10186         (expand_end_case_type): Resort to the binary tree method if
10187         neither casesi or tablejump is available.
10188
10189 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
10190
10191         * final.c (final_scan_insn): Make non-static again.
10192         * output.h (final_scan_insn): Re-add prototype.
10193         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
10194         to final_scan_insn call.
10195         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
10196         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
10197         * config/pa/pa.c (output_lbranch, output_call): Likewise.
10198         * config/sh/sh.c (print_slot): Likewise.
10199         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
10200         (output_sibcall, sparc_flat_function_epilogue): Likewise.
10201
10202 2004-01-18  Jan Hubicka  <jh@suse.cz>
10203
10204         * basic-block.h (try_redirect_by_replacing_jump): Declare.
10205         * cfgcleanup.c (try_optimize_cfg): Use it.
10206         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
10207         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
10208         Kill hack.
10209         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
10210
10211         Revert:
10212         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
10213
10214                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
10215                 even after reload, just don't remove the actual jump tables.
10216
10217 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
10218
10219         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
10220
10221 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
10222
10223         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
10224         the size of a pointer in bytes.
10225
10226 2004-01-18  Roger Sayle  <roger@eyesopen.com>
10227
10228         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
10229         live "next" variable, which could lead to an infinite loop.
10230
10231 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
10232
10233         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
10234         block.
10235
10236         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
10237         Check for NULL in the chain and remove repeated code.
10238
10239 2004-01-18  Jan Hubicka  <jh@suse.cz>
10240
10241         * coverage.c (checksum_string): Rename to ...
10242         (coverage_checksum_string): ... this one, Use crc32_string; recognize
10243         names containing random number and zero the number out in order to get
10244         match.
10245
10246 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
10247
10248         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
10249
10250 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
10251
10252         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
10253         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
10254         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
10255         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
10256         doc/trouble.texi: Remove trailing whitespace.
10257
10258 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
10259
10260         PR target/7618
10261         * config/mips/mips.c: Include cfglayout.h.
10262         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
10263         (mips_unspec_offset_high): Add temporary register argument.
10264         (mips_load_call_address): New function, split out from...
10265         (mips_expand_call): ...here.
10266         (mips_output_cplocal): New function.
10267         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
10268         (mips_emit_loadgp): New function, split out from...
10269         (mips_expand_prologue): ...here.
10270         (mips_output_mi_thunk): New function.
10271
10272 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
10273
10274         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
10275         mcpu32): Remove redundant checks for implied target predefines.
10276
10277 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
10278
10279         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
10280         Return type is unsigned int not int.
10281         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
10282         Likewise.
10283
10284 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
10285
10286         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
10287         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
10288         "GNU/Linux" and "Microsoft Windows" terminology.
10289
10290 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
10291
10292         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
10293         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
10294         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
10295         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
10296         @smallexample instead of @example.
10297
10298 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
10299
10300         * objc/objc-act.c (build_objc_method_call): Use target
10301         hooks instead of macros to determine if ..._stret
10302         dispatchers should be used (NeXT runtime only).
10303
10304 2004-01-17  Roger Sayle  <roger@eyesopen.com>
10305
10306         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
10307         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
10308
10309 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
10310
10311         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
10312         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
10313         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
10314         macros.
10315         * reload1.c (emit_reload_insns): Use them.
10316         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
10317         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
10318         for NULL PATTERN.
10319
10320 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
10321
10322         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
10323         (final_scan_insn): Update to take an additional SEEN argument.  Emit
10324         a line note after the prologue.  Make static.
10325         (line_note_exists): Remove.
10326         (final): Don't initialize line_note_exists.  Update call to
10327         final_scan_insn.
10328         * output.h (final_scan_insn): Remove prologue.
10329         * function.c (set_insn_locators): Update comment.
10330         (thread_prologue_and_epilogue_insns): Add a comment.
10331
10332 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
10333
10334         PR target/10781
10335         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
10336         Prototype.
10337         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
10338         New function.
10339         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
10340         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
10341         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
10342
10343 2004-01-17  Jan Hubicka  <jh@suse.cz>
10344
10345         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
10346         commit.
10347
10348         * toplev.c (HAVE_conditional_execution): Provide default.
10349         (rest_of_handle_reorder_blocks): For conditional_execution target
10350         update liveness once after all transformations
10351         (rest_of_compilation): Do crossjumping before ce3.
10352
10353 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
10354
10355         * alias.c (new_alias_set): Mark last_alias_set for PCH.
10356         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
10357         for PCH.
10358         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
10359         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
10360         (get_TOC_alias_set): Mark 'set' for PCH.
10361
10362 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
10363
10364         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
10365         even after reload, just don't remove the actual jump tables.
10366
10367 2004-01-17  J. Brobecker  <brobecker@gnat.com>
10368
10369         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
10370         Remove checks for is_ada() and TREE_UNSIGNED.
10371         (subrange_type_die): Emit a byte_size attribute if the subrange
10372         type size is different from the base type size.
10373         (modified_type_die): Replace call to is_ada_subrange_type() by
10374         call to is_subrange_type().
10375
10376 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
10377
10378         * config/sh/sh.c: Include ggc.h.
10379
10380 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
10381
10382         * Makefile.in (MD5_H): New.
10383         (fold-const.o): Depend on md5.h.
10384         (dwarf2out.o): Likewise.
10385         (cppfiles.o): Likewise.
10386         * cppfiles.c: Include md5.h.
10387         (should_stack_file): Check against list read from PCH file.
10388         (struct pchf_data): New.
10389         (pchf): New variable.
10390         (struct pchf_adder_info): New.
10391         (pchf_adder): New.
10392         (pchf_save_compare): New.
10393         (_cpp_save_file_entries): New.
10394         (_cpp_read_file_entries): New.
10395         (struct pchf_compare_data): New.
10396         (pchf_compare): New.
10397         (check_file_against_entries): New.
10398         * cpphash.h (_cpp_save_file_entries): Prototype.
10399         (_cpp_read_file_entries): Prototype.
10400         * cpppch.c (cpp_write_pch_state): Write the list of headers.
10401         (cpp_read_state): Read the list of headers.
10402
10403 2004-01-17  Jan Hubicka  <jh@suse.cz>
10404
10405         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
10406         builtin_expect specially.
10407         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
10408         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
10409         * invoke.texi (max-inline-insns-single): Set to 100.
10410         (large-function-insns): Set to 3000.
10411
10412 2004-01-16  Eric Christopher  <echristo@redhat.com>
10413             Chandrakala Chavva <cchavva@redhat.com>
10414
10415         * cppcharset.c (one_iso88591_to_utf8): New function.
10416         (convert_iso88591_utf8): Ditto. Use.
10417         (conversion_tab): Use.
10418         (_cpp_input_to_utf8): New function.
10419         (_cpp_init_iconv_buffer): Ditto.
10420         (_cpp_close_iconv_buffer): Ditto.
10421         * cpphash.h: Prototype new functions.
10422         (cpp_buffer): Add input_cset_desc.
10423         * cppinit.c: Add input_charset default.
10424         * cpplib.c (cpp_push_buffer): Support init and
10425         close of iconv.
10426         * cpplib.h (cpp_options): Add input_charset.
10427
10428 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
10429
10430         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
10431         * config/alpha/unicosmk.h: Remove a commented-out definition
10432         of ASM_OUTPUT_SECTION_NAME.
10433         * config/stormy16/stormy16.h: Likewise.
10434
10435 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10436
10437         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
10438         (alpha___extern_prefix_sys_stat): ... this.
10439         Apply to <sys/mount.h>, too.
10440         Tweak to match more variations.
10441         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
10442
10443         * fixinc/inclhack.def (alpha___extern_prefix,
10444         alpha___extern_prefix_standards): New hacks to obey
10445         __PRAGMA_EXTERN_PREFIX.
10446         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
10447         test.
10448         * fixinc/tests/base/standards.h: Likewise.
10449
10450         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
10451         variations.
10452         New testcase.
10453         * fixinc/tests/base/pthread.h: Handle it.
10454
10455         * fixincl/inclhack.def (bad_lval): Sort file list.
10456         Add many missing files up to Tru64 UNIX V5.1B.
10457         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
10458         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
10459         order.
10460
10461         * fixinc/fixincl.x: Regenerate.
10462
10463 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
10464
10465         * version.c (version_string): Change to 3.5.0.
10466         * doc/include/gcc-common.texi (version-GCC): Likewise.
10467
10468 2004-01-16  Jan Hubicka  <jh@suse.cz>
10469
10470         * i386.md (load_tp_di): Fix pasto.
10471
10472         PR opt/13608
10473         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
10474
10475         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
10476         pp_c_character_constant, pp_c_floating_constant,
10477         pp_c_additive_expression, pp_c_shift_expression,
10478         pp_c_equality_expression, pp_c_and_expression,
10479         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
10480         pp_c_logical_and_expression): Remove inline modifier.
10481         * dwarf2out.c (get_AT): Likewise.
10482         * et-forest.c (et_splay): Likewise.
10483         * ra.h (ra_alloc, ra_calloc): Likewise
10484
10485 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
10486
10487         * config/frv/frv-protos.h: Fix comment formatting.
10488         * config/frv/frv.c: Likewise.
10489         * config/frv/frv.h: Likewise.
10490         * config/frv/frv.md: Likewise.
10491         * config/frv/frvbegin.c: Likewise.
10492         * config/frv/frvend.c: Likewise.
10493
10494 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
10495
10496         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
10497         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
10498         LINKER_DOES_NOT_WORK_WITH_DWARF2.
10499         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
10500
10501 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
10502
10503         PR 11864
10504         * postreload.c (reload_cse_simplify_operands): Don't remove
10505         implicit extension from LOAD_EXTEND_OP.
10506
10507 2004-01-16  Jan Hubicka  <jh@suse.cz>
10508
10509         PR opt/11350
10510         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
10511         after reload.
10512         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
10513         rtl_try_redirect_by_replacing_branch): Likewise.
10514
10515 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
10516
10517         PR pch/13689
10518         * alias.c (struct alias_set_entry): Mark for GC.
10519         (alias_sets): Make static, mark for GC.
10520         (record_alias_subset): Use GC to allocate alias structures.
10521         * varray.c (element): Make generic varrays GCed.
10522
10523         PR pch/13361
10524         * c-typeck.c (constructor_asmspec): Delete.
10525         (struct initializer_stack): Delete field 'asmspec'.
10526         (start_init): Delete saving of asmspec.
10527         (finish_init): Don't update constructor_asmspec.
10528         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
10529         * stmt.c (expand_asm): Duplicate strings from tree.
10530         (expand_asm_operands): Likewise.
10531         * tree.c (tree_size): Update computation of size of STRING_CST.
10532         (make_node): Don't make STRING_CST nodes.
10533         (build_string): Allocate string with tree node.
10534         * tree.def (STRING_CST): Update comment.
10535         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
10536         (tree_string): Place contents of string in tree node.
10537         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
10538         from tree.
10539
10540         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
10541         altivec operands.
10542
10543 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
10544
10545         * c-common.h: Fix comment formatting.
10546         * c-cppbuiltin.c: Likewise.
10547         * c-pragma.c: Likewise.
10548         * calls.c: Likewise.
10549         * collect2.c: Likewise.
10550         * cppcharset.c: Likewise.
10551         * cpptrad.c: Likewise.
10552         * dbxout.c: Likewise.
10553         * defaults.h: Likewise.
10554         * dwarf2out.c: Likewise.
10555         * fold-const.c: Likewise.
10556         * genautomata.c: Likewise.
10557         * genconditions.c: Likewise.
10558         * genflags.c: Likewise.
10559         * gengtype.c: Likewise.
10560         * integrate.c: Likewise.
10561         * loop.c: Likewise.
10562         * predict.c: Likewise.
10563         * sdbout.c: Likewise.
10564
10565 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
10566
10567         * config/ia64/ia64.md (*movti_internal): C output template
10568         extracted to ia64.c.
10569         (*movti_internal_reg): Delete.
10570         (reload_inti, reload_outti): Use the correct mode on operand 2
10571         in the first place, don't fix it up in the output template.
10572         (movtf, reload_ointf, reload_outtf): New expanders.
10573         (*movtf_internal): New define_insn_and_split.
10574         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
10575         make static; do not hand TFmode CONST_DOUBLEs to split_double.
10576         (ia64_split_tmode_move): New function, body mostly pulled
10577         from ia64.md:*movti_internal.
10578         (ia64_function_arg_words): New function, extracted common
10579         logic from ia64_function_arg et seq.
10580         (ia64_function_arg_offset): Likewise.  Handle correctly the
10581         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
10582         (ia64_function_arg, ia64_function_arg_partial_nregs)
10583         (ia64_function_arg_advance): Use ia64_function_arg_words and
10584         ia64_function_arg_offset.
10585         (ia64_function_value): TCmode does not go in float regs.
10586         (ia64_secondary_reload_class): Also handle TFmode.
10587         * config/ia64/ia64-protos.h: Remove prototype for
10588         ia64_split_timode; add prototype for ia64_split_tmode_move.
10589
10590 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
10591
10592         * Makefile.in (MAINT): Make it an immediate assignment.
10593
10594 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
10595
10596         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
10597
10598 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
10599
10600         * config/h8300/coff.h: Replace Hitachi with Renesas.
10601         * config/h8300/elf.h: Likewise.
10602         * config/h8300/h8300-protos.h: Likewise.
10603         * config/h8300/h8300.c: Likewise.
10604         * config/h8300/h8300.h: Likewise.
10605         * config/h8300/h8300.md: Likewise.
10606         * config/h8300/lib1funcs.asm: Likewise.
10607
10608 2004-01-15  Andrew Pinski  <apinski@apple.com>
10609
10610         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
10611         around it.
10612
10613 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
10614
10615         * config/h8300/h8300.c (h8300_return_in_memory): New.
10616         (TARGET_STRUCT_VALUE_RTX): Likewise.
10617         (TARGET_RETURN_IN_MEMORY): Likewise.
10618         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
10619         (RETURN_IN_MEMORY): Likewise.
10620
10621 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
10622
10623         PR optimization/13375
10624         * gcse.c (handle_avail_expr): Just return if the source is not a
10625         single set.
10626
10627 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
10628             Daniel Jacobowitz  <drow@mvista.com>
10629
10630         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
10631         (EQUIV): Define.
10632         (ARM_FUNC_ALIAS): New macro.
10633         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
10634         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
10635
10636 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10637
10638         PR optimization/12372
10639         * calls.c (expand_call): Add call_fusage data for stack arguments in
10640         constant calls.
10641
10642 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
10643
10644         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
10645         (rs6000_elf_declare_function_name): Formatting.
10646         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
10647
10648 2004-01-15  Jan Hubicka  <jh@suse.cz>
10649
10650         PR bootstrap/13692
10651         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
10652         previous patch.
10653
10654 2004-01-15  Richard Henderson  <rth@redhat.com>
10655
10656         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
10657         integer regs of the same call-savedness.
10658
10659 2004-01-15  Andreas Schwab  <schwab@suse.de>
10660
10661         PR bootstrap/13562
10662         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
10663         status for NOTB/NOTW/NEGW methods.
10664
10665 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
10666
10667         * doc/invoke.texi: Update dump file names.  Fix a typo.
10668
10669 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
10670
10671         * builtins.c (expand_builtin_va_end): Don't use
10672         EXPAND_BUILTIN_VA_END.
10673         * system.h (EXPAND_BUILTIN_VA_END): Poison.
10674         * config/d30v/d30v.h: Remove a commented-out definition of
10675         EXPAND_BUILTIN_VA_END.
10676         * config/stormy16/stormy16.h: Likewise.
10677
10678 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
10679
10680         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
10681         * targhooks.c (default_struct_value_rtx): Don't use
10682         STRUCT_VALUE_INCOMING_REGNUM.
10683
10684 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
10685
10686         PR bootstrap/12744
10687         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
10688         GENINSRC and not parsedir.  Define srcextra as a langhook.
10689         * configure: Regenerate.
10690         * Makefile.in: Suppress default .l.c rule.  Don't substitute
10691         parsedir and delete all references throughout.  Conditionally define
10692         rule for srcextra dependent on GENINSRC.
10693         (stmp-docobjdir): Delete.
10694         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
10695         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
10696         and gengtype-yacc.h back to source directory.
10697         (maintainer-clean): Delete all parse files in source directory.
10698         (distclean): Delete generated files.
10699
10700         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
10701         (objc-parse.c, objc-parse.y): Don't use parsedir.
10702         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
10703         directory if requested.
10704         (po-generated): Don't use parsedir.
10705         (objc.maintainer-clean): Delete above files from source directory.
10706
10707 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
10708
10709         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
10710
10711 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
10712
10713         * doc/tm.texi: Replace RETURN_IN_MEMORY with
10714         TARGET_RETURN_IN_MEMORY.
10715
10716 2004-01-15  Jan Hubicka  <jh@suse.cz>
10717
10718         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
10719         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
10720         functions accepting SSE arguments
10721         (function_arg): Warn only when asked to warn.
10722         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
10723
10724 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
10725
10726         * c-parse.in (stmts_and_decls): Make label at end of compound
10727         statement a hard error.
10728
10729 2004-01-14  Jan Hubicka  <jh@suse.cz>
10730
10731         * cgraph.c (create_edge): Use local.redefined_extern_inline.
10732         * cgraph.h (cgraph_local_info): Sort fields by size; add
10733         redefined_extern_inline
10734         (cgraph_global_info): Sort fields by size.
10735         (cgraph_node): Likewise.
10736         * cgraphunit.c (cgraph_finalize_function): Se
10737         local.redefined_extern_inline on redefinition.
10738         (cgraph_analyze_function): Use it; fix formating.
10739
10740 2004-01-14  Jan Hubicka  <jh@suse.cz>
10741
10742         PR c++/10776
10743         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
10744         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
10745         bitmaps
10746         (cache_size): New variable
10747         (add_dependence): Update use; canonize early memory locations
10748         (sched_analyze_1): Likewise.
10749         (sched_analyze_2): Likewise.
10750         (init_dependency_caches): Initialize bitmaps.
10751         (free_dependency_caches): Free bitmaps
10752
10753 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
10754
10755         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
10756         targetm.calls.strict_argument_naming().
10757         * target.h: Likewise.
10758
10759 2004-01-14  Richard Henderson  <rth@redhat.com>
10760
10761         PR debug/13231
10762         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
10763         instructions.
10764
10765 2004-01-14  Richard Henderson  <rth@redhat.com>
10766
10767         PR c++/12491
10768         * except.c (struct eh_region): Add u.fixup.resolved.
10769         (resolve_one_fixup_region): Split out from ...
10770         (resolve_fixup_regions): ... here.
10771
10772 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
10773
10774         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
10775
10776 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
10777
10778         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
10779         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
10780         (STRUCT_VALUE): Remove.
10781
10782 2004-01-14  Steven Bosscher  <stevenb@suse.de>
10783
10784         * system.h: Poison PROMOTED_MODE
10785         * integrate.c (expand_inline_function): Don't mention the
10786         PROMOTED_MODE.
10787         * loop.c (update_giv_derive): Same.
10788         * tree.h (DECL_RTL): Same.
10789
10790 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
10791
10792         PR target/9365
10793         * sh.c (gen_block_redirect): Add special handling of RETURN.
10794         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
10795         far branch target (i.e. it's a return).
10796
10797 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
10798
10799         * regrename.c (find_oldest_value_reg): Fix a warning.
10800
10801 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
10802
10803         PR bootstrap/12527
10804         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
10805         Move linux-gas.h and linux-elf.h before aout.h.
10806         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
10807         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
10808
10809 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
10810
10811         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
10812         (CONST_INT, VOIDmode, ...).
10813
10814 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
10815
10816         * regrename.c (find_oldest_value_reg): If the replacement uses
10817         multiple hard registers, check that all of them are in CLASS.
10818
10819 2004-01-14  Jan Hubicka  <jh@suse.cz>
10820
10821         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
10822         impossible.
10823
10824 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
10825
10826         * Makefile.in: Define MAINT from --enable-maintainer-mode.
10827
10828 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
10829
10830         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
10831         Calculate always vrsave_mask if TARGET_ALTIVEC.
10832         (rs6000_emit_prologue): Emit code for vrsave
10833         only if TARGET_ALTIVEC_VRSAVE.
10834         (rs6000_emit_epilogue): Likewise.
10835
10836 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
10837
10838         * config/sparc/sparc.md (tie_add32): Fix pasto.
10839         (tie_add64): Likewise.
10840
10841 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10842
10843         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
10844
10845 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
10846
10847         * config/iq2000/iq2000-protos.h: Fix comment formatting.
10848         * config/iq2000/iq2000.c: Likewise.
10849         * config/iq2000/iq2000.md: Likewise.
10850
10851 2004-01-14  J. Brobecker  <brobecker@gnat.com>
10852
10853         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
10854         (subrange_type_die): Add handle for nameless subrange types.
10855
10856 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
10857
10858         * config/h8300/h8300-protos.h: Replace do_movsi with
10859         h8300_expand_movsi.
10860         * config/h8300/h8300.c (do_movsi): Change to
10861         h8300_expand_movsi.
10862         * config/h8300/h8300.md (movsi): Replace do_movsi with
10863         h8300_expand_movsi.
10864         (movsf): Likewise.
10865
10866 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
10867
10868         * config/h8300/h8300.c (dosize): Change to
10869         h8300_emit_stack_adjustment.  Update callers.
10870
10871 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
10872
10873         * config/h8300/h8300.md (movstrictqi): Add an alternative with
10874         the source being post_inc.  Tighten the predicate for the
10875         destination to register_operand.
10876         (movstricthi): Likewise.
10877
10878 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
10879
10880         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
10881         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
10882         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
10883
10884 2004-01-14  Jan Hubicka  <jh@suse.cz>
10885
10886         Partial fix PR c++/12850
10887         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
10888         at zero nest level.
10889
10890 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
10891
10892         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
10893         pseudo-register.
10894
10895 2004-01-13  Devang Patel <dpatel@apple.com
10896
10897         PR debug/7078
10898         * dbxout.c (dbxout_symbol_name): Emit mangled names for
10899         NAMESPACE_DECL memebers.
10900
10901 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
10902
10903         PR c++/12709
10904         * c-common.c (finish_fname_decls): Use the chain only if the
10905         tree is an expr_stmt.
10906
10907 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
10908
10909         * rtl.def: Add comment about new option in automata_option.
10910
10911         * genautomata.c (PROGRESS_OPTION): New macro.
10912         (progress_flag): New global variable.
10913         (gen_automata_option): Process `progress'.
10914         (transform_insn_regexps, check_unit_distributions_to_automata,
10915         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
10916         expand_automata, write_automata): Print about the progress only if
10917         progress_flag.  Remove fflush.
10918         (initiate_automaton_gen): Process command line flag `-progress'.
10919
10920         * doc/md.texi: Describe the new option.
10921
10922 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10923
10924         * cfg.c (dump_bb): Dump entry edges.
10925
10926 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
10927
10928         * arm.c (thumb_legitimate_address_p): Only allow constant pool
10929         references from SImode.
10930         * arm.md (thumb_movhi_insn): Don't allow minipool references.
10931
10932 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
10933
10934         * system.h (TEXT_SECTION): Poison.
10935         * varasm.c (text_section): Don't use TEXT_SECTION.
10936         * config/sh/sh.c (sh_file_start): Fix a comment typo.
10937         * doc/tm.texi (TEXT_SECTION): Remove.
10938
10939 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
10940
10941         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
10942
10943 2004-01-12  James E Wilson  <wilson@specifixinc.com>
10944
10945         * unwind-libunwind.c: Delete.
10946
10947 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
10948
10949         PR 13656
10950         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
10951         oldtype is set, set *newtypep or *oldtypep too.  Do not set
10952         them at the very end.
10953         (validate_proto_after_old_defn): Restructure for comprehensibility;
10954         make error messages clearer.
10955
10956 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
10957
10958         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
10959         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
10960         * varray.c: No need to prototype error.
10961         (varray_check_failed): Wrap long string onto two lines.
10962         (varray_underflow): New function.
10963
10964 2004-01-13  Steven Bosscher  <stevenb@suse.de>
10965
10966         PR c++/13376
10967         * function.h (struct function): Kill `name' field.
10968         (current_function_name): Make it an extern function.
10969         * function.c (current_function_name): New function.
10970         * graph.c: Update all uses of current_function_name.
10971         * gcse.c: Likewise.
10972         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
10973         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
10974         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
10975         instead of a strcmp with "main".
10976
10977 2004-01-13  Jan Hubicka  <jh@suse.cz>
10978
10979         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
10980
10981         * cgraphunit.c (cgraph_optimize_function):  Always do
10982         optimize_inline_calls when there is always_inline callee.
10983         (cgraph_decide_inlining): Fix formating.
10984         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
10985         functions.
10986         (expand_call_inline): Likewise.
10987         * toplev.h (sorry): Fix prototype.
10988
10989 2004-01-12  Roger Sayle  <roger@eyesopen.com>
10990
10991         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
10992         conditional jumps that drop through to unconditional jumps or the
10993         end of the sequence.
10994
10995 2004-01-13  Jan Hubicka  <jh@suse.cz>
10996
10997         * alias.c (new_alias_set): Construct the alias_set varray.
10998         (init_alias_once): Don't do it here.
10999
11000 2004-01-12  Marc Espie <espie@openbsd.org>
11001
11002         * system.h: handle YYBYACC like YYBISON.
11003
11004 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
11005
11006         PR target/10847
11007         * config.gcc: No longer includes conflicting header sparc/sol2.h when
11008         building on sparc64-*-openbsd*.
11009
11010 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
11011
11012         PR debug/13539
11013         * dbxout.c (dbxout_type): Protected inheritance is not
11014         private but protected.
11015
11016 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
11017
11018         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
11019
11020 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
11021
11022         PR optimization/12508.
11023         * combine.c (try_combine): Remove a dead set in a parallel
11024         even if its destination is a subreg.
11025
11026         Revert:
11027         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
11028         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
11029         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
11030
11031 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
11032
11033         * real.c: Update copyright date.
11034         * emit-rtl.c: Likewise.
11035         * rtl.h: Likewise.
11036         * dwarf2out.c: Likewise.
11037         * config/rs6000/darwin-ldouble.c: Likewise.
11038         * config/rs6000/rs6000.md: Likewise.
11039
11040 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
11041
11042         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
11043         TFmode to SImode libfuncs.
11044
11045 2004-01-12  Roger Sayle  <roger@eyesopen.com>
11046
11047         PR middle-end/11397
11048         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
11049
11050 2004-01-12  Jan Hubicka  <jh@suse.cz>
11051
11052         PR opt/12826
11053         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
11054         stored.
11055
11056         PR opt/12863
11057         * cfgcleanup.c (label_is_jump_target_p): Move to...
11058         * rtlanal.c (label_is_jump_target_p): ... here.
11059         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
11060         edges unified with branch edges.
11061
11062 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
11063
11064         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
11065         high word of an integral CONST_DOUBLE.
11066
11067 2004-01-12  Paul Brook  <paul@codesourcery.com>
11068
11069         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
11070
11071 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
11072
11073         PR target/13585
11074         * sh-protos.h (check_use_sfunc_addr): Declare.
11075         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
11076         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
11077
11078 2004-01-12  Jan Hubicka  <jh@suse.cz>
11079
11080         * alias.c:  Invlude varray.h
11081         (alias_sets): Turn into varray.
11082         (get_alias_set_entry): Use VARRAY; mark inline.
11083         (mems_in_disjoint_alias_sets_p): Mark inline.
11084         (record_alias_subset): Use varray.
11085         (init_alias_once): Initialize varray.
11086         (new_alias_set): Grow array.
11087         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
11088
11089 2004-01-12  Jan Hubicka  <jh@suse.cz>
11090
11091         Partial fix for PR opt/10776 II
11092         * cselib.c: Include params.h
11093         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
11094         locations.
11095         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
11096         * Makefile.in (cselib.o): Depend on params.h
11097
11098 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
11099
11100         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
11101         simplify_unary_operation if the operand has a known mode.
11102
11103 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
11104
11105         PR target/13534
11106         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
11107         predicate to handle 'ld' conform addresses.
11108         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
11109         contraint.
11110         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
11111         are memory contraints.
11112         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
11113         New prototype.
11114         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
11115         Change 'o' to 'Y' constraint.
11116         (*movdf_softfloat64): Ditto.
11117
11118 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
11119
11120         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
11121         brace-enclosed syntax in all C output statements.
11122
11123 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
11124
11125         PR target/13401
11126         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
11127         Objective-C language type value is 14.
11128
11129 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
11130
11131         PR c/12148
11132         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
11133         `int' in a number of places to make sure we always have a SImode
11134         and not a HImode.  Add a 'L' suffix to a number of constants.
11135
11136 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11137
11138         * pa.c: Don't include obstack.h.
11139
11140         * pa.md: Correct constraint in pattern for loading PIC label address.
11141
11142 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
11143
11144         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
11145          before defining.
11146
11147 2004-01-11  Steven Bosscher  <stevenb@suse.de>
11148
11149         PR fortran/9972
11150         * toplev.c (rest_of_handle_inline): Also consider functions
11151         for deferral if the language is GNU F77.
11152
11153 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
11154
11155         * c-decl.c (diagnose_arglist_conflict): Add missing space to
11156         diagnostic messages.
11157
11158 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
11159
11160         PR middle-end/13392
11161         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
11162         to drop through label.  Don't fall back to SCC even when conditional
11163         jump has not been found.
11164
11165 2004-01-11  Jan Hubicka  <jh@suse.cz>
11166
11167         * invoke.texi: Fix syntax error in previous patch.
11168
11169         Partial fix for PR opt/10776
11170         * Makefile.in (reload.o): Include param.h
11171         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
11172         * reload.c: Include params.h.
11173         (find_equiv_reg): Work limiting check.
11174         * invoke.texi: Document.
11175
11176 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
11177
11178         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
11179         out-of-bounds accesses to string constants.  Simplify mips16
11180         case accordingly.
11181
11182 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
11183
11184         PR optimization/13469
11185         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
11186         reload_cse_regs (-fnon-call-exceptions only).
11187
11188 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
11189
11190         * config/mcore/lib1.asm: Fix comment formatting.
11191         * config/mcore/mcore-elf.h: Likewise.
11192         * config/mcore/mcore.c: Likewise.
11193         * config/mcore/mcore.h: Likewise.
11194         * config/mcore/mcore.md: Likewise.
11195
11196 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
11197
11198         * c-decl.c (duplicate_decls): Break apart into...
11199         (diagnose_arglist_conflict, validate_proto_after_old_defn)
11200         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
11201         ... these new functions.  Restructure for comprehensibility.
11202         Remove various archaic special cases.  Always report the
11203         location of the previous declaration when a diagnostic is issued.
11204         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
11205         (match_builtin_function_types): Delete unnecessary forward declaration.
11206
11207 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
11208
11209         * genautomata.c (make_automaton, NDFA_to_DFA):
11210         Print progress bars with '.' characters instead of '*'.
11211         (build_automaton): Change notes to match.
11212
11213 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
11214
11215         * config/m32r/m32r.md: Use define_constants for unspec and
11216         unspec_volatile.
11217
11218 2004-01-10  Jan Hubicka  <jh@suse.cz>
11219
11220         PR opt/11635
11221         * expr.c (expand_expr_real):  More curefully expand union casts.
11222
11223 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
11224
11225         * config/m32r/m32r.md (flush_icache): Use 1 for
11226         unspec_volatile.
11227
11228 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
11229             James E Wilson  <wilson@specifixinc.com>
11230
11231         PR debug/12860
11232         * dbxout.c (dbxout_symbol): Remove initialization of
11233         current_sym_code, current_sym_value, and current_sym_addr.
11234         (dbxout_symbol_location): Same.
11235         (dbxout_prepare_symbol): Zero current_sym_code,
11236         current_sym_value, and current_sym_addr.
11237
11238 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
11239
11240         * tree.c (get_unwidened): Reorder conditions so that the null pointer
11241         check is done first.
11242
11243 2004-01-09  Eric Christopher  <echristo@redhat.com>
11244
11245         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
11246         if we're running mark_constant_function.
11247
11248 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
11249
11250         PR target/12561
11251         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
11252
11253 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
11254
11255         PR debug/11231
11256         * dbxout.c (dbxout_type_fields): Return if any item is
11257         error_mark_node or the type is error_mark_node.
11258
11259 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
11260
11261         * config/rs6000/darwin-ldouble.c: Add big comment explaining
11262         exactly what is expected as a 'long double'.
11263         (_xlqadd): When a value to be returned is representable as a
11264         'double', just return it directly, do not construct it using a union.
11265         Also, correct final fixup.
11266         (_xlqmul): Likewise.
11267         (_xlqdiv): Likewise.
11268         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
11269
11270         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
11271
11272 2004-01-09  Richard Henderson  <rth@redhat.com>
11273
11274         * recog.c (constrain_operands): Validate mem operands.
11275
11276 2004-01-09   James E Wilson  <wilson@specifixinc.com>
11277
11278         * gcc.c (init_spec): Remove -lunwind from shared case.
11279         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
11280
11281 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
11282
11283         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
11284         * configure: Regenerate
11285
11286 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
11287
11288         PR c/11234
11289         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
11290         between function and object pointers.
11291         (digest_init): When comparing a pointer to function type to the
11292         target type, only apply TREE_TYPE once to the pointer to function
11293         type.
11294         * except.c (for_each_eh_label_1): Treat data as a pointer to a
11295         function pointer rather than casting it to a function pointer.
11296         (for_each_eh_label): Update caller.
11297         * recog.h (struct insn_data): Use a struct or union for output.
11298         * genoutput.c (output_insn_data): Update.
11299         * final.c (get_insn_template): Update.
11300
11301 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
11302
11303         * expr.h (expand_expr): Make it a macro, not a function.
11304         (expand_expr_real): New function.
11305         * expr.c (store_expr): Adjust logic for deciding whether or not to
11306         copy the value returned by expand_expr.
11307         (expand_expr): Rename to ...
11308         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
11309         calls to language hooks.
11310         * c-common.h (c_expand_expr): Adjust prototype.
11311         * c-common.c (c_expand_expr): Add alt_rtl parameter.
11312         * langhooks-def.h (lhd_expand_expr): Change prototype.
11313         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
11314         * langhooks.h (lang_hooks): Change type of expand_expr.
11315         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
11316         (last_expr_alt_rtl): Likewise.
11317         (expand_expr_stmt_value): Set last_expr_alt_rtl.
11318         (clear_last_expr): Clear it.
11319         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
11320         (expand_end_bindings): Save and restor last_expr_alt_rtl.
11321         * tree.def (RTL_EXPR): Give it an additional operand.
11322         * tree.h (RTL_EXPR_ALT_RTL): New macro.
11323
11324 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
11325
11326         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
11327         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
11328
11329 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
11330
11331         PR target/13380.
11332         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
11333         or (ne:SI (reg:CC 17) (const_int 0)).
11334         Be specific about modes wherever possible.
11335
11336 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
11337
11338         * config/m32r/m32r.c (m32r_expand_block_move): Call
11339         gen_movestrsi_internal with two more arguments.
11340         (m32r_output_block_move): Adjust operand numbers.
11341         Properly update the source and destination pointers.
11342         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
11343         'r+'.  Change the set detinations to match_operand.
11344
11345 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
11346
11347         * final.c (FIRST_INSN_ADDRESS): Remove.
11348         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
11349         * system.h (FIRST_INSN_ADDRESS): Poison.
11350         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
11351         * config/m32r/m32r-protos.h: Remove the prototype for
11352         m32r_first_insn_address.
11353         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
11354         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
11355         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
11356
11357 2004-01-09  J. Brobecker  <brobecker@gnat.com>
11358
11359         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
11360         we just created.
11361         (is_ada_subrange_type): DIEs for enumeration subtypes should be
11362         emitted as subrange types too.
11363         (subrange_type_die): Add handling of enumeration subtypes.
11364
11365 2004-01-08  Richard Henderson  <rth@redhat.com>
11366
11367         PR opt/12441
11368         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
11369         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
11370         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
11371         (ix86_address_cost): Be prepared for SUBREGed registers.
11372         (legitimate_address_p): Accept SUBREGed registers.
11373
11374 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
11375
11376         * Makefile.in: Rename configure.in to configure.ac
11377         * doc/sourcebuild.texi: Likewise.
11378         * configure: Regenerate.
11379         * config.in: Regenerate.
11380
11381 2004-01-08  Stuart Hastings  <stuart@apple.com>
11382
11383         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
11384
11385 2004-01-08  Jan Hubicka  <jh@suse.cz>
11386
11387         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
11388
11389 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
11390
11391         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
11392         (UNSPEC_FIX_TRUNC_TF): New constant.
11393         (movtf_internal): Make splitter active only when insn is active.
11394         (extenddftf2): Rewrite to properly load zero into low part.
11395         (extenddftf2_internal): New.
11396         (extendsftf2): Rewrite.
11397         (truncdftf2): Correct length.
11398         (floatditf2): Delete.
11399         (fix_trunc_helper): New.
11400         (fix_trunctfdi2): Use fix_trunc_helper.
11401         (fix_trunctfsi2): Likewise.fix_trunc
11402         (fix_trunctfsi2_internal): New.
11403
11404         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
11405         addresses are legitimate on Darwin even when flag_pic.
11406         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
11407         non-offsettable addresses for loads of TFmode constants.
11408
11409 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
11410
11411         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
11412         variables in the appropriate bss section.
11413
11414 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
11415
11416         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
11417         target_flags has MASK_POWERPC64 when -m64.
11418         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
11419         to 620, 630, power3, power4 and rs64a entries.
11420         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
11421
11422 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
11423
11424         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
11425         floating-point constants.
11426
11427 2004-01-08  J. Brobecker  <brobecker@gnat.com>
11428
11429         * dwarf2out.c (subrange_type_die): Add context_die parameter.
11430         Create the subrange_type DIE using the given context DIE.
11431         (modified_type_die): Update call to subrange_type_die.
11432
11433 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
11434
11435         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
11436         Add multiple-include guard.
11437
11438 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
11439
11440         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
11441         all vector constant loadable by vsplt*.
11442         (output_vec_const_move): Likewise.
11443
11444 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
11445
11446         PR c/6024
11447         * c-typeck.c (comptypes): Only treat enumerated types in the same
11448         translation unit as compatible with each other when they are the
11449         same type.
11450         * doc/extend.texi: Update.
11451
11452 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
11453
11454         PR c/12165
11455         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
11456         array type from the array element type.
11457
11458 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
11459
11460         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
11461         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
11462         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
11463         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
11464         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
11465
11466 2004-01-06  Eric Christopher  <echristo@redhat.com>
11467
11468         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
11469         (DWARF2_DEBUGGING_INFO): Define.
11470         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
11471         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
11472         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
11473         for irix as.
11474         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
11475         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
11476         * config/mips/iris5gas.h: Ditto.
11477         (DBX_DEBUGGING_INFO): Remove.
11478         (DWARF2_DEBUGGING_INFO): Ditto.
11479         (MIPS_DEBUGGING_INFO): Ditto.
11480         (PREFERRED_DEBUGGING_TYPE): Ditto.
11481         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
11482         (PREFERRED_DEBUGGING_TYPE): Ditto.
11483         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
11484         * config/mips/elf64.h: Ditto.
11485
11486 2004-01-06  Jan Hubicka  <jh@suse.cz>
11487
11488         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
11489         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
11490
11491 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
11492
11493         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
11494         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
11495         * config/rs6000/darwin-ldouble.c: New.
11496
11497         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
11498         for constants.
11499         (constant_subword): Delete.
11500         * rtl.h (constant_subword): Delete prototype.
11501         (immed_double_const): Is not in varasm.c.
11502         * simplify-rtx.c (simplify_immed_subreg): New.
11503         (simplify_subreg): Use simplify_immed_subreg.
11504
11505         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
11506         than trying to generate RTL directly.
11507         (fix_trunctfsi2): Use expand_fix rather than trying to generate
11508         RTL directly.
11509
11510         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
11511
11512 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
11513
11514         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
11515         function into a separate macro.
11516         (read_only_data_section): Add void argument.
11517         (private_data_section): Same.
11518         (read_only_private_data_section): Same.
11519         (toc_section): Same.
11520
11521 2004-01-06  Jan Hubicka  <jh@suse.cz>
11522
11523         * invoke.texi:  Remove typo in last change.
11524
11525         PR target/10301
11526         * config.gcc: Accept opteron and athlon-64 as variants
11527         of k8.
11528         * i386.c (override_options): Likewise.
11529         * invoke.texi (i386 -mtune): Expand documentation.
11530
11531 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
11532
11533         * alias.c: Fix comment typos.
11534         * builtins.c: Likewise.
11535         * cfg.c: Likewise.
11536         * df.c: Likewise.
11537         * dominance.c: Likewise.
11538         * dwarf2out.c: Likewise.
11539         * emit-rtl.c: Likewise.
11540         * expr.c: Likewise.
11541         * final.c: Likewise.
11542         * fold-const.c: Likewise.
11543         * gcse.c: Likewise.
11544         * genattrtab.c: Likewise.
11545         * genrecog.c: Likewise.
11546         * gensupport.c: Likewise.
11547         * ggc-zone.c: Likewise.
11548         * integrate.c: Likewise.
11549         * local-alloc.c: Likewise.
11550         * loop.c: Likewise.
11551         * recog.c: Likewise.
11552         * regmove.c: Likewise.
11553         * reg-stack.c: Likewise.
11554         * reorg.c: Likewise.
11555         * rtlanal.c: Likewise.
11556         * rtl.h: Likewise.
11557         * sched-ebb.c: Likewise.
11558         * simplify-rtx.c: Likewise.
11559         * toplev.c: Likewise.
11560         * varasm.c: Likewise.
11561
11562 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
11563
11564         * doc/install.texi: Fix typos.
11565         * doc/invoke.texi: Likewise.
11566         * doc/md.texi: Likewise.
11567
11568 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
11569
11570         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
11571
11572 2004-01-06  Jan Hubicka  <jh@suse.cz>
11573
11574         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
11575         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
11576         of MMX_REGPARM.
11577         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
11578         add MMX_REGPARM.
11579         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
11580         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
11581         (MMX_REGPARM_MAX): Similarly for -mmmx.
11582
11583 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
11584
11585         * config/sh/linux.h: Fix comment formatting.
11586         * config/sh/netbsd-elf.h: Likewise.
11587         * config/sh/sh.c: Likewise.
11588         * config/sh/sh.h: Likewise.
11589         * config/sh/vxworks.h: Likewise.
11590
11591 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
11592
11593         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
11594         * toplev.c (output_file_directive): Don't use
11595         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
11596
11597 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
11598
11599         * toplev.c: Fix broken checkin of 2003-12-30.
11600
11601 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
11602
11603         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
11604         (USING_MMAP): We don't support non-mmap.
11605         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
11606         large objects.
11607         (struct page_entry): Remove bytes_free.
11608         (struct page_table_chain): Remove.
11609         (struct globals): Remove page_table member.
11610         (loookup_page_table_entry): Function deleted.
11611         (set_page_table_entry): Ditto.
11612         (ggc_allocated_p): No longer need page table lookups.
11613         (ggc_marked_p): Ditto.
11614         (alloc_small_page): Don't care about bytes_free anymore.
11615         (alloc_large_page): Round up size.
11616         (ggc_alloc_zone_1): Mark large objects as such, and calculate
11617         their size the new way.
11618         Remove page table lookups and setting.
11619         (ggc_get_size): Calculate large object size the new way.
11620         (sweep_pages): Redo to account for fact that we no longer have
11621         bytes_free.
11622         (ggc_collect): No longer need to reincrement bytes_free.
11623         (ggc_pch_alloc_object): Handle new large objects properly.
11624         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
11625
11626 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
11627
11628         * doc/invoke.texi: Remove a page break.
11629
11630 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
11631
11632         * config/avr/avr.c (avr_output_function_prologue): Remove an
11633         extra pair of curly braces.
11634
11635 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
11636
11637         * config/mn10300/mn10300.c: Fix comment formatting.
11638         * config/mn10300/mn10300.h: Likewise.
11639
11640 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11641
11642         * tree.h: Update documentation on nothrow_flag.
11643         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
11644         types.
11645
11646 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
11647
11648         * doc/invoke.texi: Remove traces of dead ports.
11649
11650 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
11651
11652         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
11653         option.
11654
11655 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
11656
11657         PR target/12945
11658         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
11659         counter labels.
11660         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
11661         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
11662         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
11663         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
11664         (mips_symbol_insns): Don't trust the local/global classification.
11665         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
11666         (override_options): Make -mabicalls -fno-unit-at-a-time imply
11667         -mno-explicit-relocs.
11668         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
11669         between local and global symbols.
11670
11671 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
11672
11673         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
11674         (mips_preferred_reload_class): Declare.
11675         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
11676         (EXTRA_CONSTRAINT): Update accordingly.
11677         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
11678         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
11679         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
11680         mips_dangerous_for_la25_p.
11681         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
11682         if mips_dangerous_for_la25_p.
11683
11684 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
11685
11686         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
11687         warning.
11688
11689 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
11690
11691         * configure.ac: Use AC_PROG_CPP_WERROR.
11692         * configure: Regenerate.
11693
11694 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
11695
11696         * .cvsignore: Add autom4te.cache.
11697
11698 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
11699
11700         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
11701         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
11702         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
11703         then architecture options, then ABI options.  General rewording.
11704
11705 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
11706
11707         PR c/3414
11708         * doc/extend.texi: Clarify definition of malloc attribute.
11709
11710 2004-01-04  Jan Hubicka  <jh@suse.cz>
11711
11712         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
11713         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
11714         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
11715         (cgraph_inline_p): Add extra argument reason.
11716         * cgraphunit.c: Minor formating fixes.
11717         cgraph_first_inlined_callee): New functions.
11718         (record_call_1): Record builtins too.
11719         (cgraph_analyze_function): Update inline_failed messages.
11720         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
11721         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
11722         (cgraph_check_inline_limits): Likewise; Add argument reason.
11723         (cgraph_set_inline_failed): New static function.
11724         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
11725         reasons.
11726         (cgraph_inline_p): Add new argument reason.
11727         * tree-inline.c (expand_call_inline):  Update warning.
11728
11729 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
11730
11731         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
11732         with modern equivalents.
11733         * configure: Regenerate.
11734
11735         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
11736         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
11737         * configure: Regenerate.
11738
11739         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
11740
11741         * configure.in: Rename to configure.ac.
11742         * configure.ac: Renamed from configure.in; make minimum necessary
11743         changes for autoconf 2.5x.
11744         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
11745         * configure: Regenerate with autoconf 2.57.
11746
11747 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
11748
11749         * config/mips/linux.h: Fix comment formatting.
11750         * config/mips/mips.c: Likewise.
11751         * config/mips/mips.h: Likewise.
11752         * config/mips/mips.md: Likewise.
11753         * config/mips/netbsd.h: Likewise.
11754         * config/mips/windiss.h: Likewise.
11755
11756 2004-01-02  Richard Henderson  <rth@redhat.com>
11757
11758         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
11759         for sse and 387; add suppression for mmx.
11760
11761 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
11762
11763         * loop.c (loop_optimize): Free all loops_info's mems.
11764
11765         * c-typeck.c (finish_init): Free spelling_base before
11766         setting it again.
11767
11768         * cfgloop.c (flow_loops_find): Always free the sbitmap
11769         headers.
11770
11771         * predict.c (estimate_probability): Free bbs after being
11772         done with it.
11773
11774 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
11775
11776         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
11777         const_8bit_operand and call_address_operand.
11778
11779 2004-01-02  Jan Hubicka  <jh@suse.cz>
11780
11781         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
11782         when there is nothing to inline but warnings are requested.
11783         (cgraph_decide_inlining):  Fix memory leak.
11784
11785 2004-01-02  Jan Hubicka  <jh@suse.cz>
11786
11787         * expr.c (store_constructor):  Fix pasto in previous patch.
11788
11789 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
11790
11791         * config/i386/cygming.h: Fix comment formatting.
11792         * config/i386/djgpp.h: Likewise.
11793         * config/i386/gthr-win32.c: Likewise.
11794         * config/i386/i386-interix.h: Likewise.
11795         * config/i386/i386.c: Likewise.
11796         * config/i386/i386.h: Likewise.
11797         * config/i386/openbsd.h: Likewise.
11798         * config/i386/winnt.c: Likewise.
11799         * config/i386/xm-mingw32.h: Likewise.
11800
11801 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
11802
11803         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
11804         copyright and last modification dates.
11805
11806 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
11807
11808         * doc/install.texi (Specific): Mention x86_64.
11809
11810 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
11811
11812         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
11813         Call force_operand on plus_constant result.
11814
11815 2004-01-01  Jan Hubicka  <jh@suse.cz>
11816
11817         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
11818         * expr.c (store_constructor): Use vec_init pattern.
11819         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
11820         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
11821         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
11822         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
11823         New patterns.
11824         (sse2_unpc?pd): Fix pattern.
11825         (sse2_movlpd): Kill.
11826         (sse2_movsd): Deal with movlpd too.
11827         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
11828         (ix86_expand_vector_init): New.
11829         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
11830         * md.texi (vec_set, vec_extract): Document
11831
11832 2003-12-31  Jan Hubicka  <jh@suse.cz>
11833
11834         PR opt/13473
11835         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
11836         ASM input operands
11837
11838         PR opt/12617
11839         * toplev.c (dump_file_index): Reorder ce3 and bbro.
11840         (dump_file): Likewise.
11841         (rest_of_compilation): Likewise.
11842
11843         PR debug/13367
11844         * cgraph.c (cgraph_function_possibly_inlined):  Even with
11845         flag_really_no_inline we inline always_inline functions.
11846         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
11847         for non-always_inline functions when there is flag_really_no_inline.
11848         (cgraph_decide_inlining): Limit work done when not inlining.
11849         (cgraph_decide_inlining_incrementally): Likewise.
11850         (cgraph_optimize_function): Check whether something got inlined.
11851         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
11852         extern inline functions when not inlining.
11853
11854         * opts.c (decode_options):  Disable crossjumping at -O1
11855         * invoke.texi (-O1): Document change.
11856
11857 See ChangeLog.10 for earlier changes.