OSDN Git Service

* reload1.c (emit_reload_insns): Set reg_has_output_reload to one
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
2
3         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
4         after setting reg_last_reload_reg for optional output reloads.
5
6 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
7
8         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
9         Definition of these two macros are corrected by adding
10         matchine right paren.
11
12 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
13
14         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
15
16 2004-04-12  Roger Sayle  <roger@eyesopen.com>
17
18         * config/i386/i386.c (output_387_reg_move): New function.
19         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
20         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
21         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
22         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
23         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
24
25 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
26
27         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
28         TYPE_DECL.
29         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
30         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
31         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
32         Use skip_simple_arithmetic to find SAVE_EXPR.
33         (force_type_save_exprs, force_type_save_exprs_1): New functions.
34         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
35         Properly chain multiple pointers.
36         (copy_tree_r): Copy a TYPE_DECL.
37         * tree.c (variably_modified_type_p): Add some missing tests and
38         make some other minor changes.
39         * tree.h (force_type_save_exprs): New declaration.
40
41 2004-04-12  Roger Sayle  <roger@eyesopen.com>
42
43         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
44         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
45         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
46         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
47         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
48         x%-1 into 0 (or x&0 if x has side-effects).
49
50 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
51
52         * config/rs6000/rs6000.md: Document why a pattern is not
53         available.
54
55         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
56         of floats on the E500.
57         (branch_positive_comparison_operator): Do not allow NE even on the
58         E500.
59
60 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
61
62         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
63         in_text_unlikely_section to in_unlikely_text_section.
64
65 2004-04-11  Roger Sayle  <roger@eyesopen.com>
66
67         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
68         calling convention to allow a NULL_TREE to be returned.  Factor
69         sanity checks from callers, return NULL_TREE when appropriate.
70         (fold): Handle COMPOUND_EXPR operands of binary expressions
71         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
72         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
73         calls to fold_binary_op_with_conditional_arg.
74
75 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
76
77         * config/mips/iris5.h (current_section_flags):  Add
78         in_unlikely_executed_text and default case.
79
80 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
81
82         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
83         failure on solaris. Place ifdef HAVE_return around gen_ret call.
84         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
85         HAVE_return and place it around the place where it is needed.
86
87 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
88
89         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
90         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
91         and NORMAL_TEXT_SECTION_NAME.
92         (unlikely_text_section): Check targetm.have_named_sections
93         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
94         instead of SECTION_FORMAT_STRING.
95         * config/mips/iris5.h (current_section_name): Add
96         in_unlikely_executed_text case and move the abort into the switch.
97         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
98         (NORMAL_TEXT_SECTION_NAME): Remove.
99         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
100         (SECTION_FORMAT_STRING): Remove.
101         * defaults.h (SECTION_FORMAT_STRING): Remove.
102         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
103         (SECTION_FORMAT_STRING): Remove.
104
105 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
106
107         * c-typeck.c (common_type): Prefer long long to long when same
108         precision.
109
110 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
111
112         PR 14887
113         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
114         mode argument.
115         * config/ia64/ia64.c (ia64_hpux_file_end): Check
116         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
117
118 2004-04-09  Roger Sayle  <roger@eyesopen.com>
119
120         * simplify-rtx.c (mode_signbit_p): New function to check whether
121         an RTX is an immediate constant that represents the most significant
122         bit of a given machine mode.
123         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
124         C is the sign bit.
125         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
126         when C2 is the sign bit.
127         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
128         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
129         sign bit.
130
131 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
132
133         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
134         TYPE_MODE.
135
136 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
137
138         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
139         of TREE_READONLY for types.
140
141 2004-04-09  Caroline Tice  <ctice@apple.com>
142
143         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
144         (struct basic_block_def):  Add new field, partition.
145         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
146         definitions.
147         (partition_hot_cold_basic_blocks): Add extern function
148         declaration.
149         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
150         include statements.
151         (N_ROUNDS): Increase the maximum number of rounds by 1.
152         (branch_threshold): Add array value for new round.
153         (exec_threshold): Add array value for new round.
154         (push_to_next_round_p): New function.
155         (add_unlikely_executed_notes): New function.
156         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
157         (mark_bb_for_unlikely_executed_section): New function.
158         (add_labels_and_missing_jumps): New function.
159         (add_reg_crossing_jump_notes): New function.
160         (fix_up_fall_thru_edges): New function.
161         (find_jump_block): New function.
162         (fix_crossing_conditional_branches): New function.
163         (fix_crossing_unconditional_branches): New function.
164         (fix_edges_for_rarely_executed_code): New function.
165         (partition_hot_cold_basic_blocks): New function.
166         (find_traces):  Add an extra round for partitioning hot/cold
167         basic blocks.
168         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
169         and only cold blocks, into the last (extra) round of collecting traces.
170         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
171         over crossing edges.
172         (bb_to_key):  Add code to correctly identify cold blocks when
173         doing partitioning.
174         (connect_traces): Modify to connect all the non-cold traces first, then
175         go back and connect up all the cold traces.
176         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
177         * cfg.c (entry_exit_blocks): Add initialization for partition field in
178         entry and exit blocks.
179         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
180         if we are doing hot/cold partitioning.
181         * cfgcleanup.c (cfglayout.h): Add new include statement.
182         (try_simplify_condjump): Modify to not attempt on blocks with jumps
183         that cross section boundaries.
184         (try_forward_edges): Likewise.
185         (merge_blocks_move_predecessor_nojumps): Likewise.
186         (merge_blocks_move_successor_nojumps): Likewise.
187         (merge_blocks_move): Likewise.
188         (try_crossjump_to_edge): Modify to not attempt after we have done
189         the block partitioning.
190         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
191         cross section boundaries.
192         (try_optimize_cfg): Likewise.
193         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
194         jumps that cross section boundaries.
195         * cfglayout.c (flags.h): Add new include statement.
196         (update_unlikely_executed_notes):  New function.
197         (fixup_reorder_chain):  Add code so when a new jumping basic block is
198         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
199         updated appropriately.
200         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
201         introduced by this optimization.
202         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
203         extern function declaration.
204         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
205         list of notes that can be deleted.
206         (create_basic_block_structure):  Add initialization for partition field.
207         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
208         section boundaries.
209         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
210         cross section boundaries.
211         (commit_one_edge_insertion): Add code so newly created basic block
212         ends up in correct (hot or cold) section.  Modify to disallow
213         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
214         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
215         crosses section boundaries.
216         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
217         cross section boundaries.
218         (force_nonfallthru_and_redirect): Modify to make sure new basic block
219         ends up in correct section, with correct notes attached.
220         * common.opt (freorder-blocks-and-partition):  Add new flag for this
221         optimization.
222         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
223         the end of functions are written into the correct (hot or cold)
224         section.
225         (dbx_source_file): Add code so writing debug file information
226         doesn't incorrectly change sections.
227         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
228         in partitioning hot/cold basic blocks into separate sections.
229         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
230         section partitioning.
231         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
232         conditional branches can span all of memory.
233         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
234         unconditional branches can span all of memory.
235         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
236         (final_scan_insn):  Add code to check for NOTE instruction indicating
237         whether basic block belongs in hot or cold section, and to make sure
238         the current basic block is being written to the appropriate section.
239         Also added code to ensure that jump table basic blocks end up in the
240         correct section.
241         * flags.h (flag_reorder_blocks_and_partition):  New flag.
242         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
243         one of the branches has a jump that crosses between sections.
244         (find_if_case_2): Likewise.
245         (ifcvt): Modify to not attempt to mark loop exit edges after
246         hot/cold partitioning has occurred.
247         * opts.c (decode_options): Code to handle new flag,
248         flag_reorder_blocks_and_partition; also to turn it off if
249         flag_exceptions is on.
250         (common_handle_option): Code to handle new flag,
251         flag_reorder_blocks_and_partition.
252         * output.h (unlikely_text_section): New extern function declaration.
253         (in_unlikely_text_section): New extern function declaration.
254         * passes.c (rest_of_handle_stack_regs):  Add
255         flag_reorder_blocks_and_partition as an 'or' condition for calling
256         reorder_basic_blocks.
257         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
258         as an 'or' condition for calling reorder_basic_blocks.
259         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
260         * print-rtl.c (print_rtx): Add code for handling new note,
261         NOTE_INSN_UNLIKELY_EXECUTED_CODE
262         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
263         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
264         cross between section boundaries.
265         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
266         indicating the basic block containing it belongs in the cold section.
267         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
268         between hot and cold sections.
269         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
270         initialize this flag, and to tie it to the command-line option
271         freorder-blocks-and-partition.
272         * varasm.c (cfglayout.h):  Add new include statement.
273         (unlikely_section_label_printed):  New global variable, used for
274         determining when to output section name labels for cold sections.
275         (in_section):  Add in_unlikely_executed_text to enum data structure.
276         (text_section):  Modify code to use SECTION_FORMAT_STRING and
277         NORMAL_TEXT_SECTION_NAME macros.
278         (unlikely_text_section):  New function.
279         (in_unlikely_text_section):  New function.
280         (function_section):  Add code to make sure beginning of function is
281         written into correct section (hot or cold).
282         (assemble_start_function):  Add code to make sure stuff is written to
283         the correct section.
284         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
285         to an if statement that was checking 'in_text_section'.
286         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
287         condition to an if statement that was checking 'in_text_section'.
288         (default_section_type_flags_1):  Add check: if in cold section
289         flags = SECTION_CODE.
290         * config/darwin.c (darwin_asm_named_section):  Modify to use
291         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
292         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
293         specifically for the i386.
294         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
295         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
296         text string to something more informative.
297         (NORMAL_TEXT_SECTION_NAME): Add new definition.
298         (SECTION_FORMAT_STRING):  Add new definition.
299         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
300         '!in_unlikely_text_section' as an 'and' condition to an if statement
301         that was already checking '!in_text_section'.
302         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
303         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
304         sure these are properly defined for linux on ppc.
305         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
306         for this new flag.
307         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
308         reg_note.
309         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
310         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
311         these new macros.
312
313 2004-04-08  Roger Sayle  <roger@eyesopen.com>
314
315         * function.c (gen_mem_addressof): When changing the RTX from a REG
316         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
317
318 2004-04-08  Roger Sayle  <roger@eyesopen.com>
319
320         PR target/14888
321         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
322         truncxfdf2_noop): Provide dummy "fmov" implementations.
323
324 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
325
326         * gcc.c (default_compilers): Add missing initializers.
327
328         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
329         Return 1 if file was successfully mapped.
330
331 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
332
333         PR pch/13419
334         PR pch/14137
335         Radar #: 3315288
336         * doc/invoke.texi (Precompiled Headers): Suggest -o
337         to put an output file in a particular place.  Be more detailed
338         about which options affect PCH validity and which options
339         might not work.
340         * c-pch.c (pch_matching): New.
341         (MATCH_SIZE): New.
342         (struct c_pch_validity): New field 'match'.
343         (pch_init): Handle pch_matching.
344         (c_common_valid_pch): Check pch_matching.
345
346         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
347
348 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
349
350         * doc/invoke.texi (Precompiled Headers): Warn about known
351         problems.
352
353 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
354
355         PR c++/14808
356         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
357         to 1 if ASM_OUTPUT_DEF is defined.
358         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
359         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
360         Set to non-zero iff not a one_only decl.
361
362 2004-04-08  Paul Brook  <paul@codesourcery.com>
363
364         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
365
366 2004-04-08  Paul Brook  <paul@codesourcery.com>
367
368         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
369         PROMOTE_FOR_CALL_ONLY.
370         * config/arm/arm-protos.h (arm_function_value): Declare.
371         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
372         (TARGET_PROMOTE_PROTOTYPES): Return false.
373         (arm_function_value): New function.
374         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
375         (FUNCTION_VALUE): Call arm_function_value.
376         * config/cris/cris.h (PROMOTE_MODE): Rename ...
377         (PROMOTE_FUNCTION_MODE): ... to this.
378         (PROMOTE_FOR_CALL_ONLY): Remove.
379         * config/mmix/mmix.h: Likewise.
380         * config/s390/s390.h: Likewise.
381         * config/sparc/sparc.h: Likewise.
382         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
383         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
384         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
385         (PROMOTE_FOR_CALL_ONLY): Remove.
386
387 2004-04-08  Joel Sherrill <joel@oarcorp.com>
388
389         PR ada/14538
390         * ada/5rosinte.adb: Remove fake mprotect() body.
391         * ada/5rosinte.ads: Add SA_SIGINFO.
392         * ada/5rtpopsp.adb: Rewrite to use new interface.
393         * ada/init.c: Reorder so the simple single OS conditional __rtems__
394         is tested before more complex ones which mix UNIX and embedded
395         systems in the conditional.
396
397 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
398
399         PR ada/14665
400         * ada/osint.adb (Find_Program_Name): Rework to properly handle
401         filenames which end in .exe or have versioning suffixes like VMS.
402
403 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
404
405         PR target/10129
406         * config/darwin.c (darwin_encode_section_info): When the decl has
407         a DECL_INITIAL, it is only defined also when it is not a common.
408
409 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
410
411         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
412         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
413
414 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
415
416         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
417         global register variables.
418
419 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
420
421         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
422         rpc_xdr_lvalue_cast_b): New fixes.
423         * fixinc/fixincl.x: Regenerate.
424         * fixinc/tests/base/rpc/xdr.h: Add new tests.
425
426 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
427
428         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
429         to power4 and power5 entries.
430
431 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
432
433         * c-common.h (pending_lang_change): Mark for PCH.
434
435 2004-04-07  Caroline Tice  <ctice@apple.com>
436
437         * gcc.c (main): Move 'break' in main loops (on an error)
438         to wait until error processing has occurred.
439
440 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
441
442         * config.gcc: Stop changing enable_threads midstream.
443         Replace uses of enable_threads_flag with enable_threads.
444         * configure.ac: Replace uses of enable_threads_flag with
445         enable_threads.  Improve autoconf quotation in one place.
446         * configure: Regenerate.
447
448 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
449
450         * builtins.c: Implement support for sincos function.
451         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
452         BUILT_IN_COS{,F,L}.
453         (expand_builtin_mathfn_3): New function.
454         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
455         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
456         flag_unsafe_math_optimization is set.
457
458         * optabs.h (enum optab_index): Add new OTI_sincos.
459         (sincos_optab): Define corresponding macro.
460
461         * optabs.c (init_optabs): Initialize sincos_optab.
462         (expand_twoval_unop): New function.
463
464         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
465         patterns.
466
467         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
468         and UNSPEC_SINCOS_SIN.
469
470         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
471         sincosxf3): New patterns to implement sincos, sincosf and sincosl
472         built-ins as inline x87 intrinsics. Define splits for
473         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
474         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
475         sincos patterns.
476         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
477         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
478
479         (UNSPEC_SINCOS_SIN, UNPEC_SINCOS_COS): New unspecs to represent
480         x87's unspec insn.
481
482 2004-04-06  Devang Patel  <dpatel@apple.com>
483
484         PR 14467
485         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
486
487 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
488
489         * doc/install.texi: Update HP-UX 11 installation procedure.
490
491 2004-04-06  Paul Brook  <paul@codesourcery.com>
492
493         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
494
495 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
496
497         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
498         when the TLS address is generated by a function call.
499         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
500         (tls_local_dynamic): Likewise.
501
502 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
503
504         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
505         and TYPE_VOLATILE.
506
507 2004-04-05  Caroline Tice  <ctice@apple.com>
508
509         * gcc.c (combine_flag): New global variable, for new driver option.
510         (struct compiler): Add two new fields, to be used when
511         combining multiple input files in a single pass (IMA).
512         (default_compilers):  Add values for the new fields to all
513         compiler entries. Modify the "@c" compiler entry for doing IMA
514         properly with "-save-temps" and the "combine" flag.
515         (option_map):  Add new driver option, "--combine", to tell driver
516         to pass multiple input files to compiler at one time.
517         (have_o_argbuf_index): New global variable.
518         (store_arg): Modify to assign value to have_o_argbuf_index.
519         (struct infile):  Add three new fields, to help with IMA.
520         (display_help): Add help for new "combine" option.
521         (process_command): Remove local variable have_o; add code to check
522         for new "combine" option; remove assignment to combine_inputs.
523         (do_spec_1):  Modify to deal with IMA better.
524         (main): Make variable 'lang_n_infiles' local to entire function
525         rather than to a single block.  Use flag combine_flag to
526         determine whether to do IMA or not; Modify loop initializing
527         infiles to deal properly with linker files.
528         Add code for doing preprocessing in presence of
529         IMA with "-save-temps" flag.  Modify "main" loop to handle
530         multiple input files, in multiple languages, with or without
531         preprocessing,  gracefully.
532         * toplev.c (set_src_pwd): Modify to not complain if attempting to
533         re-set it to same directory it's previously been set to (avoid
534         irritating, meaningless warning messages when doing IMA with
535         save-temps).
536         * doc/invoke.texi: Add "-combine" to list of Overall Options;
537         remove documentation about IMA that is no longer accurate; Add
538         documentation explaining what "-combine" does.
539         * ada/lang-specs.h: Add initialization values for new fields in
540         "struct compiler".
541         * cp/lang-specs.h: Likewise.
542         * f/lang-specs.h: Likewise.
543         * java/lang-specs.h: Likewise.
544         * objc/lang-specs.h: Likewise.
545         * treelang/lang-specs.h: Likewise.
546
547 2004-04-05  David Edelsohn
548
549         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
550         symbol handling.
551
552 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
553             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
554
555         PR optimization/13424 (hppa), bootstrap/14462, c/14828
556         * pa.md: Use replace_equiv_address to retain the attributes of the
557         memory operands used in the split and peephole2 patterns for optimizing
558         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
559
560 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
561
562         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
563         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
564         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
565         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
566         PARM_DECL.
567         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
568         for a type.
569         * print-tree.c (print_node): Properly handle side-effects, readonly,
570         and constant flags.
571         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
572         and TREE_CONSTANT if not a type.
573         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
574         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
575         (NON_TYPE_CHECK): New macro.
576         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
577
578 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
579
580         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
581         to DWARF2_DEBUG unconditionally.
582         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
583
584 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
585             Nathanael Nerode  <neroden@gcc.gnu.org>
586
587         PR target/14548
588         * config.host: Set the shell variable host_can_use_collect2.
589         Set it to yes by default, and to no for alpha*-dec-*vms*,
590         i[34567]86-*-mingw32*, and powerpc-*-beos*.
591         * configure.ac: Set and substitute the shell variable collect2.
592         Give an error if use_collect2 is yes and host_can_use_collect2 is
593         no.
594         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
595         uses.  Initialize to @collect2@.
596         (STAGESTUFF): Remove $(USE_COLLECT2).
597         * config/alpha/x-vms (USE_COLLECT2): Don't set.
598         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
599         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
600         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
601         * configure: Regenerate.
602
603 2004-04-04  Roger Sayle  <roger@eyesopen.com>
604
605         * simplify-rtx.c (simplify_binary_operation): Constant fold
606         DIV, MOD, UDIV and UMOD using div_and_round_double.
607
608 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
609
610         PR c++/14804
611         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
612         RECORD_TYPEs.
613
614 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
615
616         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
617         documentation.
618
619 2004-04-04  Roger Sayle  <roger@eyesopen.com>
620
621         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
622         updating the REG_EQUAL note on an insn's libcall_insn.
623
624 2004-04-04  Roger Sayle  <roger@eyesopen.com>
625
626         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
627
628 2004-04-03  Roger Sayle  <roger@eyesopen.com>
629
630         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
631         with reorder_operands_p.
632
633 2004-04-03  Jan Hubicka  <jh@suse.cz>
634
635         * md.texi (vec_set, vec_extract, vec_init): Document.
636
637 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
638
639        * opts.c (decode_options): Do function inlining with very small
640        max-inline-insns-* parameters when optimizing for size.
641
642 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
643
644         * config/i386/i386.h (TARGET_NOCONA): New macro.
645         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
646         (processor_type): Add PROCESSOR_NOCONA.
647
648         * config/i386/i386.md (cpu): Add nocona to the attribute values.
649
650         * config/i386/i386.c (nocona_cost): New variable.
651         (m_NOCONA): New macro.
652         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
653         x86_branch_hints, x86_use_sahf, x86_single_stringop,
654         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
655         x86_integer_DFmode_moves, x86_partial_reg_dependency,
656         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
657         x86_decompose_lea, x86_arch_always_fancy_math_387,
658         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
659         x86_ext_80387_constants, x86_four_jump_limit):
660         (override_options): Add nocona_cost to processor_target_table.
661         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
662         (incdec_operand): Prevent inc/dec generation for Nocona too.
663         (ix86_issue_rate): Add PROCESSOR_NOCONA.
664
665 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
666
667         * rtlanal.c (find_reg_note): Manually
668         unswitch the loop.
669
670 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
671
672         * genemit.c (gen_split): Change prototype of generated code.
673         * genrecog.c (write_action): Adjust prototype for and calls to
674         gen_split_*.
675         * gensupport.c (struct queue_elem): Add split field.
676         (queue_pattern): Return a value.  Clear the split field.
677         (process_rtx): Maintain an association between an insn and the
678         split generated from it for a define_insn_and_split.
679         (process_one_cond_exec): Generate a new split for a
680         define_insn_and_split.
681         * config/arm/arm-protos.h (arm_split_constant): Add insn
682         parameter.
683         (emit_constant_insn): New function.
684         (arm_gen_constant): Use it.
685         * config/arm/arm.md: Adjust calls to arm_split_constant.
686
687 2004-04-02  Jan Hubicka  <jh@suse.cz>
688
689         * cgraph.c: Add overall comment.
690         (cgraph_inline_hash): New global variable.
691         (cgraph_create_node): Break out from ...
692         (cgraph_node): ... here.
693         (cgraph_edge): New function.
694         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
695         (cgraph_remove_edge): Accept edge, intead of source and destination.
696         (cgraph_redirect_edge_callee): New.
697         (cgraph_remove_node): Update all new datastructures.
698         (cgraph_record_call, cgraph_remove_call): Kill.
699         (dump_cgraph_node): Break out from ... ; dump new datastructures.
700         (dump_cgraph): ... here.
701         (cgraph_function_possibly_inlined_p): Use new hashtable.
702         (cgraph_clone_edge, cgraph_clone_node): New.
703         * cgraph.h: Include hashtab.h
704         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
705         fields, add inlined_to pointer.
706         (cgraph_node): Add pointer to next_clone.
707         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
708         (cgraph_remove_call, cgraph_record_call): Kill.
709         (cgraph_inline_hash): Declare.
710         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
711         cgraph_redirect_edge_callee): Declare.
712         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
713         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
714         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
715         * cgraphunit.c: Add overall comment.
716         (cgraph_optimize_function): Kill.
717         (cgraph_assemble_pending_functions): Do not assemble inline clones.
718         (cgraph_finalize_function): Update call of cgraph_remove_node
719         (record_call_1): Record call sites.
720         (cgraph_create_edges): Accept node instead of decl argument.
721         (error_found): New static variable.
722         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
723         (cgraph_analyze_function): Update for new datastructures.
724         (cgraph_finalize_compilation_unit): Plug memory leak.
725         (cgraph_optimize_function): Kill.
726         (cgraph_expand_function): Do not use cgraph_optimize_function.
727         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
728         cgraph_inlined_callees): Kill.
729         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
730         clones.
731         (estimate_growth): Simplify.
732         (cgraph_clone_inlined_nodes): New function.
733         (cgraph_mark_inline_edge): Re-implement.
734         (cgraph_mark_inline): Likewise.
735         (cgraph_check_inline_limits): Simplify.
736         (cgraph_recursive_inlining_p): New.
737         (update_callee_keys): Break out from ...
738         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
739         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
740         Likewise.
741         (cgraph_expand_all_functions):  Remove inline clones from the ordered
742         list.
743         (cgraph_preserve_function_body_p): New predicate.
744         (cgraph_optimize): Verify cgraph.
745         * function.h (struct function): Add fields saved_tree/saved_args.
746         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
747         * toplev.c (rest_of_compilation): Do not free cfun.
748         * tree-inline.c: Include function.h
749         (struct inline_data): Add saving_p field; replace decl/current_decl by
750         node/current_node.
751         (insert_decl_map): New function.
752         (copy_body_r): Handle saving; update cgraph datastructure.
753         (copy_body): Handle recursive inlining.
754         (initialize_inlined_parameters): Likewise.
755         (expand_call_inline): Propagate node attributes; update cgraph.
756         (optimize_inline_calls): Verify that datastructure still match.
757         (save_body): New function.
758         * tree-inline.h (save_body): New.
759         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
760         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
761         * langhooks.c (lang_hooks): Add update_decl_after_saving.
762
763 2004-04-01  Serge Belyshev  <1319@bot.ru>
764
765         PR target/14702
766         * config/i386/i386.md: fix source operand constraints in
767         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
768
769 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
770
771         * fold-const.c (folda): Preserve types of comparisons.
772
773 2004-04-01  Richard Henderson  <rth@redhat.com>
774
775         * toplev.c (backend_init): Move init_optimization_passes call ...
776         (lang_dependent_init): ... here.
777
778 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
779             Jakub Jelinek  <jakub@redhat.com>
780
781         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
782         -lgcc --as-needed -lgcc_s --no-as-needed by default.
783         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
784         * configure: Rebuilt.
785         * config.in: Rebuilt.
786         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
787         (stage2-start, stage3-start, stage4-start): Likewise.
788         (stageprofile-start, stagefeedback-start): Likewise.
789
790 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
791
792         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
793         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
794         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
795         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
796         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
797         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
798         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
799         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
800         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
801         * config/sparc/t-linux: Removed.
802
803 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
804
805         PR c++/14755
806         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
807         "bitfld++ == const" to "++bitfld == const + incr" transformations.
808
809 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
810
811         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
812         * stor-layout.c (layout_decl): Likewise.
813         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
814         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
815         * print-tree.c (print_node): Handle various used of unsigned_flag.
816         * tree.def (BIT_FIELD_REF): Update comment.
817         * tree.h (TREE_UNSIGNED): Deleted.
818         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
819
820 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
821
822         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
823         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
824         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
825         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
826         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
827         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
828         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
829         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
830         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
831         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
832         REAL_TYPE, not INTEGER_TYPE.
833         (layout_type, case VECTOR_TYPE): Simplify code.
834         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
835         * tree.h: Update comments.
836         (STRIP_NOPS): Use TYPE_UNSIGNED.
837         (TYPE_UNSIGNED): New macro.
838         (TYPE_TRAP_SIGNED): Remove now redundant check.
839         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
840
841 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
842
843         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
844
845 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
846
847         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
848         Add darwin-fpsave.asm, darwin-vecsave.asm,
849         and darwin-world.asm.
850         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
851         as the asm files contain altivec instructions.
852         * config/rs6000/darwin-fpsave.asm: New file.
853         * config/rs6000/darwin-vecsave.asm: New file.
854         * config/rs6000/darwin-world.asm: New file.
855
856 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
857
858         * gengtype-yacc.y (option, stringseq): Add missing
859         terminating semicolon.
860
861 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
862
863         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
864         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
865         tls_dtprel_ha_32, tls_dtprel_ha_64,
866         tls_dtprel_lo_32, tls_dtprel_lo_64,
867         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
868         tls_tprel_ha_32, tls_tprel_ha_64,
869         tls_tprel_lo_32, tls_tprel_lo_64,
870         tls_got_tprel_32, tls_got_tprel_64,
871         tls_tls_32, tls_tls_64): Replace register_operand with
872         gpc_reg_operand.
873
874 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
875
876         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
877         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
878         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
879         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
880         *ctrdi_internal6): Replace register_operand with
881         nonimmediate_operand.
882
883 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
884
885         * fold-const.c (fold): Reassociate multiply expression
886         with an adjacent non-multiply expression to use
887         architecture's multiply-add instruction.
888
889 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
890
891         * gengtype.c (create_option): New function.
892         * gengtype.h: Prototype it.
893         * gengtype-yacc.y (stringseq): New rule.
894         (option): Use create_option.  Add new bare ID production.  Use
895         stringseq, not STRING directly.
896
897         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
898         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
899         * varray.h, config/alpha/alpha.c:
900         Use new shorter form of GTY markers.
901
902         * doc/gty.texi: Rewrite.
903
904 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
905
906         * config/darwin.c (machopic_function_base_name):
907         Remove current_name and getting the name of the
908         current function.
909
910 2004-03-30  Nick Clifton  <nickc@redhat.com>
911
912         * config/arm/arm.md (thumb_jump): Reduce the backward branch
913         range, and increase the forward branch range, to allow for
914         the fact that the PC will be off by 4.
915
916 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
917
918         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
919
920 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
921
922         * config/rs6000/rs6000.c (output_vec_const_move):
923         Find all cases of EASY_VECTOR_15_ADD_SELF.
924         (easy_vector_constant_add_self): Accept
925         all vector constant loadable by vsplt* and vadd*.
926         (easy_vector_same): Use easy_vector_splat_const.
927         (easy_vector_const): Use easy_vector_splat_const.
928         (easy_vector_splat_const): New function.
929         (gen_easy_vector_constant_add_self): New function.
930
931         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
932         New prototype.
933
934         * config/rs6000/altivec.md (movv4si splitter): Change to
935         emit move insn with halfed vector constant.
936         (*movv8hi splitter): Likewise.
937         (*movv16qi splitter): Likewise.
938
939 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
940
941         PR 11591
942         * config/rs6000/rs6000.c (rs6000_legitimate_address):
943         Allow any offset to argument pointer in no-strict case.
944
945 2004-03-30  Jan Hubicka  <jh@suse.cz>
946
947         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
948         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
949         dump file in non-unit-at-a-time mode.
950
951 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
952
953         * config/cris/cris.h: Correct #ifdef to test for
954         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
955         HAVE_AS_MUL_BUG_ABORT_OPTION.
956
957 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
958
959         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
960         the address inside the old RTL.
961
962 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
963
964         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
965         (struct c_binding, struct c_scope): Add chain_next
966         attributes to GTY markers.
967         (struct lang_identifier, struct lang_tree_node): Define
968         here...
969         * c-tree.h: ... not here.  No longer need to declare struct
970         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
971         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
972         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
973
974         PR 14734, 11944
975         * c-decl.c (get_parm_info): If error_mark_node is encountered
976         in the bindings chain, unbind and discard it; don't abort.
977
978 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
979             Dorit Naishlos <dorit@il.ibm.com>
980
981         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
982         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
983
984 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
985
986         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
987
988         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
989         (m68hc11_attribute_table): New attribute "page0" to mark a global
990         variable as being allocated from within page0 section.
991         (m68hc11_encode_label): New function.
992         (m68hc11_strip_name_encoding): New function.
993         (m68hc11_page0_symbol_p): New function.
994         (m68hc11_indirect_p): Accept global variables marked in page0.
995         (m68hc11_encode_section_info): Lookup "page0" attribute.
996
997         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
998         represents access to page0 variables.
999
1000         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
1001         ("*logicalsi3_silshl16_zext"): Likewise.
1002         ("*ashldi3_const32"): Likewise.
1003         (peephole2 ashift): Likewise.
1004
1005 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
1006
1007         * c-tree.h (C_DECL_REGISTER): New.
1008         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
1009         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
1010         (build_array_ref, c_mark_addressable): Set and use it.
1011         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
1012         Allow structures with volatile fields to be declared register.
1013         Don't check TREE_ADDRESSABLE before warning about taking address
1014         of register.
1015         * c-decl.c (finish_decl): Don't allow structures with volatile
1016         fields to be placed in named register.
1017         * doc/trouble.texi: Remove reference to structures with volatile
1018         fields in registers.
1019
1020 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
1021
1022         * function.c (thread_prologue_and_epilogue): Move
1023         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
1024         before the epilogue.
1025
1026 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
1027
1028         * expr.c (store_constructor): Use gen_int_mode to correctly
1029         sign-extend CONST_INT value.
1030
1031 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1032
1033         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
1034         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
1035         * doc/extend.texi: Likewise.
1036
1037 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
1038
1039         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
1040           with TYPE_ORIG_SIZE_TYPE.
1041
1042 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
1043
1044         PR 14219
1045         * c-typeck.c (build_binary_op): Do not allow comparisons of
1046         vectors.
1047
1048 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
1049
1050         * config.gcc: Remove sparc-tti-*.
1051         * config/sparc/pbd.h: Delete.
1052
1053         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
1054         * config/sparc/aout.h: Likewise.
1055
1056         * config/sparc/sparc.h: Remove if 0'd code.
1057         * config/sparc/sparc.md (call): Remove if 0'd code.
1058         (call_value): Likewise.
1059         (nonlocal_goto): Likewise.
1060         (unimp_insn): Delete.
1061
1062 2004-03-25  Roger Sayle  <roger@eyesopen.com>
1063
1064         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
1065         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
1066
1067 2004-03-25  Richard Henderson  <rth@redhat.com>
1068
1069         PR 11527
1070         * c-typeck.c (pop_init_level): Emit pending init elements earlier
1071         rather than later.
1072
1073 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1074
1075         * builtins.c (fold_builtin): Fix error in last change.
1076
1077 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
1078
1079         * config/mips/mips.h: Formatting fix.
1080
1081 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1082
1083         * builtins.def: Add ctype builtins.
1084         * doc/extend.texi: Likewise.
1085
1086 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1087
1088         * builtins.c (fold_builtin): Add new builtin optimizations for
1089         sqrt and/or cbrt.
1090         * fold-const.c (fold): Likewise.
1091
1092 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
1093
1094         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
1095         (rs6000_sched_groups): New variable.
1096         (processor_target_table): Add power5.
1097         (rs6000_override_options): Set rs6000_sched_insert_nops,
1098         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
1099         from rs6000_sched_groups.
1100         (output_cbranch): Use rs6000_always_hint.
1101         (rs6000_variable_issue): Use rs6000_sched_groups.
1102         (rs6000_adjust_cost): Add CPU_POWER5.
1103         (is_microcoded_insn): Use rs6000_sched_groups.
1104         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
1105         Return 2 for POWER5 cracked instructions.
1106         (is_cracked_insn): Use rs6000_sched_groups.
1107         (is_branch_slot_insn): Use rs6000_sched_groups.
1108         (rs6000_issue_rate): Add CPU_POWER5.
1109         (rs6000_sched_finish): Use rs6000_sched_groups.
1110         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
1111         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
1112         (DEFAULT_SCHED_COSTLY_DEP): Delete.
1113         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
1114         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
1115         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
1116         * config/rs6000/power5.md: New file.
1117         * doc/invoke.texi: Add power5 option.
1118
1119 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
1120
1121         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
1122         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
1123         * doc/invoke.texi: Fix a typo.
1124
1125 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
1126
1127         PR optimization/9707.
1128         * stmt.c (emit_case_nodes): Emit equality comparisons instead
1129         of recursing if both children are single-valued cases with no
1130         children.
1131
1132 2004-03-25  Paul Brook  <paul@codesourcery.com>
1133
1134         * config/arm/arm.c (vfp_print_multi): Remove.
1135         (arm_output_fldmx): New function.
1136         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
1137         (arm_expand_prologue): Update to match.
1138         (arm_get_vfp_saved_size): New Function.
1139         (arm_get_frame_offsets): Use it.
1140         (arm_output_epilogue): Use new functions.
1141
1142 2004-03-24  Richard Henderson  <rth@redhat.com>
1143
1144         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
1145         (reg_known_value, reg_known_value_size): Likewise; make static.
1146         (reg_known_equiv_p): Make static.
1147         (clear_reg_alias_info): Update for new indexing.
1148         (get_reg_known_value, set_reg_known_value): New.
1149         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
1150         (canon_rtx): Use them.
1151         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
1152         Don't play queer offsetting games with reg_known_value and
1153         reg_known_equiv_p.
1154         (end_alias_analysis): Free reg_known_value with gc.
1155         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
1156         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
1157         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
1158         functions instead.
1159
1160 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
1161
1162         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
1163         config/i386/mmintrin.h: Update copyright.
1164
1165 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
1166
1167         * configure.ac: Add --enable-werror-always (for top level bootstrap
1168         support).
1169         * configure: Regenerate.
1170
1171 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
1172
1173         * objc/objc-act.c (objc_comptypes): Treat comparisons
1174         between 'Class' and '<class> *' as explicitly invalid.
1175
1176 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
1177
1178         * doc/invoke.texi (-frename-registers: Add enabled at -O3.
1179         (-fprofile-values): Add enabled with profile-{generate,use}.
1180         (-fvpt): Same.
1181         (-ftracer): Add enabled with profile-use.
1182         (-funit-at-a-time): Add enabled at -O2,-O3.
1183         (-funroll-loops): Add enabled with profile-use.
1184         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
1185         (max-gcse-passes): Mention default.
1186         (max-cse-path-length): Mention default.
1187
1188 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
1189
1190         * Makefile.in (STRICT2_WARN): Reorder.
1191         * configure.ac: Check for -Wold-style-definition, and use it
1192         in strict1_warn if it's available.
1193         * configure: Regnerate.
1194
1195 2004-03-24  Paul Brook  <paul@nowt.org>
1196
1197         * config.gcc <arm>: Add --with-abi=
1198         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
1199         thumb_far_jump_used): Remove prototypes.
1200         (arm_needs_doubleword_align): Add prototype.
1201         (thumb_compute_initial_elimination_offset): Ditto.
1202         * config/arm/arm.c (arm_get_frame_offsets): New function.
1203         (use_return_insn, output_return_instruction, arm_output_epilogue,
1204         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
1205         arm_expand_prologue, thumb_expand_epilogue): Use it.
1206         (arm_abi, target_abi_name, all_arm_abis): New variables.
1207         (arm_override_options): Set them.  Set structure padding for AAPCS.
1208         (arm_return_in_memory): Update ABI check.
1209         (arm_init_cumulative_args): Initialize can_split.
1210         (arm_needs_doubleword_align): New function.
1211         (arm_function_arg): Don't split args after pushing to stack. Handle
1212         doubleword/even reg alignment.
1213         (arm_va_arg): Handle all doubleword aligned args.
1214         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
1215         on ABI, not CPU.
1216         (arm_compute_save_reg0_reg12_mask): Fix comment.
1217         (thumb_get_frame_size, thumb_get_frame_size): Remove.
1218         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
1219         value for alignment.
1220         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
1221         to match.
1222         (thumb_compute_initial_elimination_offset): New function.
1223         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
1224         unneccessary rounding.
1225         * config/arm/arm.h (target_abi_name): Declare.
1226         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
1227         arm_abi_type, ARM_DEFAULT_ABI): Define.
1228         (ARM_FLAG_ATPCS): Remove.
1229         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
1230         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
1231         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
1232         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
1233         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
1234         Contitionalize on ABI, not CPU.
1235         (struct arm_stack_offsets): Define.
1236         (struct machine_function): Add stack_offsets.  Remove frame_size.
1237         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
1238         pushed.
1239         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
1240         doubleword alignment.
1241         (THUMB_INITIAL_ELIMINATION_OFFSET,
1242         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
1243         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
1244         * config/arm/arm.md (align_8): Enable for all targets.
1245         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
1246         (ARM_DEFAULT_ABI): Define.
1247         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
1248         -mstructure-size-boundary.
1249
1250 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
1251
1252         * configure.ac: Check for -Wno-variadic-macros; don't use
1253         -pedantic (in stage 1 or a simple 'make all') unless it's available,
1254         and if it's available, use it.  Also, clean up check for
1255         -Wno-long-long.
1256         * configure: Regenerate.
1257
1258 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
1259
1260         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
1261         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
1262         (MULTILIB_DEFAULTS): Use it.
1263         (MIPS_CPU_STRING_DEFAULT): Remove.
1264         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
1265         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
1266         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
1267         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
1268         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
1269         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
1270         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
1271         accordingly.
1272
1273 2004-03-24  DJ Delorie  <dj@redhat.com>
1274             Richard Sandiford  <rsandifo@redhat.com>
1275
1276         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
1277         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
1278         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
1279         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
1280         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
1281         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
1282         if TARGET_FIX_VR4122.
1283         * config/mips/mips.md (define_attr length): Account for nops inserted
1284         after macc and dmult when using -mfix-vr4122-bugs.
1285         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
1286         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
1287         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
1288         * config/mips/vr4122-div.S: New file.
1289         * doc/invoke.texi: Document -mfix-vr4122-bugs.
1290
1291 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
1292
1293         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
1294         (TARGET_MIPS4130): New macro.
1295         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
1296         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
1297         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
1298         with PROCESSOR_R4130.
1299         * config/mips/mips.md (define_attr cpu): Add r4130.
1300         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
1301
1302 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
1303             Richard Sandiford  <rsandifo@redhat.com>
1304
1305         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
1306
1307 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
1308
1309         PR preprocessor/14438
1310         * cpplib.c (do_pragma): Remove line_change call after pragma
1311         handler.
1312
1313 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
1314
1315         * doc/extend.texi (ARM Built-in Functions): Replace with correct
1316         declarations.
1317
1318 2004-03-23  Roger Sayle  <roger@eyesopen.com>
1319
1320         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
1321         if flag_unsafe_math_optimizations.
1322         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
1323         and TARGET_80387 expand using truncdfsf2_noop pattern.
1324         (truncxfsf2): Likewise using truncxfsf2_noop.
1325         (truncxfdf2): Likewise using truncxfdf2_noop.
1326         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
1327
1328 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
1329
1330         * hooks.c (hook_constcharptr_tree_null): New hook.
1331         * hooks.h (hook_constcharptr_tree_null): New prototype.
1332         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
1333         * target.h (mangle_fundamental_type): New target hook.
1334         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
1335         target hook at rs6000_mangle_fundamental_type.
1336         (rs6000_mangle_fundamental_type): New function.
1337         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
1338
1339 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
1340
1341         PR 12267, 12391, 12560, 13129, 14114, 14133
1342         * c-tree.h: Forward declare struct c_binding.  Declare
1343         c_override_bindings_to_false.  Update prototypes.
1344         (struct lang_identifier): Update comments.  Change fields to be
1345         struct c_binding *.
1346         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
1347         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
1348         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
1349         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
1350         * c-common.h: Update prototypes.
1351         * c-decl.c (struct c_scope): Update commentary.  Remove names,
1352         names_last, parms, parms_last, tags, and shadowed fields.  Add
1353         bindings and depth fields.
1354         (scope_freelist): Move to more appropriate location.
1355         (c_print_identifier): Update for changes to struct lang_identifier.
1356         (objc_mark_locals_volatile): Update for new bindings structures.
1357         (global_bindings_p): Honor c_override_global_bindings_to_false.
1358         (pushlevel): Rename to push_scope; take no arguments; use the
1359         scope_freelist; initialize scope->depth and check for overflow.
1360         (poplevel): Rename to pop_scope; totally rewritten for new bindings
1361         structures.
1362         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
1363         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
1364         Improve some commentary.  Adjust handling of forward parm decls.
1365         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
1366         Preserve C_DECL_IN_EXTERNAL_SCOPE.
1367         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
1368         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
1369         decls.  Rewrite for new bindings structures.  Improve commentary.
1370         Eliminate the copy_node call.
1371         (implicit_decl_warning): Use the "diag" idiom (as seen in
1372         locate_old_decl) to reduce code duplication; call locate_old_decl
1373         if appropriate.  Relocate to remove need for forward declaration.
1374         (implicitly_declare): Adjust for new bindings structures.  Kludge
1375         around Objective-C not-really-builtin functions.
1376         (undeclared_variable): Improve diagnostics.  If current_function_decl
1377         is nonnull but current_function_scope is null, use current_scope.
1378         Use bind.
1379         (lookup_tag): Adjust for new bindings structures.  Kludge around
1380         Objective-C's tag declarations that wind up in the external scope.
1381         (lookup_name): Adjust for new bindings structures.  Kludge around
1382         c-common.c's pseudo-typedefs that wind up in the external scope.
1383         (lookup_name_current_level): Rename lookup_name_in_scope; take a
1384         second argument indicating the scope to examine; rewrite for
1385         new bindings structures.
1386         (c_init_decl_processing): Adjust for renamed functions.  Do not
1387         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
1388         First scope pushed is the external scope, not the global scope.
1389         (builtin_function): Use bind, not pushdecl.  Adjust other bits
1390         for new data structures.  Keep track of builtins that should be
1391         made visible automatically.
1392         (start_decl): Adjust diagnostics.  Remove unnecessary call to
1393         expand_decl.
1394         (grokparms): Return 0 if arg_types is error_mark_node.
1395         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
1396         reversed sense.  Rewrite for new bindings structures.  Do not
1397         leave any decls in the scope, to prevent pop_scope from doing
1398         contradictory things with them.
1399         (finish_struct, finish_enum): Remove redundant diagnostics.
1400         (build_enumerator): Don't cascade diagnostics for error_mark_node.
1401         Mark location where -pedantic changes the meaning of the program.
1402         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
1403         parameter decls into the function's scope structure using bind.
1404         Warn here about function definitions in the wrong style.
1405         Adjust diagnostics.
1406         (store_parm_decls): Correct the determination of whether a
1407         function was defined with a prototype.
1408         (c_write_global_declarations): Operate on all file decls and on
1409         the external scope.  Split body of the loop to...
1410         (c_write_global_declarations_1): ... this new function, to avoid
1411         code duplication.
1412         (truly_local_externals, first_builtin_decl, last_builtin_decl)
1413         (make_scope, pop_scope, in_parm_level_p, set_block)
1414         (any_external_decl, record_external_decl, bind_label, getdecls)
1415         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
1416         (c_reset_state): Delete.
1417         (visible_builtins, c_override_global_bindings_to_false)
1418         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
1419         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
1420         (external_scope, binding_freelist, bind, free_binding_and_advance)
1421         (push_file_scope, pop_file_scope): New.
1422         (pushtag, pushdecl_top_level, lookup_label, declare_label)
1423         (define_label, c_make_fname_decl, finish_decl)
1424         (mark_forward_parm_decls, build_compound_literal)
1425         (grokdeclarator, start_function, check_for_loop_decls)
1426         (identifier_global_value, record_builtin_type): Minor adjustments
1427         for new bindings structures.  Improve diagnostics and commentary.
1428         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
1429         pushlevel/poplevel respectively.
1430         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
1431         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
1432         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
1433         correct loop over multiple translation units; call fatal_error if
1434         requested to compile more than one file at once.  (This disables
1435         IMA temporarily - an up-front error being preferable to a crash.)
1436         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
1437         (all actions): Adjust calls to pushlevel/poplevel.
1438         (parsing_iso_function_signature): Delete.
1439         (extdef_1): Fold into extdef.
1440         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
1441         warn here about function definitions in the wrong style.
1442         (after_tyle_declarator, parm_declarator_starttypename)
1443         (parm_declarator_nostarttypename, notype_declarator): Remove
1444         commented-out productions.
1445         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
1446         an empty TREE_LIST node.  Adjust calls to get_parm_info.
1447         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
1448         to suppress -Wold-style-definition after this error.
1449         (c_parse_file): Don't clear the binding stack or call
1450         finish_fname_decls here.  Correct comment.
1451         * c-typeck.c (same_translation_unit_p): Export.
1452         (common_type): Use c_override_global_bindings_to_false, not
1453         pushlevel/poplevel/declare_parm_level.
1454         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
1455         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
1456         and LANG_HOOKS_GETDECLS with do-nothing stubs.
1457         * objc/objc-lang.c: Likewise.
1458         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
1459         get_parm_info.
1460         (OBJC_VOID_AT_END): Delete; replace all uses
1461         with void_list_node.
1462         (generate_forward_declaration_to_string_table): Delete.
1463         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
1464
1465         * coverage.c (create_coverage): Don't pushdecl anything.
1466         * langhooks.c (lhd_clear_binding_stack): Call
1467         lang_hooks.decls.poplevel, not poplevel.
1468         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
1469         circular list rather than going into an infinite loop.
1470
1471 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
1472
1473         * optabs.c (expand_binop): When synthesizing double word rotates
1474         from single word shifts, use a new register target if the provided
1475         target is not a REG already.
1476
1477 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1478
1479         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
1480         * c-common.c (handle_mode_attribute): Add extra arg to
1481         build_pointer_type_for_mode and build_reference_type_for_mode.
1482         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
1483         for INTEGER_CST.
1484         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
1485         Chain pointers via TYPE_NEXT_PTR_TO.
1486         (build_reference_type_for_mode): Similarly.
1487         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
1488         and build_reference_type_for_mode.
1489         (tree_check4_failed): New function.
1490         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
1491         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
1492         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
1493         Add check.
1494
1495 2004-03-23  Roger Sayle  <roger@eyesopen.com>
1496
1497         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
1498         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
1499         when both A and B are nonnegative.
1500         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
1501         nonzero.
1502
1503 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
1504
1505         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
1506         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
1507
1508 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
1509
1510         PR optimization/14669
1511         * fold-const.c (fold): Only unwiden integer comparisons for equality
1512         and inequality operators, or when the signedness doesn't change.
1513
1514 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
1515
1516         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
1517         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
1518         * config/sparc/t-linux: New file.
1519
1520 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
1521
1522         * gcse.c (can_assign_to_reg_p): New function, split out from...
1523         (want_to_gcse_p): ...here.
1524         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
1525         the rhs of a store.
1526
1527 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
1528
1529         * c-typeck.c (same_translation_unit_p): Fix pasto.
1530
1531 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
1532
1533         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
1534         (PARAM_MAX_SCHED_REGION_INSNS): New.
1535         * sched-rgn.c: Include params.h
1536         (MAX_RGN_BLOCKS): Delete.
1537         (MAX_RGN_INSNS): Delete.
1538         (too_large): Return bool.  Convert to PARAM_VALUE.
1539         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
1540         * doc/invoke.texi (param): Document max-sched-region-blocks and
1541         max-sched-region-insns.
1542
1543 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
1544
1545         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
1546         for base types.
1547
1548 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
1549
1550         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
1551         change.
1552
1553 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
1554
1555         PR c/14069
1556         * c-decl.c (finish_struct): Change type of incorrect flexible array
1557         field into error_mark_node.
1558
1559 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
1560
1561         PR target/14580
1562         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
1563         who are not local for Darwin PIC.
1564
1565 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
1566
1567         * regrename.c (regrename_optimize): Set regs_ever_live for all
1568         registers introduced as replacement.
1569
1570 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
1571
1572         PR middle-end/14470
1573         * expr.c (mark_queue): New function.
1574         (emit_insns_enqueued_after_mark): New function replacing
1575         emit_queue.  Clear the body of emitted queued insns.
1576         (emit_queue): Call emit_insns_enqueued_after_mark.
1577         (store_expr): Mark the increment queue on entry.  Emit
1578         only the incrementations queued when expanding the source.
1579
1580 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
1581
1582         * configure.ac: Allow --disable-coverage-flags (for the future benefit
1583         of top level bootstrap, and consistency).  Reindent.
1584         * configure: Regenerate.
1585
1586 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
1587
1588         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
1589         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
1590         unnecessary casts.
1591
1592 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
1593
1594         PR target/14291
1595         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
1596         __MINGW32__.
1597
1598 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
1599
1600         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
1601         to nonimmediate_operand.
1602         ("*doloop_di"): Likewise.
1603
1604 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
1605
1606         * real.h (struct real_value): Use the same type for all
1607         bitfields.  Rename exp to uexp.
1608         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
1609         Adjust all uses of exp...
1610         * builtins.c: ... here, ...
1611         * emit-rtl.c: ... here, and ...
1612         * real.c: ... and here.
1613
1614 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1615
1616         * pretty-print.c (pp_base_maybe_space): New function.
1617         * pretty-print.h (pp_base_maybe_space): Declare.
1618         (pp_maybe_space): New macro.
1619
1620 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
1621
1622         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
1623
1624 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
1625
1626         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
1627         of using register multiplication cost.
1628         (expand_mult): Adapt choose_mult_variant call.
1629         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
1630         of MODE; pass appropriate cost bound.  Adjust result when
1631         performing signed multiplication by a negative constant.
1632         Don't use intermediate modes larger than word_mode.
1633
1634 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1635
1636         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
1637         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
1638         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
1639         * explow.c (expr_size): Likewise.
1640         * expr.h (placeholder_list, find_placeholder): Deleted.
1641         * expr.c (store_constructor): Likewise.
1642         (get_inner_reference): Likewise.  Also don't call find_placeholder.
1643         (placeholder_list, find_placeholder): Deleted.
1644         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
1645         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
1646         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
1647         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
1648         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
1649         Likewise.
1650         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
1651         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
1652         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
1653         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
1654         Clean up by using first_rtl_op.
1655         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
1656         (substitute_placeholder_in_expr): New function.
1657         * tree.def (WITH_RECORD_EXPR): Deleted.
1658         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
1659         (substitute_placeholder_in_expr): New.
1660
1661 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
1662
1663         * dojump.c (prefer_and_bit_test): Fix which part of
1664         the and_test is replaced.
1665
1666 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
1667
1668         * frontends.texi: Add missing line.
1669
1670 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
1671             Chris Devers  <cdevers@pobox.com>
1672             Joseph S. Myers  <jsm@polyomino.org.uk>
1673
1674         * doc/frontends.texi: Rewrite.
1675         * doc/gcc.texi: Update last modification date.
1676
1677 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
1678
1679         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
1680         message before redirecting the edge.
1681
1682 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1683
1684         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
1685         flag.
1686         * explow.c (force_not_mem): Set REG_POINTER flag according to
1687         MEM_POINTER one.
1688         * rtl.h (MEM_POINTER): New macro.
1689         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
1690         for MEM_POINTER.
1691
1692 2004-03-20  Roger Sayle  <roger@eyesopen.com>
1693
1694         PR target/13889
1695         * cse.c (fold_rtx): Avoid substituting constants into unary
1696         conversion operations.
1697
1698 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
1699
1700         * fold-const.c (fold): Replace "expr" with "t".
1701
1702 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
1703
1704         PR c/12373
1705         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
1706         DECL_ORIGINAL_TYPE if there isn't one.
1707
1708 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
1709
1710         * fold-const.c (fold): Replace "final_type" with "type".
1711         Remove variable "final_type".
1712
1713 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
1714
1715         * fold-const.c (fold): Constify "type".
1716         Replace "TREE_TYPE (t)" with "type".
1717
1718 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
1719
1720         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
1721         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
1722         via (*targetm.foo) () with targetm.foo ().
1723
1724 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
1725
1726         PR other/14630
1727         * doc/install.texi: Add info directory category and entry.
1728
1729 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
1730
1731         * fold-const.c (fold): Replace "t" with "tem" where it is used
1732         as a temporary variable.  Remove "orig_t" and all of its uses.
1733
1734 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
1735
1736         * fold-const.c (fold): Remove variable "invert".
1737         Move the handling of relational expressions that can be folded
1738         to a constant ...
1739         (fold_relational_const): ... here.
1740         (tree_expr_nonzero_p): New.
1741
1742 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
1743
1744         PR c/14635
1745         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
1746         DEF_GCC_BUILTIN.
1747
1748 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
1749
1750         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
1751         (GTFILES): Add $(srcdir)/dojump.h.
1752         (gt-dojump.h): New dependency.
1753         * dojump.c (and_reg, and_test, shift_test): New static variables.
1754         (prefer_and_bit_test): New function.
1755         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
1756
1757 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
1758
1759         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
1760         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
1761         reorg.c, tree.h: Fix comment typos.
1762
1763 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
1764
1765         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
1766         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
1767         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
1768         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
1769         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
1770         vmsdbgout.c: Replace calls via (*targetm.foo) () with
1771         targetm.foo ().
1772
1773 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
1774
1775         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
1776         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
1777         always_inline attribute.
1778         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
1779         Treat expansion as completed even if literal argument is
1780         invalid (so that other expansions are not tried in vain).
1781
1782 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
1783
1784         * loop-doloop.c (add_test): Replace GEN_INT (0) with
1785         const0_rtx.
1786
1787 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
1788
1789         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
1790         ...
1791         (fold_abs_const): ... here.
1792
1793 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1794
1795         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
1796
1797 2004-03-19  Denis Chertykov  <denisc@overta.ru>
1798
1799         PR target/11520
1800         * config/avr/avr.md ("call_insn"): Handle explicit integer
1801         specially.
1802         (call_value_insn): Likewise.
1803
1804 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1805
1806         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
1807
1808 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
1809
1810         * fold-const.c (negate_expr): Move the handling of constants
1811         ...
1812         (fold_negate_const): ... here.
1813
1814 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1815
1816         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
1817         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
1818         * tree.c (debug_no_type_hash): Deleted.
1819         (type_hash_canon): Abort if passed a variant.
1820         Check lang_hooks.types.hash_types.
1821         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
1822         (build_array_type): Remove unnecessary allocation of pointer type.
1823         (build_complex_type): Properly qualify resulting type.
1824
1825 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
1826
1827         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
1828
1829 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
1830
1831         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
1832         (expand_mult): ...here.
1833         (extract_high_half): New, split out from expand_mult_highpart.
1834         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
1835         (expand_highpart): Evaluate the cost of a shift/add sequence,
1836         then see if any of the specialized optabs are cheaper.
1837
1838 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
1839
1840         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
1841
1842 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1843
1844         * convert.c (convert_to_real): Add more math builtins.
1845
1846 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1847
1848         * convert.c (convert_to_real): Reformat using switch stmt.
1849
1850 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
1851
1852         * c-common.c (pointer_int_sum): Do not complain about using
1853         pointers to pointers-to-members.
1854
1855 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
1856
1857         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
1858         have moved to the target hooks structure".
1859
1860 2004-03-18  James E Wilson  <wilson@specifixinc.com>
1861
1862         * config/mips/mips.md (type): Split move into arith and fmove.  Split
1863         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
1864         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
1865         Likewise.
1866         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
1867         Likewise.
1868         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
1869         rm7_fp_quick): Likewise.
1870         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
1871         rm9k_fquick): Likewise.
1872         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
1873         Likewise.
1874         (ir_sr70_icmp): Delete.
1875
1876 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1877
1878         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
1879         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
1880         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
1881         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
1882         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
1883         Protect with proper check.
1884         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
1885         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
1886         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
1887         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
1888         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
1889         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
1890         not TYPE_FIELDS.
1891         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
1892
1893 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
1894
1895         * gcse.c (eliminate_partially_redundant_loads): Reject change if
1896         dest is set between beginning and current insn.
1897
1898 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
1899
1900         * c-decl.c (grokdeclarator): Do not complain about redeclaring
1901         visible "static" identifiers "extern" in a local scope.
1902         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
1903         post-increments/decrements.
1904
1905 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
1906
1907         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
1908         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
1909         (xtensa_va_start): Remove assignment to current_function_arg_words.
1910
1911 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
1912
1913         * alias.c (record_set): Detect the case where a register is assigned
1914         a new value that has the same base term as the old one.
1915
1916 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1917
1918         * doloop.c: Removed.
1919         * loop-doloop.c: New file.
1920         * Makefile.in (doloop.o): Remove.
1921         (loop-doloop.o): New.
1922         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
1923         * cfgloopanal.c (get_loop_level): New function.
1924         * loop-iv.c (iv_number_of_iterations): Handle case when loop
1925         is leaved immediatelly.
1926         * loop.c (strength_reduce): Do not call doloop optimization.
1927         * loop.h (LOOP_BCT): Removed.
1928         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
1929         (rest_of_handle_loop2): Call doloop_optimize_loops.
1930         (rest_of_compilation): Test for optimizations moved to
1931         rest_of_handle_loop2.
1932
1933 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
1934
1935         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
1936         for mixed mode.
1937         (rs6000_emit_prologue): Ditto.
1938         (rs6000_emit_epilogue): Ditto.
1939         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
1940         macro for mixed mode.
1941
1942 2004-03-18  Jan Hubicka  <jh@suse.cz>
1943
1944         * predict.c (propagate_freq): Compute correctly frequency of
1945         EXIT_BLOCK.
1946
1947 2004-03-17  Eric Christopher  <echristo@redhat.com>
1948
1949         * builtins.c (apply_args_size): Use reg_raw_mode.
1950         (apply_result_size): Ditto.
1951
1952 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
1953
1954         PR target/14620
1955         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
1956
1957 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
1958
1959         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
1960         32-bit builds when defaulting to 32-bit.
1961
1962 2004-03-17  Jan Hubicka  <jh@suse.cz>
1963
1964         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
1965         array.
1966
1967 2004-03-17  James E Wilson  <wilson@specifixinc.com>
1968
1969         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
1970         (hazard_nop): Change type to nop.
1971         (type): Split arith into arith, shift, slt, clz.  Delete darith.
1972         Fix all uses.  Change arith to multi if more than one insn emitted.
1973         * config/mips/5400.md (ir_vr54_arith): Likewise.
1974         * config/mips/5500.md (ir_vr55_arith): Likewise.
1975         * config/mips/7000.md (rm7_int_other): Likewise.
1976         * config/mips/9000.md (rm9k_int): Likewise.
1977         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
1978
1979 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
1980
1981         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
1982         to hold the subtype tree instead of recomputing it several times.
1983
1984 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
1985
1986         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
1987         CC_INVERT.
1988         * config/mn10300/mn10300.md (cc): Remove "invert".
1989
1990 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1991
1992         * builtins.c (integer_valued_real_p): Add builtin rint.
1993         (fold_builtin): Likewise.
1994         * convert.c (convert_to_real): Likewise.
1995
1996         * convert.c (convert_to_real): Fix typos in `long double'
1997         builtins.
1998
1999 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
2000
2001         PR c++/14481
2002         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
2003         generated COMPOUND_EXPRs.
2004
2005 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
2006
2007         * config/h8300/t-rtems (h8300-*-rtems*): New.
2008
2009 2004-03-16  Eric Christopher  <echristo@redhat.com>
2010
2011         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
2012
2013 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
2014
2015         * config/i386/i386-protos.h: Add a prototype for
2016         ix86_reverse_condition.
2017         * config/i386/i386.c (ix86_reverse_condition): New.
2018         * config/i386/i386.h (REVERSE_CONDITION): Use
2019         ix86_reverse_condition.
2020         * config/i386/i386.md: Use ix86_reverse_condition instead of
2021         REVERSE_CONDITION.
2022
2023 2004-03-16  J. Brobecker  <brobecker@gnat.com>
2024
2025         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
2026
2027 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
2028
2029         PR bootstrap/12974
2030         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
2031
2032 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
2033
2034         * c-common.c (c_common_type_for_mode): Build vector types on
2035         demand.
2036         (handle_mode_attribute): Deprecate using the mode attribute
2037         to create vector types.  Fix indentation.
2038         (vector_type_node_list): Remove.
2039         (handle_vector_size_attribute): Create vector types on demand.
2040         Strip a NON_LVALUE_EXPR from the attribute if there is one.
2041         * c-typeck.c (comptypes): Make vector types compatible if they
2042         have the same underlying mode.
2043         (convert_for_assignment): Use comptypes to convert between
2044         vector types.
2045         * tree.c (build_common_tree_nodes_2): Do not create vector types.
2046         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
2047         vector types.
2048         * tree.h: Remove vector types.
2049         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
2050         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
2051         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
2052         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
2053         * doc/extend.texi (Vector Types): Document how to use the
2054         vector_size attribute to create vectors, rather than mode.
2055
2056         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
2057         * config/i386/emmintrin.h: Likewise.
2058         * config/i386/mmintrin.h: Likewise.
2059         * config/i386/xmmintrin.h: Likewise.
2060         * config/sh/ushmedia.h: Likewise.
2061
2062 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
2063
2064         * config/freebsd-spec.h, config/arc/arc-protos.h,
2065         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
2066         config/arm/linux-gas.h, config/arm/semi.h,
2067         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
2068         config/ia64/freebsd.h, config/mips/7000.md,
2069         config/mips/9000.md, config/ns32k/ns32k-protos.h,
2070         config/sparc/pbd.h: Update copyright.
2071
2072 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
2073
2074         PR target/14577
2075         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
2076
2077 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
2078
2079         * combine.c (combine_simplify_rtx): Remove the "last"
2080         parameter and its documentation.  Adjust recursive calls.
2081         (simplify_logical): Always perform the only simplification
2082         controlled by "last", if the simplified expression is
2083         actually different.
2084         (try_combine): Do not pass the "last" parameter to
2085         combine_simplify_rtx.
2086
2087 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
2088
2089         PR target/14599
2090         * config/mips/mips.md (UNSPEC_GP): New constant.
2091         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
2092         an UNSPEC instead of (reg $gp).
2093         (mips16_gp_pseudo_reg): Change accordingly.
2094         (print_operand): Print $gp directly when handling CONST_GP_P.
2095
2096 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
2097
2098         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
2099         * longlong.h: Make code 68060 clean when compiling for m68060.
2100
2101 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
2102
2103         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
2104         * doc/md.texi: Clarify description of "i" constraint.
2105
2106 2004-03-15  James E Wilson  <wilson@specifixinc.com>
2107
2108         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
2109         Split store into store, fpstore, fpidxstore.  Fix all uses.
2110         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
2111         Likewise.
2112         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
2113         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
2114         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
2115         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
2116         ir_sr70_fstore): Likewise.
2117
2118 2004-03-15  Richard Henderson  <rth@redhat.com>
2119
2120         PR middle-end/14535
2121         * except.c (collect_one_action_chain): Record action for cleanup
2122         outer of exception spec.
2123
2124 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
2125
2126         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
2127         Fix the check for abort and only do the mmap if we can.
2128
2129 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
2130
2131         * config/sparc/sparc.h: Rework comments about the code model
2132         in 64-bit environment and the mode 'Pmode'.
2133         * doc/invoke.texi (SPARC options): Rework description of the
2134         different code models supported in 64-bit environment.
2135
2136 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
2137
2138         * defaults.h (REVERSIBLE_CC_MODE): Define.
2139         * jump.c (reversed_comparison_code_parts): Don't check if
2140         REVERSIBLE_CC_MODE is defined.
2141
2142 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
2143
2144         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
2145         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
2146         hosthooks.h, params.h, ra-colorize.c, web.c,
2147         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
2148         config/avr/avr-protos.h, config/avr/avr.md,
2149         config/fr30/fr30-protos.h, config/fr30/fr30.md,
2150         config/h8300/fixunssfsi.c, config/i386/darwin.h,
2151         config/i386/freebsd.h, config/i386/freebsd64.h,
2152         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
2153         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
2154         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
2155         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
2156         config/pa/pa64-regs.h, config/rs6000/aix41.h,
2157         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
2158         config/sparc/aout.h, config/sparc/freebsd.h,
2159         config/sparc/litecoff.h, config/vax/vax-protos.h,
2160         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
2161         copyright.
2162
2163 2004-03-15  Paul Brook  <paul@codesourcery.com>
2164
2165         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
2166
2167 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2168
2169         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
2170         (pp_c_cv_qualifier): Document.
2171         (pp_c_space_for_pointer_operator): Likewise.
2172         (pp_c_integer_constant): Likewise.
2173         (pp_c_identifier): Likewise.
2174         (pp_c_init_declarator): Don't print function body.
2175
2176 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
2177
2178         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
2179         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
2180         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
2181         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
2182         wording and grammar.
2183
2184 2004-03-14  Roger Sayle  <roger@eyesopen.com>
2185
2186         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
2187         with lang_hooks.foo ().
2188         * builtins.c (expand_builtin_va_arg): Likewise.
2189         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
2190         c_common_type_for_mode, c_common_nodes_and_builtins,
2191         handle_mode_attribute, handle_vector_size_attribute): Likewise.
2192         * c-convert.c (convert): Likewise.
2193         * c-format.c (check_format_types): Likewise.
2194         * c-objc-common.c (c_tree_printer): Likewise.
2195         * c-typeck.c (build_unary_op, build_conditional_expr,
2196         build_binary_op): Likewise.
2197         * calls.c (try_to_integrate, expand_call,
2198         emit_library_call_value_1): Likewise.
2199         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
2200         Likewise.
2201         * cgraphunit.c (record_call_1, cgraph_analyze_function,
2202         cgraph_expand_function): Likewise.
2203         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
2204         * coverage.c (build_fn_info_type, build_ctr_info_type,
2205         build_gcov_info, create_coverage): Likewise.
2206         * dbxout.c (dbxout_init): Likewise.
2207         * diagnostic.c (diagnostic_report_current_function): Likewise.
2208         * dojump.c (do_jump): Likewise.
2209         * dwarf2out.c (dwarf2_name): Likewise.
2210         * except.c (init_eh): Likewise.
2211         * explow.c (expr_size, int_expr_size): Likewise.
2212         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
2213         Likewise.
2214         * expr.c (store_expr, store_constructor, safe_from_p,
2215         expand_expr_real, do_store_flag, try_casesi): Likewise.
2216         * function.c (push_function_context_to, pop_function_context_from,
2217         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
2218         put_var_into_stack, allocate_struct_function, current_function_name):
2219         Likewise.
2220         * integrate.c (copy_decl_for_inlining, expand_inline_function):
2221         Likewise.
2222         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
2223         lhd_print_error_function): Likewise.
2224         * opts.c (handle_option, decode_options): Likewise.
2225         * passes.c (open_dump_file): Likewise.
2226         * print-tree.c (print_node): Likewise.
2227         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
2228         expand_decl_cleanup, emit_case_nodes): Likewise.
2229         * stor-layout.c (variable_size): Likewise.
2230         * toplev.c (announce_function, wrapup_global_declarations,
2231         check_global_declarations, compile_file, default_tree_printer,
2232         process_options, lang_dependent_init, finalize): Likewise.
2233         * tree-dump.c (dequeue_and_dump): Likewise.
2234         * tree-inline.c (remap_decl, remap_block, copy_body_r,
2235         initialize_inlined_parameters, declare_return_variable,
2236         inlinable_function_p, expand_call_inline, optimize_inline_calls,
2237         walk_tree, copy_tree_r): Likewise.
2238         * tree-optimize.c (tree_rest_of_compilation): Likewise.
2239         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
2240         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
2241         variably_modified_type_p, dump_tree_statistics): Likewise.
2242         * varasm.c (assemble_variable, compare_constant, copy_constant,
2243         force_const_mem, compute_reloc_for_constant, output_constant,
2244         output_addressed_constants, initializer_constant_valid_p): Likewise.
2245
2246 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
2247
2248         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
2249
2250 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
2251
2252         * doc/install.texi: Reflect autoconf and automake version for
2253         libffi. Update autoconf version to 2.59.
2254
2255 2004-03-13  Roger Sayle  <roger@eyesopen.com>
2256
2257         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
2258         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
2259         make_range, build_range_check, fold_range_test, unextend,
2260         constant_boolean_node, fold_binary_op_with_conditional_arg,
2261         fold_truthop, fold_mathfn_compare, fold_inf_compare,
2262         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
2263         with lang_hooks.foo ().
2264
2265 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
2266
2267         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
2268
2269 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
2270
2271         * doc/install.texi: Note status of -fnew-ra.
2272
2273 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
2274
2275         PR middle-end/14470
2276         * expr.c (store_expr): Call emit_queue before generating the move
2277         from the temporary to the original target.  Protect the temporary
2278         from emit_queue.
2279
2280 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
2281
2282         PR target/14533
2283         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
2284         other than UNSPEC_GOTOFF.
2285
2286 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
2287
2288         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
2289         to arm_legitimate_index_p.  Update all callers with SET as default
2290         value.
2291         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
2292         range if OUTER is a sign-extend operation on QImode.  Correctly
2293         reject shift operations on sign-extended QImode addresses.
2294         (bad_signed_byte_operand): Delete.
2295         (arm_extendqisi_mem_op): New function.
2296         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
2297         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
2298         constraints.
2299         (CONSTRAINT_LEN): New.
2300         (EXTRA_CONSTRAINT): Delete.  Replace with...
2301         (EXTRA_CONSTRAINT_STR): ... this.
2302         (PREDICATE_CODES): Remove bad_signed_byte_operand.
2303         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
2304         is now always default.
2305         (define_splits for bad sign-extend loads): Delete.
2306         (arm_extendqisi, arm_extendqisi_v5): Likewise.
2307         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
2308         Rework 'U' constraint to 'Uv'.
2309         * arm-protos.h: Remove bad_signed_byte_operand.  Add
2310         arm_extendqisi_mem_op.
2311         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
2312         Add Uq constraint.
2313
2314 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
2315
2316         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
2317         with targetm version.
2318
2319         PR target/14567
2320         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
2321         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
2322         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
2323         Update all users of RS6000_ARG_SIZE.
2324         (function_arg_advance): Count fregno using mode size.
2325         (function_arg): Handle long double split over regs and memory.
2326         (function_arg_partial_nregs): Likewise.
2327         (rs6000_va_arg): Repackage complex args.
2328
2329 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
2330
2331         PR target/14047
2332         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
2333         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
2334         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
2335
2336 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
2337
2338         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
2339         prototype.
2340         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
2341         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
2342
2343 2003-03-12  Andrew Pinski  <apinski@apple.com>
2344
2345         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
2346         Use ret instead of result. Use addr instead of base.
2347
2348 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
2349
2350         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
2351         fixes required by libstdc++ and update installation instructions
2352         for libstdc++.a.
2353
2354 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
2355
2356         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
2357         leading '@' on fastcall symbols before stripping suffix.
2358
2359 2004-03-12  Roger Sayle  <roger@eyesopen.com>
2360
2361         * combine.c (unmentioned_reg_p): New function to check whether an
2362         expression is a "specialization" of another, i.e. that there are
2363         no registers or memory references mentioned in the first that don't
2364         appear in the second.
2365         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
2366         (combine_instructions): Also try combining instructions using the
2367         REG_EQUAL note from a preceding log-linked instruction.
2368
2369 2004-03-12  Roger Sayle  <roger@eyesopen.com>
2370
2371         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
2372
2373 2004-03-12  Matt Austern  <austern@apple.com>
2374
2375         * target.h (struct gcc_target): New target hook, unwind_label.
2376         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
2377         * output.h (default_emit_unwind_label): New function.
2378         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
2379         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
2380         (TARGET_SUPPORTS_HIDDEN): New target macro.
2381         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
2382         that corresponds to this FDE.
2383         (FRAME_BEGIN_LABEL): Allow target to override default label.
2384         (output_call_frame_info): If FDEs are linknonce, then use extra
2385         indirection for FDE encoding, output a label for each FDE, and
2386         output an empty label for each function without an FDE.
2387         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
2388         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
2389         decls with DECL_ONE_ONLY set, if that macro is defined.
2390         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
2391         for a SUPPORTS_ONE_ONLY target.
2392         * config/darwin-protos.h (darwin_unique_section): Declare.
2393         (darwin_asm_named_section): Likewise.
2394         (darwin_section_type_flags): Likewise.
2395         (darwin_non_lazy_pcrel): Likewise.
2396         (darwin_emit_unwind_label): Likewise.
2397         (darwin_make_decl_one_only): Likewise.
2398         * config/darwin.c (machopic_finish): Get rid of tweak that
2399         eliminate stubs for symbols that are defined.
2400         (darwin_encode_section_info): Don't treat weak functions as defined.
2401         (darwin_make_decl_one_only): Define.
2402         (darwin_asm_named_section): Likewise.
2403         (darwin_section_type_flags): Likewise.
2404         (darwin_unique_section): Likewise.
2405         (darwin_emit_unwind_label): Likewise.
2406         (darwin_non_lazy_pcrel): Likewise.
2407         (darwin_asm_output_dwarf_delta): Difference between two labels is
2408         local only if both labels are local.
2409         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
2410         (ASM_MAKE_LABEL_LINKONCE): Likewise.
2411         (TARGET_SUPPORTS_HIDDEN): Likewise.
2412         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
2413         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
2414         (FRAME_BEGIN_LABEL): Likewise.
2415         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
2416         (ASM_DECLARE_FUNCTION_NAME): Likewise.
2417         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
2418         (TARGET_ASM_UNIQUE_SECTION): Define.
2419         (EH_FRAME_SECTION_NAME): Define.
2420         (EH_FRAME_SECTION_ATTR): Likewise.
2421         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
2422         (TARGET_ASM_NAMED_SECTION): Likewise.
2423         (TARGET_SECTION_TYPE_FLAGS): Likewise.
2424         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
2425         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
2426         TARGET_ASM_EMIT_UNWIND_LABEL.
2427
2428 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2429
2430         * builtins.c (expand_builtin_mathfn): Add pow10* to the
2431         existing exp10* case.
2432         (expand_builtin): Likewise.
2433
2434 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
2435
2436         * doc/tm.texi (registers) <Values in Registers>: Add
2437         entry for REGMODE_NATURAL_SIZE.
2438
2439 2004-03-12  Richard Henderson  <rth@redhat.com>
2440
2441         PR target/14547
2442         * target.h (struct gcc_target): Move calls substructure before
2443         booleans.  Add split_complex_arg.
2444         * function.c (assign_parms, split_complex_args): Use it.
2445         * calls.c (expand_call): Likewise.
2446         (split_complex_values): Likewise.  Check for splittable types
2447         before allocating memory.
2448         (split_complex_types): Likewise.
2449         * system.h (SPLIT_COMPLEX_ARGS): Poison.
2450         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
2451         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
2452         * config/alpha/alpha.c (alpha_split_complex_arg): New.
2453         (TARGET_SPLIT_COMPLEX_ARG): New.
2454         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
2455         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
2456         (rs6000_override_options): Zap it for non-AIX.
2457         (rs6000_function_value): Use targetm.calls.split_complex_arg.
2458         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
2459         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
2460         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
2461         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
2462         SPLIT_COMPLEX_ARGS entry.
2463
2464 2004-03-11  Richard Henderson  <rth@redhat.com>
2465
2466         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
2467         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
2468         (alpha_emit_xfloating_arith): Update to match.
2469         (alpha_emit_xfloating_compare): Likewise.
2470         (alpha_emit_xfloating_cvt): Likewise.
2471         (alpha_emit_xfloating_libcall): Take already built symbol,
2472         mark call const.
2473         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
2474         op1 in a register.
2475
2476 2004-03-11  Richard Henderson  <rth@redhat.com>
2477
2478         PR target/14539
2479         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
2480
2481         * simplify-rtx.c (simplify_relational_operation): Fix typo.
2482
2483 2004-03-11  Richard Henderson  <rth@redhat.com>
2484
2485         PR middle-end/14477
2486         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
2487
2488 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
2489
2490         PR target/14262
2491         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
2492         defined, pass small BLKmode values in registers in the low-order part.
2493
2494 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
2495
2496         * combine.c (if_then_else_cond): Check for NULL return value of
2497         simplify_gen_subreg.
2498
2499 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
2500
2501         PR target/14496
2502         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
2503         TARGET_SINGLE_FLOAT.
2504
2505 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
2506
2507         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
2508         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
2509         * config/ia64/ia64.c (ia64_init_libfuncs): New.
2510         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
2511
2512 2004-03-11  Roger Sayle  <roger@eyesopen.com>
2513
2514         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
2515         -((int)X>>C) where C is an integer constant one bit less than the
2516         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
2517         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
2518
2519         * simplify-rtx.c (simplify_unary_operation): Also implement the
2520         above transformations at the RTL level.
2521
2522 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
2523
2524         * real.c (encode_ibm_extended): Do round low word.
2525
2526 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
2527
2528         * config/arm/arm.md (is_xscale): Comment this attribute and move
2529         it a bit further up in the file, closer to related attributes.
2530
2531 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
2532
2533         * config/host-solaris.c (sol_gt_pch_use_address): Add
2534         missing terminating marker to comment.
2535
2536 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
2537
2538         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
2539         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
2540         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
2541         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
2542         move_operand as source predicate in all cases.
2543         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
2544         Test reg_or_0_operand.  Use move_operand as source predicate.
2545         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
2546         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
2547         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
2548         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
2549         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
2550         Use move_operand as source predicate.  Remove 'K' constraint.
2551         (*movqi_internal): Likewise movqi_internal.
2552         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
2553         reg_or_0_operand.  Use move_operand as source predicate.
2554         (*movsf_softfloat): Likewise movsf_internal2.
2555         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
2556         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
2557         (*movdf_softfloat): Likewise movdf_internal2.
2558         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
2559         for DImode if !TARGET_64BIT.
2560         (mips_legitimize_move): Simplify accordingly.
2561
2562 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
2563
2564         PR/14362
2565         * var-tracking.c (struct variable_def): Added field refcount.
2566         (variable_htab_free): Decrease the refcount and delete variable
2567         only if there are no more references.
2568         (unshare_variable): New function.
2569         (vars_copy_1): Increase refcount instead of copying the variable.
2570         (variable_union): Share the variables where possible, unshare
2571         the variables if needed.
2572         (variable_different_p): Return false if var1 and var2 are
2573         the same structure.
2574         (variable_was_changed): Init the refcount of new variable.
2575         (set_frame_base_location): Unshare variable if needed.
2576         (set_variable_part): Init the refcount of new variable.
2577         Unshare the variables if needed.
2578         (delete_variable_part): Unshare the variables if needed.
2579         (emit_notes_for_differences_1): Init the refcount of new variable.
2580         (vt_add_function_parameters): Do not add function parameters to
2581         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
2582         (vt_initialize): Do not add frame_base_decl to IN set of
2583         ENTRY_BLOCK_PTR because it is unused anyway.
2584
2585 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
2586
2587         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
2588         (vars_copy): Likewise.
2589         (variable_union): Likewise.
2590         (set_variable_part): Likewise.
2591         (delete_variable_part): Likewise.
2592
2593 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
2594
2595         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
2596         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
2597         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
2598         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
2599         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
2600         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
2601         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
2602         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
2603         config/stormy16/stormy16.c: Fix comment typos and formatting.
2604
2605 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
2606
2607         * configure: Regenerate, since I forgot to while committing Paolo's
2608         changes.
2609
2610 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
2611
2612         PR ada/14131
2613         Move language detection to the top level.
2614         * configure.ac: Remove code to detect languages,
2615         it now lives exclusively in the top level.
2616         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
2617         top level, renamed to ACX_PROG_GNAT.
2618
2619 2004-03-10  Richard Henderson  <rth@redhat.com>
2620
2621         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
2622         extra arguments.
2623         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
2624         and host_xmake_file fragments.
2625         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
2626         (gt_pch_restore): Similarly for gt_pch_use_address.
2627         (default_gt_pch_get_address): New.
2628         (mmap_gt_pch_get_address): Split out of gt_pch_save.
2629         (default_gt_pch_use_address): Split out of gt_pch_restore.
2630         (mmap_gt_pch_use_address): Likewise.
2631         * hooks.c (hook_voidp_size_t_null): Remove.
2632         (hook_bool_voidp_size_t_false): Remove.
2633         * hooks.h: Likewise.
2634         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
2635         default_ or mmap_ definitions.
2636         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
2637         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
2638         and gt_pch_use_address.
2639         * config/host-linux.c, config/host-solaris.c: New files.
2640         * config/x-linux, config/x-solaris: New files.
2641         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
2642         Update for changed definition.
2643         (darwin_rs6000_gt_pch_use_address): Likewise.
2644         * doc/hostconfig.texi: Update docs.
2645
2646 2004-03-10  Richard Henderson  <rth@redhat.com>
2647
2648         PR c/14517
2649         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
2650         except for pedantic c90 mode.
2651
2652 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
2653
2654         * configure.ac: Bump AC_PREREQ to 2.59.
2655         * configure: Regenerate.
2656
2657 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
2658
2659         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
2660         (exp10_optab, exp2_optab): Define corresponding macros.
2661         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
2662         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
2663         using exp10?f2 and exp2?f2 patterns.
2664         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
2665         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
2666         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
2667         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
2668
2669         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
2670         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
2671         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
2672
2673 2004-03-10  Anthony Green  <green@redhat.com>
2674
2675         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
2676
2677 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
2678
2679         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
2680         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
2681         __LONGDOUBLE128.
2682         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
2683         TARGET_OS_AIX_CPP_BUILTINS.
2684         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
2685         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
2686         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
2687         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
2688         previous change.
2689
2690 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2691
2692         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
2693
2694 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
2695
2696         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
2697         __LONGDOUBLE128 on AIX.
2698
2699 2004-03-10  Andrew Haley  <aph@redhat.com>
2700
2701         PR optimization/14381
2702         * function.c (expand_function_end): Emit a blockage insn before
2703         the epilogue when -fnon-call-exceptions is used.
2704
2705         * except.c (expand_start_all_catch): Make comment more accurate.
2706
2707 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
2708
2709         PR target/14480
2710         * config/rs6000/t-rtems: Add missing file on branch.
2711
2712 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
2713
2714         * dbxout.c (dbxout_symbol_location): Do not output references
2715         to optimized-out constant pool symbols.
2716
2717 2004-03-10  Andreas Schwab  <schwab@suse.de>
2718
2719         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
2720         twon34_r.
2721
2722 2004-03-09  James E Wilson  <wilson@specifixinc.com>
2723
2724         * alias.c (alias_sets_might_conflict_p): New.
2725         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
2726         * common.opt (Wstrict-aliasing=): New.
2727         * flags.h (warn_strict_aliasing): Change type to int.
2728         * opts.c (warn_strict_aliasing): Change type to int.
2729         (common_handle_option): Handle OPT_Wstrict_aliasing_.
2730         * tree.h (alias_sets_might_conflict_p): Declare it.
2731         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
2732
2733 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
2734
2735         PR bootstrap/12371
2736         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
2737         (CALL_USED_REGISTERS): Likewise.
2738         (REG_CLASS_CONTENTS): Likewise.
2739         (REG_ALLOC_ORDER): New.
2740         (REGNO_REG_CLASS): Use regno_reg_class.
2741         * config/m68k/m68k.c: Add regno_reg_class array.
2742
2743 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
2744
2745         * config/ia64/ia64.md (divsi3): Fix algorithm.
2746           (udivsi3): Ditto.
2747           (setf_exp_xf): Remove '*' from name.
2748         * testsuite/gcc.dg/20040309-1.c: New test.
2749
2750 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
2751
2752         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
2753         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
2754         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
2755         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
2756         (sparc_aout_select_rtx_section): Don't check
2757         SUNOS4_SHARED_LIBRARIES.
2758         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
2759
2760 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
2761
2762         PR other/14474
2763         * doc/md.texi (Pattern Ordering, Dependent Patterns)
2764         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
2765         INTERNALS".
2766
2767 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
2768
2769         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
2770         (LIBGCC_SPEC): Update to match.
2771
2772 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
2773
2774         * c-decl.c (last_function_parms, last_function_parm_tags)
2775         (last_function_parm_others, current_function_parms)
2776         (current_function_parm_tags, current_function_parm_others):
2777         Delete.
2778         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
2779         New macros.
2780         (grokdeclarator): For function definitions, save the arg-info
2781         block from the declarator in DECL_ARGUMENTS.
2782         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
2783         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
2784         contains only PARM_DECLs.  Improve diagnostics.
2785         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
2786         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
2787         (store_parm_decls_newstyle): Take the function to operate on,
2788         and an arg-info block, as arguments; don't get anything from
2789         current_function_* globals.
2790         (store_parm_decls_oldstyle): Likewise.
2791         (store_parm_decls): Pass fndecl and its arg-info block down to
2792         store_parm_decls_newstyle/oldstyle.  Send functions with empty
2793         argument lists through store_parm_decls_newstyle to reduce
2794         overhead.
2795         (pushdecl): Comment on the problems with the call to copy_node.
2796         Clear DECL_ARGUMENTS of the old node after copying it, if it
2797         is an arg-info block instead of a chain of decls.
2798         (start_function): Do not manipulate current_function_parm* or
2799         last_function_parm*.
2800
2801 2004-03-09  Roger Sayle  <roger@eyesopen.com>
2802             Andrew Pinski  <pinskia@physics.uc.edu>
2803
2804         * ifcvt.c (noce_try_sign_mask): New function to transform
2805         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
2806         (noce_process_if_block): Call noce_try_sign_mask.
2807
2808 2004-03-09  Andrew Pinski  <apinski@apple.com>
2809
2810         * c-typeck.c (tagged_types_tu_compatible_p):
2811         Fix typo.
2812
2813 2004-03-09  Roger Sayle  <roger@eyesopen.com>
2814
2815         * simplify-rtx.c (simplify_const_relational_operation): New function
2816         renamed from simplify_relational_operation.
2817         (simplify_relational_operation): Change prototype to accept an
2818         additional mode argument.  Call simplify_const_relational_operation.
2819         (simplify_gen_relational): Update simplify_relational_operation call.
2820         (simplify_ternary_operation): Update simplify_relational_operation
2821         subroutine call to use simplify_const_relational_operation instead.
2822
2823         * rtl.h (simplify_const_relational_operation): Prototype here.
2824         (simplify_relational_operation): Add addtional mode argument.
2825
2826         * combine.c (combine_simplify_rtx): Update calls to
2827         simplify_relational_operation.
2828         (simplify_set): Likewise.
2829         (gen_binary): Likewise.
2830         * cse.c (fold_rtx): Likewise.
2831         * dojump.c (compare_from_rtx): Likewise.
2832         (do_compare_rtx_and_jump): Likewise.
2833         * integrate.c (subst_constants): Likewise.
2834         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
2835
2836 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
2837
2838         * config/m32r/m32r.md: Remove all define_peephole's.
2839
2840 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
2841
2842         * config/rs6000/rs6000.md: Remove trailing whitespace.
2843
2844 2004-03-08  Eric Christopher  <echristo@redhat.com>
2845
2846         * Makefile.in (site.exp): Add libiconv variable definition.
2847
2848 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
2849
2850         * configure: Regenerate for config/accross.m4 correction.
2851
2852 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
2853
2854         PR target/14480
2855         * config/rs6000/t-rtems: Add missing file on branch.
2856
2857 2004-03-08  Roger Sayle  <roger@eyesopen.com>
2858
2859         PR middle-end/14289
2860         * c-typeck.c (c_mark_addressable): A register variable should
2861         be considered global if its not automatic, i.e. TREE_PUBLIC,
2862         TREE_STATIC or DECL_EXTERNAL.
2863         * function.c (put_var_into_stack): Call abort when placing a
2864         hard register into the stack, if x_parm_reg_stack_loc is NULL.
2865
2866 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
2867
2868         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
2869         ("*extendqisi2_short_displ"): Likewise.
2870
2871 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
2872
2873         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
2874         (comp_operator): Likewise.
2875         * config/pdp11/pdp11-protos.h: Remove corresponding
2876         prototypes.
2877
2878 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
2879
2880         * expr.c (highest_pow2_factor_for_type): Rename into
2881         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
2882         TYPE_ALIGN when the target is a COMPONENT_REF.
2883         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
2884
2885 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
2886
2887         * config/rs6000/rs6000.c: Formatting fix.
2888         (legitimate_offset_address_p): Correct offset range check.
2889
2890         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
2891         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
2892         and MASK_STRING.
2893
2894 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
2895
2896         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
2897         for little endian.
2898         ("ashrdi3_no_power"): Disable for little endian.
2899         (ashrdi3): Same.
2900
2901 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2902
2903         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
2904         builtins.
2905
2906 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
2907
2908         PR target/14471
2909         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
2910         case, checking for -no-mul-bug-abort option.
2911         * configure, config.in: Regenerate.
2912         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
2913         and -mno-mul-bug-workaround.
2914         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
2915         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
2916         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
2917         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
2918         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
2919         sure mulu.d is not last on cache-line.
2920         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
2921         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
2922         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
2923         (TARGET_SWITCHES): New options -mmul-bug-workaround and
2924         -mno-mul-bug-workaround.
2925         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
2926         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
2927         * config/cris/cris.c (cris_operand_extend_operator): Clarify
2928         relation to MULT in head comment.
2929         (cris_op_str): Abort for MULT.
2930         (cris_print_operand) <case '!'>: New case.
2931
2932 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
2933
2934         PR debug/11983
2935         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
2936         dw_val_class_vec.  Replace use throughout file.
2937         (dw_float_const): Delete.
2938         (dw_vec_const): New.
2939         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
2940         throughout file.
2941         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
2942         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
2943         (size_of_die): Adjust dw_val_class_vec sizing.
2944         (output_die): Output dw_val_class_vec.
2945         (insert_int, extract_int, insert_float): New functions.
2946         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
2947         Handle CONST_VECTOR.
2948         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
2949
2950 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
2951
2952         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
2953         AltiVec abi cannot co-exist.
2954
2955         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
2956
2957 2004-03-07  Jan Hubicka  <jh@suse.cz>
2958
2959         * except.c (emit_to_new_bb_before):  Break fallthru edges.
2960
2961 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
2962
2963         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
2964         ("*lshrsi3"): Also accept an immediate for 68HC12.
2965         ("*ashrsi3_const"): Likewise.
2966         ("*ashrsi3"): Likewise.
2967         ("*ashlsi3_const"): Likewise.
2968         ("*ashlsi3"): Likewise.
2969         ("cmphi_1_hc12"): Compare two hard register by pushing them and
2970         comparing with a pop; don't use a split for that.
2971         ("cmphi split"): Disable compare split for 68HC12.
2972
2973         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
2974         the status operands if they have side effects.
2975
2976 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
2977
2978         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
2979         definition.
2980         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
2981         config/h8300/h8300.h, config/ia64/ia64.h,
2982         config/mcore/mcore.h, config/mmix/mmix.h,
2983         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
2984         config/stormy16/stormy16.h, config/v850/v850.h,
2985         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
2986         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
2987         definition.
2988
2989 2004-03-07  Roger Sayle  <roger@eyesopen.com>
2990
2991         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
2992         <XOR_EXPR>: Fold x ^ x as zero.
2993         <AND_EXPR>: Fold x & x as x.
2994
2995 2004-03-07  Roger Sayle  <roger@eyesopen.com>
2996
2997         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
2998         "foo++ == const" into "++foo == const+incr".
2999
3000 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
3001
3002         * config/mips/mips.c (mips_in_small_data_p): Return false if
3003         TARGET_ABICALLS.
3004
3005 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
3006
3007         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
3008         the stack register.
3009         (expand_prologue): Don't make an interrupt or a trap handler a far
3010         symbol.
3011         (m68hc11_initial_elimination_offset): Likewise.
3012
3013 2004-03-06  Richard Henderson  <rth@redhat.com>
3014
3015         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
3016
3017 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
3018
3019         * config/ns32k/ns32k-protos.h: Add a prototype for
3020         ns32k_notice_update_cc.
3021         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
3022         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
3023         ns32k_notice_update_cc.
3024
3025 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
3026
3027         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
3028         "*load_multiple_si"): Allow only if reload_completed.
3029         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
3030         Likewise.
3031
3032 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
3033
3034         * config/vax/vax-protos.h: Add a prototype for
3035         vax_notice_update_cc.
3036         * config/vax/vax.c (vax_notice_update_cc): New.
3037         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
3038         vax_notice_update_cc.
3039
3040 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
3041
3042         * collect2.c (main): Only export initfunc and finifunc if
3043         LD_INIT_SWITCH not defined.
3044         (scan_prog_file): Only export constructors and destructors if
3045         LD_INIT_SWITCH not defined.  Only export symbols not found in
3046         shared objects.
3047
3048 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3049
3050         * pa.md (icacheflush): Reorder operands to make match_scratch operand
3051         last.
3052         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
3053         from calls to gen_icacheflush.
3054
3055 2004-03-06  Richard Henderson  <rth@redhat.com>
3056
3057         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
3058         (TARGET_LONG_DOUBLE_128): New.
3059         (TARGET_SWITCHES): Add long-double-{128,64}.
3060         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
3061         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
3062         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
3063         (WIDEST_HARDWARE_FP_SIZE): New.
3064         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
3065         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
3066         if TARGET_VAX_FLOAT.
3067         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
3068         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
3069
3070 2004-03-06  Richard Henderson  <rth@redhat.com>
3071
3072         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
3073         botched rtx class conversion.
3074
3075 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3076
3077         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
3078         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
3079
3080         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
3081         macros.
3082         * fold-const.c (fold_mathfn_compare, fold): Likewise.
3083
3084 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
3085
3086         PR target/14343
3087         * config/i386/i386.md (movv2di_internal): Conditionalize on
3088         TARGET_SSE, not TARGET_SSE2.
3089
3090 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
3091
3092         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
3093         duplicated line.
3094
3095 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3096
3097         * builtins.c: Consistently use logN not log* in comments.
3098
3099 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
3100
3101         * rtl.h (mem_expr_equal_p): Function prototype added.
3102         * cfgcleanup.c (merge_memattrs): New function.
3103         (flow_find_cross_jump): Call merge_memattrs for matching insns.
3104         * emit-rtl.c (mem_expr_equal_p): New function.
3105
3106 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
3107
3108         * objc/objc-act.c (synth_module_prologue): Const-qualify
3109         objc_selector type if using the GNU runtime; fix generated
3110         signatures for objc_msg_lookup and objc_msg_lookup_super
3111         to match what GNU ObjC headers provide; reformat and clean up.
3112         (synth_self_and_ucmd_args): Use previously constructed (and
3113         hence possibly const-qualified) objc_selector type.
3114
3115 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
3116
3117         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
3118
3119 2004-03-05  Jason Merrill  <jason@redhat.com>
3120
3121         * tree.h (TYPE_HASH): Use TYPE_UID.
3122         (TREE_HASH): New macro with old definition of TYPE_HASH.
3123         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
3124         (build_array_type, build_function_type): Likewise.
3125         (build_method_type_directly): Likewise.
3126         (build_offset_type, build_complex_type): Likewise.
3127         (type_hash_list, attribute_hash_list): Likewise. Now static.
3128         * except.c: s/TYPE_HASH/TREE_HASH/.
3129
3130 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
3131
3132         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
3133         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
3134         __va_ndx by 2 words when referencing an argument on the stack.
3135         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
3136         words when an arg on the stack is first seen.
3137
3138 2004-03-05  Paul Brook  <paul@codesourcery.com>
3139
3140         * arm.h (ARM_FLAG_VFP): Remove.
3141         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
3142         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
3143
3144 2004-03-05  Paul Brook  <paul@codesourcery.com>
3145
3146         * function.c (assign_parms): Include pretend alignment offset.
3147
3148 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3149
3150         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
3151         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
3152
3153 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
3154
3155         * configure.ac: When passing --enable-languages to subdir
3156         configure when host != build, make sure we don't pass an empty
3157         value.
3158         * configure: Regenerate.
3159
3160 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
3161
3162         PR 13577
3163         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
3164         options.
3165
3166 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
3167
3168         * simplify-rtx.c (simplify_relational_operation): If
3169         flag_wrapv is set, do not move terms between the two
3170         side of a relational operator.
3171
3172 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
3173
3174         * rtlanal.c: Include target.h and output.h
3175         (rtx_cost, address_cost, default_address_cost): Move from...
3176         * cse.c (rtx_cost, address_cost, default_address_cost):
3177         ... this file.
3178         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
3179         * Makefile.in: Adjust dependencies.
3180
3181 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
3182
3183         * cse.c (cse_end_of_basic_block): Make static.
3184         * local-alloc.c (function_invariant_p): Move to
3185         reload1.c.
3186         * loop.c (libcall_other_reg, record_excess_regs):
3187         Make static.
3188         * reload1.c (function_invariant_p): Moved here
3189         from local-alloc.c, made static.
3190         * rtl.h (cse_end_of_basic_block, function_invariant_p,
3191         libcall_other_reg, record_excess_regs): Remove
3192         declarations.
3193
3194 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
3195
3196         * config/m32r/m32r.c (signed_comparison_operator): Add a
3197         missing parenthesis.
3198
3199 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
3200
3201         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
3202         going to call mmap again.  Read the file into the right place.
3203         Give a fatal error if we have to relocate.
3204
3205 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
3206
3207         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
3208         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
3209
3210 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
3211
3212         PR other/14354
3213         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
3214         round the same.  When rounding, clear bits that would cause a
3215         second rounding in pack_d.
3216         (_fpmul_parts): Ditto.  Remove #if 0:d code.
3217
3218 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
3219
3220         PR c++/14425, c++/14426
3221         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
3222         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
3223         Change C++ definitions to accept a 'const int' argument;
3224         the prototypes already do.
3225         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
3226         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
3227         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
3228         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
3229         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
3230         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
3231         end in ..._int; change them to accept an int instead of a char
3232         as the last parameter.
3233
3234 2004-03-04  Phil Edwards  <phil@codesourcery.com>
3235
3236         * genmultilib:  Change '=' to '-' when translating option names
3237         to directory names.
3238
3239 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3240
3241         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
3242         stack slot for temp used for result of BLKmode but in integral mode.
3243
3244 2004-03-04  Jan Hubicka  <jh@suse.cz>
3245
3246         * reload.c (find_reloads): Reorganize if seqeunce to switch.
3247
3248         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
3249         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
3250
3251 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
3252
3253         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
3254         * testsuite/gcc.dg/20040303-1.c: New test.
3255
3256 2004-03-04  Steven Bosscher  <stevenb@suse.de>
3257
3258         * ppro.md: Rewrite as a DFA pipeline description.
3259         * i386.md: Remove all uses of the ppro_uops attribute.
3260         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
3261         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
3262         ix86_sched_reorder, ix86_variable_issue,
3263         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
3264         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
3265         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
3266         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
3267         * athlon.md (athlon_ssecmp_load): Fix comment
3268
3269 2004-03-04  Stuart Hastings  <stuart@apple.com>
3270
3271         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
3272
3273 2004-03-04  Stuart Hastings  <stuart@apple.com>
3274
3275         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
3276         686, tell Darwin assembler to allow prefetch insns, non-empty def
3277         of SUBTARGET_OPTION_TRANSLATE_TABLE.
3278
3279 2004-03-04  DJ Delorie  <dj@redhat.com>
3280
3281         PR optimization/14282
3282         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
3283         between a call and the assignment of its return value.
3284
3285 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
3286
3287         * config/h8300/h8300.c: Put a comment for every function.
3288
3289 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
3290
3291         * config/h8300/h8300.md: Add comments about peephole2's.
3292
3293 2004-03-04  Steven Bosscher  <stevenb@suse.de>
3294
3295         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
3296
3297 2004-03-04  Jan Hubicka  <jh@suse.cz>
3298
3299         * cfgcleanup.c (thread_jump): Update call of cselib_init.
3300         * cselib.c (cselib_record_memory): New static variable.
3301         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
3302         Give up on memories when asked for.
3303         (cselib_init): Accept new argument.
3304         * cselib.h (cselib_init): Update prototype.
3305         * gcse.c (local_cprop_pass): Update call of cselib_init.
3306         * loop.c (load_mems): Update call of cselib_init.
3307         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
3308         * sched-deps.c (sched_analyze): Update call of cselib_init.
3309
3310 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
3311             GP <gp@qnx.com>
3312
3313         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
3314         when compiling PIC.
3315
3316 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
3317
3318         PR/14362
3319         * var-tracking.c (track_expr_p): Do not track variables which
3320         should be ignored for debugging purposes.
3321
3322 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
3323
3324         * real.c (encode_ibm_extended): Don't bother rounding low double.
3325         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
3326         when fmt->pnan < fmt->p.
3327
3328 2004-03-04  Eric Christopher  <echristo@redhat.com>
3329
3330         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
3331         only range of valid arg registers and fixed_regs.
3332
3333 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
3334
3335         PR target/14406
3336         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
3337         (abstf2, abstf2_internal): New define_expand.
3338
3339 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
3340
3341         PR optimization/14235
3342         * expr.c (convert_move): Copy the source to a new pseudo
3343         when converting from a sub-word source to a larger-than-word
3344         register which conflicts with the source.
3345
3346 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
3347
3348         PR 13728
3349         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
3350         parameters with the same name, unless one is a forward decl.
3351         Do not issue a redundant-redeclaration warning for forward
3352         decls of parameters.
3353
3354 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
3355
3356         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
3357         configuration.
3358
3359 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
3360
3361         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
3362
3363 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
3364
3365         * target-def.h (TARGET_OPTF): Delete.
3366         * c-opts.c (TARGET_OPTF): Define.
3367
3368 2004-03-04  Jan Hubicka  <jh@suse.cz>
3369
3370         * cselib.c (cselib_finish): Fix another miss-application of my previous
3371         patch.
3372
3373 2004-03-03  Mike Stump  <mrs@apple.com>
3374
3375         Add framework support for darwin.
3376
3377         * c-incpath.c: Include target.h and machmode.h.
3378         (add_path): Use a consistent style for cpp_dir.  Initialize
3379         p->construct to 0.
3380         (add_cpp_dir_path): New.
3381         (register_include_chains): Add use of extra_includes callback.
3382         (hook_void_int): Add.
3383         (target_c_incpath): Add.
3384         * c-incpath.h (add_cpp_dir_path): New.
3385         (target_c_incpath_s): Add.
3386         (target_c_incpath): Add.
3387         (C_INCPATH_INIT): Add.
3388         * c-opts.c (c_common_missing_argument,
3389         c_common_handle_option): Add -F argument processing.
3390         * c.opt: Add -F argument processing.
3391         * gcc.c (trad_capable_cpp): Add -F argument processing.
3392         * cppfiles.c (find_file_in_dir): Update to use construct
3393         callback.
3394         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
3395         cpp_get_prev): New.
3396         (_cpp_find_file): Use search_path_exhausted.
3397         (make_cpp_dir): Initialize construct to 0.
3398         * cpplib.h (missing_header_cb
3399         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
3400         (cpp_callbacks): Add missing_header
3401         (cpp_dir): Add construct.
3402         * target-def.h: (TARGET_OPTF): New.
3403         * hooks.c (hook_void_int, hook_void_charptr): Add.
3404         * hooks.h (hook_void_int, hook_void_charptr): Add.
3405         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
3406         $(MACHMODE_H) dependencies.
3407         * doc/invoke.texi (Darwin Options): Document -F.
3408         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
3409         (TARGET_OPTF): Add.
3410         * fix-header.c (target_c_incpath): Add.
3411
3412         * config/darwin-c.c: Add c-incpath.h include.
3413         (using_frameworks, find_subframework_file,
3414         find_subframework_header, add_system_framework_path,
3415         frameworks_in_use, num_frameworks, max_frameworks,
3416         add_framework, find_framework, struct framework_header,
3417         framework_header_dirs, framework_construct_pathname,
3418         find_subframework_file, add_system_framework_path,
3419         add_framework_path, framework_defaults,
3420         darwin_register_frameworks, find_subframework_header): Add.
3421         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
3422         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
3423         (CPP_SPEC): Add __APPLE_CC__ support.
3424         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
3425
3426 2004-03-04  Jan Hubicka  <jh@suse.cz>
3427
3428         * cselib.c (cselib_finish): Fix miss-application of my previous
3429         patch.
3430
3431 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
3432
3433         * hooks.c (hook_tree_tree_identity): New.
3434         * hooks.h: Add a prototype for hook_tree_tree_identity.
3435         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
3436         instead of MD_ASM_CLOBBERS.
3437         * system.h (MD_ASM_CLOBBERS): Poison.
3438         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
3439         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
3440         * target.h (gcc_target): Add md_asm_clobbers.
3441         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
3442         (ix86_md_asm_clobbers): New.
3443         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
3444         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
3445         TARGET_MD_ASM_CLOBBERS.
3446
3447 2004-03-03  Stuart Hastings  <stuart@apple.com>
3448
3449         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
3450
3451 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
3452
3453         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
3454
3455         * config/sparc/sparc.h (ASM_FLOAT): Delete.
3456         (ASM_DOUBLE): Likewise.
3457         (ASM_LONGDOUBLE): Likewise.
3458         * config/sparc/pbd.h (ASM_INT_OP): Delete.
3459
3460 2003-03-03  Richard Henderson  <rth@redhat.com>
3461
3462         PR opt/13862
3463         * cselib.c (cselib_record_sets): Don't record multiple sets in
3464         asm insns.
3465
3466 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
3467
3468         * common.opt: Add description of the new -fgcse-after-reload flag.
3469
3470         * flags.h (flag_gcse_after_reload): Declaration of global variable.
3471
3472         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
3473         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
3474         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
3475         get_bb_avail_insn, hash_scan_set_after_reload,
3476         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
3477         gcse_after_reload, get_bb_avail_insn): New functions to implement
3478         gcse-after-reload.
3479         (gcse_after_reload_main): New function, the main entry point to
3480         gcse-after-reload.
3481
3482         * rtl.h (gcse_after_reload_main): Declaration of the new function.
3483
3484         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
3485
3486         * toplev.c (flag_gcse_after_reload): Initialization.
3487
3488         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
3489
3490         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
3491         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
3492         the gcse after reload optimization.
3493
3494         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
3495         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
3496         parameters.
3497
3498         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
3499
3500 2004-03-03  Nicolas Pitre <nico@cam.org>
3501
3502         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
3503         small negative values.
3504
3505 2004-03-03  Jan Hubicka  <jh@suse.cz>
3506
3507         * cselib.c (hash_table):  Remove GTY marker.
3508         (reg_values): Turn into array.
3509         (used_regs): Likewise.
3510         (n_used_regs): New static variable.
3511         (reg_values_old): Kill.
3512         (clear_table): Update uses of arrays.
3513         (cselib_lookup): Likewise.
3514         (cselib_record_set): Likewise.
3515         (cselib_init): Likewise.
3516         (cselib_finish): Likewise.
3517         (cselib_udpate_varray_sizes): Kill.
3518         * cselib.h (cselib_update_varray_sizes): Kill.
3519
3520 2004-03-03  Paul Brook  <paul@codesourcery.com>
3521
3522         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
3523
3524 2004-03-03  Jan Hubicka  <jh@suse.cz>
3525
3526         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
3527         Rename from ...; make statistics transparent.
3528         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
3529         (loc_descriptor): New structure.
3530         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
3531         add_statistics):
3532         New static function.
3533         (ggc_record_overhead, dump_statistics): New global function.
3534         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
3535         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
3536         from ...; accept locations
3537         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
3538         ggc_realloc, ggc_alloc_typed):  ... this one.
3539         from ...; accept locations
3540         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
3541         ggc_alloc_stat): Rename from ... ; pass locations
3542         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
3543         ... this one.
3544         (ggc_alloc_stat): Record overehead.
3545         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
3546         ggc_realloc, ggc_alloc_typed):  Turn to macros
3547         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
3548         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
3549         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
3550         * langhooks.h (lhd_make_node): Declare.
3551         (LANG_HOOKS_MAKE_TYPE): Default to new function,
3552         * langhooks.c (lhd_make_node): New.
3553         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
3554         locations.
3555         (rtx_alloc, swallow_copy_rtx): ... this one.
3556         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
3557         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
3558         * toplpev.c (finalize): Dump stats.
3559         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
3560         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
3561         Rename from ... ; pass locators.
3562         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
3563         build?,  build_decl): Declare.
3564         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
3565         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
3566         Declare.
3567         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
3568         build?,  build_decl): New macros.
3569         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
3570         * statistics.h: New file.
3571
3572 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
3573             Richard Sandiford  <rsandifo@redhat.com>
3574
3575         * config/mips/mips.h (MASK_FIX_SB1): Bump.
3576         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
3577         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
3578         * config/mips/mips.c (mips_output_division): Fill the branch delay
3579         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
3580         TARGET_FIX_R4400.
3581         (mips_output_division): Adjust accordingly.
3582         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
3583         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
3584
3585 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
3586
3587         * alias.c (rtx_equal_for_memref_p): Use predicates
3588         to test rtx classes and new rtx class codes, possibly
3589         splitting conditionals that tested against '<' and 'o'.
3590         * caller-save.c (save_call_clobbered_regs): Likewise.
3591         * combine.c (contains_muldiv, find_split_point, subst,
3592         combine_simplify_rtx, simplify_if_then_else,
3593         simplify_set, simplify_logical, expand_compound_operation,
3594         make_compound_operation, if_then_else_cond, known_cond,
3595         apply_distributive_law, cached_nonzero_bits,
3596         cached_num_sign_bit_copies, simplify_shift_const,
3597         gen_binary, simplify_comparison, update_table_tick,
3598         record_value_for_reg, get_lsat_value_validate): Likewise.
3599         * cse.c (mention_regs, find_best_addr, find_comparison_args,
3600         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
3601         Likewise.
3602         * emit-rtl.c (copy_insn_1): Likewise.
3603         * expr.c (force_operand): Likewise.
3604         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
3605         * flow.c (notice_stack_pointer_modification_1,
3606         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
3607         and_reg_cond, elim_reg_cond): Likewise.
3608         * function.c (update_epilogue_consts): Likewise.
3609         * genattrtab.c (attr_rtx_1): Likewise.
3610         * genopinit.c (gen_insn): Likewise.
3611         * integrate.c (subst_constants): Likewise.
3612         * jump.c (reversed_comparison_code_parts,
3613         reversed_comparison_code, delete_related_insns,
3614         rtx_renumbered_equal_p): Likewise.
3615         * local-alloc.c (block_alloc): Likewise.
3616         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
3617         canonicalize_condition): Likewise.
3618         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
3619         Likewise.
3620         * optabs.c (add_equal_node, expand_binop): Likewise.
3621         * predict.c (estimate_probability): Likewise.
3622         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
3623         * recog.c (validate_replace_rtx_1, comparison_operator,
3624         offsettable_address_p, constrain_operands): Likewise.
3625         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
3626         Likewise.
3627         * regclass.c (scan_one_insn): Likewise.
3628         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
3629         * regrename.c (kill_autoinc_value): Likewise.
3630         * reload.c (find_reusable_reload, find_reloads,
3631         reg_overlap_mentioned_for_reload_p): Likewise.
3632         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
3633         * rtl.c (copy_rtx): Likewise.
3634         * rtl.h (CONSTANT_P, INSN_P): Likewise.
3635         * rtlanal.c (commutative_operand_precedence): Likewise.
3636         * sched-deps.c (conditions_mutex_p): Likewise.
3637         * sched-rgn.c (is_cfg_nonregular): Likewise.
3638         * simplify-rtx.c (simplify_gen_binary,
3639         simplify_gen_relational, simplify_replace_rtx,
3640         simplify_unary_operation, simplify_binary_operation,
3641         simplify_ternary_operation, simplify_rtx): Likewise.
3642         * unroll.c (reg_dead_after_loop): Likewise.
3643         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
3644         print_operand): Likewise.
3645         * config/arc/arc.c (proper_comparison_operator): Likewise.
3646         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
3647         Likewise.
3648         * config/avr/avr.c (_reg_unused_after): Likewise.
3649         * config/frv/frv.c (frv_ifcvt_modify_tests,
3650         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
3651         * config/i386/i386.c (ix86_comparison_operator,
3652         ix86_carry_flag_operator, fcmov_comparison_operator,
3653         arith_or_logical_operator, print_operand,
3654         ix86_expand_binary_operator, ix86_binary_operator_ok):
3655         Likewise.
3656         * config/i386/i386.md: Likewise.
3657         * config/ia64/ia64.c (not_postinc_memory_operand,
3658         ia64_print_operand, update_set_flags, errata_emit_nops):
3659         Likewise.
3660         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
3661         CONSTRAINT_OK_FOR_S): Likewise.
3662         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
3663         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
3664         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
3665         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
3666         Likewise.
3667         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
3668         eqne_comparison_operator, signed_comparison_operator):
3669         Likewise.
3670         * config/mips/mips.c (cmp_op, symbolic_expression_p):
3671         Likewise.
3672         * config/mmix/mmix (mmix_foldable_comparison_operator,
3673         mmix_comparison_operator): Likewise.
3674         * config/pa/pa.c (hppa_legitimize_address): Likewise.
3675         * config/rs6000/rs6000.c (stmw_operation,
3676         branch_comparison_operator, trap_comparison_operator,
3677         ccr_bit): Likewise.
3678         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
3679         * config/s390/s390.c (s390_alc_comparison,
3680         s390_slb_comparison):L Likewise.
3681         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
3682         Likewise.
3683         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
3684         noov_compare_op, noov_compare64_op, v9_regcmp_op,
3685         emit_hard_tfmode_operation, reg_unused_after)
3686         * doc/md.texi, doc/rtl.texi: Likewise.
3687
3688         * ra-debug.c: Add 2004 to list of copyright years.
3689         * unroll.c: Likewise.
3690
3691         * combine.c (simplify_logical): Remove dummy test,
3692         (apply_distributive_law): Fix typo in comment.
3693         GET_CODE (x) == AND so x is a commutative binary op.
3694         * jump.c (delete_related_insns): simplify loop
3695         condition, move testing of RTX codes inside the loop.
3696         (rtx_renumbered_equal_p): do not use RTX_CODE.
3697         * rtl.c (rtx_class): Declare as enum rtx_class.
3698         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
3699         Move to RTX_COMM_COMPARE class.
3700         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
3701         Move to RTX_CONST_OBJ class.
3702         * rtl.h (enum rtx_class): New declaration,
3703         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
3704         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
3705         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
3706         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
3707         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
3708         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
3709         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
3710         OBJECT_P): New macros.
3711         * config/sparc/sparc.c (noov_compare_op): Remove register
3712         from parameter.
3713
3714 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
3715
3716         * target.h: Remove texi jargons in comments.
3717
3718 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
3719
3720         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
3721         threshold to 0x4f.
3722
3723         Revert:
3724         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
3725         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
3726         as well.
3727         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
3728         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
3729
3730 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
3731
3732         * doc/md.texi (cbranchmode4): New.
3733
3734 2004-03-02  Eric Christopher  <echristo@redhat.com>
3735
3736         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
3737         fix_trunc.
3738         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
3739         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
3740         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
3741         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
3742
3743 2004-03-02  Richard Henderson  <rth@redhat.com>
3744
3745         PR middle-end/11767
3746         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
3747         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
3748         before the compare, if flag_non_call_exceptions.
3749
3750 2004-03-02  Richard Henderson  <rth@redhat.com>
3751
3752         PR middle-end/14327
3753         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
3754         emitting the label, not after.
3755
3756 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
3757
3758         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
3759         (m68hc11_mov_addr_mode): Likewise.
3760         (m68hc11_override_options): Initialize them based on target.
3761         (register_indirect_p): Allow a MEM for indirect addressing modes and
3762         use flags to control what is allowed.
3763         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
3764         supported addressing modes.
3765         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
3766         (go_if_legitimate_address_internal): Likewise.
3767         (m68hc11_indirect_p): Likewise and check the mode.
3768         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
3769
3770 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
3771
3772         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
3773         (expand_builtin_setjmp_setup): Use
3774         targetm.builtin_setjmp_frame_value instead of
3775         BUILTIN_SETJMP_FRAME_VALUE.
3776         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
3777         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
3778         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
3779         * target.h (gcc_target): Add builtin_setjmp_frame_value.
3780         * targhooks.c (default_builtin_setjmp_frame_value): New.
3781         * targhooks.h: Add a prototype for
3782         default_builtin_setjmp_frame_value.
3783         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
3784         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
3785
3786 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
3787
3788         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
3789         sequences of moves.
3790         (add peepholes): New peepholes to optimize sequences adding small
3791         constants.
3792         (bset peepholes): New peepholes to transform an OR in a bset form
3793         (bclr peepholes): Likewise for bclr form.
3794         (cmp peepholes): New peepholes to avoid register copies when comparing.
3795
3796 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
3797
3798         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
3799         to separate push from moves.
3800         ("*pushdf_internal"): Likewise.
3801         ("*pushsf_internal"): Likewise.
3802         ("*pushsi_internal"): Likewise.
3803         ("movdi_internal"): Use define_insn_and_split; non push operand.
3804         ("movdf_internal"): Likewise.
3805         ("movsf_internal"): Likewise.
3806         ("movsi_internal"): Likewise.
3807         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
3808         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
3809         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
3810
3811 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
3812
3813         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
3814         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
3815         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
3816         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
3817         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
3818         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
3819         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
3820         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
3821         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
3822         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
3823         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
3824
3825 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
3826
3827         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
3828         (SOFT_XY_REGNUM): Define.
3829         (cmp split): Use the above instead of hard coded numbers.
3830         (8-bit op split): No need to check the mode; allow Q_REG.
3831         (ashift split): Adjust the first operand if it uses the SP and we
3832         are pushing the shifted value.
3833         (plus shift split): Fix when a source is in register D+X.
3834         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
3835
3836 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
3837
3838         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
3839         comparing with Z register.
3840
3841 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3842
3843         * cfgloop.h (struct loop_desc): Removed.
3844         (struct loop): Fields simple, desc and has_desc removed.
3845         (simple_loop_p, count_loop_iterations): Declaration removed.
3846         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
3847         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
3848         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
3849         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
3850         simple_loop_exit_p, variable_initial_value, variable_initial_values,
3851         simple_condition_p, simple_increment, count_strange_loop_iterations,
3852         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
3853         Removed.
3854         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
3855
3856 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
3857
3858         * genattrtab.c: Don't handle MATCH_INSN.
3859         * genrecog.c: Likewise.
3860         * gensupport.c: Likewise.
3861         * rtl.def (match_insn): Remove.
3862         * doc/md.texi (match_insn, match_insn2): Remove.
3863
3864 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
3865
3866         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
3867         macro results in memory allocation.
3868
3869 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
3870
3871         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
3872         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
3873         %(fbsd_dynamic_linker),
3874         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
3875         config/i386/freebsd.h
3876         * config/arm/freebsd.h: Ditto.
3877         * config/i386/freebsd.h: Ditto.
3878         * config/i386/freebsd64.h: Ditto.
3879         * config/ia64/freebsd.h: Ditto.
3880         * config/rs6000/sysv4.h: Ditto.
3881         * config/sparc/freebsd.h: Ditto.
3882
3883 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
3884
3885         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
3886
3887 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
3888
3889         * rtl.def (define_combine): Remove.
3890
3891 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
3892
3893         * config/h8300/h8300.md: Tweak formatting.
3894
3895 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
3896
3897         * config/h8300/h8300.md (*cmphi_h8300): Rename to
3898         *cmphi_h8300_znvc.
3899         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
3900
3901 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
3902
3903         PR bootstrap/14356
3904         * gcc.c (process_command): Remove const-qualification from argv.
3905         (main): Likewise.
3906
3907 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
3908
3909         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
3910         pushqi1_h8300hs_advanced.  Adjust its caller.
3911         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
3912         Adjust its caller.
3913
3914 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
3915
3916         * Makefile.in (install-libgcc, install-multilib): Pass
3917         mkinstalldirs var to libgcc.mk.
3918
3919 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
3920
3921         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
3922         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
3923
3924 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
3925
3926         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
3927         * config/h8300/h8300.md: Split several peephole2's, each into
3928         two.
3929
3930 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3931
3932         * dominance.c (recount_dominator): Handle postdominators.
3933
3934 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
3935
3936         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
3937         (NUM_SYMBOL_TYPES): Likewise.
3938         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
3939         (mips_unspec_address): Declare.
3940         (mips_gotoff_page, mips_gotoff_global): Delete.
3941         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
3942         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
3943         (mips_symbolic_constant_p, mips_symbolic_address_p)
3944         (mips_symbol_insns): Handle new symbol types.
3945         (general_symbolic_operand): New predicate.
3946         (mips_unspec_address): Make extern.
3947         (mips_gotoff_page, mips_gotoff_global): Delete.
3948         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
3949         Handle new symbol types.
3950         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
3951         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
3952         mips_unspec_address directly.
3953         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
3954         the documentation of -mexplicit-relocs.
3955
3956 2004-03-01  Jeff Law  <law@redhat.com>
3957
3958         * fold-const.c (fold): An equality comparison of a non-weak object
3959         against zero has a known result.  Similarly an equality comparison
3960         of the address of two non-weak, unaliased symbols has a known result.
3961
3962         * ggc-page.c (struct page_entry): New field PREV.
3963         (ggc_alloc): Update PREV field appropriately.
3964         (sweep_pages): Likewise.
3965         (ggc_free): Likewise.  Use PREV field rather than loop to
3966         improve ggc_free performance.
3967
3968 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
3969
3970         * config/mips/mips.c (mips_output_division): Use the division
3971         instruction to fill the delay slot of a zero check.
3972         (mips_idiv_insns): Adjust accordingly.
3973
3974 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
3975
3976         * config.gcc: Create a default tmake_file for linux, and use
3977         it in all but two linux clauses.  Comment those two.
3978
3979 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
3980
3981         * combine.c (try_combine):  Do not refer to is_replaced.
3982         (gen_lowpart_for_combine):  Perverse subregs now have a
3983         more politically correct name.
3984         * cse.c (cse_insn): Likewise.
3985         * jump.c: Fix bogus reference to delete_insn.
3986
3987 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
3988
3989         PR debug/14328
3990         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
3991         constants as signed values.
3992
3993         PR middle-end/13448
3994         * c-tree.h (readonly_warning): Rename to ...
3995         (readonly_error): ... this.
3996         * c-typeck.c (build_unary_op): Adjust accordingly.
3997         (readonly_warning): Rename to ...
3998         (readonly_error): ... this and issue errors, not warnings.
3999         (build_modify_expr): Call readonly_error, not readonly_warning.
4000         (c_expand_asm_operands): Likewise.
4001         * tree-inline.c (optimize_inline_calls): Do not inline functions
4002         after errors have occurred.
4003
4004 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
4005
4006         * configure.ac: Rearrange some threading code for clarity;
4007         add section comment.
4008         * configure: Regenerate.
4009
4010 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4011
4012         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
4013         typos.
4014         * doc/cppopts.texi: Fix a typo.
4015
4016 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4017
4018         * config/i386/i386.md: Fix formatting.
4019
4020 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
4021
4022         * configure.ac: Add some comments delineating sections of code.
4023
4024         * doc/install.texi: Note that libada uses autoconf 2.57 also.
4025
4026         * doc/install.texi: Fix idiot typo in previous commit.
4027
4028         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
4029
4030 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4031
4032         * config/h8300/h8300.md: Add comments about peephole2's.
4033
4034 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4035
4036         * config/h8300/h8300.md: Tweak operand numbers of some
4037         peephole2's.
4038
4039 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4040
4041         * config/h8300/h8300.md: Tweak comments about peephole2's.
4042
4043 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
4044
4045         PR middle-end/14203
4046         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
4047         instead of testing whether DECL_RTL is not NULL.
4048
4049 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
4050
4051         * config/sh/sh.c: Fix formatting.
4052
4053 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
4054
4055         * config/sh/sh.c: Convert to ISO-C.
4056
4057 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
4058
4059         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
4060         my previous patch.
4061
4062         * config/darwin.h (machopic_finish): Output stub even if the
4063         symbol is already defined.
4064
4065 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4066
4067         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
4068
4069 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
4070
4071         * genattr.c (main): Don't define
4072         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
4073         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
4074         (DFA_PIPELINE_INTERFACE): Likewise.
4075         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
4076         (DFA_PIPELINE_INTERFACE): Likewise.
4077
4078 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
4079
4080         * config/mips/mips.md (tstsi, tstdi): Delete.
4081
4082 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
4083
4084         * config/mips/mips.c (override_options): Remove an obsolete
4085         duplicate definition of the "e" constraint.
4086         * config/mips/mips.h: Update a comment accordingly.
4087
4088 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
4089
4090         * config/mips/mips.md: Complete the unfinished R4000
4091         multiply/shift errata workaround.  Improve documentation.
4092         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
4093         has a hilo hazard.
4094         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
4095         (muldi3, muldi3_internal): Likewise.
4096         (muldi3_internal2): Remove, replacing with...
4097         (muldi3_mult3, muldi3_r4000): ...these new patterns.
4098         (mulsidi3): Take the errata into account.
4099         (mulsidi3_32bit): Remove, replacing with...
4100         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
4101         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
4102         (umulsidi3): Take the errata into account.
4103         (umulsidi3_32bit): Remove, replacing with..
4104         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
4105         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
4106         TARGET_FIX_R4000.
4107         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
4108         (smuldi3_highpart, umuldi3_highpart): Likewise.
4109         * doc/invoke.texi: Document the errata workaround.
4110
4111 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
4112
4113         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
4114         * config/mips/mips.h (MASK_FIX_SB1): Bump.
4115         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
4116         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
4117         * config/mips/mips.c (mips_idiv_insns): New function.
4118         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
4119         (mips_output_division): Add a workaround for the R4000 divide/shift
4120         errata.
4121         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
4122         the length of an "idiv" instruction.
4123         * doc/invoke.texi: Document the new switches.
4124
4125 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
4126
4127         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
4128         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
4129
4130 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4131
4132         PR optimization/14229
4133         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
4134
4135 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
4136
4137         * fold-const.c (fold): Strip NOPs that change the signedness
4138         for RSHIFT too.  Expand comment.
4139
4140 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
4141
4142         PR optimization/7871
4143         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
4144         from or to call insns.
4145
4146 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
4147
4148         PR optimization/7871
4149         * flow.c (propagate_one_insn): Interpret calls as setting global
4150         registers, not merely clobbering them.
4151
4152 2004-02-27  Dale Johannesen  <dalej@apple.com>
4153
4154         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
4155         config/darwin-protos.h:  Ditto.
4156         config/darwin.h:  Remove call to it.
4157         * combine.c (distribute_notes): Do not place a REG_DEAD note
4158         when value is both set and used.
4159
4160 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
4161
4162         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
4163         as well.
4164         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
4165         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
4166
4167 2004-02-27  Andrew Pinski  <apinski@apple.com>
4168
4169         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
4170         Speedup common case of the type values being in the same order.
4171
4172 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
4173
4174         * config/ia64/ia64.h (no-inline-float-divide): New option.
4175         * config/ia64/ia64.h (no-inline-int-divide): New option.
4176         * config/ia64/ia64.h (no-inline-sqrt): New option.
4177         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
4178         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
4179         * config/ia64/ia64.c (ia64_override_options): Modify error
4180         checking for inlined division/sqrt.
4181
4182 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
4183
4184         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
4185         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
4186         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
4187         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
4188         copyright.
4189
4190 2004-02-27  Paul Brook  <paul@codesourcery.com>
4191
4192         * function.c (assign_parms): Don't count pretend args for alignment.
4193
4194 2004-02-27  Richard Henderson  <rth@redhat.com>
4195
4196         * passes.c: New file.
4197         * Makefile.in (OBJS-common): Add it.
4198         * diagnostic.c (rtl_dump_and_exit): Move decl ...
4199         * flags.h (rtl_dump_and_exit): ... here.
4200         * output.h (size_directive_output, last_assemble_variable_decl):
4201         Move from toplev.c.
4202         * rtl.h (reg_alloc): Move from toplev.c.
4203         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
4204         struct dump_file_info, enum dump_file_index, dump_file_tbl,
4205         open_dump_file, close_dump_file, rest_of_decl_compilation,
4206         rest_of_type_compilation, rest_of_handle_final,
4207         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
4208         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
4209         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
4210         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
4211         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
4212         rest_of_handle_tracer, rest_of_handle_if_conversion,
4213         rest_of_handle_if_after_combine, rest_of_handle_web,
4214         rest_of_handle_branch_prob,
4215         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
4216         rest_of_handle_addressof, rest_of_handle_sibling_calls,
4217         rest_of_handle_jump_bypass, rest_of_handle_inlining,
4218         rest_of_handle_null_pointer, rest_of_handle_combine,
4219         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
4220         rest_of_handle_gcse, rest_of_handle_loop_optimize,
4221         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
4222         (decode_d_option): Use enable_rtl_dump_file.
4223         (compile_file, finalize, do_compile): Move profile+combine+graph
4224         cleanup to finish_optimization_passes.
4225         * toplev.h (init_optimization_passes, finish_optimization_passes,
4226         enable_rtl_dump_file): Declare.
4227
4228 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
4229             Roger Sayle  <roger@eyesopen.com>
4230
4231         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
4232         operands to build a tree with swapped operands.
4233         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
4234         'unsignedp' predicate to specify the signedness.
4235
4236 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
4237
4238         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
4239         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
4240         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
4241         comment typos and formatting.  Follow spelling conventions.
4242
4243 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
4244
4245         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
4246         fix_truncsfsi2.
4247
4248         * config/rs6000/spe.md: Delete spe_efsctuiz.
4249         Add spe_fixuns_truncsfsi2.
4250         Add spe_fix_truncsfsi2.
4251
4252 2004-02-26  Eric Christopher  <echristo@redhat.com>
4253
4254         * c-lex.c (c_lex_string_translate): New variable.
4255         (lex_string): Use to determine string translation.
4256         * c-pragma.h: Prototype.
4257         * c-parse.in (start_string_translation): New. Set above.
4258         (stop_string_translation): Ditto.
4259         (attribute, attribute_list, asm_def, asm_stmt,
4260         asm_operand): Use above functions.
4261         * cp/parser.c (cp_parser_declaration): Translate strings
4262         unless token is RID_EXTERN. Set c_lex_string_translate
4263         for recursive use.
4264         (cp_parser_asm_definition): Only translate argument strings
4265         to asms.
4266         (cp_parser_asm_operand_list): Ditto.
4267         (cp_parser_attribute_list): Do not translate attribute strings.
4268
4269 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4270
4271         * stmt.c (expand_start_case_dummy): Remove.
4272         * tree.h: Remove the corresponding prototype.
4273
4274 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4275
4276         * builtins.c (apply_args_register_offset): Remove.
4277         * tree.h: Remove the corresponding prototype.
4278
4279 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4280
4281         * stor-layout.c (is_pending_size): Remove.
4282         * tree.h: Remove the corresponding prototype.
4283
4284 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4285
4286         * recog.c (validate_replace_src): Remove.
4287         * recog.h: Remove the corresponding prototype.
4288
4289 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4290
4291         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
4292         MAYBE_REG_PARM_STACK_SPACE.
4293         * function.c: Likewise.
4294         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
4295         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
4296         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
4297         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
4298
4299 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4300
4301         * c-decl.c (c_expand_deferred_function): Remove.
4302         * c-tree.h: Remove the corresponding prototype.
4303
4304 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4305
4306         * postreload.c (reload_cse_move2add): Generate just a PLUS
4307         instead of an entire SET.
4308
4309 2004-02-26  Jan Hubicka  <jh@suse.cz>
4310
4311         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
4312         /pentium4m.
4313         * i386.c (override_options): Add support for new CPUs.
4314         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
4315         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
4316         constants.
4317         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
4318
4319 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
4320
4321         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
4322
4323 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
4324
4325         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
4326         (sparc_emit_fixunsdi): New prototype.
4327         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
4328         (sparc_emit_fixunsdi): New function.
4329         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
4330         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
4331         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
4332         to sparc_emit_floatunsdi.
4333         (fixuns_truncsfdi2): New expander.
4334         (fixuns_truncdfdi2): Likewise.
4335
4336 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
4337
4338         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
4339         unless HAVE_cc0.
4340
4341 2004-02-25  Richard Henderson  <rth@redhat.com>
4342
4343         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
4344         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
4345         use (op0-op1) == 0 if op0 is a pointer.
4346         * config/alpha/alpha.md (cmpdi): Use some_operand.
4347         (three comparison combine splits): Remove.
4348
4349 2004-02-25  Richard Henderson  <rth@redhat.com>
4350
4351         PR c/12794
4352         * c-common.c (handle_alias_attribute): Reject the attribute if
4353         current_function_decl is set.
4354
4355 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
4356
4357         * config.gcc: Add comment describing extra_gcc_objs.
4358         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
4359         * configure.ac (extra_gcc_objs): New substitution variable.
4360         (host_extra_gcc_objs): Don't substitute.
4361         * configure: Regenerate.
4362         * Makefile.in: Use extra_gcc_objs.
4363
4364 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
4365
4366         * doc/contrib.texi: Add an entry for myself.
4367
4368 2004-02-25  Jan Hubicka  <jh@suse.cz>
4369
4370         * basic-block.h (make_eh_edge, break_superblocks): Declare.
4371         * cfgbuild.c (make_eh_edge):  Make global.
4372         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
4373         * except.c (build_post_landing_pads, connect_post_landing_pads,
4374         dw2_build_landing_pads, sjlj_emit_function_enter,
4375         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
4376         sjlj_build_landing_pads): Update CFG.
4377         (emit_to_new_bb_before): New function.
4378         (finish_eh_generation): Do not rebuild the CFG.
4379
4380 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4381
4382         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
4383         target_cpu_default defines.
4384         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
4385         * pa.h (TARGET_DEFAULT): Likewise.
4386
4387 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
4388
4389         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
4390         comparisons with regard to signedness.
4391
4392 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
4393
4394         * arm.c (thumb_legitimize_address): New function.
4395         * arm-protos.h: Prototype it.
4396         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
4397         (LEGITIMIZE_ADDRESS): Use it.
4398
4399 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
4400
4401         * reload1.c (reload): Only spill eliminable register with multiple
4402         adjacent elimination alternatives if all alternatives fail.
4403
4404 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
4405
4406         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
4407         is -4095...+4095 inclusive.
4408
4409 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
4410
4411         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
4412         the bootstrap failure with Sun CC 5.4 and 5.5.
4413
4414 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
4415
4416         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
4417         which modifies NEWREG.
4418         (cse_condition_code_reg): Update the mode of CC_REG in
4419         CC_SRC_INSN on our own.
4420
4421 2004-02-24  Michael Matz  <matz@suse.de>
4422
4423         * config/i386/i386.c (ix86_comp_type_attributes): Check for
4424         regparm attributes.
4425
4426 2004-02-24  Richard Henderson  <rth@redhat.com>
4427
4428         * toplev.c (dump_file_tbl): Rename from dump_file.
4429         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
4430         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
4431         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
4432         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
4433         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
4434         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
4435         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
4436         s/rtl_dump_file/dump_file/g.
4437
4438 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
4439
4440         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
4441         (spe_fixuns_truncsfsi2): Delete.
4442
4443         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
4444         (fixuns_truncsfsi2): Delete.
4445
4446 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
4447
4448         PR/14240
4449         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
4450
4451 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
4452
4453         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
4454
4455 2004-02-24  Jason Merrill  <jason@redhat.com>
4456
4457         * tree.c (check_qualified_type): New fn.
4458         (get_qualified_type): Use it.  If type already has the desired
4459         quals, just return it.
4460         * tree.h: Declare it.
4461
4462 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
4463
4464         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
4465         TARGET_SCHED_FINISH_GLOBAL): New macros.
4466
4467         * target.h (md_init_global, md_finish_global): Function
4468         declarations corresponding to new target macros.
4469
4470         * haifa-sched.c (sched_init, sched_finish): Allow target to
4471         call the new schedular hooks.
4472
4473         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
4474         call to update_life_info.
4475
4476         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
4477         flag_schedule_insns for SH4.
4478
4479         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
4480         find_set_regmode_weight, find_insn_regmode_weight,
4481         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
4482         sh_variable_issue, high_pressure, ready_reorder,
4483         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
4484         functions used to throttle the insn movement in first
4485         scheduling pass for SH.
4486
4487         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
4488         TARGET_SCHED_FINISH_GLOBAL.
4489
4490 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
4491
4492         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
4493         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
4494         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
4495         symbols in sections named by the user.
4496         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
4497         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
4498         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
4499         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
4500         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
4501         the above.
4502         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
4503         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
4504         one more pseudo to further improve code generation.
4505         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
4506         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
4507         inside UNSPEC.
4508         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
4509         * config/frv/frv.c (frv_legitimate_address_p): Added
4510         allow_double_reg_p argument.  Adjust all callers.  Use it to
4511         decide whether to enable double-register indirect addressing.
4512         (frv_funcdesc_alias_set): Remove.
4513         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
4514         register.  Emit movdi_ldd.
4515         (ldd_address_operand): New.
4516         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
4517         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
4518         (PREDICATE_CODES): Add ldd_address_operand.
4519         * config/frv/frv.md (movdi_ldd): New.
4520         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
4521         intermediate computations if possible.
4522         (symGOTOFF2reg_i): Fix harmless typo.
4523         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
4524         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
4525         relocated p_vaddr to vaddr type.
4526         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
4527         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
4528         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
4529         MEM, or use a funcdesc alias set.  Use regular move instead of
4530         ldd.
4531         (dbl_memory_one_insn_operand): Recognize function descriptors by
4532         type or by alias set, and don't split them.
4533         * config/frv/frv.md (call, call_value): Never use call_internal
4534         for fdpic.
4535         (call_internal, call_value_internal): Never match for FDPIC.
4536         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
4537         call_value_fdpicsi): Require FDPIC.
4538         (ldd): Removed.
4539         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
4540         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
4541         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
4542         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
4543         FDPIC.  Compute data base address.
4544         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
4545         before the other self-specs are processed.
4546         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
4547         Build with -fPIC.
4548         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
4549         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
4550         inhibit_libc is defined.
4551         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
4552         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
4553         __FRV_FDPIC__.
4554         (__RELOC_POINTER): Define.
4555         (_Unwind_IteratePhdrCallback): Use it.
4556         * config/frv/frv.h (Twrite): Define.
4557         (TRANSFER_FROM_TRAMPOLINE): Use it.
4558         * config/frv/linux.h (INVOKE__main): Undefine.
4559         (Twrite): Override.
4560         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
4561         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
4562         (-mlibrary-pic): Emphasize that this option generates EABI code.
4563         (-mcpu): Add fr550.
4564         (-mpack): Remove.
4565         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
4566         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
4567         and CONSTs in FDPIC mode.
4568         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
4569         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
4570         * config/frv/frv.c (move_source_operand): Don't accept symbolic
4571         constants.
4572         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
4573         rather than 'i' constraint for the 2-instruction alternative.
4574         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
4575         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
4576         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
4577         EXTRA_CONSTRAINT_FOR_Y.
4578         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
4579         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
4580         (addsi3): Change 'Y' constraint to 'Q'.
4581         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
4582         * reload.c (CONST_POOL_OK_P): New macro.
4583         (find_reloads): Use it to decide whether a constant can be forced
4584         into memory.
4585         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
4586         constant satisfies got12_operand.
4587         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
4588         (frv_legitimate_address_p): Check for valid unspec offsets using
4589         got12_operand rather than frv_legitimate_fdpic_operand_p.
4590         (frv_legitimate_fdpic_operand_p): Delete.
4591         (frv_emit_movsi): Abort if we try to use the FDPIC register during
4592         or after reload.
4593         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
4594         TARGET_FDPIC.
4595         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
4596         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
4597         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
4598         (frv_fdpic_fptr_operand): Don't declare here.
4599         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
4600         rather than fdpic_got12_operand.
4601         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
4602         got12_operand and const_unspec_operand.
4603         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
4604         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
4605         (symbolic_operand): Remove.
4606         (const_unspec_operand): New predicate.
4607         * config/frv/frv.md (*movsi_got): Use got12_operand.
4608         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
4609         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
4610         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
4611         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
4612         * config/frv/frv.c (frv_unspec): New structure.
4613         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
4614         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
4615         validate CONST indices.  Use frv_output_const_unspec to print them.
4616         (frv_print_operand): Update call to unspec_got_name.  Use
4617         frv_output_const_unspec to print constant unspecs.
4618         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
4619         Reject UNSPECs otherwise.
4620         (unspec_got_name): Take the relocation number as argument, not an
4621         rtx containing it.
4622         (frv_output_addr_const_extra): Remove, replacing with...
4623         (frv_output_const_unspec): ...this new function.
4624         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
4625         (gpr_or_int12_operand): Use fdpic_got12_operand.
4626         (dbl_memory_one_insn_operand): Likewise.
4627         (fdpic_got12_operand): Use frv_const_unspec_p.
4628         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
4629         are already legitimate.  Use frv_small_data_reloc_p when deciding
4630         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
4631         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
4632         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
4633         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
4634         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
4635         label, for real this time.
4636         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
4637         representation of visibility.
4638         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
4639         such.
4640         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
4641         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
4642         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
4643         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
4644         it was explicitly disabled.
4645         (frv_stack_info): There is no need to save the link register in every
4646         frame unless TARGET_LINKED_FP is true.
4647         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
4648         frame pointer if the stack pointer might change value.
4649         (frv_return_addr_rtx): Check and process "count" argument.
4650         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
4651         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
4652         (frv_find_base_term): Declare.
4653         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
4654         (FIND_BASE_TERM): Define.
4655         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
4656         small_data_register_operand, small_data_symbolic_operand.  Add
4657         symbolic_operand.
4658         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
4659         (frv_print_operand_memory_reference, output_move_single): Remove
4660         special handling for unlegitimized sdata addresses.
4661         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
4662         and symbolic addresses.
4663         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
4664         (frv_find_base_term): New function.
4665         (int_2word_operand): Check specifically for symbolic address constants.
4666         (pic_register_operand, pic_symbolic_operand): Delete.
4667         (small_data_register_operand, small_data_symbolic_operand): Delete.
4668         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
4669         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
4670         (move_source_operand): Only accept CONSTs if they're a two-insn
4671         symbolic constant.
4672         (fdpic_got12_operand): Don't require TARGET_FDPIC.
4673         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
4674         using gen_symGOTOFF2reg*.
4675         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
4676         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
4677         themselves a cost of 3 insns.
4678         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
4679         Change predicate to symbolic_operand.
4680         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
4681         (*movsi_lda_sdata): Delete.
4682         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
4683         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
4684         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
4685         frv-*-*linux*.
4686         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
4687         label.
4688         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
4689         -multilib-library-pic.
4690         (LINK_SPEC): Add -z text for -mfdpic.
4691         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
4692         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
4693         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
4694         Override.
4695         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
4696         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
4697         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
4698         crtstuff-generated files.
4699         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
4700         * config.gcc: Add frv-*-*linux*.
4701         * config/frv/linux.h, config/frv/t-linux: New.
4702         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
4703         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
4704         when -mfdpic even if a linker script is explicitly listed.
4705         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
4706         * config/frv/frv.c (frv_override_options): Clear asm_out
4707         unaligned_op for SImode on FDPIC.
4708         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
4709         argument passed to decl_readonly_section.
4710         (frv_assemble_integer): Revert 2003-09-30's change, but make the
4711         whole block run with FDPIC even with -fno-PIC.
4712         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
4713         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
4714         symbol or label plus offset to memory.
4715         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
4716         GOTOFF and GPREL for LABEL_REF.
4717         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
4718         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
4719         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
4720         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
4721         * doc/invoke.texi: Document them.
4722         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
4723         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
4724         (frv_splittable_got_operand): Removed.
4725         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
4726         LO_SUM.  Add comments.
4727         (frv_override_options): Moved enabling of FDPIC to
4728         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
4729         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
4730         (frv_legitimize_fdpic_address): Don't duplicate logic in
4731         frv_emit_movsi.
4732         (frv_gen_GPsym2reg): New.
4733         (unspec_got_name): Added gprel.
4734         (frv_expand_fdpic_call): Add support for inlining PLTs.
4735         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
4736         (gpr_or_int12_operand): Added GPREL12.
4737         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
4738         (small_data_symbolic_operand): Fail if FDPIC.
4739         (fdpic_splittable_got_operand): Removed.
4740         (fdpic_got12_operand): Added GPREL12.
4741         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
4742         when appropriate.  Fix sdata GOTOFF.
4743         (frv_legitimate_constant_p): Require legitimate PIC operand for
4744         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
4745         (frv_assemble_integer): Move FDPIC funcdesc handling out of
4746         flag_pic case.
4747         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
4748         frv_assemble_integer fails.
4749         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
4750         (SUBTARGET_DRIVER_SELF_SPECS): New.
4751         (ASM_SPEC): Don't pass -mno-fdpic.
4752         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
4753         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
4754         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
4755         -multilib-library-pic.
4756         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
4757         condexec_si_media_operator, condexec_sf_add_operator and
4758         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
4759         and condexec_sf_unary_operator.
4760         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
4761         New.
4762         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
4763         movsi_internal.  Give them internal names.  movsi_got has type
4764         int.
4765         (fdpic got splitters): Remove.
4766         (symGPREL2reg, symGPREL2reg_hilo): New.
4767         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
4768         to -mlibrary-pic.  Map -multilib-library-pic to it.
4769         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
4770         Document.
4771         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
4772         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
4773         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
4774         (frv_cannot_force_const_mem): New function.
4775         (const_small_data_p, plus_small_data_p): Update comments on sdata
4776         on FDPIC.
4777         (frv_override_options): Set flag_pie for FDPIC too.
4778         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
4779         call-saved registers on FDPIC.
4780         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
4781         don't force LR to be preserved.
4782         (frv_expand_prologue): Likewise.
4783         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
4784         (frv_frame_pointer_required): Don't force it just because the
4785         FDPIC register is used.
4786         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
4787         operand only if !condexec_p.
4788         (frv_legitimize_address): Return the FDPIC-legitimized address.
4789         Don't match small data here on FDPIC.
4790         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
4791         symbols.  Use TRUE/FALSE instead of 1/0.
4792         (frv_local_funcdesc_p): New.
4793         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
4794         immediates when possible.
4795         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
4796         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
4797         an UNSPEC_GOT.
4798         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
4799         12-bit immediates when possible.
4800         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
4801         are not legitimate pic operands.
4802         (frv_in_small_data_p): Re-enable for FDPIC.
4803         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
4804         (FRV_GLOBAL_P): Removed.
4805         * config/frv/frv.md: Add modes to CONSTs.
4806         (movsi_got): New.
4807         (movsi_lo_sum_got): Use separate matches instead of match_dup.
4808         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
4809         (fdpic splittable operations): Match on flag_pic != 1.
4810         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
4811         * config/frv/frv.c (frv_asm_out_constructor,
4812         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
4813         bytes, not bits.
4814         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
4815         * config/frv/frv.c (frv_assemble_integer): Reject complex
4816         expressions referencing function SYMBOL_REFs.
4817         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
4818         (move_source_operand): Reject CONSTs that reference function
4819         SYMBOL_REFs on FDPIC.
4820         (frv_emit_movsi): If we get such a CONST, break it up.
4821         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
4822         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
4823         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
4824         MEM.
4825         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
4826         (frv_trampoline_size): Increase for FDPIC.
4827         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
4828         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
4829         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
4830         Disable use of GOTOFF for now.
4831         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
4832         Disable use of small data in FDPIC for now.
4833         (frv_asm_output_mi_thunk): Implement for FDPIC.
4834         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
4835         * config/frv/frv.c (frv_asm_out_constructor): Use
4836         frv_assemble_integer for FDPIC pointers.
4837         (frv_asm_out_destructor): Likewise.
4838         * config/frv/frv.md (ldd): Fix order of operands.  Use
4839         address_operand for input.
4840         2003-09-18  DJ Delorie  <dj@redhat.com>
4841         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
4842         (unspec_got_name): Correct typo.
4843         (frv_emit_movsi): Pre-expand splittable GOTs.
4844         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
4845         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
4846         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
4847         * config/frv/t-frv: Add -mfdpic multilibs.
4848         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
4849         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
4850         * config/frv/frv.c (frv_override_options): -mfdpic assumes
4851         flag_pic, default to 32-bit pics, require DWORD ops.
4852         (frv_override_options): Add W and Z constraints.
4853         (frv_expand_prologue): No pic prologue for -mfdpic.
4854         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
4855         (frv_print_operand_memory_reference): Handle GOT constants.
4856         (frv_legitimate_address_p): Allow GOT constants.
4857         (frv_legitimize_address): Handle GOT addresses too.
4858         (frv_legitimate_fdpic_operand_p): New.
4859         (frv_legitimize_fdpic_address): New.
4860         (unspec_got_name): New.
4861         (frv_output_addr_const_extra): New.
4862         (frv_expand_fdpic_call): New.
4863         (frv_fdpic_fptr_operand): New.
4864         (gpr_or_int12_operand): Handle GOT operands.
4865         (int_2word_operand): Handle GOT operands.
4866         (fdpic_operand): New.
4867         (fdpic_splittable_got_operand): New.
4868         (fdpic_got12_operand): New.
4869         (frv_emit_movsi): Handle GOT operands.
4870         (frv_assemble_integer): -mfdpic doesn't use rofixups.
4871         (frv_print_operand): Support 'g' code for GOT operands.
4872         * config/frv/frv-protos.h: Add prototypes as needed.
4873         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
4874         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
4875         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
4876         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
4877         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
4878         R_FRV_GOTOFFLO): New.
4879         (movsi_high_got, movsi_lo_sum_got): New.
4880         (*movsi_pic): Don't use this splitter for -mfdpic.
4881         (addsi3): Allow GOT references also.
4882         (call, call_value): Handle -mfdpic separately.
4883         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
4884         call_value_fdpicsi): New.
4885         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
4886         symGOTOFF2reg_i): New.
4887         * config/frv/frv.h (MASK_FDPIC): New.
4888         (TARGET_FDPIC): New.
4889         (TARGET_SWITCHES): Add -mfdpic.
4890         (FDPIC_FPTR_REGNO): New.
4891         (FDPIC_REGNO): New.
4892         (OUR_FDPIC_REG): New.
4893         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
4894         FDPIC_CALL_REGS.
4895         (REG_CLASS_NAMES): Likewise.
4896         (REG_CLASS_CONTENTS): Likewise.
4897         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
4898         (EXTRA_CONSTRAINT): Add it here.
4899         (FRV_GLOBAL_P): New.
4900         (OUTPUT_ADDR_CONST_EXTRA): New.
4901
4902 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
4903
4904         * config/sparc/sparc.h: Remove commented-out definitions of
4905         TARGET_EDOM and GEN_ERRNO_RTX.
4906
4907 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
4908
4909         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
4910         df_analyse with df_analyze.
4911
4912 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
4913
4914         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
4915         beginning of block.
4916
4917 2004-02-23  James E Wilson  <wilson@specifixinc.com>
4918
4919         * calls.c (precompute_arguments): Update comment.
4920
4921 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
4922
4923         * et-forest.c: Replace et_occurences with et_occurrences.
4924
4925 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
4926
4927         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
4928         with iv_analyze.
4929
4930 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
4931
4932         * config/i386/i386.c: Rename pni to sse3.
4933         * config/i386/i386.h: Likewise.
4934         * config/i386/i386.md: Likewise.
4935         * config/i386/pmmintrin.h: Likewise.
4936         * doc/extend.texi: Likewise.
4937         * doc/invoke.texi: Likewise.
4938
4939 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
4940             Kazu Hirata  <kazu@cs.umass.edu>
4941
4942         Remove -fwritable-strings.
4943         * c-common.c (fix_string_type): Don't check
4944         flag_writable_strings.
4945         (fix_string_type): Likewise.
4946         * c-opts.c (set_std_c89): Don't initialize
4947         flag_writable_strings.
4948         (set_std_c99): Likewise.
4949         * common.opt (fwritable-strings): Remove.
4950         * flags.h: Remove the external declaration of
4951         flag_writable_strings.
4952         * opts.c (common_handle_option) <OPT_fwritable_strings>:
4953         Remove.
4954         * toplev.c (flag_writable_strings): Remove.
4955         (f_options): Remove an entry for writable-strings.
4956         * varasm.c (const_hash_1) <STRING_CST>: Don't check
4957         flag_writable_strings.
4958         (compare_constant) <STRING_CST>: Likewise.
4959         (build_constant_desc): Likewise.
4960         * config/darwin.c (machopic_select_section): Likewise.
4961         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
4962         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
4963         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
4964         * config/mips/mips.c (mips_select_section): Likewise.
4965         (mips_encode_section_info): Likewise.
4966         * config/pa/pa.c (pa_select_section): Likewise.
4967         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
4968         * config/v850/v850.c (v850_select_section): Likewise.
4969         * doc/invoke.texi (-fwritable-strings): Remove.
4970         (-fno-const-strings): Don't mention -fwritable-strings.
4971         * doc/trouble.texi: Don't mention -fwritable-strings.
4972
4973 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
4974
4975         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
4976
4977 2004-02-23  Dale Johannesen  <dalej@apple.com>
4978
4979         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
4980         (movdf_hardfloat64):  Ditto.
4981         (movdf_softfloat64):  Ditto.
4982
4983 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
4984         * config/rs6000/rs6000.c (function_arg): call to
4985         rs6000_mixed_function_arg for DFmode moved to allow
4986         normal DFmode incoming register assignment.
4987
4988 2004-02-23  Dale Johannesen  <dalej@apple.com>
4989
4990         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
4991         (movdf_hardfloat64):  Ditto.
4992
4993 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
4994
4995         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
4996         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
4997         copyright.
4998
4999 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
5000
5001         PR c/14156
5002         * c-typeck.c (c_expand_return): Change check for VAR_DECL
5003         to use DECL_P instead.
5004
5005         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
5006         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
5007
5008 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
5009
5010         * Makefile.in (opts.o): Depend on target.h.
5011         * opts.c (decode_options): Use targetm.default_short_enums
5012         instead of DEFAULT_SHORT_ENUMS.
5013         * system.h (DEFAULT_SHORT_ENUMS): Poison.
5014         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
5015         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
5016         * target.h (gcc_target): Add default_short_enums.
5017         * config/cris/cris.h: Remove a comment about
5018         DEFAULT_SHORT_ENUMS.
5019         * config/ip2k/ip2k.h: Likewise.
5020         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
5021         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
5022
5023 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
5024             Falk Hueffner  <falk@debian.org>
5025
5026         PR c/14188
5027         * builtins.c (expand_builtin_va_arg): Emit an informative message
5028         if a trap is generated.
5029         * c-typeck.c (build_function_call): Likewise.
5030
5031 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
5032
5033         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
5034         fopen.
5035         * libgcov.c: Include sys/stat.h.
5036         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
5037         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
5038         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
5039         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
5040
5041 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
5042
5043         * reorg.c: Remove comments about dead ports.
5044
5045 2004-02-22  Christopher Faylor  <cgf@redhat.com>
5046
5047         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
5048         extra host object file when targetting cygwin rather than generic
5049         object files.
5050
5051 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
5052
5053         Merge from tree-ssa:
5054         2003-11-20  Richard Henderson  <rth@redhat.com>
5055
5056                 * tree-inline.c (insert_decl_map): New.
5057                 (remap_decl, remap_type, remap_block, copy_body_r,
5058                 initialize_inlined_parameters, declare_return_variable,
5059                 remap_save_expr): Use it.
5060
5061         * function.c (copy_body_r): Add mapping from id->ret_label to
5062         id->ret_label.  Revert test for ret_label.
5063
5064 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
5065
5066         * genoutput.c (process_template): Strip trailing whitespace in @
5067         templates and issue a warning if there was any.
5068
5069 2004-02-21  Christopher Faylor  <cgf@redhat.com>
5070
5071         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
5072         object file when targetting cygwin.
5073         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
5074         overridden by top-level Makefile.
5075
5076 2004-02-21  Roger Sayle  <roger@eyesopen.com>
5077
5078         * config/i386/i386.c (standard_80387_constant_p): Also prefer
5079         the x87's load constant instructions when optimizing for size.
5080
5081 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
5082
5083         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
5084         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
5085         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
5086         * fold-const.c: Likewise.
5087         * simplify-rtx.c: Likewise.
5088
5089 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
5090
5091         * combine.c (can_combine_p): Don't ignore SETs marked with
5092         REG_EH_REGION notes.
5093         (try_combine): When attemting to fix unrecognized insns, don't
5094         split a PARALLEL that contains the original i2.
5095
5096 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
5097
5098         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
5099         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
5100         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
5101         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
5102         (vector, pixel, bool): #define to __vector, __pixel and __bool.
5103         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
5104         portion of header.
5105         (__altivec_link_error_invalid_argument): Remove prototype; will use
5106         __builtin_altivec_compiletime_error("vec_*") instead.
5107         (vec_*): Fix/complete set of available operation overloads given the
5108         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
5109         cv-correctness of pointer arguments; in C, always check for correct
5110         argument types before macro expansion.
5111         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
5112         defining Darwin/PowerPC-specific '-f[no-]altivec' and
5113         '-W[no-]altivec-long-deprecated' switches.
5114         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
5115         '__vector', '__pixel' and '__bool' macros using
5116         '__attribute__((altivec(...)))' types.
5117         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
5118         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
5119         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
5120         New type nodes.
5121         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
5122         handling '-W[no-]altivec-long-deprecated'.
5123         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
5124         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
5125         altivec_expand_dst_builtin): Remove casts from integer literals.
5126         (altivec_expand_builtin): Likewise; handle expansion of new
5127         '__builtin_altivec_compiletime_error' function.
5128         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
5129         types, and make them distinct from other vector types; register
5130         '__builtin_altivec_compiletime_error' function.
5131         (print_operand): For 'P', print a full target register name instead of
5132         merely its number.
5133         (rs6000_attribute_table): Add "altivec" attribute.
5134         (rs6000_handle_altivec_attribute): New function.
5135         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
5136         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
5137         maps to).
5138         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
5139         declare.
5140         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
5141
5142 2004-02-20  James E Wilson  <wilson@specifixinc.com>
5143
5144         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
5145         check.
5146         (shift_mix4left+2): Delete redundant pattern.
5147
5148 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
5149
5150         * alias.c (OUTGOING_REGNO): Don't define the default.
5151         * builtins.c (OUTGOING_REGNO): Likewise.
5152         (INCOMING_REGNO): Likewise.
5153         (apply_args_register_offset): Always use OUTGOING_REGNO.
5154         * combine.c (OUTGOING_REGNO): Likewise.
5155         * sibcall.c (OUTGOING_REGNO): Likewise.
5156         * defaults.h (INCOMING_REGNO): Provide the default.
5157         (OUTGOING_REGNO): Likewise.
5158
5159 2004-02-21  Jan Hubicka  <jh@suse.cz>
5160
5161         * params.def (max-peeled-insns, max-completely-peeled-insns,
5162         max-once-peeled-insns): Set to 400.
5163
5164 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5165
5166         PR c++/12007
5167         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
5168         are set for parameters before outputing debugging information.
5169
5170 2004-02-20  Falk Hueffner  <falk@debian.org>
5171
5172         PR target/14201
5173         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
5174         numbers.
5175
5176 2004-02-20  Per Bothner  <per@bothner.com>
5177
5178         * input.h:  Don't #include line-map.h.  It may cause link problems
5179         with undefined linemap_line_start when line-map.h is included but
5180         line-map.o is not linked, as currently happens with gengtype on
5181         compilers that don't support inline.
5182         * toplev.c:  So we do have to explicitly #include line-map.h here.
5183
5184 2004-02-20  Richard Henderson  <rth@redhat.com>
5185
5186         * doc/invoke.texi: Add -Wvariadic-macros.
5187
5188 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
5189
5190         * haifa-sched.c (sched_emit_insn): Remove.
5191         * sched-int.h: Remove the corresponding prototype.
5192
5193 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
5194
5195         Revert:
5196         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5197         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
5198         * system.h (DEFAULT_SHORT_ENUMS): Poison.
5199         * config/cris/cris.h: Remove a comment about
5200         DEFAULT_SHORT_ENUMS.
5201         * config/ip2k/ip2k.h: Likewise.
5202         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
5203
5204 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
5205             Tom Tromey  <tromey@redhat.com>
5206
5207         * doc/install.texi: Moved --disable-libgcj and
5208         --with-system-zlib documentation to new section for
5209         Java-specific options.
5210         Added explicit Cross-Compiler-Specific Options subheading.
5211         Added section for Java-specific options.
5212
5213 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
5214
5215         * doc/install.texi (Building the Ada compiler): Remove
5216         example.
5217
5218 2004-02-20  James E Wilson  <wilson@specifixinc.com>
5219
5220         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
5221
5222 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
5223
5224         * gcc.c (process_command): Allow translation of the copyright
5225         symbol but not the rest of the copyright message.
5226         * gcov.c (print_version): Likewise.  Allow translation of the
5227         message about warranty.
5228
5229 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
5230
5231         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
5232         predicate.
5233         ("*andsi_clear"): Tweak constraints to not match postincrement.
5234         Adjust the predicate to exclude a volatile memory reference.
5235         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
5236         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
5237
5238 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
5239
5240         * move-if-change: Remove.
5241         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
5242         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
5243         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
5244         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
5245         (s-gtyp-gen, s-iov): Use the top level move-if-change.
5246         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
5247
5248 2004-02-19  James E Wilson  <wilson@specifixinc.com>
5249
5250         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
5251         for operand2.  Add condition that requires register_operand operand2
5252         before reload.
5253
5254 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
5255             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5256
5257         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
5258         * config/mips/mips.md: Expand comment above unaligned loads and stores.
5259
5260 2004-02-19  Richard Henderson  <rth@redhat.com>
5261
5262         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
5263         * tree.c (build0, build1, build2, build3, build4): Split out from...
5264         (build): ... here.  Call them.
5265         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
5266
5267         * convert.c (convert_to_integer): Remove extra build argument.
5268         * tree-inline.c (expand_call_inline): Likewise.
5269
5270 2004-02-19  Richard Henderson  <rth@redhat.com>
5271
5272         * c-opts.c (warn_variadic_macros): New.
5273         (c_common_handle_option): Set it.
5274         (sanitize_cpp_opts): Copy it to cpp_opts.
5275         * c.opt (Wvariadic-macros): New.
5276         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
5277         * cppinit.c (cpp_create_reader): Initialize it.
5278         * cppmacro.c (parse_params): Check it.
5279
5280 2004-02-19  David Daney <ddaney@avtrex.com>
5281
5282         PR preprocessor/14198
5283         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
5284         builtin_assert ("machine=mips")
5285
5286 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5287
5288         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
5289         * system.h (DEFAULT_SHORT_ENUMS): Poison.
5290         * config/cris/cris.h: Remove a comment about
5291         DEFAULT_SHORT_ENUMS.
5292         * config/ip2k/ip2k.h: Likewise.
5293         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
5294
5295 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
5296
5297         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
5298         when passing single SFmode quantities in general registers,
5299         put them in the high half.
5300
5301 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
5302
5303         * doc/md.texi (Standard Names): Document additional dependency on
5304         fix pattern.
5305
5306         * optabs.c (ftruncify): Remove.
5307         (expand_fix): Manually inline ftruncify above.
5308         (can_fix_p): Add FIXME note.
5309
5310 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
5311
5312         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
5313         spe_fixuns_truncsfsi2.
5314
5315         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
5316         fixuns_truncsfsi2.
5317
5318 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
5319
5320         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
5321         * testsuite/gcc.dg/20040219-1.c: New test.
5322
5323 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
5324
5325         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
5326         "*subsf3_cconly"): Subtraction is not commutative.
5327
5328 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
5329
5330         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
5331         (sdbout_symbol): If called before sdbout_init, queue DECL for
5332         later and return.
5333         (sdbout_init): Set sdbout_initialized true, process decls
5334         queued earlier by sdbout_symbol.
5335         (sdbout_finish): Use size_t for index variable.
5336
5337 2004-02-19  Jeff Law  <law@redhat.com>
5338
5339         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
5340         for unordered comparison codes.
5341
5342 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
5343
5344         * reload1.c (reload): Correct comment.
5345         (scan_paradoxical_subregs): Remove #if 0 and old comment.
5346         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
5347         register variables are not used by reload.
5348
5349 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
5350
5351         PR target/14209
5352         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
5353         constraints to not match postincrement.  Adjust the predicate to
5354         exclude a volatile memory reference.
5355
5356 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5357
5358         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
5359
5360 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5361
5362         * hooks.c (hook_void_tree_int): Remove.
5363         (hook_void_constcharptr): Likewise.
5364         (hook_int_void_0): Likewise.
5365         * hooks.h: Remove the prototypes for the above three
5366         functions.
5367         * targhooks.c (hook_bool_machine_mode_true): Remove.
5368         * targhooks.h: Remove the prototype for
5369         hook_bool_machine_mode_true.
5370
5371 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5372
5373         * emit-rtl.c (subreg_realpart_p): Remove.
5374         (reorder_insns_with_line_notes): Likewise.
5375         (end_full_sequence): Likewise.
5376         * rtl.h: Remove the prototype for the above functions.
5377
5378 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5379
5380         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
5381         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
5382         config/iq2000/iq2000.h, config/m32r/m32r.h,
5383         config/pdp11/pdp11.h, config/sparc/sparc.h,
5384         config/xtensa/xtensa.h: Remove commented-out or useless
5385         definitions of CASE_VECTOR_PC_RELATIVE.
5386
5387 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5388
5389         * loop.c (all_sets_invariant_p): Remove.
5390
5391 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
5392
5393         PR target/12916
5394         * config/sparc/sparc.h (NPARM_REGS): Delete.
5395         (BASE_RETURN_VALUE_REG): Likewise.
5396         (BASE_OUTGOING_VALUE_REG): Likewise.
5397         (BASE_PASSING_ARG_REG): Likewise.
5398         (BASE_INCOMING_ARG_REG): Likewise.
5399         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
5400         TARGET_ARCH64, not TARGET_V9.
5401         (function_arg_slotno): Dispatch based on the mode class.
5402         Handle vector modes like floating-point modes.
5403         (function_arg_record_value_1): Handle vector types like
5404         floating-point types.
5405         (function_arg_record_value_2): Likewise.
5406         Calculate regno after mode transformation.
5407         (function_arg): Handle vector modes like floating-point modes.
5408         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
5409         If ARCH64, do not recheck alignment.
5410         (function_arg_pass_by_reference): Reorder the conditions.
5411         (sparc_return_in_memory): Move after function_arg_padding.
5412         Implement calling conventions for vector modes.
5413         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
5414         (function_value): Move scope of 'regbase'.
5415         Implement calling conventions for vector modes.
5416         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
5417         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
5418         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
5419         the argument is passed by reference.
5420         (sparc_type_code): Handle vector types.
5421
5422 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
5423
5424         * function.c (assign_parms): When building decl_rtl for
5425         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
5426
5427 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
5428
5429         * expr.c (is_aligning_offset): Check if we are aligning the
5430         expressions's address over BIGGEST_ALIGNMENT in bytes, not
5431         in bits.
5432
5433 2003-02-18  Matt Austern  <austern@apple.com>
5434
5435         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
5436         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
5437         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
5438         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
5439         spec string.
5440         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
5441
5442 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
5443
5444         * dwarf2out.c (loclabel_num): Move outside #ifdef
5445         DWARF2_DEBUGGING_INFO and mark with GTY(()).
5446         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
5447         Mark with GTY(()).
5448         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
5449         Allocate memory with ggc_alloc.  No need to copy anything.
5450         (ia64_hpux_file_end): Update to match.
5451
5452 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
5453
5454         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
5455         by default.
5456
5457 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
5458
5459         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
5460         ("divmodtisi3"): Likewise.
5461         ("udivmoddi4", "udivmodtidi3"): Likewise.
5462         ("divmodsi4", "divmoddisi3"): Likewise.
5463         ("udivmodsi4", "udivmoddisi3"): Likewise.
5464         ("udivsi3", "umodsi3"): Likewise.
5465
5466 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
5467
5468         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
5469         placeholder insn when chunkifying the pool.
5470
5471 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5472
5473         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
5474         generating PIC code.
5475
5476 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
5477
5478         * config/h8300/h8300-protos.h: Add a prototype for
5479         h8300_expand_branch.
5480         * config/h8300/h8300.c (h8300_expand_branch): New.
5481         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
5482         bgtu, beq, bne): Call h8300_expand_branch().
5483
5484 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
5485
5486         * config/h8300/h8300-protos.h: Add prototypes for
5487         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
5488         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
5489         (h8300_hard_regno_mode_ok): Likewise.
5490         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
5491         h8300_hard_regno_nregs().
5492         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
5493
5494 2004-02-18  Per Bothner  <per@bothner.com>
5495
5496         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
5497         partly reverts my 2003-10-01 change, because we're back to logically
5498         including <command line> inside the main line.
5499         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
5500         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
5501         Fixes PR preprocessor/14103.
5502
5503         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
5504         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
5505         (cpp_push_include):  Don't need to increment pfile's line field.
5506         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
5507
5508         * c-ppoutput.c (print struct):  New first_time field.
5509         (init_pp_output):  Set print.first_time.
5510         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
5511         which is set also for (say) <command line>.  Clear print.first_time.
5512
5513         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
5514         does not match the code, so fix both.
5515         (should_stack_file):  Inline include_pch_p function.
5516         (include_pch_p):  Remove pointless function.
5517
5518         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
5519
5520 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
5521
5522         * config/h8300/h8300.md (four define_peephole2's): Use
5523         h8300_regs_ok_for_stm().
5524
5525 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
5526
5527         * config/h8300/h8300-protos.h: Update the prototype for
5528         expand_a_rotate().
5529         * config/h8300/h8300.c (expand_a_rotate): Remove the first
5530         argument.
5531         * config/h8300/h8300.md: Update all callers.
5532
5533 2004-02-18  Jan Hubicka  <jh@suse.cz>
5534
5535         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
5536         floats.
5537         (simplify_binary_operation): Deal with logicals on floats.
5538
5539         * i386.md (SSE fabs splitters): Emit new patterns.
5540         (SSE cmov splitters): Likewise.
5541         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
5542         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
5543         subregs.
5544         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
5545         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
5546
5547 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
5548
5549         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
5550         by hand.
5551         (output_a_rotate): Tweak a comment.
5552         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
5553         (*rotlhi3_1): Change to rotlhi3_1.
5554         (*rotlsi3_1): Change to rotlsi3_1.
5555
5556 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
5557
5558         PR target/13866
5559         * arm.c (load_multiple_operation): Don't insist that the source reg
5560         of a post-increment component is the same as the destination.
5561         (store_multiple_operation): Likewise.
5562
5563 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
5564
5565         * config/h8300/h8300.md: Move movsf patterns into one section
5566         of the file.
5567
5568 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
5569
5570         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
5571         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
5572         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
5573         config/mips/linux64.h, config/pa/pa-64.h,
5574         config/rs6000/aix51.h, config/rs6000/aix52.h,
5575         config/rs6000/spe.md, config/sparc/linux.h,
5576         config/sparc/linux64.h: Update copyright.
5577
5578 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
5579
5580         * config/h8300/h8300.md: Move push patterns into one
5581         section of the file.
5582
5583 2004-02-18  Mark Mitchell <mark@codesourcery.com>
5584
5585         PR c++/11326
5586         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
5587         fntype.
5588
5589 2004-02-18  Paul Brook  <paul@codesourcery.com>
5590
5591         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
5592
5593 2004-02-18  Paul Brook  <paul@codesourcery.com>
5594
5595         PR debug/12934
5596         * dwarf2out.c (loc_descriptor_from_tree): Handle
5597         EXPR_WITH_FILE_LOCATION.
5598
5599 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
5600
5601         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
5602         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
5603         trailing whitespace from instructions.
5604
5605 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
5606
5607         * configure.ac: When generating auto-build.h, pass
5608         --enable-languages to the sub-configure.
5609         Put quotes around ${program_transform_name} when generating
5610         name of as, ld, nm, objdump.
5611         * configure: Regenerate.
5612
5613 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
5614
5615         * Makefile.in (s-check, s-config, s-conditions, s-flags)
5616         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
5617         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
5618         (s-preds, s-iov): Do not depend on move-if-change.
5619
5620 2004-02-17  James E Wilson  <wilson@specifixinc.com>
5621
5622         * caller-save.c (insert_restore): Pass mem through copy_rtx.
5623         (insert_save): Likewise.
5624
5625 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5626
5627         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
5628         warning.
5629
5630 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5631
5632         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
5633         *one_cmplsi2_h8300.
5634         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
5635
5636 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5637
5638         * config/h8300/h8300-protos.h: Update the prototype of
5639         fix_bit_operand().
5640         * config/h8300/h8300.c (fix_bit_operand): Remove the second
5641         argument "what".
5642         * config/h8300/h8300.md: Update all callers.
5643
5644 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5645
5646         * config/h8300/h8300.c (fix_bit_operand): Change the name of
5647         the last argument to "code" from "type".
5648
5649 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5650
5651         * config/h8300/h8300.c: Remove an extern declaration of
5652         rtx_equal_function_value_matters.
5653
5654 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5655
5656         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
5657         by hand.
5658         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
5659         (*iorqi3_1): Change to iorqi3_1.
5660         (*xorqi3_1): Change to xorqi3_1.
5661
5662 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5663
5664         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
5665         typos.
5666
5667 2004-02-17  Jan Hubicka  <jh@suse.cz>
5668
5669         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
5670
5671 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
5672
5673         PR optimization/14119
5674         * combine.c (try_combine): When attemting to fix unrecognized insns,
5675         don't delete SETs marked with REG_EH_REGION notes.
5676
5677 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
5678
5679         * combine.c (simplify_if_then_else): Do not replace
5680         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
5681         modes differ.
5682
5683 2004-02017  Steven Bosscher  <stevenb@suse.de>
5684
5685         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
5686         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
5687         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
5688         * ada/utils.c: Likewise.
5689         * cp/decl.c: Likewise.
5690         * f/com.c: Likewise.
5691         * java/class.c: Likewise.
5692
5693 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5694
5695         * config/h8300/h8300.md: Fix comment typos.
5696
5697 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5698
5699         * config/mips/t-iris6gld: Renamed to ...
5700         * config/mips/t-irix-gld: ... this.
5701         * config.gcc (mips-sgi-irix6*): Reflect this
5702         (mips-sgi-irix5*): Use it with GNU ld.
5703
5704         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
5705         to ...
5706         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
5707         * config/mips/t-irix-gld: Reflect this.
5708         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
5709
5710         * config/mips/iris5gld.h: New file.
5711         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
5712         Only use collect2 without gas.
5713
5714         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
5715         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
5716         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
5717         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
5718
5719         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
5720         * config/mips/iris5.h: ... here.
5721
5722         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
5723         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
5724         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
5725
5726         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
5727         using irix_startfile_spec, irix_endfile_spec.
5728
5729 2004-02-16  Gunther Nikl  <gni@gecko.de>
5730
5731         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
5732
5733 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5734
5735         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
5736         insns by hand.
5737
5738 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5739
5740         * cfghooks.c (split_edge): Speed up updating of dominators.
5741
5742 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
5743
5744         PR c++/11326
5745         * c-common.c (flag_abi_version): Remove.
5746         * c-common.h (flag_abi_version): Likewise.
5747         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
5748         * c.opt (fabi-version): Remove.
5749         * calls.c (expand_call): Always pass a function type to
5750         struct_value_rtx.  Use convert_memory_address.
5751         * common.opt (fabi-version): Add it.
5752         * flags.h (flag_abi_version): Likewise.
5753         (abi_version_at_least): New macro.
5754         * opts.c (common_handle_option): Add OPT_fabi_version.
5755         * toplev.c (flag_abi_version): Define it.
5756         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
5757         New function.
5758         (ia64_output_mi_thunk): Use it.
5759         (ia64_struct_value_rtx): Likewise.
5760
5761 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5762
5763         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
5764         Don't generate insns by hand.
5765
5766 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
5767
5768         PR c++/14178
5769         * doc/invoke.texi (fabi-version): The default is 2 now.
5770
5771 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5772
5773         * loop-iv.c: New file.
5774         * Makefile.in (loop-iv.o): New.
5775         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
5776         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
5777         num_loop_branches): New functions.
5778         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
5779         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
5780         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
5781         get_simple_loop_desc, free_simple_loop_desc): Declare.
5782         (simple_loop_desc): New inline function.
5783         (struct rtx_iv, struct niter_desc): New.
5784         * cfgloopmanip.c (loopify): Specify semantics more precisely.
5785         * expr.c (force_operand): Handle subregs of expressions created by
5786         loop unroller.
5787         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
5788         parts of the initialization to toplev.c
5789         * loop-unroll.c (loop_exit_at_end_p): New.
5790         (unroll_and_peel_loops): Call iv_analysis_done.
5791         (decide_peel_once_rolling, decide_peel_completely,
5792         decide_unroll_stupid, decide_unroll_constant_iterations,
5793         decide_unroll_runtime_iterations, decide_peel_simple,
5794         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
5795         unroll_loop_runtime_iterations): Use new simple loop analysis.
5796         * loop-unswitch.c (compare_and_jump_seq): New.
5797         (may_unswitch_on_p): Renamed to ...
5798         (may_unswitch_on): Use new iv analysis.
5799         (reversed_condition): Export.
5800         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
5801         * predict.c (estimate_probability): Use new simple loop analysis.
5802         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
5803         canon_condition, simplify_using_condition): Declare.
5804         * stor-layout.c (get_mode_bounds): New.
5805         * toplev.c (rest_of_handle_loop2): Some parts of
5806         initialization/finalization moved here from loop-init.c.
5807
5808 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5809
5810         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
5811         pointer.
5812         (CALL_USED_REGISTERS): Likewise.
5813         (REG_ALLOC_ORDER): Likewise.
5814         (REG_CLASS) <GENERAL_REGS>: Likewise.
5815
5816 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
5817
5818         * doc/md.texi (Insn Canonicalizations): Document left-chaining
5819         in associative operators.
5820         * rtlanal.c (commutative_operand_precedence): Create some new
5821         variables.  Prefer a commutative operand on the left, then
5822         binary expressions, then NEG and NOT.
5823
5824 2004-02-16  Matthias Klose  <doko@debian.org>
5825
5826         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
5827         in terms of SHLIB_SOVERSION.
5828         * config/m68k/t-slibgcc-elf-ver: New file.
5829         * config/pa/t-slibgcc-elf-ver: New file.
5830         * config.gcc (m68k-linux, parisc-linux): Use them when not
5831         sjlj exceptions are not configured.
5832
5833 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
5834
5835         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
5836
5837 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
5838
5839         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
5840
5841 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
5842
5843         * doc/sourcebuild.texi: Mention backends.html.
5844
5845 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
5846
5847         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
5848         line-map.c, line-map.h, var-tracking.c: Fix comment
5849         formatting.
5850
5851 2004-02-16  Richard Henderson  <rth@redhat.com>
5852
5853         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
5854
5855         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
5856
5857 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
5858
5859         * config/h8300/h8300.md: Remove unnecessary parallels from
5860         all define_insn and define_split patterns.
5861
5862 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
5863
5864         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
5865         "clobber").
5866
5867 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
5868
5869         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
5870         '%#'.
5871
5872 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
5873
5874         * config/ia64/ia64.c, config/mips/mips.c,
5875         config/mmix/mmix-modes.def: Fix comment typos.
5876
5877 2004-02-15  Roger Sayle  <roger@eyesopen.com>
5878
5879         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
5880         (get_directive_line): Remove unused function prototype.
5881
5882 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
5883
5884         * tree-inline.c (copy_body_r): Do not replace ret_label.
5885
5886 2004-02-14  Jan Hubicka  <jh@suse.cz>
5887
5888         * i386.c (x86_four_jump_limit): New variable.
5889         (k8_avoid_jump_misspredicts): Rename to ...
5890         (ix86_avoid_jump_misspredicts): .. this one.
5891         (ix86_pad_returns): Break out from ...
5892         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
5893         to.
5894         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
5895
5896 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
5897
5898         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
5899         PARALLEL is NULL.
5900
5901 2004-02-14  Per Bothner  <per@bothner.com>
5902
5903         * fix-header.c (line_table):  Move local variable in main to global.
5904         * scan.h (line_table):  Use it.
5905         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
5906         line (recently renamed to src_loc) before calling recognized_function.
5907
5908 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
5909
5910         * Makefile.in: Fix comment typos.
5911
5912 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
5913
5914         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
5915         for start_value when it is directly moved into reg, and factorize
5916         the retrieval of GET_MODE (reg).
5917
5918 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
5919
5920         * config/mips/mips-protos.h (mips_load_got_page): Delete.
5921         (mips_load_got_global): Delete.
5922         (mips_gotoff_page): Declare.
5923         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
5924         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
5925         UNSPEC_LOAD_GOT pattern rather than a MEM.
5926         (*load_got[sd]i): New patterns.
5927         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
5928         (mips_load_got_page, mips_load_got_global): Delete.
5929         (mips_gotoff_page): New function.
5930         (override_options): Don't initialize mips_got_alias_set.
5931
5932 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
5933
5934         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
5935         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
5936         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
5937         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
5938         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
5939         * config/mips/mips.c: Fix some overly-long lines.
5940         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
5941         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
5942
5943 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5944
5945         * configure.ac: Search for as, ld below libexec/gcc.
5946         * configure: Regenerate.
5947
5948 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
5949
5950         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
5951         __builtin_arm_setwcx ().
5952         * config/arm/arm.c (arm_expand_builtin): Generate operands
5953         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
5954
5955 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
5956
5957         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
5958         and "wmuluh" to "wmulsm" and "wmulum", respectively.
5959         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
5960         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
5961         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
5962         (_mm_mulhi_pu16): Likewise.
5963
5964 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
5965
5966         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
5967         DECL_NAME != 0 before dereferencing.
5968
5969 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
5970
5971         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
5972         (s390_output_addr_const_extra): Declare.
5973         (s390_output_pool_entry): Remove FILE * argument.
5974         * config/s390/s390.c (s390_output_symbolic_const): Remove.
5975         (s390_output_addr_const_extra): New function.
5976         (print_operand_address): Call output_addr_const instead of
5977         s390_output_symbolic_const.
5978         (print_operand): Likewise.
5979         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
5980         Remove FILE * argument.
5981         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
5982         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
5983         call.
5984
5985 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5986
5987         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
5988         (struct edge, struct vertex, struct graph): New.
5989         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
5990         free_graph): New functions.
5991
5992 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
5993
5994         * config/mips/mips.md (casesi_internal, casesi_internal_di):
5995         Use ".set macro" to avoid warnings about multi-instruction
5996         macros, since they're intentional.
5997
5998 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
5999
6000         * config/darwin.h: Add include guards.  Remove old, now incorrect,
6001         comment about STANDARD_EXEC_PREFIX.
6002
6003         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
6004         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
6005         for installing .1 manpages.  Add rules for installing cpp
6006         and gcov manpages under their installed names.
6007
6008 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
6009
6010         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
6011         host, but try LD_FOR_TARGET first.
6012         * configure: Rebuilt.
6013
6014 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
6015
6016         * dbxout.c: Move declaration of dbxout_type_decl outside
6017         #ifdef DBX_DEBUGGING_INFO.
6018         * c-parse.in: Don't give the asmdef production a type.
6019
6020 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
6021
6022         * debug.h (struct gcc_debug_hooks): Add type_decl field.
6023         (debug_nothing_tree_int): Prototype.
6024         (dwarf_debug_hooks): Delete, unused.
6025         * debug.c (do_nothing_debug_hooks): Update.
6026         (debug_nothing_tree_int): New function.
6027         * langhooks.h (struct lang_hooks_for_decls):
6028         Remove builtin_type_decls field.
6029         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
6030         (LANG_HOOKS_DECLS): Update.
6031         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
6032         Use debug_hooks->type_decl.
6033         * dbxout.c (preinit_symbols): New static.
6034         (dbx_debug_hooks, xcoff_debug_hooks): Update.
6035         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
6036         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
6037         for symbols to output.
6038         (dbxout_type_decl): New function.
6039         (dbxout_symbol): If called before dbxout_init has run, queue
6040         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
6041         to TYPE_DECLs before emitting them.
6042         * xcoffout.c (assign_type_number): Delete.
6043         (xcoff_type_numbers): New static table.
6044         (xcoff_assign_fundamental_type_number): New function.
6045         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
6046         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
6047         * sdbout.c: Include varray.h.
6048         (deferred_global_decls): New static.
6049         (sdb_debug_hooks): Update.
6050         (sdbout_global_decl): If we can't emit something right now,
6051         remember it in deferred_global_decls.
6052         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
6053         (sdbout_init): Initialize deferred_global_decls.
6054         * Makefile.in: Update dependencies of sdbout.o.
6055         * dwarf2out.c (dwarf2out_type_decl): New function.
6056         (dwarf2_debug_hooks): Update.
6057         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
6058         * c-decl.c (getdecls): Just return 0.
6059         (check_for_loop_decls): Don't use getdecls.
6060         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
6061         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
6062
6063 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
6064
6065         * config/s390/s390.c (s390_sched_reorder2): Remove.
6066         (TARGET_SCHED_REORDER2): Do not redefine.
6067
6068 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
6069
6070         * c-parse.in (maybe_type_qual): Delete.
6071         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
6072         (asm_argument): New grammar rules.
6073         (extdef_1): Use asmdef.
6074         (maybeasm): Move down with other asm rules; use simple_asm_expr.
6075         (xexpr): Move up with other expression rules.
6076         (stmt): Use asm_stmt.
6077
6078         * c-typeck.c (build_asm_expr): New function - body mostly
6079         pulled from build_asm_stmt.
6080         (build_asm_stmt): Just handle tacking on the volatile qualifier.
6081         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
6082
6083 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
6084
6085         PR bootstrap/13617
6086         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
6087         (mips_declare_object): Make variadic.
6088         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
6089         mips_output_aligned_decl_common.
6090         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
6091         (mips_declare_object): Make variadic.
6092
6093 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6094
6095         * function.c (update_epilogue_consts): Teach about binary operations.
6096
6097         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
6098         previous MEM_VOLATILE in REF.
6099         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
6100         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
6101
6102 2004-02-12  Gunther Nikl  <gni@gecko.de>
6103
6104         * config.gcc: Restore support for m68k-openbsd.
6105
6106 2004-02-12  Jan Hubicka  <jh@suse.cz>
6107
6108         * tree-optimize.c (tree_rest_of_compilation): Do not release
6109         DECL_ARGUMENTS.
6110
6111 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
6112
6113         * doc/install.texi: Fix the spelling of "explicitly".
6114
6115 2004-02-11  Eric Christopher  <echristo@redhat.com>
6116
6117         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
6118         duplicate argument structure of cpp_interpret_string.
6119         * cpphash.h: Move prototype...
6120         * cpplib.h: Here.
6121         * cpplib.c: Fix calls to match new function signature.
6122
6123 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
6124
6125         PR c/456
6126         * cppexp.c (num_binary_op): Don't allow comma operators in #if
6127         constant expressions at all outside C99 mode if pedantic.
6128
6129 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
6130
6131         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
6132         (log10_optab, log2_optab): Define corresponding macros.
6133         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
6134         * genopinit.c (optabs): Implement log10_optab and log2_optab
6135         using log10?f2 and log2?f2 patterns.
6136         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
6137         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
6138         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
6139         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6140
6141         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
6142         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
6143         log2, log2f and log2l built-ins as inline x87 intrinsics.
6144
6145 2004-02-11  Richard Henderson  <rth@redhat.com>
6146
6147         PR target/1532
6148         * flow.c (insn_dead_p): A clobber of a dead hard register is a
6149         dead insn after reload.
6150
6151 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
6152
6153         * tree.h (frame_base_decl): Add GTY marker.
6154         * var-tracking.c (frame_base_decl): Likewise.
6155
6156 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
6157
6158         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
6159         incorrect, hunk.
6160         (add_location_or_const_value_attribute): Use text_section_label,
6161         not TEXT_SECTION_NAME.
6162
6163 2004-02-11  Per Bothner  <per@bothner.com>
6164
6165         Represent column numbers using line-map's source_location.
6166         The "next available source_location" is now managed internally by
6167         line-maps.c rather than by clients.
6168         * line-map.h (struct line_map):  New field column_bits.
6169         <from_line>:  Rename field to start_location.
6170         (struct line_maps):  New fields highest_location and max_column_hint.
6171         (linemap_check_files_exited):  New declaration.
6172         (linemap_line_start):  New declaration.
6173         (linemap_add):  Remove from_line parameter; use highest_location field.
6174         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
6175         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
6176         (CURRENT_LINE_MAP):  Remove macro.
6177         (linemap_position_for_column):  New inline function.
6178         * line-map.c (linemap_init):  Clear new fields.
6179         (linemap_check_files_exited):  New function, extracted from ...
6180         (linemap_free):  Use linemap_check_files_exited.
6181         (linemap_add):  Remove from_line parameter.  Various updates.
6182         (linemap_line_start):  New function.
6183         (linemap_lookeup):  Update for new field names.
6184         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
6185         linemap_position_for_column may unpredictably change the current map,
6186         it is cleaner and simpler for us to not cache it in cpp_reader.
6187         (struct cpp_buffer):  New sysp field.
6188         Changed warned_cplusplus_comments and from_stage3 to bitfields.
6189         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
6190         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
6191         current map using linemap_lookup.
6192         (do_linemarker):  Also set buffer's sysp field.
6193         (destringize_and_run):  No longer need to decrement current line.
6194         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
6195         (search_path_head, open_file_failed):  Use buffer's sysp.
6196         (cpp_make_system_header):  Get current map using linemap_lookup.
6197         Also set buffer's sysp flag.
6198         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
6199         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
6200         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
6201         (struct cpp_reader):  ... and adding saved_line_base field.
6202         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
6203         Update accordingly.  Don't adjust line.
6204         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
6205         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
6206         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
6207         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
6208         * cpplex.c (_cpp_lex_direct):  Likewise.
6209         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
6210         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
6211         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
6212         Remove col field as it is now subsumed by src_loc.
6213         * cpperror.c:  Update various field, parameter, and macro names.
6214         (print_location):  If col==0, try SOURCE_COLUMN of line.
6215         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
6216         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
6217         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
6218         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
6219         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
6220         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
6221         (_cpp_lex_direct):  Use linemap_position_for_column.
6222         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
6223         parameter.  Instead get it from the line_table global.  Adjust callers.
6224         (print):  Remove map field.  Replace line field to src_line.
6225         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
6226         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
6227         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
6228         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
6229         * cpptrad.c (copy_comment):  Rename variable.
6230         * c-lex.c (map):  Remove static variable, for same reason we removed
6231         cpp_reader's map field.
6232         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
6233         to call linemap_lookup.
6234         (cb_line_change):  Token's line field replaced by src_loc.
6235         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
6236         Don't save new_map.
6237
6238         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
6239         source_location.
6240
6241 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
6242
6243         * config/rs6000/altivec.md (*movv4si_internal): At least one
6244         operand must be register_operand.
6245         (*movv8hi_internal1): Likewise.
6246         (*movv16qi_internal1): Likewise.
6247         (*movv4sf_internal1): Likewise.
6248
6249 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
6250
6251         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
6252         operand.
6253         (movv4hi_internal): Same.
6254         (movv2sf_internal): Same.
6255         (movv1di_internal): Same.
6256
6257 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
6258
6259         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
6260         TARGET_OLDABI consistently.
6261         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
6262         mips_va_arg,override_options,compute_frame_size,
6263         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
6264         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
6265         and TARGET_OLDABI consistently.
6266         * config/mips/mips.md (exception_receiver): Likewise.
6267         * config/mips/linux64.h: Likewise.
6268
6269 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
6270
6271         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
6272         Set AltiVec ABI and vrsave as default for ppc64 linux.
6273         (init_cumulative_args): Post error, if try to return
6274         value in AltiVec register without enable AltiVec.
6275         (function_arg_advance): Ditto for passing arguments.
6276
6277 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
6278
6279         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
6280         a label before updating its usage count.
6281
6282 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
6283
6284         * doc/install.texi: Remove extra cd.
6285
6286 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
6287
6288         * c-common.c (vector_size_helper): Remove; call
6289         reconstruct_complex_type() instead.
6290         * tree.c (reconstruct_complex_type): New function
6291         (formerly vector_size_helper() in c-common.c).
6292         (make_vector): Make externally visible.
6293         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
6294
6295 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
6296
6297         * config/h8300/h8300-protos.h: Add a prototype for
6298         h8300_regs_ok_for_stm.
6299         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
6300         * config/h8300/h8300.md (stm_h8300s_2_advanced,
6301         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
6302         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
6303         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
6304         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
6305         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
6306         ldm_h8300s_4_normal, ldm_h8300s_4): Use
6307         h8300_regs_ok_for_stm().
6308
6309 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
6310
6311         PR c/14088
6312         * real.c (real_from_string): Look for 'X' as well as 'x' in
6313         hexfloat strings.
6314
6315 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
6316
6317         * config/h8300/h8300.md: Remove an incorrect comment about
6318         peephole2.  Add comments.
6319
6320 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
6321
6322         PR/14058
6323         * emit-rtl.c (set_decl_incoming_rtl): New.
6324         * tree.h (set_decl_incoming_rtl): New.
6325         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
6326         DECL_INCOMING_RTL.
6327         * ada/misc.c (adjust_decl_rtl): Likewise.
6328
6329 2004-02-10  Per Bothner  <per@bothner.com>
6330
6331         * c-opts.c (c_common_post_options):   Don't emit working directory
6332         in cpp output if -P was specified.
6333
6334 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
6335
6336         PR c/14092
6337         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
6338         negate_expr back to the original type.
6339
6340 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
6341
6342         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
6343         bump retaddr here.
6344
6345 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
6346
6347         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
6348         gen_lowpart_SUBREG): Move under the file in which they
6349         are actually declared.
6350
6351 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
6352
6353         * doc/sourcebuild.texi: Add libada documentation.
6354
6355         * doc/install.texi: Update documentation on Ada build, now
6356         that the GNAT lib and tools are built automatically.
6357
6358 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
6359
6360         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
6361         && TARGET_IRIX.
6362
6363 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
6364
6365         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
6366         boundaries outside build_component_ref() call (a macro in ObjC++).
6367
6368 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
6369
6370         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
6371         (init_cumulative_args): Likewise.
6372         (a7_overlap_mentioned_p): Delete prototype.
6373         * config/xtensa/xtensa.c (struct machine_function): Replace
6374         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
6375         Add set_frame_ptr_insn field.
6376         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
6377         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
6378         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
6379         at the function entry and replace the operand with the pseudo.
6380         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
6381         argument and record this flag in CUMULATIVE_ARGS.
6382         (function_arg): Remove result_mode and special-case code to handle
6383         arguments in a7.  Instead, set need_a7_copy flag when there is an
6384         incoming argument in a7.
6385         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
6386         and use the value recorded in cfun->machine->set_frame_ptr_insn.
6387         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
6388         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
6389         special-case code.
6390         (a7_overlap_mentioned_p): Delete.
6391         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
6392         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
6393         arguments to init_cumulative_args and pass "incoming" flag instead.
6394         (BLOCK_REG_PADDING): Delete.
6395         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
6396         checks for reload_in_progress and reload_completed.  Update calls to
6397         xtensa_copy_incoming_a7.
6398         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
6399         to call xtensa_copy_incoming_a7.
6400
6401 2004-02-09  DJ Delorie  <dj@redhat.com>
6402
6403         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
6404         longer modify standard_exec_prefix, standard_bindir_prefix, or
6405         standard_startfile_prefix.
6406
6407 2004-02-09  James E Wilson  <wilson@specifixinc.com>
6408
6409         PR c++/11295
6410         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
6411         to expand_expr_real call, and pass in alt_rtl as last argument.
6412
6413         PR libstdc++/5625
6414         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
6415         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
6416         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
6417         * except.c (expand_builtin_extend_pointer): New.
6418         * except.h (expand_builtin_extend_pointer): Declare.
6419
6420 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
6421
6422         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
6423         unaligned loads and stores.
6424
6425 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6426
6427         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
6428         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
6429
6430         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
6431         * config/mips/iris5.h: ... here.
6432         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
6433
6434         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
6435         * config/mips/iris5.h: ... here.
6436
6437 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6438
6439         * configure.ac: Remove default executable files before AC_PROG_CC.
6440         * configure: Regenerate.
6441
6442 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
6443
6444         PR target/13721
6445         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
6446         print a operand other than a register.
6447
6448 2004-02-09  Roger Sayle  <roger@eyesopen.com>
6449
6450         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
6451         tree code rather than call fold_convert, which doesn't specify a
6452         default floating point to integer conversion.
6453
6454 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
6455
6456         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
6457         code to support SGS assembler.  Reformat adjacent code where possible.
6458         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
6459         definition.
6460         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
6461         for '%#'.
6462         * config/m68k/linux.h, config/m68k/m68k.c,
6463         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
6464         macros and asm_printf() format strings.
6465         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
6466         * config/m68k/linux.h: Update copyright.
6467         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
6468
6469 2004-02-08  Andreas Schwab  <schwab@suse.de>
6470             Bernardo Innocenti  <bernie@develer.com>
6471
6472         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
6473         REGISTER_PREFIX.
6474         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
6475         frame pointer register, overridable by OS targets.
6476         * (M68K_REGNAME): Macro to obtain register name for asm output,
6477         eventually replacing %a6 with M68K_FP_REG_NAME.
6478         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
6479         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
6480         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
6481         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
6482         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
6483
6484 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
6485
6486         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
6487         hook_rtx_tree_int_null.
6488         * targhooks.c (default_struct_value_rtx): Remove.
6489         * targhooks.h: Remove the prototype for
6490         default_struct_value_rtx.
6491         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
6492         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
6493         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
6494         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
6495         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
6496         config/rs6000/rs6000.c, config/s390/s390.c,
6497         config/stormy16/stormy16.c, config/v850/v850.c,
6498         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
6499         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
6500
6501 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
6502
6503         * README.Portability: Change "ISO C89" to "ISO C90".
6504         * c-parse.in (primary, initelt): Likewise.
6505
6506 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
6507
6508         * real.c (encode_ibm_extended): Normalize the input value before
6509         converting it to a double.  Handle the case where a normal value
6510         rounds to infinity.
6511
6512 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
6513
6514         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
6515         warning.
6516         * cse.c (preferrable): Change to preferable. Update all of its
6517         callers.
6518         * genautomata.c (ainsn): Change
6519         first_ainsn_with_given_equialence_num to
6520         first_ainsn_with_given_equivalence_num.  Update all of its
6521         references.
6522
6523 2004-02-08  Jan Hubicka  <jh@suse.cz>
6524
6525         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
6526
6527 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
6528
6529         * function.c (assign_parms): Fix formatting.
6530
6531 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
6532
6533         * default.h (PROMOTE_PROTOTYPES): Remove.
6534         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
6535         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
6536         EXPAND_BUILTIN_SAVEREGS): Poison.
6537         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
6538         hook_bool_tree_false.
6539         (TARGET_PROMOTE_PROTOTYPES): Likewise.
6540         * target.h: Replace SETUP_INCOMING_VARARGS with
6541         targetm.calls.setup_incoming_varargs().
6542         * targhooks.c (default_promote_function_return): Remove.
6543         (default_promote_prototypes): Likewise.
6544         (default_struct_value_rtx): Always abort().
6545         (default_expand_builtin_saveregs): Always print an error
6546         message.
6547         (default_setup_incoming_varargs): Do nothing.
6548         (default_pretend_outgoing_varargs_named): Don't depend on
6549         SETUP_INCOMING_VARARGS.
6550         * targhooks.h: Remove the prototype for
6551         default_promote_function_return and
6552         default_promote_prototypes.
6553
6554 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
6555
6556         * system.h (SHARED_SECTION_ASM_OP): Poison.
6557         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
6558         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
6559
6560 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
6561
6562         Bug 13856
6563         * c-decl.c (diagnose_mismatched_decls): Only give special
6564         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
6565         is also true.
6566         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
6567         DECL_FUNCTION_CODE when defining a built-in function.
6568         Don't update DECL_ESTIMATED_INSNS.
6569         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
6570         FUNCTION_DECLs.
6571         * tree.h: Delete DECL_ESTIMATED_INSNS.
6572         * tree-inline.c (struct inline_data): Delete inlined_insns field.
6573         (expand_call_inline, optimize_inline_calls): Don't update
6574         DECL_ESTIMATED_INSNS nor inlined_insns.
6575         * cgraphunit.c (cgraph_analyze_function): Don't update
6576         DECL_ESTIMATED_INSNS.
6577
6578 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
6579
6580         * c-common.c (shadow_warning): Delete.
6581         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
6582         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
6583         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
6584         * c-parse.in (free_parser_stacks): Delete.
6585
6586 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
6587
6588         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
6589         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
6590         Use the top level mkinstalldirs, not the one in the gcc subdir.
6591         * mkinstalldirs: Remove (from the gcc subdir).
6592
6593 2004-02-07  Roger Sayle  <roger@eyesopen.com>
6594
6595         PR middle-end/13696
6596         * fold-const.c (fold_convert): New function to provide type
6597         conversion to the middle-end without using convert.
6598         (negate_expr, associate_trees, size_diffop, omit_one_operand,
6599         operand_equal_for_comparison_p, pedantic_omit_one_operand,
6600         invert_truthvalue, optimize_bit_field_compare, range_binop,
6601         decode_field_reference, make_range, build_range_check, unextend,
6602         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
6603         fold_binary_op_with_conditional_arg, fold_inf_compare,
6604         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
6605         convert with calls to fold_convert.
6606
6607 2004-02-07  Jan Hubicka  <jh@suse.cz>
6608
6609         * genrecog.c (find_operand): add extra argument stop.
6610         (validate_pattern): Verify that mach_dup is duplicating operand
6611         defined lexically earlier.
6612
6613 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
6614
6615         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
6616         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
6617         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
6618         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
6619         config/ia64/ia64.h, config/ip2k/ip2k.h,
6620         config/iq2000/iq2000.h, config/mips/iris5.h,
6621         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
6622         config/rs6000/aix51.h, config/rs6000/aix52.h,
6623         config/rs6000/darwin.h, config/rs6000/rs6000.h,
6624         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
6625         config/sparc/linux.h, config/sparc/linux64.h,
6626         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
6627         config/xtensa/xtensa.h: Remove the definitions of
6628         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
6629         MAX_WCHAR_TYPE_SIZE.
6630         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
6631         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
6632
6633 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
6634
6635         PR bootstrap/13990
6636         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
6637         gen_rtx_NE.
6638
6639 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
6640
6641         * var-tracking.c (vt_add_function_parameters): Surround checkings by
6642         #ifdef ENABLE_CHECKING and #endif.
6643
6644 2004-02-07  Roger Sayle  <roger@eyesopen.com>
6645
6646         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
6647         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
6648         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
6649         integer types and floating point with unsafe_math_optimizations.
6650         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
6651         Optimize A - B as A + (-B), if B is easily negated.
6652
6653 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
6654
6655         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
6656         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
6657         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
6658         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
6659         Update copyright.
6660
6661 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
6662
6663         * c-ppoutput.c, var-tracking.c: Fix comment typos.
6664
6665 2004-02-06  James E Wilson  <wilson@specifixinc.com>
6666
6667         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
6668         glibc 2.3 or better.
6669
6670 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
6671
6672         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
6673         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
6674
6675 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
6676
6677         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
6678         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
6679         (SHLIB_MKMAP_OPTS): Delete.
6680         (TARGET_LIBGCC2_CFLAGS): Add -specs.
6681         (bispecs): Add rule.
6682         * config/rs6000/libgcc-ppc64.ver: New file.
6683         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
6684         (__floatdidf, __floatdisf): Optimize multiply.
6685         (__fixunstfdi): New function.
6686         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
6687         real and imag parts larger than one register.
6688         (function_arg): Correct type of reg used when fp arg split partially
6689         to stack.
6690         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
6691         and __MACH__ or __powerpc64__.
6692
6693 2004-02-06  Roger Sayle  <roger@eyesopen.com>
6694             Ulrich Weigand  <uweigand@de.ibm.com>
6695
6696         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
6697         of gen_highpart or gen_lowpart when the floating point format is
6698         wider than the result mode.
6699
6700 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
6701
6702         * dwarf2out.c (loclabel_num): Move into #ifdef
6703         DWARF2_DEBUGGING_INFO.
6704
6705 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
6706
6707         * objc/objc-act.c (build_super_template) the 'class' field of
6708         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
6709         (get_super_receiver): Likewise.
6710
6711 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
6712
6713         * reload1.c (check_eliminable_occurrences): Optimize the reset
6714         of can_eliminate.
6715         (eliminate_regs_in_insn): Likewise.
6716
6717 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
6718             Josef Zlomek  <zlomekj@suse.cz>
6719
6720         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
6721         at the beginning of function, call dwarf2out_var_location for
6722         NOTE_INSN_VAR_LOCATION note.
6723         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
6724         decl_loc_table): New.
6725         (lookup_decl_loc): New function.
6726         (add_var_loc_to_decl): New function.
6727         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
6728         only if can_use_fbreg.
6729         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
6730         functions.
6731         (loc_descriptor): Likewise. Process VAR_LOCATION.
6732         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
6733         (loc_descriptor_from_tree): Call mem_loc_descriptor with
6734         can_use_fbreg == true.
6735         (add_location_or_const_value_attribute): Added parameter enum
6736         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
6737         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
6738         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
6739         with attr == DW_AT_location.
6740         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
6741         if frame_base_decl is defined and has a location list.
6742         (gen_variable_die): Call add_location_or_const_value_attribute with
6743         attr == DW_AT_location.
6744         (dwarf2out_var_location): New function.
6745         (dwarf2out_begin_function): New function.
6746         (dwarf2out_init): Create decl_loc_table.
6747
6748 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
6749
6750         * loop.c (force_movables): Transitively increase the priorities of
6751         all insns forces by an insn, not just the first one.
6752
6753 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
6754             Daniel Berlin <dberlin@dberlin.org>
6755
6756         Josef Zlomek  <zlomekj@suse.cz>
6757         * Makefile.in (var-tracking.o): New.
6758         * common.opt (fvar-tracking): New.
6759         * flags.h (flag_var_tracking): New.
6760         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
6761         * opts.c (common_handle_option): Add OPT_fvar_tracking.
6762         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
6763         * rtl.c (note_insn_name): Likewise.
6764         * rtl.def (VAR_LOCATION): New.
6765         * rtl.h (NOTE_VAR_LOCATION): New.
6766         (NOTE_VAR_LOCATION_DECL): New.
6767         (NOTE_VAR_LOCATION_LOC): New.
6768         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
6769         (variable_tracking_main): New exported function.
6770         * timevar.def (TV_VAR_TRACKING): New.
6771         * toplev.c (enum dump_file_index): Added DFI_vartrack.
6772         (dump_file): "vartrack" was added (-dV).
6773         (flag_var_tracking): New.
6774         (f_options): "var-tracking" was added.
6775         (rest_of_handle_variable_tracking): New function.
6776         (rest_of_compilation): Run variable tracking.
6777         (process_options): If user has not specified flag_var_tracking set it
6778         according to optimize, debug_info_level and debug_hooks.
6779         * tree.h (frame_base_decl): New.
6780         * var-tracking.c: New file.
6781         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
6782         (ia64_override_options): Set flags to run variable tracking in machine
6783         dependent reorg instead of toplev.c.
6784         (ia64_reorg): Run variable tracking if wanted.
6785         * doc/invoke.texi: Mention variable tracking in -dV,
6786         add and -fvar-tracking.
6787         * doc/passes.texi: Added variable tracking pass.
6788
6789         Daniel Berlin <dberlin@dberlin.org>
6790         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
6791         * dbxout.c (dbx_debug_hooks): Likewise.
6792         (xcoff_debug): Likewise.
6793         * debug.c (do_nothing_debug_hooks): Likewise.
6794         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
6795         * dwarfout.c (dwarf_debug_hooks): Likewise.
6796         * sdbout.c (sdb_debug_hooks): Likewise.
6797         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
6798         * final.c (final_scan_insn): Call var_location debug hook for each
6799         NOTE_INSN_VAR_LOCATION.
6800
6801 2004-02-06  Jan Hubicka  <jh@suse.cz>
6802
6803         * flow.c (update_life_info): Allocate reg_deaths when called from
6804         scheudler.
6805         (attempt_auto_inc):  Update life ranges accordingly.
6806
6807 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
6808
6809         PR debug/11816
6810         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
6811
6812 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
6813
6814         * cfganal.c (flow_call_edges_add): Never split a libcall block.
6815
6816 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
6817
6818         * dwarf2out.c (output_loc_list): Don't use deltas if we have
6819         a separate line info table in use.
6820         Use the correct size for terminators.
6821         (output_die): Use offset, not delta.
6822
6823 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
6824
6825         * doc/invoke.texi: Remove the pni option from -mfpmath=.
6826
6827 2004-02-06  Jan Hubicka  <jh@suse.cz>
6828
6829         * recog.c (split_all_insns): Do not update reg info.
6830         * regrename.c (regrename_optimize): Likewise.
6831         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
6832         * flow.c (struct propagate_block_info): Add insn_num field.
6833         (reg_deaths): New array.
6834         (life_analysis): Free reg_deaths info.
6835         (allocate_reg_life_data): Allocate reg_deaths array.
6836         (propagate_one_insn): Use new array.
6837         (init_propagate_block): Initialize it.
6838         (free_propagate_block_info): Finish compuation of
6839         REG_LIVE_LENGTH
6840         (attempt_auto_inc): Sanity check that REG_INFO is not
6841         computed at same time.
6842         (mark_used_regs): Update new array.
6843
6844         * reg-stack.c (subst_stack_regs): Unshare clobbers before
6845         substitution.
6846
6847 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
6848
6849         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
6850         *extendqisi2_short_displ.
6851
6852 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
6853
6854         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
6855         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
6856         (emit_library_call_value_1): Likewise pass nargs.
6857         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
6858         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
6859         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
6860         parameter instead of scanning TYPE_ARGS_TYPES to count args.
6861         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
6862         prototype.
6863         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
6864         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
6865         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
6866         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
6867         INIT_CUMULATIVE_ARGS.
6868         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
6869         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
6870         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
6871         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
6872         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
6873         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
6874         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
6875         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
6876         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
6877         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
6878         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
6879         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
6880
6881 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
6882
6883         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
6884         possible.
6885
6886 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
6887
6888         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
6889         note containing (plus (reg) (const_int)), where reg is an
6890         eliminable reg, then perform the register elimination without
6891         depending on eliminate_regs().
6892
6893 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
6894
6895         * config/arc/arc.c (arc_return_in_memory): Check the return
6896         value of int_size_in_bytes against -1.  Don't check
6897         TREE_ADDRESSABLE.
6898         * config/avr/avr.c (avr_return_in_memory): Check the return
6899         value of int_size_in_bytes against -1.
6900         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
6901         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
6902         Likewise.
6903         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
6904         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
6905         Likewise.
6906
6907 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
6908
6909         * config/frv/frv-protos.h: Remove the prototype for
6910         frv_setup_incoming_varargs.
6911         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
6912         (frv_setup_incoming_varargs): Make it static.
6913         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
6914
6915 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
6916
6917         * config/fr30/fr30-protos.h: Remove the prototype for
6918         fr30_setup_incoming_varargs.
6919         Update the prototypes for fr30_num_arg_regs and
6920         fr30_function_arg_partial_nregs.
6921         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
6922         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
6923         (fr30_setup_incoming_varargs): Make it static.
6924         Add argument second_time.  Don't do anything when second_time
6925         is nonzero.
6926         (fr30_num_arg_regs): Change the type of the first argument to
6927         enum machine_mode.
6928         (fr30_function_arg_partial_nregs): Change the type of the
6929         second argument to enum machine_mode.
6930         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
6931         (SETUP_INCOMING_VARARGS): Remove.
6932
6933 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
6934
6935         * config/arc/arc-protos.h: Remove the prototype for
6936         arc_setup_incoming_varargs.
6937         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
6938         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
6939         (arc_setup_incoming_varargs): Make it static.
6940         (arc_external_libcall): Likewise.
6941         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
6942         Remove the commented-out definition of
6943         ASM_OUTPUT_EXTERNAL_LIBCALL.
6944
6945 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
6946
6947         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
6948         to $$(slibdir) in the installation commands.
6949
6950 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
6951
6952         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
6953         with inner_regno, not regno.
6954         * rtlanal.c (refers_to_regno_p): Same.
6955
6956 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
6957
6958         * config.gcc: Remove i370 support.
6959
6960 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
6961
6962         * doc/install.texi:  Update automake and autoconf version
6963         requirements.  Note where to find gcj automake version.
6964
6965 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
6966
6967         * Makefile.in (generate-manpages): Move dependencies to ...
6968         (man): here.
6969         * doc/makefile.texi: Document new targets.
6970         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
6971
6972 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
6973
6974         PR/13485
6975         Makefile.in (srcextra):  Add a level of indirection to ...
6976         (gcc.srcextra): ... here.
6977         (po-generated): Delete.
6978         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
6979         options.c.
6980         (start.encap): Remove superfluous lang.srcextra dependency.
6981         objc/Make-lang.in (po-generated):  Delete.
6982
6983 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
6984
6985         * config/ia64/ia64.c (REG_GP): Remove.
6986
6987 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6988
6989         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
6990
6991 2004-02-05  Devang Patel  <dpatel@apple.com>
6992
6993         * dwarf2out.c (force_type_die): Look up input type itself
6994         instead of root_type() of type.
6995
6996 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
6997
6998         * config/s390/s390.md ("*tmqidi_ext"): New insn.
6999         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
7000         pre-reload splitters are transformed to post-reload
7001         define_insn_and_split patterns.
7002         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
7003
7004 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7005
7006         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
7007         TARGET_PROMOTE_PROTOTYPES.
7008
7009 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7010
7011         PR middle-end/13750
7012         Revert:
7013         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
7014         PR pch/13361
7015         * c-typeck.c (constructor_asmspec): Delete.
7016         (struct initializer_stack): Delete field 'asmspec'.
7017         (start_init): Delete saving of asmspec.
7018         (finish_init): Don't update constructor_asmspec.
7019         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
7020         * stmt.c (expand_asm): Duplicate strings from tree.
7021         (expand_asm_operands): Likewise.
7022         * tree.c (tree_size): Update computation of size of STRING_CST.
7023         (make_node): Don't make STRING_CST nodes.
7024         (build_string): Allocate string with tree node.
7025         * tree.def (STRING_CST): Update comment.
7026         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
7027         (tree_string): Place contents of string in tree node.
7028         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
7029         from tree.
7030
7031 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
7032
7033         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
7034         msgid.
7035
7036 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
7037
7038         * config/rs6000/altivec.md (*movv4si_internal): At least one
7039         operand must be altivec_register_operand.
7040         (*movv8hi_internal1): Likewise.
7041         (*movv16qi_internal1): Likewise.
7042         (*movv4sf_internal1): Likewise.
7043
7044 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
7045
7046         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
7047         * configure: Regenerate.
7048
7049 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
7050
7051         * doc/install.texi: Update description of --gxx-include-dir to
7052         give correct default value.
7053
7054 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7055
7056         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
7057         8 with MAC_REG.
7058
7059 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7060
7061         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
7062         gen_rtx_PARALLEL.
7063
7064 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7065
7066         * emit-rtl.c: Update the comment about the file.
7067
7068 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
7069
7070         * sourcebuild.texi (Test Idioms): Update testcase naming
7071         conventions.
7072
7073 2004-02-04  Per Bothner  <per@bothner.com>
7074
7075         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
7076         * c-ppoutput.c (pp_dir_change):  New function.
7077         * c-common.h (pp_dir_change):  New declaration.
7078         * cpplib.h (struct cpp_options):  Remove working_directory field.
7079         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
7080         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
7081         Don't handle -fworking_directory here, but in c_common_post_options.
7082         (read_original_directory): Don't back up when done.
7083         Don't clear no-longer used working_directory flag.
7084         * cpplib.h:  Update declarations to match.
7085         * c-lex.c (cb_dir_change):  Move to c-opts.c.
7086         (init_c_lex):  Don't set dir_change callback here, since we want
7087         to set it even if flag_preprocess_only.
7088         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
7089         (c_common_post_options):  Set dir_change callback.
7090         Call pp_dir_change if approporiate.
7091         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
7092         unneeded parameter and result. Do LC_RENAME for <built-in>.
7093         (c_common_post_options):  Call cpp_read_main_file here instead.
7094         (c_common_init):  Update accordingly.
7095         (push_command_line_include):  Don't cpp_push_main_file.
7096         Do LC_RENAME rather than LC_LEASE to get back to main file.
7097         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
7098         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
7099         files, but call finish_options for all files.
7100         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
7101         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
7102         cpp_find_main_file + cpp_push_main_file.
7103         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
7104         * opts.c (handle_options):  Only set main_input_filename first time.
7105
7106 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
7107
7108         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
7109
7110 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
7111
7112         * reload.c (find_equiv_reg): When checking for register overlap,
7113         don't index hard_regno_nregs with a pseudo-reg.
7114
7115 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
7116
7117         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
7118
7119 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
7120
7121         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
7122         against FIRST_PSEUDO_REGISTER.
7123
7124 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7125
7126         * Makefile.in: Move target, host overrides after per-language
7127         fragments.
7128
7129         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
7130         (GNATLIBCFLAGS): Remove -g.
7131
7132 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7133
7134         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
7135         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
7136         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
7137         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
7138         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
7139         config/sparc/sparc.c, config/vax/vax.c: Revert the
7140         replacements of "FALLTHRU" with "Fall through" done in the
7141         previous patch.
7142
7143 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7144
7145         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
7146         config/arm/arm.c, config/arm/arm.md,
7147         config/cris/cris-protos.h, config/fr30/fr30.c,
7148         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
7149         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
7150         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
7151         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
7152         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
7153         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
7154         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
7155         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
7156         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
7157         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
7158         config/s390/s390.md, config/sparc/netbsd-elf.h,
7159         config/sparc/openbsd.h, config/sparc/sparc.c,
7160         config/xtensa/lib2funcs.S: Fix comment formatting.
7161
7162 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7163
7164         * config/alpha/alpha.c, config/arc/arc.c,
7165         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
7166         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
7167         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
7168         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
7169         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
7170         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
7171         config/iq2000/iq2000.c, config/m32r/m32r.c,
7172         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
7173         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
7174         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
7175         config/rs6000/rs6000.h, config/sparc/sparc.c,
7176         config/vax/vax.c: Fix comment typos.  Follow spelling
7177         conventions.
7178
7179 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7180
7181         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
7182         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
7183         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
7184         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
7185         config/arm/fpa.md, config/arm/iwmmxt.md,
7186         config/arm/netbsd-elf.h, config/arm/netbsd.h,
7187         config/m68hc11/m68hc11.md, config/mips/iris5.h,
7188         config/mn10300/mn10300.md, config/rs6000/altivec.md,
7189         config/sparc/netbsd-elf.h: Update copyright.
7190
7191 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
7192
7193         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
7194         for all modes whose size is greater than 8 bytes if ARCH32.
7195         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
7196         by reference if ARCH32.
7197
7198 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
7199
7200         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
7201
7202 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
7203
7204         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
7205         to before adddi3 insn patterns.
7206         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
7207         "reload_insi"): Move to before addsi3 insn patterns.
7208
7209 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
7210
7211         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
7212         parameter.  Use it instead of current_function_is_thunk.
7213         * function.h (struct function): Update documentation for is_thunk.
7214         * tree.h (CALL_FROM_THUNK_P): New macro.
7215         * config/alpha/alpha.c (alpha_sa_mask): Do not check
7216         no_new_pseudos when testing current_function_is_thunk.
7217         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
7218
7219 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7220
7221         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
7222         TARGET_SETUP_INCOMING_VARARGS.
7223
7224 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7225
7226         * emit-rtl.c (gen_rtx): Remove.
7227         * genattrtab.c: Don't mention gen_rtx in a comment.
7228         * rtl.h: Remove the prototype for gen_rtx.
7229         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
7230
7231 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7232
7233         * config/arc/arc.h, config/fr30/fr30.h
7234         (SETUP_INCOMING_VARARGS): Remove the target-independent
7235         comments.
7236         * doc/tm.texi: Don't mention deprecated target macros.
7237
7238 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7239
7240         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
7241         target-independent comment.
7242
7243 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7244
7245         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
7246         mention deprecated target macros.
7247
7248 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7249
7250         * config.gcc: Remove obsolete ports and configurations.
7251         * config/linux-aout.h, config/netware.h,
7252         config/t-linux-gnulibc1, config/d30v/abi,
7253         config/d30v/d30v-protos.h, config/d30v/d30v.c,
7254         config/d30v/d30v.h, config/d30v/d30v.md,
7255         config/d30v/libgcc1.asm, config/d30v/t-d30v,
7256         config/dsp16xx/dsp16xx-modes.def,
7257         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
7258         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
7259         config/i370/README, config/i370/i370-c.c,
7260         config/i370/i370-protos.h, config/i370/i370.c,
7261         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
7262         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
7263         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
7264         config/i386/moss.h, config/i386/netware.h,
7265         config/i386/svr3.ifile, config/i386/svr3dbx.h,
7266         config/i386/svr3gas.h, config/i386/svr3z.ifile,
7267         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
7268         config/i960/i960-c.c, config/i960/i960-coff.h,
7269         config/i960/i960-modes.def, config/i960/i960-protos.h,
7270         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
7271         config/i960/rtems.h, config/i960/t-960bare,
7272         config/m68k/hp310.h, config/m68k/hp320.h,
7273         config/m68k/hp320base.h, config/m68k/m68kv4.h,
7274         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
7275         Remove.
7276         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
7277         doc/md.texi: Remove mentions of obsolete ports.
7278
7279 2004-02-04  Jan Hubicka  <jh@suse.cz>
7280
7281         * alias.c (find_base_term, get_addr):  Do not dereference NULL
7282         pointer when all VALUE's locations has been invalidated.
7283         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
7284
7285 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
7286
7287         * doc/invoke.texi (x86 options): Fix spelling/wording.
7288
7289 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
7290
7291         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
7292         put the original string in a comment.
7293         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
7294         * config/mips/mips.c (mips_output_ascii): Likewise.
7295         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
7296
7297 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
7298
7299         * system.h (GIV_SORT_CRITERION): Poison.
7300         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
7301         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
7302
7303 2004-02-03  Roger Sayle  <roger@eyesopen.com>
7304
7305         PR target/9348
7306         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
7307         multiplies with a multiplication of the wrong signedness, its the
7308         signedness of the multiplication that we've performed that needs to
7309         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
7310         if expand_mult_highpart_adjust places the result in target.
7311
7312 2004-02-03  Richard Henderson  <rth@redhat.com>
7313
7314         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
7315
7316 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
7317
7318         * config.gcc (sh[234]l): Use little endian fragments.
7319
7320 2004-02-03  Paul Koning  <pkoning@equallogic.com>
7321
7322         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
7323         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
7324         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
7325         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
7326         floating point format.
7327         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
7328         the above functions.
7329         (output_move_quad): Output float values in correct target format.
7330         (legitimate_const_double_p): New function.
7331         * config/pdp11/pdp11.h: Fix typos.
7332         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
7333         (TARGET_FLOAT_FORMAT): Ditto.
7334         (pdp11_f_format, pdp11_d_format): Add external declarations.
7335         (MAX_REGS_PER_ADDRESS): Corrected.
7336         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
7337         (PRINT_OPERAND): Output float literals in target format.
7338
7339 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
7340
7341         PR c++/13975
7342         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
7343         TI_PRIVATE.
7344         (access_public_node): Redefine.
7345         (access_protected_node): Likewise.
7346         (access_private_node): Likewise.
7347         * tree.c (build_common_tree_nodes): Create access_public_node,
7348         access_protected_node, and access_private_node.
7349
7350 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
7351
7352         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
7353         (MASK_INLINE_INT_DIV_THR): Ditto.
7354         (MASK_INLINE_SQRT_LAT): Ditto.
7355         (MASK_INLINE_SQRT_THR): Ditto.
7356         (MASK_DWARF2_ASM): Ditto.
7357         (MASK_EARLY_STOP_BITS): Ditto.
7358
7359 2004-02-02  Paul Brook  <paul@codesourcery.com>
7360
7361         Merge from csl-arm-branch.
7362
7363         2004-01-30  Paul Brook  <paul@codesourcery.com>
7364
7365         * aof.h (REGISTER_NAMES): Add vfp reg names
7366         (ADDITIONAL_REGISTER_NAMES): Ditto.
7367         * aout.h (REGISTER_NAMES): Ditto.
7368         (ADDITIONAL_REGISTER_NAMES): Ditto.
7369         * arm-protos.h: Update/Add Prototypes.
7370         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
7371         Only allow 0.0 for VFP.
7372         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
7373         (values_fp): Rename from values_fpa.  Update Users.
7374         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
7375         Update users.  Only check valid constants for this hardware.
7376         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
7377         Only allow consts for FPA.
7378         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
7379         Only allow consts for FPA.
7380         (use_return_insn): Check for saved VFP regs.
7381         (arm_legitimate_address_p): Handle VFP DFmode addressing.
7382         (arm_legitimize_address): Ditto.
7383         (arm_general_register_operand): New function.
7384         (vfp_mem_operand): New function.
7385         (vfp_compare_operand): New function.
7386         (vfp_secondary_reload_class): New function.
7387         (arm_float_compare_operand): New function.
7388         (vfp_print_multi): New function.
7389         (vfp_output_fstmx): New function.
7390         (vfp_emit_fstm): New function.
7391         (arm_output_epilogue): Output VPF reg restore code.
7392         (arm_expand_prologue): Output VFP reg save code.
7393         (arm_print_operand): Add 'P'.
7394         (arm_hard_regno_mode_ok): Return modes for VFP regs.
7395         (arm_regno_class): Return classes for VFP regs.
7396         (arm_compute_initial_elimination_offset): Include space for VFP regs.
7397         (arm_get_frame_size): Ditto.
7398         * arm.h (FIXED_REGISTERS): Add VFP regs.
7399         (CALL_USED_REGISTERS): Ditto.
7400         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
7401         (FIRST_VFP_REGNUM): Define.
7402         (LAST_VFP_REGNUM): Define.
7403         (IS_VFP_REGNUM): Define.
7404         (FIRST_PSEUDO_REGISTER): Include VFP regs.
7405         (HARD_REGNO_NREGS): Handle VFP regs.
7406         (REG_ALLOC_ORDER): Add VFP regs.
7407         (enum reg_class): Add VFP_REGS.
7408         (REG_CLASS_NAMES): Ditto.
7409         (REG_CLASS_CONTENTS): Ditto.
7410         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
7411         (REG_CLASS_FROM_LETTER): Add 'w'.
7412         (EXTRA_CONSTRAINT_ARM): Add 'U'.
7413         (EXTRA_MEMORY_CONSTRAINT): Define.
7414         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
7415         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
7416         (REGISTER_MOVE_COST): Ditto.
7417         (PREDICATE_CODES): Add arm_general_register_operand,
7418         arm_float_compare_operand and vfp_compare_operand.
7419         * arm.md (various): Rename as above.
7420         (divsf3): Enable when TARGET_VFP.
7421         (divdf3): Ditto.
7422         (movdfcc): Ditto.
7423         (sqrtsf2): Ditto.
7424         (sqrtdf2): Ditto.
7425         (arm_movdi): Disable when TARGET_VFP.
7426         (arm_movsi_insn): Ditto.
7427         (movsi): Only split with general regs.
7428         (cmpsf): Use arm_float_compare_operand.
7429         (push_fp_multi): Restrict to TARGET_FPA.
7430         (vfp.md): Include.
7431         * vfp.md: New file.
7432         * fpa.md (various): Rename as above.
7433         * doc/md.texi: Document ARM w and U constraints.
7434
7435         2004-01-15  Paul Brook  <paul@codesourcery.com>
7436
7437         * config.gcc: Add with_fpu.  Allow with-float=softfp.
7438         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
7439         Break out of loop when we find a float-abi.  Fix typo.
7440         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
7441         Set -mfloat-abi=.
7442         * doc/install.texi: Document --with-fpu.
7443
7444         2003-01-14  Paul Brook  <paul@codesourcery.com>
7445
7446         * config.gcc (with_arch): Add armv6.
7447         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
7448         * config/arm/arm.c (arm_overrride_options): Ditto.
7449
7450         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
7451
7452         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
7453         (FL_ARCH6): Renamed from FL_ARCH6J.
7454         (arm_arch3m): Renamed from arm_fast_multiply.
7455         (arm_arch6): Renamed from arm_arch6j.
7456         * arm.h: Update all uses of above.
7457         * arm-cores.def: Likewise.
7458         * arm.md: Likewise.
7459
7460         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
7461         not arm6j.  Add entry for arch armv6.
7462
7463         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
7464
7465         * arm.c (arm_emit_extendsi): Delete.
7466         * arm-protos.h (arm_emit_extendsi): Delete.
7467         * arm.md (zero_extendhisi2): Also handle zero-extension of
7468         non-subregs.
7469         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
7470         (thumb_zero_extendhisi2): Only match if not v6.
7471         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
7472         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
7473         (thumb_extendqisi2): Likewise.
7474         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
7475         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
7476         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
7477         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
7478         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
7479         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
7480         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
7481         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
7482         (arm_extendqisi2addsi): Likewise.
7483
7484         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
7485
7486         Revert this change:
7487         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
7488         + REG addressing modes.
7489
7490         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
7491         + REG addressing modes.
7492
7493         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
7494
7495         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
7496         CONSTANT_P_RTX.
7497
7498         2003-30-12  Paul Brook  <paul@codesourcery.com>
7499
7500         * longlong.h: protect arm inlines with !defined (__thumb__)
7501
7502         2003-30-12  Paul Brook  <paul@codesourcery.com>
7503
7504         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
7505
7506         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
7507
7508         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
7509         change.
7510
7511         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
7512
7513         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
7514         to the virtual incoming args pointer for downward stacks.
7515
7516         2003-12-29  Paul Brook  <paul@codesourcery.com>
7517
7518         * config/arm/arm-cores.def: Add cost function.
7519         * config/arm/arm.c (arm_*_rtx_costs): New functions.
7520         (arm_rtx_costs): Remove
7521         (struct processors): Add rtx_costs field.
7522         (all_cores, all_architectures): Ditto.
7523         (arm_override_options): Set targetm.rtx_costs.
7524         (thumb_rtx_costs): New function.
7525         (arm_rtx_costs_1): Remove cases handled elsewhere.
7526         * config/arm/arm.h (processor_type): Add COSTS parameter.
7527
7528         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
7529
7530         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
7531         (arm926ejs.md): Include it.
7532         * config/arm/arm926ejs.md: New pipeline description.
7533
7534         2003-12-24  Paul Brook  <paul@codesourcery.com>
7535
7536         * config/arm/arm.c (arm_arch6j): New variable.
7537         (arm_override_options): Set it.
7538         (arm_emit_extendsi): New function.
7539         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
7540         * config/arm/arm.h (arm_arch6j): Declare.
7541         * config/arm/arm.md: Add sign/zero extend insns.
7542
7543         2003-12-23  Paul Brook  <paul@codesourcery.com>
7544
7545         * config/arm/arm.c (all_architectures): Add armv6.
7546         * doc/invoke.texi: Document it.
7547
7548         2003-12-19  Paul Brook  <paul@codesourcery.com>
7549
7550         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
7551         insn patterns to match.
7552         * config/arm/arm-generic.md: Ditto.
7553         * config/arm/cirrus.md: Ditto.
7554         * config/arm/fpa.md: Ditto.
7555         * config/amm/iwmmxt.md: Ditto.
7556         * config/arm/arm1026ejs.md: Ditto.
7557         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
7558         for 11_loadb.
7559
7560         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
7561
7562         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
7563         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
7564         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
7565         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
7566         arm_no_early_mul_dep): Correctly deal with conditional execution,
7567         parallels and single shift operations.
7568         (arm_no_early_alu_shift_value_dep): Define.
7569         * arm.md (attr type): Replace 'normal' with 'alu',
7570         'alu_shift' and 'alu_shift_reg'.
7571         (attr core_cycles): Adjust.
7572         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
7573         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
7574         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
7575         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
7576         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
7577         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
7578         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
7579         attribute appropriately.
7580         * config/arm/arm1026ejs.md (alu_op): Adjust.
7581         (alu_shift_op, alu_shift_reg_op): New.
7582         * config/arm/arm1136.md: Add better bypasses for early
7583         registers. Remove load[234] and store[234] bypasses.
7584         (11_alu_op): Adjust.
7585         (11_alu_shift_op, 11_alu_shift_reg_op): New.
7586
7587         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
7588
7589         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
7590         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
7591         * config/arm/arm.c (arm_no_early_store_addr_dep,
7592         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
7593         * config/arm/arm1026ejs.md: Add load-store bypass.
7594         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
7595         Add bypasses between instructions.
7596
7597         2003-12-10  Paul Brook  <paul@codesourcery.com>
7598
7599         * config/arm/arm.c (arm_fpu_model): New variable.
7600         (arm_fload_abi): New variable.
7601         (target_fpe_name): Rename from target_fp_name.
7602         (target_fpu_name): New variable.
7603         (arm_is_cirrus): Remove.
7604         (fpu_desc): New struct.
7605         (all_fpus): Define.
7606         (pf_model_for_fpu): Define.
7607         (all_loat_abis): Define.
7608         (arm_override_options): Set fp arch flags based on -mfpu=
7609         and -float-abi=.
7610         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
7611         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
7612         (*): Use new TARGET_* flags.
7613         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
7614         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
7615         (TARGET_SOFT_FLOAT): Ditto.
7616         (TARGET_SOFT_FLOAT_ABI): New.
7617         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
7618         TARGET_HARD_FLOAT.
7619         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
7620         (TARGET_OPTIONS): Add -mfpu=.
7621         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
7622         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
7623         (arm_pf_model): Define.
7624         (arm_float_abi_type): Define.
7625         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
7626         * config/arm/arm.md: Use new TARGET_* flags.
7627         * config/arm/cirrus.md: Ditto.
7628         * config/arm/fpa.md: Ditto.
7629         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
7630         * config/arm/semi.h (ASM_SPEC): Ditto.
7631         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
7632         (FPUTYPE_DEFAULT): Set to VFP.
7633         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
7634
7635         2003-11-22  Phil Edwards  <phil@codesourcery.com>
7636
7637         PR target/12476
7638         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
7639         'bx' instead of 'b' to avoid branch range restrictions.  Output
7640         the thunk immediately before the thunked-to function.
7641         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
7642         .thumb_func if a thunk is being generated.  Emit .code 16 along
7643         with .thumb_func if a thunk is not being generated.
7644
7645         2003-11-15  Nicolas Pitre <nico@cam.org>
7646
7647         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
7648         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
7649         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
7650         (lshrdi3_iwmmxt): Renamed from lshrdi3.
7651         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
7652
7653         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
7654             Ian Lance Taylor  <ian@wasabisystems.com>
7655
7656         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
7657         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
7658
7659         2003-11-05  Phil Edwards  <phil@codesourcery.com>
7660
7661         * config/arm/arm.md (insn):  Add new V6 instruction names.
7662         (generic_sched):  New attr.
7663         * config/arm/arm-generic.md:  Use generic_sched here.
7664         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
7665         stages of pipeline.  Adjust latency counts accordingly.
7666         * config/arm/arm1136jfs.md:  New file.
7667
7668         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
7669
7670         * config/arm/arm.h (processor_type): New enumeration type.
7671         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
7672         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
7673         (CPP_CPU_ARCH_SPEC): Likewise.
7674         * config/arm/arm.c (arm_tune): New variable.
7675         (all_cores): Use cores.def.
7676         (all_architectures): Add representative processor.
7677         (arm_override_options): Restructure way in which tuning
7678         information is deduced.
7679         * arm.md: Update "insn" and "type" attributes throughout.
7680         (insn): New attribute.
7681         (type): Compute "mult" from "insn" attribute.  Add load2,
7682         load3, load4 alternatives.
7683         (arm automaton): Move to arm-generic.md.
7684         * config/arm/arm-cores.def: New file.
7685         * config/arm/arm-generic.md: Likewise.
7686         * config/arm/arm1026ejs.md: Likewise.
7687
7688 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
7689
7690         * doc/invoke.texi (SPARC options): Remove -mflat and
7691         all -mxxx (xxx:chip) options.
7692         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
7693         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
7694         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
7695         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
7696         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
7697         * config/sparc/sparc.c: Likewise.
7698         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
7699         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
7700         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
7701         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
7702         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
7703         (sparc_flat_must_save_register_p): Likewise.
7704         (sparc_flat_compute_frame_size): Likewise.
7705         (sparc_flat_save_restore): Likewise.
7706         (sparc_flat_function_prologue): Likewise.
7707         (sparc_flat_function_epilogue): Likewise.
7708         (sparc_flat_epilogue_delay_slots): Likewise.
7709         (sparc_flat_eligible_for_epilogue_delay): Likewise.
7710         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
7711         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
7712         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
7713         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
7714         (CONDITIONAL_REGISTER_USAGE): Likewise.
7715         (FRAME_POINTER_REQUIRED): Likewise.
7716         (INITIAL_ELIMINATION_OFFSET): Likewise.
7717         (BASE_RETURN_VALUE_REG): Likewise.
7718         (BASE_OUTGOING_VALUE_REG): Likewise.
7719         (BASE_PASSING_ARG_REG): Likewise.
7720         (BASE_INCOMING_ARG_REG): Likewise.
7721         (INCOMING_REGNO): Likewise.
7722         (OUTGOING_REGNO): Likewise.
7723         (LOCAL_REGNO): Likewise.
7724         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
7725         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
7726         (EPILOGUE_USES): Likewise.
7727         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
7728         ("flat" attribute): Delete.
7729         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
7730         handling.
7731         (call followed by jump define_peephole's): Delete.
7732         (exception_receiver): Likewise.
7733         (builtin_setjmp_receiver): Likewise.
7734         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
7735
7736 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
7737
7738         PR c/11658
7739         PR c/13994
7740         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
7741         on langhooks.h.
7742         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
7743         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
7744         Include langhooks.h.  Replace c_common_truthvalue_conversion
7745         with the truthvalue_conversion language hook throughout.
7746         (expr_no_commas): Call default_conversion before save_expr
7747         for the first term of the production 'x ? : y'.
7748         * c-common.c (c_common_truthvalue_conversion): Remove
7749         obsolete block.  Invoke recursively the hook instead
7750         of this function.
7751         * c-convert.c (convert): handle ERROR_MARK_NODE.
7752         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
7753         returned by the truthvalue_conversion language hook.
7754         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
7755         c_objc_common_truthvalue_conversion.
7756         * c-objc-common.c (c_objc_common_truthvalue_conversion):
7757         New function.
7758         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
7759         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
7760         c_objc_common_truthvalue_conversion.
7761
7762 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
7763
7764         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
7765         of gen_rtx.
7766         (LIBCALL_VALUE): Likewise.
7767         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
7768         gen_rtx_CC0 instead of gen_rtx.
7769         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
7770         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
7771         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
7772         gen_rtx.
7773         (m68hc11_emit_logical): Likewise.
7774
7775 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
7776
7777         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
7778         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
7779         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
7780         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
7781         config/mips/mips.md, config/mmix/mmix.c,
7782         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
7783         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
7784         config/rs6000/altivec.md, config/s390/s390.c,
7785         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
7786         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
7787         Use const0_rtx instead of GEN_INT (0).  Do the same for other
7788         constants that are readily available.
7789
7790 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
7791
7792         * doloop.c, optabs.c, regmove.c, sched-deps.c,
7793         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
7794         instead of GEN_INT (0).  Do the same for other constants that
7795         are readily available.
7796
7797 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
7798
7799         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
7800         gen_rtx.
7801         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
7802         instead of gen_rtx.
7803         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
7804         gen_rtx.
7805         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
7806         gen_rtx_ASHIFT instead of gen_rtx.
7807         (udivmodqi4): Likewise.
7808
7809 2004-02-02  Richard Henderson  <rth@redhat.com>
7810
7811         PR target/13789
7812         * expr.c (store_expr): Use force_operand before emit_move_insn.
7813
7814 2004-02-02  Jeff Law  <law@redhat.com>
7815             Roger Sayle  <roger@eyesopen.com>
7816
7817         * tree.c (commutative_tree_code, associative_tree_code): New
7818         functions.
7819         (iterative_hash_expr): Use commutative_tree_code.
7820         * tree.h (commutative_tree_code, associative_tree_code): Declare.
7821         * fold-const.c (operand_equal_p): Use commutative_tree_code
7822         rather than inlining the commutativity check.
7823         (fold): Likewise.
7824
7825 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
7826
7827         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
7828         * config/frv/frv-protos.h: Remove the prototype for
7829         frv_function_arg_keep_as_reference.
7830         * config/frv/frv.c (frv_function_arg_keep_as_reference):
7831         Remove.
7832         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
7833         * config/stormy16/stormy16.h: Remove the commented-out
7834         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
7835
7836 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
7837
7838         PR target/13914
7839         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
7840         for retaddr_column.
7841
7842 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
7843
7844         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
7845         gen_rtx.
7846
7847 2004-02-02  Eric Christopher  <echristo@redhat.com>
7848             Zack Weinberg  <zack@codesourcery.com>
7849
7850         * c-opts.c (c_common_handle_option): Add -finput-charset.
7851         * c.opt: Ditto.
7852         * cppcharset.c (one_iso88591_to_utf8): Remove.
7853         (convert_iso88591_utf8): Ditto.
7854         (conversion_tab): Remove 8859-1 converter.
7855         (_cpp_input_to_utf8): Remove.
7856         (_cpp_init_iconv_buffer): Ditto.
7857         (_cpp_close_iconv_buffer): Ditto.
7858         (_cpp_convert_input): New function.
7859         (_cpp_default_encoding): Ditto.
7860         * cpphash.h: Add/remove prototypes for above.
7861         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
7862         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
7863         for narrow execution and input character sets.
7864         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
7865         * doc/cppopts.texi: Document -finput-charset.
7866
7867 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
7868
7869         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
7870         against FIRST_PSEUDO_REGISTER.
7871
7872 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
7873
7874         * doc/invoke.texi (SPARC options): Further improve.
7875
7876 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
7877
7878         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
7879         config/h8300/h8300.c, config/ip2k/ip2k.md,
7880         config/iq2000/iq2000.c, config/mips/mips.c,
7881         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
7882         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
7883         config/v850/v850.md: Fix indentation.
7884
7885 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
7886
7887         * config/sparc/sparc.c (function_arg_slotno): Align TImode
7888         arguments on a 16-byte boundary in the parameter array if ARCH64.
7889         Split handling of TFmode.
7890
7891 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
7892
7893         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
7894         Don't test CONSTANT_P (x).
7895         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
7896         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
7897         Fix misindentation.
7898
7899 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
7900
7901         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
7902
7903 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
7904
7905         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
7906         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
7907         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
7908         config/iq2000/iq2000.c, config/m32r/m32r.c,
7909         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
7910         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
7911         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
7912         config/stormy16/stormy16.c, config/v850/v850.md,
7913         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
7914
7915 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
7916
7917         * config/mcore/mcore.c (block_move_sequence): Replace
7918         gen_rtx_CONST_INT with GEN_INT.
7919
7920 2004-02-02  Jan Hubicka  <jh@suse.cz>
7921
7922         * alias.c (record_set): Use hard_regno_nregs.
7923         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
7924         * builtins.c (apply_args_size): Likewise.
7925         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
7926         mark_set_regs, add_stored_regs, mark_referenced_regs,
7927         insert_restore, insert_save, insert_one_insn): Likewise.
7928         * cfgcleanup.c: Include regs.h
7929         (mark_effect, mentions_nonequal_regs): Likewise.
7930         * cfgrtl.c (mark_killed_regs): Likewise
7931         * combine.c (update_table_tick, record_value_for_reg,
7932         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
7933         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
7934         reg_bitfield_target_p, distribute_notes): Likewise.
7935         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
7936         exp_equiv_p, cse_insn): Likewise.
7937         * cselib.c (cselib_lookup): Likewise.
7938         (cselib_invalidate_regno, cselib_record_set): Likewise.
7939         * df.c (df_ref_record): Likewise.
7940         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
7941         Likewise.
7942         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
7943         count_or_remove_death_notes_bb): Likewise.
7944         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
7945         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
7946         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
7947         * integrate.c (mark_stores): Likewise.
7948         * jump.c (delete_prior_computation): Likewise.
7949         * lcm.c (reg_dies, reg_becomes_live): Likewise.
7950         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
7951         * loop.c (LOOP_REGNO_NREGS): Likewise.
7952         * postreload.c (reload_combine, reload_combine_note_store,
7953         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
7954         * ra-colorize.c (combine, color_usable_p, get_free_reg,
7955         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
7956         try_recolor_web, insert_coalesced_conflicts, check_colors,
7957         break_precolored_alias): Likewise.
7958         * ra-debug.c: Include regs.h
7959         (ra_print_rtx_object): Likewise.
7960         * ra-rewrite (choose_spill_colors): Likewise.
7961         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
7962         * ra.c (init_ra): Likewise.
7963         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
7964         peep2_find_free_register): Likewise.
7965         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
7966         * regclass.c (hard_regno_nregs): New array.
7967         (init_reg_modes_once): Initialize it.
7968         (choose_hard_reg_mode): Use it.
7969         (record_reg_classes): Likewise.
7970         * regmove.c (mark_flags_life_zones): Likewise.
7971         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
7972         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
7973         copy_value, maybe_mode_change, find_oldest_value_reg,
7974         copyprop_hardreg_forward_1):
7975         * regs.h (hard_regno_nregs): Declare.
7976         * realod.c (reload_inner_reg_of_subreg): Use it.
7977         (push_reload, combine_reloads, find_dummy_reload,
7978         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
7979         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
7980         reload_adjust_reg_for_mode): Likewise.
7981         * reload1.c (compute_use_by_pseudos, count_pseudo,
7982         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
7983         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
7984         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
7985         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
7986         delete_output_reload): Likewise.
7987         * resource.c (update_live_status, mark_referenced_resources,
7988         mark_set_resources, mark_target_live_regs): Likewise.
7989         * rtlanal.c:  Include regs.h
7990         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
7991         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
7992         subreg_regno_offset, subreg_offset_representable_p,
7993         hoist_test_store): Likewise.
7994         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
7995         * sched-rgn.c (check_live_1, update_live_1): Likewise.
7996         * stmt.c: Include regs.h
7997         (decl_conflicts_with_clobbers_p): Likewise.
7998         * varasm.c (make_decl_rtl): Likewise.
7999         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
8000
8001 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
8002
8003         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
8004         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
8005         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
8006         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
8007         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
8008         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
8009         config/iq2000/iq2000.h, config/m32r/m32r.c,
8010         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
8011         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
8012         config/mcore/mcore.c, config/mcore/mcore.h,
8013         config/mcore/mcore.md, config/mips/mips.c,
8014         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
8015         config/rs6000/rs6000.c, config/s390/s390.c,
8016         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
8017         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
8018         "gen_rtx (FOO, " with "gen_rtx_FOO (".
8019
8020 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
8021
8022         * config/h8300/h8300.md (two peephole2's): New.
8023
8024 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
8025
8026         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
8027         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
8028         (ASM_CPU_SPEC): Likewise
8029         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
8030         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
8031
8032 2004-02-01  Roger Sayle  <roger@eyesopen.com>
8033
8034         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
8035         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
8036         (expand_builtin): Always call expand_builtin_pow.
8037
8038 2004-02-01  Roger Sayle  <roger@eyesopen.com>
8039
8040         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
8041         BUILT_IN_SIGNBITL): New GCC builtins.
8042         * builtins.c (expand_builtin_signbit): New function to RTL expand
8043         calls to signbit, signbitf and signbitl as inline intrinsics.
8044         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
8045         (fold_builtin_signbit): New function to perform constant folding
8046         of signbit, signbitf and signbitl.
8047         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
8048
8049         * doc/extend.texi: Document new signbit{,f,l} builtins.
8050
8051 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
8052
8053         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
8054
8055 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
8056
8057         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
8058         "mips_const_double_ok" and "simple_memory_operand", which were
8059         removed from the MIPS port with the mips-3_4-rewrite branch merge.
8060         * config/mips/mips.c (mips16_lay_out_constants): Update comment
8061         for removal of simple_memory_operand.
8062
8063 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8064
8065         * config/c4x/c4x.md: Use GEN_INT instead of
8066         gen_rtx (CONST_INT, ...).
8067
8068 2004-01-31  Richard Henderson  <rth@redhat.com>
8069
8070         * varasm.c (output_constant_pool): Don't zap the pool.
8071
8072 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8073
8074         * genrecog.c (decision_type): Add DT_const_int.
8075         (write_cond) [DT_const_int]: Print a comparison against small
8076         constant.
8077         (write_node): Simplify comparisons against small constants
8078         before printing tests.
8079
8080 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8081
8082         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
8083         instead of gen_rtx_CONST_INT.
8084
8085 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8086
8087         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
8088         instead of gen_rtx_CONST_INT.
8089
8090 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8091
8092         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
8093         hook_bool_CUMULATIVE_ARGS_false.
8094         * targhooks.c (default_strict_argument_naming): Rename to
8095         hook_bool_CUMULATIVE_ARGS_false.
8096         * targhooks.h: Update the prototype for
8097         default_strict_argument_naming.
8098
8099 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8100
8101         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
8102         * config/sh/sh.h: Likewise.
8103         * config/sh/sh.md: Likewise.
8104
8105 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
8106
8107         * doc/invoke.texi (SPARC options): Restructure and update.
8108
8109 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8110
8111         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
8112         STRICT_ARGUMENT_NAMING): Poison.
8113         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
8114         hook_bool_tree_false.
8115         * targhooks.c (default_promote_function_args): Remove.
8116         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
8117         Don't check incoming.
8118         (default_strict_argument_naming): Don't use
8119         STRICT_ARGUMENT_NAMING.
8120         * targhooks.h: Remove the prototype for
8121         default_promote_function_args.
8122
8123 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8124
8125         * config/i386/i386-protos.h: Remove the prototype for
8126         ix86_setup_incoming_varargs.
8127         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
8128         (ix86_setup_incoming_varargs): Make it static.
8129         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
8130
8131 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8132
8133         * alloc-pool.c: Fix comment typos.
8134         * builtin-types.def: Likewise.
8135         * builtins.def: Likewise.
8136         * c-pretty-print.c: Likewise.
8137         * df.h: Likewise.
8138         * reload1.c: Likewise.
8139
8140 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8141
8142         * doc/invoke.texi: Follow spelling conventions.
8143         * doc/tm.texi: Likewise.
8144
8145 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8146
8147         * doc/install.texi: Fix typos.
8148         * doc/invoke.texi: Likewise.
8149
8150 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
8151
8152         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
8153         registers as pointers.
8154         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
8155
8156 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
8157
8158         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
8159         and restore it to gen_lowpart_general on exit.
8160         (gen_lowpart_for_combine): Adjust all callers to go through
8161         gen_lowpart.
8162         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
8163         and restore it to gen_lowpart_general on exit.
8164         (gen_lowpart_if_possible): Adjust all callers to go through
8165         gen_lowpart.
8166         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
8167         (gen_lowpart): Declare as pointer to function, initialized to
8168         gen_lowpart_general.
8169         * rtl.h (gen_lowpart): Declare as pointer to function.
8170
8171 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8172
8173         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
8174         * calls.c: Likewise.
8175         * emit-rtl.c: Likewise.
8176         * function.c: Likewise.
8177         * reload1.c: Likewise.
8178         * config/i386/cygming.h: Likewise.
8179         * config/i386/i386.c: Likewise.
8180         * config/i386/winnt.c: Likewise.
8181
8182 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
8183
8184         PR bootstrap/9249
8185         * doc/install.texi: document --enable-__cxa_atexit option.
8186         * configure.ac: Disable __cxa_atexit if not supported.
8187         * configure: Regenerate.
8188
8189 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
8190
8191         * ggc-zone.c (ggc_free): New function.
8192
8193 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8194
8195         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
8196         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
8197         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
8198         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
8199         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
8200         config/alpha/alpha.c, config/alpha/alpha.h,
8201         config/alpha/alpha.md, config/alpha/unicosmk.h,
8202         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
8203         config/c4x/c4x-protos.h, config/c4x/c4x.md,
8204         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
8205         config/frv/frvend.c, config/i386/cygming.h,
8206         config/i386/djgpp.h, config/i386/emmintrin.h,
8207         config/i386/gthr-win32.c, config/i386/i386-interix.h,
8208         config/i386/i386-protos.h, config/i386/openbsd.h,
8209         config/i386/winnt.c, config/i386/xm-mingw32.h,
8210         config/i386/xmmintrin.h, config/ia64/ia64.md,
8211         config/iq2000/iq2000.md, config/m32r/m32r.md,
8212         config/m68k/m68k.md, config/mcore/mcore-elf.h,
8213         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
8214         config/mips/iris5gas.h, config/mips/iris6.h,
8215         config/mips/iris6gas.h, config/mips/linux.h,
8216         config/mips/mips.md, config/mips/netbsd.h,
8217         config/mips/openbsd.h, config/mips/windiss.h,
8218         config/pa/fptr.c, config/rs6000/aix.h,
8219         config/rs6000/altivec.h, config/rs6000/darwin.h,
8220         config/rs6000/xcoff.h, config/s390/s390-protos.h,
8221         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
8222         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
8223         config/sparc/sol2.h: Update copyright.
8224
8225 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
8226
8227         * Makefile.in (abs_docdir, abs_srcdir): Define.
8228         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
8229
8230 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8231
8232         * genconfig.c (main): Have CC0_P check its operand even on a
8233         target without cc0.
8234
8235 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8236
8237         * config/alpha/alpha.c: Remove mentions of deprecates macros
8238         in comments, remove some target-independent comments about target
8239         macros, and/or add minimal function comments for target hook
8240         implementations.
8241         * config/avr/avr.c: Likewise.
8242         * config/ia64/ia64.h: Likewise.
8243         * config/ip2k/ip2k.c: Likewise.
8244         * config/iq2000/iq2000.c: Likewise.
8245         * config/m32r/m32r.h: Likewise.
8246         * config/m68hc11/m68hc11.c: Likewise.
8247         * config/mcore/mcore.c: Likewise.
8248         * config/mmix/mmix.c: Likewise.
8249         * config/mn10300/mn10300.c: Likewise.
8250         * config/pa/pa.c: Likewise.
8251         * config/pdp11/pdp11.c: Likewise.
8252         * config/rs6000/rs6000.h: Likewise.
8253         * config/sh/sh.c: Likewise.
8254         * config/sh/sh.h: Likewise.
8255         * config/sparc/sparc.c: Likewise.
8256         * config/sparc/sparc.h: Likewise.
8257         * config/stormy16/stormy16.c: Likewise.
8258         * config/xtensa/xtensa.c: Likewise.
8259
8260 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
8261
8262         PR optimization/12147
8263         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
8264         RELOAD_FOR_OPADDR_ADDR.
8265         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
8266         might be reused as RELOAD_FOR_OPADDR_ADDR register.
8267
8268 2004-01-30  Jan Hubicka  <jh@suse.cz>
8269
8270         * reload.c (get_secondary_mem): Fix updating of
8271         secondary_memlocs_elim_used.
8272
8273 2004-01-30  Richard Henderson  <rth@redhat.com>
8274
8275         * varasm.c (struct rtx_const, struct pool_constant): Remove.
8276         (MAX_RTX_HASH_TABLE): Remove.
8277         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
8278         (first_pool, last_pool, pool_offset): Remove.
8279         (struct rtx_constant_pool): Split out from ...
8280         (struct varasm_status): ... here.  Reference one via pointer.
8281         (struct constant_descriptor_rtx): Merge struct pool_constant.
8282         (SYMHASH): Remove.
8283         (decode_rtx_const): Remove.
8284         (const_hash_rtx, compare_constant_rtx): Remove.
8285         (record_constant_rtx): Remove.
8286         (const_desc_rtx_hash, const_desc_rtx_eq): New.
8287         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
8288         (const_rtx_hash_1, const_rtx_hash): New.
8289         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
8290         (simplify_subtraction): Use simplify_rtx.
8291         (force_const_mem): Rewrite to use new data structures.
8292         (find_pool_constant): Likewise.
8293         (get_pool_constant, get_pool_constant_mark,
8294         get_pool_constant_for_function, get_pool_mode,
8295         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
8296         (output_constant_pool_2): Split out from output_constant_pool.
8297         (output_constant_pool_1): Likewise.  Use new pool datastructures.
8298         (output_constant_pool): Zap entire pool datastructure.
8299         (mark_constant): Use new pool datastructures.
8300         (mark_constants): Use for_each_rtx.
8301         (mark_constant_pool): Use new pool datastructures.
8302
8303 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
8304
8305         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
8306         Copy operands[1] to pseudo for simplify_gen_subreg.
8307
8308 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8309
8310         * gcse.c (bypass_block): Fix a typo in the previous check-in
8311         to the file.
8312
8313 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
8314
8315         * toplev.c: Include alloc-pool.h.
8316         * Makefile.in (toplev.c): Update dependencies.
8317
8318 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8319
8320         * combine.c (simplify_shift_const, case XOR): Be careful when
8321         commuting XOR with ASHIFTRT.
8322
8323 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8324             Eric Botcazou  <ebotcazou@libertysurf.fr>
8325
8326         * config/sparc/sparc-protos.h: Remove the prototype for
8327         sparc_builtin_saveregs.
8328         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
8329         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
8330         (TARGET_PROMOTE_PROTOTYPES): Likewise.
8331         (TARGET_STRUCT_VALUE_RTX): Likewise.
8332         (TARGET_RETURN_IN_MEMORY): Likewise.
8333         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
8334         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
8335         (sparc_builtin_saveregs): Make it static.
8336         (sparc_promote_prototypes): New.
8337         (sparc_struct_value_rtx): Likewise.
8338         (sparc_return_in_memory): Likewise.
8339         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
8340         (PROMOTE_FUNCTION_RETURN): Likewise.
8341         (RETURN_IN_MEMORY): Likewise.
8342         (STRUCT_VALUE): Likewise.
8343         (STRUCT_VALUE_INCOMING): Likewise.
8344         (EXPAND_BUILTIN_SAVEREGS): Likewise.
8345         (STRICT_ARGUMENT_NAMING): Likewise.
8346         (PROMOTE_PROTOTYPES): Likewise.
8347
8348         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
8349
8350 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
8351
8352         PR c/12818
8353         * varasm.c (const_hash_1) <STRING_CST>: Use the
8354         address to compute the hash value if flag_writable_strings.
8355         (compare_constant) <STRING_CST>: Compare the addresses
8356         if flag_writable_strings.
8357         (build_constant_desc): Do not copy the expression for a
8358         STRING_CST if flag_writable_strings.
8359
8360 2004-01-30  Jan Hubicka  <jh@suse.cz>
8361
8362         * alloc-pool.c: Include hashtab.h
8363         (alloc_pool_descriptor): New structure
8364         (alloc_pool_hash): New global variable.
8365         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
8366         (create_alloc_pool): Update statistics.
8367         (free_alloc_pool): Likewise.
8368         (pool_alloc): Likewise.
8369         (output_info): New structure
8370         (print_statistics, dump_alloc_pool_statistics): New function.
8371         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
8372         (dump_alloc_pool_statistics): Declare.
8373         * toplev.c (finalize):  Dump statistics.
8374
8375         * reload.c (secondary_memlocs_elim_used): New static variable.
8376         (get_secondary_mem): Update it.
8377         (find_reloads): Use it.
8378
8379 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
8380
8381         * toplev.c: Fix broken checkin of 2003-12-30, again.
8382
8383 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
8384
8385         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
8386         s390*-*-* targets by specifying a 'nop' insn.
8387         * configure: Regenerate.
8388
8389 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
8390
8391         PR target/11475
8392         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
8393
8394 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
8395
8396         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
8397         of addr when creating MEM copy.
8398
8399 2004-01-29  Devang Patel  <dpatel@apple.com>
8400
8401         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
8402
8403 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
8404
8405         PR inline-asm/6162
8406         * reload.c (find_reloads): Only support one pair of commutative
8407         operands.
8408
8409 2004-01-29  Roger Sayle  <roger@eyesopen.com>
8410
8411         PR java/13824
8412         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
8413         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
8414         recursion.
8415
8416 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
8417
8418         * config/frv/frv.c: Don't mention deprecated macros in
8419         comments.  Remove some target-independent comments about
8420         target macros.
8421         * config/frv/frv.h: Likewise.
8422
8423 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8424
8425         * cfghooks.c (split_block): Set probability and count of the
8426         new edge.
8427
8428 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
8429
8430         * dwarf2out.c (struct die_struct): Added field decl_id.
8431         (decl_die_table): Changed to hash table.
8432         (decl_die_table_allocated): Deleted.
8433         (decl_die_table_in_use): Deleted.
8434         (DECL_DIE_TABLE_INCREMENT): Deleted.
8435         (decl_die_table_hash): New function.
8436         (decl_die_table_eq): New function.
8437         (lookup_decl_die): Lookup in a hash table.
8438         (equate_decl_number_to_die): Insert into a hash table.
8439         (dwarf2out_init): Init hash table decl_die_table.
8440
8441 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
8442
8443         PR optimization/13424
8444         * expr.c (store_constructor): Revert 2003-12-03 change.
8445
8446         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
8447         expected before returning early.  Avoid sharing RTL if they
8448         need to be changed.
8449
8450         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
8451         handling so that memory attributes are preserved.  Don't call
8452         ix86_set_move_mem_attrs.
8453         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
8454         (ix86_expand_clrstr): Rename src argument to
8455         dst.  Rework rep_stos and strset handling so that memory attributes
8456         are preserved.
8457         (ix86_expand_strlen): Pass src argument to
8458         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
8459         memory attributes are preserved.
8460         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
8461         change_address instead of gen_rtx_MEM.
8462         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
8463         expanders.
8464         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
8465         strmovqi, strmovqi_rex64): Remove.
8466         (rep_mov*, strmov*): Prefix insn names with *.
8467         (strset, strset_singleop, rep_stos): New expanders.
8468         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
8469         strsetqi, strsetqi_rex64): Remove.
8470         (rep_stos*, strset*): Prefix insn names with *.
8471         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
8472         to SImode.
8473         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
8474         are preserved.
8475         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
8476         Prefix insn names with *.
8477         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
8478         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
8479         (strlenqi_1): New expander.
8480         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
8481
8482 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8483
8484         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
8485         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
8486         verify_flow_info): Declaration removed.
8487         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
8488         (debug_bb, debug_bb_n): Add argument to dump_bb call.
8489         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
8490         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
8491         instead of delete_block.
8492         * cfghooks.c: Include timevar.h and toplev.h.
8493         (cfg_hooks): Define here.
8494         (verify_flow_info, dump_bb): Moved from cfg.c.
8495         (redirect_edge_and_branch, redirect_edge_and_branch_force,
8496         split_block, split_block_after_labels, move_block_after,
8497         delete_basic_block, split_edge, create_basic_block,
8498         create_empty_bb, can_merge_blocks_p, merge_blocks,
8499         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
8500         New functions.
8501         * cfghooks.h (struct cfg_hooks): Added fields name,
8502         make_forwarder_block, tidy_fallthru_edge and
8503         move_block_after. Changed type of verify_flow_info, dump_bb,
8504         split_block fields. Renamed cfgh_split_edge and delete_block
8505         fields.
8506         (redirect_edge_and_branch, redirect_edge_and_branch_force,
8507         split_block, delete_block, split_edge, create_basic_block,
8508         can_merge_blocks_p, merge_blocks): Macros removed.
8509         (cfg_hooks): Do not export.
8510         (verify_flow_info, dump_bb, redirect_edge_and_branch,
8511         redirect_edge_and_branch_force, split_block, split_block_after_labels,
8512         move_block_after, delete_basic_block, split_edge, create_basic_block,
8513         create_empty_bb, can_merge_blocks_p, merge_blocks,
8514         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
8515         Declare.
8516         (cfg_layout_rtl_cfg_hooks): Declare.
8517         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
8518         New functions.
8519         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
8520         (redirect_edge_with_latch_update): Removed.
8521         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
8522         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
8523         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
8524         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
8525         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
8526         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
8527         cfghooks.c.
8528         (rtl_create_basic_block): Coding style fix.
8529         (rtl_tidy_fallthru_edge, rtl_move_block_after,
8530         rtl_make_forwarder_block): New functions.
8531         (update_cfg_after_block_merging): Removed.
8532         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
8533         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
8534         to dump_bb.
8535         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
8536         find_if_case_2): Don't update dominators.
8537         * timevar.def (TV_CFG_VERIFY): New.
8538         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
8539         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
8540         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
8541         (remove_bbs): Don't call remove_bbs.
8542         (create_preheader): Use make_forwarder_block.
8543         (mfb_keep_just, mfb_update_loops): New static functions.
8544
8545 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
8546
8547         * config/avr/avr.h: Remove target-independent comments about
8548         target macros.
8549
8550 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
8551
8552         * timevar.c (timevar_print): Mention when checking is enabled.
8553
8554 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
8555
8556         * c-lex.c (c_lex): Rename to...
8557         (c_lex_with_flags): Add new parameter to get CPP flags.
8558         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
8559         * c-pragma.h (c_lex_with_flags): Declare.
8560
8561 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8562
8563         * config/mcore/mcore.c (mcore_external_libcall): Add a
8564         comment.
8565         (mcore_return_in_memory): Likewise.
8566
8567 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8568
8569         * config/mcore/mcore-protos.h: Remove the prototype for
8570         mcore_setup_incoming_varargs.
8571         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
8572         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
8573         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
8574         (TARGET_PROMOTE_PROTOTYPES): Likewise.
8575         (TARGET_STRUCT_VALUE_RTX): Likewise.
8576         (TARGET_RETURN_IN_MEMORY): Likewise.
8577         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
8578         (mcore_setup_incoming_varargs): Make it static.  Receive the
8579         first argument by reference.  Add argument second_time.
8580         (mcore_external_libcall): New.
8581         (mcore_return_in_memory): Likewise.
8582         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
8583         (PROMOTE_FUNCTION_RETURN): Likewise.
8584         (STRUCT_VALUE): Likewise.
8585         (RETURN_IN_MEMORY): Likewise.
8586         (SETUP_INCOMING_VARARGS): Likewise.
8587         (PROMOTE_PROTOTYPES): Likewise.
8588         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
8589
8590 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8591
8592         * config/m32r/m32r-protos.h: Remove the prototype for
8593         m32r_setup_incoming_varargs.
8594         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
8595         (TARGET_STRUCT_VALUE_RTX): Likewise.
8596         (TARGET_RETURN_IN_MEMORY): Likewise.
8597         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
8598         (m32r_return_in_memory): New.
8599         (m32r_setup_incoming_varargs): Make it static.
8600         * config/m32r/m32r.h: Remove #undef of
8601         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
8602         definitions of PROMOTE_FUNCTION_ARGS and
8603         PROMOTE_FUNCTION_RETURN.
8604         (PROMOTE_PROTOTYPES): Remove.
8605         (RETURN_IN_MEMORY): Likewise.
8606         (STRUCT_VALUE): Likewise.
8607
8608 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8609
8610         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
8611         (TARGET_STRUCT_VALUE_RTX): Likewise.
8612         (m68k_struct_value_rtx): Likewise.
8613         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
8614         STRUCT_VALUE_REGNUM.
8615         (PROMOTE_PROTOTYPES): Remove.
8616         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
8617         STRUCT_VALUE_REGNUM.
8618         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
8619         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
8620
8621 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8622
8623         * config/stormy16/stormy16.c
8624         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
8625         TARGET_BUILD_BUILTIN_VA_LIST.
8626
8627 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8628
8629         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
8630         (TARGET_STRUCT_VALUE_RTX): Likewise.
8631         (TARGET_RETURN_IN_MEMORY): Likewise.
8632         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
8633         (v850_return_in_memory): Likewise.
8634         (v850_setup_incoming_varargs): Likewise.
8635         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
8636         (SETUP_INCOMING_VARARGS): Likewise.
8637         (RETURN_IN_MEMORY): Likewise.
8638         (STRUCT_VALUE): Likewise.
8639
8640 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8641
8642         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
8643         (fr30_setup_incoming_varargs): Don't use
8644         STRICT_ARGUMENT_NAMING.
8645         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
8646         (STRICT_ARGUMENT_NAMING): Likewise.
8647
8648 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8649
8650         * config/frv/frv-protos.h: Remove the prototype for
8651         frv_expand_builtin_saveregs.
8652         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
8653         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
8654         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
8655         STRUCT_VALUE_REGNUM.
8656         (frv_expand_builtin_saveregs): Make it static.
8657         (frv_struct_value_rtx): New.
8658         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
8659
8660 2004-01-29  Jan Hubicka  <jh@suse.cz>
8661
8662         PR c++/12850
8663         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
8664         initial pointers.
8665         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
8666         for functions that will be only inlined.
8667         (cgraph_mark_function_to_output): Likewise.
8668         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
8669         do not clear function body.
8670         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
8671         (tree_rest_of_compilation): Reorganize the logic releasing function
8672         body to use callgraph datastructure.
8673
8674 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8675
8676         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
8677         to register_operand.
8678
8679 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
8680
8681         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
8682         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
8683         match_operand expressions so that all match_dups appear
8684         lexically after their corresponding match_operands.
8685
8686 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8687
8688         * config/h8300/h8300.c (WORD_REG_USED): Use
8689         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
8690         (compute_saved_regs): Likewise.
8691         (h8300_expand_prologue): Likewise.  Allocate locals after
8692         saving registers.
8693         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
8694         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
8695         registers.
8696         (h8300_initial_elimination_offset): Adjust for the new frame
8697         layout, which swaps flips the order of locals and saved
8698         registers.
8699         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
8700         (HARD_FRAME_POINTER_REGNUM): New.
8701         (ELIMINABLE_REGS): Add an elimination rule from
8702         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
8703         (REGISTER_NAMES): Add fp.
8704         * config/h8300/h8300.md (FP_REG): Change to 11.
8705         (HFP_REG): New.
8706
8707 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8708
8709         * genrecog.c (write_node): Remove a useless local variable.
8710
8711 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
8712
8713         * Makefile.in (options.c options.h): Use stamp file s-options to
8714         avoid unnecessary rebuilds.
8715         (options.o): New target listing dependencies.
8716         (gtyp-gen.h): Use stamp file s-gtyp-gen.
8717         (STAGESTUFF): Add s-gtyp-gen.
8718
8719 2004-01-28  Richard Henderson  <rth@redhat.com>
8720
8721         * ggc.h (ggc_free): Declare.
8722         * ggc-common.c (ggc_realloc): Use it.
8723         * ggc-page.c: Remove lots of inline markers.
8724         (globals): Add free_object_list.
8725         (ggc_alloc): Tidy.
8726         (ggc_free, validate_free_objects): New.
8727         (poison_pages): Provide default.
8728         (ggc_collect): Call validate_free_objects; emit markers to
8729         the debug file.
8730
8731 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
8732             Jim Wilson  <wilson@specifixinc.com>
8733
8734         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
8735         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
8736         scratch pointer.
8737         (ia64_secondary_reload_class): Delete case GR_REGS.
8738         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
8739         Do not allocate a scratch register.
8740         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
8741
8742 2004-01-28  Jan Hubicka  <jh@suse.cz>
8743
8744         * gcse.c (bypass_block): Prevent edges to be unified when we are
8745         about to emit compenstation code.
8746
8747 2004-01-28  Nick Clifton  <nickc@redhat.com>
8748
8749         * config/arm/arm.c (arm_expand_builtin): Force second argument of
8750         the setcwx insn into a register.
8751
8752 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
8753
8754         * config/fp-bit.c (pack_d): When using paired doubles to implement
8755         a long double, round the high part separately.
8756         (unpack_d): Fix the case in which the high part is a power of two
8757         and the low part is a nonzero value of the opposite sign.
8758
8759 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8760
8761         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
8762         (TARGET_STRUCT_VALUE_RTX): Likewise.
8763         (c4x_external_libcall): Likewise.
8764         (c4x_struct_value_rtx): Likewise.
8765         * config/c4x/c4x.h: Remove.
8766         (STRUCT_VALUE_REGNUM): Likewise.
8767         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
8768
8769 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8770
8771         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
8772         (TARGET_STRUCT_VALUE_RTX): Likewise.
8773         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
8774         (STRUCT_VALUE): Likewise.
8775         (PROMOTE_PROTOTYPES): Likewise.
8776
8777 2004-01-27  Roger Sayle  <roger@eyesopen.com>
8778
8779         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
8780         CONST_INT before using INTVAL.
8781
8782 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
8783
8784         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
8785         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
8786         frame if !TARGET_BACKCHAIN.
8787         * config/s390/s390.md ("allocate_stack"): Use pattern only if
8788         TARGET_BACKCHAIN.
8789         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
8790
8791 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
8792
8793         * ia64.c (ia64_function_arg): When placing HFAs in integer
8794         registers, do not special case the mode used for complex
8795         types.  Do not advance int_regs until the current register
8796         is full.
8797
8798 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
8799
8800         PR target/7297
8801         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
8802
8803 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
8804
8805         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
8806         slow, unaligned loads and stores while debugging.  Fix formatting.
8807
8808 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
8809
8810         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
8811         of computing wmode.
8812         (restore_stack_nonlocal): Same.
8813
8814 2004-01-27  Devang Patel <dpatel@apple.com>
8815
8816         * Makefile.in (dwarf2out.o): Depend on input.h
8817         * dbxout.c (dbx_debug_hooks): Add new empty hook for
8818         imported_module_or_decl.
8819         (xcoff_debug_hooks): Same.
8820         * sdbout.c (sdb_debug_hooks): Same.
8821         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
8822         * debug.c (do_nothing_debug_hooks): Same.
8823         (debug_nothing_tree_tree): New function.
8824         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
8825         * dwarf2out.c: Include input.h.
8826         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
8827         (remove_child_TAG): New function.
8828         (dwarf_tag_name): Handle DW_TAG_imported_module.
8829         (gen_subprogram_die): Equate decl number to declaration die. Do not
8830         remove all children dies while reusing declaration die for definition.
8831         Instead, selectively remove only formal parameters.
8832         (gen_variable_die): Equate variable decl to declaration die.
8833         (gen_field_die): Equate field decl to line number.
8834         (force_namespace_die): Replace it with ...
8835         (force_decl_die): ... this.
8836         (force_type_die): New function.
8837         (setup_namespace_context): Replace use of force_namespace_die() with
8838         force_decl_die().
8839         (gen_namespace_die): Same.
8840         (dwarf2out_imported_module_or_decl): New function.
8841
8842 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
8843
8844         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
8845         on CQImode and CHImode incoming arguments in register a7.
8846         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
8847         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
8848         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
8849         xtensa_copy_incoming_a7 before reload.
8850
8851 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
8852
8853         * coverage.c (get_coverage_counts): Give a different message
8854         if flag_guess_branch_prob is set.
8855         * predict.c (counts_to_freqs): Return an int.
8856         (estimate_bb_frequencies): If counts_to_freqs returns zero,
8857         calculate estimates.
8858
8859 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
8860
8861         * config/iq2000/iq2000-protos.h: Remove the prototype for
8862         iq2000_setup_incoming_varargs.
8863         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
8864         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
8865         (TARGET_PROMOTE_PROTOTYPES): Likewise.
8866         (TARGET_STRUCT_VALUE_RTX): Likewise.
8867         (TARGET_RETURN_IN_MEMORY): Likewise.
8868         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
8869         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
8870         (iq2000_return_in_memory): Likewise.
8871         (iq2000_setup_incoming_varargs): Make it static.  Receive the
8872         first argument by reference.
8873         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
8874         (PROMOTE_FUNCTION_RETURN): Likewise.
8875         (PROMOTE_PROTOTYPES): Likewise.
8876         (RETURN_IN_MEMORY): Likewise.
8877         (STRUCT_VALUE): Likewise.
8878         (SETUP_INCOMING_VARARGS): Likewise.
8879         (STRICT_ARGUMENT_NAMING): Likewise.
8880
8881 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
8882
8883         * fixinc/fixinc.c (test_test): Initialize res.
8884         (start_flexer): Initialize pz_cmd_save.
8885
8886 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
8887
8888         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
8889         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
8890
8891 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
8892
8893         PR 7198
8894         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
8895         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
8896         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
8897         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
8898         Possibly rename pattern for consistency.
8899         Remove ??? comments suggesting that this be done.
8900         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
8901         New patterns.
8902         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
8903         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
8904         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
8905         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
8906         Update to match.
8907
8908 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
8909
8910         * config/arm/arm.c (output_return_instruction): Only restore IP
8911         into SP if frame_pointer_needed.
8912
8913 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
8914
8915         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
8916         for SCmode and DCmode if ARCH32.
8917         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
8918         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
8919         if ARCH32.
8920         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
8921         if ARCH32.
8922         (BASE_OUTGOING_VALUE_REG): Likewise.
8923
8924 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
8925
8926         PR target/10904
8927         PR target/13058
8928         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
8929         Forbid mode changes from SImode for lower FP regs if ARCH64.
8930
8931 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
8932
8933         * Makefile.in (bt-load.o): Depend on except.h.
8934         * bt-load.c (except.h): #include.
8935         (compute_defs_uses_and_gen): If insn at end of BB can throw
8936         within this function, consider registers used by it unavailable for
8937         btr migration.
8938         (move_btr_def): If insn at end of BB can throw, insert before rather
8939         than after.
8940
8941         * flags.h (flag_btr_bb_exclusive): Declare.
8942         * toplev.c (flag_btr_bb_exclusive): New variable.
8943         (f_options): Add btr-bb-exclusive.
8944         * bt-load.c (augment_live_range): Restore old behaviour if
8945         flag_btr_bb_exclusive is set.
8946         * common.opt: Add entry for -fbtr-bb-exclusive.
8947         * opts.c (common_handle_options): Same.
8948         * doc/invoke.texi: Document -fbtr-bb-exclusive.
8949
8950         * bt-load.c (btrs_live_at_end): New variable.
8951         (compute_defs_uses_and_gen): Compute its pointed-to array.
8952         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
8953         (augment_live_range): When augmenting with a new dominator,
8954         use only its btrs_live_at_end set, but also add in the full set
8955         of the old dominator.
8956         (btr_def_live_range): Use btrs_live_at_end.
8957         (move_btr_def): Set other_btr_uses_before_def, and move new set
8958         to the end of the basic block, if appropriate.
8959         (migrate_btr_defs): Allocate and free btrs_live_at_end.
8960
8961         * bt-load.c (basic_block_freq): Remove outdated comment.
8962
8963 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
8964
8965         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
8966         (PREDICATE_CODES): Remove duplicate.
8967         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
8968         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
8969         (MASK_PROFILE_KERNEL): Adjust define.
8970
8971 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
8972
8973         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
8974         of long string literals from 32 bytes to sizeof (void *) when !-Os
8975         and to 1 with -Os.
8976
8977 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
8978
8979         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
8980         constant addresses in the normal mode.
8981
8982 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8983
8984         * system.h (CHAR_BITFIELD): Delete.
8985         (BOOL_BITFIELD): New.
8986         * c-decl.c (c_scope): Use BOOL_BITFIELD.
8987         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
8988
8989 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
8990
8991         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
8992         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
8993         (TARGET_PROMOTE_PROTOTYPES): Likewise.
8994         (TARGET_STRUCT_VALUE_RTX): Likewise.
8995         (TARGET_RETURN_IN_MEMORY): Likewise.
8996         (arc_return_in_memory): Likewise.
8997         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
8998         (PROMOTE_FUNCTION_RETURN): Likewise.
8999         (RETURN_IN_MEMORY): Likewise.
9000         (STRUCT_VALUE): Likewise.
9001
9002 2004-01-26  Richard Henderson  <rth@redhat.com>
9003
9004         * c-parse.in (extension): Use itype.
9005         (SAVE_EXT_FLAGS): Don't allocate a tree.
9006         (RESTORE_EXT_FLAGS): Don't read a tree.
9007
9008 2004-01-26  Jan Hubicka  <jh@suse.cz>
9009
9010         * cselib.c (discard_useless_values):  Clear out value pointer pointing
9011         to datastructure to be recycled.
9012
9013 2004-01-25  Jan Hubicka  <jh@suse.cz>
9014
9015         * genextract.c (main): Do not output the memset when not checking.
9016
9017 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9018
9019         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
9020         switch statement instead of a chain of if statements.
9021
9022 2004-01-26  Jeff Law  <law@redhat.com>
9023
9024         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
9025         acute accents for Petur Runolfsson's entry.
9026
9027 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9028
9029         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
9030         (TARGET_RETURN_IN_MEMORY): Likewise.
9031         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
9032         (RETURN_IN_MEMORY): Likewise.
9033
9034 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
9035
9036          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
9037          unaligned load/store into smaller loads and stores.
9038
9039 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
9040
9041         * function.c (assign_parms): Do not assign
9042         long long argument to memory in prologue if
9043         is it loaded into register.
9044
9045 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
9046
9047          PR middle-end/13779
9048          * expr.c (emit_group_load): split constant
9049          correctly into register components of PARALLEL insn.
9050
9051 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
9052
9053         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
9054         Use adjust_address_nv directly with appropriate mode.
9055         (restore_stack_nonlocal): Ditto.
9056
9057 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9058
9059         * config/xtensa/xtensa-protos.h: Remove the prototype for
9060         xtensa_builtin_saveregs.
9061         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9062         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9063         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9064         (TARGET_STRUCT_VALUE_RTX): Likewise.
9065         (TARGET_RETURN_IN_MEMORY): Likewise.
9066         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9067         (xtensa_builtin_saveregs): Make it static.
9068         (xtensa_return_in_memory): New.
9069         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
9070         (PROMOTE_FUNCTION_RETURN): Likewise.
9071         (PROMOTE_PROTOTYPES): Likewise.
9072         (STRUCT_VALUE): Likewise.
9073         (RETURN_IN_MEMORY): Likewise.
9074         (EXPAND_BUILTIN_SAVEREGS): Likewise.
9075
9076 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9077
9078         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
9079         (arm_setup_incoming_varargs): Likewise.
9080         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
9081
9082 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9083
9084         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
9085         (cris_setup_incoming_varargs): Likewise.
9086         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
9087
9088 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9089
9090         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
9091         (ns32k_struct_value_rtx): Likewise.
9092         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
9093         NS32K_STRUCT_VALUE_REGNUM.
9094
9095 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9096
9097         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9098         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9099         (TARGET_STRUCT_VALUE_RTX): Likewise.
9100         (arm_struct_value_rtx): Likewise.
9101         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
9102         (STRUCT_VALUE): Likewise.
9103         (STRUCT_VALUE_REGNUM): Likewise.
9104         (PROMOTE_PROTOTYPES): Likewise.
9105
9106 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9107
9108         * config/ia64/ia64-protos.h: Remove the prototype for
9109         ia64_setup_incoming_varargs and ia64_return_in_memory.
9110         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
9111         (TARGET_RETURN_IN_MEMORY): Likewise.
9112         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9113         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
9114         (ia64_setup_incoming_varargs): Adjust the arguments to meet
9115         the requirement of TARGET_SETUP_INCOMING_VARARGS.
9116         (ia64_return_in_memory): Make it static.  Change the return
9117         type to bool from int.  Add an argument.
9118         (ia64_struct_value_rtx): New.
9119         * config/ia64/ia64.h: Remove commented-out definitions of
9120         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
9121         PROMOTE_PROTOTYPES.
9122         (RETURN_IN_MEMORY): Remove.
9123         (STRUCT_VALUE_REGNUM): Likewise.
9124         (STRICT_ARGUMENT_NAMING): Likewise.
9125
9126 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
9127
9128         PR target/13666
9129         * config/sparc/sparc.c (function_arg_union_value): New function.
9130         (function_arg): Use it to deal with unions.
9131         (function_value): Likewise.  Define 'regbase' only for ARCH64.
9132         Replace a conditional statement by a simpler one.
9133
9134 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
9135
9136         * config/mips/mips.c (mips16_optimize_gp): Delete.
9137         (mips_reorg): Don't call it.
9138
9139 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9140
9141         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
9142         (floatunsqihf2): Remove operand 6.
9143         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
9144         fix patterns.
9145         (ldi_conditional, ldf_conditional): Validate operands.
9146
9147 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9148
9149         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
9150         (HAVE_GAS_HIDDEN): Undefine as interim measure.
9151
9152 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9153
9154         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
9155         memory references if TARGET_EXPOSE_LDP nonzero.
9156
9157 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9158
9159         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
9160
9161 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9162
9163         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
9164         invalid operand combinations.
9165
9166 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9167
9168         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
9169         c4x_legitimate_address_p.  Fix post_modify check.
9170
9171         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
9172         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
9173
9174 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9175
9176         * config/pa/pa-protos.h: Remove the prototype for
9177         hppa_builtin_saveregs.  Add a prototype for
9178         pa_return_in_memory.
9179         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
9180         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9181         (TARGET_STRUCT_VALUE_RTX): Likewise.
9182         (TARGET_RETURN_IN_MEMORY): Likewise.
9183         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9184         (pa_struct_value_rtx): Likewise.
9185         (pa_return_in_memory): Likewise.
9186         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
9187         PA_STRUCT_VALUE_REGNUM.
9188         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
9189         (EXPAND_BUILTIN_SAVEREGS): Remove.
9190         (PROMOTE_PROTOTYPES): Likewise.
9191         (PROMOTE_FUNCTION_RETURN): Likewise.
9192
9193 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9194
9195         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
9196         (TARGET_STRUCT_VALUE_RTX): Likewise.
9197         (vax_struct_value_rtx): Likewise.
9198         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
9199         VAX_STRUCT_VALUE_REGNUM.
9200         (PROMOTE_PROTOTYPES): Remove.
9201
9202 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9203
9204         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
9205
9206 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
9207
9208         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
9209         and MIPS64 have HI/LO interlocks.  Update comment.
9210
9211 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9212
9213         * config/stormy16/stormy16-protos.h: Remove the prototype for
9214         xstormy16_setup_incoming_varargs.
9215         * config/stormy16/stormy16.c
9216         (xstormy16_setup_incoming_varargs): Remove.
9217         (xstormy16_return_in_memory): New.
9218         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
9219         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9220         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9221         (TARGET_STRUCT_VALUE_RTX): Likewise.
9222         (TARGET_RETURN_IN_MEMORY): Likewise.
9223         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
9224         (PROMOTE_FUNCTION_RETURN): Likewise
9225         (PROMOTE_PROTOTYPES): Likewise
9226         (RETURN_IN_MEMORY): Likewise
9227         (STRUCT_VALUE): Likewise
9228         (SETUP_INCOMING_VARARGS): Likewise
9229
9230 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
9231
9232         * config/mips/mips.c (mips_offset_within_object_p): New function.
9233         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
9234         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
9235         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
9236
9237 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9238
9239         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
9240         (PROMOTE_FUNCTION_RETURN): Likewise.
9241
9242 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9243
9244         * config/mn10300/mn10300-protos.h: Remove the prototype for
9245         mn10300_builtin_saveregs.
9246         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
9247         (TARGET_STRUCT_VALUE_RTX): Likewise.
9248         (TARGET_RETURN_IN_MEMORY): Likewise.
9249         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9250         (mn10300_return_in_memory): Likewise.
9251         (mn10300_builtin_saveregs): Make it static.
9252         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
9253         (RETURN_IN_MEMORY): Likewise.
9254         (STRUCT_VALUE): Likewise.
9255         (EXPAND_BUILTIN_SAVEREGS): Likewise.
9256
9257 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
9258
9259         PR bootstrap/13853
9260         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
9261
9262 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9263
9264         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
9265         using ccr.
9266
9267 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9268
9269         * config/i860/i860-protos.h: Remove the prototype for
9270         i860_saveregs.
9271         * config/i860/i860.c (i860_saveregs): Make it static.
9272         (i860_struct_value_rtx): New.
9273         (TARGET_STRUCT_VALUE_RTX): Likewise.
9274         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9275         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
9276         I860_STRUCT_VALUE_REGNUM.
9277         (EXPAND_BUILTIN_SAVEREGS): Remove.
9278
9279 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9280
9281         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
9282         (TARGET_RETURN_IN_MEMORY): Likewise.
9283         (m68hc11_struct_value_rtx): Likewise.
9284         (m68hc11_return_in_memory): Likewise.
9285         * config/m68hc11/m68hc11.h: Remove a commented-out definition
9286         of PROMOTE_PROTOTYPES.
9287         (RETURN_IN_MEMORY): Remove.
9288         (STRUCT_VALUE_REGNUM): Likewise.
9289
9290 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9291
9292         * config/mmix/mmix-protos.h: Remove the prototype for
9293         mmix_setup_incoming_varargs.
9294         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9295         (TARGET_STRUCT_VALUE_RTX): Likewise.
9296         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9297         (mmix_setup_incoming_varargs): Make it static.
9298         (mmix_struct_value_rtx): New.
9299         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
9300         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
9301         (STRUCT_VALUE_REGNUM): Remove.
9302         (SETUP_INCOMING_VARARGS): Likewise.
9303
9304 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9305
9306         * config/mips/mips-protos.h: Remove the prototypes for
9307         mips_setup_incoming_varargs and mips_return_in_memory.
9308         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9309         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9310         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9311         (TARGET_STRUCT_VALUE_RTX): Likewise.
9312         (TARGET_RETURN_IN_MEMORY): Likewise.
9313         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9314         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
9315         (mips_setup_incoming_varargs): Match the prototype for
9316         TARGET_SETUP_INCOMING_VARARGS.
9317         (mips_return_in_memory): Make it static.  Add argument fntype.
9318         (mips_strict_argument_naming): New.
9319         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
9320         (PROMOTE_FUNCTION_ARGS): Likewise.
9321         (PROMOTE_FUNCTION_RETURN): Likewise.
9322         (STRUCT_VALUE): Likewise.
9323         (RETURN_IN_MEMORY): Likewise.
9324         (SETUP_INCOMING_VARARGS): Likewise.
9325         (STRICT_ARGUMENT_NAMING): Likewise.
9326
9327 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9328
9329         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
9330         (TARGET_RETURN_IN_MEMORY): Likewise.
9331         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9332         (ip2k_return_in_memory): Likewise.
9333         (ip2k_setup_incoming_varargs): Likewise.
9334         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
9335         (STRUCT_VALUE): Likewise.
9336         (STRUCT_VALUE_INCOMING): Likewise.
9337         (SETUP_INCOMING_VARARGS): Likewise.
9338
9339 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9340
9341         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
9342         (TARGET_RETURN_IN_MEMORY): Likewise.
9343         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
9344         (avr_return_in_memory): Remove.
9345         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
9346         (STRUCT_VALUE): Likewise.
9347         (STRUCT_VALUE_INCOMING): Likewise.
9348         (STRICT_ARGUMENT_NAMING): Likewise.
9349
9350 2004-01-25  Jan Hubicka  <jh@suse.cz>
9351
9352         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
9353
9354 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
9355
9356         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
9357         (mips_regno_mode_ok_for_base_p): Declare.
9358         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
9359         (FRAME_POINTER_REGNUM): Renumber to 78.
9360         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
9361         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
9362         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
9363         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
9364         (REG_MODE_OK_FOR_BASE_P): Likewise.
9365         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
9366         entry for 77 to "$arg" and entry for 78 to "$frame".
9367         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
9368         (mips_reg_mode_ok_for_base_p): Remove.
9369         (mips_regno_mode_ok_for_base_p): New function, derived from old
9370         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
9371         restrictions unless we're being strict.
9372         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
9373
9374 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9375
9376         * c-common.h: Fix comment typos.
9377         * c-decl.c: Likewise.
9378         * cgraphunit.c: Likewise.
9379         * combine.c: Likewise.
9380         * et-forest.c: Likewise.
9381         * flow.c: Likewise.
9382         * function.c: Likewise.
9383         * ifcvt.c: Likewise.
9384         * integrate.c: Likewise.
9385         * jump.c: Likewise.
9386         * postreload.c: Likewise.
9387         * varray.c: Likewise.
9388
9389 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9390
9391         * doc/frontends.texi: Update copyright.
9392         * doc/gcov.texi: Likewise.
9393         * doc/gty.texi: Likewise.
9394         * doc/sourcebuild.texi: Likewise.
9395         * doc/standards.texi: Likewise.
9396
9397 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
9398
9399         PR target/12978
9400         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
9401         Remove movstrqi_small because it conflicts with movstrqi_large.
9402
9403 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9404
9405         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9406         (TARGET_STRUCT_VALUE_RTX): Likewise.
9407         (cris_struct_value_rtx): Likewise.
9408         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
9409         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
9410         STRUCT_VALUE_REGNUM.
9411         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
9412
9413 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
9414
9415         PR bootstrap/13848
9416         * cse.c (cse_cc_succs): Change the mode of the source expression
9417         as soon as decide we need a new mode.  Don't permit changing modes
9418         if we found a match in a successor block.
9419         (cse_condition_code_reg): Save original mode of source expression
9420         so that we know whether we have to change the mode in other
9421         insns.
9422
9423 2004-01-24  Jan Hubicka  <jh@suse.cz>
9424
9425         * emit-rtl.c (change_address, adjust_address_1, offset_address,
9426         widen_memory_access):  Return early when there is nothing to change.
9427
9428 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
9429
9430         * simplify-rtx.c (simplify_relational_operation): Don't
9431         simplify address == constant into address + -constant == 0.
9432
9433 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9434
9435         * gcc.c (process_command): Don't internationalize the
9436         Copyright message.
9437         * mips-tfile.c (main): Likewise.
9438
9439 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
9440
9441         * cse.c: (cse_cc_succs) Fix comparison warning.
9442
9443 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9444
9445         * config/h8300/h8300.md: Remove extraneous USE in expanders.
9446
9447 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9448
9449         * config/h8300/h8300-protos.h: Provide prototypes for
9450         h8300_legitimate_constant_p and h8300_legitimate_address_p.
9451         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
9452         (h8300_rtx_ok_for_base_p): Likewise.
9453         (h8300_legitimate_address_p): Likewise.
9454         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
9455         h8300_legitimate_constant_p.
9456         (RTX_OK_FOR_BASE_P): Remove.
9457         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
9458
9459 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9460
9461         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
9462         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
9463         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
9464         (REG_OK_FOR_BASE_STRICT_P): Likewise.
9465         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
9466         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
9467         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
9468         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
9469
9470 2004-01-24  Jan Hubicka  <jh@suse.cz>
9471
9472         * cselib.c (remove_useless_values):  Do not access discarded values.
9473
9474 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
9475
9476         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
9477         arrays.
9478
9479 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
9480
9481         * recog.c: Fix a typo in copyright.
9482
9483 2004-01-23  Andrew Pinski  <apinski@apple.com>
9484
9485         * config/rs6000/rs6000.md (call): Fix misappiled patch.
9486         (call_value): Likewise.
9487
9488 2004-01-23  Richard Henderson  <rth@redhat.com>
9489
9490         PR opt/12941
9491         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
9492         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
9493         if SHIFT_COUNT_TRUNCATED is set.
9494
9495 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
9496
9497         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
9498         separate real and imaginary parts.
9499         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
9500
9501 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
9502
9503         PR target/13674
9504         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
9505         loading into GPR.
9506
9507 2004-01-23  Jan Hubicka  <jh@suse.cz>
9508
9509         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
9510         change.
9511
9512         * alloc-pool.c (align_four): Kill.
9513         (create_alloc_pool): Align size to eight.
9514         (free_alloc_pool, free_pool): Invalidate deallocated data.
9515
9516 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
9517
9518         PR gcc/1532
9519         * cse.c (cse_change_cc_mode): New static function.
9520         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
9521         (cse_condition_code_reg): New function.
9522         * rtl.h (cse_condition_code_reg): Declare.
9523         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
9524         * target.h (struct gcc_target): Add fixed_condition_code_regs and
9525         cc_modes_compatible.
9526         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
9527         (TARGET_CC_MODES_COMPATIBLE): Define.
9528         (TARGET_INITIALIZER): Add new initializers.
9529         * targhooks.c (default_cc_modes_compatible): New function.
9530         * targhooks.c (default_cc_modes_compatible): Declare.
9531         * hooks.c (hook_bool_intp_intp_false): New function.
9532         * hooks.h (hook_bool_intp_intp_false): Declare.
9533         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
9534         (TARGET_CC_MODES_COMPATIBLE): Define.
9535         (ix86_fixed_condition_code_regs): New static function.
9536         (ix86_cc_modes_compatible): Likewise.
9537         * doc/tm.texi (Condition Code): Document new hooks.
9538
9539 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9540
9541         * fixinc/inclhack.def (bad_lval): Renamed to ...
9542         (alpha_bad_lval): ... this.
9543         Removed file list.
9544         Restrict to alpha*-dec-osf*.
9545         * fixinc/fixincl.x: Regenerate.
9546         * fixinc/tests/base/dirent.h: Remove, moving test ...
9547         * fixinc/tests/base/testing.h: ... here, reflecting new name.
9548
9549 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
9550
9551         PR c/13814
9552         * c-decl.c (diagnose_mismatched_decls): Also discard a
9553         built-in if we encounter an old-style definition with the
9554         same name.
9555
9556 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
9557
9558         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
9559         set to default{32,64}.
9560
9561 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
9562
9563         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
9564         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
9565
9566 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
9567             Olivier Hainque  <hainque@act-europe.fr>
9568
9569         * fold-const.c (fold_binary_op_with_conditional_arg): Only
9570         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
9571
9572 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
9573
9574         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
9575         size for minipool references.
9576
9577 2004-01-23  Roger Sayle  <roger@eyesopen.com>
9578
9579         * real.c (real_floor, real_ceil): Tweak to allow input and output
9580         arguments to overlap.
9581         (real_round): New function to implement round(3m) semantics.
9582         * real.h (real_round): Prototype here.
9583         * builtins.c (fold_builtin_round): New function to constant fold
9584         round, roundf and roundl.
9585         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
9586
9587 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
9588
9589         PR optimization/13819
9590         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
9591         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
9592         (sh_handle_sp_switch_attribute): Remove warning.
9593
9594 2003-11-30  Jan Hubicka  <jh@suse.cz>
9595
9596         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
9597
9598 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
9599
9600         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
9601         may or may not return non-NIL.
9602         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
9603         check CANNOT_CHANGE_MODE_CLASS
9604
9605 2004-01-23  Jan Hubicka  <jh@suse.cz>
9606
9607         * basic-block.h (PROP_POSTRELOAD): New macro.
9608         (CLEANUP_LOG_LINKS): New.
9609         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
9610         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
9611
9612         * cselib.c (value_pool): New.
9613         (new_cselib_val): Use pool.
9614         (cselib_init): Initialize value_pool
9615         (cselib_finish): Free pool.
9616
9617 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
9618
9619         * config/sparc/sparc.c (scan_record_type): New function.
9620         (function_arg_slotno): Use it to determine which kinds of
9621         registers the record can be passed in.
9622
9623 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
9624
9625         * config/pa/fptr.c: Fix old-style definition.
9626
9627 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
9628
9629         PR optimization/13724
9630         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
9631         represents the zero bits produced by a ZERO_EXTEND operation.
9632
9633 2004-01-22  Roger Sayle  <roger@eyesopen.com>
9634
9635         PR optimization/13821
9636         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
9637         correctly calculate the lowpart offset of the contracted subreg.
9638
9639 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
9640
9641         * doc/invoke.texi (Optimize Options): Note that --param arguments
9642         are subject to change without notice.
9643
9644 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9645
9646         * config.gcc (mips-sgi-irix6*o32): Removed.
9647         * config/mips/iris6-o32-as.h: Likewise.
9648         * config/mips/iris6-o32-gas.h: Likewise.
9649         * config/mips/iris6-o32.h: Likewise.
9650
9651 2004-01-22  Jan Hubicka  <jh@suse.cz>
9652
9653         * cfgcleanup.c (first_pass): New static variable.
9654         (try_forward_edges):  Add work limiting check for threading.
9655         (try_crossjump_bb):  Add work limiting check for crossjumping.
9656         (try_optimize_cfg):  Maintain first pass variable.
9657
9658 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
9659
9660         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
9661         handles complex and vector modes.
9662
9663 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
9664
9665         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
9666         (REG_OK_FOR_BASE_P_STRICT): Likewise.
9667         (STRICT): Likewise.
9668
9669 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
9670
9671         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
9672         (genrtl_for_stmt): Remove emit_nop calls.
9673
9674 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9675
9676         PR target/13713
9677         PR target/13324
9678         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
9679         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
9680         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
9681
9682 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
9683
9684         * config/arm/arm.c: Include "debug.h".
9685         (thumb_pushpop): Take two new arguments.  Add some commentary.
9686         Output frame information when pushing.
9687         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
9688         thumb_pushpop.
9689         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
9690         offset, and pass it to thumb_pushpop.  Output CFI information.
9691         (thumb_expand_prologue): Add some frame-related markers and notes.
9692
9693 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
9694
9695         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
9696         for TARGET_64BIT.
9697         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
9698         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
9699
9700 2004-01-22  Roger Sayle  <roger@eyesopen.com>
9701             Paolo Bonzini  <bonzini@gnu.org>
9702
9703         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
9704         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
9705         * rtl.h (subreg_lsb_1): Prototype here.
9706         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
9707         sign extensions.
9708
9709 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
9710
9711         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
9712         macro need not be defined if jump-tables should contain
9713         relative addresses only when -fPIC or -fPIC is in effect.
9714
9715 2004-01-22  Jan Hubicka  <jh@suse.cz>
9716
9717         * alias.c (reg_base_value): Turn into varray.
9718         (reg_base_value_size): Kill.
9719         (old_reg_base_value): New deletable varray.
9720         (alias_invariant_size): New variable.
9721         (REG_BASE_VALUE): Update to use varray.
9722         (find_base_value): Likewise.
9723         (record_set): Likewise.
9724         (record_base_value): Likewise.
9725         (memrefs_conflict_p): Likewise.
9726         (record_set): Likewise
9727         (record_base_value): Likewise.
9728         (memrefs_conflict_p): Use alias_invariant_size.
9729         (init_alias_analysis): Use varray; set alias_invariant_size;
9730         rescale other arrays to be sized by maxreg.
9731         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
9732
9733 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
9734
9735         * config/sparc/sparc.c (function_arg_slotno): Use
9736         FLOAT_TYPE_P to detect FP fields in structures.
9737         (function_arg_record_value_1): Likewise.
9738         (function_arg_record_value_2): Likewise.
9739
9740 2004-01-22  Jan Hubicka  <jh@suse.cz>
9741
9742         * function.c (allocate_struct_function): Do not initialize expr, emit
9743         and varasm.
9744         (prepare_function_start): Do it here.
9745         * c-parse.in (maybe_type_qual): Do not produce line number notes.
9746
9747 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
9748
9749         PR target/13559
9750         * config/sparc/sparc.c (function_arg_record_value_3): Revert
9751         to 'word_mode' once the first slot has been filled.
9752
9753 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
9754
9755         * config/sparc/sparc.c (function_arg_record_value_1): Fix
9756         computation of the number of integer registers required.
9757
9758 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
9759
9760         * config/i386/i386.md: Simplify certain comparisons of
9761         const_int.
9762
9763 2004-01-21  Andrew Pinski  <apinski@apple.com>
9764
9765         PR target/13785
9766         * config/rs6000/rs6000.md (call_value): Force operand
9767         1 not operand 0 into a register.
9768
9769 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
9770
9771         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
9772         unwind-dw2-fde.h: Update copyright.
9773
9774 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9775
9776         * pa-protos.h: Update copyright.
9777         * pa.h: Likewise.
9778         * pa.md: Likewise.
9779
9780 2004-01-21  Caroline Tice  <ctice@apple.com>
9781
9782         PR target/12308
9783         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
9784         flags register.
9785         (fix_truncdfdi2): Likewise.
9786         (fix_truncsfdi2): Likewise.
9787         (*fix_truncdi_1): Likewise.
9788         (fix_truncxfsi2): Likewise.
9789         (fix_truncdfsi2): Likewise.
9790         (fix_truncsfsi2): Likewise.
9791         (*fix_truncsi_1): Likewise.
9792         (fix_truncxfhi2): Likewise.
9793         (fix_truncdfhi2): Likewise.
9794         (fix_truncsfhi2): Likewise.
9795         (*fix_trunchi_1): Likewise.
9796
9797 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
9798
9799         * alias.c, basic-block.h, c-common.c, c-common.h,
9800         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
9801         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
9802         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
9803         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
9804         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
9805         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
9806         genautomata.c, genconditions.c, genemit.c, genflags.c,
9807         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
9808         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
9809         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
9810         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
9811         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
9812         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
9813         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
9814         unwind.h, varray.c, varray.h: Update copyright.
9815
9816 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
9817
9818         * config/h8300/coff.h: Update copyright.
9819         * config/h8300/elf.h: Likewise.
9820         * config/h8300/h8300-protos.h: Likewise.
9821         * config/h8300/h8300.c: Likewise.
9822         * config/h8300/h8300.h: Likewise.
9823         * config/h8300/h8300.md: Likewise.
9824
9825 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9826
9827         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
9828         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
9829         ultrix_unistd): New hacks.
9830         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
9831         ULTRIX_CONST2_CHECK): Add checks.
9832         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
9833         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
9834         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
9835         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
9836         * fixinc/tests/base/locale.h: New file.
9837         * fixinc/fixincl.x: Rebuilt.
9838
9839 2004-01-21  Andreas Jaeger  <aj@suse.de>
9840             Michael Matz  <matz@suse.de>
9841
9842         * doc/extend.texi (Extended Asm): Clarify memory clobber.
9843
9844 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
9845
9846         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
9847         _Jv_RegisterClasses through a function pointer.
9848
9849 2004-01-21  Falk Hueffner  <falk@debian.org>
9850
9851         PR target/12898
9852         * config/alpha/alpha.c (alpha_emit_set_const_1): If
9853         no_new_pseudos, use gen_rtx_SET directly for SImode constants
9854         which need multiple instructions to emit.
9855
9856 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
9857
9858         * config/m32r/m32r.h (CPP_SPEC): Define.
9859
9860 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
9861
9862         * c-decl.c (merge_decls): Kill different_binding_level and
9863         different_tu arguments; simplify throughout.
9864         (duplicate_decls): Likewise.
9865         (pushdecl, merge_translation_unit_decls): Update calls to
9866         duplicate_decls.
9867
9868 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9869
9870         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
9871         $(SYSTEM_H).
9872         (print-rtl1.o): Depend on $(SYSTEM_H).
9873
9874 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
9875
9876         PR bootstrap/12730
9877         * configure.ac: Delete definition and subsitution of docdir.
9878         Add info, man, srcman and srcinfo to target hooks. Create doc/
9879         directory.
9880         * configure: Regenerate.
9881         * Makefile.in: Don't substitute docdir and delete all references
9882         throughout.
9883         (MAKEINFOFLAGS): Define.
9884         (stmp-docobjdir): Delete.
9885         (INFOFILES, MANFILES): Define.
9886         (info): Call lang.info, srcinfo and lang.srcinfo.
9887         (generated-manpages): Call lang.man, srcman and lang.srcman.
9888         (srcinfo, srcman): New rules to copy back files to source directory.
9889         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
9890         (install-man): Revamp rule.
9891         (clean): Update dvi directory.
9892         (distclean): Delete TAGS from front end directorys.
9893         (maintainer-clean): Delete all document files in source directory.
9894
9895         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
9896         (objc.srcman, objc.srcinfo): Likewise.
9897
9898 2004-01-20  Bruce Korb  <bkorb@gnu.org>
9899
9900         * fixinc/inclhack.def(math_exception): bypass only for glibc.
9901         (matherr_decl): rename & relocate as exception_structure.
9902         This fix must precede the math_exception fix.
9903
9904 2004-01-20  Roger Sayle  <roger@eyesopen.com>
9905
9906         * fold-const.c (fold_convert): Rename to fold_convert_const.
9907         (fold_convert_const): Change arguments to take a tree_code,
9908         a type and the operand/expression to be converted.  Return
9909         NULL_TREE if no simplification is possible.  Add support for
9910         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
9911         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
9912         Adjust call to fold_convert to match new fold_convert_const.
9913         Avoid modifying the tree passed to fold in-place.
9914
9915 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
9916
9917         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
9918         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
9919         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
9920
9921 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9922
9923         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
9924         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
9925         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
9926         (emit_move_sequence): Check scratch_reg first in various if statements.
9927         Extend source simplification to handle all 64-bit CONST_INTs.
9928         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
9929         frame size.
9930         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
9931         frame offset calculations.
9932         * pa.h (NEW_HP_ASSEMBLER): Add comment.
9933         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
9934         LEGITIMATE_64BIT_CONST_INT_P): Define.
9935         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
9936         any CONST_INT as legitimate during and after reload.
9937         (VAL_32_BITS_P, INT_32_BITS): Define.
9938         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
9939
9940 2004-01-20  Jan Hubicka  <jh@suse.cz>
9941
9942         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
9943         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
9944         containing hard regs are shared.
9945         (gen_hard_reg_clobber): New function.
9946         (hard_reg_clobbers): New array.
9947         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
9948         (copy_rtx): Do not copy clobbers containing hard regs.
9949         * rtl.h (gen_hard_reg_clobber): Declare.
9950
9951 2004-01-20  Jan Hubicka  <jh@suse.cz>
9952
9953         * varray.c:  Include hashtab.h
9954         (varray_descriptor): New structure.
9955         (hash_descriptor, eq_descriptor, varray_descriptor,
9956         print_statistics): New static functions
9957         (varray_init, varray_grow): Update statistics
9958         (dump_varray_statistics): New function.
9959         * varray.h (dump_varray_statistics): Declare.
9960         * toplev.c (finalize): Call it.
9961         * Makefile.in (varray.o): Add dependency.
9962
9963 2004-01-20  Jan Hubicka  <jh@suse.cz>
9964
9965         * cselib.c: Include alloc-pool.h
9966         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
9967         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
9968         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
9969         unchain_one_elt_loc_list_pool, unchain_one_value,
9970         new_cselib_val): Simplify using allocpool.
9971         (cselib_init): Initialize allocpools.
9972         (cselib_finish): Finish allocpools.
9973         * Makefile.in (cselib.o): Depend on alloc-pool.h
9974
9975 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
9976
9977         * config/mips/mips.c (mips_load_call_address): Make the call insn
9978         use $gp if it could be calling a lazy binding stub.
9979
9980 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
9981
9982         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
9983         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9984         (TARGET_STRUCT_VALUE_RTX): Likewise.
9985         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
9986         (PROMOTE_FUNCTION_RETURN): Remove.
9987         (STRUCT_VALUE): Remove.
9988
9989 2004-01-20  Denis Chertykov  <denisc@overta.ru>
9990
9991         PR bootstrap/13735
9992         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
9993         register as pointer after reload.
9994
9995 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
9996
9997         PR optimization/12440
9998         * loop.c: Include ggc.h.
9999         (loop_optimize): Run garbage collector between optimization of loops.
10000         * Makefile.in (loop.o): Add GGC_H dependency.
10001
10002 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
10003
10004         * gcc/config/rs6000/rs6000.c (function_arg) Handle
10005         vector register special in function without prototype.
10006         (function_arg_advance): Vector parameters get always
10007         GPRs allocated for the linux64 target.
10008
10009 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
10010
10011         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
10012         not TARGET_M32RX_MASK.
10013
10014 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
10015
10016         PR target/13557
10017         * config/sparc/sparc.c (function_arg): Reorder the cases.
10018
10019 2004-01-19  Per Bothner  <per@bothner.com>
10020
10021         Move cpp_reader's line_maps field to a shared global.
10022         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
10023         and change the type to a pointer rather than a struct.
10024         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
10025         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
10026         Likewise.
10027         * cppfiles.c (validate_pch):  Likewise.
10028         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
10029         Likewise.
10030         * cpperror.c (print_location):  Likewise.
10031         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
10032         * cppinit.c (cpp_create_reader):  Handle new parameter.
10033         (cpp_destroy):  Don't free line_maps - that's no longer our job.
10034         * input.h (line_table):  New variable.
10035         * toplev.c (line_table):  Declare variable.
10036         (general_init):  Initialize line_table.
10037         * c-opts.c (c_common_init_options):  Pass line_table to
10038         cpp_create_reader.
10039         * fix-header.c (read_scan_file):  New local variable line_table.
10040         Initialize, and pass it to cpp_create_reader.
10041         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
10042         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
10043
10044 2004-01-19  Per Bothner  <per@bothner.com>
10045
10046         Implement a cache for linemap_lookup.
10047         * line-map.h (struct_line_maps):  Add cache field.
10048         * line-map.c (linemap_init):  Zero cache field.
10049         (linemap_add):  Set cache field to offset of newly allocated map.
10050         (linemap_lookup):  Use and set cache field.
10051
10052 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10053
10054         PR optimization/13567
10055         * cse.c (cse_basic_block): Call cse_insn with a non-null
10056         libcall_insn for the last SET insn of a no-confilict block.
10057
10058 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
10059
10060         * Makefile.in (target_noncanonical, program_transform_name): Use
10061         immediate define instead of deferred.
10062         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
10063         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
10064         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
10065         deferred backquote.
10066
10067 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
10068
10069         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
10070         true unconditionally.
10071         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
10072         Remove.
10073         (build_unary_op, build_modify_expr): Don't handle extended
10074         lvalues.
10075         (build_component_ref, build_conditional_expr): Call non_lvalue
10076         instead of pedantic_non_lvalue.
10077         (build_c_cast): Don't condition use of non_lvalue on pedantic.
10078         * fold-const.c (fold): Don't check pedantic directly for
10079         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
10080         passed to pedantic_non_lvalue.
10081         * doc/extend.texi: Remove documentation of extended lvalues.
10082
10083 2004-01-19  Roger Sayle  <roger@eyesopen.com>
10084
10085         PR optimization/5263
10086         * simplify-rtx.c (associative_constant_p): Delete.
10087         (simplify_associative_operation): Rewrite to linearize terms, and
10088         attempt to simplify new term against both left and right subterms.
10089         (simplify_binary_operation): Call swap_commutative_operands_p on
10090         op0 and op1, not trueop0 and trueop1.  Move the initialization of
10091         trueop0 and trueop1 down to where first needed.
10092         (simplify_relational_operation): Likewise.
10093         * rtlanal.c (commutative_operand_precedence): Also order constant
10094         operands using avoid_constant_pool_reference.
10095
10096 2004-01-19  Richard Henderson  <rth@redhat.com>
10097
10098         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
10099         don't check memory mode.
10100         (unaligned_memory_operand): Likewise.
10101         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
10102         abort for op0 not MEM.
10103
10104         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
10105         is not a reg, copy to a scratch first.
10106         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
10107         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
10108         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
10109         (reload_inqi, reload_inhi): Fix mode of op0.
10110         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
10111         reload_outhi_help): Likewise.  Use define_insn_and_split.
10112
10113         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
10114         as well as $29 dead.
10115
10116 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
10117
10118         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
10119         "tls_object" for thread-local objects.
10120         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
10121         "#tls" for thread-local sections.
10122         * configure.ac (thread-local checks): Specify --fatal-warnings in
10123         every binutils-specific checks.  For sparc*-*-*, test whether the
10124         OS is Solaris and the tools are native and act accordingly.
10125         * configure: Rebuild.
10126
10127 2004-01-19  Jeff Law  <law@redhat.com>
10128
10129         * contrib.texi: Update Paolo Carlini's entry.  New entries for
10130         Jerry Quinn and Petur Runolfsson.
10131
10132 2004-01-19  Roger Sayle  <roger@eyesopen.com>
10133
10134         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
10135         size, don't use the larger zero-extending loads.
10136
10137 2004-01-19  Richard Henderson  <rth@redhat.com>
10138
10139         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
10140         * alpha.md (UNSPEC_NT_LDA): Remove.
10141         (UNSPEC_CVTLQ, cvtlq): New.
10142         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
10143         (extendsidi2_fix): Remove.
10144         (extendsidi2 splitter): Use cvtlq.
10145         (extendsidi2 fp peepholes): Remove.
10146         (cvtql): Use SFmode instead of SImode.
10147         (fix_trunc?fsi): Update to match.
10148         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
10149         (movsi): Rename from movsi_nofix, remove f alternatives.
10150         (movsi_nt_vms): Similarly.
10151         (movsi_fix, movsi_nt_vms_fix): Remove.
10152         (nt_lda): Remove.
10153         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
10154
10155 2004-01-19  Jan Hubicka  <jh@suse.cz>
10156
10157         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
10158         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
10159         list.
10160         (cgraph_remove_unreachable_nodes): New function
10161         (cgraph_decide_inlining_of_small_function): Fix pasto.
10162         (cgraph_decide_inlining_incrementally): Fix pasto.
10163         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
10164
10165 2004-01-19  Steven Bosscher  <stevenb@suse.de>
10166
10167         * gengtype.c (header_file): Make it static.
10168         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
10169         * gengtype.h (header_file): No longer extern.
10170
10171 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
10172
10173         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
10174         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
10175         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
10176
10177 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
10178
10179         * stmt.c (HAVE_casesi): Define it not already defined.
10180         (HAVE_tablejump): Likewise.
10181         (expand_end_case_type): Resort to the binary tree method if
10182         neither casesi or tablejump is available.
10183
10184 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
10185
10186         * final.c (final_scan_insn): Make non-static again.
10187         * output.h (final_scan_insn): Re-add prototype.
10188         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
10189         to final_scan_insn call.
10190         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
10191         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
10192         * config/pa/pa.c (output_lbranch, output_call): Likewise.
10193         * config/sh/sh.c (print_slot): Likewise.
10194         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
10195         (output_sibcall, sparc_flat_function_epilogue): Likewise.
10196
10197 2004-01-18  Jan Hubicka  <jh@suse.cz>
10198
10199         * basic-block.h (try_redirect_by_replacing_jump): Declare.
10200         * cfgcleanup.c (try_optimize_cfg): Use it.
10201         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
10202         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
10203         Kill hack.
10204         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
10205
10206         Revert:
10207         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
10208
10209                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
10210                 even after reload, just don't remove the actual jump tables.
10211
10212 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
10213
10214         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
10215
10216 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
10217
10218         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
10219         the size of a pointer in bytes.
10220
10221 2004-01-18  Roger Sayle  <roger@eyesopen.com>
10222
10223         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
10224         live "next" variable, which could lead to an infinite loop.
10225
10226 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
10227
10228         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
10229         block.
10230
10231         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
10232         Check for NULL in the chain and remove repeated code.
10233
10234 2004-01-18  Jan Hubicka  <jh@suse.cz>
10235
10236         * coverage.c (checksum_string): Rename to ...
10237         (coverage_checksum_string): ... this one, Use crc32_string; recognize
10238         names containing random number and zero the number out in order to get
10239         match.
10240
10241 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
10242
10243         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
10244
10245 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
10246
10247         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
10248         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
10249         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
10250         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
10251         doc/trouble.texi: Remove trailing whitespace.
10252
10253 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
10254
10255         PR target/7618
10256         * config/mips/mips.c: Include cfglayout.h.
10257         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
10258         (mips_unspec_offset_high): Add temporary register argument.
10259         (mips_load_call_address): New function, split out from...
10260         (mips_expand_call): ...here.
10261         (mips_output_cplocal): New function.
10262         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
10263         (mips_emit_loadgp): New function, split out from...
10264         (mips_expand_prologue): ...here.
10265         (mips_output_mi_thunk): New function.
10266
10267 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
10268
10269         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
10270         mcpu32): Remove redundant checks for implied target predefines.
10271
10272 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
10273
10274         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
10275         Return type is unsigned int not int.
10276         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
10277         Likewise.
10278
10279 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
10280
10281         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
10282         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
10283         "GNU/Linux" and "Microsoft Windows" terminology.
10284
10285 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
10286
10287         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
10288         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
10289         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
10290         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
10291         @smallexample instead of @example.
10292
10293 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
10294
10295         * objc/objc-act.c (build_objc_method_call): Use target
10296         hooks instead of macros to determine if ..._stret
10297         dispatchers should be used (NeXT runtime only).
10298
10299 2004-01-17  Roger Sayle  <roger@eyesopen.com>
10300
10301         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
10302         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
10303
10304 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
10305
10306         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
10307         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
10308         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
10309         macros.
10310         * reload1.c (emit_reload_insns): Use them.
10311         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
10312         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
10313         for NULL PATTERN.
10314
10315 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
10316
10317         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
10318         (final_scan_insn): Update to take an additional SEEN argument.  Emit
10319         a line note after the prologue.  Make static.
10320         (line_note_exists): Remove.
10321         (final): Don't initialize line_note_exists.  Update call to
10322         final_scan_insn.
10323         * output.h (final_scan_insn): Remove prologue.
10324         * function.c (set_insn_locators): Update comment.
10325         (thread_prologue_and_epilogue_insns): Add a comment.
10326
10327 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
10328
10329         PR target/10781
10330         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
10331         Prototype.
10332         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
10333         New function.
10334         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
10335         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
10336         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
10337
10338 2004-01-17  Jan Hubicka  <jh@suse.cz>
10339
10340         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
10341         commit.
10342
10343         * toplev.c (HAVE_conditional_execution): Provide default.
10344         (rest_of_handle_reorder_blocks): For conditional_execution target
10345         update liveness once after all transformations
10346         (rest_of_compilation): Do crossjumping before ce3.
10347
10348 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
10349
10350         * alias.c (new_alias_set): Mark last_alias_set for PCH.
10351         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
10352         for PCH.
10353         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
10354         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
10355         (get_TOC_alias_set): Mark 'set' for PCH.
10356
10357 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
10358
10359         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
10360         even after reload, just don't remove the actual jump tables.
10361
10362 2004-01-17  J. Brobecker  <brobecker@gnat.com>
10363
10364         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
10365         Remove checks for is_ada() and TREE_UNSIGNED.
10366         (subrange_type_die): Emit a byte_size attribute if the subrange
10367         type size is different from the base type size.
10368         (modified_type_die): Replace call to is_ada_subrange_type() by
10369         call to is_subrange_type().
10370
10371 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
10372
10373         * config/sh/sh.c: Include ggc.h.
10374
10375 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
10376
10377         * Makefile.in (MD5_H): New.
10378         (fold-const.o): Depend on md5.h.
10379         (dwarf2out.o): Likewise.
10380         (cppfiles.o): Likewise.
10381         * cppfiles.c: Include md5.h.
10382         (should_stack_file): Check against list read from PCH file.
10383         (struct pchf_data): New.
10384         (pchf): New variable.
10385         (struct pchf_adder_info): New.
10386         (pchf_adder): New.
10387         (pchf_save_compare): New.
10388         (_cpp_save_file_entries): New.
10389         (_cpp_read_file_entries): New.
10390         (struct pchf_compare_data): New.
10391         (pchf_compare): New.
10392         (check_file_against_entries): New.
10393         * cpphash.h (_cpp_save_file_entries): Prototype.
10394         (_cpp_read_file_entries): Prototype.
10395         * cpppch.c (cpp_write_pch_state): Write the list of headers.
10396         (cpp_read_state): Read the list of headers.
10397
10398 2004-01-17  Jan Hubicka  <jh@suse.cz>
10399
10400         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
10401         builtin_expect specially.
10402         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
10403         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
10404         * invoke.texi (max-inline-insns-single): Set to 100.
10405         (large-function-insns): Set to 3000.
10406
10407 2004-01-16  Eric Christopher  <echristo@redhat.com>
10408             Chandrakala Chavva <cchavva@redhat.com>
10409
10410         * cppcharset.c (one_iso88591_to_utf8): New function.
10411         (convert_iso88591_utf8): Ditto. Use.
10412         (conversion_tab): Use.
10413         (_cpp_input_to_utf8): New function.
10414         (_cpp_init_iconv_buffer): Ditto.
10415         (_cpp_close_iconv_buffer): Ditto.
10416         * cpphash.h: Prototype new functions.
10417         (cpp_buffer): Add input_cset_desc.
10418         * cppinit.c: Add input_charset default.
10419         * cpplib.c (cpp_push_buffer): Support init and
10420         close of iconv.
10421         * cpplib.h (cpp_options): Add input_charset.
10422
10423 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
10424
10425         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
10426         * config/alpha/unicosmk.h: Remove a commented-out definition
10427         of ASM_OUTPUT_SECTION_NAME.
10428         * config/stormy16/stormy16.h: Likewise.
10429
10430 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10431
10432         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
10433         (alpha___extern_prefix_sys_stat): ... this.
10434         Apply to <sys/mount.h>, too.
10435         Tweak to match more variations.
10436         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
10437
10438         * fixinc/inclhack.def (alpha___extern_prefix,
10439         alpha___extern_prefix_standards): New hacks to obey
10440         __PRAGMA_EXTERN_PREFIX.
10441         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
10442         test.
10443         * fixinc/tests/base/standards.h: Likewise.
10444
10445         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
10446         variations.
10447         New testcase.
10448         * fixinc/tests/base/pthread.h: Handle it.
10449
10450         * fixincl/inclhack.def (bad_lval): Sort file list.
10451         Add many missing files up to Tru64 UNIX V5.1B.
10452         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
10453         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
10454         order.
10455
10456         * fixinc/fixincl.x: Regenerate.
10457
10458 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
10459
10460         * version.c (version_string): Change to 3.5.0.
10461         * doc/include/gcc-common.texi (version-GCC): Likewise.
10462
10463 2004-01-16  Jan Hubicka  <jh@suse.cz>
10464
10465         * i386.md (load_tp_di): Fix pasto.
10466
10467         PR opt/13608
10468         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
10469
10470         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
10471         pp_c_character_constant, pp_c_floating_constant,
10472         pp_c_additive_expression, pp_c_shift_expression,
10473         pp_c_equality_expression, pp_c_and_expression,
10474         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
10475         pp_c_logical_and_expression): Remove inline modifier.
10476         * dwarf2out.c (get_AT): Likewise.
10477         * et-forest.c (et_splay): Likewise.
10478         * ra.h (ra_alloc, ra_calloc): Likewise
10479
10480 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
10481
10482         * config/frv/frv-protos.h: Fix comment formatting.
10483         * config/frv/frv.c: Likewise.
10484         * config/frv/frv.h: Likewise.
10485         * config/frv/frv.md: Likewise.
10486         * config/frv/frvbegin.c: Likewise.
10487         * config/frv/frvend.c: Likewise.
10488
10489 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
10490
10491         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
10492         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
10493         LINKER_DOES_NOT_WORK_WITH_DWARF2.
10494         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
10495
10496 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
10497
10498         PR 11864
10499         * postreload.c (reload_cse_simplify_operands): Don't remove
10500         implicit extension from LOAD_EXTEND_OP.
10501
10502 2004-01-16  Jan Hubicka  <jh@suse.cz>
10503
10504         PR opt/11350
10505         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
10506         after reload.
10507         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
10508         rtl_try_redirect_by_replacing_branch): Likewise.
10509
10510 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
10511
10512         PR pch/13689
10513         * alias.c (struct alias_set_entry): Mark for GC.
10514         (alias_sets): Make static, mark for GC.
10515         (record_alias_subset): Use GC to allocate alias structures.
10516         * varray.c (element): Make generic varrays GCed.
10517
10518         PR pch/13361
10519         * c-typeck.c (constructor_asmspec): Delete.
10520         (struct initializer_stack): Delete field 'asmspec'.
10521         (start_init): Delete saving of asmspec.
10522         (finish_init): Don't update constructor_asmspec.
10523         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
10524         * stmt.c (expand_asm): Duplicate strings from tree.
10525         (expand_asm_operands): Likewise.
10526         * tree.c (tree_size): Update computation of size of STRING_CST.
10527         (make_node): Don't make STRING_CST nodes.
10528         (build_string): Allocate string with tree node.
10529         * tree.def (STRING_CST): Update comment.
10530         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
10531         (tree_string): Place contents of string in tree node.
10532         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
10533         from tree.
10534
10535         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
10536         altivec operands.
10537
10538 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
10539
10540         * c-common.h: Fix comment formatting.
10541         * c-cppbuiltin.c: Likewise.
10542         * c-pragma.c: Likewise.
10543         * calls.c: Likewise.
10544         * collect2.c: Likewise.
10545         * cppcharset.c: Likewise.
10546         * cpptrad.c: Likewise.
10547         * dbxout.c: Likewise.
10548         * defaults.h: Likewise.
10549         * dwarf2out.c: Likewise.
10550         * fold-const.c: Likewise.
10551         * genautomata.c: Likewise.
10552         * genconditions.c: Likewise.
10553         * genflags.c: Likewise.
10554         * gengtype.c: Likewise.
10555         * integrate.c: Likewise.
10556         * loop.c: Likewise.
10557         * predict.c: Likewise.
10558         * sdbout.c: Likewise.
10559
10560 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
10561
10562         * config/ia64/ia64.md (*movti_internal): C output template
10563         extracted to ia64.c.
10564         (*movti_internal_reg): Delete.
10565         (reload_inti, reload_outti): Use the correct mode on operand 2
10566         in the first place, don't fix it up in the output template.
10567         (movtf, reload_ointf, reload_outtf): New expanders.
10568         (*movtf_internal): New define_insn_and_split.
10569         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
10570         make static; do not hand TFmode CONST_DOUBLEs to split_double.
10571         (ia64_split_tmode_move): New function, body mostly pulled
10572         from ia64.md:*movti_internal.
10573         (ia64_function_arg_words): New function, extracted common
10574         logic from ia64_function_arg et seq.
10575         (ia64_function_arg_offset): Likewise.  Handle correctly the
10576         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
10577         (ia64_function_arg, ia64_function_arg_partial_nregs)
10578         (ia64_function_arg_advance): Use ia64_function_arg_words and
10579         ia64_function_arg_offset.
10580         (ia64_function_value): TCmode does not go in float regs.
10581         (ia64_secondary_reload_class): Also handle TFmode.
10582         * config/ia64/ia64-protos.h: Remove prototype for
10583         ia64_split_timode; add prototype for ia64_split_tmode_move.
10584
10585 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
10586
10587         * Makefile.in (MAINT): Make it an immediate assignment.
10588
10589 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
10590
10591         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
10592
10593 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
10594
10595         * config/h8300/coff.h: Replace Hitachi with Renesas.
10596         * config/h8300/elf.h: Likewise.
10597         * config/h8300/h8300-protos.h: Likewise.
10598         * config/h8300/h8300.c: Likewise.
10599         * config/h8300/h8300.h: Likewise.
10600         * config/h8300/h8300.md: Likewise.
10601         * config/h8300/lib1funcs.asm: Likewise.
10602
10603 2004-01-15  Andrew Pinski  <apinski@apple.com>
10604
10605         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
10606         around it.
10607
10608 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
10609
10610         * config/h8300/h8300.c (h8300_return_in_memory): New.
10611         (TARGET_STRUCT_VALUE_RTX): Likewise.
10612         (TARGET_RETURN_IN_MEMORY): Likewise.
10613         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
10614         (RETURN_IN_MEMORY): Likewise.
10615
10616 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
10617
10618         PR optimization/13375
10619         * gcse.c (handle_avail_expr): Just return if the source is not a
10620         single set.
10621
10622 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
10623             Daniel Jacobowitz  <drow@mvista.com>
10624
10625         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
10626         (EQUIV): Define.
10627         (ARM_FUNC_ALIAS): New macro.
10628         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
10629         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
10630
10631 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10632
10633         PR optimization/12372
10634         * calls.c (expand_call): Add call_fusage data for stack arguments in
10635         constant calls.
10636
10637 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
10638
10639         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
10640         (rs6000_elf_declare_function_name): Formatting.
10641         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
10642
10643 2004-01-15  Jan Hubicka  <jh@suse.cz>
10644
10645         PR bootstrap/13692
10646         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
10647         previous patch.
10648
10649 2004-01-15  Richard Henderson  <rth@redhat.com>
10650
10651         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
10652         integer regs of the same call-savedness.
10653
10654 2004-01-15  Andreas Schwab  <schwab@suse.de>
10655
10656         PR bootstrap/13562
10657         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
10658         status for NOTB/NOTW/NEGW methods.
10659
10660 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
10661
10662         * doc/invoke.texi: Update dump file names.  Fix a typo.
10663
10664 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
10665
10666         * builtins.c (expand_builtin_va_end): Don't use
10667         EXPAND_BUILTIN_VA_END.
10668         * system.h (EXPAND_BUILTIN_VA_END): Poison.
10669         * config/d30v/d30v.h: Remove a commented-out definition of
10670         EXPAND_BUILTIN_VA_END.
10671         * config/stormy16/stormy16.h: Likewise.
10672
10673 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
10674
10675         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
10676         * targhooks.c (default_struct_value_rtx): Don't use
10677         STRUCT_VALUE_INCOMING_REGNUM.
10678
10679 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
10680
10681         PR bootstrap/12744
10682         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
10683         GENINSRC and not parsedir.  Define srcextra as a langhook.
10684         * configure: Regenerate.
10685         * Makefile.in: Suppress default .l.c rule.  Don't substitute
10686         parsedir and delete all references throughout.  Conditionally define
10687         rule for srcextra dependent on GENINSRC.
10688         (stmp-docobjdir): Delete.
10689         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
10690         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
10691         and gengtype-yacc.h back to source directory.
10692         (maintainer-clean): Delete all parse files in source directory.
10693         (distclean): Delete generated files.
10694
10695         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
10696         (objc-parse.c, objc-parse.y): Don't use parsedir.
10697         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
10698         directory if requested.
10699         (po-generated): Don't use parsedir.
10700         (objc.maintainer-clean): Delete above files from source directory.
10701
10702 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
10703
10704         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
10705
10706 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
10707
10708         * doc/tm.texi: Replace RETURN_IN_MEMORY with
10709         TARGET_RETURN_IN_MEMORY.
10710
10711 2004-01-15  Jan Hubicka  <jh@suse.cz>
10712
10713         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
10714         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
10715         functions accepting SSE arguments
10716         (function_arg): Warn only when asked to warn.
10717         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
10718
10719 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
10720
10721         * c-parse.in (stmts_and_decls): Make label at end of compound
10722         statement a hard error.
10723
10724 2004-01-14  Jan Hubicka  <jh@suse.cz>
10725
10726         * cgraph.c (create_edge): Use local.redefined_extern_inline.
10727         * cgraph.h (cgraph_local_info): Sort fields by size; add
10728         redefined_extern_inline
10729         (cgraph_global_info): Sort fields by size.
10730         (cgraph_node): Likewise.
10731         * cgraphunit.c (cgraph_finalize_function): Se
10732         local.redefined_extern_inline on redefinition.
10733         (cgraph_analyze_function): Use it; fix formating.
10734
10735 2004-01-14  Jan Hubicka  <jh@suse.cz>
10736
10737         PR c++/10776
10738         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
10739         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
10740         bitmaps
10741         (cache_size): New variable
10742         (add_dependence): Update use; canonize early memory locations
10743         (sched_analyze_1): Likewise.
10744         (sched_analyze_2): Likewise.
10745         (init_dependency_caches): Initialize bitmaps.
10746         (free_dependency_caches): Free bitmaps
10747
10748 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
10749
10750         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
10751         targetm.calls.strict_argument_naming().
10752         * target.h: Likewise.
10753
10754 2004-01-14  Richard Henderson  <rth@redhat.com>
10755
10756         PR debug/13231
10757         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
10758         instructions.
10759
10760 2004-01-14  Richard Henderson  <rth@redhat.com>
10761
10762         PR c++/12491
10763         * except.c (struct eh_region): Add u.fixup.resolved.
10764         (resolve_one_fixup_region): Split out from ...
10765         (resolve_fixup_regions): ... here.
10766
10767 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
10768
10769         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
10770
10771 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
10772
10773         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
10774         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
10775         (STRUCT_VALUE): Remove.
10776
10777 2004-01-14  Steven Bosscher  <stevenb@suse.de>
10778
10779         * system.h: Poison PROMOTED_MODE
10780         * integrate.c (expand_inline_function): Don't mention the
10781         PROMOTED_MODE.
10782         * loop.c (update_giv_derive): Same.
10783         * tree.h (DECL_RTL): Same.
10784
10785 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
10786
10787         PR target/9365
10788         * sh.c (gen_block_redirect): Add special handling of RETURN.
10789         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
10790         far branch target (i.e. it's a return).
10791
10792 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
10793
10794         * regrename.c (find_oldest_value_reg): Fix a warning.
10795
10796 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
10797
10798         PR bootstrap/12527
10799         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
10800         Move linux-gas.h and linux-elf.h before aout.h.
10801         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
10802         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
10803
10804 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
10805
10806         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
10807         (CONST_INT, VOIDmode, ...).
10808
10809 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
10810
10811         * regrename.c (find_oldest_value_reg): If the replacement uses
10812         multiple hard registers, check that all of them are in CLASS.
10813
10814 2004-01-14  Jan Hubicka  <jh@suse.cz>
10815
10816         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
10817         impossible.
10818
10819 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
10820
10821         * Makefile.in: Define MAINT from --enable-maintainer-mode.
10822
10823 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
10824
10825         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
10826         Calculate always vrsave_mask if TARGET_ALTIVEC.
10827         (rs6000_emit_prologue): Emit code for vrsave
10828         only if TARGET_ALTIVEC_VRSAVE.
10829         (rs6000_emit_epilogue): Likewise.
10830
10831 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
10832
10833         * config/sparc/sparc.md (tie_add32): Fix pasto.
10834         (tie_add64): Likewise.
10835
10836 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10837
10838         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
10839
10840 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
10841
10842         * config/iq2000/iq2000-protos.h: Fix comment formatting.
10843         * config/iq2000/iq2000.c: Likewise.
10844         * config/iq2000/iq2000.md: Likewise.
10845
10846 2004-01-14  J. Brobecker  <brobecker@gnat.com>
10847
10848         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
10849         (subrange_type_die): Add handle for nameless subrange types.
10850
10851 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
10852
10853         * config/h8300/h8300-protos.h: Replace do_movsi with
10854         h8300_expand_movsi.
10855         * config/h8300/h8300.c (do_movsi): Change to
10856         h8300_expand_movsi.
10857         * config/h8300/h8300.md (movsi): Replace do_movsi with
10858         h8300_expand_movsi.
10859         (movsf): Likewise.
10860
10861 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
10862
10863         * config/h8300/h8300.c (dosize): Change to
10864         h8300_emit_stack_adjustment.  Update callers.
10865
10866 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
10867
10868         * config/h8300/h8300.md (movstrictqi): Add an alternative with
10869         the source being post_inc.  Tighten the predicate for the
10870         destination to register_operand.
10871         (movstricthi): Likewise.
10872
10873 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
10874
10875         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
10876         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
10877         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
10878
10879 2004-01-14  Jan Hubicka  <jh@suse.cz>
10880
10881         Partial fix PR c++/12850
10882         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
10883         at zero nest level.
10884
10885 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
10886
10887         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
10888         pseudo-register.
10889
10890 2004-01-13  Devang Patel <dpatel@apple.com
10891
10892         PR debug/7078
10893         * dbxout.c (dbxout_symbol_name): Emit mangled names for
10894         NAMESPACE_DECL memebers.
10895
10896 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
10897
10898         PR c++/12709
10899         * c-common.c (finish_fname_decls): Use the chain only if the
10900         tree is an expr_stmt.
10901
10902 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
10903
10904         * rtl.def: Add comment about new option in automata_option.
10905
10906         * genautomata.c (PROGRESS_OPTION): New macro.
10907         (progress_flag): New global variable.
10908         (gen_automata_option): Process `progress'.
10909         (transform_insn_regexps, check_unit_distributions_to_automata,
10910         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
10911         expand_automata, write_automata): Print about the progress only if
10912         progress_flag.  Remove fflush.
10913         (initiate_automaton_gen): Process command line flag `-progress'.
10914
10915         * doc/md.texi: Describe the new option.
10916
10917 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10918
10919         * cfg.c (dump_bb): Dump entry edges.
10920
10921 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
10922
10923         * arm.c (thumb_legitimate_address_p): Only allow constant pool
10924         references from SImode.
10925         * arm.md (thumb_movhi_insn): Don't allow minipool references.
10926
10927 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
10928
10929         * system.h (TEXT_SECTION): Poison.
10930         * varasm.c (text_section): Don't use TEXT_SECTION.
10931         * config/sh/sh.c (sh_file_start): Fix a comment typo.
10932         * doc/tm.texi (TEXT_SECTION): Remove.
10933
10934 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
10935
10936         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
10937
10938 2004-01-12  James E Wilson  <wilson@specifixinc.com>
10939
10940         * unwind-libunwind.c: Delete.
10941
10942 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
10943
10944         PR 13656
10945         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
10946         oldtype is set, set *newtypep or *oldtypep too.  Do not set
10947         them at the very end.
10948         (validate_proto_after_old_defn): Restructure for comprehensibility;
10949         make error messages clearer.
10950
10951 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
10952
10953         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
10954         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
10955         * varray.c: No need to prototype error.
10956         (varray_check_failed): Wrap long string onto two lines.
10957         (varray_underflow): New function.
10958
10959 2004-01-13  Steven Bosscher  <stevenb@suse.de>
10960
10961         PR c++/13376
10962         * function.h (struct function): Kill `name' field.
10963         (current_function_name): Make it an extern function.
10964         * function.c (current_function_name): New function.
10965         * graph.c: Update all uses of current_function_name.
10966         * gcse.c: Likewise.
10967         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
10968         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
10969         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
10970         instead of a strcmp with "main".
10971
10972 2004-01-13  Jan Hubicka  <jh@suse.cz>
10973
10974         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
10975
10976         * cgraphunit.c (cgraph_optimize_function):  Always do
10977         optimize_inline_calls when there is always_inline callee.
10978         (cgraph_decide_inlining): Fix formating.
10979         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
10980         functions.
10981         (expand_call_inline): Likewise.
10982         * toplev.h (sorry): Fix prototype.
10983
10984 2004-01-12  Roger Sayle  <roger@eyesopen.com>
10985
10986         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
10987         conditional jumps that drop through to unconditional jumps or the
10988         end of the sequence.
10989
10990 2004-01-13  Jan Hubicka  <jh@suse.cz>
10991
10992         * alias.c (new_alias_set): Construct the alias_set varray.
10993         (init_alias_once): Don't do it here.
10994
10995 2004-01-12  Marc Espie <espie@openbsd.org>
10996
10997         * system.h: handle YYBYACC like YYBISON.
10998
10999 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
11000
11001         PR target/10847
11002         * config.gcc: No longer includes conflicting header sparc/sol2.h when
11003         building on sparc64-*-openbsd*.
11004
11005 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
11006
11007         PR debug/13539
11008         * dbxout.c (dbxout_type): Protected inheritance is not
11009         private but protected.
11010
11011 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
11012
11013         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
11014
11015 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
11016
11017         PR optimization/12508.
11018         * combine.c (try_combine): Remove a dead set in a parallel
11019         even if its destination is a subreg.
11020
11021         Revert:
11022         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
11023         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
11024         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
11025
11026 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
11027
11028         * real.c: Update copyright date.
11029         * emit-rtl.c: Likewise.
11030         * rtl.h: Likewise.
11031         * dwarf2out.c: Likewise.
11032         * config/rs6000/darwin-ldouble.c: Likewise.
11033         * config/rs6000/rs6000.md: Likewise.
11034
11035 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
11036
11037         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
11038         TFmode to SImode libfuncs.
11039
11040 2004-01-12  Roger Sayle  <roger@eyesopen.com>
11041
11042         PR middle-end/11397
11043         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
11044
11045 2004-01-12  Jan Hubicka  <jh@suse.cz>
11046
11047         PR opt/12826
11048         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
11049         stored.
11050
11051         PR opt/12863
11052         * cfgcleanup.c (label_is_jump_target_p): Move to...
11053         * rtlanal.c (label_is_jump_target_p): ... here.
11054         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
11055         edges unified with branch edges.
11056
11057 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
11058
11059         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
11060         high word of an integral CONST_DOUBLE.
11061
11062 2004-01-12  Paul Brook  <paul@codesourcery.com>
11063
11064         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
11065
11066 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
11067
11068         PR target/13585
11069         * sh-protos.h (check_use_sfunc_addr): Declare.
11070         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
11071         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
11072
11073 2004-01-12  Jan Hubicka  <jh@suse.cz>
11074
11075         * alias.c:  Invlude varray.h
11076         (alias_sets): Turn into varray.
11077         (get_alias_set_entry): Use VARRAY; mark inline.
11078         (mems_in_disjoint_alias_sets_p): Mark inline.
11079         (record_alias_subset): Use varray.
11080         (init_alias_once): Initialize varray.
11081         (new_alias_set): Grow array.
11082         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
11083
11084 2004-01-12  Jan Hubicka  <jh@suse.cz>
11085
11086         Partial fix for PR opt/10776 II
11087         * cselib.c: Include params.h
11088         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
11089         locations.
11090         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
11091         * Makefile.in (cselib.o): Depend on params.h
11092
11093 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
11094
11095         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
11096         simplify_unary_operation if the operand has a known mode.
11097
11098 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
11099
11100         PR target/13534
11101         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
11102         predicate to handle 'ld' conform addresses.
11103         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
11104         contraint.
11105         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
11106         are memory contraints.
11107         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
11108         New prototype.
11109         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
11110         Change 'o' to 'Y' constraint.
11111         (*movdf_softfloat64): Ditto.
11112
11113 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
11114
11115         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
11116         brace-enclosed syntax in all C output statements.
11117
11118 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
11119
11120         PR target/13401
11121         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
11122         Objective-C language type value is 14.
11123
11124 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
11125
11126         PR c/12148
11127         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
11128         `int' in a number of places to make sure we always have a SImode
11129         and not a HImode.  Add a 'L' suffix to a number of constants.
11130
11131 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11132
11133         * pa.c: Don't include obstack.h.
11134
11135         * pa.md: Correct constraint in pattern for loading PIC label address.
11136
11137 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
11138
11139         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
11140          before defining.
11141
11142 2004-01-11  Steven Bosscher  <stevenb@suse.de>
11143
11144         PR fortran/9972
11145         * toplev.c (rest_of_handle_inline): Also consider functions
11146         for deferral if the language is GNU F77.
11147
11148 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
11149
11150         * c-decl.c (diagnose_arglist_conflict): Add missing space to
11151         diagnostic messages.
11152
11153 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
11154
11155         PR middle-end/13392
11156         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
11157         to drop through label.  Don't fall back to SCC even when conditional
11158         jump has not been found.
11159
11160 2004-01-11  Jan Hubicka  <jh@suse.cz>
11161
11162         * invoke.texi: Fix syntax error in previous patch.
11163
11164         Partial fix for PR opt/10776
11165         * Makefile.in (reload.o): Include param.h
11166         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
11167         * reload.c: Include params.h.
11168         (find_equiv_reg): Work limiting check.
11169         * invoke.texi: Document.
11170
11171 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
11172
11173         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
11174         out-of-bounds accesses to string constants.  Simplify mips16
11175         case accordingly.
11176
11177 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
11178
11179         PR optimization/13469
11180         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
11181         reload_cse_regs (-fnon-call-exceptions only).
11182
11183 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
11184
11185         * config/mcore/lib1.asm: Fix comment formatting.
11186         * config/mcore/mcore-elf.h: Likewise.
11187         * config/mcore/mcore.c: Likewise.
11188         * config/mcore/mcore.h: Likewise.
11189         * config/mcore/mcore.md: Likewise.
11190
11191 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
11192
11193         * c-decl.c (duplicate_decls): Break apart into...
11194         (diagnose_arglist_conflict, validate_proto_after_old_defn)
11195         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
11196         ... these new functions.  Restructure for comprehensibility.
11197         Remove various archaic special cases.  Always report the
11198         location of the previous declaration when a diagnostic is issued.
11199         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
11200         (match_builtin_function_types): Delete unnecessary forward declaration.
11201
11202 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
11203
11204         * genautomata.c (make_automaton, NDFA_to_DFA):
11205         Print progress bars with '.' characters instead of '*'.
11206         (build_automaton): Change notes to match.
11207
11208 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
11209
11210         * config/m32r/m32r.md: Use define_constants for unspec and
11211         unspec_volatile.
11212
11213 2004-01-10  Jan Hubicka  <jh@suse.cz>
11214
11215         PR opt/11635
11216         * expr.c (expand_expr_real):  More curefully expand union casts.
11217
11218 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
11219
11220         * config/m32r/m32r.md (flush_icache): Use 1 for
11221         unspec_volatile.
11222
11223 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
11224             James E Wilson  <wilson@specifixinc.com>
11225
11226         PR debug/12860
11227         * dbxout.c (dbxout_symbol): Remove initialization of
11228         current_sym_code, current_sym_value, and current_sym_addr.
11229         (dbxout_symbol_location): Same.
11230         (dbxout_prepare_symbol): Zero current_sym_code,
11231         current_sym_value, and current_sym_addr.
11232
11233 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
11234
11235         * tree.c (get_unwidened): Reorder conditions so that the null pointer
11236         check is done first.
11237
11238 2004-01-09  Eric Christopher  <echristo@redhat.com>
11239
11240         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
11241         if we're running mark_constant_function.
11242
11243 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
11244
11245         PR target/12561
11246         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
11247
11248 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
11249
11250         PR debug/11231
11251         * dbxout.c (dbxout_type_fields): Return if any item is
11252         error_mark_node or the type is error_mark_node.
11253
11254 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
11255
11256         * config/rs6000/darwin-ldouble.c: Add big comment explaining
11257         exactly what is expected as a 'long double'.
11258         (_xlqadd): When a value to be returned is representable as a
11259         'double', just return it directly, do not construct it using a union.
11260         Also, correct final fixup.
11261         (_xlqmul): Likewise.
11262         (_xlqdiv): Likewise.
11263         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
11264
11265         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
11266
11267 2004-01-09  Richard Henderson  <rth@redhat.com>
11268
11269         * recog.c (constrain_operands): Validate mem operands.
11270
11271 2004-01-09   James E Wilson  <wilson@specifixinc.com>
11272
11273         * gcc.c (init_spec): Remove -lunwind from shared case.
11274         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
11275
11276 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
11277
11278         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
11279         * configure: Regenerate
11280
11281 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
11282
11283         PR c/11234
11284         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
11285         between function and object pointers.
11286         (digest_init): When comparing a pointer to function type to the
11287         target type, only apply TREE_TYPE once to the pointer to function
11288         type.
11289         * except.c (for_each_eh_label_1): Treat data as a pointer to a
11290         function pointer rather than casting it to a function pointer.
11291         (for_each_eh_label): Update caller.
11292         * recog.h (struct insn_data): Use a struct or union for output.
11293         * genoutput.c (output_insn_data): Update.
11294         * final.c (get_insn_template): Update.
11295
11296 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
11297
11298         * expr.h (expand_expr): Make it a macro, not a function.
11299         (expand_expr_real): New function.
11300         * expr.c (store_expr): Adjust logic for deciding whether or not to
11301         copy the value returned by expand_expr.
11302         (expand_expr): Rename to ...
11303         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
11304         calls to language hooks.
11305         * c-common.h (c_expand_expr): Adjust prototype.
11306         * c-common.c (c_expand_expr): Add alt_rtl parameter.
11307         * langhooks-def.h (lhd_expand_expr): Change prototype.
11308         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
11309         * langhooks.h (lang_hooks): Change type of expand_expr.
11310         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
11311         (last_expr_alt_rtl): Likewise.
11312         (expand_expr_stmt_value): Set last_expr_alt_rtl.
11313         (clear_last_expr): Clear it.
11314         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
11315         (expand_end_bindings): Save and restor last_expr_alt_rtl.
11316         * tree.def (RTL_EXPR): Give it an additional operand.
11317         * tree.h (RTL_EXPR_ALT_RTL): New macro.
11318
11319 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
11320
11321         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
11322         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
11323
11324 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
11325
11326         PR target/13380.
11327         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
11328         or (ne:SI (reg:CC 17) (const_int 0)).
11329         Be specific about modes wherever possible.
11330
11331 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
11332
11333         * config/m32r/m32r.c (m32r_expand_block_move): Call
11334         gen_movestrsi_internal with two more arguments.
11335         (m32r_output_block_move): Adjust operand numbers.
11336         Properly update the source and destination pointers.
11337         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
11338         'r+'.  Change the set detinations to match_operand.
11339
11340 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
11341
11342         * final.c (FIRST_INSN_ADDRESS): Remove.
11343         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
11344         * system.h (FIRST_INSN_ADDRESS): Poison.
11345         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
11346         * config/m32r/m32r-protos.h: Remove the prototype for
11347         m32r_first_insn_address.
11348         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
11349         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
11350         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
11351
11352 2004-01-09  J. Brobecker  <brobecker@gnat.com>
11353
11354         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
11355         we just created.
11356         (is_ada_subrange_type): DIEs for enumeration subtypes should be
11357         emitted as subrange types too.
11358         (subrange_type_die): Add handling of enumeration subtypes.
11359
11360 2004-01-08  Richard Henderson  <rth@redhat.com>
11361
11362         PR opt/12441
11363         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
11364         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
11365         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
11366         (ix86_address_cost): Be prepared for SUBREGed registers.
11367         (legitimate_address_p): Accept SUBREGed registers.
11368
11369 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
11370
11371         * Makefile.in: Rename configure.in to configure.ac
11372         * doc/sourcebuild.texi: Likewise.
11373         * configure: Regenerate.
11374         * config.in: Regenerate.
11375
11376 2004-01-08  Stuart Hastings  <stuart@apple.com>
11377
11378         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
11379
11380 2004-01-08  Jan Hubicka  <jh@suse.cz>
11381
11382         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
11383
11384 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
11385
11386         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
11387         (UNSPEC_FIX_TRUNC_TF): New constant.
11388         (movtf_internal): Make splitter active only when insn is active.
11389         (extenddftf2): Rewrite to properly load zero into low part.
11390         (extenddftf2_internal): New.
11391         (extendsftf2): Rewrite.
11392         (truncdftf2): Correct length.
11393         (floatditf2): Delete.
11394         (fix_trunc_helper): New.
11395         (fix_trunctfdi2): Use fix_trunc_helper.
11396         (fix_trunctfsi2): Likewise.fix_trunc
11397         (fix_trunctfsi2_internal): New.
11398
11399         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
11400         addresses are legitimate on Darwin even when flag_pic.
11401         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
11402         non-offsettable addresses for loads of TFmode constants.
11403
11404 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
11405
11406         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
11407         variables in the appropriate bss section.
11408
11409 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
11410
11411         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
11412         target_flags has MASK_POWERPC64 when -m64.
11413         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
11414         to 620, 630, power3, power4 and rs64a entries.
11415         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
11416
11417 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
11418
11419         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
11420         floating-point constants.
11421
11422 2004-01-08  J. Brobecker  <brobecker@gnat.com>
11423
11424         * dwarf2out.c (subrange_type_die): Add context_die parameter.
11425         Create the subrange_type DIE using the given context DIE.
11426         (modified_type_die): Update call to subrange_type_die.
11427
11428 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
11429
11430         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
11431         Add multiple-include guard.
11432
11433 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
11434
11435         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
11436         all vector constant loadable by vsplt*.
11437         (output_vec_const_move): Likewise.
11438
11439 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
11440
11441         PR c/6024
11442         * c-typeck.c (comptypes): Only treat enumerated types in the same
11443         translation unit as compatible with each other when they are the
11444         same type.
11445         * doc/extend.texi: Update.
11446
11447 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
11448
11449         PR c/12165
11450         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
11451         array type from the array element type.
11452
11453 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
11454
11455         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
11456         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
11457         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
11458         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
11459         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
11460
11461 2004-01-06  Eric Christopher  <echristo@redhat.com>
11462
11463         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
11464         (DWARF2_DEBUGGING_INFO): Define.
11465         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
11466         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
11467         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
11468         for irix as.
11469         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
11470         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
11471         * config/mips/iris5gas.h: Ditto.
11472         (DBX_DEBUGGING_INFO): Remove.
11473         (DWARF2_DEBUGGING_INFO): Ditto.
11474         (MIPS_DEBUGGING_INFO): Ditto.
11475         (PREFERRED_DEBUGGING_TYPE): Ditto.
11476         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
11477         (PREFERRED_DEBUGGING_TYPE): Ditto.
11478         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
11479         * config/mips/elf64.h: Ditto.
11480
11481 2004-01-06  Jan Hubicka  <jh@suse.cz>
11482
11483         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
11484         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
11485
11486 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
11487
11488         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
11489         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
11490         * config/rs6000/darwin-ldouble.c: New.
11491
11492         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
11493         for constants.
11494         (constant_subword): Delete.
11495         * rtl.h (constant_subword): Delete prototype.
11496         (immed_double_const): Is not in varasm.c.
11497         * simplify-rtx.c (simplify_immed_subreg): New.
11498         (simplify_subreg): Use simplify_immed_subreg.
11499
11500         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
11501         than trying to generate RTL directly.
11502         (fix_trunctfsi2): Use expand_fix rather than trying to generate
11503         RTL directly.
11504
11505         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
11506
11507 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
11508
11509         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
11510         function into a separate macro.
11511         (read_only_data_section): Add void argument.
11512         (private_data_section): Same.
11513         (read_only_private_data_section): Same.
11514         (toc_section): Same.
11515
11516 2004-01-06  Jan Hubicka  <jh@suse.cz>
11517
11518         * invoke.texi:  Remove typo in last change.
11519
11520         PR target/10301
11521         * config.gcc: Accept opteron and athlon-64 as variants
11522         of k8.
11523         * i386.c (override_options): Likewise.
11524         * invoke.texi (i386 -mtune): Expand documentation.
11525
11526 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
11527
11528         * alias.c: Fix comment typos.
11529         * builtins.c: Likewise.
11530         * cfg.c: Likewise.
11531         * df.c: Likewise.
11532         * dominance.c: Likewise.
11533         * dwarf2out.c: Likewise.
11534         * emit-rtl.c: Likewise.
11535         * expr.c: Likewise.
11536         * final.c: Likewise.
11537         * fold-const.c: Likewise.
11538         * gcse.c: Likewise.
11539         * genattrtab.c: Likewise.
11540         * genrecog.c: Likewise.
11541         * gensupport.c: Likewise.
11542         * ggc-zone.c: Likewise.
11543         * integrate.c: Likewise.
11544         * local-alloc.c: Likewise.
11545         * loop.c: Likewise.
11546         * recog.c: Likewise.
11547         * regmove.c: Likewise.
11548         * reg-stack.c: Likewise.
11549         * reorg.c: Likewise.
11550         * rtlanal.c: Likewise.
11551         * rtl.h: Likewise.
11552         * sched-ebb.c: Likewise.
11553         * simplify-rtx.c: Likewise.
11554         * toplev.c: Likewise.
11555         * varasm.c: Likewise.
11556
11557 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
11558
11559         * doc/install.texi: Fix typos.
11560         * doc/invoke.texi: Likewise.
11561         * doc/md.texi: Likewise.
11562
11563 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
11564
11565         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
11566
11567 2004-01-06  Jan Hubicka  <jh@suse.cz>
11568
11569         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
11570         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
11571         of MMX_REGPARM.
11572         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
11573         add MMX_REGPARM.
11574         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
11575         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
11576         (MMX_REGPARM_MAX): Similarly for -mmmx.
11577
11578 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
11579
11580         * config/sh/linux.h: Fix comment formatting.
11581         * config/sh/netbsd-elf.h: Likewise.
11582         * config/sh/sh.c: Likewise.
11583         * config/sh/sh.h: Likewise.
11584         * config/sh/vxworks.h: Likewise.
11585
11586 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
11587
11588         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
11589         * toplev.c (output_file_directive): Don't use
11590         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
11591
11592 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
11593
11594         * toplev.c: Fix broken checkin of 2003-12-30.
11595
11596 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
11597
11598         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
11599         (USING_MMAP): We don't support non-mmap.
11600         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
11601         large objects.
11602         (struct page_entry): Remove bytes_free.
11603         (struct page_table_chain): Remove.
11604         (struct globals): Remove page_table member.
11605         (loookup_page_table_entry): Function deleted.
11606         (set_page_table_entry): Ditto.
11607         (ggc_allocated_p): No longer need page table lookups.
11608         (ggc_marked_p): Ditto.
11609         (alloc_small_page): Don't care about bytes_free anymore.
11610         (alloc_large_page): Round up size.
11611         (ggc_alloc_zone_1): Mark large objects as such, and calculate
11612         their size the new way.
11613         Remove page table lookups and setting.
11614         (ggc_get_size): Calculate large object size the new way.
11615         (sweep_pages): Redo to account for fact that we no longer have
11616         bytes_free.
11617         (ggc_collect): No longer need to reincrement bytes_free.
11618         (ggc_pch_alloc_object): Handle new large objects properly.
11619         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
11620
11621 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
11622
11623         * doc/invoke.texi: Remove a page break.
11624
11625 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
11626
11627         * config/avr/avr.c (avr_output_function_prologue): Remove an
11628         extra pair of curly braces.
11629
11630 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
11631
11632         * config/mn10300/mn10300.c: Fix comment formatting.
11633         * config/mn10300/mn10300.h: Likewise.
11634
11635 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11636
11637         * tree.h: Update documentation on nothrow_flag.
11638         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
11639         types.
11640
11641 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
11642
11643         * doc/invoke.texi: Remove traces of dead ports.
11644
11645 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
11646
11647         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
11648         option.
11649
11650 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
11651
11652         PR target/12945
11653         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
11654         counter labels.
11655         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
11656         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
11657         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
11658         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
11659         (mips_symbol_insns): Don't trust the local/global classification.
11660         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
11661         (override_options): Make -mabicalls -fno-unit-at-a-time imply
11662         -mno-explicit-relocs.
11663         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
11664         between local and global symbols.
11665
11666 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
11667
11668         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
11669         (mips_preferred_reload_class): Declare.
11670         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
11671         (EXTRA_CONSTRAINT): Update accordingly.
11672         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
11673         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
11674         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
11675         mips_dangerous_for_la25_p.
11676         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
11677         if mips_dangerous_for_la25_p.
11678
11679 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
11680
11681         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
11682         warning.
11683
11684 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
11685
11686         * configure.ac: Use AC_PROG_CPP_WERROR.
11687         * configure: Regenerate.
11688
11689 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
11690
11691         * .cvsignore: Add autom4te.cache.
11692
11693 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
11694
11695         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
11696         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
11697         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
11698         then architecture options, then ABI options.  General rewording.
11699
11700 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
11701
11702         PR c/3414
11703         * doc/extend.texi: Clarify definition of malloc attribute.
11704
11705 2004-01-04  Jan Hubicka  <jh@suse.cz>
11706
11707         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
11708         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
11709         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
11710         (cgraph_inline_p): Add extra argument reason.
11711         * cgraphunit.c: Minor formating fixes.
11712         cgraph_first_inlined_callee): New functions.
11713         (record_call_1): Record builtins too.
11714         (cgraph_analyze_function): Update inline_failed messages.
11715         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
11716         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
11717         (cgraph_check_inline_limits): Likewise; Add argument reason.
11718         (cgraph_set_inline_failed): New static function.
11719         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
11720         reasons.
11721         (cgraph_inline_p): Add new argument reason.
11722         * tree-inline.c (expand_call_inline):  Update warning.
11723
11724 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
11725
11726         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
11727         with modern equivalents.
11728         * configure: Regenerate.
11729
11730         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
11731         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
11732         * configure: Regenerate.
11733
11734         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
11735
11736         * configure.in: Rename to configure.ac.
11737         * configure.ac: Renamed from configure.in; make minimum necessary
11738         changes for autoconf 2.5x.
11739         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
11740         * configure: Regenerate with autoconf 2.57.
11741
11742 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
11743
11744         * config/mips/linux.h: Fix comment formatting.
11745         * config/mips/mips.c: Likewise.
11746         * config/mips/mips.h: Likewise.
11747         * config/mips/mips.md: Likewise.
11748         * config/mips/netbsd.h: Likewise.
11749         * config/mips/windiss.h: Likewise.
11750
11751 2004-01-02  Richard Henderson  <rth@redhat.com>
11752
11753         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
11754         for sse and 387; add suppression for mmx.
11755
11756 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
11757
11758         * loop.c (loop_optimize): Free all loops_info's mems.
11759
11760         * c-typeck.c (finish_init): Free spelling_base before
11761         setting it again.
11762
11763         * cfgloop.c (flow_loops_find): Always free the sbitmap
11764         headers.
11765
11766         * predict.c (estimate_probability): Free bbs after being
11767         done with it.
11768
11769 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
11770
11771         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
11772         const_8bit_operand and call_address_operand.
11773
11774 2004-01-02  Jan Hubicka  <jh@suse.cz>
11775
11776         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
11777         when there is nothing to inline but warnings are requested.
11778         (cgraph_decide_inlining):  Fix memory leak.
11779
11780 2004-01-02  Jan Hubicka  <jh@suse.cz>
11781
11782         * expr.c (store_constructor):  Fix pasto in previous patch.
11783
11784 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
11785
11786         * config/i386/cygming.h: Fix comment formatting.
11787         * config/i386/djgpp.h: Likewise.
11788         * config/i386/gthr-win32.c: Likewise.
11789         * config/i386/i386-interix.h: Likewise.
11790         * config/i386/i386.c: Likewise.
11791         * config/i386/i386.h: Likewise.
11792         * config/i386/openbsd.h: Likewise.
11793         * config/i386/winnt.c: Likewise.
11794         * config/i386/xm-mingw32.h: Likewise.
11795
11796 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
11797
11798         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
11799         copyright and last modification dates.
11800
11801 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
11802
11803         * doc/install.texi (Specific): Mention x86_64.
11804
11805 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
11806
11807         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
11808         Call force_operand on plus_constant result.
11809
11810 2004-01-01  Jan Hubicka  <jh@suse.cz>
11811
11812         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
11813         * expr.c (store_constructor): Use vec_init pattern.
11814         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
11815         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
11816         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
11817         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
11818         New patterns.
11819         (sse2_unpc?pd): Fix pattern.
11820         (sse2_movlpd): Kill.
11821         (sse2_movsd): Deal with movlpd too.
11822         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
11823         (ix86_expand_vector_init): New.
11824         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
11825         * md.texi (vec_set, vec_extract): Document
11826
11827 2003-12-31  Jan Hubicka  <jh@suse.cz>
11828
11829         PR opt/13473
11830         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
11831         ASM input operands
11832
11833         PR opt/12617
11834         * toplev.c (dump_file_index): Reorder ce3 and bbro.
11835         (dump_file): Likewise.
11836         (rest_of_compilation): Likewise.
11837
11838         PR debug/13367
11839         * cgraph.c (cgraph_function_possibly_inlined):  Even with
11840         flag_really_no_inline we inline always_inline functions.
11841         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
11842         for non-always_inline functions when there is flag_really_no_inline.
11843         (cgraph_decide_inlining): Limit work done when not inlining.
11844         (cgraph_decide_inlining_incrementally): Likewise.
11845         (cgraph_optimize_function): Check whether something got inlined.
11846         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
11847         extern inline functions when not inlining.
11848
11849         * opts.c (decode_options):  Disable crossjumping at -O1
11850         * invoke.texi (-O1): Document change.
11851
11852 See ChangeLog.10 for earlier changes.