OSDN Git Service

* defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-03-13  Richard Henderson  <rth@redhat.com>
2
3         * bb-reorder.c (fix_crossing_unconditional_branches): Use Pmode
4         for LABEL_REFs.
5
6         * defaults.h (HOT_TEXT_SECTION_NAME): Add leading dot.
7         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Likewise.
8         * doc/invoke.texi: Update to match.
9
10 2004-04-13  Ulrich Weigand  <uweigand@de.ibm.com>
11
12         * reload1.c (emit_reload_insns): Set reg_has_output_reload to one
13         after setting reg_last_reload_reg for optional output reloads.
14
15 2004-04-12  Fariborz Jahanian <fjahanian@apple.com>
16
17         * config/rs6000/altivec.h (vec_mergeh, vec_mergel):
18         Definition of these two macros are corrected by adding
19         matchine right paren.
20
21 2004-04-12  Jonathan Larmour  <jifl@eCosCentric.com>
22
23         * fix-header.c: kill(), putenv() and tzset() are POSIX not ANSI.
24
25 2004-04-12  Roger Sayle  <roger@eyesopen.com>
26
27         * config/i386/i386.c (output_387_reg_move): New function.
28         * config/i386/i386-protos.h (output_387_reg_move): Prototype here.
29         * config/i386/i386.md (*movsf_1, *movsf1_nointerunit,
30         *movdf_nointeger, *movdf_integer, *movxf_nointeger, *movxf_integer,
31         *extendsfdf2_1,  *extendsfxf2_1, *extenddfxf2_1, truncdfsf2_noop,
32         truncxfsf2_noop, truncxfdf2_noop): Call output_387_reg_move.
33
34 2004-04-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
35
36         * c-decl.c (finish_decl): Make a decl_stmt for a variable-sized
37         TYPE_DECL.
38         * c-semantics.c (genrtl_decl_stmt): Handle TYPE_DECL.
39         * stmt.c (expand_decl): Remove redundant expansion of TYPE_DOMAIN.
40         * stor-layout.c (variable_size): Don't check for MINUS_EXPR.
41         Use skip_simple_arithmetic to find SAVE_EXPR.
42         (force_type_save_exprs, force_type_save_exprs_1): New functions.
43         * tree-inline.c (remap_type, case POINTER_TYPE, case REFERENCE_TYPE):
44         Properly chain multiple pointers.
45         (copy_tree_r): Copy a TYPE_DECL.
46         * tree.c (variably_modified_type_p): Add some missing tests and
47         make some other minor changes.
48         * tree.h (force_type_save_exprs): New declaration.
49
50 2004-04-12  Roger Sayle  <roger@eyesopen.com>
51
52         * simplify-rtx.c (simplify_binary_operation) <UDIV, DIV, UMOD, MOD>:
53         Remove fall throughs.  Convert 0/x and 0%x into x&0 when x has
54         side-effects.  Don't convert x/1.0 into x if we honor signaling NaNs.
55         Convert x/-1.0 into -x if we don't honor signaling NaNs.  Convert
56         x/-1 into -x.  Optimize x%1 into x&0 if x has side-effects.  Optimize
57         x%-1 into 0 (or x&0 if x has side-effects).
58
59 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
60
61         * config/rs6000/rs6000.md: Document why a pattern is not
62         available.
63
64         * config/rs6000/rs6000.c (rs6000_emit_cmove): Disable comparisons
65         of floats on the E500.
66         (branch_positive_comparison_operator): Do not allow NE even on the
67         E500.
68
69 2004-04-11  Aldy Hernandez  <aldyh@redhat.com>
70
71         * config/rs6000/rs6000.c (rs6000_assemble_integer): Change
72         in_text_unlikely_section to in_unlikely_text_section.
73
74 2004-04-11  Roger Sayle  <roger@eyesopen.com>
75
76         * fold-const.c (fold_binary_op_with_conditional_arg):  Tweak
77         calling convention to allow a NULL_TREE to be returned.  Factor
78         sanity checks from callers, return NULL_TREE when appropriate.
79         (fold): Handle COMPOUND_EXPR operands of binary expressions
80         before COND_EXPR operands.  Use reorder_operands_p(a,b) to check
81         whether a op (b,c) can be rewritten as (b, a op c).  Simplify
82         calls to fold_binary_op_with_conditional_arg.
83
84 2004-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
85
86         * config/mips/iris5.h (current_section_flags):  Add
87         in_unlikely_executed_text and default case.
88
89 2004-04-11  Andreas Tobler  <a.tobler@schweiz.ch>
90
91         * bb-reorder.c (fix_crossing_conditional_branches): Fix bootstrap
92         failure on solaris. Place ifdef HAVE_return around gen_ret call.
93         * cfgrtl.c (force_nonfallthru_and_redirect): Remove ifdef
94         HAVE_return and place it around the place where it is needed.
95
96 2004-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
97
98         * varasm.c (text_section): Use TEXT_SECTION_ASM_OP and
99         ASM_OUTPUT_ALIGN instead of SECTION_FORMAT_STRING
100         and NORMAL_TEXT_SECTION_NAME.
101         (unlikely_text_section): Check targetm.have_named_sections
102         instead of TARGET_ASM_NAMED_SECTION and use TEXT_SECTION_ASM_OP
103         instead of SECTION_FORMAT_STRING.
104         * config/mips/iris5.h (current_section_name): Add
105         in_unlikely_executed_text case and move the abort into the switch.
106         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME): Remove.
107         (NORMAL_TEXT_SECTION_NAME): Remove.
108         (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Remove.
109         (SECTION_FORMAT_STRING): Remove.
110         * defaults.h (SECTION_FORMAT_STRING): Remove.
111         * tm.texi (NORMAL_TEXT_SECTION_NAME): Remove.
112         (SECTION_FORMAT_STRING): Remove.
113
114 2004-04-10  Joseph S. Myers  <jsm@polyomino.org.uk>
115
116         * c-typeck.c (common_type): Prefer long long to long when same
117         precision.
118
119 2004-04-09  Zack Weinberg  <zack@codesourcery.com>
120
121         PR 14887
122         * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
123         mode argument.
124         * config/ia64/ia64.c (ia64_hpux_file_end): Check
125         TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
126
127 2004-04-09  Roger Sayle  <roger@eyesopen.com>
128
129         * simplify-rtx.c (mode_signbit_p): New function to check whether
130         an RTX is an immediate constant that represents the most significant
131         bit of a given machine mode.
132         (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
133         C is the sign bit.
134         (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
135         when C2 is the sign bit.
136         (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
137         is the sign bit.  Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
138         sign bit.
139
140 2004-04-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
141
142         * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
143         TYPE_MODE.
144
145 2004-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
146
147         * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
148         of TREE_READONLY for types.
149
150 2004-04-09  Caroline Tice  <ctice@apple.com>
151
152         * basic-block.h (struct edge_def):  Add new field, crossing_edge.
153         (struct basic_block_def):  Add new field, partition.
154         (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION):  New constant macro
155         definitions.
156         (partition_hot_cold_basic_blocks): Add extern function
157         declaration.
158         * bb-reorder.c (function.h, obstack.h, expr.h, regs.h):  Add four new
159         include statements.
160         (N_ROUNDS): Increase the maximum number of rounds by 1.
161         (branch_threshold): Add array value for new round.
162         (exec_threshold): Add array value for new round.
163         (push_to_next_round_p): New function.
164         (add_unlikely_executed_notes): New function.
165         (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
166         (mark_bb_for_unlikely_executed_section): New function.
167         (add_labels_and_missing_jumps): New function.
168         (add_reg_crossing_jump_notes): New function.
169         (fix_up_fall_thru_edges): New function.
170         (find_jump_block): New function.
171         (fix_crossing_conditional_branches): New function.
172         (fix_crossing_unconditional_branches): New function.
173         (fix_edges_for_rarely_executed_code): New function.
174         (partition_hot_cold_basic_blocks): New function.
175         (find_traces):  Add an extra round for partitioning hot/cold
176         basic blocks.
177         (find_traces_1_round): Add a parameter.  Modify to push all cold blocks,
178         and only cold blocks, into the last (extra) round of collecting traces.
179         (better_edge_p): Add a parameter.  Modify to favor non-crossing edges
180         over crossing edges.
181         (bb_to_key):  Add code to correctly identify cold blocks when
182         doing partitioning.
183         (connect_traces): Modify to connect all the non-cold traces first, then
184         go back and connect up all the cold traces.
185         (reorder_basic_blocks):  Add call to add_unlikely_executed_notes.
186         * cfg.c (entry_exit_blocks): Add initialization for partition field in
187         entry and exit blocks.
188         * cfgbuild.c (make_edges): Update current_function_has_computed_jump
189         if we are doing hot/cold partitioning.
190         * cfgcleanup.c (cfglayout.h): Add new include statement.
191         (try_simplify_condjump): Modify to not attempt on blocks with jumps
192         that cross section boundaries.
193         (try_forward_edges): Likewise.
194         (merge_blocks_move_predecessor_nojumps): Likewise.
195         (merge_blocks_move_successor_nojumps): Likewise.
196         (merge_blocks_move): Likewise.
197         (try_crossjump_to_edge): Modify to not attempt after we have done
198         the block partitioning.
199         (try_crossjump_bb): Modify to not attempt on blocks with jumps that
200         cross section boundaries.
201         (try_optimize_cfg): Likewise.
202         * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
203         jumps that cross section boundaries.
204         * cfglayout.c (flags.h): Add new include statement.
205         (update_unlikely_executed_notes):  New function.
206         (fixup_reorder_chain):  Add code so when a new jumping basic block is
207         added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
208         updated appropriately.
209         (duplicate_insn_chain):  Add code to duplicate the new NOTE insn
210         introduced by this optimization.
211         * cfglayout.h (scan_ahead_for_unlikely_executed_note):  Add new
212         extern function declaration.
213         * cfgrtl.c (can_delete_note_p):  Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
214         list of notes that can be deleted.
215         (create_basic_block_structure):  Add initialization for partition field.
216         (rtl_can_merge_blocks):  Modify to test blocks for jumps that cross
217         section boundaries.
218         (try_redirect_by_replacing_jump):  Modify to not attempt on jumps that
219         cross section boundaries.
220         (commit_one_edge_insertion): Add code so newly created basic block
221         ends up in correct (hot or cold) section.  Modify to disallow
222         insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
223         (rtl_verify_flow_info_1):  Add code to verify that no fall_thru edge
224         crosses section boundaries.
225         (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
226         cross section boundaries.
227         (force_nonfallthru_and_redirect): Modify to make sure new basic block
228         ends up in correct section, with correct notes attached.
229         * common.opt (freorder-blocks-and-partition):  Add new flag for this
230         optimization.
231         * dbxout.c (dbx_function_end):  Add code to make sure scope labels at
232         the end of functions are written into the correct (hot or cold)
233         section.
234         (dbx_source_file): Add code so writing debug file information
235         doesn't incorrectly change sections.
236         * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
237         in partitioning hot/cold basic blocks into separate sections.
238         (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
239         section partitioning.
240         (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
241         conditional branches can span all of memory.
242         (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
243         unconditional branches can span all of memory.
244         * final.c (scan_ahead_for_unlikely_executed_note):  New function.
245         (final_scan_insn):  Add code to check for NOTE instruction indicating
246         whether basic block belongs in hot or cold section, and to make sure
247         the current basic block is being written to the appropriate section.
248         Also added code to ensure that jump table basic blocks end up in the
249         correct section.
250         * flags.h (flag_reorder_blocks_and_partition):  New flag.
251         * ifcvt.c (find_if_case_1):  Modify to not attempt if conversion if
252         one of the branches has a jump that crosses between sections.
253         (find_if_case_2): Likewise.
254         (ifcvt): Modify to not attempt to mark loop exit edges after
255         hot/cold partitioning has occurred.
256         * opts.c (decode_options): Code to handle new flag,
257         flag_reorder_blocks_and_partition; also to turn it off if
258         flag_exceptions is on.
259         (common_handle_option): Code to handle new flag,
260         flag_reorder_blocks_and_partition.
261         * output.h (unlikely_text_section): New extern function declaration.
262         (in_unlikely_text_section): New extern function declaration.
263         * passes.c (rest_of_handle_stack_regs):  Add
264         flag_reorder_blocks_and_partition as an 'or' condition for calling
265         reorder_basic_blocks.
266         (rest_of_handle_reorder_blocks):  Add flag_reorder_blocks_and_partition
267         as an 'or' condition for calling reorder_basic_blocks.
268         (rest_of_compilation):  Add call to partition_hot_cold_basic_blocks.
269         * print-rtl.c (print_rtx): Add code for handling new note,
270         NOTE_INSN_UNLIKELY_EXECUTED_CODE
271         * rtl.c  (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
272         (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
273         cross between section boundaries.
274         * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE):  New note instruction,
275         indicating the basic block containing it belongs in the cold section.
276         (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
277         between hot and cold sections.
278         * toplev.c (flag_reorder_blocks_and_partition):  Add code to
279         initialize this flag, and to tie it to the command-line option
280         freorder-blocks-and-partition.
281         * varasm.c (cfglayout.h):  Add new include statement.
282         (unlikely_section_label_printed):  New global variable, used for
283         determining when to output section name labels for cold sections.
284         (in_section):  Add in_unlikely_executed_text to enum data structure.
285         (text_section):  Modify code to use SECTION_FORMAT_STRING and
286         NORMAL_TEXT_SECTION_NAME macros.
287         (unlikely_text_section):  New function.
288         (in_unlikely_text_section):  New function.
289         (function_section):  Add code to make sure beginning of function is
290         written into correct section (hot or cold).
291         (assemble_start_function):  Add code to make sure stuff is written to
292         the correct section.
293         (assemble_zeros):  Add in_unlikely_text_section as an 'or' condition
294         to an if statement that was checking 'in_text_section'.
295         (assemble_variable):  Add 'in_unlikely_text_section' as an 'or'
296         condition to an if statement that was checking 'in_text_section'.
297         (default_section_type_flags_1):  Add check: if in cold section
298         flags = SECTION_CODE.
299         * config/darwin.c (darwin_asm_named_section):  Modify to use
300         SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
301         * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
302         specifically for the i386.
303         (HAS_LONG_UNCOND_BRANCH):  Defined this macro specifically for the i386.
304         * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
305         text string to something more informative.
306         (NORMAL_TEXT_SECTION_NAME): Add new definition.
307         (SECTION_FORMAT_STRING):  Add new definition.
308         * config/rs6000/rs6000.c (rs6000_assemble_integer):  Add
309         '!in_unlikely_text_section' as an 'and' condition to an if statement
310         that was already checking '!in_text_section'.
311         * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
312         UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
313         sure these are properly defined for linux on ppc.
314         * doc/invoke.texi  (freorder-blocks-and-partition): Add documentation
315         for this new flag.
316         * doc/rtl.texi (REG_CROSSING_JUMP):  Add documentation for new
317         reg_note.
318         * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
319         HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
320         these new macros.
321
322 2004-04-08  Roger Sayle  <roger@eyesopen.com>
323
324         * function.c (gen_mem_addressof): When changing the RTX from a REG
325         to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
326
327 2004-04-08  Roger Sayle  <roger@eyesopen.com>
328
329         PR target/14888
330         * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
331         truncxfdf2_noop): Provide dummy "fmov" implementations.
332
333 2004-04-08  Ian Lance Taylor  <ian@wasabisystems.com>
334
335         * gcc.c (default_compilers): Add missing initializers.
336
337         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
338         Return 1 if file was successfully mapped.
339
340 2004-04-08  Geoffrey Keating  <geoffk@apple.com>
341
342         PR pch/13419
343         PR pch/14137
344         Radar #: 3315288
345         * doc/invoke.texi (Precompiled Headers): Suggest -o
346         to put an output file in a particular place.  Be more detailed
347         about which options affect PCH validity and which options
348         might not work.
349         * c-pch.c (pch_matching): New.
350         (MATCH_SIZE): New.
351         (struct c_pch_validity): New field 'match'.
352         (pch_init): Handle pch_matching.
353         (c_common_valid_pch): Check pch_matching.
354
355         * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
356
357 2004-04-08  Mark Mitchell  <mark@codesourcery.com>
358
359         * doc/invoke.texi (Precompiled Headers): Warn about known
360         problems.
361
362 2004-04-08  Danny Smith  <dannysmith@users.sourceforge.net>
363
364         PR c++/14808
365         * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
366         to 1 if ASM_OUTPUT_DEF is defined.
367         * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
368         * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
369         Set to non-zero iff not a one_only decl.
370
371 2004-04-08  Paul Brook  <paul@codesourcery.com>
372
373         * arm.h (CLASS_LIKELY_SPILLED_P): Define.
374
375 2004-04-08  Paul Brook  <paul@codesourcery.com>
376
377         * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
378         PROMOTE_FOR_CALL_ONLY.
379         * config/arm/arm-protos.h (arm_function_value): Declare.
380         * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
381         (TARGET_PROMOTE_PROTOTYPES): Return false.
382         (arm_function_value): New function.
383         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
384         (FUNCTION_VALUE): Call arm_function_value.
385         * config/cris/cris.h (PROMOTE_MODE): Rename ...
386         (PROMOTE_FUNCTION_MODE): ... to this.
387         (PROMOTE_FOR_CALL_ONLY): Remove.
388         * config/mmix/mmix.h: Likewise.
389         * config/s390/s390.h: Likewise.
390         * config/sparc/sparc.h: Likewise.
391         * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
392         * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
393         (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
394         (PROMOTE_FOR_CALL_ONLY): Remove.
395
396 2004-04-08  Joel Sherrill <joel@oarcorp.com>
397
398         PR ada/14538
399         * ada/5rosinte.adb: Remove fake mprotect() body.
400         * ada/5rosinte.ads: Add SA_SIGINFO.
401         * ada/5rtpopsp.adb: Rewrite to use new interface.
402         * ada/init.c: Reorder so the simple single OS conditional __rtems__
403         is tested before more complex ones which mix UNIX and embedded
404         systems in the conditional.
405
406 2004-04-08  Joel Sherrill  <joel@oarcorp.com>
407
408         PR ada/14665
409         * ada/osint.adb (Find_Program_Name): Rework to properly handle
410         filenames which end in .exe or have versioning suffixes like VMS.
411
412 2004-04-08  Andrew Pinski  <pinskia@physics.uc.edu>
413
414         PR target/10129
415         * config/darwin.c (darwin_encode_section_info): When the decl has
416         a DECL_INITIAL, it is only defined also when it is not a common.
417
418 2004-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
419
420         * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
421         (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
422
423 2004-04-07  H.J. Lu  <hongjiu.lu@intel.com>
424
425         * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
426         global register variables.
427
428 2004-04-07  Joseph S. Myers  <jsm@polyomino.org.uk>
429
430         * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
431         rpc_xdr_lvalue_cast_b): New fixes.
432         * fixinc/fixincl.x: Regenerate.
433         * fixinc/tests/base/rpc/xdr.h: Add new tests.
434
435 2004-04-07  David Edelsohn  <edelsohn@gnu.org>
436
437         * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
438         to power4 and power5 entries.
439
440 2004-04-06  Geoffrey Keating  <geoffk@apple.com>
441
442         * c-common.h (pending_lang_change): Mark for PCH.
443
444 2004-04-07  Caroline Tice  <ctice@apple.com>
445
446         * gcc.c (main): Move 'break' in main loops (on an error)
447         to wait until error processing has occurred.
448
449 2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
450
451         * config.gcc: Stop changing enable_threads midstream.
452         Replace uses of enable_threads_flag with enable_threads.
453         * configure.ac: Replace uses of enable_threads_flag with
454         enable_threads.  Improve autoconf quotation in one place.
455         * configure: Regenerate.
456
457 2004-04-06  Uros Bizjak  <uros@kss-loka.si>
458
459         * builtins.c: Implement support for sincos function.
460         (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
461         BUILT_IN_COS{,F,L}.
462         (expand_builtin_mathfn_3): New function.
463         (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
464         BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
465         flag_unsafe_math_optimization is set.
466
467         * optabs.h (enum optab_index): Add new OTI_sincos.
468         (sincos_optab): Define corresponding macro.
469
470         * optabs.c (init_optabs): Initialize sincos_optab.
471         (expand_twoval_unop): New function.
472
473         * genopinit.c (optabs): Implement sincos_optab using sincos?f3
474         patterns.
475
476         * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
477         and UNSPEC_SINCOS_SIN.
478
479         * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
480         sincosxf3): New patterns to implement sincos, sincosf and sincosl
481         built-ins as inline x87 intrinsics. Define splits for
482         sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
483         cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
484         sincos patterns.
485         (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
486         (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
487
488         (UNSPEC_SINCOS_SIN, UNPEC_SINCOS_COS): New unspecs to represent
489         x87's unspec insn.
490
491 2004-04-06  Devang Patel  <dpatel@apple.com>
492
493         PR 14467
494         * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
495
496 2004-04-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
497
498         * doc/install.texi: Update HP-UX 11 installation procedure.
499
500 2004-04-06  Paul Brook  <paul@codesourcery.com>
501
502         * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
503
504 2004-04-05  Kaz Kojima  <kkojima@gcc.gnu.org>
505
506         * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
507         when the TLS address is generated by a function call.
508         * config/sh/sh.md (tls_global_dynamic): Use a call expression.
509         (tls_local_dynamic): Likewise.
510
511 2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
512
513         * tree.c (reconstruct_complex_type): Use TYPE_READONLY
514         and TYPE_VOLATILE.
515
516 2004-04-05  Caroline Tice  <ctice@apple.com>
517
518         * gcc.c (combine_flag): New global variable, for new driver option.
519         (struct compiler): Add two new fields, to be used when
520         combining multiple input files in a single pass (IMA).
521         (default_compilers):  Add values for the new fields to all
522         compiler entries. Modify the "@c" compiler entry for doing IMA
523         properly with "-save-temps" and the "combine" flag.
524         (option_map):  Add new driver option, "--combine", to tell driver
525         to pass multiple input files to compiler at one time.
526         (have_o_argbuf_index): New global variable.
527         (store_arg): Modify to assign value to have_o_argbuf_index.
528         (struct infile):  Add three new fields, to help with IMA.
529         (display_help): Add help for new "combine" option.
530         (process_command): Remove local variable have_o; add code to check
531         for new "combine" option; remove assignment to combine_inputs.
532         (do_spec_1):  Modify to deal with IMA better.
533         (main): Make variable 'lang_n_infiles' local to entire function
534         rather than to a single block.  Use flag combine_flag to
535         determine whether to do IMA or not; Modify loop initializing
536         infiles to deal properly with linker files.
537         Add code for doing preprocessing in presence of
538         IMA with "-save-temps" flag.  Modify "main" loop to handle
539         multiple input files, in multiple languages, with or without
540         preprocessing,  gracefully.
541         * toplev.c (set_src_pwd): Modify to not complain if attempting to
542         re-set it to same directory it's previously been set to (avoid
543         irritating, meaningless warning messages when doing IMA with
544         save-temps).
545         * doc/invoke.texi: Add "-combine" to list of Overall Options;
546         remove documentation about IMA that is no longer accurate; Add
547         documentation explaining what "-combine" does.
548         * ada/lang-specs.h: Add initialization values for new fields in
549         "struct compiler".
550         * cp/lang-specs.h: Likewise.
551         * f/lang-specs.h: Likewise.
552         * java/lang-specs.h: Likewise.
553         * objc/lang-specs.h: Likewise.
554         * treelang/lang-specs.h: Likewise.
555
556 2004-04-05  David Edelsohn
557
558         * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
559         symbol handling.
560
561 2004-04-05  Jakub Jelinek  <jakub@redhat.com>
562             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
563
564         PR optimization/13424 (hppa), bootstrap/14462, c/14828
565         * pa.md: Use replace_equiv_address to retain the attributes of the
566         memory operands used in the split and peephole2 patterns for optimizing
567         the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
568
569 2004-04-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
570
571         * c-decl.c (build_compound_literal): Use TYPE_READONLY.
572         * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
573         * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
574         * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
575         PARM_DECL.
576         * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
577         for a type.
578         * print-tree.c (print_node): Properly handle side-effects, readonly,
579         and constant flags.
580         * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
581         and TREE_CONSTANT if not a type.
582         * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
583         (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
584         (NON_TYPE_CHECK): New macro.
585         (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
586
587 2004-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
588
589         * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
590         to DWARF2_DEBUG unconditionally.
591         (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
592
593 2004-04-04  Ian Lance Taylor  <ian@wasabisystems.com>
594             Nathanael Nerode  <neroden@gcc.gnu.org>
595
596         PR target/14548
597         * config.host: Set the shell variable host_can_use_collect2.
598         Set it to yes by default, and to no for alpha*-dec-*vms*,
599         i[34567]86-*-mingw32*, and powerpc-*-beos*.
600         * configure.ac: Set and substitute the shell variable collect2.
601         Give an error if use_collect2 is yes and host_can_use_collect2 is
602         no.
603         * Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
604         uses.  Initialize to @collect2@.
605         (STAGESTUFF): Remove $(USE_COLLECT2).
606         * config/alpha/x-vms (USE_COLLECT2): Don't set.
607         * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
608         * config/rs6000/t-beos (USE_COLLECT2): Likewise.
609         * config/pa/t-pa64: Remove commented out USE_COLLECT2.
610         * configure: Regenerate.
611
612 2004-04-04  Roger Sayle  <roger@eyesopen.com>
613
614         * simplify-rtx.c (simplify_binary_operation): Constant fold
615         DIV, MOD, UDIV and UMOD using div_and_round_double.
616
617 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
618
619         PR c++/14804
620         * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
621         RECORD_TYPEs.
622
623 2004-04-04  Mark Mitchell  <mark@codesourcery.com>
624
625         * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
626         documentation.
627
628 2004-04-04  Roger Sayle  <roger@eyesopen.com>
629
630         * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
631         updating the REG_EQUAL note on an insn's libcall_insn.
632
633 2004-04-04  Roger Sayle  <roger@eyesopen.com>
634
635         * df.h: Tidy up whitespace in the definitions of the DF_ flags.
636
637 2004-04-03  Roger Sayle  <roger@eyesopen.com>
638
639         * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
640         with reorder_operands_p.
641
642 2004-04-03  Jan Hubicka  <jh@suse.cz>
643
644         * md.texi (vec_set, vec_extract, vec_init): Document.
645
646 2004-04-02  Gabor Loki <loki@inf.u-szeged.hu>
647
648        * opts.c (decode_options): Do function inlining with very small
649        max-inline-insns-* parameters when optimizing for size.
650
651 2004-04-02  Vladimir Makarov  <vmakarov@redhat.com>
652
653         * config/i386/i386.h (TARGET_NOCONA): New macro.
654         (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
655         (processor_type): Add PROCESSOR_NOCONA.
656
657         * config/i386/i386.md (cpu): Add nocona to the attribute values.
658
659         * config/i386/i386.c (nocona_cost): New variable.
660         (m_NOCONA): New macro.
661         (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
662         x86_branch_hints, x86_use_sahf, x86_single_stringop,
663         x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
664         x86_integer_DFmode_moves, x86_partial_reg_dependency,
665         x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
666         x86_decompose_lea, x86_arch_always_fancy_math_387,
667         x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
668         x86_ext_80387_constants, x86_four_jump_limit):
669         (override_options): Add nocona_cost to processor_target_table.
670         Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
671         (incdec_operand): Prevent inc/dec generation for Nocona too.
672         (ix86_issue_rate): Add PROCESSOR_NOCONA.
673
674 2004-04-01  Andrew Pinski  <pinskia@physics.uc.edu>
675
676         * rtlanal.c (find_reg_note): Manually
677         unswitch the loop.
678
679 2004-04-01  Mark Mitchell  <mark@codesourcery.com>
680
681         * genemit.c (gen_split): Change prototype of generated code.
682         * genrecog.c (write_action): Adjust prototype for and calls to
683         gen_split_*.
684         * gensupport.c (struct queue_elem): Add split field.
685         (queue_pattern): Return a value.  Clear the split field.
686         (process_rtx): Maintain an association between an insn and the
687         split generated from it for a define_insn_and_split.
688         (process_one_cond_exec): Generate a new split for a
689         define_insn_and_split.
690         * config/arm/arm-protos.h (arm_split_constant): Add insn
691         parameter.
692         (emit_constant_insn): New function.
693         (arm_gen_constant): Use it.
694         * config/arm/arm.md: Adjust calls to arm_split_constant.
695
696 2004-04-02  Jan Hubicka  <jh@suse.cz>
697
698         * cgraph.c: Add overall comment.
699         (cgraph_inline_hash): New global variable.
700         (cgraph_create_node): Break out from ...
701         (cgraph_node): ... here.
702         (cgraph_edge): New function.
703         (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
704         (cgraph_remove_edge): Accept edge, intead of source and destination.
705         (cgraph_redirect_edge_callee): New.
706         (cgraph_remove_node): Update all new datastructures.
707         (cgraph_record_call, cgraph_remove_call): Kill.
708         (dump_cgraph_node): Break out from ... ; dump new datastructures.
709         (dump_cgraph): ... here.
710         (cgraph_function_possibly_inlined_p): Use new hashtable.
711         (cgraph_clone_edge, cgraph_clone_node): New.
712         * cgraph.h: Include hashtab.h
713         (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
714         fields, add inlined_to pointer.
715         (cgraph_node): Add pointer to next_clone.
716         (cgraph_remove_edge, cgraph_create_edge): Update prototype.
717         (cgraph_remove_call, cgraph_record_call): Kill.
718         (cgraph_inline_hash): Declare.
719         (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
720         cgraph_redirect_edge_callee): Declare.
721         (cgraph_create_edges, cgraph_inline_p): Update prorotype.
722         (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
723         cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
724         * cgraphunit.c: Add overall comment.
725         (cgraph_optimize_function): Kill.
726         (cgraph_assemble_pending_functions): Do not assemble inline clones.
727         (cgraph_finalize_function): Update call of cgraph_remove_node
728         (record_call_1): Record call sites.
729         (cgraph_create_edges): Accept node instead of decl argument.
730         (error_found): New static variable.
731         (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
732         (cgraph_analyze_function): Update for new datastructures.
733         (cgraph_finalize_compilation_unit): Plug memory leak.
734         (cgraph_optimize_function): Kill.
735         (cgraph_expand_function): Do not use cgraph_optimize_function.
736         (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
737         cgraph_inlined_callees): Kill.
738         (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
739         clones.
740         (estimate_growth): Simplify.
741         (cgraph_clone_inlined_nodes): New function.
742         (cgraph_mark_inline_edge): Re-implement.
743         (cgraph_mark_inline): Likewise.
744         (cgraph_check_inline_limits): Simplify.
745         (cgraph_recursive_inlining_p): New.
746         (update_callee_keys): Break out from ...
747         (cgraph_decide_inlining_of_small_functions): ... here; simplify.
748         (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
749         Likewise.
750         (cgraph_expand_all_functions):  Remove inline clones from the ordered
751         list.
752         (cgraph_preserve_function_body_p): New predicate.
753         (cgraph_optimize): Verify cgraph.
754         * function.h (struct function): Add fields saved_tree/saved_args.
755         * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
756         * toplev.c (rest_of_compilation): Do not free cfun.
757         * tree-inline.c: Include function.h
758         (struct inline_data): Add saving_p field; replace decl/current_decl by
759         node/current_node.
760         (insert_decl_map): New function.
761         (copy_body_r): Handle saving; update cgraph datastructure.
762         (copy_body): Handle recursive inlining.
763         (initialize_inlined_parameters): Likewise.
764         (expand_call_inline): Propagate node attributes; update cgraph.
765         (optimize_inline_calls): Verify that datastructure still match.
766         (save_body): New function.
767         * tree-inline.h (save_body): New.
768         * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
769         * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
770         * langhooks.c (lang_hooks): Add update_decl_after_saving.
771
772 2004-04-01  Serge Belyshev  <1319@bot.ru>
773
774         PR target/14702
775         * config/i386/i386.md: fix source operand constraints in
776         mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
777
778 2004-04-01  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
779
780         * fold-const.c (folda): Preserve types of comparisons.
781
782 2004-04-01  Richard Henderson  <rth@redhat.com>
783
784         * toplev.c (backend_init): Move init_optimization_passes call ...
785         (lang_dependent_init): ... here.
786
787 2004-04-01  Alan Modra  <amodra@bigpond.net.au>
788             Jakub Jelinek  <jakub@redhat.com>
789
790         * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
791         -lgcc --as-needed -lgcc_s --no-as-needed by default.
792         * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
793         * configure: Rebuilt.
794         * config.in: Rebuilt.
795         * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
796         (stage2-start, stage3-start, stage4-start): Likewise.
797         (stageprofile-start, stagefeedback-start): Likewise.
798
799 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
800
801         * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
802         * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
803         * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
804         * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
805         (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
806         * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
807         with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
808         * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
809         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
810         * config/sparc/t-linux: Removed.
811
812 2004-04-01  Jakub Jelinek  <jakub@redhat.com>
813
814         PR c++/14755
815         * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
816         "bitfld++ == const" to "++bitfld == const + incr" transformations.
817
818 2004-04-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
819
820         * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
821         * stor-layout.c (layout_decl): Likewise.
822         * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
823         * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
824         * print-tree.c (print_node): Handle various used of unsigned_flag.
825         * tree.def (BIT_FIELD_REF): Update comment.
826         * tree.h (TREE_UNSIGNED): Deleted.
827         (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
828
829 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
830
831         * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
832         Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
833         * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
834         * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
835         * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
836         * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
837         * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
838         * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
839         * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
840         * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
841         REAL_TYPE, not INTEGER_TYPE.
842         (layout_type, case VECTOR_TYPE): Simplify code.
843         * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
844         * tree.h: Update comments.
845         (STRIP_NOPS): Use TYPE_UNSIGNED.
846         (TYPE_UNSIGNED): New macro.
847         (TYPE_TRAP_SIGNED): Remove now redundant check.
848         (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
849
850 2004-03-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
851
852         * function.c (put_var_into_stack): Properly set orig_reg for indirect.
853
854 2004-03-31  Andrew Pinski  <pinskia@physics.uc.edu>
855
856         * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
857         Add darwin-fpsave.asm, darwin-vecsave.asm,
858         and darwin-world.asm.
859         (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
860         as the asm files contain altivec instructions.
861         * config/rs6000/darwin-fpsave.asm: New file.
862         * config/rs6000/darwin-vecsave.asm: New file.
863         * config/rs6000/darwin-world.asm: New file.
864
865 2004-03-31  Zack Weinberg  <zack@codesourcery.com>
866
867         * gengtype-yacc.y (option, stringseq): Add missing
868         terminating semicolon.
869
870 2004-03-30  David Edelsohn  <edelsohn@gnu.org>
871
872         * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
873         tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
874         tls_dtprel_ha_32, tls_dtprel_ha_64,
875         tls_dtprel_lo_32, tls_dtprel_lo_64,
876         tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
877         tls_tprel_ha_32, tls_tprel_ha_64,
878         tls_tprel_lo_32, tls_tprel_lo_64,
879         tls_got_tprel_32, tls_got_tprel_64,
880         tls_tls_32, tls_tls_64): Replace register_operand with
881         gpc_reg_operand.
882
883 2004-03-30  Mostafa Hagog  <mustafa@il.ibm.com>
884
885         * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
886         *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
887         *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
888         *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
889         *ctrdi_internal6): Replace register_operand with
890         nonimmediate_operand.
891
892 2004-03-29  Fariborz Jahanian <fjahanian@apple.com>
893
894         * fold-const.c (fold): Reassociate multiply expression
895         with an adjacent non-multiply expression to use
896         architecture's multiply-add instruction.
897
898 2004-03-30  Zack Weinberg  <zack@codesourcery.com>
899
900         * gengtype.c (create_option): New function.
901         * gengtype.h: Prototype it.
902         * gengtype-yacc.y (stringseq): New rule.
903         (option): Use create_option.  Add new bare ID production.  Use
904         stringseq, not STRING directly.
905
906         * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
907         * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
908         * varray.h, config/alpha/alpha.c:
909         Use new shorter form of GTY markers.
910
911         * doc/gty.texi: Rewrite.
912
913 2004-03-30  Andrew Pinski  <pinskia@physics.uc.edu>
914
915         * config/darwin.c (machopic_function_base_name):
916         Remove current_name and getting the name of the
917         current function.
918
919 2004-03-30  Nick Clifton  <nickc@redhat.com>
920
921         * config/arm/arm.md (thumb_jump): Reduce the backward branch
922         range, and increase the forward branch range, to allow for
923         the fact that the PC will be off by 4.
924
925 2004-03-30  Alan Modra  <amodra@bigpond.net.au>
926
927         * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
928
929 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
930
931         * config/rs6000/rs6000.c (output_vec_const_move):
932         Find all cases of EASY_VECTOR_15_ADD_SELF.
933         (easy_vector_constant_add_self): Accept
934         all vector constant loadable by vsplt* and vadd*.
935         (easy_vector_same): Use easy_vector_splat_const.
936         (easy_vector_const): Use easy_vector_splat_const.
937         (easy_vector_splat_const): New function.
938         (gen_easy_vector_constant_add_self): New function.
939
940         * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
941         New prototype.
942
943         * config/rs6000/altivec.md (movv4si splitter): Change to
944         emit move insn with halfed vector constant.
945         (*movv8hi splitter): Likewise.
946         (*movv16qi splitter): Likewise.
947
948 2004-03-30  Hartmut Penner  <hpenner@de.ibm.com>
949
950         PR 11591
951         * config/rs6000/rs6000.c (rs6000_legitimate_address):
952         Allow any offset to argument pointer in no-strict case.
953
954 2004-03-30  Jan Hubicka  <jh@suse.cz>
955
956         * toplev.c (backend_init): Add missing call to inint_optimization_passes.
957         * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
958         dump file in non-unit-at-a-time mode.
959
960 2004-03-29  Hans-Peter Nilsson  <hp@axis.com>
961
962         * config/cris/cris.h: Correct #ifdef to test for
963         HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
964         HAVE_AS_MUL_BUG_ABORT_OPTION.
965
966 2004-03-29  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
967
968         * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
969         the address inside the old RTL.
970
971 2004-03-28  Zack Weinberg  <zack@codesourcery.com>
972
973         * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
974         (struct c_binding, struct c_scope): Add chain_next
975         attributes to GTY markers.
976         (struct lang_identifier, struct lang_tree_node): Define
977         here...
978         * c-tree.h: ... not here.  No longer need to declare struct
979         c_binding either.  Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
980         * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
981         to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
982
983         PR 14734, 11944
984         * c-decl.c (get_parm_info): If error_mark_node is encountered
985         in the bindings chain, unbind and discard it; don't abort.
986
987 2004-03-28  Olga Golovonevsky <olga@il.ibm.com>
988             Dorit Naishlos <dorit@il.ibm.com>
989
990         * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
991         one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
992
993 2004-03-28  Stephane Carrez  <stcarrez@nerim.fr>
994
995         * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
996
997         * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
998         (m68hc11_attribute_table): New attribute "page0" to mark a global
999         variable as being allocated from within page0 section.
1000         (m68hc11_encode_label): New function.
1001         (m68hc11_strip_name_encoding): New function.
1002         (m68hc11_page0_symbol_p): New function.
1003         (m68hc11_indirect_p): Accept global variables marked in page0.
1004         (m68hc11_encode_section_info): Lookup "page0" attribute.
1005
1006         * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
1007         represents access to page0 variables.
1008
1009         * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
1010         ("*logicalsi3_silshl16_zext"): Likewise.
1011         ("*ashldi3_const32"): Likewise.
1012         (peephole2 ashift): Likewise.
1013
1014 2004-03-28  Joseph S. Myers  <jsm@polyomino.org.uk>
1015
1016         * c-tree.h (C_DECL_REGISTER): New.
1017         * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
1018         finish_decl, grokdeclarator, get_parm_info), c-typeck.c
1019         (build_array_ref, c_mark_addressable): Set and use it.
1020         * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
1021         Allow structures with volatile fields to be declared register.
1022         Don't check TREE_ADDRESSABLE before warning about taking address
1023         of register.
1024         * c-decl.c (finish_decl): Don't allow structures with volatile
1025         fields to be placed in named register.
1026         * doc/trouble.texi: Remove reference to structures with volatile
1027         fields in registers.
1028
1029 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
1030
1031         * function.c (thread_prologue_and_epilogue): Move
1032         NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
1033         before the epilogue.
1034
1035 2004-03-27  Ulrich Weigand  <uweigand@de.ibm.com>
1036
1037         * expr.c (store_constructor): Use gen_int_mode to correctly
1038         sign-extend CONST_INT value.
1039
1040 2004-03-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1041
1042         * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
1043         * builtins.def (DEF_C94_BUILTIN): New.  Add wctype builtins.
1044         * doc/extend.texi: Likewise.
1045
1046 2004-03-26  Diego Novillo  <dnovillo@redhat.com>
1047
1048         * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
1049           with TYPE_ORIG_SIZE_TYPE.
1050
1051 2004-03-25  Aldy Hernandez  <aldyh@redhat.com>
1052
1053         PR 14219
1054         * c-typeck.c (build_binary_op): Do not allow comparisons of
1055         vectors.
1056
1057 2004-03-26  James A. Morrison  <ja2morri@uwaterloo.ca>
1058
1059         * config.gcc: Remove sparc-tti-*.
1060         * config/sparc/pbd.h: Delete.
1061
1062         * config/sparc/sol2.h: Remove note about Sun OS 4.x.
1063         * config/sparc/aout.h: Likewise.
1064
1065         * config/sparc/sparc.h: Remove if 0'd code.
1066         * config/sparc/sparc.md (call): Remove if 0'd code.
1067         (call_value): Likewise.
1068         (nonlocal_goto): Likewise.
1069         (unimp_insn): Delete.
1070
1071 2004-03-25  Roger Sayle  <roger@eyesopen.com>
1072
1073         * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
1074         BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
1075
1076 2004-03-25  Richard Henderson  <rth@redhat.com>
1077
1078         PR 11527
1079         * c-typeck.c (pop_init_level): Emit pending init elements earlier
1080         rather than later.
1081
1082 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1083
1084         * builtins.c (fold_builtin): Fix error in last change.
1085
1086 2004-03-25  Richard Sandiford  <rsandifo@redhat.com>
1087
1088         * config/mips/mips.h: Formatting fix.
1089
1090 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1091
1092         * builtins.def: Add ctype builtins.
1093         * doc/extend.texi: Likewise.
1094
1095 2004-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1096
1097         * builtins.c (fold_builtin): Add new builtin optimizations for
1098         sqrt and/or cbrt.
1099         * fold-const.c (fold): Likewise.
1100
1101 2004-03-25  David Edelsohn  <edelsohn@gnu.org>
1102
1103         * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
1104         (rs6000_sched_groups): New variable.
1105         (processor_target_table): Add power5.
1106         (rs6000_override_options): Set rs6000_sched_insert_nops,
1107         rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
1108         from rs6000_sched_groups.
1109         (output_cbranch): Use rs6000_always_hint.
1110         (rs6000_variable_issue): Use rs6000_sched_groups.
1111         (rs6000_adjust_cost): Add CPU_POWER5.
1112         (is_microcoded_insn): Use rs6000_sched_groups.
1113         (is_dispatch_slot_restricted): Use rs6000_sched_groups.
1114         Return 2 for POWER5 cracked instructions.
1115         (is_cracked_insn): Use rs6000_sched_groups.
1116         (is_branch_slot_insn): Use rs6000_sched_groups.
1117         (rs6000_issue_rate): Add CPU_POWER5.
1118         (rs6000_sched_finish): Use rs6000_sched_groups.
1119         (rs6000_rtx_costs): Add PROCESSOR_POWER5.
1120         * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
1121         (DEFAULT_SCHED_COSTLY_DEP): Delete.
1122         (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
1123         (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
1124         * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
1125         * config/rs6000/power5.md: New file.
1126         * doc/invoke.texi: Add power5 option.
1127
1128 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
1129
1130         * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
1131         config/arm/arm.c, objc/objc-act.c: Fix comment typos.
1132         * doc/invoke.texi: Fix a typo.
1133
1134 2004-03-25  Kazu Hirata  <kazu@cs.umass.edu>
1135
1136         PR optimization/9707.
1137         * stmt.c (emit_case_nodes): Emit equality comparisons instead
1138         of recursing if both children are single-valued cases with no
1139         children.
1140
1141 2004-03-25  Paul Brook  <paul@codesourcery.com>
1142
1143         * config/arm/arm.c (vfp_print_multi): Remove.
1144         (arm_output_fldmx): New function.
1145         (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
1146         (arm_expand_prologue): Update to match.
1147         (arm_get_vfp_saved_size): New Function.
1148         (arm_get_frame_offsets): Use it.
1149         (arm_output_epilogue): Use new functions.
1150
1151 2004-03-24  Richard Henderson  <rth@redhat.com>
1152
1153         * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
1154         (reg_known_value, reg_known_value_size): Likewise; make static.
1155         (reg_known_equiv_p): Make static.
1156         (clear_reg_alias_info): Update for new indexing.
1157         (get_reg_known_value, set_reg_known_value): New.
1158         (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
1159         (canon_rtx): Use them.
1160         (init_alias_analysis): Likewise.  Allocate reg_known_value with gc.
1161         Don't play queer offsetting games with reg_known_value and
1162         reg_known_equiv_p.
1163         (end_alias_analysis): Free reg_known_value with gc.
1164         * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
1165         * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
1166         (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
1167         functions instead.
1168
1169 2004-03-24  Kazu Hirata  <kazu@cs.umass.edu>
1170
1171         * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
1172         config/i386/mmintrin.h: Update copyright.
1173
1174 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
1175
1176         * configure.ac: Add --enable-werror-always (for top level bootstrap
1177         support).
1178         * configure: Regenerate.
1179
1180 2004-03-24  Ziemowit Laski  <zlaski@apple.com>
1181
1182         * objc/objc-act.c (objc_comptypes): Treat comparisons
1183         between 'Class' and '<class> *' as explicitly invalid.
1184
1185 2004-03-24  David Edelsohn  <edelsohn@gnu.org>
1186
1187         * doc/invoke.texi (-frename-registers: Add enabled at -O3.
1188         (-fprofile-values): Add enabled with profile-{generate,use}.
1189         (-fvpt): Same.
1190         (-ftracer): Add enabled with profile-use.
1191         (-funit-at-a-time): Add enabled at -O2,-O3.
1192         (-funroll-loops): Add enabled with profile-use.
1193         (-funswitch-loops): Add enabled with profile-use.  Remove duplicates.
1194         (max-gcse-passes): Mention default.
1195         (max-cse-path-length): Mention default.
1196
1197 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
1198
1199         * Makefile.in (STRICT2_WARN): Reorder.
1200         * configure.ac: Check for -Wold-style-definition, and use it
1201         in strict1_warn if it's available.
1202         * configure: Regnerate.
1203
1204 2004-03-24  Paul Brook  <paul@nowt.org>
1205
1206         * config.gcc <arm>: Add --with-abi=
1207         * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
1208         thumb_far_jump_used): Remove prototypes.
1209         (arm_needs_doubleword_align): Add prototype.
1210         (thumb_compute_initial_elimination_offset): Ditto.
1211         * config/arm/arm.c (arm_get_frame_offsets): New function.
1212         (use_return_insn, output_return_instruction, arm_output_epilogue,
1213         arm_output_function_epilogue, arm_compute_initial_elimination_offset,
1214         arm_expand_prologue, thumb_expand_epilogue): Use it.
1215         (arm_abi, target_abi_name, all_arm_abis): New variables.
1216         (arm_override_options): Set them.  Set structure padding for AAPCS.
1217         (arm_return_in_memory): Update ABI check.
1218         (arm_init_cumulative_args): Initialize can_split.
1219         (arm_needs_doubleword_align): New function.
1220         (arm_function_arg): Don't split args after pushing to stack. Handle
1221         doubleword/even reg alignment.
1222         (arm_va_arg): Handle all doubleword aligned args.
1223         (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
1224         on ABI, not CPU.
1225         (arm_compute_save_reg0_reg12_mask): Fix comment.
1226         (thumb_get_frame_size, thumb_get_frame_size): Remove.
1227         (thumb_jump_far_used_p): Remove superfluous argument.  Return save
1228         value for alignment.
1229         (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
1230         to match.
1231         (thumb_compute_initial_elimination_offset): New function.
1232         (thumb_expand_prologue): Use arm_get_frame_offsets.  Remove
1233         unneccessary rounding.
1234         * config/arm/arm.h (target_abi_name): Declare.
1235         (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
1236         arm_abi_type, ARM_DEFAULT_ABI): Define.
1237         (ARM_FLAG_ATPCS): Remove.
1238         (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
1239         (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
1240         (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
1241         TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
1242         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
1243         Contitionalize on ABI, not CPU.
1244         (struct arm_stack_offsets): Define.
1245         (struct machine_function): Add stack_offsets.  Remove frame_size.
1246         (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
1247         pushed.
1248         (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
1249         doubleword alignment.
1250         (THUMB_INITIAL_ELIMINATION_OFFSET,
1251         ARM_INITIAL_ELIMINATION_OFFSET): Remove.
1252         (INITIAL_ELIMINATION_OFFSET): Call functions directly.
1253         * config/arm/arm.md (align_8): Enable for all targets.
1254         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
1255         (ARM_DEFAULT_ABI): Define.
1256         * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
1257         -mstructure-size-boundary.
1258
1259 2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
1260
1261         * configure.ac: Check for -Wno-variadic-macros; don't use
1262         -pedantic (in stage 1 or a simple 'make all') unless it's available,
1263         and if it's available, use it.  Also, clean up check for
1264         -Wno-long-long.
1265         * configure: Regenerate.
1266
1267 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
1268
1269         * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
1270         * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
1271         (MULTILIB_DEFAULTS): Use it.
1272         (MIPS_CPU_STRING_DEFAULT): Remove.
1273         (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
1274         (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120.  Make
1275         EABI64 -mlong32 the default ABI.  Enforce the default architecture.
1276         * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
1277         march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
1278         (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
1279         (MULTILIB_EXCEPTIONS): Change choice of multilibs.  Update comments
1280         accordingly.
1281
1282 2004-03-24  DJ Delorie  <dj@redhat.com>
1283             Richard Sandiford  <rsandifo@redhat.com>
1284
1285         * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
1286         (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
1287         (ASM_SPEC): Pass down -mfix-vr4122-bugs.
1288         * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
1289         in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
1290         (mips_init_libfuncs): Use special functions for divsi3 and modsi3
1291         if TARGET_FIX_VR4122.
1292         * config/mips/mips.md (define_attr length): Account for nops inserted
1293         after macc and dmult when using -mfix-vr4122-bugs.
1294         (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
1295         * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
1296         LIB2FUNCS_EXTRA.  Add config/mips/vr4122-div.S.
1297         * config/mips/vr4122-div.S: New file.
1298         * doc/invoke.texi: Document -mfix-vr4122-bugs.
1299
1300 2004-03-24  Richard Sandiford  <rsandifo@redhat.com>
1301
1302         * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
1303         (TARGET_MIPS4130): New macro.
1304         (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
1305         * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
1306         (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
1307         with PROCESSOR_R4130.
1308         * config/mips/mips.md (define_attr cpu): Add r4130.
1309         * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
1310
1311 2004-03-24  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
1312             Richard Sandiford  <rsandifo@redhat.com>
1313
1314         * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
1315
1316 2004-03-24  Alexandre Oliva  <aoliva@redhat.com>
1317
1318         PR preprocessor/14438
1319         * cpplib.c (do_pragma): Remove line_change call after pragma
1320         handler.
1321
1322 2004-03-23  Ian Lance Taylor  <ian@wasabisystems.com>
1323
1324         * doc/extend.texi (ARM Built-in Functions): Replace with correct
1325         declarations.
1326
1327 2004-03-23  Roger Sayle  <roger@eyesopen.com>
1328
1329         * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
1330         if flag_unsafe_math_optimizations.
1331         * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
1332         and TARGET_80387 expand using truncdfsf2_noop pattern.
1333         (truncxfsf2): Likewise using truncxfsf2_noop.
1334         (truncxfdf2): Likewise using truncxfdf2_noop.
1335         (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
1336
1337 2004-03-23  Ziemowit Laski  <zlaski@apple.com>
1338
1339         * hooks.c (hook_constcharptr_tree_null): New hook.
1340         * hooks.h (hook_constcharptr_tree_null): New prototype.
1341         * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
1342         * target.h (mangle_fundamental_type): New target hook.
1343         * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
1344         target hook at rs6000_mangle_fundamental_type.
1345         (rs6000_mangle_fundamental_type): New function.
1346         * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
1347
1348 2004-03-23  Zack Weinberg  <zack@codesourcery.com>
1349
1350         PR 12267, 12391, 12560, 13129, 14114, 14133
1351         * c-tree.h: Forward declare struct c_binding.  Declare
1352         c_override_bindings_to_false.  Update prototypes.
1353         (struct lang_identifier): Update comments.  Change fields to be
1354         struct c_binding *.
1355         (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
1356         (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
1357         (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
1358         (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
1359         * c-common.h: Update prototypes.
1360         * c-decl.c (struct c_scope): Update commentary.  Remove names,
1361         names_last, parms, parms_last, tags, and shadowed fields.  Add
1362         bindings and depth fields.
1363         (scope_freelist): Move to more appropriate location.
1364         (c_print_identifier): Update for changes to struct lang_identifier.
1365         (objc_mark_locals_volatile): Update for new bindings structures.
1366         (global_bindings_p): Honor c_override_global_bindings_to_false.
1367         (pushlevel): Rename to push_scope; take no arguments; use the
1368         scope_freelist; initialize scope->depth and check for overflow.
1369         (poplevel): Rename to pop_scope; totally rewritten for new bindings
1370         structures.
1371         (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
1372         C_DECL_INVISIBLE, for certain decisions.  Adjust some diagnostics.
1373         Improve some commentary.  Adjust handling of forward parm decls.
1374         (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
1375         Preserve C_DECL_IN_EXTERNAL_SCOPE.
1376         (warn_if_shadowing): Correct indentation.  Improve diagnostics.
1377         (pushdecl): Remove unnecessary assertion.  Short-circuit anonymous
1378         decls.  Rewrite for new bindings structures.  Improve commentary.
1379         Eliminate the copy_node call.
1380         (implicit_decl_warning): Use the "diag" idiom (as seen in
1381         locate_old_decl) to reduce code duplication; call locate_old_decl
1382         if appropriate.  Relocate to remove need for forward declaration.
1383         (implicitly_declare): Adjust for new bindings structures.  Kludge
1384         around Objective-C not-really-builtin functions.
1385         (undeclared_variable): Improve diagnostics.  If current_function_decl
1386         is nonnull but current_function_scope is null, use current_scope.
1387         Use bind.
1388         (lookup_tag): Adjust for new bindings structures.  Kludge around
1389         Objective-C's tag declarations that wind up in the external scope.
1390         (lookup_name): Adjust for new bindings structures.  Kludge around
1391         c-common.c's pseudo-typedefs that wind up in the external scope.
1392         (lookup_name_current_level): Rename lookup_name_in_scope; take a
1393         second argument indicating the scope to examine; rewrite for
1394         new bindings structures.
1395         (c_init_decl_processing): Adjust for renamed functions.  Do not
1396         initialize current_file_decl, first_builtin_decl, last_builtin_decl.
1397         First scope pushed is the external scope, not the global scope.
1398         (builtin_function): Use bind, not pushdecl.  Adjust other bits
1399         for new data structures.  Keep track of builtins that should be
1400         made visible automatically.
1401         (start_decl): Adjust diagnostics.  Remove unnecessary call to
1402         expand_decl.
1403         (grokparms): Return 0 if arg_types is error_mark_node.
1404         (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
1405         reversed sense.  Rewrite for new bindings structures.  Do not
1406         leave any decls in the scope, to prevent pop_scope from doing
1407         contradictory things with them.
1408         (finish_struct, finish_enum): Remove redundant diagnostics.
1409         (build_enumerator): Don't cascade diagnostics for error_mark_node.
1410         Mark location where -pedantic changes the meaning of the program.
1411         (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
1412         parameter decls into the function's scope structure using bind.
1413         Warn here about function definitions in the wrong style.
1414         Adjust diagnostics.
1415         (store_parm_decls): Correct the determination of whether a
1416         function was defined with a prototype.
1417         (c_write_global_declarations): Operate on all file decls and on
1418         the external scope.  Split body of the loop to...
1419         (c_write_global_declarations_1): ... this new function, to avoid
1420         code duplication.
1421         (truly_local_externals, first_builtin_decl, last_builtin_decl)
1422         (make_scope, pop_scope, in_parm_level_p, set_block)
1423         (any_external_decl, record_external_decl, bind_label, getdecls)
1424         (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
1425         (c_reset_state): Delete.
1426         (visible_builtins, c_override_global_bindings_to_false)
1427         (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
1428         (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
1429         (external_scope, binding_freelist, bind, free_binding_and_advance)
1430         (push_file_scope, pop_file_scope): New.
1431         (pushtag, pushdecl_top_level, lookup_label, declare_label)
1432         (define_label, c_make_fname_decl, finish_decl)
1433         (mark_forward_parm_decls, build_compound_literal)
1434         (grokdeclarator, start_function, check_for_loop_decls)
1435         (identifier_global_value, record_builtin_type): Minor adjustments
1436         for new bindings structures.  Improve diagnostics and commentary.
1437         * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
1438         pushlevel/poplevel respectively.
1439         (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
1440         * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
1441         Warn about YYDEBUG not being defined only if -dy.  Remove no-longer-
1442         correct loop over multiple translation units; call fatal_error if
1443         requested to compile more than one file at once.  (This disables
1444         IMA temporarily - an up-front error being preferable to a crash.)
1445         * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
1446         (all actions): Adjust calls to pushlevel/poplevel.
1447         (parsing_iso_function_signature): Delete.
1448         (extdef_1): Fold into extdef.
1449         (old_style_parm_decls_1): Fold into old_style_parm_decls.  Don't
1450         warn here about function definitions in the wrong style.
1451         (after_tyle_declarator, parm_declarator_starttypename)
1452         (parm_declarator_nostarttypename, notype_declarator): Remove
1453         commented-out productions.
1454         (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
1455         an empty TREE_LIST node.  Adjust calls to get_parm_info.
1456         (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
1457         to suppress -Wold-style-definition after this error.
1458         (c_parse_file): Don't clear the binding stack or call
1459         finish_fname_decls here.  Correct comment.
1460         * c-typeck.c (same_translation_unit_p): Export.
1461         (common_type): Use c_override_global_bindings_to_false, not
1462         pushlevel/poplevel/declare_parm_level.
1463         * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
1464         LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
1465         and LANG_HOOKS_GETDECLS with do-nothing stubs.
1466         * objc/objc-lang.c: Likewise.
1467         * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
1468         get_parm_info.
1469         (OBJC_VOID_AT_END): Delete; replace all uses
1470         with void_list_node.
1471         (generate_forward_declaration_to_string_table): Delete.
1472         * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
1473
1474         * coverage.c (create_coverage): Don't pushdecl anything.
1475         * langhooks.c (lhd_clear_binding_stack): Call
1476         lang_hooks.decls.poplevel, not poplevel.
1477         * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
1478         circular list rather than going into an infinite loop.
1479
1480 2004-03-23  Olivier Hainque  <hainque@act-europe.fr>
1481
1482         * optabs.c (expand_binop): When synthesizing double word rotates
1483         from single word shifts, use a new register target if the provided
1484         target is not a REG already.
1485
1486 2004-03-23  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1487
1488         * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
1489         * c-common.c (handle_mode_attribute): Add extra arg to
1490         build_pointer_type_for_mode and build_reference_type_for_mode.
1491         * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
1492         for INTEGER_CST.
1493         * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
1494         Chain pointers via TYPE_NEXT_PTR_TO.
1495         (build_reference_type_for_mode): Similarly.
1496         (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
1497         and build_reference_type_for_mode.
1498         (tree_check4_failed): New function.
1499         * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
1500         (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
1501         (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
1502         Add check.
1503
1504 2004-03-23  Roger Sayle  <roger@eyesopen.com>
1505
1506         * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
1507         A is nonnegative or B is nonnegative.  Similarly A|B is nonnegative
1508         when both A and B are nonnegative.
1509         (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
1510         nonzero.
1511
1512 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
1513
1514         * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
1515         VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
1516
1517 2004-03-23  Kazu Hirata  <kazu@cs.umass.edu>
1518
1519         PR optimization/14669
1520         * fold-const.c (fold): Only unwiden integer comparisons for equality
1521         and inequality operators, or when the signedness doesn't change.
1522
1523 2004-03-23  Jakub Jelinek  <jakub@redhat.com>
1524
1525         * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
1526         * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
1527         * config/sparc/t-linux: New file.
1528
1529 2004-03-23  Richard Sandiford  <rsandifo@redhat.com>
1530
1531         * gcse.c (can_assign_to_reg_p): New function, split out from...
1532         (want_to_gcse_p): ...here.
1533         (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
1534         the rhs of a store.
1535
1536 2004-03-22  Diego Novillo  <dnovillo@redhat.com>
1537
1538         * c-typeck.c (same_translation_unit_p): Fix pasto.
1539
1540 2004-03-22  David Edelsohn  <edelsohn@gnu.org>
1541
1542         * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
1543         (PARAM_MAX_SCHED_REGION_INSNS): New.
1544         * sched-rgn.c: Include params.h
1545         (MAX_RGN_BLOCKS): Delete.
1546         (MAX_RGN_INSNS): Delete.
1547         (too_large): Return bool.  Convert to PARAM_VALUE.
1548         * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
1549         * doc/invoke.texi (param): Document max-sched-region-blocks and
1550         max-sched-region-insns.
1551
1552 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
1553
1554         * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
1555         for base types.
1556
1557 2004-03-22  Joel Brobecker  <brobecker@gnat.com>
1558
1559         * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
1560         change.
1561
1562 2004-03-22  Jakub Jelinek  <jakub@redhat.com>
1563
1564         PR c/14069
1565         * c-decl.c (finish_struct): Change type of incorrect flexible array
1566         field into error_mark_node.
1567
1568 2004-03-22  Andrew Pinski  <pinskia@physics.uc.edu>
1569
1570         PR target/14580
1571         * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
1572         who are not local for Darwin PIC.
1573
1574 2004-03-22  Ulrich Weigand  <uweigand@de.ibm.com>
1575
1576         * regrename.c (regrename_optimize): Set regs_ever_live for all
1577         registers introduced as replacement.
1578
1579 2004-03-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
1580
1581         PR middle-end/14470
1582         * expr.c (mark_queue): New function.
1583         (emit_insns_enqueued_after_mark): New function replacing
1584         emit_queue.  Clear the body of emitted queued insns.
1585         (emit_queue): Call emit_insns_enqueued_after_mark.
1586         (store_expr): Mark the increment queue on entry.  Emit
1587         only the incrementations queued when expanding the source.
1588
1589 2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
1590
1591         * configure.ac: Allow --disable-coverage-flags (for the future benefit
1592         of top level bootstrap, and consistency).  Reindent.
1593         * configure: Regenerate.
1594
1595 2004-03-21  Kazu Hirata  <kazu@cs.umass.edu>
1596
1597         * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
1598         ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
1599         unnecessary casts.
1600
1601 2004-03-22  Danny Smith  <dannysmith@users.sourceforge.net>
1602
1603         PR target/14291
1604         * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
1605         __MINGW32__.
1606
1607 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
1608
1609         * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
1610         to nonimmediate_operand.
1611         ("*doloop_di"): Likewise.
1612
1613 2004-03-21  Alexandre Oliva  <aoliva@redhat.com>
1614
1615         * real.h (struct real_value): Use the same type for all
1616         bitfields.  Rename exp to uexp.
1617         (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
1618         Adjust all uses of exp...
1619         * builtins.c: ... here, ...
1620         * emit-rtl.c: ... here, and ...
1621         * real.c: ... and here.
1622
1623 2004-03-21  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1624
1625         * pretty-print.c (pp_base_maybe_space): New function.
1626         * pretty-print.h (pp_base_maybe_space): Declare.
1627         (pp_maybe_space): New macro.
1628
1629 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
1630
1631         * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
1632
1633 2004-03-21  Ulrich Weigand  <uweigand@de.ibm.com>
1634
1635         * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
1636         of using register multiplication cost.
1637         (expand_mult): Adapt choose_mult_variant call.
1638         (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
1639         of MODE; pass appropriate cost bound.  Adjust result when
1640         performing signed multiplication by a negative constant.
1641         Don't use intermediate modes larger than word_mode.
1642
1643 2004-03-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1644
1645         * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
1646         * emit-rtl.c (component_ref_for_mem_expr): Likewise.
1647         (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
1648         * explow.c (expr_size): Likewise.
1649         * expr.h (placeholder_list, find_placeholder): Deleted.
1650         * expr.c (store_constructor): Likewise.
1651         (get_inner_reference): Likewise.  Also don't call find_placeholder.
1652         (placeholder_list, find_placeholder): Deleted.
1653         (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
1654         (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
1655         (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
1656         * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
1657         * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
1658         Likewise.
1659         * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
1660         (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
1661         * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
1662         (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
1663         Clean up by using first_rtl_op.
1664         (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
1665         (substitute_placeholder_in_expr): New function.
1666         * tree.def (WITH_RECORD_EXPR): Deleted.
1667         * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
1668         (substitute_placeholder_in_expr): New.
1669
1670 2004-03-21  Andrew Pinski  <pinskia@gcc.gnu.org>
1671
1672         * dojump.c (prefer_and_bit_test): Fix which part of
1673         the and_test is replaced.
1674
1675 2004-03-21  Joseph S. Myers  <jsm@polyomino.org.uk>
1676
1677         * frontends.texi: Add missing line.
1678
1679 2004-03-21  Zack Weinberg  <zack@codesourcery.com>
1680             Chris Devers  <cdevers@pobox.com>
1681             Joseph S. Myers  <jsm@polyomino.org.uk>
1682
1683         * doc/frontends.texi: Rewrite.
1684         * doc/gcc.texi: Update last modification date.
1685
1686 2004-03-21  Josef Zlomek  <zlomekj@suse.cz>
1687
1688         * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
1689         message before redirecting the edge.
1690
1691 2004-03-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1692
1693         * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
1694         flag.
1695         * explow.c (force_not_mem): Set REG_POINTER flag according to
1696         MEM_POINTER one.
1697         * rtl.h (MEM_POINTER): New macro.
1698         (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
1699         for MEM_POINTER.
1700
1701 2004-03-20  Roger Sayle  <roger@eyesopen.com>
1702
1703         PR target/13889
1704         * cse.c (fold_rtx): Avoid substituting constants into unary
1705         conversion operations.
1706
1707 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
1708
1709         * fold-const.c (fold): Replace "expr" with "t".
1710
1711 2004-03-20  Ian Lance Taylor  <ian@wasabisystems.com>
1712
1713         PR c/12373
1714         * c-typeck.c (tagged_types_tu_compatible_p): Don't use
1715         DECL_ORIGINAL_TYPE if there isn't one.
1716
1717 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
1718
1719         * fold-const.c (fold): Replace "final_type" with "type".
1720         Remove variable "final_type".
1721
1722 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
1723
1724         * fold-const.c (fold): Constify "type".
1725         Replace "TREE_TYPE (t)" with "type".
1726
1727 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
1728
1729         * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
1730         dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
1731         via (*targetm.foo) () with targetm.foo ().
1732
1733 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
1734
1735         PR other/14630
1736         * doc/install.texi: Add info directory category and entry.
1737
1738 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
1739
1740         * fold-const.c (fold): Replace "t" with "tem" where it is used
1741         as a temporary variable.  Remove "orig_t" and all of its uses.
1742
1743 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
1744
1745         * fold-const.c (fold): Remove variable "invert".
1746         Move the handling of relational expressions that can be folded
1747         to a constant ...
1748         (fold_relational_const): ... here.
1749         (tree_expr_nonzero_p): New.
1750
1751 2004-03-20  Joseph S. Myers  <jsm@polyomino.org.uk>
1752
1753         PR c/14635
1754         * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
1755         DEF_GCC_BUILTIN.
1756
1757 2004-03-20  Richard Sandiford  <rsandifo@redhat.com>
1758
1759         * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
1760         (GTFILES): Add $(srcdir)/dojump.h.
1761         (gt-dojump.h): New dependency.
1762         * dojump.c (and_reg, and_test, shift_test): New static variables.
1763         (prefer_and_bit_test): New function.
1764         (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
1765
1766 2004-03-20  Kazu Hirata  <kazu@cs.umass.edu>
1767
1768         * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
1769         expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
1770         reorg.c, tree.h: Fix comment typos.
1771
1772 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
1773
1774         * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
1775         c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
1776         cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
1777         haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
1778         sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
1779         vmsdbgout.c: Replace calls via (*targetm.foo) () with
1780         targetm.foo ().
1781
1782 2004-03-19  Ziemowit Laski  <zlaski@apple.com>
1783
1784         * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
1785         vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
1786         always_inline attribute.
1787         * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
1788         Treat expansion as completed even if literal argument is
1789         invalid (so that other expansions are not tried in vain).
1790
1791 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
1792
1793         * loop-doloop.c (add_test): Replace GEN_INT (0) with
1794         const0_rtx.
1795
1796 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
1797
1798         * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
1799         ...
1800         (fold_abs_const): ... here.
1801
1802 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1803
1804         * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
1805
1806 2004-03-19  Denis Chertykov  <denisc@overta.ru>
1807
1808         PR target/11520
1809         * config/avr/avr.md ("call_insn"): Handle explicit integer
1810         specially.
1811         (call_value_insn): Likewise.
1812
1813 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1814
1815         * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
1816
1817 2004-03-19  Kazu Hirata  <kazu@cs.umass.edu>
1818
1819         * fold-const.c (negate_expr): Move the handling of constants
1820         ...
1821         (fold_negate_const): ... here.
1822
1823 2004-03-19  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1824
1825         * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
1826         * langhooks.h (struct lang_hooks_for_types): New field hash_types.
1827         * tree.c (debug_no_type_hash): Deleted.
1828         (type_hash_canon): Abort if passed a variant.
1829         Check lang_hooks.types.hash_types.
1830         (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
1831         (build_array_type): Remove unnecessary allocation of pointer type.
1832         (build_complex_type): Properly qualify resulting type.
1833
1834 2004-03-19  Paolo Bonzini  <bonzini@gnu.org>
1835
1836         * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
1837
1838 2004-03-19  Richard Sandiford  <rsandifo@redhat.com>
1839
1840         * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
1841         (expand_mult): ...here.
1842         (extract_high_half): New, split out from expand_mult_highpart.
1843         (expand_highpart_optab): Likewise.  Don't clobber target prematurely.
1844         (expand_highpart): Evaluate the cost of a shift/add sequence,
1845         then see if any of the specialized optabs are cheaper.
1846
1847 2004-03-18  Ian Lance Taylor  <ian@wasabisystems.com>
1848
1849         * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
1850
1851 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1852
1853         * convert.c (convert_to_real): Add more math builtins.
1854
1855 2004-03-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1856
1857         * convert.c (convert_to_real): Reformat using switch stmt.
1858
1859 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
1860
1861         * c-common.c (pointer_int_sum): Do not complain about using
1862         pointers to pointers-to-members.
1863
1864 2004-03-18  Kazu Hirata  <kazu@cs.umass.edu>
1865
1866         * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
1867         have moved to the target hooks structure".
1868
1869 2004-03-18  James E Wilson  <wilson@specifixinc.com>
1870
1871         * config/mips/mips.md (type): Split move into arith and fmove.  Split
1872         hilo into mthilo and mfhilo.  Add trap.  Delete icmp.  Fix all uses.
1873         * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
1874         Likewise.
1875         * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
1876         Likewise.
1877         * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
1878         rm7_fp_quick): Likewise.
1879         * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
1880         rm9k_fquick): Likewise.
1881         * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
1882         Likewise.
1883         (ir_sr70_icmp): Delete.
1884
1885 2004-03-18  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1886
1887         * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
1888         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
1889         (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
1890         (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
1891         (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
1892         Protect with proper check.
1893         (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
1894         (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
1895         * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
1896         (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
1897         * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
1898         * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
1899         not TYPE_FIELDS.
1900         * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
1901
1902 2004-03-18  Mostafa Hagog  <mustafa@il.ibm.com>
1903
1904         * gcse.c (eliminate_partially_redundant_loads): Reject change if
1905         dest is set between beginning and current insn.
1906
1907 2004-03-18  Mark Mitchell  <mark@codesourcery.com>
1908
1909         * c-decl.c (grokdeclarator): Do not complain about redeclaring
1910         visible "static" identifiers "extern" in a local scope.
1911         * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
1912         post-increments/decrements.
1913
1914 2004-03-18  Bob Wilson  <bob.wilson@acm.org>
1915
1916         * config/xtensa/xtensa.c (current_function_arg_words): Delete.
1917         (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
1918         (xtensa_va_start): Remove assignment to current_function_arg_words.
1919
1920 2004-03-18  Richard Sandiford  <rsandifo@redhat.com>
1921
1922         * alias.c (record_set): Detect the case where a register is assigned
1923         a new value that has the same base term as the old one.
1924
1925 2004-03-18  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1926
1927         * doloop.c: Removed.
1928         * loop-doloop.c: New file.
1929         * Makefile.in (doloop.o): Remove.
1930         (loop-doloop.o): New.
1931         * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
1932         * cfgloopanal.c (get_loop_level): New function.
1933         * loop-iv.c (iv_number_of_iterations): Handle case when loop
1934         is leaved immediatelly.
1935         * loop.c (strength_reduce): Do not call doloop optimization.
1936         * loop.h (LOOP_BCT): Removed.
1937         * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
1938         (rest_of_handle_loop2): Call doloop_optimize_loops.
1939         (rest_of_compilation): Test for optimizations moved to
1940         rest_of_handle_loop2.
1941
1942 2004-03-17  Fariborz Jahanian <fjahanian@apple.com>
1943
1944         * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
1945         for mixed mode.
1946         (rs6000_emit_prologue): Ditto.
1947         (rs6000_emit_epilogue): Ditto.
1948         * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
1949         macro for mixed mode.
1950
1951 2004-03-18  Jan Hubicka  <jh@suse.cz>
1952
1953         * predict.c (propagate_freq): Compute correctly frequency of
1954         EXIT_BLOCK.
1955
1956 2004-03-17  Eric Christopher  <echristo@redhat.com>
1957
1958         * builtins.c (apply_args_size): Use reg_raw_mode.
1959         (apply_result_size): Ditto.
1960
1961 2004-03-17  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
1962
1963         PR target/14620
1964         * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
1965
1966 2004-03-17  Jakub Jelinek  <jakub@redhat.com>
1967
1968         * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
1969         32-bit builds when defaulting to 32-bit.
1970
1971 2004-03-17  Jan Hubicka  <jh@suse.cz>
1972
1973         * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
1974         array.
1975
1976 2004-03-17  James E Wilson  <wilson@specifixinc.com>
1977
1978         * config/mips/mips.md (zero_extendsidi2): Add length attribute.
1979         (hazard_nop): Change type to nop.
1980         (type): Split arith into arith, shift, slt, clz.  Delete darith.
1981         Fix all uses.  Change arith to multi if more than one insn emitted.
1982         * config/mips/5400.md (ir_vr54_arith): Likewise.
1983         * config/mips/5500.md (ir_vr55_arith): Likewise.
1984         * config/mips/7000.md (rm7_int_other): Likewise.
1985         * config/mips/9000.md (rm9k_int): Likewise.
1986         * config/mips/sr71k.md (ir_sr70_arith): Likewise.
1987
1988 2004-03-17  Joel Brobecker  <brobecker@gnat.com>
1989
1990         * dwarf2out.c (subrange_type_die): Define new variable "subtype"
1991         to hold the subtype tree instead of recomputing it several times.
1992
1993 2004-03-17  Kazu Hirata  <kazu@cs.umass.edu>
1994
1995         * config/mn10300/mn10300.c (notice_update_cc): Don't handle
1996         CC_INVERT.
1997         * config/mn10300/mn10300.md (cc): Remove "invert".
1998
1999 2004-03-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2000
2001         * builtins.c (integer_valued_real_p): Add builtin rint.
2002         (fold_builtin): Likewise.
2003         * convert.c (convert_to_real): Likewise.
2004
2005         * convert.c (convert_to_real): Fix typos in `long double'
2006         builtins.
2007
2008 2004-03-16  Mark Mitchell  <mark@codesourcery.com>
2009
2010         PR c++/14481
2011         * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
2012         generated COMPOUND_EXPRs.
2013
2014 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
2015
2016         * config/h8300/t-rtems (h8300-*-rtems*): New.
2017
2018 2004-03-16  Eric Christopher  <echristo@redhat.com>
2019
2020         * doc/cppopts.texi(fwide-exec-charset): Fix typo.
2021
2022 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
2023
2024         * config/i386/i386-protos.h: Add a prototype for
2025         ix86_reverse_condition.
2026         * config/i386/i386.c (ix86_reverse_condition): New.
2027         * config/i386/i386.h (REVERSE_CONDITION): Use
2028         ix86_reverse_condition.
2029         * config/i386/i386.md: Use ix86_reverse_condition instead of
2030         REVERSE_CONDITION.
2031
2032 2004-03-16  J. Brobecker  <brobecker@gnat.com>
2033
2034         * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
2035
2036 2004-03-16  Nathanael Nerode  <neroden@gcc.gnu.org>
2037
2038         PR bootstrap/12974
2039         * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
2040
2041 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
2042
2043         * c-common.c (c_common_type_for_mode): Build vector types on
2044         demand.
2045         (handle_mode_attribute): Deprecate using the mode attribute
2046         to create vector types.  Fix indentation.
2047         (vector_type_node_list): Remove.
2048         (handle_vector_size_attribute): Create vector types on demand.
2049         Strip a NON_LVALUE_EXPR from the attribute if there is one.
2050         * c-typeck.c (comptypes): Make vector types compatible if they
2051         have the same underlying mode.
2052         (convert_for_assignment): Use comptypes to convert between
2053         vector types.
2054         * tree.c (build_common_tree_nodes_2): Do not create vector types.
2055         * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
2056         vector types.
2057         * tree.h: Remove vector types.
2058         * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
2059         * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
2060         (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
2061         V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
2062         * doc/extend.texi (Vector Types): Document how to use the
2063         vector_size attribute to create vectors, rather than mode.
2064
2065         * config/arm/mmintrin.h: Use vector_size attribute, not mode.
2066         * config/i386/emmintrin.h: Likewise.
2067         * config/i386/mmintrin.h: Likewise.
2068         * config/i386/xmmintrin.h: Likewise.
2069         * config/sh/ushmedia.h: Likewise.
2070
2071 2004-03-16  Kazu Hirata  <kazu@cs.umass.edu>
2072
2073         * config/freebsd-spec.h, config/arc/arc-protos.h,
2074         config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
2075         config/arm/linux-gas.h, config/arm/semi.h,
2076         config/cris/cris-protos.h, config/i386/xm-djgpp.h,
2077         config/ia64/freebsd.h, config/mips/7000.md,
2078         config/mips/9000.md, config/ns32k/ns32k-protos.h,
2079         config/sparc/pbd.h: Update copyright.
2080
2081 2004-03-16  Ralf Corsepius <corsepiu@faw.uni-ulm.de>
2082
2083         PR target/14577
2084         * config.gcc: Switch sh-*-rtems* to ELF.  Add sh-*-rtemscoff.
2085
2086 2004-03-16  Paolo Bonzini  <bonzini@gnu.org>
2087
2088         * combine.c (combine_simplify_rtx): Remove the "last"
2089         parameter and its documentation.  Adjust recursive calls.
2090         (simplify_logical): Always perform the only simplification
2091         controlled by "last", if the simplified expression is
2092         actually different.
2093         (try_combine): Do not pass the "last" parameter to
2094         combine_simplify_rtx.
2095
2096 2004-03-16  Richard Sandiford  <rsandifo@redhat.com>
2097
2098         PR target/14599
2099         * config/mips/mips.md (UNSPEC_GP): New constant.
2100         * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
2101         an UNSPEC instead of (reg $gp).
2102         (mips16_gp_pseudo_reg): Change accordingly.
2103         (print_operand): Print $gp directly when handling CONST_GP_P.
2104
2105 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
2106
2107         * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
2108         * longlong.h: Make code 68060 clean when compiling for m68060.
2109
2110 2004-03-16  Richard Zidlicky  <rz@linux-m68k.org>
2111
2112         * config/m68k/m68k.md: Fix constraints for bitfield instructions.
2113         * doc/md.texi: Clarify description of "i" constraint.
2114
2115 2004-03-15  James E Wilson  <wilson@specifixinc.com>
2116
2117         * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
2118         Split store into store, fpstore, fpidxstore.  Fix all uses.
2119         * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
2120         Likewise.
2121         * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
2122         * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
2123         * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
2124         * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
2125         ir_sr70_fstore): Likewise.
2126
2127 2004-03-15  Richard Henderson  <rth@redhat.com>
2128
2129         PR middle-end/14535
2130         * except.c (collect_one_action_chain): Record action for cleanup
2131         outer of exception spec.
2132
2133 2004-03-15  Ian Lance Taylor  <ian@wasabisystems.com>
2134
2135         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
2136         Fix the check for abort and only do the mmap if we can.
2137
2138 2004-03-15  Eric Botcazou  <ebotcazou@act-europe.fr>
2139
2140         * config/sparc/sparc.h: Rework comments about the code model
2141         in 64-bit environment and the mode 'Pmode'.
2142         * doc/invoke.texi (SPARC options): Rework description of the
2143         different code models supported in 64-bit environment.
2144
2145 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
2146
2147         * defaults.h (REVERSIBLE_CC_MODE): Define.
2148         * jump.c (reversed_comparison_code_parts): Don't check if
2149         REVERSIBLE_CC_MODE is defined.
2150
2151 2004-03-15  Kazu Hirata  <kazu@cs.umass.edu>
2152
2153         * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
2154         et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
2155         hosthooks.h, params.h, ra-colorize.c, web.c,
2156         config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
2157         config/avr/avr-protos.h, config/avr/avr.md,
2158         config/fr30/fr30-protos.h, config/fr30/fr30.md,
2159         config/h8300/fixunssfsi.c, config/i386/darwin.h,
2160         config/i386/freebsd.h, config/i386/freebsd64.h,
2161         config/ia64/hpux.h, config/ia64/unwind-ia64.c,
2162         config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
2163         config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
2164         config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
2165         config/pa/pa64-regs.h, config/rs6000/aix41.h,
2166         config/rs6000/aix43.h, config/rs6000/host-darwin.c,
2167         config/sparc/aout.h, config/sparc/freebsd.h,
2168         config/sparc/litecoff.h, config/vax/vax-protos.h,
2169         doc/hostconfig.texi, doc/include/gcc-common.texi: Update
2170         copyright.
2171
2172 2004-03-15  Paul Brook  <paul@codesourcery.com>
2173
2174         * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
2175
2176 2004-03-15  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2177
2178         * c-pretty-print.c (pp_c_semicolon): Fix formatting.
2179         (pp_c_cv_qualifier): Document.
2180         (pp_c_space_for_pointer_operator): Likewise.
2181         (pp_c_integer_constant): Likewise.
2182         (pp_c_identifier): Likewise.
2183         (pp_c_init_declarator): Don't print function body.
2184
2185 2004-03-14  Joseph S. Myers  <jsm@polyomino.org.uk>
2186
2187         * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
2188         doc/install.texi, doc/invoke.texi, doc/makefile.texi,
2189         doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
2190         "gcc", "g++" and "g77" or mark up with appropriate markup.  Adjust
2191         wording and grammar.
2192
2193 2004-03-14  Roger Sayle  <roger@eyesopen.com>
2194
2195         * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
2196         with lang_hooks.foo ().
2197         * builtins.c (expand_builtin_va_arg): Likewise.
2198         * c-common.c (fname_as_string, c_common_truthvalue_conversion,
2199         c_common_type_for_mode, c_common_nodes_and_builtins,
2200         handle_mode_attribute, handle_vector_size_attribute): Likewise.
2201         * c-convert.c (convert): Likewise.
2202         * c-format.c (check_format_types): Likewise.
2203         * c-objc-common.c (c_tree_printer): Likewise.
2204         * c-typeck.c (build_unary_op, build_conditional_expr,
2205         build_binary_op): Likewise.
2206         * calls.c (try_to_integrate, expand_call,
2207         emit_library_call_value_1): Likewise.
2208         * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
2209         Likewise.
2210         * cgraphunit.c (record_call_1, cgraph_analyze_function,
2211         cgraph_expand_function): Likewise.
2212         * convert.c (convert_to_pointer, convert_to_integer): Likewise.
2213         * coverage.c (build_fn_info_type, build_ctr_info_type,
2214         build_gcov_info, create_coverage): Likewise.
2215         * dbxout.c (dbxout_init): Likewise.
2216         * diagnostic.c (diagnostic_report_current_function): Likewise.
2217         * dojump.c (do_jump): Likewise.
2218         * dwarf2out.c (dwarf2_name): Likewise.
2219         * except.c (init_eh): Likewise.
2220         * explow.c (expr_size, int_expr_size): Likewise.
2221         * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
2222         Likewise.
2223         * expr.c (store_expr, store_constructor, safe_from_p,
2224         expand_expr_real, do_store_flag, try_casesi): Likewise.
2225         * function.c (push_function_context_to, pop_function_context_from,
2226         free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
2227         put_var_into_stack, allocate_struct_function, current_function_name):
2228         Likewise.
2229         * integrate.c (copy_decl_for_inlining, expand_inline_function):
2230         Likewise.
2231         * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
2232         lhd_print_error_function): Likewise.
2233         * opts.c (handle_option, decode_options): Likewise.
2234         * passes.c (open_dump_file): Likewise.
2235         * print-tree.c (print_node): Likewise.
2236         * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
2237         expand_decl_cleanup, emit_case_nodes): Likewise.
2238         * stor-layout.c (variable_size): Likewise.
2239         * toplev.c (announce_function, wrapup_global_declarations,
2240         check_global_declarations, compile_file, default_tree_printer,
2241         process_options, lang_dependent_init, finalize): Likewise.
2242         * tree-dump.c (dequeue_and_dump): Likewise.
2243         * tree-inline.c (remap_decl, remap_block, copy_body_r,
2244         initialize_inlined_parameters, declare_return_variable,
2245         inlinable_function_p, expand_call_inline, optimize_inline_calls,
2246         walk_tree, copy_tree_r): Likewise.
2247         * tree-optimize.c (tree_rest_of_compilation): Likewise.
2248         * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
2249         unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
2250         variably_modified_type_p, dump_tree_statistics): Likewise.
2251         * varasm.c (assemble_variable, compare_constant, copy_constant,
2252         force_const_mem, compute_reloc_for_constant, output_constant,
2253         output_addressed_constants, initializer_constant_valid_p): Likewise.
2254
2255 2004-03-14  Kelley Cook  <kcook@gcc.gnu.org>
2256
2257         * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
2258
2259 2004-03-14  Andreas Tobler  <a.tobler@schweiz.ch>
2260
2261         * doc/install.texi: Reflect autoconf and automake version for
2262         libffi. Update autoconf version to 2.59.
2263
2264 2004-03-13  Roger Sayle  <roger@eyesopen.com>
2265
2266         * fold-const.c (negate_expr, operand_equal_for_comparison_p,
2267         optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
2268         make_range, build_range_check, fold_range_test, unextend,
2269         constant_boolean_node, fold_binary_op_with_conditional_arg,
2270         fold_truthop, fold_mathfn_compare, fold_inf_compare,
2271         fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
2272         with lang_hooks.foo ().
2273
2274 2004-03-14  Richard Earnshaw  <rearnsha@arm.com>
2275
2276         * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
2277
2278 2004-03-13  Dara Hazeghi  <dhazeghi@yahoo.com>
2279
2280         * doc/install.texi: Note status of -fnew-ra.
2281
2282 2004-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
2283
2284         PR middle-end/14470
2285         * expr.c (store_expr): Call emit_queue before generating the move
2286         from the temporary to the original target.  Protect the temporary
2287         from emit_queue.
2288
2289 2004-03-13  Jakub Jelinek  <jakub@redhat.com>
2290
2291         PR target/14533
2292         * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
2293         other than UNSPEC_GOTOFF.
2294
2295 2004-03-13  Richard Earnshaw  <rearnsha@arm.com>
2296
2297         * arm.c (arm_legitimate_address_p): New argument, OUTER.  Pass through
2298         to arm_legitimate_index_p.  Update all callers with SET as default
2299         value.
2300         (arm_legitimate_index_p): New argument, OUTER.  Restrict the index
2301         range if OUTER is a sign-extend operation on QImode.  Correctly
2302         reject shift operations on sign-extended QImode addresses.
2303         (bad_signed_byte_operand): Delete.
2304         (arm_extendqisi_mem_op): New function.
2305         * arm.h (EXTRA_CONSTRAINT_ARM): Delete.  Replace with...
2306         (EXTRA_CONSTRAINT_STR_ARM): ... this.  Handle extended address
2307         constraints.
2308         (CONSTRAINT_LEN): New.
2309         (EXTRA_CONSTRAINT): Delete.  Replace with...
2310         (EXTRA_CONSTRAINT_STR): ... this.
2311         (PREDICATE_CODES): Remove bad_signed_byte_operand.
2312         * arm.md (extendqihi_insn): Use new constraint Uq.  Rework.  Length
2313         is now always default.
2314         (define_splits for bad sign-extend loads): Delete.
2315         (arm_extendqisi, arm_extendqisi_v5): Likewise.
2316         * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
2317         Rework 'U' constraint to 'Uv'.
2318         * arm-protos.h: Remove bad_signed_byte_operand.  Add
2319         arm_extendqisi_mem_op.
2320         * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
2321         Add Uq constraint.
2322
2323 2004-03-13  Alan Modra  <amodra@bigpond.net.au>
2324
2325         * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
2326         with targetm version.
2327
2328         PR target/14567
2329         * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
2330         (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
2331         * config/rs6000/rs6000.c (rs6000_arg_size): New function.
2332         Update all users of RS6000_ARG_SIZE.
2333         (function_arg_advance): Count fregno using mode size.
2334         (function_arg): Handle long double split over regs and memory.
2335         (function_arg_partial_nregs): Likewise.
2336         (rs6000_va_arg): Repackage complex args.
2337
2338 2004-03-13  Dean Ferreyra <dferreyra@igc.org>
2339
2340         PR target/14047
2341         * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
2342         (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
2343         * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
2344
2345 2004-03-12  Jakub Jelinek  <jakub@redhat.com>
2346
2347         * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
2348         prototype.
2349         * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
2350         * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
2351
2352 2003-03-12  Andrew Pinski  <apinski@apple.com>
2353
2354         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
2355         Use ret instead of result. Use addr instead of base.
2356
2357 2004-03-12  David Edelsohn  <edelsohn@gnu.org>
2358
2359         * doc/install.texi (*-ibm-aix*): Document assembler and achiver
2360         fixes required by libstdc++ and update installation instructions
2361         for libstdc++.a.
2362
2363 2004-03-12  Danny Smith  <dannysmith@users.sourceforge.net>
2364
2365         * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
2366         leading '@' on fastcall symbols before stripping suffix.
2367
2368 2004-03-12  Roger Sayle  <roger@eyesopen.com>
2369
2370         * combine.c (unmentioned_reg_p): New function to check whether an
2371         expression is a "specialization" of another, i.e. that there are
2372         no registers or memory references mentioned in the first that don't
2373         appear in the second.
2374         (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
2375         (combine_instructions): Also try combining instructions using the
2376         REG_EQUAL note from a preceding log-linked instruction.
2377
2378 2004-03-12  Roger Sayle  <roger@eyesopen.com>
2379
2380         * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
2381
2382 2004-03-12  Matt Austern  <austern@apple.com>
2383
2384         * target.h (struct gcc_target): New target hook, unwind_label.
2385         * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
2386         * output.h (default_emit_unwind_label): New function.
2387         * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
2388         (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
2389         (TARGET_SUPPORTS_HIDDEN): New target macro.
2390         * dwarf2out.c (struct dw_fde_struct): Add field for function decl
2391         that corresponds to this FDE.
2392         (FRAME_BEGIN_LABEL): Allow target to override default label.
2393         (output_call_frame_info): If FDEs are linknonce, then use extra
2394         indirection for FDE encoding, output a label for each FDE, and
2395         output an empty label for each function without an FDE.
2396         (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
2397         * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
2398         decls with DECL_ONE_ONLY set, if that macro is defined.
2399         (make_decl_one_only): Don't use DECL_COMMON if we're compiling
2400         for a SUPPORTS_ONE_ONLY target.
2401         * config/darwin-protos.h (darwin_unique_section): Declare.
2402         (darwin_asm_named_section): Likewise.
2403         (darwin_section_type_flags): Likewise.
2404         (darwin_non_lazy_pcrel): Likewise.
2405         (darwin_emit_unwind_label): Likewise.
2406         (darwin_make_decl_one_only): Likewise.
2407         * config/darwin.c (machopic_finish): Get rid of tweak that
2408         eliminate stubs for symbols that are defined.
2409         (darwin_encode_section_info): Don't treat weak functions as defined.
2410         (darwin_make_decl_one_only): Define.
2411         (darwin_asm_named_section): Likewise.
2412         (darwin_section_type_flags): Likewise.
2413         (darwin_unique_section): Likewise.
2414         (darwin_emit_unwind_label): Likewise.
2415         (darwin_non_lazy_pcrel): Likewise.
2416         (darwin_asm_output_dwarf_delta): Difference between two labels is
2417         local only if both labels are local.
2418         * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
2419         (ASM_MAKE_LABEL_LINKONCE): Likewise.
2420         (TARGET_SUPPORTS_HIDDEN): Likewise.
2421         (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
2422         (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
2423         (FRAME_BEGIN_LABEL): Likewise.
2424         (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
2425         (ASM_DECLARE_FUNCTION_NAME): Likewise.
2426         (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
2427         (TARGET_ASM_UNIQUE_SECTION): Define.
2428         (EH_FRAME_SECTION_NAME): Define.
2429         (EH_FRAME_SECTION_ATTR): Likewise.
2430         (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
2431         (TARGET_ASM_NAMED_SECTION): Likewise.
2432         (TARGET_SECTION_TYPE_FLAGS): Likewise.
2433         * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
2434         TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
2435         TARGET_ASM_EMIT_UNWIND_LABEL.
2436
2437 2004-03-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2438
2439         * builtins.c (expand_builtin_mathfn): Add pow10* to the
2440         existing exp10* case.
2441         (expand_builtin): Likewise.
2442
2443 2004-03-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
2444
2445         * doc/tm.texi (registers) <Values in Registers>: Add
2446         entry for REGMODE_NATURAL_SIZE.
2447
2448 2004-03-12  Richard Henderson  <rth@redhat.com>
2449
2450         PR target/14547
2451         * target.h (struct gcc_target): Move calls substructure before
2452         booleans.  Add split_complex_arg.
2453         * function.c (assign_parms, split_complex_args): Use it.
2454         * calls.c (expand_call): Likewise.
2455         (split_complex_values): Likewise.  Check for splittable types
2456         before allocating memory.
2457         (split_complex_types): Likewise.
2458         * system.h (SPLIT_COMPLEX_ARGS): Poison.
2459         * expr.h (SPLIT_COMPLEX_ARGS): Remove.
2460         * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
2461         * config/alpha/alpha.c (alpha_split_complex_arg): New.
2462         (TARGET_SPLIT_COMPLEX_ARG): New.
2463         * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
2464         * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
2465         (rs6000_override_options): Zap it for non-AIX.
2466         (rs6000_function_value): Use targetm.calls.split_complex_arg.
2467         * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
2468         * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
2469         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
2470         * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
2471         SPLIT_COMPLEX_ARGS entry.
2472
2473 2004-03-11  Richard Henderson  <rth@redhat.com>
2474
2475         * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
2476         (alpha_lookup_xfloating_lib_func): Use them, return rtx.
2477         (alpha_emit_xfloating_arith): Update to match.
2478         (alpha_emit_xfloating_compare): Likewise.
2479         (alpha_emit_xfloating_cvt): Likewise.
2480         (alpha_emit_xfloating_libcall): Take already built symbol,
2481         mark call const.
2482         * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
2483         op1 in a register.
2484
2485 2004-03-11  Richard Henderson  <rth@redhat.com>
2486
2487         PR target/14539
2488         * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
2489
2490         * simplify-rtx.c (simplify_relational_operation): Fix typo.
2491
2492 2004-03-11  Richard Henderson  <rth@redhat.com>
2493
2494         PR middle-end/14477
2495         * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
2496
2497 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
2498
2499         PR target/14262
2500         * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
2501         defined, pass small BLKmode values in registers in the low-order part.
2502
2503 2004-03-11  Ulrich Weigand  <uweigand@de.ibm.com>
2504
2505         * combine.c (if_then_else_cond): Check for NULL return value of
2506         simplify_gen_subreg.
2507
2508 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
2509
2510         PR target/14496
2511         * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
2512         TARGET_SINGLE_FLOAT.
2513
2514 2004-03-11  Steve Ellcey  <sje@cup.hp.com>
2515
2516         * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
2517         * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
2518         * config/ia64/ia64.c (ia64_init_libfuncs): New.
2519         (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
2520
2521 2004-03-11  Roger Sayle  <roger@eyesopen.com>
2522
2523         * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
2524         -((int)X>>C) where C is an integer constant one bit less than the
2525         size of X into (unsigned)X>>C.  Similarly for unsigned->signed.
2526         (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
2527
2528         * simplify-rtx.c (simplify_unary_operation): Also implement the
2529         above transformations at the RTL level.
2530
2531 2004-03-11  Alan Modra  <amodra@bigpond.net.au>
2532
2533         * real.c (encode_ibm_extended): Do round low word.
2534
2535 2004-03-11  Ben Elliston  <bje@wasabisystems.com>
2536
2537         * config/arm/arm.md (is_xscale): Comment this attribute and move
2538         it a bit further up in the file, closer to related attributes.
2539
2540 2004-03-11  Eric Botcazou  <ebotcazou@libertysurf.fr>
2541
2542         * config/host-solaris.c (sol_gt_pch_use_address): Add
2543         missing terminating marker to comment.
2544
2545 2004-03-11  Richard Sandiford  <rsandifo@redhat.com>
2546
2547         * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
2548         (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
2549         (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
2550         (*movsf_mips16, *movdf_mips16):  Name unnamed patterns.  Use
2551         move_operand as source predicate in all cases.
2552         (*movdi_32bit): Renamed from movdi_internal.  Remove 'F' constraint.
2553         Test reg_or_0_operand.  Use move_operand as source predicate.
2554         (*movdi_64bit): Renamed from movdi_internal2.  Test reg_or_0_operand.
2555         (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
2556         (*movsi_internal): Renamed from movsi_internal.  Test reg_or_0_operand.
2557         (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
2558         (*movhi_internal): Renamed from movhi_internal.  Test reg_or_0_operand.
2559         Use move_operand as source predicate.  Remove 'K' constraint.
2560         (*movqi_internal): Likewise movqi_internal.
2561         (*movsf_hardfloat): Renamed from movsf_internal1.  Test
2562         reg_or_0_operand.  Use move_operand as source predicate.
2563         (*movsf_softfloat): Likewise movsf_internal2.
2564         (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
2565         (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
2566         (*movdf_softfloat): Likewise movdf_internal2.
2567         * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
2568         for DImode if !TARGET_64BIT.
2569         (mips_legitimize_move): Simplify accordingly.
2570
2571 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
2572
2573         PR/14362
2574         * var-tracking.c (struct variable_def): Added field refcount.
2575         (variable_htab_free): Decrease the refcount and delete variable
2576         only if there are no more references.
2577         (unshare_variable): New function.
2578         (vars_copy_1): Increase refcount instead of copying the variable.
2579         (variable_union): Share the variables where possible, unshare
2580         the variables if needed.
2581         (variable_different_p): Return false if var1 and var2 are
2582         the same structure.
2583         (variable_was_changed): Init the refcount of new variable.
2584         (set_frame_base_location): Unshare variable if needed.
2585         (set_variable_part): Init the refcount of new variable.
2586         Unshare the variables if needed.
2587         (delete_variable_part): Unshare the variables if needed.
2588         (emit_notes_for_differences_1): Init the refcount of new variable.
2589         (vt_add_function_parameters): Do not add function parameters to
2590         IN set of ENTRY_BLOCK_PTR because it is unused anyway.
2591         (vt_initialize): Do not add frame_base_decl to IN set of
2592         ENTRY_BLOCK_PTR because it is unused anyway.
2593
2594 2004-03-11  Josef Zlomek  <zlomekj@suse.cz>
2595
2596         * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
2597         (vars_copy): Likewise.
2598         (variable_union): Likewise.
2599         (set_variable_part): Likewise.
2600         (delete_variable_part): Likewise.
2601
2602 2004-03-11  Kazu Hirata  <kazu@cs.umass.edu>
2603
2604         * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
2605         ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
2606         config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
2607         config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
2608         config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
2609         config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
2610         config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
2611         config/pdp11/pdp11.h, config/rs6000/rs6000.c,
2612         config/stormy16/stormy16.c: Fix comment typos and formatting.
2613
2614 2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
2615
2616         * configure: Regenerate, since I forgot to while committing Paolo's
2617         changes.
2618
2619 2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
2620
2621         PR ada/14131
2622         Move language detection to the top level.
2623         * configure.ac: Remove code to detect languages,
2624         it now lives exclusively in the top level.
2625         * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
2626         top level, renamed to ACX_PROG_GNAT.
2627
2628 2004-03-10  Richard Henderson  <rth@redhat.com>
2629
2630         * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
2631         extra arguments.
2632         * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
2633         and host_xmake_file fragments.
2634         * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
2635         (gt_pch_restore): Similarly for gt_pch_use_address.
2636         (default_gt_pch_get_address): New.
2637         (mmap_gt_pch_get_address): Split out of gt_pch_save.
2638         (default_gt_pch_use_address): Split out of gt_pch_restore.
2639         (mmap_gt_pch_use_address): Likewise.
2640         * hooks.c (hook_voidp_size_t_null): Remove.
2641         (hook_bool_voidp_size_t_false): Remove.
2642         * hooks.h: Likewise.
2643         * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
2644         default_ or mmap_ definitions.
2645         (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
2646         * hosthooks.h (struct host_hooks): Update gt_pch_get_address
2647         and gt_pch_use_address.
2648         * config/host-linux.c, config/host-solaris.c: New files.
2649         * config/x-linux, config/x-solaris: New files.
2650         * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
2651         Update for changed definition.
2652         (darwin_rs6000_gt_pch_use_address): Likewise.
2653         * doc/hostconfig.texi: Update docs.
2654
2655 2004-03-10  Richard Henderson  <rth@redhat.com>
2656
2657         PR c/14517
2658         * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
2659         except for pedantic c90 mode.
2660
2661 2004-03-10  Kelley Cook  <kcook@gcc.gnu.org>
2662
2663         * configure.ac: Bump AC_PREREQ to 2.59.
2664         * configure: Regenerate.
2665
2666 2004-03-10  Uros Bizjak  <uros@kss-loka.si>
2667
2668         * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
2669         (exp10_optab, exp2_optab): Define corresponding macros.
2670         * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
2671         * genopinit.c (optabs): Implement exp10_optab and exp2_optab
2672         using exp10?f2 and exp2?f2 patterns.
2673         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
2674         using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
2675         (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
2676         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
2677
2678         * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
2679         exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
2680         exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
2681
2682 2004-03-10  Anthony Green  <green@redhat.com>
2683
2684         * doc/invoke.texi (ARM Options): Fix -mpfu typo.
2685
2686 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
2687
2688         * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
2689         (TARGET_OS_AIX_CPP_BUILTINS): this.  Conditionally define
2690         __LONGDOUBLE128.
2691         * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
2692         TARGET_OS_AIX_CPP_BUILTINS.
2693         * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
2694         * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
2695         * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
2696         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
2697         previous change.
2698
2699 2004-03-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2700
2701         * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
2702
2703 2004-03-10  David Edelsohn  <edelsohn@gnu.org>
2704
2705         * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
2706         __LONGDOUBLE128 on AIX.
2707
2708 2004-03-10  Andrew Haley  <aph@redhat.com>
2709
2710         PR optimization/14381
2711         * function.c (expand_function_end): Emit a blockage insn before
2712         the epilogue when -fnon-call-exceptions is used.
2713
2714         * except.c (expand_start_all_catch): Make comment more accurate.
2715
2716 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
2717
2718         PR target/14480
2719         * config/rs6000/t-rtems: Add missing file on branch.
2720
2721 2004-03-10  Ulrich Weigand  <uweigand@de.ibm.com>
2722
2723         * dbxout.c (dbxout_symbol_location): Do not output references
2724         to optimized-out constant pool symbols.
2725
2726 2004-03-10  Andreas Schwab  <schwab@suse.de>
2727
2728         * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
2729         twon34_r.
2730
2731 2004-03-09  James E Wilson  <wilson@specifixinc.com>
2732
2733         * alias.c (alias_sets_might_conflict_p): New.
2734         * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
2735         * common.opt (Wstrict-aliasing=): New.
2736         * flags.h (warn_strict_aliasing): Change type to int.
2737         * opts.c (warn_strict_aliasing): Change type to int.
2738         (common_handle_option): Handle OPT_Wstrict_aliasing_.
2739         * tree.h (alias_sets_might_conflict_p): Declare it.
2740         * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
2741
2742 2004-03-10  Roman Zippel  <zippel@linux-m68k.org>
2743
2744         PR bootstrap/12371
2745         * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
2746         (CALL_USED_REGISTERS): Likewise.
2747         (REG_CLASS_CONTENTS): Likewise.
2748         (REG_ALLOC_ORDER): New.
2749         (REGNO_REG_CLASS): Use regno_reg_class.
2750         * config/m68k/m68k.c: Add regno_reg_class array.
2751
2752 2004-03-09  Steve Ellcey  <sje@cup.hp.com>
2753
2754         * config/ia64/ia64.md (divsi3): Fix algorithm.
2755           (udivsi3): Ditto.
2756           (setf_exp_xf): Remove '*' from name.
2757         * testsuite/gcc.dg/20040309-1.c: New test.
2758
2759 2004-03-09  Ian Lance Taylor  <ian@wasabisystems.com>
2760
2761         * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
2762         * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
2763         * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
2764         * config/sparc/sparc.c (sparc_aout_select_section): Remove.
2765         (sparc_aout_select_rtx_section): Don't check
2766         SUNOS4_SHARED_LIBRARIES.
2767         * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
2768
2769 2004-03-10  Hans-Peter Nilsson  <hp@axis.com>
2770
2771         PR other/14474
2772         * doc/md.texi (Pattern Ordering, Dependent Patterns)
2773         (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
2774         INTERNALS".
2775
2776 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
2777
2778         * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
2779         (LIBGCC_SPEC): Update to match.
2780
2781 2004-03-09  Zack Weinberg  <zack@codesourcery.com>
2782
2783         * c-decl.c (last_function_parms, last_function_parm_tags)
2784         (last_function_parm_others, current_function_parms)
2785         (current_function_parm_tags, current_function_parm_others):
2786         Delete.
2787         (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
2788         New macros.
2789         (grokdeclarator): For function definitions, save the arg-info
2790         block from the declarator in DECL_ARGUMENTS.
2791         (grokparms): Do not write to last_function_parm*.  Use ARG_INFO_*
2792         macros to operate on arg-info block.  Can assume ARG_INFO_PARMS
2793         contains only PARM_DECLs.  Improve diagnostics.
2794         (get_parm_info): Use ARG_INFO_* macros.  Improve comments and
2795         diagnostics.  Disable some expensive checks if not ENABLE_CHECKING.
2796         (store_parm_decls_newstyle): Take the function to operate on,
2797         and an arg-info block, as arguments; don't get anything from
2798         current_function_* globals.
2799         (store_parm_decls_oldstyle): Likewise.
2800         (store_parm_decls): Pass fndecl and its arg-info block down to
2801         store_parm_decls_newstyle/oldstyle.  Send functions with empty
2802         argument lists through store_parm_decls_newstyle to reduce
2803         overhead.
2804         (pushdecl): Comment on the problems with the call to copy_node.
2805         Clear DECL_ARGUMENTS of the old node after copying it, if it
2806         is an arg-info block instead of a chain of decls.
2807         (start_function): Do not manipulate current_function_parm* or
2808         last_function_parm*.
2809
2810 2004-03-09  Roger Sayle  <roger@eyesopen.com>
2811             Andrew Pinski  <pinskia@physics.uc.edu>
2812
2813         * ifcvt.c (noce_try_sign_mask): New function to transform
2814         "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
2815         (noce_process_if_block): Call noce_try_sign_mask.
2816
2817 2004-03-09  Andrew Pinski  <apinski@apple.com>
2818
2819         * c-typeck.c (tagged_types_tu_compatible_p):
2820         Fix typo.
2821
2822 2004-03-09  Roger Sayle  <roger@eyesopen.com>
2823
2824         * simplify-rtx.c (simplify_const_relational_operation): New function
2825         renamed from simplify_relational_operation.
2826         (simplify_relational_operation): Change prototype to accept an
2827         additional mode argument.  Call simplify_const_relational_operation.
2828         (simplify_gen_relational): Update simplify_relational_operation call.
2829         (simplify_ternary_operation): Update simplify_relational_operation
2830         subroutine call to use simplify_const_relational_operation instead.
2831
2832         * rtl.h (simplify_const_relational_operation): Prototype here.
2833         (simplify_relational_operation): Add addtional mode argument.
2834
2835         * combine.c (combine_simplify_rtx): Update calls to
2836         simplify_relational_operation.
2837         (simplify_set): Likewise.
2838         (gen_binary): Likewise.
2839         * cse.c (fold_rtx): Likewise.
2840         * dojump.c (compare_from_rtx): Likewise.
2841         (do_compare_rtx_and_jump): Likewise.
2842         * integrate.c (subst_constants): Likewise.
2843         * unroll.c (simplify_cmp_and_jump_insns): Likewise.
2844
2845 2004-03-09  Kazu Hirata  <kazu@cs.umass.edu>
2846
2847         * config/m32r/m32r.md: Remove all define_peephole's.
2848
2849 2004-03-09  Alan Modra  <amodra@bigpond.net.au>
2850
2851         * config/rs6000/rs6000.md: Remove trailing whitespace.
2852
2853 2004-03-08  Eric Christopher  <echristo@redhat.com>
2854
2855         * Makefile.in (site.exp): Add libiconv variable definition.
2856
2857 2004-03-09  Hans-Peter Nilsson  <hp@axis.com>
2858
2859         * configure: Regenerate for config/accross.m4 correction.
2860
2861 2004-03-08  Joel Sherrill  <joel@oarcorp.com>
2862
2863         PR target/14480
2864         * config/rs6000/t-rtems: Add missing file on branch.
2865
2866 2004-03-08  Roger Sayle  <roger@eyesopen.com>
2867
2868         PR middle-end/14289
2869         * c-typeck.c (c_mark_addressable): A register variable should
2870         be considered global if its not automatic, i.e. TREE_PUBLIC,
2871         TREE_STATIC or DECL_EXTERNAL.
2872         * function.c (put_var_into_stack): Call abort when placing a
2873         hard register into the stack, if x_parm_reg_stack_loc is NULL.
2874
2875 2004-03-08  Ulrich Weigand  <uweigand@de.ibm.com>
2876
2877         * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
2878         ("*extendqisi2_short_displ"): Likewise.
2879
2880 2004-03-08  Kazu Hirata  <kazu@cs.umass.edu>
2881
2882         * config/pdp11/pdp11.c (comparison_operator_index): Remove.
2883         (comp_operator): Likewise.
2884         * config/pdp11/pdp11-protos.h: Remove corresponding
2885         prototypes.
2886
2887 2004-03-08  Eric Botcazou  <ebotcazou@act-europe.fr>
2888
2889         * expr.c (highest_pow2_factor_for_type): Rename into
2890         highest_pow2_factor_for_target.  Use DECL_ALIGN instead of
2891         TYPE_ALIGN when the target is a COMPONENT_REF.
2892         (expand_assignment): Ajust call to highest_pow2_factor_for_type.
2893
2894 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
2895
2896         * config/rs6000/rs6000.c: Formatting fix.
2897         (legitimate_offset_address_p): Correct offset range check.
2898
2899         * config/rs6000/rs6000.c (rs6000_override_options): Don't override
2900         -msoft-float by -mcpu.  Consolidate similar code for MASK_MULTIPLE
2901         and MASK_STRING.
2902
2903 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
2904
2905         * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
2906         for little endian.
2907         ("ashrdi3_no_power"): Disable for little endian.
2908         (ashrdi3): Same.
2909
2910 2004-03-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2911
2912         * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
2913         builtins.
2914
2915 2004-03-08  Hans-Peter Nilsson  <hp@axis.com>
2916
2917         PR target/14471
2918         * configure.ac (Target-specific assembler checks) <cris-*-*>: New
2919         case, checking for -no-mul-bug-abort option.
2920         * configure, config.in: Regenerate.
2921         * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
2922         and -mno-mul-bug-workaround.
2923         * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
2924         ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
2925         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
2926         Ditto.  Make attribute "slottable" dependent on TARGET_MUL_BUG.
2927         * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
2928         sure mulu.d is not last on cache-line.
2929         * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
2930         into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
2931         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
2932         (TARGET_SWITCHES): New options -mmul-bug-workaround and
2933         -mno-mul-bug-workaround.
2934         (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
2935         (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
2936         * config/cris/cris.c (cris_operand_extend_operator): Clarify
2937         relation to MULT in head comment.
2938         (cris_op_str): Abort for MULT.
2939         (cris_print_operand) <case '!'>: New case.
2940
2941 2004-03-08  Alan Modra  <amodra@bigpond.net.au>
2942
2943         PR debug/11983
2944         * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
2945         dw_val_class_vec.  Replace use throughout file.
2946         (dw_float_const): Delete.
2947         (dw_vec_const): New.
2948         (dw_val_struct_union): Rename val_float to val_vec.  Replace use
2949         throughout file.
2950         (add_AT_vec): Rename from add_AT_float.  Add elt_size param.
2951         (same_dw_val_p): Adjust vec comparison.  Use memcmp.
2952         (size_of_die): Adjust dw_val_class_vec sizing.
2953         (output_die): Output dw_val_class_vec.
2954         (insert_int, extract_int, insert_float): New functions.
2955         (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
2956         Handle CONST_VECTOR.
2957         (add_location_or_const_value_attribute): Handle CONST_VECTOR.
2958
2959 2004-03-07  Aldy Hernandez  <aldyh@redhat.com>
2960
2961         * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
2962         AltiVec abi cannot co-exist.
2963
2964         * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
2965
2966 2004-03-07  Jan Hubicka  <jh@suse.cz>
2967
2968         * except.c (emit_to_new_bb_before):  Break fallthru edges.
2969
2970 2004-03-07  Stephane Carrez  <stcarrez@nerim.fr>
2971
2972         * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
2973         ("*lshrsi3"): Also accept an immediate for 68HC12.
2974         ("*ashrsi3_const"): Likewise.
2975         ("*ashrsi3"): Likewise.
2976         ("*ashlsi3_const"): Likewise.
2977         ("*ashlsi3"): Likewise.
2978         ("cmphi_1_hc12"): Compare two hard register by pushing them and
2979         comparing with a pop; don't use a split for that.
2980         ("cmphi split"): Disable compare split for 68HC12.
2981
2982         * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
2983         the status operands if they have side effects.
2984
2985 2004-03-07  Kazu Hirata  <kazu@cs.umass.edu>
2986
2987         * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
2988         definition.
2989         * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
2990         config/h8300/h8300.h, config/ia64/ia64.h,
2991         config/mcore/mcore.h, config/mmix/mmix.h,
2992         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
2993         config/stormy16/stormy16.h, config/v850/v850.h,
2994         config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
2995         * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
2996         definition.
2997
2998 2004-03-07  Roger Sayle  <roger@eyesopen.com>
2999
3000         * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
3001         <XOR_EXPR>: Fold x ^ x as zero.
3002         <AND_EXPR>: Fold x & x as x.
3003
3004 2004-03-07  Roger Sayle  <roger@eyesopen.com>
3005
3006         * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
3007         "foo++ == const" into "++foo == const+incr".
3008
3009 2004-03-07  Richard Sandiford  <rsandifo@redhat.com>
3010
3011         * config/mips/mips.c (mips_in_small_data_p): Return false if
3012         TARGET_ABICALLS.
3013
3014 2004-03-06  Stephane Carrez  <stcarrez@nerim.fr>
3015
3016         * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
3017         the stack register.
3018         (expand_prologue): Don't make an interrupt or a trap handler a far
3019         symbol.
3020         (m68hc11_initial_elimination_offset): Likewise.
3021
3022 2004-03-06  Richard Henderson  <rth@redhat.com>
3023
3024         * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
3025
3026 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
3027
3028         * config/ns32k/ns32k-protos.h: Add a prototype for
3029         ns32k_notice_update_cc.
3030         * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
3031         * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
3032         ns32k_notice_update_cc.
3033
3034 2004-03-06  Ulrich Weigand  <uweigand@de.ibm.com>
3035
3036         * config/s390/s390.md ("load_multiple", "*load_multiple_di",
3037         "*load_multiple_si"): Allow only if reload_completed.
3038         ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
3039         Likewise.
3040
3041 2004-03-06  Kazu Hirata  <kazu@cs.umass.edu>
3042
3043         * config/vax/vax-protos.h: Add a prototype for
3044         vax_notice_update_cc.
3045         * config/vax/vax.c (vax_notice_update_cc): New.
3046         * config/vax/vax.h (NOTICE_UPDATE_CC): Call
3047         vax_notice_update_cc.
3048
3049 2004-03-06  David Edelsohn  <edelsohn@gnu.org>
3050
3051         * collect2.c (main): Only export initfunc and finifunc if
3052         LD_INIT_SWITCH not defined.
3053         (scan_prog_file): Only export constructors and destructors if
3054         LD_INIT_SWITCH not defined.  Only export symbols not found in
3055         shared objects.
3056
3057 2004-03-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3058
3059         * pa.md (icacheflush): Reorder operands to make match_scratch operand
3060         last.
3061         * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
3062         from calls to gen_icacheflush.
3063
3064 2004-03-06  Richard Henderson  <rth@redhat.com>
3065
3066         * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
3067         (TARGET_LONG_DOUBLE_128): New.
3068         (TARGET_SWITCHES): Add long-double-{128,64}.
3069         (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
3070         (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
3071         (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
3072         (WIDEST_HARDWARE_FP_SIZE): New.
3073         (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
3074         * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
3075         if TARGET_VAX_FLOAT.
3076         * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
3077         (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
3078
3079 2004-03-06  Richard Henderson  <rth@redhat.com>
3080
3081         * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
3082         botched rtx class conversion.
3083
3084 2004-03-06  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3085
3086         * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
3087         BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
3088
3089         * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
3090         macros.
3091         * fold-const.c (fold_mathfn_compare, fold): Likewise.
3092
3093 2004-03-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
3094
3095         PR target/14343
3096         * config/i386/i386.md (movv2di_internal): Conditionalize on
3097         TARGET_SSE, not TARGET_SSE2.
3098
3099 2004-03-05  Chris Demetriou  <cgd@broadcom.com>
3100
3101         * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
3102         duplicated line.
3103
3104 2004-03-05  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3105
3106         * builtins.c: Consistently use logN not log* in comments.
3107
3108 2004-03-05  Andreas Krebbel  <krebbel1@de.ibm.com>
3109
3110         * rtl.h (mem_expr_equal_p): Function prototype added.
3111         * cfgcleanup.c (merge_memattrs): New function.
3112         (flow_find_cross_jump): Call merge_memattrs for matching insns.
3113         * emit-rtl.c (mem_expr_equal_p): New function.
3114
3115 2004-03-05  Ziemowit Laski  <zlaski@apple.com>
3116
3117         * objc/objc-act.c (synth_module_prologue): Const-qualify
3118         objc_selector type if using the GNU runtime; fix generated
3119         signatures for objc_msg_lookup and objc_msg_lookup_super
3120         to match what GNU ObjC headers provide; reformat and clean up.
3121         (synth_self_and_ucmd_args): Use previously constructed (and
3122         hence possibly const-qualified) objc_selector type.
3123
3124 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
3125
3126         * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
3127
3128 2004-03-05  Jason Merrill  <jason@redhat.com>
3129
3130         * tree.h (TYPE_HASH): Use TYPE_UID.
3131         (TREE_HASH): New macro with old definition of TYPE_HASH.
3132         * tree.c (build_type_attribute_variant): Use iterative_hash_object.
3133         (build_array_type, build_function_type): Likewise.
3134         (build_method_type_directly): Likewise.
3135         (build_offset_type, build_complex_type): Likewise.
3136         (type_hash_list, attribute_hash_list): Likewise. Now static.
3137         * except.c: s/TYPE_HASH/TREE_HASH/.
3138
3139 2004-03-05  Bob Wilson  <bob.wilson@acm.org>
3140
3141         * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
3142         (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32).  Adjust
3143         __va_ndx by 2 words when referencing an argument on the stack.
3144         (xtensa_va_arg): Handle 16-byte aligned args.  Adjust __va_ndx by 2
3145         words when an arg on the stack is first seen.
3146
3147 2004-03-05  Paul Brook  <paul@codesourcery.com>
3148
3149         * arm.h (ARM_FLAG_VFP): Remove.
3150         (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
3151         * netbsd-elf.h (ARM_FLAG_VFP): Remove.
3152
3153 2004-03-05  Paul Brook  <paul@codesourcery.com>
3154
3155         * function.c (assign_parms): Include pretend alignment offset.
3156
3157 2004-03-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3158
3159         * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
3160         FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
3161
3162 2004-03-05  Ian Lance Taylor  <ian@wasabisystems.com>
3163
3164         * configure.ac: When passing --enable-languages to subdir
3165         configure when host != build, make sure we don't pass an empty
3166         value.
3167         * configure: Regenerate.
3168
3169 2004-03-05  Nathan Sidwell  <nathan@codesourcery.com>
3170
3171         PR 13577
3172         * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
3173         options.
3174
3175 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
3176
3177         * simplify-rtx.c (simplify_relational_operation): If
3178         flag_wrapv is set, do not move terms between the two
3179         side of a relational operator.
3180
3181 2004-03-05  Paolo Bonzini  <bonzini@gnu.org>
3182
3183         * rtlanal.c: Include target.h and output.h
3184         (rtx_cost, address_cost, default_address_cost): Move from...
3185         * cse.c (rtx_cost, address_cost, default_address_cost):
3186         ... this file.
3187         * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
3188         * Makefile.in: Adjust dependencies.
3189
3190 2004-03-05  Paolo Bonzini <bonzini@gnu.org>
3191
3192         * cse.c (cse_end_of_basic_block): Make static.
3193         * local-alloc.c (function_invariant_p): Move to
3194         reload1.c.
3195         * loop.c (libcall_other_reg, record_excess_regs):
3196         Make static.
3197         * reload1.c (function_invariant_p): Moved here
3198         from local-alloc.c, made static.
3199         * rtl.h (cse_end_of_basic_block, function_invariant_p,
3200         libcall_other_reg, record_excess_regs): Remove
3201         declarations.
3202
3203 2004-03-05  Kazu Hirata  <kazu@cs.umass.edu>
3204
3205         * config/m32r/m32r.c (signed_comparison_operator): Add a
3206         missing parenthesis.
3207
3208 2004-03-04  Ian Lance Taylor  <ian@wasabisystems.com>
3209
3210         * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
3211         going to call mmap again.  Read the file into the right place.
3212         Give a fatal error if we have to relocate.
3213
3214 2004-03-04  Bob Wilson  <bob.wilson@acm.org>
3215
3216         * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
3217         (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
3218
3219 2004-03-05  Hans-Peter Nilsson  <hp@axis.com>
3220
3221         PR other/14354
3222         * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
3223         round the same.  When rounding, clear bits that would cause a
3224         second rounding in pack_d.
3225         (_fpmul_parts): Ditto.  Remove #if 0:d code.
3226
3227 2004-03-04  Ziemowit Laski  <zlaski@apple.com>
3228
3229         PR c++/14425, c++/14426
3230         * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
3231         vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
3232         Change C++ definitions to accept a 'const int' argument;
3233         the prototypes already do.
3234         * config/rs6000/rs6000.c (rs6000_common_init_builtins):
3235         Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
3236         v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
3237         v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
3238         v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
3239         v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
3240         end in ..._int; change them to accept an int instead of a char
3241         as the last parameter.
3242
3243 2004-03-04  Phil Edwards  <phil@codesourcery.com>
3244
3245         * genmultilib:  Change '=' to '-' when translating option names
3246         to directory names.
3247
3248 2004-03-04  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
3249
3250         * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
3251         stack slot for temp used for result of BLKmode but in integral mode.
3252
3253 2004-03-04  Jan Hubicka  <jh@suse.cz>
3254
3255         * reload.c (find_reloads): Reorganize if seqeunce to switch.
3256
3257         * cfgrtl.c (rtl_redirect_edge_and_branch):  Set the source BB as dirty.
3258         (cfglayout_redirect_edge_and_branch):  Set the source BB as dirty.
3259
3260 2004-03-04  Steve Ellcey  <sje@cup.hp.com>
3261
3262         * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
3263         * testsuite/gcc.dg/20040303-1.c: New test.
3264
3265 2004-03-04  Steven Bosscher  <stevenb@suse.de>
3266
3267         * ppro.md: Rewrite as a DFA pipeline description.
3268         * i386.md: Remove all uses of the ppro_uops attribute.
3269         * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
3270         ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
3271         ix86_sched_reorder, ix86_variable_issue,
3272         struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
3273         TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
3274         (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
3275         (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
3276         * athlon.md (athlon_ssecmp_load): Fix comment
3277
3278 2004-03-04  Stuart Hastings  <stuart@apple.com>
3279
3280         * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
3281
3282 2004-03-04  Stuart Hastings  <stuart@apple.com>
3283
3284         * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
3285         686, tell Darwin assembler to allow prefetch insns, non-empty def
3286         of SUBTARGET_OPTION_TRANSLATE_TABLE.
3287
3288 2004-03-04  DJ Delorie  <dj@redhat.com>
3289
3290         PR optimization/14282
3291         * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
3292         between a call and the assignment of its return value.
3293
3294 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
3295
3296         * config/h8300/h8300.c: Put a comment for every function.
3297
3298 2004-03-04  Kazu Hirata  <kazu@cs.umass.edu>
3299
3300         * config/h8300/h8300.md: Add comments about peephole2's.
3301
3302 2004-03-04  Steven Bosscher  <stevenb@suse.de>
3303
3304         * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
3305
3306 2004-03-04  Jan Hubicka  <jh@suse.cz>
3307
3308         * cfgcleanup.c (thread_jump): Update call of cselib_init.
3309         * cselib.c (cselib_record_memory): New static variable.
3310         (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
3311         Give up on memories when asked for.
3312         (cselib_init): Accept new argument.
3313         * cselib.h (cselib_init): Update prototype.
3314         * gcse.c (local_cprop_pass): Update call of cselib_init.
3315         * loop.c (load_mems): Update call of cselib_init.
3316         * postreload.c (reload_cse_regs_1): Update call of cselib_init.
3317         * sched-deps.c (sched_analyze): Update call of cselib_init.
3318
3319 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
3320             GP <gp@qnx.com>
3321
3322         * config/rs6000/rs6000.c (output_function_profiler): Append @plt
3323         when compiling PIC.
3324
3325 2004-03-04  Josef Zlomek  <zlomekj@suse.cz>
3326
3327         PR/14362
3328         * var-tracking.c (track_expr_p): Do not track variables which
3329         should be ignored for debugging purposes.
3330
3331 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
3332
3333         * real.c (encode_ibm_extended): Don't bother rounding low double.
3334         * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
3335         when fmt->pnan < fmt->p.
3336
3337 2004-03-04  Eric Christopher  <echristo@redhat.com>
3338
3339         * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
3340         only range of valid arg registers and fixed_regs.
3341
3342 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
3343
3344         PR target/14406
3345         * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
3346         (abstf2, abstf2_internal): New define_expand.
3347
3348 2004-03-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
3349
3350         PR optimization/14235
3351         * expr.c (convert_move): Copy the source to a new pseudo
3352         when converting from a sub-word source to a larger-than-word
3353         register which conflicts with the source.
3354
3355 2004-03-03  Zack Weinberg  <zack@codesourcery.com>
3356
3357         PR 13728
3358         * c-decl.c (diagnose_mismatched_decls): Issue an error for two
3359         parameters with the same name, unless one is a forward decl.
3360         Do not issue a redundant-redeclaration warning for forward
3361         decls of parameters.
3362
3363 2004-03-04  David Edelsohn  <edelsohn@gnu.org>
3364
3365         * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
3366         configuration.
3367
3368 2004-03-03  Ian Lance Taylor  <ian@wasabisystems.com>
3369
3370         * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
3371
3372 2004-03-04  Alan Modra  <amodra@bigpond.net.au>
3373
3374         * target-def.h (TARGET_OPTF): Delete.
3375         * c-opts.c (TARGET_OPTF): Define.
3376
3377 2004-03-04  Jan Hubicka  <jh@suse.cz>
3378
3379         * cselib.c (cselib_finish): Fix another miss-application of my previous
3380         patch.
3381
3382 2004-03-03  Mike Stump  <mrs@apple.com>
3383
3384         Add framework support for darwin.
3385
3386         * c-incpath.c: Include target.h and machmode.h.
3387         (add_path): Use a consistent style for cpp_dir.  Initialize
3388         p->construct to 0.
3389         (add_cpp_dir_path): New.
3390         (register_include_chains): Add use of extra_includes callback.
3391         (hook_void_int): Add.
3392         (target_c_incpath): Add.
3393         * c-incpath.h (add_cpp_dir_path): New.
3394         (target_c_incpath_s): Add.
3395         (target_c_incpath): Add.
3396         (C_INCPATH_INIT): Add.
3397         * c-opts.c (c_common_missing_argument,
3398         c_common_handle_option): Add -F argument processing.
3399         * c.opt: Add -F argument processing.
3400         * gcc.c (trad_capable_cpp): Add -F argument processing.
3401         * cppfiles.c (find_file_in_dir): Update to use construct
3402         callback.
3403         (search_path_exhausted, cpp_get_path, cpp_get_buffer,
3404         cpp_get_prev): New.
3405         (_cpp_find_file): Use search_path_exhausted.
3406         (make_cpp_dir): Initialize construct to 0.
3407         * cpplib.h (missing_header_cb
3408         cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
3409         (cpp_callbacks): Add missing_header
3410         (cpp_dir): Add construct.
3411         * target-def.h: (TARGET_OPTF): New.
3412         * hooks.c (hook_void_int, hook_void_charptr): Add.
3413         * hooks.h (hook_void_int, hook_void_charptr): Add.
3414         * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
3415         $(MACHMODE_H) dependencies.
3416         * doc/invoke.texi (Darwin Options): Document -F.
3417         * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
3418         (TARGET_OPTF): Add.
3419         * fix-header.c (target_c_incpath): Add.
3420
3421         * config/darwin-c.c: Add c-incpath.h include.
3422         (using_frameworks, find_subframework_file,
3423         find_subframework_header, add_system_framework_path,
3424         frameworks_in_use, num_frameworks, max_frameworks,
3425         add_framework, find_framework, struct framework_header,
3426         framework_header_dirs, framework_construct_pathname,
3427         find_subframework_file, add_system_framework_path,
3428         add_framework_path, framework_defaults,
3429         darwin_register_frameworks, find_subframework_header): Add.
3430         * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
3431         (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
3432         (CPP_SPEC): Add __APPLE_CC__ support.
3433         * t-darwin (darwin-c.o): Add c-incpath.h dependency.
3434
3435 2004-03-04  Jan Hubicka  <jh@suse.cz>
3436
3437         * cselib.c (cselib_finish): Fix miss-application of my previous
3438         patch.
3439
3440 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
3441
3442         * hooks.c (hook_tree_tree_identity): New.
3443         * hooks.h: Add a prototype for hook_tree_tree_identity.
3444         * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
3445         instead of MD_ASM_CLOBBERS.
3446         * system.h (MD_ASM_CLOBBERS): Poison.
3447         * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
3448         (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
3449         * target.h (gcc_target): Add md_asm_clobbers.
3450         * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
3451         (ix86_md_asm_clobbers): New.
3452         * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
3453         * doc/tm.texi (MD_ASM_CLOBBERS): Change to
3454         TARGET_MD_ASM_CLOBBERS.
3455
3456 2004-03-03  Stuart Hastings  <stuart@apple.com>
3457
3458         * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
3459
3460 2004-03-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
3461
3462         * config/sparc/sparc.c (noov_compare64_op): Fix typo.
3463
3464         * config/sparc/sparc.h (ASM_FLOAT): Delete.
3465         (ASM_DOUBLE): Likewise.
3466         (ASM_LONGDOUBLE): Likewise.
3467         * config/sparc/pbd.h (ASM_INT_OP): Delete.
3468
3469 2003-03-03  Richard Henderson  <rth@redhat.com>
3470
3471         PR opt/13862
3472         * cselib.c (cselib_record_sets): Don't record multiple sets in
3473         asm insns.
3474
3475 2004-03-03  Mostafa Hagog  <mustafa@il.ibm.com>
3476
3477         * common.opt: Add description of the new -fgcse-after-reload flag.
3478
3479         * flags.h (flag_gcse_after_reload): Declaration of global variable.
3480
3481         * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
3482         reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
3483         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
3484         get_bb_avail_insn, hash_scan_set_after_reload,
3485         compute_hash_table_after_reload, eliminate_partially_redundant_loads,
3486         gcse_after_reload, get_bb_avail_insn): New functions to implement
3487         gcse-after-reload.
3488         (gcse_after_reload_main): New function, the main entry point to
3489         gcse-after-reload.
3490
3491         * rtl.h (gcse_after_reload_main): Declaration of the new function.
3492
3493         * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
3494
3495         * toplev.c (flag_gcse_after_reload): Initialization.
3496
3497         * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
3498
3499         * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
3500         PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
3501         the gcse after reload optimization.
3502
3503         * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
3504         GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
3505         parameters.
3506
3507         * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
3508
3509 2004-03-03  Nicolas Pitre <nico@cam.org>
3510
3511         * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
3512         small negative values.
3513
3514 2004-03-03  Jan Hubicka  <jh@suse.cz>
3515
3516         * cselib.c (hash_table):  Remove GTY marker.
3517         (reg_values): Turn into array.
3518         (used_regs): Likewise.
3519         (n_used_regs): New static variable.
3520         (reg_values_old): Kill.
3521         (clear_table): Update uses of arrays.
3522         (cselib_lookup): Likewise.
3523         (cselib_record_set): Likewise.
3524         (cselib_init): Likewise.
3525         (cselib_finish): Likewise.
3526         (cselib_udpate_varray_sizes): Kill.
3527         * cselib.h (cselib_update_varray_sizes): Kill.
3528
3529 2004-03-03  Paul Brook  <paul@codesourcery.com>
3530
3531         * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
3532
3533 2004-03-03  Jan Hubicka  <jh@suse.cz>
3534
3535         * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
3536         Rename from ...; make statistics transparent.
3537         (ggc_alloc_cleared, ggc_realloc_stat): ... these.
3538         (loc_descriptor): New structure.
3539         (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
3540         add_statistics):
3541         New static function.
3542         (ggc_record_overhead, dump_statistics): New global function.
3543         * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
3544         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
3545         from ...; accept locations
3546         (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
3547         ggc_realloc, ggc_alloc_typed):  ... this one.
3548         from ...; accept locations
3549         * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
3550         ggc_alloc_stat): Rename from ... ; pass locations
3551         * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
3552         ... this one.
3553         (ggc_alloc_stat): Record overehead.
3554         * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
3555         ggc_realloc, ggc_alloc_typed):  Turn to macros
3556         (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
3557         ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
3558         (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
3559         * langhooks.h (lhd_make_node): Declare.
3560         (LANG_HOOKS_MAKE_TYPE): Default to new function,
3561         * langhooks.c (lhd_make_node): New.
3562         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
3563         locations.
3564         (rtx_alloc, swallow_copy_rtx): ... this one.
3565         * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
3566         * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
3567         * toplpev.c (finalize): Dump stats.
3568         * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
3569         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
3570         Rename from ... ; pass locators.
3571         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
3572         build?,  build_decl): Declare.
3573         * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
3574         build_tree_list_stat, tree_cons_stat, build?_stat,  build_decl_stat):
3575         Declare.
3576         (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
3577         build?,  build_decl): New macros.
3578         * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
3579         * statistics.h: New file.
3580
3581 2004-03-03  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
3582             Richard Sandiford  <rsandifo@redhat.com>
3583
3584         * config/mips/mips.h (MASK_FIX_SB1): Bump.
3585         (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
3586         (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
3587         * config/mips/mips.c (mips_output_division): Fill the branch delay
3588         slot with a nop if TARGET_FIX_R4000.  Extend R4000 workarounds to
3589         TARGET_FIX_R4400.
3590         (mips_output_division): Adjust accordingly.
3591         (override_options): Make -march=r4400 imply -mfix-r4400 by default.
3592         * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
3593
3594 2004-03-03  Paolo Bonzini  <bonzini@gnu.org>
3595
3596         * alias.c (rtx_equal_for_memref_p): Use predicates
3597         to test rtx classes and new rtx class codes, possibly
3598         splitting conditionals that tested against '<' and 'o'.
3599         * caller-save.c (save_call_clobbered_regs): Likewise.
3600         * combine.c (contains_muldiv, find_split_point, subst,
3601         combine_simplify_rtx, simplify_if_then_else,
3602         simplify_set, simplify_logical, expand_compound_operation,
3603         make_compound_operation, if_then_else_cond, known_cond,
3604         apply_distributive_law, cached_nonzero_bits,
3605         cached_num_sign_bit_copies, simplify_shift_const,
3606         gen_binary, simplify_comparison, update_table_tick,
3607         record_value_for_reg, get_lsat_value_validate): Likewise.
3608         * cse.c (mention_regs, find_best_addr, find_comparison_args,
3609         fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
3610         Likewise.
3611         * emit-rtl.c (copy_insn_1): Likewise.
3612         * expr.c (force_operand): Likewise.
3613         * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
3614         * flow.c (notice_stack_pointer_modification_1,
3615         invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
3616         and_reg_cond, elim_reg_cond): Likewise.
3617         * function.c (update_epilogue_consts): Likewise.
3618         * genattrtab.c (attr_rtx_1): Likewise.
3619         * genopinit.c (gen_insn): Likewise.
3620         * integrate.c (subst_constants): Likewise.
3621         * jump.c (reversed_comparison_code_parts,
3622         reversed_comparison_code, delete_related_insns,
3623         rtx_renumbered_equal_p): Likewise.
3624         * local-alloc.c (block_alloc): Likewise.
3625         * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
3626         canonicalize_condition): Likewise.
3627         * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
3628         Likewise.
3629         * optabs.c (add_equal_node, expand_binop): Likewise.
3630         * predict.c (estimate_probability): Likewise.
3631         * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
3632         * recog.c (validate_replace_rtx_1, comparison_operator,
3633         offsettable_address_p, constrain_operands): Likewise.
3634         * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
3635         Likewise.
3636         * regclass.c (scan_one_insn): Likewise.
3637         * regmove.c (stable_and_no_regs_but_for_p): Likewise.
3638         * regrename.c (kill_autoinc_value): Likewise.
3639         * reload.c (find_reusable_reload, find_reloads,
3640         reg_overlap_mentioned_for_reload_p): Likewise.
3641         * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
3642         * rtl.c (copy_rtx): Likewise.
3643         * rtl.h (CONSTANT_P, INSN_P): Likewise.
3644         * rtlanal.c (commutative_operand_precedence): Likewise.
3645         * sched-deps.c (conditions_mutex_p): Likewise.
3646         * sched-rgn.c (is_cfg_nonregular): Likewise.
3647         * simplify-rtx.c (simplify_gen_binary,
3648         simplify_gen_relational, simplify_replace_rtx,
3649         simplify_unary_operation, simplify_binary_operation,
3650         simplify_ternary_operation, simplify_rtx): Likewise.
3651         * unroll.c (reg_dead_after_loop): Likewise.
3652         * config/alpha/alpha.c (alpha_swapped_comparison_operator,
3653         print_operand): Likewise.
3654         * config/arc/arc.c (proper_comparison_operator): Likewise.
3655         * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
3656         Likewise.
3657         * config/avr/avr.c (_reg_unused_after): Likewise.
3658         * config/frv/frv.c (frv_ifcvt_modify_tests,
3659         frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
3660         * config/i386/i386.c (ix86_comparison_operator,
3661         ix86_carry_flag_operator, fcmov_comparison_operator,
3662         arith_or_logical_operator, print_operand,
3663         ix86_expand_binary_operator, ix86_binary_operator_ok):
3664         Likewise.
3665         * config/i386/i386.md: Likewise.
3666         * config/ia64/ia64.c (not_postinc_memory_operand,
3667         ia64_print_operand, update_set_flags, errata_emit_nops):
3668         Likewise.
3669         * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
3670         CONSTRAINT_OK_FOR_S): Likewise.
3671         * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
3672         mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
3673         ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
3674         ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
3675         Likewise.
3676         * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
3677         eqne_comparison_operator, signed_comparison_operator):
3678         Likewise.
3679         * config/mips/mips.c (cmp_op, symbolic_expression_p):
3680         Likewise.
3681         * config/mmix/mmix (mmix_foldable_comparison_operator,
3682         mmix_comparison_operator): Likewise.
3683         * config/pa/pa.c (hppa_legitimize_address): Likewise.
3684         * config/rs6000/rs6000.c (stmw_operation,
3685         branch_comparison_operator, trap_comparison_operator,
3686         ccr_bit): Likewise.
3687         * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
3688         * config/s390/s390.c (s390_alc_comparison,
3689         s390_slb_comparison):L Likewise.
3690         * config/sh/sh.c (gen_block_redirect, reg_unused_after):
3691         Likewise.
3692         * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
3693         noov_compare_op, noov_compare64_op, v9_regcmp_op,
3694         emit_hard_tfmode_operation, reg_unused_after)
3695         * doc/md.texi, doc/rtl.texi: Likewise.
3696
3697         * ra-debug.c: Add 2004 to list of copyright years.
3698         * unroll.c: Likewise.
3699
3700         * combine.c (simplify_logical): Remove dummy test,
3701         (apply_distributive_law): Fix typo in comment.
3702         GET_CODE (x) == AND so x is a commutative binary op.
3703         * jump.c (delete_related_insns): simplify loop
3704         condition, move testing of RTX codes inside the loop.
3705         (rtx_renumbered_equal_p): do not use RTX_CODE.
3706         * rtl.c (rtx_class): Declare as enum rtx_class.
3707         * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
3708         Move to RTX_COMM_COMPARE class.
3709         (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
3710         Move to RTX_CONST_OBJ class.
3711         * rtl.h (enum rtx_class): New declaration,
3712         (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
3713         RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
3714         RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
3715         RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
3716         RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
3717         ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
3718         SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
3719         OBJECT_P): New macros.
3720         * config/sparc/sparc.c (noov_compare_op): Remove register
3721         from parameter.
3722
3723 2004-03-03  Kazu Hirata  <kazu@cs.umass.edu>
3724
3725         * target.h: Remove texi jargons in comments.
3726
3727 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
3728
3729         * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
3730         threshold to 0x4f.
3731
3732         Revert:
3733         2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
3734         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
3735         as well.
3736         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
3737         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
3738
3739 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
3740
3741         * doc/md.texi (cbranchmode4): New.
3742
3743 2004-03-02  Eric Christopher  <echristo@redhat.com>
3744
3745         * config/mips/mips16.S: Change fixsfsi and fixdfsi to
3746         fix_trunc.
3747         * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
3748         * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
3749         * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
3750         * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
3751
3752 2004-03-02  Richard Henderson  <rth@redhat.com>
3753
3754         PR middle-end/11767
3755         * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
3756         * optabs.c (prepare_cmp_insn): Force trapping memories to registers
3757         before the compare, if flag_non_call_exceptions.
3758
3759 2004-03-02  Richard Henderson  <rth@redhat.com>
3760
3761         PR middle-end/14327
3762         * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
3763         emitting the label, not after.
3764
3765 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
3766
3767         * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
3768         (m68hc11_mov_addr_mode): Likewise.
3769         (m68hc11_override_options): Initialize them based on target.
3770         (register_indirect_p): Allow a MEM for indirect addressing modes and
3771         use flags to control what is allowed.
3772         (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
3773         supported addressing modes.
3774         (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
3775         (go_if_legitimate_address_internal): Likewise.
3776         (m68hc11_indirect_p): Likewise and check the mode.
3777         (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
3778
3779 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
3780
3781         * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
3782         (expand_builtin_setjmp_setup): Use
3783         targetm.builtin_setjmp_frame_value instead of
3784         BUILTIN_SETJMP_FRAME_VALUE.
3785         * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
3786         * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
3787         (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
3788         * target.h (gcc_target): Add builtin_setjmp_frame_value.
3789         * targhooks.c (default_builtin_setjmp_frame_value): New.
3790         * targhooks.h: Add a prototype for
3791         default_builtin_setjmp_frame_value.
3792         * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
3793         TARGET_BUILTIN_SETJMP_FRAME_VALUE.
3794
3795 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
3796
3797         * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
3798         sequences of moves.
3799         (add peepholes): New peepholes to optimize sequences adding small
3800         constants.
3801         (bset peepholes): New peepholes to transform an OR in a bset form
3802         (bclr peepholes): Likewise for bclr form.
3803         (cmp peepholes): New peepholes to avoid register copies when comparing.
3804
3805 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
3806
3807         * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
3808         to separate push from moves.
3809         ("*pushdf_internal"): Likewise.
3810         ("*pushsf_internal"): Likewise.
3811         ("*pushsi_internal"): Likewise.
3812         ("movdi_internal"): Use define_insn_and_split; non push operand.
3813         ("movdf_internal"): Likewise.
3814         ("movsf_internal"): Likewise.
3815         ("movsi_internal"): Likewise.
3816         ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
3817         ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
3818         ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
3819
3820 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
3821
3822         * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
3823         ("cmphi_z_used", "cmpqi_z_used"): Likewise.
3824         ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
3825         ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
3826         ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
3827         ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
3828         ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
3829         ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
3830         ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
3831         ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
3832         ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
3833
3834 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
3835
3836         * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
3837         (SOFT_XY_REGNUM): Define.
3838         (cmp split): Use the above instead of hard coded numbers.
3839         (8-bit op split): No need to check the mode; allow Q_REG.
3840         (ashift split): Adjust the first operand if it uses the SP and we
3841         are pushing the shifted value.
3842         (plus shift split): Fix when a source is in register D+X.
3843         ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
3844
3845 2004-03-02  Stephane Carrez  <stcarrez@nerim.fr>
3846
3847         * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
3848         comparing with Z register.
3849
3850 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3851
3852         * cfgloop.h (struct loop_desc): Removed.
3853         (struct loop): Fields simple, desc and has_desc removed.
3854         (simple_loop_p, count_loop_iterations): Declaration removed.
3855         * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
3856         (unmark_altered, blocks_invariant_registers, unmark_altered_insn
3857         blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
3858         invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
3859         simple_loop_exit_p, variable_initial_value, variable_initial_values,
3860         simple_condition_p, simple_increment, count_strange_loop_iterations,
3861         inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
3862         Removed.
3863         * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
3864
3865 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
3866
3867         * genattrtab.c: Don't handle MATCH_INSN.
3868         * genrecog.c: Likewise.
3869         * gensupport.c: Likewise.
3870         * rtl.def (match_insn): Remove.
3871         * doc/md.texi (match_insn, match_insn2): Remove.
3872
3873 2004-03-02  Mark Mitchell  <mark@codesourcery.com>
3874
3875         * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
3876         macro results in memory allocation.
3877
3878 2004-03-02  David O'Brien  <obrien@FreeBSD.org>
3879
3880         * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
3881         * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
3882         %(fbsd_dynamic_linker),
3883         (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
3884         config/i386/freebsd.h
3885         * config/arm/freebsd.h: Ditto.
3886         * config/i386/freebsd.h: Ditto.
3887         * config/i386/freebsd64.h: Ditto.
3888         * config/ia64/freebsd.h: Ditto.
3889         * config/rs6000/sysv4.h: Ditto.
3890         * config/sparc/freebsd.h: Ditto.
3891
3892 2004-03-02  Loren James Rittle  <ljrittle@acm.org>
3893
3894         * gcc/doc/install.texi (*-*-freebsd*): Update target information.
3895
3896 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
3897
3898         * rtl.def (define_combine): Remove.
3899
3900 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
3901
3902         * config/h8300/h8300.md: Tweak formatting.
3903
3904 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
3905
3906         * config/h8300/h8300.md (*cmphi_h8300): Rename to
3907         *cmphi_h8300_znvc.
3908         (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
3909
3910 2004-03-01  Mark Mitchell  <mark@codesourcery.com>
3911
3912         PR bootstrap/14356
3913         * gcc.c (process_command): Remove const-qualification from argv.
3914         (main): Likewise.
3915
3916 2004-03-02  Kazu Hirata  <kazu@cs.umass.edu>
3917
3918         * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
3919         pushqi1_h8300hs_advanced.  Adjust its caller.
3920         (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
3921         Adjust its caller.
3922
3923 2004-03-02  Nicolas Roche  <roche@act-europe.fr>
3924
3925         * Makefile.in (install-libgcc, install-multilib): Pass
3926         mkinstalldirs var to libgcc.mk.
3927
3928 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
3929
3930         * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
3931         * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
3932
3933 2004-03-01  Kazu Hirata  <kazu@cs.umass.edu>
3934
3935         * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
3936         * config/h8300/h8300.md: Split several peephole2's, each into
3937         two.
3938
3939 2004-03-02  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
3940
3941         * dominance.c (recount_dominator): Handle postdominators.
3942
3943 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
3944
3945         * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
3946         (NUM_SYMBOL_TYPES): Likewise.
3947         (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
3948         (mips_unspec_address): Declare.
3949         (mips_gotoff_page, mips_gotoff_global): Delete.
3950         * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
3951         * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
3952         (mips_symbolic_constant_p, mips_symbolic_address_p)
3953         (mips_symbol_insns): Handle new symbol types.
3954         (general_symbolic_operand): New predicate.
3955         (mips_unspec_address): Make extern.
3956         (mips_gotoff_page, mips_gotoff_global): Delete.
3957         (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
3958         Handle new symbol types.
3959         * config/mips/mips.md (*lea_high64, *lea64): New patterns.
3960         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
3961         mips_unspec_address directly.
3962         * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
3963         the documentation of -mexplicit-relocs.
3964
3965 2004-03-01  Jeff Law  <law@redhat.com>
3966
3967         * fold-const.c (fold): An equality comparison of a non-weak object
3968         against zero has a known result.  Similarly an equality comparison
3969         of the address of two non-weak, unaliased symbols has a known result.
3970
3971         * ggc-page.c (struct page_entry): New field PREV.
3972         (ggc_alloc): Update PREV field appropriately.
3973         (sweep_pages): Likewise.
3974         (ggc_free): Likewise.  Use PREV field rather than loop to
3975         improve ggc_free performance.
3976
3977 2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
3978
3979         * config/mips/mips.c (mips_output_division): Use the division
3980         instruction to fill the delay slot of a zero check.
3981         (mips_idiv_insns): Adjust accordingly.
3982
3983 2004-03-01  Nathanael Nerode  <neroden@gcc.gnu.org>
3984
3985         * config.gcc: Create a default tmake_file for linux, and use
3986         it in all but two linux clauses.  Comment those two.
3987
3988 2004-03-01  Paolo Bonzini  <bonzini@gnu.org>
3989
3990         * combine.c (try_combine):  Do not refer to is_replaced.
3991         (gen_lowpart_for_combine):  Perverse subregs now have a
3992         more politically correct name.
3993         * cse.c (cse_insn): Likewise.
3994         * jump.c: Fix bogus reference to delete_insn.
3995
3996 2004-02-29  Mark Mitchell  <mark@codesourcery.com>
3997
3998         PR debug/14328
3999         * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
4000         constants as signed values.
4001
4002         PR middle-end/13448
4003         * c-tree.h (readonly_warning): Rename to ...
4004         (readonly_error): ... this.
4005         * c-typeck.c (build_unary_op): Adjust accordingly.
4006         (readonly_warning): Rename to ...
4007         (readonly_error): ... this and issue errors, not warnings.
4008         (build_modify_expr): Call readonly_error, not readonly_warning.
4009         (c_expand_asm_operands): Likewise.
4010         * tree-inline.c (optimize_inline_calls): Do not inline functions
4011         after errors have occurred.
4012
4013 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
4014
4015         * configure.ac: Rearrange some threading code for clarity;
4016         add section comment.
4017         * configure: Regenerate.
4018
4019 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4020
4021         * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
4022         typos.
4023         * doc/cppopts.texi: Fix a typo.
4024
4025 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4026
4027         * config/i386/i386.md: Fix formatting.
4028
4029 2004-02-29  Nathanael Nerode  <neroden@gcc.gnu.org>
4030
4031         * configure.ac: Add some comments delineating sections of code.
4032
4033         * doc/install.texi: Note that libada uses autoconf 2.57 also.
4034
4035         * doc/install.texi: Fix idiot typo in previous commit.
4036
4037         * doc/install.texi: Update for conversion of intl to autoconf 2.57.
4038
4039 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4040
4041         * config/h8300/h8300.md: Add comments about peephole2's.
4042
4043 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4044
4045         * config/h8300/h8300.md: Tweak operand numbers of some
4046         peephole2's.
4047
4048 2004-02-29  Kazu Hirata  <kazu@cs.umass.edu>
4049
4050         * config/h8300/h8300.md: Tweak comments about peephole2's.
4051
4052 2004-02-29  Waldek Hebisch  <hebisch@math.uni.wroc.pl>
4053
4054         PR middle-end/14203
4055         * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
4056         instead of testing whether DECL_RTL is not NULL.
4057
4058 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
4059
4060         * config/sh/sh.c: Fix formatting.
4061
4062 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
4063
4064         * config/sh/sh.c: Convert to ISO-C.
4065
4066 2004-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
4067
4068         * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
4069         my previous patch.
4070
4071         * config/darwin.h (machopic_finish): Output stub even if the
4072         symbol is already defined.
4073
4074 2004-02-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4075
4076         * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
4077
4078 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
4079
4080         * genattr.c (main): Don't define
4081         TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
4082         * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
4083         (DFA_PIPELINE_INTERFACE): Likewise.
4084         * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
4085         (DFA_PIPELINE_INTERFACE): Likewise.
4086
4087 2004-02-28  Richard Sandiford  <rsandifo@redhat.com>
4088
4089         * config/mips/mips.md (tstsi, tstdi): Delete.
4090
4091 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
4092
4093         * config/mips/mips.c (override_options): Remove an obsolete
4094         duplicate definition of the "e" constraint.
4095         * config/mips/mips.h: Update a comment accordingly.
4096
4097 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
4098
4099         * config/mips/mips.md: Complete the unfinished R4000
4100         multiply/shift errata workaround.  Improve documentation.
4101         (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
4102         has a hilo hazard.
4103         (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
4104         (muldi3, muldi3_internal): Likewise.
4105         (muldi3_internal2): Remove, replacing with...
4106         (muldi3_mult3, muldi3_r4000): ...these new patterns.
4107         (mulsidi3): Take the errata into account.
4108         (mulsidi3_32bit): Remove, replacing with...
4109         (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
4110         (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
4111         (umulsidi3): Take the errata into account.
4112         (umulsidi3_32bit): Remove, replacing with..
4113         (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.
4114         (umulsi3_highpart, umulsi3_highpart_internal): Disable if
4115         TARGET_FIX_R4000.
4116         (smulsi3_highpart, smulsi3_highpart_internal): Likewise.
4117         (smuldi3_highpart, umuldi3_highpart): Likewise.
4118         * doc/invoke.texi: Document the errata workaround.
4119
4120 2004-02-28  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
4121
4122         * config/mips/mips-protos.h (mips_idiv_insns): Declare.
4123         * config/mips/mips.h (MASK_FIX_SB1): Bump.
4124         (MASK_FIX_R4000, TARGET_FIX_R4000): New macros.
4125         (TARGET_SWITCHES): Add -mfix-r4000 and -mno-fix-r4000.
4126         * config/mips/mips.c (mips_idiv_insns): New function.
4127         (override_options): Make -march=r4000 imply -mfix-r4000 by default.
4128         (mips_output_division): Add a workaround for the R4000 divide/shift
4129         errata.
4130         * config/mips/mips.md (length): Use mips_idiv_insns() to calculate
4131         the length of an "idiv" instruction.
4132         * doc/invoke.texi: Document the new switches.
4133
4134 2004-02-28  Kazu Hirata  <kazu@cs.umass.edu>
4135
4136         * doc/tm.texi (IS_COSTLY_DEPENDENCE): Change to
4137         TARGET_SCHED_IS_COSTLY_DEPENDENCE.
4138
4139 2004-02-28  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
4140
4141         PR optimization/14229
4142         * cfgrtl.c (rtl_tidy_fallthru_edge): Do not fail for !onlyjump jump.
4143
4144 2004-02-28  Eric Botcazou  <ebotcazou@act-europe.fr>
4145
4146         * fold-const.c (fold): Strip NOPs that change the signedness
4147         for RSHIFT too.  Expand comment.
4148
4149 2004-02-27  Ian Lance Taylor  <ian@wasabisystems.com>
4150
4151         PR optimization/7871
4152         * flow.c (mark_set_1): Don't add LOG_LINKS for global registers
4153         from or to call insns.
4154
4155 2004-02-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
4156
4157         PR optimization/7871
4158         * flow.c (propagate_one_insn): Interpret calls as setting global
4159         registers, not merely clobbering them.
4160
4161 2004-02-27  Dale Johannesen  <dalej@apple.com>
4162
4163         * config/darwin.c (machopic_output_possible_stub_label):  Remove.
4164         config/darwin-protos.h:  Ditto.
4165         config/darwin.h:  Remove call to it.
4166         * combine.c (distribute_notes): Do not place a REG_DEAD note
4167         when value is both set and used.
4168
4169 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
4170
4171         * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
4172         as well.
4173         * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
4174         * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
4175
4176 2004-02-27  Andrew Pinski  <apinski@apple.com>
4177
4178         * c-typeck.c (tagged_types_tu_compatible_p) <ENUMERAL_TYPE>:
4179         Speedup common case of the type values being in the same order.
4180
4181 2004-02-27  Steve Ellcey  <sje@cup.hp.com>
4182
4183         * config/ia64/ia64.h (no-inline-float-divide): New option.
4184         * config/ia64/ia64.h (no-inline-int-divide): New option.
4185         * config/ia64/ia64.h (no-inline-sqrt): New option.
4186         (TARGET_DEFAULT): Add MASK_INLINE_FLOAT_DIV_THR to define.
4187         * config/ia64/hpux.h (TARGET_DEFAULT): Ditto.
4188         * config/ia64/ia64.c (ia64_override_options): Modify error
4189         checking for inlined division/sqrt.
4190
4191 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
4192
4193         * bb-reorder.c, cfgbuild.c, diagnostic.c, explow.c, profile.c,
4194         ra-build.c, read-rtl.c, tracer.c, unwind-dw2-fde-glibc.c,
4195         value-prof.c, config/darwin-protos.h, config/frv/frv-abi.h,
4196         config/i386/pmmintrin.h, config/pa/pa-hpux.h: Update
4197         copyright.
4198
4199 2004-02-27  Paul Brook  <paul@codesourcery.com>
4200
4201         * function.c (assign_parms): Don't count pretend args for alignment.
4202
4203 2004-02-27  Richard Henderson  <rth@redhat.com>
4204
4205         * passes.c: New file.
4206         * Makefile.in (OBJS-common): Add it.
4207         * diagnostic.c (rtl_dump_and_exit): Move decl ...
4208         * flags.h (rtl_dump_and_exit): ... here.
4209         * output.h (size_directive_output, last_assemble_variable_decl):
4210         Move from toplev.c.
4211         * rtl.h (reg_alloc): Move from toplev.c.
4212         * toplev.c (HAVE_conditional_execution, DUMPFILE_FORMAT,
4213         struct dump_file_info, enum dump_file_index, dump_file_tbl,
4214         open_dump_file, close_dump_file, rest_of_decl_compilation,
4215         rest_of_type_compilation, rest_of_handle_final,
4216         rest_of_handle_delay_slots, rest_of_handle_stack_regs,
4217         rest_of_handle_variable_tracking, rest_of_handle_machine_reorg,
4218         rest_of_handle_new_regalloc, rest_of_handle_old_regalloc,
4219         rest_of_handle_regrename, rest_of_handle_reorder_blocks,
4220         rest_of_handle_sched, rest_of_handle_sched2, rest_of_handle_regmove,
4221         rest_of_handle_tracer, rest_of_handle_if_conversion,
4222         rest_of_handle_if_after_combine, rest_of_handle_web,
4223         rest_of_handle_branch_prob,
4224         rest_of_handle_value_profile_transformations, rest_of_handle_cfg,
4225         rest_of_handle_addressof, rest_of_handle_sibling_calls,
4226         rest_of_handle_jump_bypass, rest_of_handle_inlining,
4227         rest_of_handle_null_pointer, rest_of_handle_combine,
4228         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
4229         rest_of_handle_gcse, rest_of_handle_loop_optimize,
4230         rest_of_handle_loop2, rest_of_compilation): Move to passes.c.
4231         (decode_d_option): Use enable_rtl_dump_file.
4232         (compile_file, finalize, do_compile): Move profile+combine+graph
4233         cleanup to finish_optimization_passes.
4234         * toplev.h (init_optimization_passes, finish_optimization_passes,
4235         enable_rtl_dump_file): Declare.
4236
4237 2004-02-27  Eric Botcazou  <ebotcazou@act-europe.fr>
4238             Roger Sayle  <roger@eyesopen.com>
4239
4240         * fold-const.c (fold): Revert 2004-02-25 change.  Use the original
4241         operands to build a tree with swapped operands.
4242         * expr.c (expand_expr_real) <MAX_EXPR>: Consistently use the
4243         'unsignedp' predicate to specify the signedness.
4244
4245 2004-02-27  Kazu Hirata  <kazu@cs.umass.edu>
4246
4247         * c-decl.c, c-ppoutput.c, combine.c, cppfiles.c, dwarf2out.c,
4248         expr.c, fold-const.c, gcc.c, haifa-sched.c, loop-iv.c,
4249         params.def, read-rtl.c, rtl.c, rtlanal.c, toplev.c: Fix
4250         comment typos and formatting.  Follow spelling conventions.
4251
4252 2004-02-26  Aldy Hernandez  <aldyh@redhat.com>
4253
4254         * config/rs6000/rs6000.md: Add fixuns_truncsfsi2 and
4255         fix_truncsfsi2.
4256
4257         * config/rs6000/spe.md: Delete spe_efsctuiz.
4258         Add spe_fixuns_truncsfsi2.
4259         Add spe_fix_truncsfsi2.
4260
4261 2004-02-26  Eric Christopher  <echristo@redhat.com>
4262
4263         * c-lex.c (c_lex_string_translate): New variable.
4264         (lex_string): Use to determine string translation.
4265         * c-pragma.h: Prototype.
4266         * c-parse.in (start_string_translation): New. Set above.
4267         (stop_string_translation): Ditto.
4268         (attribute, attribute_list, asm_def, asm_stmt,
4269         asm_operand): Use above functions.
4270         * cp/parser.c (cp_parser_declaration): Translate strings
4271         unless token is RID_EXTERN. Set c_lex_string_translate
4272         for recursive use.
4273         (cp_parser_asm_definition): Only translate argument strings
4274         to asms.
4275         (cp_parser_asm_operand_list): Ditto.
4276         (cp_parser_attribute_list): Do not translate attribute strings.
4277
4278 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4279
4280         * stmt.c (expand_start_case_dummy): Remove.
4281         * tree.h: Remove the corresponding prototype.
4282
4283 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4284
4285         * builtins.c (apply_args_register_offset): Remove.
4286         * tree.h: Remove the corresponding prototype.
4287
4288 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4289
4290         * stor-layout.c (is_pending_size): Remove.
4291         * tree.h: Remove the corresponding prototype.
4292
4293 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4294
4295         * recog.c (validate_replace_src): Remove.
4296         * recog.h: Remove the corresponding prototype.
4297
4298 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4299
4300         * calls.c: Don't reference FINAL_REG_PARM_STACK_SPACE or
4301         MAYBE_REG_PARM_STACK_SPACE.
4302         * function.c: Likewise.
4303         * system.h (FINAL_REG_PARM_STACK_SPACE): Poison.
4304         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
4305         * doc/tm.texi (FINAL_REG_PARM_STACK_SPACE): Remove.
4306         (MAYBE_REG_PARM_STACK_SPACE): Likewise.
4307
4308 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4309
4310         * c-decl.c (c_expand_deferred_function): Remove.
4311         * c-tree.h: Remove the corresponding prototype.
4312
4313 2004-02-26  Kazu Hirata  <kazu@cs.umass.edu>
4314
4315         * postreload.c (reload_cse_move2add): Generate just a PLUS
4316         instead of an entire SET.
4317
4318 2004-02-26  Jan Hubicka  <jh@suse.cz>
4319
4320         * config.gcc: Add support for nocoma/prescott/pentium-m/pentium3m
4321         /pentium4m.
4322         * i386.c (override_options): Add support for new CPUs.
4323         * i386.h (TARGET_CPU_DEFAULT_NAMES): New names.
4324         (TARGET_CPU_DEFAULT_pentium_m, TARGET_CPU_DEFAULT_pentium4e): New
4325         constants.
4326         * invoke.texi: Extend documentation of -mtune/-march for new CPUs.
4327
4328 2004-02-26  Bob Wilson  <bob.wilson@acm.org>
4329
4330         * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define __xtensa__.
4331
4332 2004-02-26  Eric Botcazou  <ebotcazou@act-europe.fr>
4333
4334         * config/sparc/sparc-protos.h (sparc_emit_floatunsdi): Add 'mode'.
4335         (sparc_emit_fixunsdi): New prototype.
4336         * config/sparc/sparc.c (sparc_emit_floatunsdi): Use 'mode' argument.
4337         (sparc_emit_fixunsdi): New function.
4338         * config/sparc/sparc.md (floatunsdisf2): Use 'general_operand' for
4339         operand 1.  Pass SFmode to sparc_emit_floatunsdi.
4340         (floatunsdidf2): Use 'general_operand' for operand 1.  Pass DFmode
4341         to sparc_emit_floatunsdi.
4342         (fixuns_truncsfdi2): New expander.
4343         (fixuns_truncdfdi2): Likewise.
4344
4345 2004-02-26  Alan Modra  <amodra@bigpond.net.au>
4346
4347         * gcse.c (delete_null_pointer_checks_1): Do not delete CC setter
4348         unless HAVE_cc0.
4349
4350 2004-02-25  Richard Henderson  <rth@redhat.com>
4351
4352         * explow.c (force_reg): Call mark_reg_pointer as appropriate.
4353         * config/alpha/alpha.c (alpha_emit_conditional_branch): Don't
4354         use (op0-op1) == 0 if op0 is a pointer.
4355         * config/alpha/alpha.md (cmpdi): Use some_operand.
4356         (three comparison combine splits): Remove.
4357
4358 2004-02-25  Richard Henderson  <rth@redhat.com>
4359
4360         PR c/12794
4361         * c-common.c (handle_alias_attribute): Reject the attribute if
4362         current_function_decl is set.
4363
4364 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
4365
4366         * config.gcc: Add comment describing extra_gcc_objs.
4367         i[34567]86-*-cygwin*): Replace host_extra_gcc_objs with extra_gcc_objs.
4368         * configure.ac (extra_gcc_objs): New substitution variable.
4369         (host_extra_gcc_objs): Don't substitute.
4370         * configure: Regenerate.
4371         * Makefile.in: Use extra_gcc_objs.
4372
4373 2004-02-25  Kelley Cook  <kcook@gcc.gnu.org>
4374
4375         * doc/contrib.texi: Add an entry for myself.
4376
4377 2004-02-25  Jan Hubicka  <jh@suse.cz>
4378
4379         * basic-block.h (make_eh_edge, break_superblocks): Declare.
4380         * cfgbuild.c (make_eh_edge):  Make global.
4381         * cfglayout.c (break_superblocks): Likewise; fix memory leak.
4382         * except.c (build_post_landing_pads, connect_post_landing_pads,
4383         dw2_build_landing_pads, sjlj_emit_function_enter,
4384         sjlj_emit_function_exit, sjlj_emit_dispatch_table,
4385         sjlj_build_landing_pads): Update CFG.
4386         (emit_to_new_bb_before): New function.
4387         (finish_eh_generation): Do not rebuild the CFG.
4388
4389 2004-02-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4390
4391         * config.gcc (hppa*-*-*, parisc*-*-*): Add MASK_BIG_SWITCH to all
4392         target_cpu_default defines.
4393         * pa-hpux.h (TARGET_DEFAULT): Add MASK_BIG_SWITCH to define.
4394         * pa.h (TARGET_DEFAULT): Likewise.
4395
4396 2004-02-25  Eric Botcazou  <ebotcazou@act-europe.fr>
4397
4398         * fold-const.c (fold): Treat MAX_EXPR and MIN_EXPR like
4399         comparisons with regard to signedness.
4400
4401 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
4402
4403         * arm.c (thumb_legitimize_address): New function.
4404         * arm-protos.h: Prototype it.
4405         * arm.h (THUMB_LEGITIMIZE_ADDRESS): Define.
4406         (LEGITIMIZE_ADDRESS): Use it.
4407
4408 2004-02-25  J"orn Rennecke <joern.rennecke@superh.com>
4409
4410         * reload1.c (reload): Only spill eliminable register with multiple
4411         adjacent elimination alternatives if all alternatives fail.
4412
4413 2004-02-25  Richard Earnshaw  <rearnsha@arm.com>
4414
4415         * arm.c (arm_legitimate_index_p): For QImode the range of an offset
4416         is -4095...+4095 inclusive.
4417
4418 2004-02-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
4419
4420         * doc/install.texi (sparc-sun-solaris2* specific notes): Document
4421         the bootstrap failure with Sun CC 5.4 and 5.5.
4422
4423 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
4424
4425         * cse.c (cse_change_cc_mode_insns): Stop at any instruction
4426         which modifies NEWREG.
4427         (cse_condition_code_reg): Update the mode of CC_REG in
4428         CC_SRC_INSN on our own.
4429
4430 2004-02-24  Michael Matz  <matz@suse.de>
4431
4432         * config/i386/i386.c (ix86_comp_type_attributes): Check for
4433         regparm attributes.
4434
4435 2004-02-24  Richard Henderson  <rth@redhat.com>
4436
4437         * toplev.c (dump_file_tbl): Rename from dump_file.
4438         * bb-reorder.c, bt-load.c, cfgcleanup.c, cfglayout.c, cfgloopanal.c,
4439         cfgloopmanip.c, cfgrtl.c, config/arm/arm.c, config/frv/frv.c,
4440         config/i386/i386.c, config/ia64/ia64.c, config/mips/mips.c,
4441         config/sh/sh.c, cse.c, flow.c, ifcvt.c, loop-iv.c, loop-unroll.c,
4442         loop-unswitch.c, output.h, predict.c, profile.c, ra-build.c,
4443         ra-colorize.c, ra-debug.c, ra-rewrite.c, ra.c, regrename.c, reload1.c,
4444         toplev.c, tracer.c, value-prof.c, var-tracking.c, web.c:
4445         s/rtl_dump_file/dump_file/g.
4446
4447 2004-02-24  Aldy Hernandez  <aldyh@redhat.com>
4448
4449         * config/rs6000/spe.md (spe_fix_truncsfsi2): Delete.
4450         (spe_fixuns_truncsfsi2): Delete.
4451
4452         * config/rs6000/rs6000.md (fix_truncsfsi2): Delete.
4453         (fixuns_truncsfsi2): Delete.
4454
4455 2004-02-24  Josef Zlomek  <zlomekj@suse.cz>
4456
4457         PR/14240
4458         * rtlanal.c (replace_label): Fix replacing labels in constant pool.
4459
4460 2004-02-24  Geoffrey Keating  <geoffk@apple.com>
4461
4462         * config/darwin.h (TARGET_HAS_F_SETLKW): Define.
4463
4464 2004-02-24  Jason Merrill  <jason@redhat.com>
4465
4466         * tree.c (check_qualified_type): New fn.
4467         (get_qualified_type): Use it.  If type already has the desired
4468         quals, just return it.
4469         * tree.h: Declare it.
4470
4471 2003-02-24  Sanjiv Kumar Gupta  <sanjivg@noida.hcltech.com>
4472
4473         * target-def.h (TARGET_SCHED_INIT_GLOBAL,
4474         TARGET_SCHED_FINISH_GLOBAL): New macros.
4475
4476         * target.h (md_init_global, md_finish_global): Function
4477         declarations corresponding to new target macros.
4478
4479         * haifa-sched.c (sched_init, sched_finish): Allow target to
4480         call the new schedular hooks.
4481
4482         * flow.c (recompute_reg_usage): Add PROP_DEATH_NOTES flag in
4483         call to update_life_info.
4484
4485         * config/sh/sh.h (OVERRIDE_OPTIONS): Re-enable
4486         flag_schedule_insns for SH4.
4487
4488         * config/sh/sh.c (sh_md_init_global, sh_md_finish_global,
4489         find_set_regmode_weight, find_insn_regmode_weight,
4490         find_regmode_weight), sh_md_init, sh_dfa_new_cycle,
4491         sh_variable_issue, high_pressure, ready_reorder,
4492         rank_for_reorder, swap_reorder, sh_reorder, sh_reorder2): New
4493         functions used to throttle the insn movement in first
4494         scheduling pass for SH.
4495
4496         * gcc/doc/tm.texi: Document TARGET_SCHED_INIT_GLOBAL and
4497         TARGET_SCHED_FINISH_GLOBAL.
4498
4499 2004-02-24  Alexandre Oliva  <aoliva@redhat.com>
4500
4501         Implement FR-V FDPIC ABI support for frv-uclinux and frv-linux.
4502         2004-02-05  Alexandre Oliva  <aoliva@redhat.com>
4503         * config/frv/frv.c (frv_emit_movsi): Use GOT relocations for
4504         symbols in sections named by the user.
4505         2004-01-30  Alexandre Oliva  <aoliva@redhat.com>
4506         * config/frv/linux.h (TARGET_OS_CPP_BUILTINS): New.
4507         2004-01-27  Alexandre Oliva  <aoliva@redhat.com>
4508         * config.gcc (frv-*-*linux*): Handle like *-*-linux*.
4509         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Remove, obviated by
4510         the above.
4511         2004-01-20  Alexandre Oliva  <aoliva@redhat.com>
4512         * config/frv/frv.md (symGOT2reg_hilo, symGOTOFF2reg_hilo): Add
4513         one more pseudo to further improve code generation.
4514         2004-01-19  Alexandre Oliva  <aoliva@redhat.com>
4515         * config/frv/frv.md (movdi_ldd): Introduce explicit indirection
4516         inside UNSPEC.
4517         2004-01-16  Alexandre Oliva  <aoliva@redhat.com>
4518         * config/frv/frv.c (frv_legitimate_address_p): Added
4519         allow_double_reg_p argument.  Adjust all callers.  Use it to
4520         decide whether to enable double-register indirect addressing.
4521         (frv_funcdesc_alias_set): Remove.
4522         (frv_expand_fdpic_call): Force non-SYMBOL_REF operand into
4523         register.  Emit movdi_ldd.
4524         (ldd_address_operand): New.
4525         * config/frv/frv-protos.h (frv_legitimate_address_p): Adjust.
4526         * config/frv/frv.h (GO_IF_LEGITIMATE_ADDRESS): Likewise.
4527         (PREDICATE_CODES): Add ldd_address_operand.
4528         * config/frv/frv.md (movdi_ldd): New.
4529         (symGOT2reg_hilo, symGOTOFF2reg_hilo): Use separate pseudo for
4530         intermediate computations if possible.
4531         (symGOTOFF2reg_i): Fix harmless typo.
4532         2003-12-18  Alexandre Oliva  <aoliva@redhat.com>
4533         * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Cast
4534         relocated p_vaddr to vaddr type.
4535         * config/frv/frv-protos.h (frv_expand_fdpic_call): Return void.
4536         * config/frv/frv.c (frv_get_funcdesc_alias_set): New.
4537         (frv_expand_fdpic_call): Propagate incoming MEM's expr to funcdesc
4538         MEM, or use a funcdesc alias set.  Use regular move instead of
4539         ldd.
4540         (dbl_memory_one_insn_operand): Recognize function descriptors by
4541         type or by alias set, and don't split them.
4542         * config/frv/frv.md (call, call_value): Never use call_internal
4543         for fdpic.
4544         (call_internal, call_value_internal): Never match for FDPIC.
4545         (call_fdpicdi, call_fdpicsi, call_value_fdpicdi,
4546         call_value_fdpicsi): Require FDPIC.
4547         (ldd): Removed.
4548         2003-12-17  Alexandre Oliva  <aoliva@redhat.com>
4549         * config/frv/frv.h (CRT_GET_RFIB_DATA): Define for __FRV_FDPIC__.
4550         * unwind-dw2-fde-glibc.c: Don't include elf-fdpic.h any more.
4551         (_Unwind_IteratePhdrCallback): Adjust type of load_base for FRV
4552         FDPIC.  Compute data base address.
4553         * config/frv/linux.h (SUBTARGET_DRIVER_SELF_SPECS): Enable -mfdpic
4554         before the other self-specs are processed.
4555         * config/frv/t-linux (CRTSTUFF_T_CFLAGS, TARGET_LIBGCC2_CFLAGS):
4556         Build with -fPIC.
4557         2003-12-15  Alexandre Oliva  <aoliva@redhat.com>
4558         * unwind-dw2-fde-glibc.c: Don't include bits/elf-fdpic.h if
4559         inhibit_libc is defined.
4560         2003-12-12  Alexandre Oliva  <aoliva@redhat.com>
4561         * unwind-dw2-fde-glibc.c: Include bits/elf-fdpic.h for
4562         __FRV_FDPIC__.
4563         (__RELOC_POINTER): Define.
4564         (_Unwind_IteratePhdrCallback): Use it.
4565         * config/frv/frv.h (Twrite): Define.
4566         (TRANSFER_FROM_TRAMPOLINE): Use it.
4567         * config/frv/linux.h (INVOKE__main): Undefine.
4568         (Twrite): Override.
4569         2003-12-05  Richard Sandiford  <rsandifo@redhat.com>
4570         * doc/invoke.texi (-mlong-calls, -mlinked-fp): Document FRV options.
4571         (-mlibrary-pic): Emphasize that this option generates EABI code.
4572         (-mcpu): Add fr550.
4573         (-mpack): Remove.
4574         2003-11-30  Alexandre Oliva  <aoliva@redhat.com>
4575         * config/frv/frv.c (int_2word_operand): Reject LABELs, SYMBOL_REFs
4576         and CONSTs in FDPIC mode.
4577         * gcc/config.gcc (with_cpu): Default to fr400 on frv-*-*linux*.
4578         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
4579         * config/frv/frv.c (move_source_operand): Don't accept symbolic
4580         constants.
4581         * config/frv/frv.md (*movhi_internal, *movsi_internal): Use an 'n'
4582         rather than 'i' constraint for the 2-instruction alternative.
4583         (*movsi_2word): New, incorporating existing int_2word_operand splitter.
4584         2003-11-29  Richard Sandiford  <rsandifo@redhat.com>
4585         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Q): Renamed from
4586         EXTRA_CONSTRAINT_FOR_Y.
4587         (EXTRA_CONSTRAINT): Remove handling of 'Y'.
4588         * config/frv/frv.md (*movsi_internal): Remove 'Q' constraint.
4589         (addsi3): Change 'Y' constraint to 'Q'.
4590         2003-11-27  Richard Sandiford  <rsandifo@redhat.com>
4591         * reload.c (CONST_POOL_OK_P): New macro.
4592         (find_reloads): Use it to decide whether a constant can be forced
4593         into memory.
4594         * config/frv/frv.h (LEGITIMATE_PIC_OPERAND_P): Return true if the
4595         constant satisfies got12_operand.
4596         (frv_cannot_force_const_mem): Always return true for TARGET_FDPIC.
4597         (frv_legitimate_address_p): Check for valid unspec offsets using
4598         got12_operand rather than frv_legitimate_fdpic_operand_p.
4599         (frv_legitimate_fdpic_operand_p): Delete.
4600         (frv_emit_movsi): Abort if we try to use the FDPIC register during
4601         or after reload.
4602         (frv_legitimate_constant_p): Return LEGITIMATE_PIC_OPERAND_P if
4603         TARGET_FDPIC.
4604         * config/frv/frv.md (*movdf_double): Add alternatives for CONST_DOUBLE.
4605         2003-11-19  Richard Sandiford  <rsandifo@redhat.com>
4606         * config/frv/frv-protos.h (fdpic_operand, fdpic_got12_operand)
4607         (frv_fdpic_fptr_operand): Don't declare here.
4608         * config/frv/frv.h (EXTRA_CONSTRAINT_FOR_Y): Call got12_operand
4609         rather than fdpic_got12_operand.
4610         (PREDICATE_CODES): Remove symbolic_operand entry.  Add entries for
4611         got12_operand and const_unspec_operand.
4612         * config/frv/frv.c (got12_operand): Renamed from fdpic_got12_operand.
4613         (gpr_or_int12_operand, dbl_memory_one_insn_operand): Update calls.
4614         (symbolic_operand): Remove.
4615         (const_unspec_operand): New predicate.
4616         * config/frv/frv.md (*movsi_got): Use got12_operand.
4617         (*movsi_high_got, *movsi_lo_sum_got): Use const_unspec_operand.
4618         2003-11-18  Richard Sandiford  <rsandifo@redhat.com>
4619         * config/frv/frv-protos.h (frv_output_addr_const_extra): Remove.
4620         * config/frv/frv.h (OUTPUT_ADDR_CONST_EXTRA): Remove definition.
4621         * config/frv/frv.c (frv_unspec): New structure.
4622         (frv_small_data_reloc_p, frv_const_unspec_p): New functions.
4623         (frv_print_operand_memory_reference): Use frv_const_unspec_p to
4624         validate CONST indices.  Use frv_output_const_unspec to print them.
4625         (frv_print_operand): Update call to unspec_got_name.  Use
4626         frv_output_const_unspec to print constant unspecs.
4627         (frv_legitimate_fdpic_operand_p): Return true if frv_const_unspec_p.
4628         Reject UNSPECs otherwise.
4629         (unspec_got_name): Take the relocation number as argument, not an
4630         rtx containing it.
4631         (frv_output_addr_const_extra): Remove, replacing with...
4632         (frv_output_const_unspec): ...this new function.
4633         (frv_find_base_term): Use frv_const_unspec_p & frv_small_data_reloc_p.
4634         (gpr_or_int12_operand): Use fdpic_got12_operand.
4635         (dbl_memory_one_insn_operand): Likewise.
4636         (fdpic_got12_operand): Use frv_const_unspec_p.
4637         (frv_emit_movsi): Use frv_const_unspec_p to check for CONSTs that
4638         are already legitimate.  Use frv_small_data_reloc_p when deciding
4639         whether to use HIGH/LO_SUM for R_FRV_GOTOFF12 and R_FRV_GPREL12.
4640         2003-11-18  Alexandre Oliva  <aoliva@redhat.com>
4641         * config/frv/t-linux (SHLIB_MAPFILES): Override so as to export...
4642         * config/frv/libgcc-frv.ver: ... frv-specific symbols.  New file.
4643         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
4644         label, for real this time.
4645         * config/frv/frv.c (frv_local_funcdesc_p): Update to new
4646         representation of visibility.
4647         (fdpic_got12_operand, symbolic_operand): Mark unused arguments as
4648         such.
4649         2003-11-17  Richard Sandiford  <rsandifo@redhat.com>
4650         * config/frv/frv.h (MASK_LINKED_FP, TARGET_LINKED_FP): New macros.
4651         (TARGET_SWITCHES): Add -mlinked-fp and -mno-linked-fp.
4652         * config/frv/frv.c (frv_override_options): Set MASK_LINKED_FP unless
4653         it was explicitly disabled.
4654         (frv_stack_info): There is no need to save the link register in every
4655         frame unless TARGET_LINKED_FP is true.
4656         (frv_frame_pointer_required): If !TARGET_LINKED_FP, only require a
4657         frame pointer if the stack pointer might change value.
4658         (frv_return_addr_rtx): Check and process "count" argument.
4659         2003-11-14  Richard Sandiford  <rsandifo@redhat.com>
4660         * config/frv/frv-protos.h (frv_legitimize_address): Remove.
4661         (frv_find_base_term): Declare.
4662         * config/frv/frv.h (LEGITIMIZE_ADDRESS): Do nothing.
4663         (FIND_BASE_TERM): Define.
4664         (PREDICATE_CODES): Remove pic_register_operand, pic_symbolic_operand,
4665         small_data_register_operand, small_data_symbolic_operand.  Add
4666         symbolic_operand.
4667         * config/frv/frv.c (const_small_data_p, plus_small_data_p): Delete.
4668         (frv_print_operand_memory_reference, output_move_single): Remove
4669         special handling for unlegitimized sdata addresses.
4670         (frv_legitimate_address_p): Don't allow sums of SDA_BASE_REG
4671         and symbolic addresses.
4672         (frv_legitimize_address, frv_legitimize_fdpic_address): Delete.
4673         (frv_find_base_term): New function.
4674         (int_2word_operand): Check specifically for symbolic address constants.
4675         (pic_register_operand, pic_symbolic_operand): Delete.
4676         (small_data_register_operand, small_data_symbolic_operand): Delete.
4677         (dbl_memory_one_insn_operand): Don't call plus_small_data_p.
4678         Allow UNSPEC_GOT constants if !TARGET_FDPIC.
4679         (move_source_operand): Only accept CONSTs if they're a two-insn
4680         symbolic constant.
4681         (fdpic_got12_operand): Don't require TARGET_FDPIC.
4682         (frv_emit_movsi): Legitimize sdata and -mlibrary-pic addresses
4683         using gen_symGOTOFF2reg*.
4684         (frv_ifcvt_rewrite_mem): Remove (plus gr16 ...) special cases.
4685         (frv_rtx_costs): Give all MEM addresses a cost of 0.  Give MEMs
4686         themselves a cost of 3 insns.
4687         * config/mips/mips.md (*movsi_got): Allow for !TARGET_FDPIC too.
4688         Change predicate to symbolic_operand.
4689         (*movsi_high_got, *movsi_lo_sum_got): Likewise.
4690         (*movsi_lda_sdata): Delete.
4691         (*movsi_pic, movsi_high_pic, movsi_lo_sum_pic): Delete.
4692         2003-11-05  Alexandre Oliva  <aoliva@redhat.com>
4693         * config.gcc: Add t-slibgcc-elf-ver and support --with-cpu for
4694         frv-*-*linux*.
4695         * config/frv/frv-abi.h (CREATE_DOUBLE_SHIFT): Use branch to local
4696         label.
4697         * config/frv/frv.h (DRIVER_SELF_SPECS): Add blank before
4698         -multilib-library-pic.
4699         (LINK_SPEC): Add -z text for -mfdpic.
4700         * config/frv/frvbegin.c (__ROFIXUP_LIST__): Don't define on FDPIC.
4701         * config/frv/frvend.c (__ROFIXUP_END__): Likewise.
4702         * config/frv/linux.h (STARTFILE_SPEC, ENDFILE_SPEC, LINK_SPEC):
4703         Override.
4704         (OPTION_DEFAULT_SPECS, HAS_INIT_SECTION, INIT_SECTION_ASM_OP,
4705         FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION): Define.
4706         * config/frv/t-linux (EXTRA_MULTILIB_PARTS): Use
4707         crtstuff-generated files.
4708         2003-10-31  Alexandre Oliva  <aoliva@redhat.com>
4709         * config.gcc: Add frv-*-*linux*.
4710         * config/frv/linux.h, config/frv/t-linux: New.
4711         2003-10-06  Alexandre Oliva  <aoliva@redhat.com>
4712         * config/frv/frv.h (LINK_SPEC): Pass -melf32frvfd to the linker
4713         when -mfdpic even if a linker script is explicitly listed.
4714         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
4715         * config/frv/frv.c (frv_override_options): Clear asm_out
4716         unaligned_op for SImode on FDPIC.
4717         (frv_emit_movsi): Use compute_reloc_for_constant to compute the
4718         argument passed to decl_readonly_section.
4719         (frv_assemble_integer): Revert 2003-09-30's change, but make the
4720         whole block run with FDPIC even with -fno-PIC.
4721         2003-10-02  Alexandre Oliva  <aoliva@redhat.com>
4722         * config/frv/frv.c (frv_cannot_force_const_mem): Don't force
4723         symbol or label plus offset to memory.
4724         (frv_emit_movsi): Emit GPREL only if -mgprel-ro.  Emit 32-bit
4725         GOTOFF and GPREL for LABEL_REF.
4726         * config/frv/frv.h (DRIVER_SELF_SPECS): Add -mgprel-ro with
4727         -mfdpic unless -mno-gprel-ro, -fpic or -fpie.
4728         (MASK_GPREL_RO, TARGET_GPREL_RO): New.
4729         (TARGET_SWITCHES): Added gprel-ro and no-gprel-ro.
4730         * doc/invoke.texi: Document them.
4731         2003-09-30  Alexandre Oliva  <aoliva@redhat.com>
4732         * config/frv/frv-protos.h (frv_gen_GPsym2reg): Declare.
4733         (frv_splittable_got_operand): Removed.
4734         * config/frv/frv.c (frv_cannot_force_const_mem): Reject HIGH and
4735         LO_SUM.  Add comments.
4736         (frv_override_options): Moved enabling of FDPIC to
4737         DRIVER_SELF_SPECS.  Don't enable MASK_DWORD.
4738         (frv_local_funcdesc_p): Remove unnecessary heck for flag_pie.
4739         (frv_legitimize_fdpic_address): Don't duplicate logic in
4740         frv_emit_movsi.
4741         (frv_gen_GPsym2reg): New.
4742         (unspec_got_name): Added gprel.
4743         (frv_expand_fdpic_call): Add support for inlining PLTs.
4744         (fdpic_fptr_operand): Renamed from frv_fdpic_fptr_operand.
4745         (gpr_or_int12_operand): Added GPREL12.
4746         (pic_symbolic_operand): Match even if !flag_pic for FDPIC.
4747         (small_data_symbolic_operand): Fail if FDPIC.
4748         (fdpic_splittable_got_operand): Removed.
4749         (fdpic_got12_operand): Added GPREL12.
4750         (frv_emit_movsi): Reorganize to avoid duplication.  Emit GPREL
4751         when appropriate.  Fix sdata GOTOFF.
4752         (frv_legitimate_constant_p): Require legitimate PIC operand for
4753         FDPIC with pic, but only a legitimate fdpic operand for non-pic.
4754         (frv_assemble_integer): Move FDPIC funcdesc handling out of
4755         flag_pic case.
4756         (frv_asm_out_constructor, frv_asm_out_destructor): Abort if
4757         frv_assemble_integer fails.
4758         * config/frv/frv.h (DRIVER_SELF_SPECS): New.
4759         (SUBTARGET_DRIVER_SELF_SPECS): New.
4760         (ASM_SPEC): Don't pass -mno-fdpic.
4761         (LINK_SPEC): Pass -melf32frvfd for FDPIC.
4762         (MASK_INLINE_PLT, TARGET_INLINE_PLT): New.
4763         (TARGET_SWITCHES): Add -minline-plt, -mno-inline-plt and
4764         -multilib-library-pic.
4765         (PREDICATE_CODES): Added fdpic_operand, fdpic_fptr_operand,
4766         condexec_si_media_operator, condexec_sf_add_operator and
4767         condexec_sf_conv_operator.  Removed condexec_sf_binary_operator
4768         and condexec_sf_unary_operator.
4769         * config/frv/frv.md (R_FRV_GPREL12, R_FRV_GPRELHI, R_FRV_GPRELLO):
4770         New.
4771         (movsi_got, movsi_high_got, movsi_lo_sum_got): Move before
4772         movsi_internal.  Give them internal names.  movsi_got has type
4773         int.
4774         (fdpic got splitters): Remove.
4775         (symGPREL2reg, symGPREL2reg_hilo): New.
4776         * config/frv/t-frv (MULTILIB_MATCHES): Don't map -fpic and -fPIC
4777         to -mlibrary-pic.  Map -multilib-library-pic to it.
4778         * doc/invoke.texi: -mfdpic, -minline-plt, -multilib-library-pic:
4779         Document.
4780         2003-09-28  Alexandre Oliva  <aoliva@redhat.com>
4781         * config/frv/frv.c (frv_function_symbol_referenced_p): Declare.
4782         (TARGET_CANNOT_FORCE_CONST_MEM): Define to...
4783         (frv_cannot_force_const_mem): New function.
4784         (const_small_data_p, plus_small_data_p): Update comments on sdata
4785         on FDPIC.
4786         (frv_override_options): Set flag_pie for FDPIC too.
4787         (frv_conditional_register_usage): Mark gr16 and gr17 as non-fixed,
4788         call-saved registers on FDPIC.
4789         (frv_stack_info): Don't preserve the PIC register on FDPIC, and
4790         don't force LR to be preserved.
4791         (frv_expand_prologue): Likewise.
4792         (frv_asm_output_mi_thunk): Use 12-bit funcdesc gotoff for -fpic.
4793         (frv_frame_pointer_required): Don't force it just because the
4794         FDPIC register is used.
4795         (frv_legitimate_address_p) <CONST>: Accept a legitimate FDPIC
4796         operand only if !condexec_p.
4797         (frv_legitimize_address): Return the FDPIC-legitimized address.
4798         Don't match small data here on FDPIC.
4799         (frv_legitimate_fdpic_operand_p): Don't accept unadorned function
4800         symbols.  Use TRUE/FALSE instead of 1/0.
4801         (frv_local_funcdesc_p): New.
4802         (frv_legitimize_fdpic_address): Rewrite to use GOTOFF and 12-bit
4803         immediates when possible.
4804         (pic_symbolic_operand): Accept SYMBOL_REFs and CONSTs in FDPIC.
4805         (dbl_memory_one_insn_operand): Accept addresses that add a REG and
4806         an UNSPEC_GOT.
4807         (frv_emit_movsi): Handle FDPIC before small data.  Use GOTOFF and
4808         12-bit immediates when possible.
4809         (frv_legitimate_constant_p): In FDPIC, reject SImode operands that
4810         are not legitimate pic operands.
4811         (frv_in_small_data_p): Re-enable for FDPIC.
4812         * config/frv/frv.h (SDA_BASE_REG): Remove comment about FDPIC.
4813         (FRV_GLOBAL_P): Removed.
4814         * config/frv/frv.md: Add modes to CONSTs.
4815         (movsi_got): New.
4816         (movsi_lo_sum_got): Use separate matches instead of match_dup.
4817         (movsi_high_pic, movsi_lo_sum_pic): Match on non-FDPIC only.
4818         (fdpic splittable operations): Match on flag_pic != 1.
4819         2003-09-22  Alexandre Oliva  <aoliva@redhat.com>
4820         * config/frv/frv.c (frv_asm_out_constructor,
4821         frv_asm_out_destructor): Pass to frv_assemble_integer the size in
4822         bytes, not bits.
4823         2003-09-19  Alexandre Oliva  <aoliva@redhat.com>
4824         * config/frv/frv.c (frv_assemble_integer): Reject complex
4825         expressions referencing function SYMBOL_REFs.
4826         * config/frv/frv.c (frv_function_symbol_referenced_p): New.
4827         (move_source_operand): Reject CONSTs that reference function
4828         SYMBOL_REFs on FDPIC.
4829         (frv_emit_movsi): If we get such a CONST, break it up.
4830         * config/frv/frv.h (CPP_SPEC): Define __FRV_FDPIC__ for -mfdpic.
4831         (TRANSFER_FROM_TRAMPOLINE): Use different definitions for FDPIC.
4832         * config/frv/frv.c (frv_print_operand) <I>: Recognize PLUS without
4833         MEM.
4834         (frv_assemble_integer): Don't use funcdesc for LABEL_REFs.
4835         (frv_trampoline_size): Increase for FDPIC.
4836         * config/frv/frv.h (TRAMPOLINE_ALIGNMENT): Bump to 64 for FDPIC.
4837         (TRANSFER_FROM_TRAMPOLINE): Handle FDPIC trampolines.
4838         * config/frv/frv.c (frv_legitimize_fdpic_address, frv_emit_movsi):
4839         Disable use of GOTOFF for now.
4840         (const_small_data_p, plus_small_data_p, frv_in_small_data_p):
4841         Disable use of small data in FDPIC for now.
4842         (frv_asm_output_mi_thunk): Implement for FDPIC.
4843         * config/frv/frv.h (SDA_BASE_REG): Set to -1 with FDPIC.
4844         * config/frv/frv.c (frv_asm_out_constructor): Use
4845         frv_assemble_integer for FDPIC pointers.
4846         (frv_asm_out_destructor): Likewise.
4847         * config/frv/frv.md (ldd): Fix order of operands.  Use
4848         address_operand for input.
4849         2003-09-18  DJ Delorie  <dj@redhat.com>
4850         * config/frv/frv.c (frv_legitimate_fdpic_operand_p): Remove UNSPEC_PIC.
4851         (unspec_got_name): Correct typo.
4852         (frv_emit_movsi): Pre-expand splittable GOTs.
4853         (frv_expand_fdpic_call): Rename gen_lddi to gen_ldd.
4854         * config/frv/frv.md (lddi): Fix syntax error, rename to ldd.
4855         (symGOT2reg_hilo, symGOTOFF2reg_hilo): New.
4856         * config/frv/t-frv: Add -mfdpic multilibs.
4857         * config/frv/frv.h (ASM_SPEC): Pass -mfdpic/-mno-fdpic.
4858         (TARGET_SWITCHES): Add -mno-fdpic, fix documentation.
4859         * config/frv/frv.c (frv_override_options): -mfdpic assumes
4860         flag_pic, default to 32-bit pics, require DWORD ops.
4861         (frv_override_options): Add W and Z constraints.
4862         (frv_expand_prologue): No pic prologue for -mfdpic.
4863         (frv_asm_output_mi_thunk): Support -mfdpic (soon).
4864         (frv_print_operand_memory_reference): Handle GOT constants.
4865         (frv_legitimate_address_p): Allow GOT constants.
4866         (frv_legitimize_address): Handle GOT addresses too.
4867         (frv_legitimate_fdpic_operand_p): New.
4868         (frv_legitimize_fdpic_address): New.
4869         (unspec_got_name): New.
4870         (frv_output_addr_const_extra): New.
4871         (frv_expand_fdpic_call): New.
4872         (frv_fdpic_fptr_operand): New.
4873         (gpr_or_int12_operand): Handle GOT operands.
4874         (int_2word_operand): Handle GOT operands.
4875         (fdpic_operand): New.
4876         (fdpic_splittable_got_operand): New.
4877         (fdpic_got12_operand): New.
4878         (frv_emit_movsi): Handle GOT operands.
4879         (frv_assemble_integer): -mfdpic doesn't use rofixups.
4880         (frv_print_operand): Support 'g' code for GOT operands.
4881         * config/frv/frv-protos.h: Add prototypes as needed.
4882         * config/frv/frv.md (R_FRV_GOT12, R_FRV_GOTHI, R_FRV_GOTLO,
4883         R_FRV_FUNCDESC, R_FRV_FUNCDESC_GOT12, R_FRV_FUNCDESC_GOTHI,
4884         R_FRV_FUNCDESC_GOTLO, R_FRV_FUNCDESC_VALUE,
4885         R_FRV_FUNCDESC_GOTOFF12, R_FRV_FUNCDESC_GOTOFFHI,
4886         R_FRV_FUNCDESC_GOTOFFLO, R_FRV_GOTOFF12, R_FRV_GOTOFFHI,
4887         R_FRV_GOTOFFLO): New.
4888         (movsi_high_got, movsi_lo_sum_got): New.
4889         (*movsi_pic): Don't use this splitter for -mfdpic.
4890         (addsi3): Allow GOT references also.
4891         (call, call_value): Handle -mfdpic separately.
4892         (call_fdpicdi, call_fdpicsi, lddi, call_value_fdpicdi,
4893         call_value_fdpicsi): New.
4894         (symGOT2reg, symGOT2reg_i, got splitters, symGOTOFF2reg,
4895         symGOTOFF2reg_i): New.
4896         * config/frv/frv.h (MASK_FDPIC): New.
4897         (TARGET_FDPIC): New.
4898         (TARGET_SWITCHES): Add -mfdpic.
4899         (FDPIC_FPTR_REGNO): New.
4900         (FDPIC_REGNO): New.
4901         (OUR_FDPIC_REG): New.
4902         (enum reg_class): Add FDPIC_REGS, FDPIC_FPTR_REGS, and
4903         FDPIC_CALL_REGS.
4904         (REG_CLASS_NAMES): Likewise.
4905         (REG_CLASS_CONTENTS): Likewise.
4906         (EXTRA_CONSTRAINT_FOR_Y): New, for 12-bit GOTs.
4907         (EXTRA_CONSTRAINT): Add it here.
4908         (FRV_GLOBAL_P): New.
4909         (OUTPUT_ADDR_CONST_EXTRA): New.
4910
4911 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
4912
4913         * config/sparc/sparc.h: Remove commented-out definitions of
4914         TARGET_EDOM and GEN_ERRNO_RTX.
4915
4916 2004-02-24  Kazu Hirata  <kazu@cs.umass.edu>
4917
4918         * df.c, df.h, ra-build.c, ra-rewrite.c, ra.c, web.c: Replace
4919         df_analyse with df_analyze.
4920
4921 2004-02-24  Alan Modra  <amodra@bigpond.net.au>
4922
4923         * gcse.c (delete_null_pointer_checks_1): Set stop_insn to end, not
4924         beginning of block.
4925
4926 2004-02-23  James E Wilson  <wilson@specifixinc.com>
4927
4928         * calls.c (precompute_arguments): Update comment.
4929
4930 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
4931
4932         * et-forest.c: Replace et_occurences with et_occurrences.
4933
4934 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
4935
4936         * cfgloop.h, loop-iv.c, loop-unswitch.c: Replace iv_analyse
4937         with iv_analyze.
4938
4939 2004-02-23  Kelley Cook  <kcook@gcc.gnu.org>
4940
4941         * config/i386/i386.c: Rename pni to sse3.
4942         * config/i386/i386.h: Likewise.
4943         * config/i386/i386.md: Likewise.
4944         * config/i386/pmmintrin.h: Likewise.
4945         * doc/extend.texi: Likewise.
4946         * doc/invoke.texi: Likewise.
4947
4948 2004-02-23  Zack Weinberg  <zack@codesourcery.com>
4949             Kazu Hirata  <kazu@cs.umass.edu>
4950
4951         Remove -fwritable-strings.
4952         * c-common.c (fix_string_type): Don't check
4953         flag_writable_strings.
4954         (fix_string_type): Likewise.
4955         * c-opts.c (set_std_c89): Don't initialize
4956         flag_writable_strings.
4957         (set_std_c99): Likewise.
4958         * common.opt (fwritable-strings): Remove.
4959         * flags.h: Remove the external declaration of
4960         flag_writable_strings.
4961         * opts.c (common_handle_option) <OPT_fwritable_strings>:
4962         Remove.
4963         * toplev.c (flag_writable_strings): Remove.
4964         (f_options): Remove an entry for writable-strings.
4965         * varasm.c (const_hash_1) <STRING_CST>: Don't check
4966         flag_writable_strings.
4967         (compare_constant) <STRING_CST>: Likewise.
4968         (build_constant_desc): Likewise.
4969         * config/darwin.c (machopic_select_section): Likewise.
4970         * config/arm/arm.c (AOF_ASSEMBLER): Likewise.
4971         * config/arm/pe.c (arm_pe_encode_section_info): Likewise.
4972         * config/iq2000/iq2000.c (iq2000_select_section): Likewise.
4973         * config/mips/mips.c (mips_select_section): Likewise.
4974         (mips_encode_section_info): Likewise.
4975         * config/pa/pa.c (pa_select_section): Likewise.
4976         * config/pa/pa.h (TEXT_SPACE_P): Likewise.
4977         * config/v850/v850.c (v850_select_section): Likewise.
4978         * doc/invoke.texi (-fwritable-strings): Remove.
4979         (-fno-const-strings): Don't mention -fwritable-strings.
4980         * doc/trouble.texi: Don't mention -fwritable-strings.
4981
4982 2003-02-23  Nathanael Nerode  <neroden@gcc.gnu.org>
4983
4984         * doc/install.texi: Update for switch of boehm-gc to autoconf 2.57.
4985
4986 2004-02-23  Dale Johannesen  <dalej@apple.com>
4987
4988         * config/rs6000.md (movsf_hardfloat): Add POWER form of nop.
4989         (movdf_hardfloat64):  Ditto.
4990         (movdf_softfloat64):  Ditto.
4991
4992 2004-02-23  Fariborz Jahanian <fjahanian@apple.com>
4993         * config/rs6000/rs6000.c (function_arg): call to
4994         rs6000_mixed_function_arg for DFmode moved to allow
4995         normal DFmode incoming register assignment.
4996
4997 2004-02-23  Dale Johannesen  <dalej@apple.com>
4998
4999         * config/rs6000.md (movsf_hardfloat): Accept CTR-to-CTR copy.
5000         (movdf_hardfloat64):  Ditto.
5001
5002 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
5003
5004         * convert.c, gcov-io.c, libgcov.c, sched-int.h, sibcall.c,
5005         config/rs6000/linux.h, config/rs6000/rs6000-c.c: Update
5006         copyright.
5007
5008 2004-02-23  Andrew Pinski  <pinskia@physics.uc.edu>
5009
5010         PR c/14156
5011         * c-typeck.c (c_expand_return): Change check for VAR_DECL
5012         to use DECL_P instead.
5013
5014         * config/rs6000/linux.h (OS_MISSING_POWERPC64): Define.
5015         * config/rs6000/linux64.h (OS_MISSING_POWERPC64): Define.
5016
5017 2004-02-23  Kazu Hirata  <kazu@cs.umass.edu>
5018
5019         * Makefile.in (opts.o): Depend on target.h.
5020         * opts.c (decode_options): Use targetm.default_short_enums
5021         instead of DEFAULT_SHORT_ENUMS.
5022         * system.h (DEFAULT_SHORT_ENUMS): Poison.
5023         * target-def.h (TARGET_DEFAULT_SHORT_ENUMS): New.
5024         (TARGET_INITIALIZER): Add TARGET_DEFAULT_SHORT_ENUMS.
5025         * target.h (gcc_target): Add default_short_enums.
5026         * config/cris/cris.h: Remove a comment about
5027         DEFAULT_SHORT_ENUMS.
5028         * config/ip2k/ip2k.h: Likewise.
5029         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Change to
5030         TARGET_DEFAULT_SHORT_ENUMS.  Update the description.
5031
5032 2004-02-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
5033             Falk Hueffner  <falk@debian.org>
5034
5035         PR c/14188
5036         * builtins.c (expand_builtin_va_arg): Emit an informative message
5037         if a trap is generated.
5038         * c-typeck.c (build_function_call): Likewise.
5039
5040 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
5041
5042         * gcov-io.c (gcov_open) [GCOV_LOCKED]: Use open + fdopen instead of
5043         fopen.
5044         * libgcov.c: Include sys/stat.h.
5045         * config/rs6000/linux.h (TARGET_HAS_F_SETLKW): Define.
5046         * config/rs6000/linux64.h (TARGET_HAS_F_SETLKW): Define.
5047         * config/sparc/linux.h (TARGET_HAS_F_SETLKW): Define.
5048         * config/sparc/linux64.h (TARGET_HAS_F_SETLKW): Define.
5049
5050 2004-02-22  Kazu Hirata  <kazu@cs.umass.edu>
5051
5052         * reorg.c: Remove comments about dead ports.
5053
5054 2004-02-22  Christopher Faylor  <cgf@redhat.com>
5055
5056         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): *Really* specify
5057         extra host object file when targetting cygwin rather than generic
5058         object files.
5059
5060 2004-02-22  Josef Zlomek  <zlomekj@suse.cz>
5061
5062         Merge from tree-ssa:
5063         2003-11-20  Richard Henderson  <rth@redhat.com>
5064
5065                 * tree-inline.c (insert_decl_map): New.
5066                 (remap_decl, remap_type, remap_block, copy_body_r,
5067                 initialize_inlined_parameters, declare_return_variable,
5068                 remap_save_expr): Use it.
5069
5070         * function.c (copy_body_r): Add mapping from id->ret_label to
5071         id->ret_label.  Revert test for ret_label.
5072
5073 2004-02-22  Jakub Jelinek  <jakub@redhat.com>
5074
5075         * genoutput.c (process_template): Strip trailing whitespace in @
5076         templates and issue a warning if there was any.
5077
5078 2004-02-21  Christopher Faylor  <cgf@redhat.com>
5079
5080         * config.gcc (i[34567]86-*-pe|i[34567]86-*-cygwin*): Specify extra host
5081         object file when targetting cygwin.
5082         * config/i386/t-cygwin (EXTRA_GCC_OBJS): Remove definition since it is
5083         overridden by top-level Makefile.
5084
5085 2004-02-21  Roger Sayle  <roger@eyesopen.com>
5086
5087         * config/i386/i386.c (standard_80387_constant_p): Also prefer
5088         the x87's load constant instructions when optimizing for size.
5089
5090 2004-02-21  Kazu Hirata  <kazu@cs.umass.edu>
5091
5092         * combine.c (SHIFT_COUNT_TRUNCATED): Remove.
5093         * defaults.h (SHIFT_COUNT_TRUNCATED): Provide the default.
5094         * expmed.c: Assume SHIFT_COUNT_TRUNCATED is always defined.
5095         * fold-const.c: Likewise.
5096         * simplify-rtx.c: Likewise.
5097
5098 2004-02-21  Alan Modra  <amodra@bigpond.net.au>
5099
5100         * combine.c (can_combine_p): Don't ignore SETs marked with
5101         REG_EH_REGION notes.
5102         (try_combine): When attemting to fix unrecognized insns, don't
5103         split a PARALLEL that contains the original i2.
5104
5105 2004-02-21  Ziemowit Laski  <zlaski@apple.com>
5106
5107         * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to
5108         SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options.
5109         * config/i386/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): Define it.
5110         * config/rs6000/altivec.h: #error out if '-maltivec' not specified.
5111         (vector, pixel, bool): #define to __vector, __pixel and __bool.
5112         (__un_args_eq, __bin_args_eq, __tern_args_eq): Move to C-specific
5113         portion of header.
5114         (__altivec_link_error_invalid_argument): Remove prototype; will use
5115         __builtin_altivec_compiletime_error("vec_*") instead.
5116         (vec_*): Fix/complete set of available operation overloads given the
5117         existence of distinct 'vector bool ...' and 'vector pixel' types; tighten
5118         cv-correctness of pointer arguments; in C, always check for correct
5119         argument types before macro expansion.
5120         * config/rs6000/darwin.h (SUBTARGET_OPTION_TRANSLATE_TABLE): New macro
5121         defining Darwin/PowerPC-specific '-f[no-]altivec' and
5122         '-W[no-]altivec-long-deprecated' switches.
5123         * config/rs6000/rs6000-c (rs6000_cpu_cpp_builtins): Pre-define
5124         '__vector', '__pixel' and '__bool' macros using
5125         '__attribute__((altivec(...)))' types.
5126         * config/rs6000/rs6000.c (bool_char_type_node, bool_short_type_node,
5127         bool_int_type_node, pixel_type_node, bool_V16QI_type_node,
5128         bool_V8HI_type_node, bool_V4SI_type_node, pixel_V8HI_type_node):
5129         New type nodes.
5130         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): New, for
5131         handling '-W[no-]altivec-long-deprecated'.
5132         (rs6000_override_options): Handle '-W[no-]altivec-long-deprecated'.
5133         (rs6000_expand_binop_builtin, rs6000_expand_ternop_builtin,
5134         altivec_expand_dst_builtin): Remove casts from integer literals.
5135         (altivec_expand_builtin): Likewise; handle expansion of new
5136         '__builtin_altivec_compiletime_error' function.
5137         (rs6000_init_builtins): Initialize 'vector bool ...' and 'vector pixel'
5138         types, and make them distinct from other vector types; register
5139         '__builtin_altivec_compiletime_error' function.
5140         (print_operand): For 'P', print a full target register name instead of
5141         merely its number.
5142         (rs6000_attribute_table): Add "altivec" attribute.
5143         (rs6000_handle_altivec_attribute): New function.
5144         * config/rs6000/rs6000.h (TARGET_OPTIONS): Describe
5145         '-m[no-]-warn-altivec-long' (which '-W[no-]altivec-long-deprecated'
5146         maps to).
5147         (rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch): Forward
5148         declare.
5149         (ALTIVEC_BUILTIN_COMPILETIME_ERROR): New built-in enumeration.
5150
5151 2004-02-20  James E Wilson  <wilson@specifixinc.com>
5152
5153         * config/ia64/ia64.md (shift_mix4left+1): Delete reload_completed
5154         check.
5155         (shift_mix4left+2): Delete redundant pattern.
5156
5157 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
5158
5159         * alias.c (OUTGOING_REGNO): Don't define the default.
5160         * builtins.c (OUTGOING_REGNO): Likewise.
5161         (INCOMING_REGNO): Likewise.
5162         (apply_args_register_offset): Always use OUTGOING_REGNO.
5163         * combine.c (OUTGOING_REGNO): Likewise.
5164         * sibcall.c (OUTGOING_REGNO): Likewise.
5165         * defaults.h (INCOMING_REGNO): Provide the default.
5166         (OUTGOING_REGNO): Likewise.
5167
5168 2004-02-21  Jan Hubicka  <jh@suse.cz>
5169
5170         * params.def (max-peeled-insns, max-completely-peeled-insns,
5171         max-once-peeled-insns): Set to 400.
5172
5173 2004-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5174
5175         PR c++/12007
5176         * dbxout.c (dbxout_parms): Check that DECL_RTL and DECL_INCOMING_RTL
5177         are set for parameters before outputing debugging information.
5178
5179 2004-02-20  Falk Hueffner  <falk@debian.org>
5180
5181         PR target/14201
5182         * config/alpha/alpha.md (*fix_truncsfsi_ieee): Fix typoed operand
5183         numbers.
5184
5185 2004-02-20  Per Bothner  <per@bothner.com>
5186
5187         * input.h:  Don't #include line-map.h.  It may cause link problems
5188         with undefined linemap_line_start when line-map.h is included but
5189         line-map.o is not linked, as currently happens with gengtype on
5190         compilers that don't support inline.
5191         * toplev.c:  So we do have to explicitly #include line-map.h here.
5192
5193 2004-02-20  Richard Henderson  <rth@redhat.com>
5194
5195         * doc/invoke.texi: Add -Wvariadic-macros.
5196
5197 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
5198
5199         * haifa-sched.c (sched_emit_insn): Remove.
5200         * sched-int.h: Remove the corresponding prototype.
5201
5202 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
5203
5204         Revert:
5205         2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5206         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
5207         * system.h (DEFAULT_SHORT_ENUMS): Poison.
5208         * config/cris/cris.h: Remove a comment about
5209         DEFAULT_SHORT_ENUMS.
5210         * config/ip2k/ip2k.h: Likewise.
5211         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
5212
5213 2004-02-20  Mohan Embar  <gnustuff@thisiscool.com>
5214             Tom Tromey  <tromey@redhat.com>
5215
5216         * doc/install.texi: Moved --disable-libgcj and
5217         --with-system-zlib documentation to new section for
5218         Java-specific options.
5219         Added explicit Cross-Compiler-Specific Options subheading.
5220         Added section for Java-specific options.
5221
5222 2004-02-20  Matt Kraai  <kraai@alumni.cmu.edu>
5223
5224         * doc/install.texi (Building the Ada compiler): Remove
5225         example.
5226
5227 2004-02-20  James E Wilson  <wilson@specifixinc.com>
5228
5229         * toplev.c (dump_file_index, dump_file): Put ce3 before rnreg.
5230
5231 2004-02-20  Kazu Hirata  <kazu@cs.umass.edu>
5232
5233         * gcc.c (process_command): Allow translation of the copyright
5234         symbol but not the rest of the copyright message.
5235         * gcov.c (print_version): Likewise.  Allow translation of the
5236         message about warranty.
5237
5238 2004-02-20  Hans-Peter Nilsson  <hp@axis.com>
5239
5240         * config/cris/cris.md ("*andsi_movu"): Correct parentheses in
5241         predicate.
5242         ("*andsi_clear"): Tweak constraints to not match postincrement.
5243         Adjust the predicate to exclude a volatile memory reference.
5244         ("*andhi_clear"): Ditto.  Rename from "*andhi_clear_signed".
5245         ("*andhi_clear_unsigned"): Remove, non-matching pattern.
5246
5247 2004-02-19  Matt Kraai  <kraai@alumni.cmu.edu>
5248
5249         * move-if-change: Remove.
5250         * Makefile.in (s-mlib, c-parse.y, s-check, s-gencheck)
5251         (s-specs, s-options, s-config, s-conditions, s-flags, s-codes)
5252         (s-constants, s-emit, s-recog, s-opinit, s-extract, s-peep)
5253         (s-attr, s-attrtab, s-output, s-genrtl, s-modes, s-preds)
5254         (s-gtyp-gen, s-iov): Use the top level move-if-change.
5255         * objc/Make-lang.in (objc/objc-parse.y): Likewise.
5256
5257 2004-02-19  James E Wilson  <wilson@specifixinc.com>
5258
5259         * config/i386/i386.md (doloop_end_internal): Use nonimmediate_operand
5260         for operand2.  Add condition that requires register_operand operand2
5261         before reload.
5262
5263 2004-02-19  Richard Sandiford  <rsandifo@redhat.com>
5264             Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
5265
5266         * config/mips/mips.c (mips_address_insns): Treat BLKmode specially.
5267         * config/mips/mips.md: Expand comment above unaligned loads and stores.
5268
5269 2004-02-19  Richard Henderson  <rth@redhat.com>
5270
5271         * Makefile.in (STRICT2_WARN): Add -Wno-variadic-macros.
5272         * tree.c (build0, build1, build2, build3, build4): Split out from...
5273         (build): ... here.  Call them.
5274         * tree.h (build, _buildN1, _buildN2, _buildC1, _buildC2): New.
5275
5276         * convert.c (convert_to_integer): Remove extra build argument.
5277         * tree-inline.c (expand_call_inline): Likewise.
5278
5279 2004-02-19  Richard Henderson  <rth@redhat.com>
5280
5281         * c-opts.c (warn_variadic_macros): New.
5282         (c_common_handle_option): Set it.
5283         (sanitize_cpp_opts): Copy it to cpp_opts.
5284         * c.opt (Wvariadic-macros): New.
5285         * cpplib.h (struct cpp_options): Add warn_variadic_macros.
5286         * cppinit.c (cpp_create_reader): Initialize it.
5287         * cppmacro.c (parse_params): Check it.
5288
5289 2004-02-19  David Daney <ddaney@avtrex.com>
5290
5291         PR preprocessor/14198
5292         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Add
5293         builtin_assert ("machine=mips")
5294
5295 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5296
5297         * opts.c (decode_options): Don't use DEFAULT_SHORT_ENUMS.
5298         * system.h (DEFAULT_SHORT_ENUMS): Poison.
5299         * config/cris/cris.h: Remove a comment about
5300         DEFAULT_SHORT_ENUMS.
5301         * config/ip2k/ip2k.h: Likewise.
5302         * doc/tm.texi (DEFAULT_SHORT_ENUMS): Remove.
5303
5304 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
5305
5306         * config/ia64/ia64.c (ia64_function_arg): In big-endian mode,
5307         when passing single SFmode quantities in general registers,
5308         put them in the high half.
5309
5310 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
5311
5312         * doc/md.texi (Standard Names): Document additional dependency on
5313         fix pattern.
5314
5315         * optabs.c (ftruncify): Remove.
5316         (expand_fix): Manually inline ftruncify above.
5317         (can_fix_p): Add FIXME note.
5318
5319 2004-02-19  Aldy Hernandez  <aldyh@redhat.com>
5320
5321         * config/rs6000/spe.md (spe_fixunssfsi2): Rename to
5322         spe_fixuns_truncsfsi2.
5323
5324         * config/rs6000/rs6000.md (fixunssfsi2): Rename to
5325         fixuns_truncsfsi2.
5326
5327 2004-02-19  Steve Ellcey  <sje@cup.hp.com>
5328
5329         * config/ia64/ia64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
5330         * testsuite/gcc.dg/20040219-1.c: New test.
5331
5332 2004-02-19  Ulrich Weigand  <uweigand@de.ibm.com>
5333
5334         * config/s390/s390.md ("*subdf3_cc", "*subdf3_cconly", "*subsf3_cc",
5335         "*subsf3_cconly"): Subtraction is not commutative.
5336
5337 2004-02-19  Zack Weinberg  <zack@codesourcery.com>
5338
5339         * sdbout.c (preinit_symbols, sdbout_initialized): New statics.
5340         (sdbout_symbol): If called before sdbout_init, queue DECL for
5341         later and return.
5342         (sdbout_init): Set sdbout_initialized true, process decls
5343         queued earlier by sdbout_symbol.
5344         (sdbout_finish): Use size_t for index variable.
5345
5346 2004-02-19  Jeff Law  <law@redhat.com>
5347
5348         * fold-const.c (invert_truthvalue): Do not call invert_tree_comparison
5349         for unordered comparison codes.
5350
5351 2004-02-19  Ian Lance Taylor  <ian@wasabisystems.com>
5352
5353         * reload1.c (reload): Correct comment.
5354         (scan_paradoxical_subregs): Remove #if 0 and old comment.
5355         * doc/extend.texi (Local Reg Vars): Remove obsolete comment that
5356         register variables are not used by reload.
5357
5358 2004-02-19  Hans-Peter Nilsson  <hp@axis.com>
5359
5360         PR target/14209
5361         * config/cris/cris.md ("*andsi_movu", "*andhi_movu"): Tweak
5362         constraints to not match postincrement.  Adjust the predicate to
5363         exclude a volatile memory reference.
5364
5365 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5366
5367         * config/mcore/mcore.h (ASM_OUTPUT_EXTERNAL): Remove.
5368
5369 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5370
5371         * hooks.c (hook_void_tree_int): Remove.
5372         (hook_void_constcharptr): Likewise.
5373         (hook_int_void_0): Likewise.
5374         * hooks.h: Remove the prototypes for the above three
5375         functions.
5376         * targhooks.c (hook_bool_machine_mode_true): Remove.
5377         * targhooks.h: Remove the prototype for
5378         hook_bool_machine_mode_true.
5379
5380 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5381
5382         * emit-rtl.c (subreg_realpart_p): Remove.
5383         (reorder_insns_with_line_notes): Likewise.
5384         (end_full_sequence): Likewise.
5385         * rtl.h: Remove the prototype for the above functions.
5386
5387 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5388
5389         * config/arc/arc.h, config/arm/arm.h, config/frv/frv.h,
5390         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
5391         config/iq2000/iq2000.h, config/m32r/m32r.h,
5392         config/pdp11/pdp11.h, config/sparc/sparc.h,
5393         config/xtensa/xtensa.h: Remove commented-out or useless
5394         definitions of CASE_VECTOR_PC_RELATIVE.
5395
5396 2004-02-19  Kazu Hirata  <kazu@cs.umass.edu>
5397
5398         * loop.c (all_sets_invariant_p): Remove.
5399
5400 2004-02-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
5401
5402         PR target/12916
5403         * config/sparc/sparc.h (NPARM_REGS): Delete.
5404         (BASE_RETURN_VALUE_REG): Likewise.
5405         (BASE_OUTGOING_VALUE_REG): Likewise.
5406         (BASE_PASSING_ARG_REG): Likewise.
5407         (BASE_INCOMING_ARG_REG): Likewise.
5408         * config/sparc/sparc.c (sparc_strict_argument_naming): Test
5409         TARGET_ARCH64, not TARGET_V9.
5410         (function_arg_slotno): Dispatch based on the mode class.
5411         Handle vector modes like floating-point modes.
5412         (function_arg_record_value_1): Handle vector types like
5413         floating-point types.
5414         (function_arg_record_value_2): Likewise.
5415         Calculate regno after mode transformation.
5416         (function_arg): Handle vector modes like floating-point modes.
5417         (function_arg_partial_nregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX.
5418         If ARCH64, do not recheck alignment.
5419         (function_arg_pass_by_reference): Reorder the conditions.
5420         (sparc_return_in_memory): Move after function_arg_padding.
5421         Implement calling conventions for vector modes.
5422         (sparc_struct_value_rtx): Move after sparc_return_in_memory.
5423         (function_value): Move scope of 'regbase'.
5424         Implement calling conventions for vector modes.
5425         (sparc_builtin_saveregs): Replace NPARM_REGS by SPARC_INT_ARG_MAX
5426         and BASE_INCOMING_ARG_REG by SPARC_INCOMING_INT_ARG_FIRST.
5427         (sparc_va_arg): Use function_arg_pass_by_reference to test whether
5428         the argument is passed by reference.
5429         (sparc_type_code): Handle vector types.
5430
5431 2004-02-19  Alan Modra  <amodra@bigpond.net.au>
5432
5433         * function.c (assign_parms): When building decl_rtl for
5434         SPLIT_COMPLEX_ARGS, ensure inner modes of concat match outer.
5435
5436 2004-02-19  Olivier Hainque  <hainque@act-europe.fr>
5437
5438         * expr.c (is_aligning_offset): Check if we are aligning the
5439         expressions's address over BIGGEST_ALIGNMENT in bytes, not
5440         in bits.
5441
5442 2003-02-18  Matt Austern  <austern@apple.com>
5443
5444         * gcc.c (LIBGCC_SPEC): If REAL_LIBGCC_SPEC is defined, and
5445         LIBGCC_SPEC isn't, set LIBGCC_SPEC to REAL_LIBGCC_SPEC.
5446         (init_gcc_spec): Don't define or call if REAL_LIBGCC_SPEC is
5447         defined.  Instead use REAL_LIBGCC_SPEC, unmodifed, as the libgcc
5448         spec string.
5449         * doc/tm.texi (REAL_LIBGCC_SPEC): Document.
5450
5451 2004-02-18  Zack Weinberg  <zack@codesourcery.com>
5452
5453         * dwarf2out.c (loclabel_num): Move outside #ifdef
5454         DWARF2_DEBUGGING_INFO and mark with GTY(()).
5455         * config/ia64/ia64.c (struct extern_func_list,extern_func_head):
5456         Mark with GTY(()).
5457         (ia64_hpux_add_extern_decl): Save the decl, not the name string.
5458         Allocate memory with ggc_alloc.  No need to copy anything.
5459         (ia64_hpux_file_end): Update to match.
5460
5461 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
5462
5463         * config/i386/i386.c (override_options): Don't imply 3DNow! for -m64
5464         by default.
5465
5466 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
5467
5468         * config/s390/s390.md ("divmodtidi3"): Use canonical RTL.
5469         ("divmodtisi3"): Likewise.
5470         ("udivmoddi4", "udivmodtidi3"): Likewise.
5471         ("divmodsi4", "divmoddisi3"): Likewise.
5472         ("udivmodsi4", "udivmoddisi3"): Likewise.
5473         ("udivsi3", "umodsi3"): Likewise.
5474
5475 2004-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
5476
5477         * config/s390/s390.c (s390_mainpool_start): Delete the main pool
5478         placeholder insn when chunkifying the pool.
5479
5480 2004-02-18  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5481
5482         * pa.h (PIC_OFFSET_TABLE_REGNUM): Define to INVALID_REGNUM when not
5483         generating PIC code.
5484
5485 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
5486
5487         * config/h8300/h8300-protos.h: Add a prototype for
5488         h8300_expand_branch.
5489         * config/h8300/h8300.c (h8300_expand_branch): New.
5490         * config/h8300/h8300.md (ble, bleu, bge, bgeu, blt, bltu, bgt,
5491         bgtu, beq, bne): Call h8300_expand_branch().
5492
5493 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
5494
5495         * config/h8300/h8300-protos.h: Add prototypes for
5496         h8300_hard_regno_nregs and h8300_hard_regno_mode_ok.
5497         * config/h8300/h8300.c (h8300_hard_regno_nregs): New.
5498         (h8300_hard_regno_mode_ok): Likewise.
5499         * config/h8300/h8300.h (HARD_REGNO_NREGS): Call
5500         h8300_hard_regno_nregs().
5501         (HARD_REGNO_MODE_OK): Call h8300_hard_regno_mode_ok().
5502
5503 2004-02-18  Per Bothner  <per@bothner.com>
5504
5505         * cpphash.h (struct cpp_buffer):  Restore return_at_eof field.  This
5506         partly reverts my 2003-10-01 change, because we're back to logically
5507         including <command line> inside the main line.
5508         * cpplex.c (_cpp_get_fresh_line):  Check return_at_eof field.
5509         * cppmacro.c (cpp_scan_nooutput):  Set return_at_eof of current buffer.
5510         Fixes PR preprocessor/14103.
5511
5512         * cppfiles.c (_cpp_stack_include):  When appropriate decrement
5513         line_table's highest_location, fixing LAST_SOURCE_LINE_LOCATION.
5514         (cpp_push_include):  Don't need to increment pfile's line field.
5515         * line-map.h (LAST_SOURCE_LINE_LOCATION):  Only decrement by 1.
5516
5517         * c-ppoutput.c (print struct):  New first_time field.
5518         (init_pp_output):  Set print.first_time.
5519         (pp_file_change):  Use print.first_time, rather than MAIN_FILE_P,
5520         which is set also for (say) <command line>.  Clear print.first_time.
5521
5522         * cppfiles.c (struct _cpp_file):  Comment and type for pch field
5523         does not match the code, so fix both.
5524         (should_stack_file):  Inline include_pch_p function.
5525         (include_pch_p):  Remove pointless function.
5526
5527         * cpphash.h (struct cpp_buffer):  Remove unused search_cached field.
5528
5529 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
5530
5531         * config/h8300/h8300.md (four define_peephole2's): Use
5532         h8300_regs_ok_for_stm().
5533
5534 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
5535
5536         * config/h8300/h8300-protos.h: Update the prototype for
5537         expand_a_rotate().
5538         * config/h8300/h8300.c (expand_a_rotate): Remove the first
5539         argument.
5540         * config/h8300/h8300.md: Update all callers.
5541
5542 2004-02-18  Jan Hubicka  <jh@suse.cz>
5543
5544         * simplify-rtx.c (simplify_unary_operation): Deal with logicals on
5545         floats.
5546         (simplify_binary_operation): Deal with logicals on floats.
5547
5548         * i386.md (SSE fabs splitters): Emit new patterns.
5549         (SSE cmov splitters): Likewise.
5550         (sse_andv4sf3, sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3
5551         (sse_andv2df3, sse_nandv2df3, sse_iorv2df3, sse_xorv2df3): Do not use
5552         subregs.
5553         (sse_andsf3, sse_nandsf3, sse_xorsf3): Kill.
5554         (sse_anddf3, sse_nanddf3, sse_xordf3): Kill.
5555
5556 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
5557
5558         * config/h8300/h8300.c (expand_a_rotate): Don't generate insns
5559         by hand.
5560         (output_a_rotate): Tweak a comment.
5561         * config/h8300/h8300.md (*rotlqi3_1): Change to rotlqi3_1.
5562         (*rotlhi3_1): Change to rotlhi3_1.
5563         (*rotlsi3_1): Change to rotlsi3_1.
5564
5565 2004-02-18  Richard Earnshaw  <rearnsha@arm.com>
5566
5567         PR target/13866
5568         * arm.c (load_multiple_operation): Don't insist that the source reg
5569         of a post-increment component is the same as the destination.
5570         (store_multiple_operation): Likewise.
5571
5572 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
5573
5574         * config/h8300/h8300.md: Move movsf patterns into one section
5575         of the file.
5576
5577 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
5578
5579         * cfgloop.h, cfgloopanal.c, cpplex.c, except.h, loop-init.c,
5580         loop-unroll.c, scan-decls.c, scan.h, stor-layout.c,
5581         xcoffout.c, xcoffout.h, config/arm/mmintrin.h,
5582         config/mips/linux64.h, config/pa/pa-64.h,
5583         config/rs6000/aix51.h, config/rs6000/aix52.h,
5584         config/rs6000/spe.md, config/sparc/linux.h,
5585         config/sparc/linux64.h: Update copyright.
5586
5587 2004-02-18  Kazu Hirata  <kazu@cs.umass.edu>
5588
5589         * config/h8300/h8300.md: Move push patterns into one
5590         section of the file.
5591
5592 2004-02-18  Mark Mitchell <mark@codesourcery.com>
5593
5594         PR c++/11326
5595         * config/ia64/ia64.c (ia64_struct_value_rtx): Cope with NULL
5596         fntype.
5597
5598 2004-02-18  Paul Brook  <paul@codesourcery.com>
5599
5600         * rtlanal.c (rtx_varies_p): Return 0 for NULL_RTX
5601
5602 2004-02-18  Paul Brook  <paul@codesourcery.com>
5603
5604         PR debug/12934
5605         * dwarf2out.c (loc_descriptor_from_tree): Handle
5606         EXPR_WITH_FILE_LOCATION.
5607
5608 2004-02-18  Jakub Jelinek  <jakub@redhat.com>
5609
5610         * config/i386/i386.md (zero_extendqidi2, zero_extendqidi2,
5611         testdi_1_rex64, anddi_2, xordi_1_rex64, xordi_2_rex64): Remove
5612         trailing whitespace from instructions.
5613
5614 2004-02-17  Geoffrey Keating  <geoffk@apple.com>
5615
5616         * configure.ac: When generating auto-build.h, pass
5617         --enable-languages to the sub-configure.
5618         Put quotes around ${program_transform_name} when generating
5619         name of as, ld, nm, objdump.
5620         * configure: Regenerate.
5621
5622 2004-02-17  Matt Kraai  <kraai@alumni.cmu.edu>
5623
5624         * Makefile.in (s-check, s-config, s-conditions, s-flags)
5625         (s-codes, s-constants, s-emit, s-recog, s-opinit, s-extract)
5626         (s-peep, s-attr, s-attrtab, s-output, s-genrtl, s-modes)
5627         (s-preds, s-iov): Do not depend on move-if-change.
5628
5629 2004-02-17  James E Wilson  <wilson@specifixinc.com>
5630
5631         * caller-save.c (insert_restore): Pass mem through copy_rtx.
5632         (insert_save): Likewise.
5633
5634 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5635
5636         * config/h8300/h8300.c (h8300_emit_stack_adjustment): Fix a
5637         warning.
5638
5639 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5640
5641         * config/h8300/h8300.md (*one_complsi2_h8300): Change to
5642         *one_cmplsi2_h8300.
5643         (*one_complsi2_h8300hs): Change to *one_cmplsi2_h8300hs.
5644
5645 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5646
5647         * config/h8300/h8300-protos.h: Update the prototype of
5648         fix_bit_operand().
5649         * config/h8300/h8300.c (fix_bit_operand): Remove the second
5650         argument "what".
5651         * config/h8300/h8300.md: Update all callers.
5652
5653 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5654
5655         * config/h8300/h8300.c (fix_bit_operand): Change the name of
5656         the last argument to "code" from "type".
5657
5658 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5659
5660         * config/h8300/h8300.c: Remove an extern declaration of
5661         rtx_equal_function_value_matters.
5662
5663 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5664
5665         * config/h8300/h8300.c (fix_bit_operand): Don't generate insns
5666         by hand.
5667         * config/h8300/h8300.md (*andqi3_1): Change to andqi3_1.
5668         (*iorqi3_1): Change to iorqi3_1.
5669         (*xorqi3_1): Change to xorqi3_1.
5670
5671 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5672
5673         * c-common.c, cfghooks.c, rtlanal.c, varasm.c: Fix comment
5674         typos.
5675
5676 2004-02-17  Jan Hubicka  <jh@suse.cz>
5677
5678         * i386.c (x86_prologue_using_move, x86_epilogue_using_move): Disable for P4.
5679
5680 2004-02-18  Alan Modra  <amodra@bigpond.net.au>
5681
5682         PR optimization/14119
5683         * combine.c (try_combine): When attemting to fix unrecognized insns,
5684         don't delete SETs marked with REG_EH_REGION notes.
5685
5686 2004-02-17  Ulrich Weigand  <uweigand@de.ibm.com>
5687
5688         * combine.c (simplify_if_then_else): Do not replace
5689         (if_then_else (ne reg 0) (0) (const_int)) by (reg) if the
5690         modes differ.
5691
5692 2004-02017  Steven Bosscher  <stevenb@suse.de>
5693
5694         * (c-decl.c, c-semantics.c, calls.c, cgraph.c, cgraphunit.c,
5695         function.c, integrate.c, print-tree.c, toplev.c, tree-optimize.c,
5696         tree.h): Replace DECL_SAVED_INSNS with DECL_STRUCT_FUNCTION.
5697         * ada/utils.c: Likewise.
5698         * cp/decl.c: Likewise.
5699         * f/com.c: Likewise.
5700         * java/class.c: Likewise.
5701
5702 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5703
5704         * config/h8300/h8300.md: Fix comment typos.
5705
5706 2004-02-17  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5707
5708         * config/mips/t-iris6gld: Renamed to ...
5709         * config/mips/t-irix-gld: ... this.
5710         * config.gcc (mips-sgi-irix6*): Reflect this
5711         (mips-sgi-irix5*): Use it with GNU ld.
5712
5713         * config/mips/irix6-crti.asm, config/mips/irix6-crtn.asm: Renamed
5714         to ...
5715         * config/mips/irix-crti.asm, config/mips/irix-crtn.asm: ... this.
5716         * config/mips/t-irix-gld: Reflect this.
5717         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
5718
5719         * config/mips/iris5gld.h: New file.
5720         * config.gcc (mips-sgi-irix5*): Use it with GNU ld.
5721         Only use collect2 without gas.
5722
5723         * config/mips/iris6.h (IRIX6_STARTFILE_SPEC, IRIX6_ENDFILE_SPEC):
5724         Renamed to IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
5725         (STARTFILE_SPEC, ENDFILE_SPEC, SUBTARGET_EXTRA_SPECS): Reflect this.
5726         * config/mips/iris6gld.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise.
5727
5728         * config/mips/iris6.h (SUBTARGET_EXTRA_SPECS): Moved ...
5729         * config/mips/iris5.h: ... here.
5730
5731         * config/mips/iris5.h (STARTFILE_SPEC, ENDFILE_SPEC): Renamed to
5732         IRIX_STARTFILE_SPEC, IRIX_ENDFILE_SPEC.
5733         (STARTFILE_SPEC, ENDFILE_SPEC): Define.
5734
5735         * config/mips/iris5gas.h (STARTFILE_SPEC, ENDFILE_SPEC): Simplify
5736         using irix_startfile_spec, irix_endfile_spec.
5737
5738 2004-02-16  Gunther Nikl  <gni@gecko.de>
5739
5740         * config/m68k/m68k.c: Remove obsolete support for HPUX_ASM.
5741
5742 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5743
5744         * config/h8300/h8300.c (h8300_expand_prologue): Don't generate
5745         insns by hand.
5746
5747 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5748
5749         * cfghooks.c (split_edge): Speed up updating of dominators.
5750
5751 2004-02-17  Mark Mitchell  <mark@codesourcery.com>
5752
5753         PR c++/11326
5754         * c-common.c (flag_abi_version): Remove.
5755         * c-common.h (flag_abi_version): Likewise.
5756         * c-opts.c (c_common_handle_option): Remove OPT_fabi_version case.
5757         * c.opt (fabi-version): Remove.
5758         * calls.c (expand_call): Always pass a function type to
5759         struct_value_rtx.  Use convert_memory_address.
5760         * common.opt (fabi-version): Add it.
5761         * flags.h (flag_abi_version): Likewise.
5762         (abi_version_at_least): New macro.
5763         * opts.c (common_handle_option): Add OPT_fabi_version.
5764         * toplev.c (flag_abi_version): Define it.
5765         * config/ia64/ia64.c (ia64_struct_retval_addr_is_first_parm_p):
5766         New function.
5767         (ia64_output_mi_thunk): Use it.
5768         (ia64_struct_value_rtx): Likewise.
5769
5770 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5771
5772         * config/h8300/h8300.c (h8300_emit_stack_adjustment):
5773         Don't generate insns by hand.
5774
5775 2004-02-17  Andrew Pinski  <pinskia@physics.uc.edu>
5776
5777         PR c++/14178
5778         * doc/invoke.texi (fabi-version): The default is 2 now.
5779
5780 2004-02-17  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5781
5782         * loop-iv.c: New file.
5783         * Makefile.in (loop-iv.o): New.
5784         * basic_block.h (FOR_BB_INSNS, FOR_BB_INSNS_REVERSE): New macros.
5785         * cfgloop.c (fill_sons_in_loop, get_loop_body_in_dom_order,
5786         num_loop_branches): New functions.
5787         * cfgloop.h (get_loop_body_in_dom_order, num_loop_branches,
5788         iv_analysis_loop_init, iv_get_reaching_def, iv_analyse, get_iv_value,
5789         find_simple_exit, iv_number_of_iterations, iv_analysis_done,
5790         get_simple_loop_desc, free_simple_loop_desc): Declare.
5791         (simple_loop_desc): New inline function.
5792         (struct rtx_iv, struct niter_desc): New.
5793         * cfgloopmanip.c (loopify): Specify semantics more precisely.
5794         * expr.c (force_operand): Handle subregs of expressions created by
5795         loop unroller.
5796         * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Move
5797         parts of the initialization to toplev.c
5798         * loop-unroll.c (loop_exit_at_end_p): New.
5799         (unroll_and_peel_loops): Call iv_analysis_done.
5800         (decide_peel_once_rolling, decide_peel_completely,
5801         decide_unroll_stupid, decide_unroll_constant_iterations,
5802         decide_unroll_runtime_iterations, decide_peel_simple,
5803         peel_loop_simple, unroll_loop_stupid, unroll_loop_constant_iterations,
5804         unroll_loop_runtime_iterations): Use new simple loop analysis.
5805         * loop-unswitch.c (compare_and_jump_seq): New.
5806         (may_unswitch_on_p): Renamed to ...
5807         (may_unswitch_on): Use new iv analysis.
5808         (reversed_condition): Export.
5809         (unswitch_single_loop, unswitch_loop): Use new iv analysis.
5810         * predict.c (estimate_probability): Use new simple loop analysis.
5811         * rtl.h (get_mode_bounds, reversed_condition,compare_and_jump_seq,
5812         canon_condition, simplify_using_condition): Declare.
5813         * stor-layout.c (get_mode_bounds): New.
5814         * toplev.c (rest_of_handle_loop2): Some parts of
5815         initialization/finalization moved here from loop-init.c.
5816
5817 2004-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5818
5819         * config/h8300/h8300.h (FIXED_REGISTERS): Add the soft frame
5820         pointer.
5821         (CALL_USED_REGISTERS): Likewise.
5822         (REG_ALLOC_ORDER): Likewise.
5823         (REG_CLASS) <GENERAL_REGS>: Likewise.
5824
5825 2004-02-16  Geoffrey Keating  <geoffk@apple.com>
5826
5827         * doc/md.texi (Insn Canonicalizations): Document left-chaining
5828         in associative operators.
5829         * rtlanal.c (commutative_operand_precedence): Create some new
5830         variables.  Prefer a commutative operand on the left, then
5831         binary expressions, then NEG and NOT.
5832
5833 2004-02-16  Matthias Klose  <doko@debian.org>
5834
5835         * config/t-slibgcc-elf-ver: Define SHLIB_NAME and SHLIB_SONAME
5836         in terms of SHLIB_SOVERSION.
5837         * config/m68k/t-slibgcc-elf-ver: New file.
5838         * config/pa/t-slibgcc-elf-ver: New file.
5839         * config.gcc (m68k-linux, parisc-linux): Use them when not
5840         sjlj exceptions are not configured.
5841
5842 2004-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
5843
5844         * config/sparc/sparc.c (get_pc_symbol_name): Mark with GTY(()).
5845
5846 2004-02-16  Zack Weinberg  <zack@codesourcery.com>
5847
5848         * sdbout.c (sdb_debug_hooks): Correct the type_decl entry.
5849
5850 2004-02-16  Joseph S. Myers  <jsm@polyomino.org.uk>
5851
5852         * doc/sourcebuild.texi: Mention backends.html.
5853
5854 2004-02-16  Kazu Hirata  <kazu@cs.umass.edu>
5855
5856         * c-decl.c, c-ppoutput.c, cpphash.h, cpplib.h, dbxout.c,
5857         line-map.c, line-map.h, var-tracking.c: Fix comment
5858         formatting.
5859
5860 2004-02-16  Richard Henderson  <rth@redhat.com>
5861
5862         * cse.c (cse_insn): Don't lose REG_NON_LOCAL_GOTO note.
5863
5864         * fold-const.c (operand_equal_p): Fix VECTOR_CST comparison.
5865
5866 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
5867
5868         * config/h8300/h8300.md: Remove unnecessary parallels from
5869         all define_insn and define_split patterns.
5870
5871 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
5872
5873         * config/h8300/h8300.md: Remove explicit (set_attr "cc"
5874         "clobber").
5875
5876 2004-02-15  Bernardo Innocenti  <bernie@develer.com>
5877
5878         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Restore support for
5879         '%#'.
5880
5881 2004-02-15  Kazu Hirata  <kazu@cs.umass.edu>
5882
5883         * config/ia64/ia64.c, config/mips/mips.c,
5884         config/mmix/mmix-modes.def: Fix comment typos.
5885
5886 2004-02-15  Roger Sayle  <roger@eyesopen.com>
5887
5888         * c-common.h (GET_DIRECTIVE_LINE): Remove unused macro.
5889         (get_directive_line): Remove unused function prototype.
5890
5891 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
5892
5893         * tree-inline.c (copy_body_r): Do not replace ret_label.
5894
5895 2004-02-14  Jan Hubicka  <jh@suse.cz>
5896
5897         * i386.c (x86_four_jump_limit): New variable.
5898         (k8_avoid_jump_misspredicts): Rename to ...
5899         (ix86_avoid_jump_misspredicts): .. this one.
5900         (ix86_pad_returns): Break out from ...
5901         (ix86_reorg): ... this one; do ix86_avoid_jump_misspredicts when asked
5902         to.
5903         * i386.h (TARGET_FOUR_JUMP_LIMIT): New macro.
5904
5905 2004-02-14  Josef Zlomek  <zlomekj@suse.cz>
5906
5907         * emit-rtl.c (set_decl_incoming_rtl): Check whether the 0th element of
5908         PARALLEL is NULL.
5909
5910 2004-02-14  Per Bothner  <per@bothner.com>
5911
5912         * fix-header.c (line_table):  Move local variable in main to global.
5913         * scan.h (line_table):  Use it.
5914         * scan-decls.c (scan_decls):  Need to call linemap_lookup on token's
5915         line (recently renamed to src_loc) before calling recognized_function.
5916
5917 2004-02-14  Matt Kraai  <kraai@alumni.cmu.edu>
5918
5919         * Makefile.in: Fix comment typos.
5920
5921 2004-02-14  Olivier Hainque  <hainque@act-europe.fr>
5922
5923         * loop.c (check_dbra_loop): Use gen_int_mode instead of GEN_INT
5924         for start_value when it is directly moved into reg, and factorize
5925         the retrieval of GET_MODE (reg).
5926
5927 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
5928
5929         * config/mips/mips-protos.h (mips_load_got_page): Delete.
5930         (mips_load_got_global): Delete.
5931         (mips_gotoff_page): Declare.
5932         * config/mips/mips.md (UNSPEC_LOAD_GOT): New constant.
5933         (*xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i): Build an
5934         UNSPEC_LOAD_GOT pattern rather than a MEM.
5935         (*load_got[sd]i): New patterns.
5936         * config/mips/mips.c (mips_got_alias_set, mips_load_got): Delete.
5937         (mips_load_got_page, mips_load_got_global): Delete.
5938         (mips_gotoff_page): New function.
5939         (override_options): Don't initialize mips_got_alias_set.
5940
5941 2004-02-14  Richard Sandiford  <rsandifo@redhat.com>
5942
5943         * config/mips/mips.h (MASK_DEBUG_[ABEFI], TARGET_DEBUG_[ABEFI]_MODE)
5944         (TARGET_MIPS4100, TARGET_MIPS4300, TARGET_MIPS4KC, TARGET_MIPS5KC)
5945         (TARGET_SB1, TUNE_SB1, TUNE_SR71K, BIGGEST_MAX_ARGS_IN_REGISTERS)
5946         (GO_PRINTF, GO_PRINTF2, GO_DEBUG_RTX, DFMODE_NAN, SFMODE_NAN): Delete.
5947         (TARGET_SWITCHES): Remove MASK_DEBUG_[ABEFI].
5948         * config/mips/mips.c: Fix some overly-long lines.
5949         (SINGLE_WORD_MODE_P, PIC_OFFSET_TABLE_MASK): Delete.
5950         (init_cumulative_args): Remove TARGET_DEBUG_E_MODE handling.
5951
5952 2004-02-13  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
5953
5954         * configure.ac: Search for as, ld below libexec/gcc.
5955         * configure: Regenerate.
5956
5957 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
5958
5959         * config/arm/mmintrin.h (_mm_setwcx): Reverse arguments in call to
5960         __builtin_arm_setwcx ().
5961         * config/arm/arm.c (arm_expand_builtin): Generate operands
5962         correctly and reverse their order in call to gen_iwmmxt_tmcr ().
5963
5964 2004-02-14  Ben Elliston  <bje@wasabisystems.com>
5965
5966         * config/arm/arm.c (bdesc_2arg): Correct builtin names "wmulsh"
5967         and "wmuluh" to "wmulsm" and "wmulum", respectively.
5968         * config/arm/arm.h (enum arm_builtins): Rename enumerators to
5969         ARM_BUILTIN_WMULSM and ARM_BUILTIN_WMULUM.
5970         * config/arm/mmintrin.h (_mm_mulhi_pi16): Update intrinsic call.
5971         (_mm_mulhi_pu16): Likewise.
5972
5973 2004-02-13  Zack Weinberg  <zack@codesourcery.com>
5974
5975         * xcoffout.c (xcoff_assign_fundamental_type_number): Check
5976         DECL_NAME != 0 before dereferencing.
5977
5978 2004-02-13  Ulrich Weigand  <uweigand@de.ibm.com>
5979
5980         * config/s390/s390-protos.h (s390_output_symbolic_const): Remove.
5981         (s390_output_addr_const_extra): Declare.
5982         (s390_output_pool_entry): Remove FILE * argument.
5983         * config/s390/s390.c (s390_output_symbolic_const): Remove.
5984         (s390_output_addr_const_extra): New function.
5985         (print_operand_address): Call output_addr_const instead of
5986         s390_output_symbolic_const.
5987         (print_operand): Likewise.
5988         (s390_output_pool_entry): Use assemble_integer for symbolic constants.
5989         Remove FILE * argument.
5990         * config/s390/s390.h (OUTPUT_ADDR_CONST_EXTRA): Define.
5991         * config/s390/s390.md ("*pool_entry"): Adapt s390_output_pool_entry
5992         call.
5993
5994 2004-02-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
5995
5996         * cfgloopanal.c (mark_irreducible_loops): Rewriten.
5997         (struct edge, struct vertex, struct graph): New.
5998         (dump_graph, new_graph, add_edge, dfs, check_irred, for_each_edge,
5999         free_graph): New functions.
6000
6001 2004-02-12  Chris Demetriou  <cgd@broadcom.com>
6002
6003         * config/mips/mips.md (casesi_internal, casesi_internal_di):
6004         Use ".set macro" to avoid warnings about multi-instruction
6005         macros, since they're intentional.
6006
6007 2004-02-12  Geoffrey Keating  <geoffk@apple.com>
6008
6009         * config/darwin.h: Add include guards.  Remove old, now incorrect,
6010         comment about STANDARD_EXEC_PREFIX.
6011
6012         * Makefile.in (install-man): Use $(CPP_INSTALL_NAME) and
6013         $(GCOV_INSTALL_NAME) to install manpages.  Remove generic rule
6014         for installing .1 manpages.  Add rules for installing cpp
6015         and gcov manpages under their installed names.
6016
6017 2004-02-12  Alexandre Oliva  <aoliva@redhat.com>
6018
6019         * configure.ac (gcc_cv_ld): Don't set to LD if target is not
6020         host, but try LD_FOR_TARGET first.
6021         * configure: Rebuilt.
6022
6023 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
6024
6025         * dbxout.c: Move declaration of dbxout_type_decl outside
6026         #ifdef DBX_DEBUGGING_INFO.
6027         * c-parse.in: Don't give the asmdef production a type.
6028
6029 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
6030
6031         * debug.h (struct gcc_debug_hooks): Add type_decl field.
6032         (debug_nothing_tree_int): Prototype.
6033         (dwarf_debug_hooks): Delete, unused.
6034         * debug.c (do_nothing_debug_hooks): Update.
6035         (debug_nothing_tree_int): New function.
6036         * langhooks.h (struct lang_hooks_for_decls):
6037         Remove builtin_type_decls field.
6038         * langhooks-def.h (LANG_HOOKS_BUILTIN_TYPE_DECLS): Delete.
6039         (LANG_HOOKS_DECLS): Update.
6040         * toplev.c (rest_of_decl_compilation, rest_of_type_compilation):
6041         Use debug_hooks->type_decl.
6042         * dbxout.c (preinit_symbols): New static.
6043         (dbx_debug_hooks, xcoff_debug_hooks): Update.
6044         (dbxout_init): Don't call DBX_OUTPUT_STANDARD_TYPES or
6045         lang_hooks.decls.builtin_type_decls.  Do scan preinit_symbols
6046         for symbols to output.
6047         (dbxout_type_decl): New function.
6048         (dbxout_symbol): If called before dbxout_init has run, queue
6049         the symbol for later.  Apply DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER
6050         to TYPE_DECLs before emitting them.
6051         * xcoffout.c (assign_type_number): Delete.
6052         (xcoff_type_numbers): New static table.
6053         (xcoff_assign_fundamental_type_number): New function.
6054         * xcoffout.h: Define DBX_ASSIGN_FUNDAMENTAL_TYPE_NUMBER, not
6055         DBX_OUTPUT_STANDARD_TYPES.  Remove unnecessary #ifdefs.
6056         * sdbout.c: Include varray.h.
6057         (deferred_global_decls): New static.
6058         (sdb_debug_hooks): Update.
6059         (sdbout_global_decl): If we can't emit something right now,
6060         remember it in deferred_global_decls.
6061         (sdbout_finish): Just scan deferred_global_decls; don't call getdecls.
6062         (sdbout_init): Initialize deferred_global_decls.
6063         * Makefile.in: Update dependencies of sdbout.o.
6064         * dwarf2out.c (dwarf2out_type_decl): New function.
6065         (dwarf2_debug_hooks): Update.
6066         * vmsdbgout.c (vmsdbg_debug_hooks): Update.
6067         * c-decl.c (getdecls): Just return 0.
6068         (check_for_loop_decls): Don't use getdecls.
6069         (record_builtin_type): Call debug_hooks->type_decl on the TYPE_DECL.
6070         * c-objc-common.c (c_objc_common_finish_file): Don't use getdecls.
6071
6072 2004-02-12  Ulrich Weigand  <uweigand@de.ibm.com>
6073
6074         * config/s390/s390.c (s390_sched_reorder2): Remove.
6075         (TARGET_SCHED_REORDER2): Do not redefine.
6076
6077 2004-02-12  Zack Weinberg  <zack@codesourcery.com>
6078
6079         * c-parse.in (maybe_type_qual): Delete.
6080         (maybe_volatile, simple_asm_expr, asmdef, asm_stmt)
6081         (asm_argument): New grammar rules.
6082         (extdef_1): Use asmdef.
6083         (maybeasm): Move down with other asm rules; use simple_asm_expr.
6084         (xexpr): Move up with other expression rules.
6085         (stmt): Use asm_stmt.
6086
6087         * c-typeck.c (build_asm_expr): New function - body mostly
6088         pulled from build_asm_stmt.
6089         (build_asm_stmt): Just handle tacking on the volatile qualifier.
6090         * c-tree.h (build_asm_expr, build_asm_stmt): Update prototypes.
6091
6092 2004-02-12  Richard Sandiford  <rsandifo@redhat.com>
6093
6094         PR bootstrap/13617
6095         * config/mips/mips-protos.h (mips_output_aligned_decl_common): Declare.
6096         (mips_declare_object): Make variadic.
6097         * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Use
6098         mips_output_aligned_decl_common.
6099         * config/mips/mips.c (mips_output_aligned_decl_common): New function.
6100         (mips_declare_object): Make variadic.
6101
6102 2004-02-12  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
6103
6104         * function.c (update_epilogue_consts): Teach about binary operations.
6105
6106         * emit-rtl.c (set_mem_attributes_minus_bitpos): Don't kill
6107         previous MEM_VOLATILE in REF.
6108         * function.c (fixup_var_refs): Save volatile_ok and set to 1.
6109         * expr.c (emit_block_move_via_movstr): Save and restore volatile_ok.
6110
6111 2004-02-12  Gunther Nikl  <gni@gecko.de>
6112
6113         * config.gcc: Restore support for m68k-openbsd.
6114
6115 2004-02-12  Jan Hubicka  <jh@suse.cz>
6116
6117         * tree-optimize.c (tree_rest_of_compilation): Do not release
6118         DECL_ARGUMENTS.
6119
6120 2004-02-11  Matt Kraai  <kraai@alumni.cmu.edu>
6121
6122         * doc/install.texi: Fix the spelling of "explicitly".
6123
6124 2004-02-11  Eric Christopher  <echristo@redhat.com>
6125
6126         * cppcharset.c (_cpp_interpret_string_notranslate): Rename and
6127         duplicate argument structure of cpp_interpret_string.
6128         * cpphash.h: Move prototype...
6129         * cpplib.h: Here.
6130         * cpplib.c: Fix calls to match new function signature.
6131
6132 2004-02-11  Joseph S. Myers  <jsm@polyomino.org.uk>
6133
6134         PR c/456
6135         * cppexp.c (num_binary_op): Don't allow comma operators in #if
6136         constant expressions at all outside C99 mode if pedantic.
6137
6138 2004-02-11  Uros Bizjak  <uros@kss-loka.si>
6139
6140         * optabs.h (enum optab_index): Add new OTI_log10 and OTI_log2.
6141         (log10_optab, log2_optab): Define corresponding macros.
6142         * optabs.c (init_optabs): Initialize log10_optab and log2_optab.
6143         * genopinit.c (optabs): Implement log10_optab and log2_optab
6144         using log10?f2 and log2?f2 patterns.
6145         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LOG10{,F,L}
6146         using log10_optab, and BUILT_IN_LOG2{,F,L} using log2_optab.
6147         (expand_builtin): Expand BUILT_IN_LOG10{,F,L} and BUILT_IN_LOG2{,F,L}
6148         using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
6149
6150         * config/i386/i386.md (log10sf2, log10df2, log10xf2, log2sf2,
6151         log2df2, log2xf2): New patterns to implement log10, log10f, log10l,
6152         log2, log2f and log2l built-ins as inline x87 intrinsics.
6153
6154 2004-02-11  Richard Henderson  <rth@redhat.com>
6155
6156         PR target/1532
6157         * flow.c (insn_dead_p): A clobber of a dead hard register is a
6158         dead insn after reload.
6159
6160 2004-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
6161
6162         * tree.h (frame_base_decl): Add GTY marker.
6163         * var-tracking.c (frame_base_decl): Likewise.
6164
6165 2004-02-11  Daniel Berlin  <dberlin@dberlin.org>
6166
6167         * dwarf2out.c (output_loc_list): Remove no longer necessary, and now
6168         incorrect, hunk.
6169         (add_location_or_const_value_attribute): Use text_section_label,
6170         not TEXT_SECTION_NAME.
6171
6172 2004-02-11  Per Bothner  <per@bothner.com>
6173
6174         Represent column numbers using line-map's source_location.
6175         The "next available source_location" is now managed internally by
6176         line-maps.c rather than by clients.
6177         * line-map.h (struct line_map):  New field column_bits.
6178         <from_line>:  Rename field to start_location.
6179         (struct line_maps):  New fields highest_location and max_column_hint.
6180         (linemap_check_files_exited):  New declaration.
6181         (linemap_line_start):  New declaration.
6182         (linemap_add):  Remove from_line parameter; use highest_location field.
6183         (SOURCE_LINE, LAST_SOURCE_LINE):  Modify to use column_bits.
6184         (SOURCE_COLUMN, LAST_SOURCE_LINE_LOCATION):  New macros.
6185         (CURRENT_LINE_MAP):  Remove macro.
6186         (linemap_position_for_column):  New inline function.
6187         * line-map.c (linemap_init):  Clear new fields.
6188         (linemap_check_files_exited):  New function, extracted from ...
6189         (linemap_free):  Use linemap_check_files_exited.
6190         (linemap_add):  Remove from_line parameter.  Various updates.
6191         (linemap_line_start):  New function.
6192         (linemap_lookeup):  Update for new field names.
6193         * cpphash.h (struct cpp_reader) <map>:  Field removed.  Because
6194         linemap_position_for_column may unpredictably change the current map,
6195         it is cleaner and simpler for us to not cache it in cpp_reader.
6196         (struct cpp_buffer):  New sysp field.
6197         Changed warned_cplusplus_comments and from_stage3 to bitfields.
6198         * cppinit.c (cpp_read_min_file):  pfile->map no longer exists.
6199         * cpplib.c (do_line, do_linemarker, _cpp_do_file_change):  Get
6200         current map using linemap_lookup.
6201         (do_linemarker):  Also set buffer's sysp field.
6202         (destringize_and_run):  No longer need to decrement current line.
6203         * cppfiles.c (_cpp_stack_file):  Set sysp from and in buffer.
6204         (search_path_head, open_file_failed):  Use buffer's sysp.
6205         (cpp_make_system_header):  Get current map using linemap_lookup.
6206         Also set buffer's sysp flag.
6207         * cppmacro.c (_cpp_builtin_macro_text):  Likewise use linemap_lookup.
6208         * cpphash.h (CPP_INCREMENT_LINE):  New macro.
6209         (struct cpp_buffer):  Moved fields saved_cur, saved_rlimit to ...
6210         (struct cpp_reader):  ... and adding saved_line_base field.
6211         * cpptrad.c (_cpp_overlay_buffer, _cpp_remove_overlay):
6212         Update accordingly.  Don't adjust line.
6213         (_cpp_scan_out_logical_line):  Use CPP_INCREMENT_LINE.
6214         * cpphash.c (CPP_IN_SYSTEM_HEADER):  Replaced macro by ...
6215         (cpp_in_system_header):  ... new inline function, using buffer's sysp.
6216         * cpperror.c (_cpp_begin_message):  Update to use cpp_in_system_header.
6217         * cpplex.c (_cpp_lex_direct):  Likewise.
6218         * cppmacro.c (_cpp_builtin_macro_text):  Likewise.
6219         * cppmacro.c (_cpp_create_definition):  Use buffer's sysp field.
6220         * cpplib.h (struct cpp_token):  Rename line field to src_loc.
6221         Remove col field as it is now subsumed by src_loc.
6222         * cpperror.c:  Update various field, parameter, and macro names.
6223         (print_location):  If col==0, try SOURCE_COLUMN of line.
6224         (cpp_error):  Use cur_token's src_loc field, rather than line+col.
6225         * cpplib.c (do_diagnostic):  Token's src_loc fields replaces line+col.
6226         * cpplex.c (_cpp_process_line_notes, _cpp_lex_direct,
6227         _cpp_skip_block_comment):  Use CPP_INCREMENT_LINE.
6228         (_cpp_temp_token):  Replace cpp_token's line+col fields by src_loc.
6229         (_cpp_get_fresh_line):  Don't need to adjust line for missing newline.
6230         (_cpp_lex_direct):  Use linemap_position_for_column.
6231         * c-ppoutput.c (maybe_print_line, print_line):  Don't take map
6232         parameter.  Instead get it from the line_table global.  Adjust callers.
6233         (print):  Remove map field.  Replace line field to src_line.
6234         (init_pp_output, account_for_newlines, maybe_print_line):  Adjust.
6235         (cb_line_change):  Use SOURCE_COLUMN.  Minor optimizations.
6236         (pp_file_change):  Use MAIN_FILE_P since we cannot checked print.map.
6237         Use LAST_SOURCE_LINE_LOCATION to "catch up" after #include.
6238         * cpptrad.c (copy_comment):  Rename variable.
6239         * c-lex.c (map):  Remove static variable, for same reason we removed
6240         cpp_reader's map field.
6241         (cb_line_change, cb_def_pragma, cb_define, cb_undef):  Hence we need
6242         to call linemap_lookup.
6243         (cb_line_change):  Token's line field replaced by src_loc.
6244         (fe_file_change):  Use MAINFILE_P and LAST_SOURCE_LINE macros.
6245         Don't save new_map.
6246
6247         * cpphash.h, cpperror.c, cpplib.h:  Some renames of fileline to
6248         source_location.
6249
6250 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
6251
6252         * config/rs6000/altivec.md (*movv4si_internal): At least one
6253         operand must be register_operand.
6254         (*movv8hi_internal1): Likewise.
6255         (*movv16qi_internal1): Likewise.
6256         (*movv4sf_internal1): Likewise.
6257
6258 2004-02-10  Aldy Hernandez  <aldyh@redhat.com>
6259
6260         * config/rs6000/spe.md ("*movv2si_internal"): Check for register
6261         operand.
6262         (movv4hi_internal): Same.
6263         (movv2sf_internal): Same.
6264         (movv1di_internal): Same.
6265
6266 2004-02-11  Thiemo Seufer  <seufer@csv.ica.uni-stuttgart.de>
6267
6268         * config/mips/mips.h (TARGET_OLDABI): Define. Use TARGET_NEWABI and
6269         TARGET_OLDABI consistently.
6270         * config/mips/mips.c (function_arg,mips_setup_incoming_varargs,
6271         mips_va_arg,override_options,compute_frame_size,
6272         mips_initial_elimination_offset,mips16_fp_args,build_mips16_call_stub
6273         ,mips_return_in_memory,mips_strict_argument_naming): Use TARGET_NEWABI
6274         and TARGET_OLDABI consistently.
6275         * config/mips/mips.md (exception_receiver): Likewise.
6276         * config/mips/linux64.h: Likewise.
6277
6278 2004-02-11  Hartmut Penner  <hpenner@de.ibm.com>
6279
6280         * gcc/config/rs6000/rs6000.c (rs6000_override_options)
6281         Set AltiVec ABI and vrsave as default for ppc64 linux.
6282         (init_cumulative_args): Post error, if try to return
6283         value in AltiVec register without enable AltiVec.
6284         (function_arg_advance): Ditto for passing arguments.
6285
6286 2004-02-11  Richard Sandiford  <rsandifo@redhat.com>
6287
6288         * emit-rtl.c (mark_label_nuses): Check that a LABEL_REF refers to
6289         a label before updating its usage count.
6290
6291 2004-02-10  Matt Kraai  <kraai@alumni.cmu.edu>
6292
6293         * doc/install.texi: Remove extra cd.
6294
6295 2004-02-10  Ziemowit Laski  <zlaski@apple.com>
6296
6297         * c-common.c (vector_size_helper): Remove; call
6298         reconstruct_complex_type() instead.
6299         * tree.c (reconstruct_complex_type): New function
6300         (formerly vector_size_helper() in c-common.c).
6301         (make_vector): Make externally visible.
6302         * tree.h (reconstruct_complex_type, make_vector): Add prototypes.
6303
6304 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
6305
6306         * config/h8300/h8300-protos.h: Add a prototype for
6307         h8300_regs_ok_for_stm.
6308         * config/h8300/h8300.c (h8300_regs_ok_for_stm): New.
6309         * config/h8300/h8300.md (stm_h8300s_2_advanced,
6310         stm_h8300s_2_normal, stm_h8300s_2, stm_h8300s_3_advanced,
6311         stm_h8300s_3_normal, stm_h8300s_3, stm_h8300s_4_advanced,
6312         stm_h8300s_4_normal, stm_h8300s_4, ldm_h8300s_2_advanced,
6313         ldm_h8300s_2_normal, ldm_h8300s_2, ldm_h8300s_3_advanced,
6314         ldm_h8300s_3_normal, ldm_h8300s_3, ldm_h8300s_4_advanced,
6315         ldm_h8300s_4_normal, ldm_h8300s_4): Use
6316         h8300_regs_ok_for_stm().
6317
6318 2004-02-10  Danny Smith  <dannysmith@users.sourceforge.net>
6319
6320         PR c/14088
6321         * real.c (real_from_string): Look for 'X' as well as 'x' in
6322         hexfloat strings.
6323
6324 2004-02-10  Kazu Hirata  <kazu@cs.umass.edu>
6325
6326         * config/h8300/h8300.md: Remove an incorrect comment about
6327         peephole2.  Add comments.
6328
6329 2004-02-10  Josef Zlomek  <zlomekj@suse.cz>
6330
6331         PR/14058
6332         * emit-rtl.c (set_decl_incoming_rtl): New.
6333         * tree.h (set_decl_incoming_rtl): New.
6334         * function.c (assign_parms): Use set_decl_incoming_rtl for setting
6335         DECL_INCOMING_RTL.
6336         * ada/misc.c (adjust_decl_rtl): Likewise.
6337
6338 2004-02-10  Per Bothner  <per@bothner.com>
6339
6340         * c-opts.c (c_common_post_options):   Don't emit working directory
6341         in cpp output if -P was specified.
6342
6343 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
6344
6345         PR c/14092
6346         * fold-const.c (fold) <NEGATE_EXPR>: Convert result of
6347         negate_expr back to the original type.
6348
6349 2004-02-10  Alan Modra  <amodra@bigpond.net.au>
6350
6351         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Don't
6352         bump retaddr here.
6353
6354 2004-02-10  Paolo Bonzini  <bonzini@gnu.org>
6355
6356         * rtl.h (schedule_insns, schedule_ebbs, fix_sched_param,
6357         gen_lowpart_SUBREG): Move under the file in which they
6358         are actually declared.
6359
6360 2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>
6361
6362         * doc/sourcebuild.texi: Add libada documentation.
6363
6364         * doc/install.texi: Update documentation on Ada build, now
6365         that the GNAT lib and tools are built automatically.
6366
6367 2004-02-10  Richard Sandiford  <rsandifo@redhat.com>
6368
6369         * config/mips/mips.h (TARGET_GPWORD): Return false for TARGET_NEWABI
6370         && TARGET_IRIX.
6371
6372 2004-02-09  Ziemowit Laski  <zlaski@apple.com>
6373
6374         * objc/objc-act.c (get_super_receiver): Move '#ifdef OBJCPLUS'
6375         boundaries outside build_component_ref() call (a macro in ObjC++).
6376
6377 2004-02-09  Bob Wilson  <bob.wilson@acm.org>
6378
6379         * config/xtensa/xtensa-protos.h (xtensa_copy_incoming_a7): Update.
6380         (init_cumulative_args): Likewise.
6381         (a7_overlap_mentioned_p): Delete prototype.
6382         * config/xtensa/xtensa.c (struct machine_function): Replace
6383         incoming_a7_copied field with need_a7_copy and vararg_a7 flags.
6384         Add set_frame_ptr_insn field.
6385         (xtensa_emit_move_sequence): Update call to xtensa_copy_incoming_a7.
6386         (xtensa_copy_incoming_a7): Rewrite to check need_a7_copy flag and check
6387         if the operand is an argument in a7.  If so, copy a7 to a new pseudo
6388         at the function entry and replace the operand with the pseudo.
6389         (init_cumulative_args): Remove unused arguments.  Add new "incoming"
6390         argument and record this flag in CUMULATIVE_ARGS.
6391         (function_arg): Remove result_mode and special-case code to handle
6392         arguments in a7.  Instead, set need_a7_copy flag when there is an
6393         incoming argument in a7.
6394         (xtensa_expand_prologue): Remove code to search for set_frame_ptr insn
6395         and use the value recorded in cfun->machine->set_frame_ptr_insn.
6396         (xtensa_builtin_saveregs): Check for negative gp_left value.  Set
6397         need_a7_copy and vararg_a7 flags.  Use move_block_from_reg instead of
6398         special-case code.
6399         (a7_overlap_mentioned_p): Delete.
6400         * config/xtensa/xtensa.h (CUMULATIVE_ARGS): Add "incoming" flag.
6401         (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Remove useless
6402         arguments to init_cumulative_args and pass "incoming" flag instead.
6403         (BLOCK_REG_PADDING): Delete.
6404         * config/xtensa/xtensa.md (movdi, movsf, movdf): Remove unnecessary
6405         checks for reload_in_progress and reload_completed.  Update calls to
6406         xtensa_copy_incoming_a7.
6407         (ashlsi3): Rename existing insn to ashlsi3_internal.  Add expander
6408         to call xtensa_copy_incoming_a7.
6409
6410 2004-02-09  DJ Delorie  <dj@redhat.com>
6411
6412         * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): No
6413         longer modify standard_exec_prefix, standard_bindir_prefix, or
6414         standard_startfile_prefix.
6415
6416 2004-02-09  James E Wilson  <wilson@specifixinc.com>
6417
6418         PR c++/11295
6419         * c-common.c (c_expand_expr, case STMT_EXPR): Change expand_expr call
6420         to expand_expr_real call, and pass in alt_rtl as last argument.
6421
6422         PR libstdc++/5625
6423         * builtin-types.def (BT_WORD, BT_FN_WORD_PTR): New.
6424         * builtins.c (expand_builtin): Handle BUILT_IN_EXTEND_POINTER.
6425         * builtins.def (BUILT_IN_EXTEND_POINTER): New.
6426         * except.c (expand_builtin_extend_pointer): New.
6427         * except.h (expand_builtin_extend_pointer): Declare.
6428
6429 2004-02-09  David Edelsohn  <edelsohn@gnu.org>
6430
6431         * config/rs6000/rs6000.c (rs6000_emit_move): Remove splitting slow
6432         unaligned loads and stores.
6433
6434 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6435
6436         * config/mips/iris5.h (BSS_SECTION_ASM_OP): Define.
6437         * config/mips/iris6.h (BSS_SECTION_ASM_OP): Undef.
6438
6439         * config/mips/iris6.h (TARGET_ASM_NAMED_SECTION): Moved ...
6440         * config/mips/iris5.h: ... here.
6441         * config/mips/iris5gas.h (TARGET_ASM_NAMED_SECTION): Remove.
6442
6443         * config/mips/iris6.h (EXTRA_SECTION_FUNCTIONS): Move ...
6444         * config/mips/iris5.h: ... here.
6445
6446 2004-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6447
6448         * configure.ac: Remove default executable files before AC_PROG_CC.
6449         * configure: Regenerate.
6450
6451 2004-02-09  Kazu Hirata  <kazu@cs.umass.edu>
6452
6453         PR target/13721
6454         * config/h8300/h8300.c (byte_reg): Call abort() if asked to
6455         print a operand other than a register.
6456
6457 2004-02-09  Roger Sayle  <roger@eyesopen.com>
6458
6459         * fold-const.c (fold) <NOP_EXPR>: Use the original type conversion
6460         tree code rather than call fold_convert, which doesn't specify a
6461         default floating point to integer conversion.
6462
6463 2004-02-08  Bernardo Innocenti  <bernie@develer.com>
6464
6465         * config/m68k/m68k.c, config/m68k/m68k.md (SGS, SGS_CMP_ORDER): Remove
6466         code to support SGS assembler.  Reformat adjacent code where possible.
6467         * config/m68k/m68k.c (switch_table_difference_label_flag): Remove
6468         definition.
6469         * config/m68k/m68k.h (PRINT_OPERAND_PUNCT_VALID_P): Remove support
6470         for '%#'.
6471         * config/m68k/linux.h, config/m68k/m68k.c,
6472         * config/m68k/math-68881.h: Replace `%#' with `#' in inline asm
6473         macros and asm_printf() format strings.
6474         * config/m68k/m68kelf.h (ASM_OUTPUT_CASE_END): Remove macro definition.
6475         * config/m68k/linux.h: Update copyright.
6476         * config/m68k/linux.h, config/m68k/m68k.c: Remove traling whitespace.
6477
6478 2004-02-08  Andreas Schwab  <schwab@suse.de>
6479             Bernardo Innocenti  <bernie@develer.com>
6480
6481         * config/m68k/m68k.h (REGISTER_NAMES): Prefix each name with
6482         REGISTER_PREFIX.
6483         * (M68K_FP_REG_NAME): New macro to specify an alternate name for the
6484         frame pointer register, overridable by OS targets.
6485         * (M68K_REGNAME): Macro to obtain register name for asm output,
6486         eventually replacing %a6 with M68K_FP_REG_NAME.
6487         * config/m68k/coff.h (REGISTER_NAMES): Don't redefine.
6488         * config/m68k/linux.h (REGISTER_NAMES): Likewise.
6489         * config/m68k/m68kelf.h (REGISTER_NAMES): Likewise.
6490         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Likewise.
6491         * config/m68k/m68k.c: Use M68K_REGNAME(x) in place of reg_names[x].
6492
6493 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
6494
6495         * target-def.h (TARGET_STRUCT_VALUE_RTX): Define as
6496         hook_rtx_tree_int_null.
6497         * targhooks.c (default_struct_value_rtx): Remove.
6498         * targhooks.h: Remove the prototype for
6499         default_struct_value_rtx.
6500         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
6501         config/fr30/fr30.c, config/h8300/h8300.c, config/i386/i386.c,
6502         config/ip2k/ip2k.c, config/iq2000/iq2000.c,
6503         config/m32r/m32r.c, config/mcore/mcore.c, config/mips/mips.c,
6504         config/mn10300/mn10300.c, config/pdp11/pdp11.c,
6505         config/rs6000/rs6000.c, config/s390/s390.c,
6506         config/stormy16/stormy16.c, config/v850/v850.c,
6507         config/xtensa/xtensa.c (TARGET_STRUCT_VALUE_RTX): Remove.
6508         * doc/tm.texi (TARGET_STRUCT_VALUE_RTX): Document the default.
6509
6510 2004-02-08  Joseph S. Myers  <jsm@polyomino.org.uk>
6511
6512         * README.Portability: Change "ISO C89" to "ISO C90".
6513         * c-parse.in (primary, initelt): Likewise.
6514
6515 2004-02-08  Richard Sandiford  <rsandifo@redhat.com>
6516
6517         * real.c (encode_ibm_extended): Normalize the input value before
6518         converting it to a double.  Handle the case where a normal value
6519         rounds to infinity.
6520
6521 2004-02-08  Kazu Hirata  <kazu@cs.umass.edu>
6522
6523         * c-objc-common.c (c_cannot_inline_tree_fn): Fix a typo in a
6524         warning.
6525         * cse.c (preferrable): Change to preferable. Update all of its
6526         callers.
6527         * genautomata.c (ainsn): Change
6528         first_ainsn_with_given_equialence_num to
6529         first_ainsn_with_given_equivalence_num.  Update all of its
6530         references.
6531
6532 2004-02-08  Jan Hubicka  <jh@suse.cz>
6533
6534         * schedule-ebb.c (schedule_ebbs): Do not allocate reg life data.
6535
6536 2004-02-07  David Edelsohn  <edelsohn@gnu.org>
6537
6538         * function.c (assign_parms): Fix formatting.
6539
6540 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
6541
6542         * default.h (PROMOTE_PROTOTYPES): Remove.
6543         * system.h (PROMOTE_FUNCTION_RETURN, PROMOTE_PROTOTYPES,
6544         STRUCT_VALUE_REGNUM, SETUP_INCOMING_VARARGS,
6545         EXPAND_BUILTIN_SAVEREGS): Poison.
6546         * target-def.h (TARGET_PROMOTE_FUNCTION_RETURN): Define as
6547         hook_bool_tree_false.
6548         (TARGET_PROMOTE_PROTOTYPES): Likewise.
6549         * target.h: Replace SETUP_INCOMING_VARARGS with
6550         targetm.calls.setup_incoming_varargs().
6551         * targhooks.c (default_promote_function_return): Remove.
6552         (default_promote_prototypes): Likewise.
6553         (default_struct_value_rtx): Always abort().
6554         (default_expand_builtin_saveregs): Always print an error
6555         message.
6556         (default_setup_incoming_varargs): Do nothing.
6557         (default_pretend_outgoing_varargs_named): Don't depend on
6558         SETUP_INCOMING_VARARGS.
6559         * targhooks.h: Remove the prototype for
6560         default_promote_function_return and
6561         default_promote_prototypes.
6562
6563 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
6564
6565         * system.h (SHARED_SECTION_ASM_OP): Poison.
6566         * varasm.c (data_section): Don't use SHARED_SECTION_ASM_OP.
6567         * doc/tm.texi (SHARED_SECTION_ASM_OP): Remove.
6568
6569 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
6570
6571         Bug 13856
6572         * c-decl.c (diagnose_mismatched_decls): Only give special
6573         treatment when olddecl is DECL_BUILT_IN, if C_DECL_INVISIBLE
6574         is also true.
6575         (merge_decls): Don't clear DECL_BUILT_IN_CLASS and
6576         DECL_FUNCTION_CODE when defining a built-in function.
6577         Don't update DECL_ESTIMATED_INSNS.
6578         * dwarf2out.c (dwarf2out_decl): Don't ignore built-in
6579         FUNCTION_DECLs.
6580         * tree.h: Delete DECL_ESTIMATED_INSNS.
6581         * tree-inline.c (struct inline_data): Delete inlined_insns field.
6582         (expand_call_inline, optimize_inline_calls): Don't update
6583         DECL_ESTIMATED_INSNS nor inlined_insns.
6584         * cgraphunit.c (cgraph_analyze_function): Don't update
6585         DECL_ESTIMATED_INSNS.
6586
6587 2004-02-07  Zack Weinberg  <zack@codesourcery.com>
6588
6589         * c-common.c (shadow_warning): Delete.
6590         * c-common.h (free_parser_stacks, shadow_warning, sw_kind): Delete.
6591         * c-decl.c (warn_if_shadowing): Issue shadow warnings directly.
6592         * c-opts.c (c_common_parse_file): Don't call free_parser_stacks.
6593         * c-parse.in (free_parser_stacks): Delete.
6594
6595 2004-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
6596
6597         * Makefile.in, config/t-slibgcc-darwin, config/t-slibgcc-elf-ver,
6598         config/t-slibgcc-sld, config/mips/t-iris5-6, config/sh/t-linux:
6599         Use the top level mkinstalldirs, not the one in the gcc subdir.
6600         * mkinstalldirs: Remove (from the gcc subdir).
6601
6602 2004-02-07  Roger Sayle  <roger@eyesopen.com>
6603
6604         PR middle-end/13696
6605         * fold-const.c (fold_convert): New function to provide type
6606         conversion to the middle-end without using convert.
6607         (negate_expr, associate_trees, size_diffop, omit_one_operand,
6608         operand_equal_for_comparison_p, pedantic_omit_one_operand,
6609         invert_truthvalue, optimize_bit_field_compare, range_binop,
6610         decode_field_reference, make_range, build_range_check, unextend,
6611         fold_truthop, extract_muldiv_1, fold_mathfn_compare,
6612         fold_binary_op_with_conditional_arg, fold_inf_compare,
6613         fold_single_bit_test, fold, multiple_of_p): Replace all calls to
6614         convert with calls to fold_convert.
6615
6616 2004-02-07  Jan Hubicka  <jh@suse.cz>
6617
6618         * genrecog.c (find_operand): add extra argument stop.
6619         (validate_pattern): Verify that mach_dup is duplicating operand
6620         defined lexically earlier.
6621
6622 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
6623
6624         * config.gcc: Don't mention MAX_LONG_TYPE_SIZE.
6625         * system.h (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
6626         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Poison.
6627         * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
6628         config/ia64/ia64.h, config/ip2k/ip2k.h,
6629         config/iq2000/iq2000.h, config/mips/iris5.h,
6630         config/mips/mips.h, config/pa/pa-64.h, config/pa/pa.h,
6631         config/rs6000/aix51.h, config/rs6000/aix52.h,
6632         config/rs6000/darwin.h, config/rs6000/rs6000.h,
6633         config/s390/s390.h, config/sh/sh.h, config/sparc/freebsd.h,
6634         config/sparc/linux.h, config/sparc/linux64.h,
6635         config/sparc/netbsd-elf.h, config/sparc/sparc.h,
6636         config/xtensa/xtensa.h: Remove the definitions of
6637         MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, and/or
6638         MAX_WCHAR_TYPE_SIZE.
6639         * doc/tm.texi (MAX_LONG_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE,
6640         MAX_WCHAR_TYPE_SIZE, GCOV_TYPE_SIZE): Remove.
6641
6642 2004-02-07  Stephane Carrez  <stcarrez@nerim.fr>
6643
6644         PR bootstrap/13990
6645         * config/m68hc11/m68hc11.md ("doloop_end"): Pass dummy arguments to
6646         gen_rtx_NE.
6647
6648 2004-02-07  Josef Zlomek  <zlomekj@suse.cz>
6649
6650         * var-tracking.c (vt_add_function_parameters): Surround checkings by
6651         #ifdef ENABLE_CHECKING and #endif.
6652
6653 2004-02-07  Roger Sayle  <roger@eyesopen.com>
6654
6655         * fold-const.c (negate_expr_p, negate_expr): Optimize -(A+B) into
6656         either (-A)-B or (-B)-A, if A or B is easily negated respectively.
6657         (fold) <MINUS_EXPR>: Optimize (A*C) - (B*C) -> (A-B)*C for both
6658         integer types and floating point with unsafe_math_optimizations.
6659         Add similar optimization for (A*C1) - (A*C2) -> A*(C1-C2).
6660         Optimize A - B as A + (-B), if B is easily negated.
6661
6662 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
6663
6664         * c-ppoutput.c, cfganal.c, diagnostic.h, print-rtl.c,
6665         config/darwin.c, config/darwin.h, config/ia64/ia64-c.c,
6666         config/m32r/linux.h, config/rs6000/ppc64-fp.c,
6667         config/sparc/openbsd.h, doc/makefile.texi, doc/passes.texi:
6668         Update copyright.
6669
6670 2004-02-07  Kazu Hirata  <kazu@cs.umass.edu>
6671
6672         * c-ppoutput.c, var-tracking.c: Fix comment typos.
6673
6674 2004-02-06  James E Wilson  <wilson@specifixinc.com>
6675
6676         * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Only define for
6677         glibc 2.3 or better.
6678
6679 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
6680
6681         * doc/tm.texi (TARGET_FLOAT_LIB_COMPARE_RETURNS_BOOL): Change
6682         to FLOAT_LIB_COMPARE_RETURNS_BOOL.
6683
6684 2004-02-07  Alan Modra  <amodra@bigpond.net.au>
6685
6686         * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add darwin-ldouble.c.
6687         (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
6688         (SHLIB_MKMAP_OPTS): Delete.
6689         (TARGET_LIBGCC2_CFLAGS): Add -specs.
6690         (bispecs): Add rule.
6691         * config/rs6000/libgcc-ppc64.ver: New file.
6692         * config/rs6000/ppc64-fp.c (__fixtfdi, __floatditf): New functions.
6693         (__floatdidf, __floatdisf): Optimize multiply.
6694         (__fixunstfdi): New function.
6695         * config/rs6000/rs6000.c (rs6000_complex_function_value): Allow for
6696         real and imag parts larger than one register.
6697         (function_arg): Correct type of reg used when fp arg split partially
6698         to stack.
6699         * config/rs6000/darwin-ldouble.c: Protect with #if !_SOFT_FLOAT
6700         and __MACH__ or __powerpc64__.
6701
6702 2004-02-06  Roger Sayle  <roger@eyesopen.com>
6703             Ulrich Weigand  <uweigand@de.ibm.com>
6704
6705         * builtins.c (expand_builtin_signbit): Use extract_bit_field instead
6706         of gen_highpart or gen_lowpart when the floating point format is
6707         wider than the result mode.
6708
6709 2004-02-06  Andrew Pinski  <pinskia@physics.uc.edu>
6710
6711         * dwarf2out.c (loclabel_num): Move into #ifdef
6712         DWARF2_DEBUGGING_INFO.
6713
6714 2004-02-06  Ziemowit Laski  <zlaski@apple.com>
6715
6716         * objc/objc-act.c (build_super_template) the 'class' field of
6717         'struct _objc_super' shall be named 'super_class' #ifdef OBJCPLUS.
6718         (get_super_receiver): Likewise.
6719
6720 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
6721
6722         * reload1.c (check_eliminable_occurrences): Optimize the reset
6723         of can_eliminate.
6724         (eliminate_regs_in_insn): Likewise.
6725
6726 2004-02-06  Daniel Berlin <dberlin@dberlin.org>
6727             Josef Zlomek  <zlomekj@suse.cz>
6728
6729         * dwarf2out.c (struct gcc_debug_hooks): Call dwarf2out_begin_function
6730         at the beginning of function, call dwarf2out_var_location for
6731         NOTE_INSN_VAR_LOCATION note.
6732         (struct var_loc_node, struct var_loc_list_def, loclabel_num,
6733         decl_loc_table): New.
6734         (lookup_decl_loc): New function.
6735         (add_var_loc_to_decl): New function.
6736         (based_loc_descr): Added parameter can_use_fbreg, DW_OP_fbreg is used
6737         only if can_use_fbreg.
6738         (mem_loc_descriptor): Added parameter can_use_fbreg, pass it to other
6739         functions.
6740         (loc_descriptor): Likewise. Process VAR_LOCATION.
6741         (concat_loc_descriptor): Call loc_descriptor with can_use_fbreg == true.
6742         (loc_descriptor_from_tree): Call mem_loc_descriptor with
6743         can_use_fbreg == true.
6744         (add_location_or_const_value_attribute): Added parameter enum
6745         dwarf_attribute attr, generate attribute ATTR.  Create the location list.
6746         (add_bound_info): Call loc_descriptor with can_use_fbreg == true.
6747         (gen_formal_parameter_die): Call add_location_or_const_value_attribute
6748         with attr == DW_AT_location.
6749         (gen_subprogram_die): Generate the location list for DW_AT_frame_base
6750         if frame_base_decl is defined and has a location list.
6751         (gen_variable_die): Call add_location_or_const_value_attribute with
6752         attr == DW_AT_location.
6753         (dwarf2out_var_location): New function.
6754         (dwarf2out_begin_function): New function.
6755         (dwarf2out_init): Create decl_loc_table.
6756
6757 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
6758
6759         * loop.c (force_movables): Transitively increase the priorities of
6760         all insns forces by an insn, not just the first one.
6761
6762 2004-02-06  Josef Zlomek  <zlomekj@suse.cz>
6763             Daniel Berlin <dberlin@dberlin.org>
6764
6765         Josef Zlomek  <zlomekj@suse.cz>
6766         * Makefile.in (var-tracking.o): New.
6767         * common.opt (fvar-tracking): New.
6768         * flags.h (flag_var_tracking): New.
6769         * gengtype.c (adjust_field_rtx_def): NOTE_INSN_VAR_LOCATION was added.
6770         * opts.c (common_handle_option): Add OPT_fvar_tracking.
6771         * print-rtl.c (print_rtx): NOTE_INSN_VAR_LOCATION was added.
6772         * rtl.c (note_insn_name): Likewise.
6773         * rtl.def (VAR_LOCATION): New.
6774         * rtl.h (NOTE_VAR_LOCATION): New.
6775         (NOTE_VAR_LOCATION_DECL): New.
6776         (NOTE_VAR_LOCATION_LOC): New.
6777         (enum insn_note): NOTE_INSN_VAR_LOCATION was added.
6778         (variable_tracking_main): New exported function.
6779         * timevar.def (TV_VAR_TRACKING): New.
6780         * toplev.c (enum dump_file_index): Added DFI_vartrack.
6781         (dump_file): "vartrack" was added (-dV).
6782         (flag_var_tracking): New.
6783         (f_options): "var-tracking" was added.
6784         (rest_of_handle_variable_tracking): New function.
6785         (rest_of_compilation): Run variable tracking.
6786         (process_options): If user has not specified flag_var_tracking set it
6787         according to optimize, debug_info_level and debug_hooks.
6788         * tree.h (frame_base_decl): New.
6789         * var-tracking.c: New file.
6790         * config/ia64/ia64.c (ia64_flag_var_tracking): New variable.
6791         (ia64_override_options): Set flags to run variable tracking in machine
6792         dependent reorg instead of toplev.c.
6793         (ia64_reorg): Run variable tracking if wanted.
6794         * doc/invoke.texi: Mention variable tracking in -dV,
6795         add and -fvar-tracking.
6796         * doc/passes.texi: Added variable tracking pass.
6797
6798         Daniel Berlin <dberlin@dberlin.org>
6799         * debug.h (struct gcc_debug_hooks): Added var_location debug hook.
6800         * dbxout.c (dbx_debug_hooks): Likewise.
6801         (xcoff_debug): Likewise.
6802         * debug.c (do_nothing_debug_hooks): Likewise.
6803         * dwarf2out.c (dwarf2_debug_hooks): Likewise.
6804         * dwarfout.c (dwarf_debug_hooks): Likewise.
6805         * sdbout.c (sdb_debug_hooks): Likewise.
6806         * vmsdbgout.c (vmsdbg_debug_hooks): Likewise.
6807         * final.c (final_scan_insn): Call var_location debug hook for each
6808         NOTE_INSN_VAR_LOCATION.
6809
6810 2004-02-06  Jan Hubicka  <jh@suse.cz>
6811
6812         * flow.c (update_life_info): Allocate reg_deaths when called from
6813         scheudler.
6814         (attempt_auto_inc):  Update life ranges accordingly.
6815
6816 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
6817
6818         PR debug/11816
6819         * dwarf2out.c (gen_decl_die): Handle anonymous struct members.
6820
6821 2004-02-06  Ulrich Weigand  <uweigand@de.ibm.com>
6822
6823         * cfganal.c (flow_call_edges_add): Never split a libcall block.
6824
6825 2004-02-06  Daniel Berlin  <dberlin@dberlin.org>
6826
6827         * dwarf2out.c (output_loc_list): Don't use deltas if we have
6828         a separate line info table in use.
6829         Use the correct size for terminators.
6830         (output_die): Use offset, not delta.
6831
6832 2004-02-06  H.J. Lu  <hongjiu.lu@intel.com>
6833
6834         * doc/invoke.texi: Remove the pni option from -mfpmath=.
6835
6836 2004-02-06  Jan Hubicka  <jh@suse.cz>
6837
6838         * recog.c (split_all_insns): Do not update reg info.
6839         * regrename.c (regrename_optimize): Likewise.
6840         * toplev.c (rest_of_handle_reorder_blocks): Likewise.
6841         * flow.c (struct propagate_block_info): Add insn_num field.
6842         (reg_deaths): New array.
6843         (life_analysis): Free reg_deaths info.
6844         (allocate_reg_life_data): Allocate reg_deaths array.
6845         (propagate_one_insn): Use new array.
6846         (init_propagate_block): Initialize it.
6847         (free_propagate_block_info): Finish compuation of
6848         REG_LIVE_LENGTH
6849         (attempt_auto_inc): Sanity check that REG_INFO is not
6850         computed at same time.
6851         (mark_used_regs): Update new array.
6852
6853         * reg-stack.c (subst_stack_regs): Unshare clobbers before
6854         substitution.
6855
6856 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
6857
6858         * config/s390/s390.md (*extendsiqi2_short_displ): Change to
6859         *extendqisi2_short_displ.
6860
6861 2004-02-06  Alan Modra  <amodra@bigpond.net.au>
6862
6863         * doc/tm.texi (INIT_CUMULATIVE_ARGS): Update doco.
6864         * calls.c (expand_call): Pass n_named_args to INIT_CUMULATIVE_ARGS.
6865         (emit_library_call_value_1): Likewise pass nargs.
6866         * expr.c (block_move_libcall_safe_for_call_parm): Pass 3 here.
6867         * function.c (assign_parms): Pass -1 to INIT_CUMULATIVE_ARGS.
6868         * config/rs6000/rs6000.c (init_cumulative_args): Use n_named_args
6869         parameter instead of scanning TYPE_ARGS_TYPES to count args.
6870         * config/rs6000/rs6000-protos.h (init_cumulative_args): Update
6871         prototype.
6872         * config/rs6000/rs6000.h (INIT_CUMULATIVE_ARGS): Pass extra arg.
6873         (INIT_CUMULATIVE_INCOMING_ARGS): Set extra arg to 1000.
6874         (INIT_CUMULATIVE_LIBCALL_ARGS): Set extra arg to 0.
6875         * config/sh/sh.c (sh_output_mi_thunk): Pass 1 as n_named_args to
6876         INIT_CUMULATIVE_ARGS.
6877         * config/alpha/alpha.h (INIT_CUMULATIVE_ARGS): Update.
6878         * config/alpha/unicosmk.h, config/alpha/vms.h, config/arc/arc.h,
6879         config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h,
6880         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.h,
6881         config/h8300/h8300.h, config/i386/i386.h, config/i860/i860.h,
6882         config/ia64/ia64.h, config/ip2k/ip2k.h, config/iq2000/iq2000.h,
6883         config/iq2000/iq2000.c, config/m32r/m32r.h, config/m68hc11/m68hc11.h,
6884         config/m68k/m68k.h, config/mcore/mcore.h, config/mips/mips.h,
6885         config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h,
6886         config/pa/pa.h, config/pdp11/pdp11.h, config/s390/s390.h,
6887         config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h,
6888         config/v850/v850.h, config/vax/vax.h, config/xtensa/xtensa.h: Likewise.
6889
6890 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
6891
6892         * genemit.c (gen_exp) [CONST_INT]: Use const_int_rtx whenever
6893         possible.
6894
6895 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
6896
6897         * reload1.c (eliminate_regs_in_insn): If a set has a REG_EQUAL
6898         note containing (plus (reg) (const_int)), where reg is an
6899         eliminable reg, then perform the register elimination without
6900         depending on eliminate_regs().
6901
6902 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
6903
6904         * config/arc/arc.c (arc_return_in_memory): Check the return
6905         value of int_size_in_bytes against -1.  Don't check
6906         TREE_ADDRESSABLE.
6907         * config/avr/avr.c (avr_return_in_memory): Check the return
6908         value of int_size_in_bytes against -1.
6909         * config/ip2k/ip2k.c (ip2k_return_in_memory): Likewise.
6910         * config/m68hc11/m68hc11.c (m68hc11_return_in_memory):
6911         Likewise.
6912         * config/mcore/mcore.c (mcore_return_in_memory): Likewise.
6913         * config/stormy16/stormy16.c (xstormy16_return_in_memory):
6914         Likewise.
6915
6916 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
6917
6918         * config/frv/frv-protos.h: Remove the prototype for
6919         frv_setup_incoming_varargs.
6920         * config/frv/frv.c (TARGET_SETUP_INCOMING_VARARGS): New.
6921         (frv_setup_incoming_varargs): Make it static.
6922         * config/frv/frv.h (SETUP_INCOMING_VARARGS): Remove.
6923
6924 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
6925
6926         * config/fr30/fr30-protos.h: Remove the prototype for
6927         fr30_setup_incoming_varargs.
6928         Update the prototypes for fr30_num_arg_regs and
6929         fr30_function_arg_partial_nregs.
6930         * config/fr30/fr30.c (TARGET_STRUCT_VALUE_RTX): New.
6931         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
6932         (fr30_setup_incoming_varargs): Make it static.
6933         Add argument second_time.  Don't do anything when second_time
6934         is nonzero.
6935         (fr30_num_arg_regs): Change the type of the first argument to
6936         enum machine_mode.
6937         (fr30_function_arg_partial_nregs): Change the type of the
6938         second argument to enum machine_mode.
6939         * config/fr30/fr30.h (STRUCT_VALUE): Remove.
6940         (SETUP_INCOMING_VARARGS): Remove.
6941
6942 2004-02-06  Kazu Hirata  <kazu@cs.umass.edu>
6943
6944         * config/arc/arc-protos.h: Remove the prototype for
6945         arc_setup_incoming_varargs.
6946         * config/arc/arc.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
6947         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
6948         (arc_setup_incoming_varargs): Make it static.
6949         (arc_external_libcall): Likewise.
6950         * config/arc/arc.h (SETUP_INCOMING_VARARGS): Remove.
6951         Remove the commented-out definition of
6952         ASM_OUTPUT_EXTERNAL_LIBCALL.
6953
6954 2004-02-05  SUGIOKA Toshinobu  <sugioka@itonet.co.jp>
6955
6956         * config/sh/t-linux (SHLIB_INSTALL): Prepend $$(DESTDIR)
6957         to $$(slibdir) in the installation commands.
6958
6959 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
6960
6961         * reload.c (refers_to_regno_for_reload_p): Index hard_regno_nregs
6962         with inner_regno, not regno.
6963         * rtlanal.c (refers_to_regno_p): Same.
6964
6965 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
6966
6967         * config.gcc: Remove i370 support.
6968
6969 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
6970
6971         * doc/install.texi:  Update automake and autoconf version
6972         requirements.  Note where to find gcj automake version.
6973
6974 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
6975
6976         * Makefile.in (generate-manpages): Move dependencies to ...
6977         (man): here.
6978         * doc/makefile.texi: Document new targets.
6979         * doc/sourcebuild.texi (Make-lang.in): Document new langhooks.
6980
6981 2004-02-05  Kelley Cook  <kcook@gcc.gnu.org>
6982
6983         PR/13485
6984         Makefile.in (srcextra):  Add a level of indirection to ...
6985         (gcc.srcextra): ... here.
6986         (po-generated): Delete.
6987         (po/$(PACKAGE).pot: Use srcextra instead of po-generated.  Depend on
6988         options.c.
6989         (start.encap): Remove superfluous lang.srcextra dependency.
6990         objc/Make-lang.in (po-generated):  Delete.
6991
6992 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
6993
6994         * config/ia64/ia64.c (REG_GP): Remove.
6995
6996 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
6997
6998         * config/mips/iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define.
6999
7000 2004-02-05  Devang Patel  <dpatel@apple.com>
7001
7002         * dwarf2out.c (force_type_die): Look up input type itself
7003         instead of root_type() of type.
7004
7005 2004-02-05  Andreas Krebbel  <krebbel1@de.ibm.com>
7006
7007         * config/s390/s390.md ("*tmqidi_ext"): New insn.
7008         ("*extendqidi2_short_displ", "*extendsiqi2_short_displ"): Old
7009         pre-reload splitters are transformed to post-reload
7010         define_insn_and_split patterns.
7011         ("*tmqisi_ext"): Renamed old "*tmqi_ext".
7012
7013 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7014
7015         * config/cris/cris.h: Replace PROMOTE_PROTOTYPES with
7016         TARGET_PROMOTE_PROTOTYPES.
7017
7018 2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7019
7020         PR middle-end/13750
7021         Revert:
7022         2004-01-15  Geoffrey Keating  <geoffk@apple.com>
7023         PR pch/13361
7024         * c-typeck.c (constructor_asmspec): Delete.
7025         (struct initializer_stack): Delete field 'asmspec'.
7026         (start_init): Delete saving of asmspec.
7027         (finish_init): Don't update constructor_asmspec.
7028         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
7029         * stmt.c (expand_asm): Duplicate strings from tree.
7030         (expand_asm_operands): Likewise.
7031         * tree.c (tree_size): Update computation of size of STRING_CST.
7032         (make_node): Don't make STRING_CST nodes.
7033         (build_string): Allocate string with tree node.
7034         * tree.def (STRING_CST): Update comment.
7035         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
7036         (tree_string): Place contents of string in tree node.
7037         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
7038         from tree.
7039
7040 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
7041
7042         * diagnostic.h (DEFINE_DIAGNOSTIC_KIND): Change parameter M to
7043         msgid.
7044
7045 2004-02-05  Dorit Naishlos  <dorit@il.ibm.com>
7046
7047         * config/rs6000/altivec.md (*movv4si_internal): At least one
7048         operand must be altivec_register_operand.
7049         (*movv8hi_internal1): Likewise.
7050         (*movv16qi_internal1): Likewise.
7051         (*movv4sf_internal1): Likewise.
7052
7053 2004-02-05  David Edelsohn  <edelsohn@gnu.org>
7054
7055         * configure.ac (gcc_cv_as_powerpc_mfcrf): Correct test for mfcr.
7056         * configure: Regenerate.
7057
7058 2004-02-05  Jonathan Wakely  <redi@gcc.gnu.org>
7059
7060         * doc/install.texi: Update description of --gxx-include-dir to
7061         give correct default value.
7062
7063 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7064
7065         * config/h8300/h8300.h (REG_OK_FOR_BASE_NONSTRICT_P): Replace
7066         8 with MAC_REG.
7067
7068 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7069
7070         * config/pa/pa.c (emit_hpdiv_const): Replace gen_rtx with
7071         gen_rtx_PARALLEL.
7072
7073 2004-02-05  Kazu Hirata  <kazu@cs.umass.edu>
7074
7075         * emit-rtl.c: Update the comment about the file.
7076
7077 2004-02-05  Joseph S. Myers  <jsm@polyomino.org.uk>
7078
7079         * sourcebuild.texi (Test Idioms): Update testcase naming
7080         conventions.
7081
7082 2004-02-04  Per Bothner  <per@bothner.com>
7083
7084         Partially revert/redo 2003-10-01 change; fix -fworking-directory.
7085         * c-ppoutput.c (pp_dir_change):  New function.
7086         * c-common.h (pp_dir_change):  New declaration.
7087         * cpplib.h (struct cpp_options):  Remove working_directory field.
7088         * cppinit.c (cpp_find_main_file, cpp_push_main_file):  Merge back to
7089         (cpp_read_main_file):  as before 10-01.  Call _cpp_stack_file.
7090         Don't handle -fworking_directory here, but in c_common_post_options.
7091         (read_original_directory): Don't back up when done.
7092         Don't clear no-longer used working_directory flag.
7093         * cpplib.h:  Update declarations to match.
7094         * c-lex.c (cb_dir_change):  Move to c-opts.c.
7095         (init_c_lex):  Don't set dir_change callback here, since we want
7096         to set it even if flag_preprocess_only.
7097         * c-opts.c (cb_dir_change):  Function moved from c-lex.c.
7098         (c_common_post_options):  Set dir_change callback.
7099         Call pp_dir_change if approporiate.
7100         (finish_options):  Don't call cpp_find_main_file here.  Hence remove
7101         unneeded parameter and result. Do LC_RENAME for <built-in>.
7102         (c_common_post_options):  Call cpp_read_main_file here instead.
7103         (c_common_init):  Update accordingly.
7104         (push_command_line_include):  Don't cpp_push_main_file.
7105         Do LC_RENAME rather than LC_LEASE to get back to main file.
7106         Compared to pre-10-01 version, inline cpp_rename_to_main_file.
7107         (c_common_parse_file):  Call cpp_read_main_file for subsequent main
7108         files, but call finish_options for all files.
7109         * c-opts.c (sanitize_cpp_opts):  Don't set cpp_opts->working_directory.
7110         * fix-header.c (read_scan_file):  Call cpp_read_main_file instead of
7111         cpp_find_main_file + cpp_push_main_file.
7112         * c-lex.c (fe_file_change):  Don't set main_input_filename here.
7113         * opts.c (handle_options):  Only set main_input_filename first time.
7114
7115 2004-02-05  Ian Lance Taylor  <ian@wasabisystems.com>
7116
7117         * config/arm/arm.h (REG_CLASS_NAMES): Add missing comma.
7118
7119 2004-02-04  Geoffrey Keating  <geoffk@apple.com>
7120
7121         * reload.c (find_equiv_reg): When checking for register overlap,
7122         don't index hard_regno_nregs with a pseudo-reg.
7123
7124 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
7125
7126         * config/s390/s390.c (s390_trampoline_template): Remove gen_rtx().
7127
7128 2004-02-04  David Edelsohn  <edelsohn@gnu.org>
7129
7130         * reload.c (refers_to_regno_for_reload_p): Test regno, not inner_regno,
7131         against FIRST_PSEUDO_REGISTER.
7132
7133 2004-02-04  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
7134
7135         * Makefile.in: Move target, host overrides after per-language
7136         fragments.
7137
7138         * config/mips/t-iris5-as (FORCE_DEBUG_ADAFLAGS): Clear.
7139         (GNATLIBCFLAGS): Remove -g.
7140
7141 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7142
7143         * config/alpha/alpha.c, config/arc/arc.c, config/avr/avr.c,
7144         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
7145         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
7146         config/m32r/m32r.c, config/ns32k/ns32k.c, config/pa/pa.c,
7147         config/pdp11/pdp11.c, config/rs6000/rs6000.c,
7148         config/sparc/sparc.c, config/vax/vax.c: Revert the
7149         replacements of "FALLTHRU" with "Fall through" done in the
7150         previous patch.
7151
7152 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7153
7154         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
7155         config/arm/arm.c, config/arm/arm.md,
7156         config/cris/cris-protos.h, config/fr30/fr30.c,
7157         config/fr30/fr30.h, config/h8300/h8300.c, config/i386/i386.h,
7158         config/i860/i860.c, config/i860/i860.h, config/ia64/ia64-c.c,
7159         config/ia64/ia64.c, config/ia64/ia64.h, config/ip2k/ip2k.h,
7160         config/ip2k/ip2k.md, config/ip2k/libgcc.S,
7161         config/m32r/linux.h, config/m32r/m32r.c, config/m32r/m32r.h,
7162         config/m68k/m68k.c, config/m68k/netbsd-elf.h,
7163         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.md,
7164         config/ns32k/netbsd.h, config/ns32k/ns32k.c,
7165         config/ns32k/ns32k.h, config/pdp11/pdp11.h,
7166         config/rs6000/darwin-ldouble.c, config/s390/s390.h,
7167         config/s390/s390.md, config/sparc/netbsd-elf.h,
7168         config/sparc/openbsd.h, config/sparc/sparc.c,
7169         config/xtensa/lib2funcs.S: Fix comment formatting.
7170
7171 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7172
7173         * config/alpha/alpha.c, config/arc/arc.c,
7174         config/arm/arm-cores.def, config/arm/arm.c, config/arm/arm.h,
7175         config/arm/arm1026ejs.md, config/arm/arm1136jfs.md,
7176         config/arm/arm926ejs.md, config/arm/vfp.md, config/avr/avr.c,
7177         config/c4x/c4x.c, config/cris/cris.c, config/frv/frv.md,
7178         config/i386/i386.c, config/i386/i386.h, config/i386/i386.md,
7179         config/ia64/ia64.c, config/ia64/unwind-ia64.c,
7180         config/iq2000/iq2000.c, config/m32r/m32r.c,
7181         config/mips/mips.c, config/mmix/mmix.c, config/mmix/mmix.h,
7182         config/ns32k/ns32k.c, config/pa/pa.c, config/pdp11/pdp11.c,
7183         config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
7184         config/rs6000/rs6000.h, config/sparc/sparc.c,
7185         config/vax/vax.c: Fix comment typos.  Follow spelling
7186         conventions.
7187
7188 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7189
7190         * alloc-pool.h, c-convert.c, c-lang.c, c-tree.h,
7191         caller-save.c, df.h, genconfig.c, global.c, lcm.c,
7192         ra-rewrite.c, ra.c, regclass.c, regs.h, resource.c,
7193         sched-rgn.c, config/arm/aof.h, config/arm/cirrus.md,
7194         config/arm/fpa.md, config/arm/iwmmxt.md,
7195         config/arm/netbsd-elf.h, config/arm/netbsd.h,
7196         config/m68hc11/m68hc11.md, config/mips/iris5.h,
7197         config/mn10300/mn10300.md, config/rs6000/altivec.md,
7198         config/sparc/netbsd-elf.h: Update copyright.
7199
7200 2004-02-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
7201
7202         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
7203         for all modes whose size is greater than 8 bytes if ARCH32.
7204         (sparc_va_arg): Handle all modes whose size is greater than 8 bytes
7205         by reference if ARCH32.
7206
7207 2004-02-04  Aldy Hernandez  <aldyh@redhat.com>
7208
7209         * cgraphunit.c (cgraph_postorder): Fix typo in comment.
7210
7211 2004-02-04  Ulrich Weigand  <uweigand@de.ibm.com>
7212
7213         * config/s390/s390.md ("*la_64" + peepholes, "reload_indi"): Move
7214         to before adddi3 insn patterns.
7215         ("*la_31" + peepholes, "*la_31_and", "*la_31_and_cc", "force_la_31",
7216         "reload_insi"): Move to before addsi3 insn patterns.
7217
7218 2004-02-04  Mark Mitchell  <mark@codesourcery.com>
7219
7220         * calls.c (initialize_argument_information): Add CALL_FROM_THUNK_P
7221         parameter.  Use it instead of current_function_is_thunk.
7222         * function.h (struct function): Update documentation for is_thunk.
7223         * tree.h (CALL_FROM_THUNK_P): New macro.
7224         * config/alpha/alpha.c (alpha_sa_mask): Do not check
7225         no_new_pseudos when testing current_function_is_thunk.
7226         * config/rs6000/rs6000.c (rs6000_ra_ever_killed): Likeiwse.
7227
7228 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7229
7230         * doc/tm.texi: Replace SETUP_INCOMING_VARARGS with
7231         TARGET_SETUP_INCOMING_VARARGS.
7232
7233 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7234
7235         * emit-rtl.c (gen_rtx): Remove.
7236         * genattrtab.c: Don't mention gen_rtx in a comment.
7237         * rtl.h: Remove the prototype for gen_rtx.
7238         * doc/md.texi: Replace gen_rtx with gen_rtx_REG.
7239
7240 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7241
7242         * config/arc/arc.h, config/fr30/fr30.h
7243         (SETUP_INCOMING_VARARGS): Remove the target-independent
7244         comments.
7245         * doc/tm.texi: Don't mention deprecated target macros.
7246
7247 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7248
7249         * config/fr30/fr30.h (FUNCTION_VALUE): Remove the
7250         target-independent comment.
7251
7252 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7253
7254         * doc/interface.texi, doc/tm.texi, doc/trouble.texi: Don't
7255         mention deprecated target macros.
7256
7257 2004-02-04  Kazu Hirata  <kazu@cs.umass.edu>
7258
7259         * config.gcc: Remove obsolete ports and configurations.
7260         * config/linux-aout.h, config/netware.h,
7261         config/t-linux-gnulibc1, config/d30v/abi,
7262         config/d30v/d30v-protos.h, config/d30v/d30v.c,
7263         config/d30v/d30v.h, config/d30v/d30v.md,
7264         config/d30v/libgcc1.asm, config/d30v/t-d30v,
7265         config/dsp16xx/dsp16xx-modes.def,
7266         config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c,
7267         config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md,
7268         config/i370/README, config/i370/i370-c.c,
7269         config/i370/i370-protos.h, config/i370/i370.c,
7270         config/i370/i370.h, config/i370/i370.md, config/i370/linux.h,
7271         config/i370/mvs.h, config/i370/oe.h, config/i370/t-i370,
7272         config/i386/freebsd-aout.h, config/i386/linux-aout.h,
7273         config/i386/moss.h, config/i386/netware.h,
7274         config/i386/svr3.ifile, config/i386/svr3dbx.h,
7275         config/i386/svr3gas.h, config/i386/svr3z.ifile,
7276         config/i386/t-udk, config/i386/udk.h, config/i386/vsta.h,
7277         config/i960/i960-c.c, config/i960/i960-coff.h,
7278         config/i960/i960-modes.def, config/i960/i960-protos.h,
7279         config/i960/i960.c, config/i960/i960.h, config/i960/i960.md,
7280         config/i960/rtems.h, config/i960/t-960bare,
7281         config/m68k/hp310.h, config/m68k/hp320.h,
7282         config/m68k/hp320base.h, config/m68k/m68kv4.h,
7283         config/m68k/netbsd.h, config/m68k/sgs.h, config/m68k/t-hp320:
7284         Remove.
7285         * doc/extend.texi, doc/install.texi, doc/invoke.texi,
7286         doc/md.texi: Remove mentions of obsolete ports.
7287
7288 2004-02-04  Jan Hubicka  <jh@suse.cz>
7289
7290         * alias.c (find_base_term, get_addr):  Do not dereference NULL
7291         pointer when all VALUE's locations has been invalidated.
7292         (rtx_equal_for_memref_p): Simplify checking of VALUEs.
7293
7294 2004-02-03  Wolfgang Bangerth  <bangerth@dealii.org>
7295
7296         * doc/invoke.texi (x86 options): Fix spelling/wording.
7297
7298 2004-02-03  Richard Sandiford  <rsandifo@redhat.com>
7299
7300         * config/mips/iris5.h (ASM_OUTPUT_ASCII): Use mips_output_ascii to
7301         put the original string in a comment.
7302         * config/mips/mips-protos.h (mips_output_ascii): Add prefix argument.
7303         * config/mips/mips.c (mips_output_ascii): Likewise.
7304         * config/mips/mips.h (ASM_OUTPUT_ASCII): Adjust accordingly.
7305
7306 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
7307
7308         * system.h (GIV_SORT_CRITERION): Poison.
7309         * config/avr/avr.h (GIV_SORT_CRITERION): Remove.
7310         * config/ip2k/ip2k.h (GIV_SORT_CRITERION): Likewise.
7311
7312 2004-02-03  Roger Sayle  <roger@eyesopen.com>
7313
7314         PR target/9348
7315         * expr.c (expand_expr_real) <MULT_EXPR>:  When performing widening
7316         multiplies with a multiplication of the wrong signedness, its the
7317         signedness of the multiplication that we've performed that needs to
7318         be passed to expand_mult_highpart_adjust.  Avoid emitting a nop-move
7319         if expand_mult_highpart_adjust places the result in target.
7320
7321 2004-02-03  Richard Henderson  <rth@redhat.com>
7322
7323         * varasm.c (const_desc_rtx_sym_eq): Compare symbol strings.
7324
7325 2004-02-03  J"orn Rennecke <joern.rennecke@superh.com>
7326
7327         * config.gcc (sh[234]l): Use little endian fragments.
7328
7329 2004-02-03  Paul Koning  <pkoning@equallogic.com>
7330
7331         * config/pdp11/pdp11-modes.def: Add RESET_FLOAT_FORMAT calls.
7332         * config/pdp11/pdp11-protos.h (legitimate_const_double_p): Add.
7333         * config/pdp11/pdp11.c (encode_pdp11_f, decode_pdp11_f,
7334         encode_pdp11_d, decode_pdp11_d): New functions to handle PDP11
7335         floating point format.
7336         (pdp11_f_format, pdp11_d_format): New real_format descriptors for
7337         the above functions.
7338         (output_move_quad): Output float values in correct target format.
7339         (legitimate_const_double_p): New function.
7340         * config/pdp11/pdp11.h: Fix typos.
7341         (FLOAT_WORDS_BIG_ENDIAN): Add definition.
7342         (TARGET_FLOAT_FORMAT): Ditto.
7343         (pdp11_f_format, pdp11_d_format): Add external declarations.
7344         (MAX_REGS_PER_ADDRESS): Corrected.
7345         (LEGITIMATE_CONSTANT_P): Use legitimate_const_double_p().
7346         (PRINT_OPERAND): Output float literals in target format.
7347
7348 2004-02-03  Mark Mitchell  <mark@codesourcery.com>
7349
7350         PR c++/13975
7351         * tree.h (enum tree_index): Add TI_PUBLIC, TI_PROTECTED, and
7352         TI_PRIVATE.
7353         (access_public_node): Redefine.
7354         (access_protected_node): Likewise.
7355         (access_private_node): Likewise.
7356         * tree.c (build_common_tree_nodes): Create access_public_node,
7357         access_protected_node, and access_private_node.
7358
7359 2004-02-03  Steve Ellcey  <sje@cup.hp.com>
7360
7361         * config/ia64/ia64.h (MASK_INLINE_INT_DIV_LAT): Change value.
7362         (MASK_INLINE_INT_DIV_THR): Ditto.
7363         (MASK_INLINE_SQRT_LAT): Ditto.
7364         (MASK_INLINE_SQRT_THR): Ditto.
7365         (MASK_DWARF2_ASM): Ditto.
7366         (MASK_EARLY_STOP_BITS): Ditto.
7367
7368 2004-02-02  Paul Brook  <paul@codesourcery.com>
7369
7370         Merge from csl-arm-branch.
7371
7372         2004-01-30  Paul Brook  <paul@codesourcery.com>
7373
7374         * aof.h (REGISTER_NAMES): Add vfp reg names
7375         (ADDITIONAL_REGISTER_NAMES): Ditto.
7376         * aout.h (REGISTER_NAMES): Ditto.
7377         (ADDITIONAL_REGISTER_NAMES): Ditto.
7378         * arm-protos.h: Update/Add Prototypes.
7379         * arm.c (init_fp_table): Rename from init_fpa_table. Update users.
7380         Only allow 0.0 for VFP.
7381         (fp_consts_inited): Rename from fpa_consts_inited.  Update users.
7382         (values_fp): Rename from values_fpa.  Update Users.
7383         (arm_const_double_rtx): Rename from const_double_rtx_ok_for_fpa.
7384         Update users.  Only check valid constants for this hardware.
7385         (arm_float_rhs_operand): Rename from fpa_rhs_operand.  Update Users.
7386         Only allow consts for FPA.
7387         (arm_float_add_operand): Rename from fpa_add_operand.  Update users.
7388         Only allow consts for FPA.
7389         (use_return_insn): Check for saved VFP regs.
7390         (arm_legitimate_address_p): Handle VFP DFmode addressing.
7391         (arm_legitimize_address): Ditto.
7392         (arm_general_register_operand): New function.
7393         (vfp_mem_operand): New function.
7394         (vfp_compare_operand): New function.
7395         (vfp_secondary_reload_class): New function.
7396         (arm_float_compare_operand): New function.
7397         (vfp_print_multi): New function.
7398         (vfp_output_fstmx): New function.
7399         (vfp_emit_fstm): New function.
7400         (arm_output_epilogue): Output VPF reg restore code.
7401         (arm_expand_prologue): Output VFP reg save code.
7402         (arm_print_operand): Add 'P'.
7403         (arm_hard_regno_mode_ok): Return modes for VFP regs.
7404         (arm_regno_class): Return classes for VFP regs.
7405         (arm_compute_initial_elimination_offset): Include space for VFP regs.
7406         (arm_get_frame_size): Ditto.
7407         * arm.h (FIXED_REGISTERS): Add VFP regs.
7408         (CALL_USED_REGISTERS): Ditto.
7409         (CONDITIONAL_REGISTER_USAGE): Enable VFP regs.
7410         (FIRST_VFP_REGNUM): Define.
7411         (LAST_VFP_REGNUM): Define.
7412         (IS_VFP_REGNUM): Define.
7413         (FIRST_PSEUDO_REGISTER): Include VFP regs.
7414         (HARD_REGNO_NREGS): Handle VFP regs.
7415         (REG_ALLOC_ORDER): Add VFP regs.
7416         (enum reg_class): Add VFP_REGS.
7417         (REG_CLASS_NAMES): Ditto.
7418         (REG_CLASS_CONTENTS): Ditto.
7419         (CANNOT_CHANGE_MODE_CLASS) Handle VFP Regs.
7420         (REG_CLASS_FROM_LETTER): Add 'w'.
7421         (EXTRA_CONSTRAINT_ARM): Add 'U'.
7422         (EXTRA_MEMORY_CONSTRAINT): Define.
7423         (SECONDARY_OUTPUT_RELOAD_CLASS): Handle VFP regs.
7424         (SECONDARY_INPUT_RELOAD_CLASS): Ditto.
7425         (REGISTER_MOVE_COST): Ditto.
7426         (PREDICATE_CODES): Add arm_general_register_operand,
7427         arm_float_compare_operand and vfp_compare_operand.
7428         * arm.md (various): Rename as above.
7429         (divsf3): Enable when TARGET_VFP.
7430         (divdf3): Ditto.
7431         (movdfcc): Ditto.
7432         (sqrtsf2): Ditto.
7433         (sqrtdf2): Ditto.
7434         (arm_movdi): Disable when TARGET_VFP.
7435         (arm_movsi_insn): Ditto.
7436         (movsi): Only split with general regs.
7437         (cmpsf): Use arm_float_compare_operand.
7438         (push_fp_multi): Restrict to TARGET_FPA.
7439         (vfp.md): Include.
7440         * vfp.md: New file.
7441         * fpa.md (various): Rename as above.
7442         * doc/md.texi: Document ARM w and U constraints.
7443
7444         2004-01-15  Paul Brook  <paul@codesourcery.com>
7445
7446         * config.gcc: Add with_fpu.  Allow with-float=softfp.
7447         * config/arm/arm.c (arm_override_options): Rename *-s to *s.
7448         Break out of loop when we find a float-abi.  Fix typo.
7449         * config/arm/arm.h (OPTION_DEFAULT_SPECS): Add "fpu".
7450         Set -mfloat-abi=.
7451         * doc/install.texi: Document --with-fpu.
7452
7453         2003-01-14  Paul Brook  <paul@codesourcery.com>
7454
7455         * config.gcc (with_arch): Add armv6.
7456         * config/arm/arm.h: Rename TARGET_CPU_*_s to TARGET_CPU_*s.
7457         * config/arm/arm.c (arm_overrride_options): Ditto.
7458
7459         2004-01-08  Richard Earnshaw  <rearnsha@arm.com>
7460
7461         * arm.c (FL_ARCH3M): Renamed from FL_FAST_MULT.
7462         (FL_ARCH6): Renamed from FL_ARCH6J.
7463         (arm_arch3m): Renamed from arm_fast_multiply.
7464         (arm_arch6): Renamed from arm_arch6j.
7465         * arm.h: Update all uses of above.
7466         * arm-cores.def: Likewise.
7467         * arm.md: Likewise.
7468
7469         * arm.h (CPP_CPU_ARCH_SPEC): Emit __ARM_ARCH_6J__ define for armV6j,
7470         not arm6j.  Add entry for arch armv6.
7471
7472         2004-01-07  Richard Earnshaw  <rearnsha@arm.com>
7473
7474         * arm.c (arm_emit_extendsi): Delete.
7475         * arm-protos.h (arm_emit_extendsi): Delete.
7476         * arm.md (zero_extendhisi2): Also handle zero-extension of
7477         non-subregs.
7478         (zero_extendqisi2, extendhisi2, extendqisi2): Likewise.
7479         (thumb_zero_extendhisi2): Only match if not v6.
7480         (arm_zero_extendhisi2, thumb_zero_extendqisi2, arm_zero_extendqisi2)
7481         (thumb_extendhisi2, arm_extendhisi2, arm_extendqisi)
7482         (thumb_extendqisi2): Likewise.
7483         (thumb_zero_extendhisi2_v6, arm_zero_extendhisi2_v6): New patterns.
7484         (thumb_zero_extendqisi2_v6, arm_zero_extendqisi2_v6): New patterns.
7485         (thumb_extendhisi2_insn_v6, arm_extendhisi2_v6): New patterns.
7486         (thumb_extendqisi2_v6, arm_extendqisi_v6): New patterns.
7487         (arm_zero_extendhisi2_reg, arm_zero_extendqisi2_reg): Delete.
7488         (arm_extendhisi2_reg, arm_extendqisi2_reg): Delete.
7489         (arm_zero_extendhisi2addsi): Remove subreg.  Add attributes.
7490         (arm_zero_extendqisi2addsi, arm_extendhisi2addsi): Likewise.
7491         (arm_extendqisi2addsi): Likewise.
7492
7493         2003-12-31  Mark Mitchell  <mark@codesourcery.com>
7494
7495         Revert this change:
7496         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
7497         + REG addressing modes.
7498
7499         * config/arm/arm.h (THUMB_LEGTITIMIZE_RELOAD_ADDRESS): Reload REG
7500         + REG addressing modes.
7501
7502         2003-12-30  Mark Mitchell  <mark@codesourcery.com>
7503
7504         * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept
7505         CONSTANT_P_RTX.
7506
7507         2003-30-12  Paul Brook  <paul@codesourcery.com>
7508
7509         * longlong.h: protect arm inlines with !defined (__thumb__)
7510
7511         2003-30-12  Paul Brook  <paul@codesourcery.com>
7512
7513         * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Always define __arm__.
7514
7515         2003-12-30  Nathan Sidwell  <nathan@codesourcery.com>
7516
7517         * builtins.c (expand_builtin_apply_args_1): Fix typo in previous
7518         change.
7519
7520         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
7521
7522         * builtins.c (expand_builtin_apply_args_1): Add pretend args size
7523         to the virtual incoming args pointer for downward stacks.
7524
7525         2003-12-29  Paul Brook  <paul@codesourcery.com>
7526
7527         * config/arm/arm-cores.def: Add cost function.
7528         * config/arm/arm.c (arm_*_rtx_costs): New functions.
7529         (arm_rtx_costs): Remove
7530         (struct processors): Add rtx_costs field.
7531         (all_cores, all_architectures): Ditto.
7532         (arm_override_options): Set targetm.rtx_costs.
7533         (thumb_rtx_costs): New function.
7534         (arm_rtx_costs_1): Remove cases handled elsewhere.
7535         * config/arm/arm.h (processor_type): Add COSTS parameter.
7536
7537         2003-12-29  Nathan Sidwell  <nathan@codesourcery.com>
7538
7539         * config/arm/arm.md (generic_sched): arm926 has its own scheduler.
7540         (arm926ejs.md): Include it.
7541         * config/arm/arm926ejs.md: New pipeline description.
7542
7543         2003-12-24  Paul Brook  <paul@codesourcery.com>
7544
7545         * config/arm/arm.c (arm_arch6j): New variable.
7546         (arm_override_options): Set it.
7547         (arm_emit_extendsi): New function.
7548         * config/arm/arm-protos.h (arm_emit_extendsi): Add prototype.
7549         * config/arm/arm.h (arm_arch6j): Declare.
7550         * config/arm/arm.md: Add sign/zero extend insns.
7551
7552         2003-12-23  Paul Brook  <paul@codesourcery.com>
7553
7554         * config/arm/arm.c (all_architectures): Add armv6.
7555         * doc/invoke.texi: Document it.
7556
7557         2003-12-19  Paul Brook  <paul@codesourcery.com>
7558
7559         * config/arm/arm.md: Add load1 and load_byte "type" attrs.  Modify
7560         insn patterns to match.
7561         * config/arm/arm-generic.md: Ditto.
7562         * config/arm/cirrus.md: Ditto.
7563         * config/arm/fpa.md: Ditto.
7564         * config/amm/iwmmxt.md: Ditto.
7565         * config/arm/arm1026ejs.md: Ditto.
7566         * config/arm/arm1135jfs.md: Ditto.  Add insn_reservation and bypasses
7567         for 11_loadb.
7568
7569         2003-12-18  Nathan Sidwell  <nathan@codesourcery.com>
7570
7571         * config/arm/arm-protos.h (arm_no_early_alu_shift_value_dep): Declare.
7572         * config/arm/arm.c (arm_adjust_cost): Check shift cost for
7573         TYPE_ALU_SHIFT and TYPE_ALU_SHIFT_REG.
7574         (arm_no_early_store_addr_dep, arm_no_early_alu_shift_dep,
7575         arm_no_early_mul_dep): Correctly deal with conditional execution,
7576         parallels and single shift operations.
7577         (arm_no_early_alu_shift_value_dep): Define.
7578         * arm.md (attr type): Replace 'normal' with 'alu',
7579         'alu_shift' and 'alu_shift_reg'.
7580         (attr core_cycles): Adjust.
7581         (*addsi3_carryin_shift, andsi_not_shiftsi_si, *arm_shiftsi3,
7582         *shiftsi3_compare0, *notsi_shiftsi, *notsi_shiftsi_compare0,
7583         *not_shiftsi_compare0_scratch, *cmpsi_shiftsi, *cmpsi_shiftsi_swp,
7584         *cmpsi_neg_shiftsi, *arith_shiftsi, *arith_shiftsi_compare0,
7585         *arith_shiftsi_compare0_scratch, *sub_shiftsi,
7586         *sub_shiftsi_compare0, *sub_shiftsi_compare0_scratch,
7587         *if_shift_move, *if_move_shift, *if_shift_shift): Set type
7588         attribute appropriately.
7589         * config/arm/arm1026ejs.md (alu_op): Adjust.
7590         (alu_shift_op, alu_shift_reg_op): New.
7591         * config/arm/arm1136.md: Add better bypasses for early
7592         registers. Remove load[234] and store[234] bypasses.
7593         (11_alu_op): Adjust.
7594         (11_alu_shift_op, 11_alu_shift_reg_op): New.
7595
7596         2003-12-15  Nathan Sidwell  <nathan@codesourcery.com>
7597
7598         * config/arm/arm-protos.h (arm_no_early_store_addr_dep,
7599         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Declare.
7600         * config/arm/arm.c (arm_no_early_store_addr_dep,
7601         arm_no_early_alu_shift_dep, arm_no_early_mul_dep): Define.
7602         * config/arm/arm1026ejs.md: Add load-store bypass.
7603         * config/arm/arm1136jfs.md (11_alu_op): Take 2 cycles.
7604         Add bypasses between instructions.
7605
7606         2003-12-10  Paul Brook  <paul@codesourcery.com>
7607
7608         * config/arm/arm.c (arm_fpu_model): New variable.
7609         (arm_fload_abi): New variable.
7610         (target_fpe_name): Rename from target_fp_name.
7611         (target_fpu_name): New variable.
7612         (arm_is_cirrus): Remove.
7613         (fpu_desc): New struct.
7614         (all_fpus): Define.
7615         (pf_model_for_fpu): Define.
7616         (all_loat_abis): Define.
7617         (arm_override_options): Set fp arch flags based on -mfpu=
7618         and -float-abi=.
7619         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
7620         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
7621         (*): Use new TARGET_* flags.
7622         * config/arm/arm.h (TARGET_ANY_HARD_FLOAT): Remove.
7623         (TARGET_HARD_FLOAT): No longer implies TARGET_FPA.
7624         (TARGET_SOFT_FLOAT): Ditto.
7625         (TARGET_SOFT_FLOAT_ABI): New.
7626         (TARGET_MAVERICK): Rename from TARGET_CIRRUS.  No longer implies
7627         TARGET_HARD_FLOAT.
7628         (TARGET_VFP): No longer implies TARGET_HARD_FLOAT.
7629         (TARGET_OPTIONS): Add -mfpu=.
7630         (FIRST_FPA_REGNUM): Rename from FIRST_ARM_FP_REGNUM.
7631         (LAST_FPA_REGNUM): Rename from LAST_ARM_FP_REGNUM.
7632         (arm_pf_model): Define.
7633         (arm_float_abi_type): Define.
7634         (fputype): Add FPUTYPE_VFP.  Change SOFT_FPA->NONE
7635         * config/arm/arm.md: Use new TARGET_* flags.
7636         * config/arm/cirrus.md: Ditto.
7637         * config/arm/fpa.md: Ditto.
7638         * config/arm/elf.h (ASM_SPEC): Pass -mfloat-abi= and -mfpu=.
7639         * config/arm/semi.h (ASM_SPEC): Ditto.
7640         * config/arm/netbsd-elf.h (SUBTARGET_ASM_FLOAT_SPEC): Specify vfp.
7641         (FPUTYPE_DEFAULT): Set to VFP.
7642         * doc/invoke.texi: Document -mfpu= and -mfloat-abi=.
7643
7644         2003-11-22  Phil Edwards  <phil@codesourcery.com>
7645
7646         PR target/12476
7647         * config/arm/arm.c (arm_output_mi_thunk):  In Thumb mode, use
7648         'bx' instead of 'b' to avoid branch range restrictions.  Output
7649         the thunk immediately before the thunked-to function.
7650         * config/arm/arm.h (ARM_DECLARE_FUNCTION_NAME):  Do not emit
7651         .thumb_func if a thunk is being generated.  Emit .code 16 along
7652         with .thumb_func if a thunk is not being generated.
7653
7654         2003-11-15  Nicolas Pitre <nico@cam.org>
7655
7656         * config/arm/arm.md (ashldi3, arm_ashldi3_1bit, ashrdi3,
7657         arm_ashrdi3_1bit, lshrdi3, arm_lshrdi3_1bit): New patterns.
7658         * config/arm/iwmmxt.md (ashrdi3_iwmmxt): Renamed from ashrdi3.
7659         (lshrdi3_iwmmxt): Renamed from lshrdi3.
7660         * config/arm/arm.c (IWMMXT_BUILTIN2): Renamed argument accordingly.
7661
7662         2003-11-12  Steve Woodford  <scw@wasabisystems.com>
7663             Ian Lance Taylor  <ian@wasabisystems.com>
7664
7665         * config/arm/lib1funcs.asm (ARM_DIV_BODY, ARM_MOD_BODY): Add new
7666         code for __ARM_ARCH__ >= 5 && ! defined (__OPTIMIZE_SIZE__).
7667
7668         2003-11-05  Phil Edwards  <phil@codesourcery.com>
7669
7670         * config/arm/arm.md (insn):  Add new V6 instruction names.
7671         (generic_sched):  New attr.
7672         * config/arm/arm-generic.md:  Use generic_sched here.
7673         * config/arm/arm1026ejs.md:  Do not model fetch/issue/decode
7674         stages of pipeline.  Adjust latency counts accordingly.
7675         * config/arm/arm1136jfs.md:  New file.
7676
7677         2003-10-28  Mark Mitchell  <mark@codesourcery.com>
7678
7679         * config/arm/arm.h (processor_type): New enumeration type.
7680         (CPP_ARCH_DEFAULT_SPEC): Set appropriately for ARM 926EJ-S,
7681         ARM1026EJ-S, ARM1136J-S, and ARM1136JF-S processor cores.
7682         (CPP_CPU_ARCH_SPEC): Likewise.
7683         * config/arm/arm.c (arm_tune): New variable.
7684         (all_cores): Use cores.def.
7685         (all_architectures): Add representative processor.
7686         (arm_override_options): Restructure way in which tuning
7687         information is deduced.
7688         * arm.md: Update "insn" and "type" attributes throughout.
7689         (insn): New attribute.
7690         (type): Compute "mult" from "insn" attribute.  Add load2,
7691         load3, load4 alternatives.
7692         (arm automaton): Move to arm-generic.md.
7693         * config/arm/arm-cores.def: New file.
7694         * config/arm/arm-generic.md: Likewise.
7695         * config/arm/arm1026ejs.md: Likewise.
7696
7697 2004-02-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
7698
7699         * doc/invoke.texi (SPARC options): Remove -mflat and
7700         all -mxxx (xxx:chip) options.
7701         * config/sparc/aout.h (DBX_REGISTER_NUMBER): Delete.
7702         * config/sparc/litecoff.h (DBX_REGISTER_NUMBER): Likewise.
7703         * config/sparc/netbsd-elf.h (DBX_REGISTER_NUMBER): Likewise.
7704         * config/sparc/sol2.h (DBX_REGISTER_NUMBER): Likewise.
7705         * config/sparc/sparc-protos.h: Delete sparc_flat_* prototypes.
7706         * config/sparc/sparc.c: Likewise.
7707         (sparc_output_function_prologue): Remove TARGET_FLAT handling.
7708         (sparc_nonflat_function_prologue): Rename into sparc_function_prologue.
7709         (sparc_output_function_epilogue): Remove TARGET_FLAT handling.
7710         (sparc_nonflat_function_epilogue): Rename into sparc_function_epilogue.
7711         (struct sparc_frame_info, current_frame_info, zero_frame_info): Delete.
7712         (sparc_flat_must_save_register_p): Likewise.
7713         (sparc_flat_compute_frame_size): Likewise.
7714         (sparc_flat_save_restore): Likewise.
7715         (sparc_flat_function_prologue): Likewise.
7716         (sparc_flat_function_epilogue): Likewise.
7717         (sparc_flat_epilogue_delay_slots): Likewise.
7718         (sparc_flat_eligible_for_epilogue_delay): Likewise.
7719         (sparc_function_ok_for_sibcall): Remove TARGET_FLAT handling.
7720         * config/sparc/sparc.h (MASK_FLAT, TARGET_FLAT): Delete.
7721         (TARGET_SWITCHES): Remove -mflat and all -mxxx (xxx:chip) options.
7722         (SPARC_INCOMING_INT_ARG_FIRST): Remove TARGET_FLAT handling.
7723         (CONDITIONAL_REGISTER_USAGE): Likewise.
7724         (FRAME_POINTER_REQUIRED): Likewise.
7725         (INITIAL_ELIMINATION_OFFSET): Likewise.
7726         (BASE_RETURN_VALUE_REG): Likewise.
7727         (BASE_OUTGOING_VALUE_REG): Likewise.
7728         (BASE_PASSING_ARG_REG): Likewise.
7729         (BASE_INCOMING_ARG_REG): Likewise.
7730         (INCOMING_REGNO): Likewise.
7731         (OUTGOING_REGNO): Likewise.
7732         (LOCAL_REGNO): Likewise.
7733         (DELAY_SLOTS_FOR_EPILOGUE): Likewise.
7734         (ELIGIBLE_FOR_EPILOGUE_DELAY): Likewise.
7735         (EPILOGUE_USES): Likewise.
7736         * config/sparc/sparc.md ("isa" attribute): Change "v6" into "v7".
7737         ("flat" attribute): Delete.
7738         (do_builtin_setjmp_setup): Remove TARGET_FLAT and "flat" attribute
7739         handling.
7740         (call followed by jump define_peephole's): Delete.
7741         (exception_receiver): Likewise.
7742         (builtin_setjmp_receiver): Likewise.
7743         * config/sparc/t-sparclite (MULTILIB_OPTIONS): Remove -mflat.
7744
7745 2004-02-03  Paolo Bonzini  <bonzini@gnu.org>
7746
7747         PR c/11658
7748         PR c/13994
7749         * Makefile.in (c-parse.o, c-convert.o, c-typeck.o): Depend
7750         on langhooks.h.
7751         * objc/Make-lang.in (objc-parse.o): Depend on langhooks.h.
7752         * c-parse.in, c-convert.c, c-typeck.c, objc/objc-act.c:
7753         Include langhooks.h.  Replace c_common_truthvalue_conversion
7754         with the truthvalue_conversion language hook throughout.
7755         (expr_no_commas): Call default_conversion before save_expr
7756         for the first term of the production 'x ? : y'.
7757         * c-common.c (c_common_truthvalue_conversion): Remove
7758         obsolete block.  Invoke recursively the hook instead
7759         of this function.
7760         * c-convert.c (convert): handle ERROR_MARK_NODE.
7761         * c-typeck.c (build_binary_op): handle ERROR_MARK_NODE
7762         returned by the truthvalue_conversion language hook.
7763         * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
7764         c_objc_common_truthvalue_conversion.
7765         * c-objc-common.c (c_objc_common_truthvalue_conversion):
7766         New function.
7767         * c-tree.h (c_objc_common_truthvalue_conversion): Declare it.
7768         * objc/objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Use
7769         c_objc_common_truthvalue_conversion.
7770
7771 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
7772
7773         * config/c4x/c4x.h (FUNCTION_VALUE): Use gen_rtx_REG instead
7774         of gen_rtx.
7775         (LIBCALL_VALUE): Likewise.
7776         * config/ip2k/ip2k.c (mdr_try_propagate_clr_sequence): Use
7777         gen_rtx_CC0 instead of gen_rtx.
7778         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use
7779         gen_rtx_fmt_e and gen_rtx_fmt_ee instead of gen_rtx.
7780         (m68hc11_expand_compare): Use gen_rtx_fmt_ee instead of
7781         gen_rtx.
7782         (m68hc11_emit_logical): Likewise.
7783
7784 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
7785
7786         * config/alpha/alpha.c, config/arm/arm.c, config/c4x/c4x.c,
7787         config/fr30/fr30.md, config/frv/frv.c, config/frv/frv.md,
7788         config/h8300/h8300.c, config/ia64/ia64.c, config/ip2k/ip2k.md,
7789         config/m32r/m32r.md, config/m68hc11/m68hc11.c,
7790         config/mips/mips.md, config/mmix/mmix.c,
7791         config/mn10300/mn10300.c, config/mn10300/mn10300.md,
7792         config/ns32k/ns32k.c, config/pa/pa.md, config/pdp11/pdp11.c,
7793         config/rs6000/altivec.md, config/s390/s390.c,
7794         config/s390/s390.h, config/s390/s390.md, config/sh/sh.c,
7795         config/sh/sh.h, config/sh/sh.md, config/stormy16/stormy16.c:
7796         Use const0_rtx instead of GEN_INT (0).  Do the same for other
7797         constants that are readily available.
7798
7799 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
7800
7801         * doloop.c, optabs.c, regmove.c, sched-deps.c,
7802         config/i386/i386.c, config/i386/i386.md: Use const0_rtx
7803         instead of GEN_INT (0).  Do the same for other constants that
7804         are readily available.
7805
7806 2004-02-03  Kazu Hirata  <kazu@cs.umass.edu>
7807
7808         * combine.c (simplify_set): Use gen_rtx_fmt_e instead of
7809         gen_rtx.
7810         * emit-rtl.c (init_emit_once): Use gen_rtx_PC and gen_rtx_CC0
7811         instead of gen_rtx.
7812         * reload1.c (init_elim_table): Use gen_rtx_fmt_e instead of
7813         gen_rtx.
7814         * config/ns32k/ns32k.md (udivmodhi4): Use gen_rtx_IOR and
7815         gen_rtx_ASHIFT instead of gen_rtx.
7816         (udivmodqi4): Likewise.
7817
7818 2004-02-02  Richard Henderson  <rth@redhat.com>
7819
7820         PR target/13789
7821         * expr.c (store_expr): Use force_operand before emit_move_insn.
7822
7823 2004-02-02  Jeff Law  <law@redhat.com>
7824             Roger Sayle  <roger@eyesopen.com>
7825
7826         * tree.c (commutative_tree_code, associative_tree_code): New
7827         functions.
7828         (iterative_hash_expr): Use commutative_tree_code.
7829         * tree.h (commutative_tree_code, associative_tree_code): Declare.
7830         * fold-const.c (operand_equal_p): Use commutative_tree_code
7831         rather than inlining the commutativity check.
7832         (fold): Likewise.
7833
7834 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
7835
7836         * system.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Poison.
7837         * config/frv/frv-protos.h: Remove the prototype for
7838         frv_function_arg_keep_as_reference.
7839         * config/frv/frv.c (frv_function_arg_keep_as_reference):
7840         Remove.
7841         * config/frv/frv.h (FUNCTION_ARG_KEEP_AS_REFERENCE): Likewise.
7842         * config/stormy16/stormy16.h: Remove the commented-out
7843         definition of FUNCTION_ARG_KEEP_AS_REFERENCE.
7844
7845 2004-02-03  Alan Modra  <amodra@bigpond.net.au>
7846
7847         PR target/13914
7848         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Use ap
7849         for retaddr_column.
7850
7851 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
7852
7853         * genemit.c (gen_exp): Generate gen_rtx_fmt_e* instead of
7854         gen_rtx.
7855
7856 2004-02-02  Eric Christopher  <echristo@redhat.com>
7857             Zack Weinberg  <zack@codesourcery.com>
7858
7859         * c-opts.c (c_common_handle_option): Add -finput-charset.
7860         * c.opt: Ditto.
7861         * cppcharset.c (one_iso88591_to_utf8): Remove.
7862         (convert_iso88591_utf8): Ditto.
7863         (conversion_tab): Remove 8859-1 converter.
7864         (_cpp_input_to_utf8): Remove.
7865         (_cpp_init_iconv_buffer): Ditto.
7866         (_cpp_close_iconv_buffer): Ditto.
7867         (_cpp_convert_input): New function.
7868         (_cpp_default_encoding): Ditto.
7869         * cpphash.h: Add/remove prototypes for above.
7870         * cppfiles.c (read_file_guts): Use _cpp_convert_input.
7871         * cppinit.c (cpp_create_reader): Use _cpp_default_encoding
7872         for narrow execution and input character sets.
7873         * cpplib.c (cpp_push_buffer): Delete uses of removed functions.
7874         * doc/cppopts.texi: Document -finput-charset.
7875
7876 2004-02-02  David Edelsohn  <edelsohn@gnu.org>
7877
7878         * rtlanal.c (refers_to_regno_p): Test regno, not inner_regno,
7879         against FIRST_PSEUDO_REGISTER.
7880
7881 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
7882
7883         * doc/invoke.texi (SPARC options): Further improve.
7884
7885 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
7886
7887         * config/arm/arm.md, config/c4x/c4x.md, config/cris/cris.md,
7888         config/h8300/h8300.c, config/ip2k/ip2k.md,
7889         config/iq2000/iq2000.c, config/mips/mips.c,
7890         config/rs6000/rs6000.c, config/rs6000/rs6000.md,
7891         config/sh/sh.c, config/sh/sh.md, config/stormy16/stormy16.c,
7892         config/v850/v850.md: Fix indentation.
7893
7894 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
7895
7896         * config/sparc/sparc.c (function_arg_slotno): Align TImode
7897         arguments on a 16-byte boundary in the parameter array if ARCH64.
7898         Split handling of TFmode.
7899
7900 2004-02-02  Paolo Bonzini  <bonzini@gnu.org>
7901
7902         * rtlanal.c (reg_overlap_mentioned_p) [!ENABLE_CHECKING]:
7903         Don't test CONSTANT_P (x).
7904         (reg_overlap_mentioned_p): Merge check for STRICT_LOWPART,
7905         ZERO_EXTRACT, SIGN_EXTRACT with the switch statement.
7906         Fix misindentation.
7907
7908 2004-02-02  Eric Botcazou  <ebotcazou@libertysurf.fr>
7909
7910         * doc/invoke.texi (SPARC options): Document that -mflat is deprecated.
7911
7912 2004-02-02  Kazu Hirata  <kazu@cs.umass.edu>
7913
7914         * config/arc/arc.md, config/arm/arm.c, config/arm/arm.md,
7915         config/c4x/c4x.c, config/c4x/c4x.md, config/cris/cris.md,
7916         config/frv/frv.c, config/h8300/h8300.c, config/ip2k/ip2k.md,
7917         config/iq2000/iq2000.c, config/m32r/m32r.c,
7918         config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.md,
7919         config/mn10300/mn10300.c, config/rs6000/rs6000.c,
7920         config/rs6000/rs6000.md, config/sh/sh.c, config/sh/sh.md,
7921         config/stormy16/stormy16.c, config/v850/v850.md,
7922         config/xtensa/xtensa.c: Replace gen_rtx with gen_rtx_fmt_e*.
7923
7924 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
7925
7926         * config/mcore/mcore.c (block_move_sequence): Replace
7927         gen_rtx_CONST_INT with GEN_INT.
7928
7929 2004-02-02  Jan Hubicka  <jh@suse.cz>
7930
7931         * alias.c (record_set): Use hard_regno_nregs.
7932         * bt-load.c (find_btr_reference, note_btr_set): Likewise.
7933         * builtins.c (apply_args_size): Likewise.
7934         * caller-save.c (setup_save_areas, save_call_clobbered_regs,
7935         mark_set_regs, add_stored_regs, mark_referenced_regs,
7936         insert_restore, insert_save, insert_one_insn): Likewise.
7937         * cfgcleanup.c: Include regs.h
7938         (mark_effect, mentions_nonequal_regs): Likewise.
7939         * cfgrtl.c (mark_killed_regs): Likewise
7940         * combine.c (update_table_tick, record_value_for_reg,
7941         record_dead_and_set_regs, get_last_value_validate, use_crosses_set_p,
7942         reg_dead_at_p_1, reg_dead_at_p, mark_used_regs_combine, move_deaths,
7943         reg_bitfield_target_p, distribute_notes): Likewise.
7944         * cse.c (mention_regs, insert, invalidate, invalidate_for_call,
7945         exp_equiv_p, cse_insn): Likewise.
7946         * cselib.c (cselib_lookup): Likewise.
7947         (cselib_invalidate_regno, cselib_record_set): Likewise.
7948         * df.c (df_ref_record): Likewise.
7949         * dwarf2out.c (reg_loc_descriptor, multiple_reg_loc_descriptor):
7950         Likewise.
7951         * flow.c (mark_reg, insn_dead_p, mark_set_1, mark_used_reg,
7952         count_or_remove_death_notes_bb): Likewise.
7953         * function.c (aggregate_value_p, keep_stack_depressed): Likewise.
7954         * gloval.c (global_alloc, find_reg, mark_reg_store, mark_reg_conflicts,
7955         mark_reg_death, set_preference, reg_becomes_live, reg_dies): Likewise.
7956         * integrate.c (mark_stores): Likewise.
7957         * jump.c (delete_prior_computation): Likewise.
7958         * lcm.c (reg_dies, reg_becomes_live): Likewise.
7959         * local-alloc.c (combine_regs, find_free_reg, post_mark_life): Likewise.
7960         * loop.c (LOOP_REGNO_NREGS): Likewise.
7961         * postreload.c (reload_combine, reload_combine_note_store,
7962         reload_combine_note_use, reload_cse_move2add, move2add_note_store): Likewise.
7963         * ra-colorize.c (combine, color_usable_p, get_free_reg,
7964         calculate_dont_begin, calculate_dont_begin, colorize_one_web,
7965         try_recolor_web, insert_coalesced_conflicts, check_colors,
7966         break_precolored_alias): Likewise.
7967         * ra-debug.c: Include regs.h
7968         (ra_print_rtx_object): Likewise.
7969         * ra-rewrite (choose_spill_colors): Likewise.
7970         (spill_same_color_p, update_spill_colors, spill_is_free): Likewise.
7971         * ra.c (init_ra): Likewise.
7972         * recog.c (reg_fits_class_p, peep2_reg_dead_p,
7973         peep2_find_free_register): Likewise.
7974         * reg-stack.c (subst_stack_regs_pat, convert_regs_exit): Likewise.
7975         * regclass.c (hard_regno_nregs): New array.
7976         (init_reg_modes_once): Initialize it.
7977         (choose_hard_reg_mode): Use it.
7978         (record_reg_classes): Likewise.
7979         * regmove.c (mark_flags_life_zones): Likewise.
7980         * regrename.c (note_sets, clear_dead_regs, regrename_optimize,
7981         scan_rtx_reg, dump_def_use_chain, kill_value, set_value_regno,
7982         copy_value, maybe_mode_change, find_oldest_value_reg,
7983         copyprop_hardreg_forward_1):
7984         * regs.h (hard_regno_nregs): Declare.
7985         * realod.c (reload_inner_reg_of_subreg): Use it.
7986         (push_reload, combine_reloads, find_dummy_reload,
7987         hard_reg_set_here_p, operands_match_p, decompose, find_reloads,
7988         refers_to_regno_for_reload_p, find_equiv_reg, regno_clobbered_p,
7989         reload_adjust_reg_for_mode): Likewise.
7990         * reload1.c (compute_use_by_pseudos, count_pseudo,
7991         count_spilled_pseudo, find_reg, find_reload_regs, mark_home_live,
7992         spill_hard_reg, forget_old_reloads_1, mark_reload_reg_in_use,
7993         clear_reload_reg_in_use, reload_reg_free_for_value_p, free_for_value_p
7994         allocate_reload_reg, choose_reload_regs, emit_reload_insns,
7995         delete_output_reload): Likewise.
7996         * resource.c (update_live_status, mark_referenced_resources,
7997         mark_set_resources, mark_target_live_regs): Likewise.
7998         * rtlanal.c:  Include regs.h
7999         (refers_to_regno_p, reg_overlap_mentioned_p, dead_or_set_p,
8000         dead_or_set_regno_p, find_regno_note, find_reg_fusage,
8001         subreg_regno_offset, subreg_offset_representable_p,
8002         hoist_test_store): Likewise.
8003         * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise.
8004         * sched-rgn.c (check_live_1, update_live_1): Likewise.
8005         * stmt.c: Include regs.h
8006         (decl_conflicts_with_clobbers_p): Likewise.
8007         * varasm.c (make_decl_rtl): Likewise.
8008         * Makefile.in (cfgcleanup.o, rtlanal.o, ra-debug.o): Add regs.h dependnecy.
8009
8010 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
8011
8012         * config/arm/arm.c, config/arm/arm.h, config/arm/arm.md,
8013         config/arm/linux-gas.h, config/arm/netbsd-elf.h,
8014         config/arm/netbsd.h, config/arm/pe.c, config/avr/avr.c,
8015         config/avr/avr.h, config/avr/avr.md, config/c4x/c4x.h,
8016         config/cris/cris.h, config/fr30/fr30.h, config/frv/frv.c,
8017         config/frv/frv.h, config/ip2k/ip2k.c, config/iq2000/iq2000.c,
8018         config/iq2000/iq2000.h, config/m32r/m32r.c,
8019         config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
8020         config/m68hc11/m68hc11.md, config/m68k/m68k.md,
8021         config/mcore/mcore.c, config/mcore/mcore.h,
8022         config/mcore/mcore.md, config/mips/mips.c,
8023         config/ns32k/ns32k.h, config/ns32k/ns32k.md,
8024         config/rs6000/rs6000.c, config/s390/s390.c,
8025         config/s390/s390.md, config/sparc/sparc.c, config/v850/v850.c,
8026         config/xtensa/xtensa.h, config/xtensa/xtensa.md: Replace
8027         "gen_rtx (FOO, " with "gen_rtx_FOO (".
8028
8029 2004-02-01  Kazu Hirata  <kazu@cs.umass.edu>
8030
8031         * config/h8300/h8300.md (two peephole2's): New.
8032
8033 2004-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
8034
8035         * config/sparc/sol2-bi.h: Handle TARGET_CPU_ultrasparc3.
8036         (CPP_CPU_SPEC): Handle -mcpu=ultrasparc3.
8037         (ASM_CPU_SPEC): Likewise
8038         * config/sparc/sol2.h: Handle TARGET_CPU_ultrasparc3.
8039         (ASM_CPU_SPEC): Remove -mcpu=v8plus.  Handle -mcpu=ultrasparc3.
8040
8041 2004-02-01  Roger Sayle  <roger@eyesopen.com>
8042
8043         * builtins.c (expand_builtin_pow): If flag_unsafe_math_optimizations
8044         isn't set, don't call expand_builtin_mathfn_2 to use the pow optab.
8045         (expand_builtin): Always call expand_builtin_pow.
8046
8047 2004-02-01  Roger Sayle  <roger@eyesopen.com>
8048
8049         * builtins.def (BUILT_IN_SIGNBIT, BUILT_IN_SIGNBITF,
8050         BUILT_IN_SIGNBITL): New GCC builtins.
8051         * builtins.c (expand_builtin_signbit): New function to RTL expand
8052         calls to signbit, signbitf and signbitl as inline intrinsics.
8053         (expand_builtin): Call expand_builtin_signbit for BUILT_IN_SIGNBIT*.
8054         (fold_builtin_signbit): New function to perform constant folding
8055         of signbit, signbitf and signbitl.
8056         (fold_builtin): Call fold_builtin_signbit for BUILT_IN_SIGNBIT*.
8057
8058         * doc/extend.texi: Document new signbit{,f,l} builtins.
8059
8060 2004-02-01  Richard Sandiford  <rsandifo@redhat.com>
8061
8062         * config/mips/mips.md (adddi3_internal_2): Remove superfluous %s.
8063
8064 2004-02-01  Chris Demetriou  <cgd@broadcom.com>
8065
8066         * config/mips/mips.h (PREDICATE_CODES): Remove entries for
8067         "mips_const_double_ok" and "simple_memory_operand", which were
8068         removed from the MIPS port with the mips-3_4-rewrite branch merge.
8069         * config/mips/mips.c (mips16_lay_out_constants): Update comment
8070         for removal of simple_memory_operand.
8071
8072 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8073
8074         * config/c4x/c4x.md: Use GEN_INT instead of
8075         gen_rtx (CONST_INT, ...).
8076
8077 2004-01-31  Richard Henderson  <rth@redhat.com>
8078
8079         * varasm.c (output_constant_pool): Don't zap the pool.
8080
8081 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8082
8083         * genrecog.c (decision_type): Add DT_const_int.
8084         (write_cond) [DT_const_int]: Print a comparison against small
8085         constant.
8086         (write_node): Simplify comparisons against small constants
8087         before printing tests.
8088
8089 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8090
8091         * config/m32r/m32r.c (m32r_load_pic_register): Use GEN_INT
8092         instead of gen_rtx_CONST_INT.
8093
8094 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8095
8096         * config/xtensa/xtensa.h (DYNAMIC_CHAIN_ADDRESS): Use GEN_INT
8097         instead of gen_rtx_CONST_INT.
8098
8099 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8100
8101         * target-def.h (TARGET_STRICT_ARGUMENT_NAMING): Define as
8102         hook_bool_CUMULATIVE_ARGS_false.
8103         * targhooks.c (default_strict_argument_naming): Rename to
8104         hook_bool_CUMULATIVE_ARGS_false.
8105         * targhooks.h: Update the prototype for
8106         default_strict_argument_naming.
8107
8108 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8109
8110         * config/sh/sh.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
8111         * config/sh/sh.h: Likewise.
8112         * config/sh/sh.md: Likewise.
8113
8114 2004-01-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
8115
8116         * doc/invoke.texi (SPARC options): Restructure and update.
8117
8118 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8119
8120         * system.h (PROMOTE_FUNCTION_ARGS, STRUCT_VALUE_INCOMING, and
8121         STRICT_ARGUMENT_NAMING): Poison.
8122         * target-def.h (TARGET_PROMOTE_FUNCTION_ARGS): Define as
8123         hook_bool_tree_false.
8124         * targhooks.c (default_promote_function_args): Remove.
8125         (default_struct_value_rtx): Don't use STRUCT_VALUE_INCOMING.
8126         Don't check incoming.
8127         (default_strict_argument_naming): Don't use
8128         STRICT_ARGUMENT_NAMING.
8129         * targhooks.h: Remove the prototype for
8130         default_promote_function_args.
8131
8132 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8133
8134         * config/i386/i386-protos.h: Remove the prototype for
8135         ix86_setup_incoming_varargs.
8136         * config/i386/i386.c (TARGET_SETUP_INCOMING_VARARGS): New.
8137         (ix86_setup_incoming_varargs): Make it static.
8138         * config/i386/i386.h (SETUP_INCOMING_VARARGS): Remove.
8139
8140 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8141
8142         * alloc-pool.c: Fix comment typos.
8143         * builtin-types.def: Likewise.
8144         * builtins.def: Likewise.
8145         * c-pretty-print.c: Likewise.
8146         * df.h: Likewise.
8147         * reload1.c: Likewise.
8148
8149 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8150
8151         * doc/invoke.texi: Follow spelling conventions.
8152         * doc/tm.texi: Likewise.
8153
8154 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8155
8156         * doc/install.texi: Fix typos.
8157         * doc/invoke.texi: Likewise.
8158
8159 2004-01-31  Ulrich Weigand  <uweigand@de.ibm.com>
8160
8161         * config/s390/s390.c (s390_decompose_address): Do not treat virtual
8162         registers as pointers.
8163         * config/s390/s390.md ("*la_31" second peephole2): Fix incorrect mode.
8164
8165 2004-01-31  Paolo Bonzini  <bonzini@gnu.org>
8166
8167         * combine.c (cse_main): Set gen_lowpart to gen_lowpart_for_combine
8168         and restore it to gen_lowpart_general on exit.
8169         (gen_lowpart_for_combine): Adjust all callers to go through
8170         gen_lowpart.
8171         * cse.c (cse_main): Set gen_lowpart to gen_lowpart_if_possible
8172         and restore it to gen_lowpart_general on exit.
8173         (gen_lowpart_if_possible): Adjust all callers to go through
8174         gen_lowpart.
8175         * emit-rtl.c (gen_lowpart_general): New name of gen_lowpart.
8176         (gen_lowpart): Declare as pointer to function, initialized to
8177         gen_lowpart_general.
8178         * rtl.h (gen_lowpart): Declare as pointer to function.
8179
8180 2004-01-31  Kazu Hirata  <kazu@cs.umass.edu>
8181
8182         * bt-load.c: Replace "gen_rtx (FOO, " with "gen_rtx_FOO (".
8183         * calls.c: Likewise.
8184         * emit-rtl.c: Likewise.
8185         * function.c: Likewise.
8186         * reload1.c: Likewise.
8187         * config/i386/cygming.h: Likewise.
8188         * config/i386/i386.c: Likewise.
8189         * config/i386/winnt.c: Likewise.
8190
8191 2004-01-30  Dara Hazeghi  <dhazeghi@yahoo.com>
8192
8193         PR bootstrap/9249
8194         * doc/install.texi: document --enable-__cxa_atexit option.
8195         * configure.ac: Disable __cxa_atexit if not supported.
8196         * configure: Regenerate.
8197
8198 2003-01-30  Daniel Berlin  <dberlin@dberlin.org>
8199
8200         * ggc-zone.c (ggc_free): New function.
8201
8202 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8203
8204         alloc-pool.c, c-lex.c, c-pragma.h, c-semantics.c, cfghooks.c,
8205         cfghooks.h, cfglayout.c, cfgloopmanip.c, debug.c, debug.h,
8206         flow.c, genextract.c, ggc-common.c, ggc-page.c, ggc.h,
8207         ifcvt.c, jump.c, loop-unswitch.c, timevar.c, timevar.def,
8208         tree-optimize.c, vmsdbgout.c, config/fp-bit.c,
8209         config/alpha/alpha.c, config/alpha/alpha.h,
8210         config/alpha/alpha.md, config/alpha/unicosmk.h,
8211         config/alpha/vms.h, config/arm/linux-elf.h, config/avr/avr.c,
8212         config/c4x/c4x-protos.h, config/c4x/c4x.md,
8213         config/d30v/d30v.h, config/frv/frv.md, config/frv/frvbegin.c,
8214         config/frv/frvend.c, config/i386/cygming.h,
8215         config/i386/djgpp.h, config/i386/emmintrin.h,
8216         config/i386/gthr-win32.c, config/i386/i386-interix.h,
8217         config/i386/i386-protos.h, config/i386/openbsd.h,
8218         config/i386/winnt.c, config/i386/xm-mingw32.h,
8219         config/i386/xmmintrin.h, config/ia64/ia64.md,
8220         config/iq2000/iq2000.md, config/m32r/m32r.md,
8221         config/m68k/m68k.md, config/mcore/mcore-elf.h,
8222         config/mcore/mcore.md, config/mips/elf.h, config/mips/elf64.h,
8223         config/mips/iris5gas.h, config/mips/iris6.h,
8224         config/mips/iris6gas.h, config/mips/linux.h,
8225         config/mips/mips.md, config/mips/netbsd.h,
8226         config/mips/openbsd.h, config/mips/windiss.h,
8227         config/pa/fptr.c, config/rs6000/aix.h,
8228         config/rs6000/altivec.h, config/rs6000/darwin.h,
8229         config/rs6000/xcoff.h, config/s390/s390-protos.h,
8230         config/s390/s390.c, config/s390/s390.h, config/s390/s390.md,
8231         config/sh/netbsd-elf.h, config/sh/sh.h, config/sh/vxworks.h,
8232         config/sparc/sol2.h: Update copyright.
8233
8234 2004-01-30  Kelley Cook  <kcook@gcc.gnu.org>
8235
8236         * Makefile.in (abs_docdir, abs_srcdir): Define.
8237         (doc/%.dvi, doc/gccinstall.dvi): Use $(abs_docdir).
8238
8239 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8240
8241         * genconfig.c (main): Have CC0_P check its operand even on a
8242         target without cc0.
8243
8244 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8245
8246         * config/alpha/alpha.c: Remove mentions of deprecates macros
8247         in comments, remove some target-independent comments about target
8248         macros, and/or add minimal function comments for target hook
8249         implementations.
8250         * config/avr/avr.c: Likewise.
8251         * config/ia64/ia64.h: Likewise.
8252         * config/ip2k/ip2k.c: Likewise.
8253         * config/iq2000/iq2000.c: Likewise.
8254         * config/m32r/m32r.h: Likewise.
8255         * config/m68hc11/m68hc11.c: Likewise.
8256         * config/mcore/mcore.c: Likewise.
8257         * config/mmix/mmix.c: Likewise.
8258         * config/mn10300/mn10300.c: Likewise.
8259         * config/pa/pa.c: Likewise.
8260         * config/pdp11/pdp11.c: Likewise.
8261         * config/rs6000/rs6000.h: Likewise.
8262         * config/sh/sh.c: Likewise.
8263         * config/sh/sh.h: Likewise.
8264         * config/sparc/sparc.c: Likewise.
8265         * config/sparc/sparc.h: Likewise.
8266         * config/stormy16/stormy16.c: Likewise.
8267         * config/xtensa/xtensa.c: Likewise.
8268
8269 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
8270
8271         PR optimization/12147
8272         * reload1.c (reload_reg_free_p): RELOAD_OTHER conflicts with
8273         RELOAD_FOR_OPADDR_ADDR.
8274         (reload_reg_reaches_end_p): RELOAD_FOR_OTHER_ADDRESS register
8275         might be reused as RELOAD_FOR_OPADDR_ADDR register.
8276
8277 2004-01-30  Jan Hubicka  <jh@suse.cz>
8278
8279         * reload.c (get_secondary_mem): Fix updating of
8280         secondary_memlocs_elim_used.
8281
8282 2004-01-30  Richard Henderson  <rth@redhat.com>
8283
8284         * varasm.c (struct rtx_const, struct pool_constant): Remove.
8285         (MAX_RTX_HASH_TABLE): Remove.
8286         (const_rtx_hash_table, const_rtx_sym_hash_table): Remove.
8287         (first_pool, last_pool, pool_offset): Remove.
8288         (struct rtx_constant_pool): Split out from ...
8289         (struct varasm_status): ... here.  Reference one via pointer.
8290         (struct constant_descriptor_rtx): Merge struct pool_constant.
8291         (SYMHASH): Remove.
8292         (decode_rtx_const): Remove.
8293         (const_hash_rtx, compare_constant_rtx): Remove.
8294         (record_constant_rtx): Remove.
8295         (const_desc_rtx_hash, const_desc_rtx_eq): New.
8296         (const_desc_rtx_sym_hash, const_desc_rtx_sym_eq): New.
8297         (const_rtx_hash_1, const_rtx_hash): New.
8298         (init_varasm_status): Allocate a rtx_constant_pool, and its hashes.
8299         (simplify_subtraction): Use simplify_rtx.
8300         (force_const_mem): Rewrite to use new data structures.
8301         (find_pool_constant): Likewise.
8302         (get_pool_constant, get_pool_constant_mark,
8303         get_pool_constant_for_function, get_pool_mode,
8304         get_pool_mode_for_function, get_pool_offset, get_pool_size): Likewise.
8305         (output_constant_pool_2): Split out from output_constant_pool.
8306         (output_constant_pool_1): Likewise.  Use new pool datastructures.
8307         (output_constant_pool): Zap entire pool datastructure.
8308         (mark_constant): Use new pool datastructures.
8309         (mark_constants): Use for_each_rtx.
8310         (mark_constant_pool): Use new pool datastructures.
8311
8312 2004-01-30  Fariborz Jahanian <fjahanian@apple.com>
8313
8314         * config/rs6000/rs6000.c (rs6000_emit_move): Remove #if 0.
8315         Copy operands[1] to pseudo for simplify_gen_subreg.
8316
8317 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8318
8319         * gcse.c (bypass_block): Fix a typo in the previous check-in
8320         to the file.
8321
8322 2004-01-30  Andrew Pinski <pinskia@physics.uc.edu>
8323
8324         * toplev.c: Include alloc-pool.h.
8325         * Makefile.in (toplev.c): Update dependencies.
8326
8327 2004-01-30  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
8328
8329         * combine.c (simplify_shift_const, case XOR): Be careful when
8330         commuting XOR with ASHIFTRT.
8331
8332 2004-01-30  Kazu Hirata  <kazu@cs.umass.edu>
8333             Eric Botcazou  <ebotcazou@libertysurf.fr>
8334
8335         * config/sparc/sparc-protos.h: Remove the prototype for
8336         sparc_builtin_saveregs.
8337         * config/sparc/sparc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
8338         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
8339         (TARGET_PROMOTE_PROTOTYPES): Likewise.
8340         (TARGET_STRUCT_VALUE_RTX): Likewise.
8341         (TARGET_RETURN_IN_MEMORY): Likewise.
8342         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
8343         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
8344         (sparc_builtin_saveregs): Make it static.
8345         (sparc_promote_prototypes): New.
8346         (sparc_struct_value_rtx): Likewise.
8347         (sparc_return_in_memory): Likewise.
8348         * config/sparc/sparc.h: (PROMOTE_FUNCTION_ARGS): Remove.
8349         (PROMOTE_FUNCTION_RETURN): Likewise.
8350         (RETURN_IN_MEMORY): Likewise.
8351         (STRUCT_VALUE): Likewise.
8352         (STRUCT_VALUE_INCOMING): Likewise.
8353         (EXPAND_BUILTIN_SAVEREGS): Likewise.
8354         (STRICT_ARGUMENT_NAMING): Likewise.
8355         (PROMOTE_PROTOTYPES): Likewise.
8356
8357         * config/sparc/sparc.h (PROMOTE_MODE): Use word_mode.
8358
8359 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
8360
8361         PR c/12818
8362         * varasm.c (const_hash_1) <STRING_CST>: Use the
8363         address to compute the hash value if flag_writable_strings.
8364         (compare_constant) <STRING_CST>: Compare the addresses
8365         if flag_writable_strings.
8366         (build_constant_desc): Do not copy the expression for a
8367         STRING_CST if flag_writable_strings.
8368
8369 2004-01-30  Jan Hubicka  <jh@suse.cz>
8370
8371         * alloc-pool.c: Include hashtab.h
8372         (alloc_pool_descriptor): New structure
8373         (alloc_pool_hash): New global variable.
8374         (hash_descriptor, eq_descriptor, alloc_pool_descriptor): New.
8375         (create_alloc_pool): Update statistics.
8376         (free_alloc_pool): Likewise.
8377         (pool_alloc): Likewise.
8378         (output_info): New structure
8379         (print_statistics, dump_alloc_pool_statistics): New function.
8380         * alloc-pool.h (alloc_pool_def): Turn name to be constant.
8381         (dump_alloc_pool_statistics): Declare.
8382         * toplev.c (finalize):  Dump statistics.
8383
8384         * reload.c (secondary_memlocs_elim_used): New static variable.
8385         (get_secondary_mem): Update it.
8386         (find_reloads): Use it.
8387
8388 2004-01-30  Steven Bosscher <s.bosscher@student.tudelft.nl>
8389
8390         * toplev.c: Fix broken checkin of 2003-12-30, again.
8391
8392 2004-01-30  Ulrich Weigand  <uweigand@de.ibm.com>
8393
8394         * configure.ac (gcc_cv_as_dwarf2_debug_line): Enable test for
8395         s390*-*-* targets by specifying a 'nop' insn.
8396         * configure: Regenerate.
8397
8398 2004-01-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
8399
8400         PR target/11475
8401         * config/sparc/sparc.md (movhi_lo_sum): Tighten predicates.
8402
8403 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
8404
8405         * emit-rtl.c (change_address): Use XEXP (memref, 0) instead
8406         of addr when creating MEM copy.
8407
8408 2004-01-29  Devang Patel  <dpatel@apple.com>
8409
8410         * dwarf2out.c (gen_field_die): Do not equate decl number to die.
8411
8412 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
8413
8414         PR inline-asm/6162
8415         * reload.c (find_reloads): Only support one pair of commutative
8416         operands.
8417
8418 2004-01-29  Roger Sayle  <roger@eyesopen.com>
8419
8420         PR java/13824
8421         * tree.c (unsafe_for_reeval): Handle EXIT_BLOCK_EXPR nodes specially
8422         as their EXIT_BLOCK_LABELED_BLOCK operands can lead to unbounded
8423         recursion.
8424
8425 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
8426
8427         * config/frv/frv.c: Don't mention deprecated macros in
8428         comments.  Remove some target-independent comments about
8429         target macros.
8430         * config/frv/frv.h: Likewise.
8431
8432 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8433
8434         * cfghooks.c (split_block): Set probability and count of the
8435         new edge.
8436
8437 2005-01-29  Josef Zlomek  <zlomekj@suse.cz>
8438
8439         * dwarf2out.c (struct die_struct): Added field decl_id.
8440         (decl_die_table): Changed to hash table.
8441         (decl_die_table_allocated): Deleted.
8442         (decl_die_table_in_use): Deleted.
8443         (DECL_DIE_TABLE_INCREMENT): Deleted.
8444         (decl_die_table_hash): New function.
8445         (decl_die_table_eq): New function.
8446         (lookup_decl_die): Lookup in a hash table.
8447         (equate_decl_number_to_die): Insert into a hash table.
8448         (dwarf2out_init): Init hash table decl_die_table.
8449
8450 2004-01-29  Jakub Jelinek  <jakub@redhat.com>
8451
8452         PR optimization/13424
8453         * expr.c (store_constructor): Revert 2003-12-03 change.
8454
8455         * emit-rtl.c (change_address): Check also if MEM_ATTRS is set as
8456         expected before returning early.  Avoid sharing RTL if they
8457         need to be changed.
8458
8459         * config/i386/i386.c (ix86_expand_movstr): Rework rep_mov and strmov
8460         handling so that memory attributes are preserved.  Don't call
8461         ix86_set_move_mem_attrs.
8462         (ix86_set_move_mem_attrs_1, ix86_set_move_mem_attrs): Removed.
8463         (ix86_expand_clrstr): Rename src argument to
8464         dst.  Rework rep_stos and strset handling so that memory attributes
8465         are preserved.
8466         (ix86_expand_strlen): Pass src argument to
8467         ix86_expand_strlensi_unroll_1.  Rework strlenqi_1 handling so that
8468         memory attributes are preserved.
8469         (ix86_expand_strlensi_unroll_1): Add src argument.  Use
8470         change_address instead of gen_rtx_MEM.
8471         * config/i386/i386.md (strmov, strmov_singleop, rep_mov): New
8472         expanders.
8473         (strmovdi_rex64, strmovsi, strmovsi_rex64, strmovhi, strmovhi_rex64,
8474         strmovqi, strmovqi_rex64): Remove.
8475         (rep_mov*, strmov*): Prefix insn names with *.
8476         (strset, strset_singleop, rep_stos): New expanders.
8477         (strsetdi_rex64, strsetsi, strsetsi_rex64, strsethi, strsethi_rex64,
8478         strsetqi, strsetqi_rex64): Remove.
8479         (rep_stos*, strset*): Prefix insn names with *.
8480         (rep_stosqi_rex64): Likewise.  Fix mode of dirflag reg from DImode
8481         to SImode.
8482         (cmpstrsi): Rework cmpstrqi_1 handling so that memory attributes
8483         are preserved.
8484         (cmpstrqi_nz_1, cmpstrqi_nz_rex_1, cmpstrqi_1, cmpstrqi_rex_1):
8485         Prefix insn names with *.
8486         (cmpstrqi_nz_1, cmpstrqi_1): New expanders.
8487         (strlenqi_1, strlenqi_rex_1): Prefix insn names with *.
8488         (strlenqi_1): New expander.
8489         * config/i386/i386.h (ix86_set_move_mem_attrs): Remove prototype.
8490
8491 2004-01-29  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
8492
8493         * Makefile.in (cfghooks.o): Add TIMEVAR_H and toplev.h dependency.
8494         * basic-block.h (tidy_fallthru_edge, tidy_fallthru_edges, dump_bb,
8495         verify_flow_info): Declaration removed.
8496         * cfg.c (verify_flow_info, dump_bb): Moved to cfghooks.c.
8497         (debug_bb, debug_bb_n): Add argument to dump_bb call.
8498         * cfgcleanup.c (try_simplify_condjump, try_crossjump_to_edge,
8499         try_optimize_cfg, delete_unreachable_blocks): Use delete_basic_block
8500         instead of delete_block.
8501         * cfghooks.c: Include timevar.h and toplev.h.
8502         (cfg_hooks): Define here.
8503         (verify_flow_info, dump_bb): Moved from cfg.c.
8504         (redirect_edge_and_branch, redirect_edge_and_branch_force,
8505         split_block, split_block_after_labels, move_block_after,
8506         delete_basic_block, split_edge, create_basic_block,
8507         create_empty_bb, can_merge_blocks_p, merge_blocks,
8508         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
8509         New functions.
8510         * cfghooks.h (struct cfg_hooks): Added fields name,
8511         make_forwarder_block, tidy_fallthru_edge and
8512         move_block_after. Changed type of verify_flow_info, dump_bb,
8513         split_block fields. Renamed cfgh_split_edge and delete_block
8514         fields.
8515         (redirect_edge_and_branch, redirect_edge_and_branch_force,
8516         split_block, delete_block, split_edge, create_basic_block,
8517         can_merge_blocks_p, merge_blocks): Macros removed.
8518         (cfg_hooks): Do not export.
8519         (verify_flow_info, dump_bb, redirect_edge_and_branch,
8520         redirect_edge_and_branch_force, split_block, split_block_after_labels,
8521         move_block_after, delete_basic_block, split_edge, create_basic_block,
8522         create_empty_bb, can_merge_blocks_p, merge_blocks,
8523         make_forwarder_block, tidy_fallthru_edge, tidy_fallthru_edges):
8524         Declare.
8525         (cfg_layout_rtl_cfg_hooks): Declare.
8526         * cfgloop.c (update_latch_info, mfb_keep_just, mfb_keep_nonlatch):
8527         New functions.
8528         (canonicalize_loop_headers): Use new semantics of make_forwarder_block.
8529         (redirect_edge_with_latch_update): Removed.
8530         (make_forwarder_block): Moved to cfghooks.c, semantics changed.
8531         * cfgloopmanip.c (remove_bbs): Do not update dominators here.
8532         * cfgrtl.c (cfg_layout_split_block, rtl_split_block, rtl_dump_bb,
8533         rtl_delete_block, rtl_split_block, rtl_merge_blocks,
8534         tidy_fallthru_edge, rtl_split_edge, cfg_layout_delete_block,
8535         cfg_layout_merge_blocks, cfg_layout_split_edge): Partly moved to
8536         cfghooks.c.
8537         (rtl_create_basic_block): Coding style fix.
8538         (rtl_tidy_fallthru_edge, rtl_move_block_after,
8539         rtl_make_forwarder_block): New functions.
8540         (update_cfg_after_block_merging): Removed.
8541         (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): Fill in new entries.
8542         * flow.c (verify_wide_reg, verify_local_live_at_start): Add argument
8543         to dump_bb.
8544         * ifcvt.c (merge_if_block, find_cond_trap, find_if_case_1,
8545         find_if_case_2): Don't update dominators.
8546         * timevar.def (TV_CFG_VERIFY): New.
8547         * loop-unswitch.c (unswitch_loop): Don't call add_to_dominance_info.
8548         * cfglayout.c (copy_bbs): Don't call add_to_dominance_info.
8549         * cfgloopmanip.c (split_loop_bb): Don't update dominators.
8550         (remove_bbs): Don't call remove_bbs.
8551         (create_preheader): Use make_forwarder_block.
8552         (mfb_keep_just, mfb_update_loops): New static functions.
8553
8554 2004-01-29  Kazu Hirata  <kazu@cs.umass.edu>
8555
8556         * config/avr/avr.h: Remove target-independent comments about
8557         target macros.
8558
8559 2004-01-28  Daniel Berlin  <dberlin@dberlin.org>
8560
8561         * timevar.c (timevar_print): Mention when checking is enabled.
8562
8563 2004-01-28  Giovanni Bajo  <giovannibajo@gcc.gnu.org>
8564
8565         * c-lex.c (c_lex): Rename to...
8566         (c_lex_with_flags): Add new parameter to get CPP flags.
8567         (c_lex): Thunk to c_lex_with_flags while keeping the old interface.
8568         * c-pragma.h (c_lex_with_flags): Declare.
8569
8570 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8571
8572         * config/mcore/mcore.c (mcore_external_libcall): Add a
8573         comment.
8574         (mcore_return_in_memory): Likewise.
8575
8576 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8577
8578         * config/mcore/mcore-protos.h: Remove the prototype for
8579         mcore_setup_incoming_varargs.
8580         * config/mcore/mcore.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
8581         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
8582         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
8583         (TARGET_PROMOTE_PROTOTYPES): Likewise.
8584         (TARGET_STRUCT_VALUE_RTX): Likewise.
8585         (TARGET_RETURN_IN_MEMORY): Likewise.
8586         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
8587         (mcore_setup_incoming_varargs): Make it static.  Receive the
8588         first argument by reference.  Add argument second_time.
8589         (mcore_external_libcall): New.
8590         (mcore_return_in_memory): Likewise.
8591         * config/mcore/mcore.h (PROMOTE_FUNCTION_ARGS): New.
8592         (PROMOTE_FUNCTION_RETURN): Likewise.
8593         (STRUCT_VALUE): Likewise.
8594         (RETURN_IN_MEMORY): Likewise.
8595         (SETUP_INCOMING_VARARGS): Likewise.
8596         (PROMOTE_PROTOTYPES): Likewise.
8597         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
8598
8599 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8600
8601         * config/m32r/m32r-protos.h: Remove the prototype for
8602         m32r_setup_incoming_varargs.
8603         * config/m32r/m32r.c (TARGET_PROMOTE_PROTOTYPES): New.
8604         (TARGET_STRUCT_VALUE_RTX): Likewise.
8605         (TARGET_RETURN_IN_MEMORY): Likewise.
8606         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
8607         (m32r_return_in_memory): New.
8608         (m32r_setup_incoming_varargs): Make it static.
8609         * config/m32r/m32r.h: Remove #undef of
8610         ASM_OUTPUT_EXTERNAL_LIBCALL.  Remove the commented-out
8611         definitions of PROMOTE_FUNCTION_ARGS and
8612         PROMOTE_FUNCTION_RETURN.
8613         (PROMOTE_PROTOTYPES): Remove.
8614         (RETURN_IN_MEMORY): Likewise.
8615         (STRUCT_VALUE): Likewise.
8616
8617 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8618
8619         * config/m68k/m68k.c (TARGET_PROMOTE_PROTOTYPES): New.
8620         (TARGET_STRUCT_VALUE_RTX): Likewise.
8621         (m68k_struct_value_rtx): Likewise.
8622         * config/m68k/m68k.h (STRUCT_VALUE_REGNUM): Rename to
8623         STRUCT_VALUE_REGNUM.
8624         (PROMOTE_PROTOTYPES): Remove.
8625         * config/m68k/m68kelf.h (STRUCT_VALUE_REGNUM): Rename to
8626         STRUCT_VALUE_REGNUM.
8627         * config/m68k/m68kv4.h (STRUCT_VALUE_REGNUM): Likewise.
8628         * config/m68k/netbsd-elf.h (STRUCT_VALUE_REGNUM): Likewise.
8629
8630 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8631
8632         * config/stormy16/stormy16.c
8633         (TARGET_BUILD_BUILTIN_VA_LIST_TYPE): Rename to
8634         TARGET_BUILD_BUILTIN_VA_LIST.
8635
8636 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8637
8638         * config/v850/v850.c (TARGET_PROMOTE_PROTOTYPES): New.
8639         (TARGET_STRUCT_VALUE_RTX): Likewise.
8640         (TARGET_RETURN_IN_MEMORY): Likewise.
8641         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
8642         (v850_return_in_memory): Likewise.
8643         (v850_setup_incoming_varargs): Likewise.
8644         * config/v850/v850.h (PROMOTE_PROTOTYPES): Remove.
8645         (SETUP_INCOMING_VARARGS): Likewise.
8646         (RETURN_IN_MEMORY): Likewise.
8647         (STRUCT_VALUE): Likewise.
8648
8649 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8650
8651         * config/fr30/fr30.c (TARGET_PROMOTE_PROTOTYPES): New.
8652         (fr30_setup_incoming_varargs): Don't use
8653         STRICT_ARGUMENT_NAMING.
8654         * config/fr30/fr30.h (PROMOTE_PROTOTYPES): Remove.
8655         (STRICT_ARGUMENT_NAMING): Likewise.
8656
8657 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8658
8659         * config/frv/frv-protos.h: Remove the prototype for
8660         frv_expand_builtin_saveregs.
8661         * config/frv/frv.c (TARGET_STRUCT_VALUE_RTX): Likewise.
8662         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
8663         (frv_stack_info): Use FRV_STRUCT_VALUE_REGNUM instead of
8664         STRUCT_VALUE_REGNUM.
8665         (frv_expand_builtin_saveregs): Make it static.
8666         (frv_struct_value_rtx): New.
8667         * config/frv/frv.h (EXPAND_BUILTIN_SAVEREGS): Remove.
8668
8669 2004-01-29  Jan Hubicka  <jh@suse.cz>
8670
8671         PR c++/12850
8672         * cgraph.c (cgraph_remove_node): Clear out saved/insns/arguments and
8673         initial pointers.
8674         * cgraphunit.c (cgraph_finalize_function): Clear out DECL_SAVED_INSNS
8675         for functions that will be only inlined.
8676         (cgraph_mark_function_to_output): Likewise.
8677         (cgraph_expand_function): Sanity check that DECL_DEFER_OUTPUT is clear;
8678         do not clear function body.
8679         * tree-optimize.c (clear_decl_rtl): Use decl_function_context.
8680         (tree_rest_of_compilation): Reorganize the logic releasing function
8681         body to use callgraph datastructure.
8682
8683 2004-01-28  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8684
8685         * pa.md: Change predicate of a peephole2 pattern from reg_or_0_operand
8686         to register_operand.
8687
8688 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
8689
8690         * config/ia64/ia64.md (fetchadd_acq_si, fetchadd_acq_di)
8691         (cmpxchg_acq_si, cmpxchg_acq_di): Exchange match_dup and
8692         match_operand expressions so that all match_dups appear
8693         lexically after their corresponding match_operands.
8694
8695 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8696
8697         * config/h8300/h8300.c (WORD_REG_USED): Use
8698         HARD_FRAME_POINTER_REGNUM instead of FRAME_POINTER_REGNUM.
8699         (compute_saved_regs): Likewise.
8700         (h8300_expand_prologue): Likewise.  Allocate locals after
8701         saving registers.
8702         (h8300_expand_epilogue): Use HARD_FRAME_POINTER_REGNUM instead
8703         of FRAME_POINTER_REGNUM.  Deallocate locals before saving
8704         registers.
8705         (h8300_initial_elimination_offset): Adjust for the new frame
8706         layout, which swaps flips the order of locals and saved
8707         registers.
8708         * config/h8300/h8300.h (FIRST_PSEUDO_REGISTER): Change to 12.
8709         (HARD_FRAME_POINTER_REGNUM): New.
8710         (ELIMINABLE_REGS): Add an elimination rule from
8711         FRAME_POINTER_REGNUM to HARD_FRAME_POINTER_REGNUM.
8712         (REGISTER_NAMES): Add fp.
8713         * config/h8300/h8300.md (FP_REG): Change to 11.
8714         (HFP_REG): New.
8715
8716 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8717
8718         * genrecog.c (write_node): Remove a useless local variable.
8719
8720 2004-01-28  Ian Lance Taylor  <ian@wasabisystems.com>
8721
8722         * Makefile.in (options.c options.h): Use stamp file s-options to
8723         avoid unnecessary rebuilds.
8724         (options.o): New target listing dependencies.
8725         (gtyp-gen.h): Use stamp file s-gtyp-gen.
8726         (STAGESTUFF): Add s-gtyp-gen.
8727
8728 2004-01-28  Richard Henderson  <rth@redhat.com>
8729
8730         * ggc.h (ggc_free): Declare.
8731         * ggc-common.c (ggc_realloc): Use it.
8732         * ggc-page.c: Remove lots of inline markers.
8733         (globals): Add free_object_list.
8734         (ggc_alloc): Tidy.
8735         (ggc_free, validate_free_objects): New.
8736         (poison_pages): Provide default.
8737         (ggc_collect): Call validate_free_objects; emit markers to
8738         the debug file.
8739
8740 2004-01-28  Zack Weinberg  <zack@codesourcery.com>
8741             Jim Wilson  <wilson@specifixinc.com>
8742
8743         * config/ia64/ia64.c (ia64_split_tmode, ia64_split_tmode_move):
8744         Rewrite to use POST_INC/POST_DEC/POST_MODIFY instead of a
8745         scratch pointer.
8746         (ia64_secondary_reload_class): Delete case GR_REGS.
8747         * config/ia64/ia64.md (movti, *movti_internal, movtf, *movtf_internal):
8748         Do not allocate a scratch register.
8749         (reload_inti, reload_outti, reload_intf, reload_outtf): Delete.
8750
8751 2004-01-28  Jan Hubicka  <jh@suse.cz>
8752
8753         * gcse.c (bypass_block): Prevent edges to be unified when we are
8754         about to emit compenstation code.
8755
8756 2004-01-28  Nick Clifton  <nickc@redhat.com>
8757
8758         * config/arm/arm.c (arm_expand_builtin): Force second argument of
8759         the setcwx insn into a register.
8760
8761 2004-01-28  Richard Sandiford  <rsandifo@redhat.com>
8762
8763         * config/fp-bit.c (pack_d): When using paired doubles to implement
8764         a long double, round the high part separately.
8765         (unpack_d): Fix the case in which the high part is a power of two
8766         and the low part is a nonzero value of the opposite sign.
8767
8768 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8769
8770         * config/c4x/c4x.c (TARGET_ASM_EXTERNAL_LIBCALL): New.
8771         (TARGET_STRUCT_VALUE_RTX): Likewise.
8772         (c4x_external_libcall): Likewise.
8773         (c4x_struct_value_rtx): Likewise.
8774         * config/c4x/c4x.h: Remove.
8775         (STRUCT_VALUE_REGNUM): Likewise.
8776         (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise.
8777
8778 2004-01-28  Kazu Hirata  <kazu@cs.umass.edu>
8779
8780         * config/i386/i386.c (TARGET_PROMOTE_PROTOTYPES): New.
8781         (TARGET_STRUCT_VALUE_RTX): Likewise.
8782         * config/i386/i386.h (STRUCT_VALUE_INCOMING): Remove.
8783         (STRUCT_VALUE): Likewise.
8784         (PROMOTE_PROTOTYPES): Likewise.
8785
8786 2004-01-27  Roger Sayle  <roger@eyesopen.com>
8787
8788         * config/pa/pa.c (emit_move_sequence): Check that operand1 is a
8789         CONST_INT before using INTVAL.
8790
8791 2004-01-27  Ulrich Weigand  <uweigand@de.ibm.com>
8792
8793         * config/s390/s390.h (TARGET_DEFAULT): Default to !TARGET_BACKCHAIN.
8794         * config/s390/s390.c (s390_return_addr_rtx): Fail for all but current
8795         frame if !TARGET_BACKCHAIN.
8796         * config/s390/s390.md ("allocate_stack"): Use pattern only if
8797         TARGET_BACKCHAIN.
8798         * doc/invoke.texi (-mbackchain/-mno-backchain): Document new default.
8799
8800 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
8801
8802         * ia64.c (ia64_function_arg): When placing HFAs in integer
8803         registers, do not special case the mode used for complex
8804         types.  Do not advance int_regs until the current register
8805         is full.
8806
8807 2004-01-27  Richard Sandiford  <rsandifo@redhat.com>
8808
8809         PR target/7297
8810         * except.c (init_eh): Use a 5-word __jbuf for __builtin_setjmp().
8811
8812 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
8813
8814         * config/rs6000/rs6000.c (rs6000_emit_move): #if 0 splitting
8815         slow, unaligned loads and stores while debugging.  Fix formatting.
8816
8817 2004-01-27  David Edelsohn  <edelsohn@gnu.org>
8818
8819         * config/rs6000/rs6000.md (save_stack_nonlocal): Use Pmode instead
8820         of computing wmode.
8821         (restore_stack_nonlocal): Same.
8822
8823 2004-01-27  Devang Patel <dpatel@apple.com>
8824
8825         * Makefile.in (dwarf2out.o): Depend on input.h
8826         * dbxout.c (dbx_debug_hooks): Add new empty hook for
8827         imported_module_or_decl.
8828         (xcoff_debug_hooks): Same.
8829         * sdbout.c (sdb_debug_hooks): Same.
8830         * vmsdbgout.c (vmsdbg_debug_hooks): Same.
8831         * debug.c (do_nothing_debug_hooks): Same.
8832         (debug_nothing_tree_tree): New function.
8833         * debug.h (gcc_debug_hooks): New hook, imported_module_or_decl.
8834         * dwarf2out.c: Include input.h.
8835         (dwarf2_debug_hooks): Add new hook for imported_module_or_decl.
8836         (remove_child_TAG): New function.
8837         (dwarf_tag_name): Handle DW_TAG_imported_module.
8838         (gen_subprogram_die): Equate decl number to declaration die. Do not
8839         remove all children dies while reusing declaration die for definition.
8840         Instead, selectively remove only formal parameters.
8841         (gen_variable_die): Equate variable decl to declaration die.
8842         (gen_field_die): Equate field decl to line number.
8843         (force_namespace_die): Replace it with ...
8844         (force_decl_die): ... this.
8845         (force_type_die): New function.
8846         (setup_namespace_context): Replace use of force_namespace_die() with
8847         force_decl_die().
8848         (gen_namespace_die): Same.
8849         (dwarf2out_imported_module_or_decl): New function.
8850
8851 2004-01-27  Bob Wilson  <bob.wilson@acm.org>
8852
8853         * config/xtensa/xtensa.c (xtensa_copy_incoming_a7): Remove SUBREG
8854         on CQImode and CHImode incoming arguments in register a7.
8855         (function_arg): Wrap BLKmode argument in register a7 in a PARALLEL.
8856         * config/xtensa/xtensa.h (BLOCK_REG_PADDING): Define.
8857         * config/xtensa/xtensa.md (movdi, movdf): Only call force_reg or
8858         xtensa_copy_incoming_a7 before reload.
8859
8860 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
8861
8862         * coverage.c (get_coverage_counts): Give a different message
8863         if flag_guess_branch_prob is set.
8864         * predict.c (counts_to_freqs): Return an int.
8865         (estimate_bb_frequencies): If counts_to_freqs returns zero,
8866         calculate estimates.
8867
8868 2004-01-27  Kazu Hirata  <kazu@cs.umass.edu>
8869
8870         * config/iq2000/iq2000-protos.h: Remove the prototype for
8871         iq2000_setup_incoming_varargs.
8872         * config/iq2000/iq2000.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
8873         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
8874         (TARGET_PROMOTE_PROTOTYPES): Likewise.
8875         (TARGET_STRUCT_VALUE_RTX): Likewise.
8876         (TARGET_RETURN_IN_MEMORY): Likewise.
8877         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
8878         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
8879         (iq2000_return_in_memory): Likewise.
8880         (iq2000_setup_incoming_varargs): Make it static.  Receive the
8881         first argument by reference.
8882         * config/iq2000/iq2000.h (PROMOTE_FUNCTION_ARGS): Remove.
8883         (PROMOTE_FUNCTION_RETURN): Likewise.
8884         (PROMOTE_PROTOTYPES): Likewise.
8885         (RETURN_IN_MEMORY): Likewise.
8886         (STRUCT_VALUE): Likewise.
8887         (SETUP_INCOMING_VARARGS): Likewise.
8888         (STRICT_ARGUMENT_NAMING): Likewise.
8889
8890 2004-01-24  James A. Morrison  <ja2morri@uwaterloo.ca>
8891
8892         * fixinc/fixinc.c (test_test): Initialize res.
8893         (start_flexer): Initialize pz_cmd_save.
8894
8895 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
8896
8897         * doc/rtl.texi (Arithmetic): Rewrite entries for PLUS,
8898         SS_PLUS, US_PLUS, LO_SUM, MINUS, SS_MINUS, US_MINUS.
8899
8900 2004-01-27  Zack Weinberg  <zack@codesourcery.com>
8901
8902         PR 7198
8903         * config/ia64/ia64.md (*nmaddsf4, *nmadddf4, *nmadddf4_alts)
8904         (*nmadddf4_trunc, *nmaddxf4, *nmaddxf4_truncsf, *nmaddxf4_truncdf)
8905         (*nmaddxf4_alts, *nmaddxf4_truncdf_alts):
8906         Rewrite pattern as (minus (op 3) (mult (op 1) (op 2))).
8907         Possibly rename pattern for consistency.
8908         Remove ??? comments suggesting that this be done.
8909         (*nmaddsf4_alts, *nmadddf4_truncsf_alts, *nmaddxf4_truncsf_alts):
8910         New patterns.
8911         (divsi3_internal, divdi3_internal_lat, divdi3_internal_thr)
8912         (divsf3_internal_lat, divsf3_internal_thr, sqrtsf2_internal_thr)
8913         (divdf3_internal_lat, divdf3_internal_thr, sqrtdf2_internal_thr)
8914         (divxf3_internal_lat, divxf3_internal_thr, sqrtxf2_internal_thr):
8915         Update to match.
8916
8917 2004-01-27  Ian Lance Taylor  <ian@wasabisystems.com>
8918
8919         * config/arm/arm.c (output_return_instruction): Only restore IP
8920         into SP if frame_pointer_needed.
8921
8922 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
8923
8924         * config/sparc/sparc.c (function_arg_pass_by_reference): Return 1
8925         for SCmode and DCmode if ARCH32.
8926         (sparc_va_arg): Handle SCmode and DCmode by reference if ARCH32.
8927         * config/sparc/sparc.h (RETURN_IN_MEMORY): Return 0 for TCmode
8928         if ARCH32.
8929         (BASE_RETURN_VALUE_REG): Return 32 for all FP modes except TFmode
8930         if ARCH32.
8931         (BASE_OUTGOING_VALUE_REG): Likewise.
8932
8933 2004-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
8934
8935         PR target/10904
8936         PR target/13058
8937         * config/sparc/sparc.h (CANNOT_CHANGE_MODE_CLASS): New.
8938         Forbid mode changes from SImode for lower FP regs if ARCH64.
8939
8940 2004-01-27  J"orn Rennecke <joern.rennecke@superh.com>
8941
8942         * Makefile.in (bt-load.o): Depend on except.h.
8943         * bt-load.c (except.h): #include.
8944         (compute_defs_uses_and_gen): If insn at end of BB can throw
8945         within this function, consider registers used by it unavailable for
8946         btr migration.
8947         (move_btr_def): If insn at end of BB can throw, insert before rather
8948         than after.
8949
8950         * flags.h (flag_btr_bb_exclusive): Declare.
8951         * toplev.c (flag_btr_bb_exclusive): New variable.
8952         (f_options): Add btr-bb-exclusive.
8953         * bt-load.c (augment_live_range): Restore old behaviour if
8954         flag_btr_bb_exclusive is set.
8955         * common.opt: Add entry for -fbtr-bb-exclusive.
8956         * opts.c (common_handle_options): Same.
8957         * doc/invoke.texi: Document -fbtr-bb-exclusive.
8958
8959         * bt-load.c (btrs_live_at_end): New variable.
8960         (compute_defs_uses_and_gen): Compute its pointed-to array.
8961         (clear_btr_from_live_range, add_btr_to_live_range): Update it.
8962         (augment_live_range): When augmenting with a new dominator,
8963         use only its btrs_live_at_end set, but also add in the full set
8964         of the old dominator.
8965         (btr_def_live_range): Use btrs_live_at_end.
8966         (move_btr_def): Set other_btr_uses_before_def, and move new set
8967         to the end of the basic block, if appropriate.
8968         (migrate_btr_defs): Allocate and free btrs_live_at_end.
8969
8970         * bt-load.c (basic_block_freq): Remove outdated comment.
8971
8972 2004-01-27  Alan Modra  <amodra@bigpond.net.au>
8973
8974         * config/rs6000/rs6000.h: Correct target_flags free bits comment.
8975         (PREDICATE_CODES): Remove duplicate.
8976         * config/rs6000/linux64.h (CPP_SYSV_SPEC): Don't define.
8977         (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow 32 bit TARGET_PROFILE_KERNEL.
8978         (MASK_PROFILE_KERNEL): Adjust define.
8979
8980 2004-01-27  Jakub Jelinek  <jakub@redhat.com>
8981
8982         * config/i386/i386.c (ix86_constant_alignment): Decrease alignment
8983         of long string literals from 32 bytes to sizeof (void *) when !-Os
8984         and to 1 with -Os.
8985
8986 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
8987
8988         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Accept
8989         constant addresses in the normal mode.
8990
8991 2004-01-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8992
8993         * system.h (CHAR_BITFIELD): Delete.
8994         (BOOL_BITFIELD): New.
8995         * c-decl.c (c_scope): Use BOOL_BITFIELD.
8996         * gengtype-lex.l: Recognize BOOL_BITFIELD instead of CHAR_BITFIELD.
8997
8998 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
8999
9000         * config/arc/arc.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9001         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9002         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9003         (TARGET_STRUCT_VALUE_RTX): Likewise.
9004         (TARGET_RETURN_IN_MEMORY): Likewise.
9005         (arc_return_in_memory): Likewise.
9006         * config/arc/arc.h (PROMOTE_FUNCTION_ARGS): Remove.
9007         (PROMOTE_FUNCTION_RETURN): Likewise.
9008         (RETURN_IN_MEMORY): Likewise.
9009         (STRUCT_VALUE): Likewise.
9010
9011 2004-01-26  Richard Henderson  <rth@redhat.com>
9012
9013         * c-parse.in (extension): Use itype.
9014         (SAVE_EXT_FLAGS): Don't allocate a tree.
9015         (RESTORE_EXT_FLAGS): Don't read a tree.
9016
9017 2004-01-26  Jan Hubicka  <jh@suse.cz>
9018
9019         * cselib.c (discard_useless_values):  Clear out value pointer pointing
9020         to datastructure to be recycled.
9021
9022 2004-01-25  Jan Hubicka  <jh@suse.cz>
9023
9024         * genextract.c (main): Do not output the memset when not checking.
9025
9026 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9027
9028         * config/h8300/h8300.c (h8300_tiny_constant_address_p): Use a
9029         switch statement instead of a chain of if statements.
9030
9031 2004-01-26  Jeff Law  <law@redhat.com>
9032
9033         * doc/contrib.texi: Minor cleanup for Paolo Carlini's entry.  Add
9034         acute accents for Petur Runolfsson's entry.
9035
9036 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9037
9038         * config/pdp11/pdp11.c (TARGET_STRUCT_VALUE_RTX): New.
9039         (TARGET_RETURN_IN_MEMORY): Likewise.
9040         * config/pdp11/pdp11.h (STRUCT_VALUE): Remove.
9041         (RETURN_IN_MEMORY): Likewise.
9042
9043 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
9044
9045          * config/rs6000/rs6000.c (rs6000_emit_move): split slow
9046          unaligned load/store into smaller loads and stores.
9047
9048 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
9049
9050         * function.c (assign_parms): Do not assign
9051         long long argument to memory in prologue if
9052         is it loaded into register.
9053
9054 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
9055
9056          PR middle-end/13779
9057          * expr.c (emit_group_load): split constant
9058          correctly into register components of PARALLEL insn.
9059
9060 2004-01-26  Fariborz Jahanian  <fjahanian@apple.com>
9061
9062         * gcc/config/rs6000/rs6000.md (save_stack_nonlocal):
9063         Use adjust_address_nv directly with appropriate mode.
9064         (restore_stack_nonlocal): Ditto.
9065
9066 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9067
9068         * config/xtensa/xtensa-protos.h: Remove the prototype for
9069         xtensa_builtin_saveregs.
9070         * config/xtensa/xtensa.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9071         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9072         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9073         (TARGET_STRUCT_VALUE_RTX): Likewise.
9074         (TARGET_RETURN_IN_MEMORY): Likewise.
9075         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9076         (xtensa_builtin_saveregs): Make it static.
9077         (xtensa_return_in_memory): New.
9078         * config/xtensa/xtensa.h (PROMOTE_FUNCTION_ARGS: Remove.
9079         (PROMOTE_FUNCTION_RETURN): Likewise.
9080         (PROMOTE_PROTOTYPES): Likewise.
9081         (STRUCT_VALUE): Likewise.
9082         (RETURN_IN_MEMORY): Likewise.
9083         (EXPAND_BUILTIN_SAVEREGS): Likewise.
9084
9085 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9086
9087         * config/arm/arm.c (TARGET_SETUP_INCOMING_VARARGS): New.
9088         (arm_setup_incoming_varargs): Likewise.
9089         * config/arm/arm.h (SETUP_INCOMING_VARARGS): Remove.
9090
9091 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9092
9093         * config/cris/cris.c (TARGET_SETUP_INCOMING_VARARGS): New.
9094         (cris_setup_incoming_varargs): Likewise.
9095         * config/cris/cris.h (SETUP_INCOMING_VARARGS): Remove.
9096
9097 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9098
9099         * config/ns32k/ns32k.c (TARGET_STRUCT_VALUE_RTX): New.
9100         (ns32k_struct_value_rtx): Likewise.
9101         * config/ns32k/ns32k.h (STRUCT_VALUE_REGNUM): Rename to
9102         NS32K_STRUCT_VALUE_REGNUM.
9103
9104 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9105
9106         * config/arm/arm.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9107         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9108         (TARGET_STRUCT_VALUE_RTX): Likewise.
9109         (arm_struct_value_rtx): Likewise.
9110         * config/arm/arm.h (PROMOTE_FUNCTION_ARGS): Remove.
9111         (STRUCT_VALUE): Likewise.
9112         (STRUCT_VALUE_REGNUM): Likewise.
9113         (PROMOTE_PROTOTYPES): Likewise.
9114
9115 2004-01-26  Kazu Hirata  <kazu@cs.umass.edu>
9116
9117         * config/ia64/ia64-protos.h: Remove the prototype for
9118         ia64_setup_incoming_varargs and ia64_return_in_memory.
9119         * config/ia64/ia64.c (TARGET_STRUCT_VALUE_RTX): New.
9120         (TARGET_RETURN_IN_MEMORY): Likewise.
9121         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9122         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
9123         (ia64_setup_incoming_varargs): Adjust the arguments to meet
9124         the requirement of TARGET_SETUP_INCOMING_VARARGS.
9125         (ia64_return_in_memory): Make it static.  Change the return
9126         type to bool from int.  Add an argument.
9127         (ia64_struct_value_rtx): New.
9128         * config/ia64/ia64.h: Remove commented-out definitions of
9129         PROMOTE_FUNCTION_ARGS, PROMOTE_FUNCTION_RETURN, and
9130         PROMOTE_PROTOTYPES.
9131         (RETURN_IN_MEMORY): Remove.
9132         (STRUCT_VALUE_REGNUM): Likewise.
9133         (STRICT_ARGUMENT_NAMING): Likewise.
9134
9135 2004-01-26  Eric Botcazou  <ebotcazou@libertysurf.fr>
9136
9137         PR target/13666
9138         * config/sparc/sparc.c (function_arg_union_value): New function.
9139         (function_arg): Use it to deal with unions.
9140         (function_value): Likewise.  Define 'regbase' only for ARCH64.
9141         Replace a conditional statement by a simpler one.
9142
9143 2004-01-26  Richard Sandiford  <rsandifo@redhat.com>
9144
9145         * config/mips/mips.c (mips16_optimize_gp): Delete.
9146         (mips_reorg): Don't call it.
9147
9148 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9149
9150         * config/c4x/c4x.md (addqi3_noclobber): Move up pecking order.
9151         (floatunsqihf2): Remove operand 6.
9152         (fixhfqi_set, fix_trunchfqi2, fixuns_trunchfqi2): Group with other
9153         fix patterns.
9154         (ldi_conditional, ldf_conditional): Validate operands.
9155
9156 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9157
9158         * config/c4x/c4x.h (BCT_CHECK_LOOP_ITERATIONS): Remove.
9159         (HAVE_GAS_HIDDEN): Undefine as interim measure.
9160
9161 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9162
9163         * config/c4x/c4x.c (c4x_legitimate_address_p):  Invalidate direct
9164         memory references if TARGET_EXPOSE_LDP nonzero.
9165
9166 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9167
9168         * config/c4x/c4x.c (legitimize_operands): Truncate invalid shift counts.
9169
9170 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9171
9172         * config/c4x/c4x.c (c4x_valid_operands): More aggressively reject
9173         invalid operand combinations.
9174
9175 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9176
9177         * config/c4x/c4x.c (c4x_check_legit_addr): Rename to
9178         c4x_legitimate_address_p.  Fix post_modify check.
9179
9180         * config/c4x/c4x-protos.h (c4x_check_legit_addr): Adjust.
9181         * config/c4x/c4x.h (c4x_check_legit_addr): Adjust.
9182
9183 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9184
9185         * config/pa/pa-protos.h: Remove the prototype for
9186         hppa_builtin_saveregs.  Add a prototype for
9187         pa_return_in_memory.
9188         * config/pa/pa.c (TARGET_PROMOTE_FUNCTION_RETURN): New.
9189         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9190         (TARGET_STRUCT_VALUE_RTX): Likewise.
9191         (TARGET_RETURN_IN_MEMORY): Likewise.
9192         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9193         (pa_struct_value_rtx): Likewise.
9194         (pa_return_in_memory): Likewise.
9195         * config/pa/pa.h (STRUCT_VALUE_REGNUM): Rename to
9196         PA_STRUCT_VALUE_REGNUM.
9197         (INIT_CUMULATIVE_ARGS): Use pa_return_in_memory.
9198         (EXPAND_BUILTIN_SAVEREGS): Remove.
9199         (PROMOTE_PROTOTYPES): Likewise.
9200         (PROMOTE_FUNCTION_RETURN): Likewise.
9201
9202 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9203
9204         * config/vax/vax.c (TARGET_PROMOTE_PROTOTYPES): New.
9205         (TARGET_STRUCT_VALUE_RTX): Likewise.
9206         (vax_struct_value_rtx): Likewise.
9207         * config/vax/vax.h (STRUCT_VALUE_REGNUM): Rename to
9208         VAX_STRUCT_VALUE_REGNUM.
9209         (PROMOTE_PROTOTYPES): Remove.
9210
9211 2004-01-26  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
9212
9213         * config/c4x/c4x.h (LEGITIMIZE_RELOAD_ADDRESS):  Handle symref.
9214
9215 2003-04-25  Chris Demetriou  <cgd@broadcom.com>
9216
9217         * config/mips/mips.h (ISA_HAS_HILO_INTERLOCKS): MIPS32, MIPS32r2,
9218         and MIPS64 have HI/LO interlocks.  Update comment.
9219
9220 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9221
9222         * config/stormy16/stormy16-protos.h: Remove the prototype for
9223         xstormy16_setup_incoming_varargs.
9224         * config/stormy16/stormy16.c
9225         (xstormy16_setup_incoming_varargs): Remove.
9226         (xstormy16_return_in_memory): New.
9227         (TARGET_PROMOTE_FUNCTION_ARGS): Likewise.
9228         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9229         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9230         (TARGET_STRUCT_VALUE_RTX): Likewise.
9231         (TARGET_RETURN_IN_MEMORY): Likewise.
9232         * config/stormy16/stormy16.h (PROMOTE_FUNCTION_ARGS): Remove.
9233         (PROMOTE_FUNCTION_RETURN): Likewise
9234         (PROMOTE_PROTOTYPES): Likewise
9235         (RETURN_IN_MEMORY): Likewise
9236         (STRUCT_VALUE): Likewise
9237         (SETUP_INCOMING_VARARGS): Likewise
9238
9239 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
9240
9241         * config/mips/mips.c (mips_offset_within_object_p): New function.
9242         (mips_symbolic_constant_p): Use it in the SYMBOL_SMALL_DATA and
9243         SYMBOL_CONSTANT_POOL cases.  Also use it for SYMBOL_GENERAL if the
9244         ABI has 64-bit pointers and the object file only allows 32-bit symbols.
9245
9246 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9247
9248         * config/sh/sh.h (PROMOTE_FUNCTION_ARGS): Remove.
9249         (PROMOTE_FUNCTION_RETURN): Likewise.
9250
9251 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9252
9253         * config/mn10300/mn10300-protos.h: Remove the prototype for
9254         mn10300_builtin_saveregs.
9255         * config/mn10300/mn10300.c (TARGET_PROMOTE_PROTOTYPES): New.
9256         (TARGET_STRUCT_VALUE_RTX): Likewise.
9257         (TARGET_RETURN_IN_MEMORY): Likewise.
9258         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9259         (mn10300_return_in_memory): Likewise.
9260         (mn10300_builtin_saveregs): Make it static.
9261         * config/mn10300/mn10300.h (PROMOTE_PROTOTYPES): Remove.
9262         (RETURN_IN_MEMORY): Likewise.
9263         (STRUCT_VALUE): Likewise.
9264         (EXPAND_BUILTIN_SAVEREGS): Likewise.
9265
9266 2004-01-25  Eric Botcazou  <ebotcazou@act-europe.fr>
9267
9268         PR bootstrap/13853
9269         * cfgcleanup.c (try_optimize_cfg): Explicitly test against 0.
9270
9271 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9272
9273         * config/h8300/lib1funcs.asm (divnorm, modnorm): Optimize by
9274         using ccr.
9275
9276 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9277
9278         * config/i860/i860-protos.h: Remove the prototype for
9279         i860_saveregs.
9280         * config/i860/i860.c (i860_saveregs): Make it static.
9281         (i860_struct_value_rtx): New.
9282         (TARGET_STRUCT_VALUE_RTX): Likewise.
9283         (TARGET_EXPAND_BUILTIN_SAVEREGS): Likewise.
9284         * config/i860/i860.h (STRUCT_VALUE_REGNUM): Rename to
9285         I860_STRUCT_VALUE_REGNUM.
9286         (EXPAND_BUILTIN_SAVEREGS): Remove.
9287
9288 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9289
9290         * config/m68hc11/m68hc11.c (TARGET_STRUCT_VALUE_RTX): New.
9291         (TARGET_RETURN_IN_MEMORY): Likewise.
9292         (m68hc11_struct_value_rtx): Likewise.
9293         (m68hc11_return_in_memory): Likewise.
9294         * config/m68hc11/m68hc11.h: Remove a commented-out definition
9295         of PROMOTE_PROTOTYPES.
9296         (RETURN_IN_MEMORY): Remove.
9297         (STRUCT_VALUE_REGNUM): Likewise.
9298
9299 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9300
9301         * config/mmix/mmix-protos.h: Remove the prototype for
9302         mmix_setup_incoming_varargs.
9303         * config/mmix/mmix.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9304         (TARGET_STRUCT_VALUE_RTX): Likewise.
9305         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9306         (mmix_setup_incoming_varargs): Make it static.
9307         (mmix_struct_value_rtx): New.
9308         * config/mmix/mmix.h (PROMOTE_FUNCTION_ARGS): Remove.
9309         Remove a commented-out definition of PROMOTE_FUNCTION_RETURN.
9310         (STRUCT_VALUE_REGNUM): Remove.
9311         (SETUP_INCOMING_VARARGS): Likewise.
9312
9313 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9314
9315         * config/mips/mips-protos.h: Remove the prototypes for
9316         mips_setup_incoming_varargs and mips_return_in_memory.
9317         * config/mips/mips.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9318         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9319         (TARGET_PROMOTE_PROTOTYPES): Likewise.
9320         (TARGET_STRUCT_VALUE_RTX): Likewise.
9321         (TARGET_RETURN_IN_MEMORY): Likewise.
9322         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9323         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
9324         (mips_setup_incoming_varargs): Match the prototype for
9325         TARGET_SETUP_INCOMING_VARARGS.
9326         (mips_return_in_memory): Make it static.  Add argument fntype.
9327         (mips_strict_argument_naming): New.
9328         * config/mips/mips.h (PROMOTE_PROTOTYPES): Remove.
9329         (PROMOTE_FUNCTION_ARGS): Likewise.
9330         (PROMOTE_FUNCTION_RETURN): Likewise.
9331         (STRUCT_VALUE): Likewise.
9332         (RETURN_IN_MEMORY): Likewise.
9333         (SETUP_INCOMING_VARARGS): Likewise.
9334         (STRICT_ARGUMENT_NAMING): Likewise.
9335
9336 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9337
9338         * config/ip2k/ip2k.c (TARGET_STRUCT_VALUE_RTX): New.
9339         (TARGET_RETURN_IN_MEMORY): Likewise.
9340         (TARGET_SETUP_INCOMING_VARARGS): Likewise.
9341         (ip2k_return_in_memory): Likewise.
9342         (ip2k_setup_incoming_varargs): Likewise.
9343         * config/ip2k/ip2k.h (RETURN_IN_MEMORY): Remove.
9344         (STRUCT_VALUE): Likewise.
9345         (STRUCT_VALUE_INCOMING): Likewise.
9346         (SETUP_INCOMING_VARARGS): Likewise.
9347
9348 2004-01-25  Kazu Hirata  <kazu@cs.umass.edu>
9349
9350         * config/avr/avr.c (TARGET_STRUCT_VALUE_RTX): New.
9351         (TARGET_RETURN_IN_MEMORY): Likewise.
9352         (TARGET_STRICT_ARGUMENT_NAMING): Likewise.
9353         (avr_return_in_memory): Remove.
9354         * config/avr/avr.h (RETURN_IN_MEMORY): Remove.
9355         (STRUCT_VALUE): Likewise.
9356         (STRUCT_VALUE_INCOMING): Likewise.
9357         (STRICT_ARGUMENT_NAMING): Likewise.
9358
9359 2004-01-25  Jan Hubicka  <jh@suse.cz>
9360
9361         * combine.c (recog_for_combine): Avoid allocating unnecesary RTX.
9362
9363 2004-01-25  Richard Sandiford  <rsandifo@redhat.com>
9364
9365         * config/mips/mips-protos.h (mips_reg_mode_ok_for_base_p): Delete.
9366         (mips_regno_mode_ok_for_base_p): Declare.
9367         * config/mips/mips.h (ARG_POINTER_REGNUM): Renumber to 77.
9368         (FRAME_POINTER_REGNUM): Renumber to 78.
9369         (FIRST_PSEUDO_REGISTER): Update comment accordingly.
9370         (BASE_REG_P, GP_REG_OR_PSEUDO_STRICT_P): Delete.
9371         (GP_REG_OR_PSEUDO_NONSTRICT_P): Delete.
9372         (REGNO_MODE_OK_FOR_BASE_P): Use mips_regno_mode_ok_for_base_p.
9373         (REG_MODE_OK_FOR_BASE_P): Likewise.
9374         * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Change
9375         entry for 77 to "$arg" and entry for 78 to "$frame".
9376         (mips_regno_to_class): Map 77 and 78 to ALL_REGS.
9377         (mips_reg_mode_ok_for_base_p): Remove.
9378         (mips_regno_mode_ok_for_base_p): New function, derived from old
9379         BASE_REG_P macro.  Don't enforce the mips16 stack pointer
9380         restrictions unless we're being strict.
9381         (mips_valid_base_register_p): Use mips_regno_mode_ok_for_base_p.
9382
9383 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9384
9385         * c-common.h: Fix comment typos.
9386         * c-decl.c: Likewise.
9387         * cgraphunit.c: Likewise.
9388         * combine.c: Likewise.
9389         * et-forest.c: Likewise.
9390         * flow.c: Likewise.
9391         * function.c: Likewise.
9392         * ifcvt.c: Likewise.
9393         * integrate.c: Likewise.
9394         * jump.c: Likewise.
9395         * postreload.c: Likewise.
9396         * varray.c: Likewise.
9397
9398 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9399
9400         * doc/frontends.texi: Update copyright.
9401         * doc/gcov.texi: Likewise.
9402         * doc/gty.texi: Likewise.
9403         * doc/sourcebuild.texi: Likewise.
9404         * doc/standards.texi: Likewise.
9405
9406 2004-01-24  Herman A.J. ten Brugge  <hermantenbrugge@home.nl>
9407
9408         PR target/12978
9409         * c4x.md: (movstrqi*) Use match_scratch instead of match_dup.
9410         Remove movstrqi_small because it conflicts with movstrqi_large.
9411
9412 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9413
9414         * config/cris/cris.c (TARGET_PROMOTE_FUNCTION_ARGS): New.
9415         (TARGET_STRUCT_VALUE_RTX): Likewise.
9416         (cris_struct_value_rtx): Likewise.
9417         * config/cris/cris.h (PROMOTE_FUNCTION_ARGS): Remove.
9418         (CRIS_STACKADJ_REG): Use CRIS_STRUCT_VALUE_REGNUM instead of
9419         STRUCT_VALUE_REGNUM.
9420         (STRUCT_VALUE_REGNUM): Rename to CRIS_STRUCT_VALUE_REGNUM.
9421
9422 2004-01-24  Ian Lance Taylor  <ian@wasabisystems.com>
9423
9424         PR bootstrap/13848
9425         * cse.c (cse_cc_succs): Change the mode of the source expression
9426         as soon as decide we need a new mode.  Don't permit changing modes
9427         if we found a match in a successor block.
9428         (cse_condition_code_reg): Save original mode of source expression
9429         so that we know whether we have to change the mode in other
9430         insns.
9431
9432 2004-01-24  Jan Hubicka  <jh@suse.cz>
9433
9434         * emit-rtl.c (change_address, adjust_address_1, offset_address,
9435         widen_memory_access):  Return early when there is nothing to change.
9436
9437 2004-01-24  Jakub Jelinek  <jakub@redhat.com>
9438
9439         * simplify-rtx.c (simplify_relational_operation): Don't
9440         simplify address == constant into address + -constant == 0.
9441
9442 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9443
9444         * gcc.c (process_command): Don't internationalize the
9445         Copyright message.
9446         * mips-tfile.c (main): Likewise.
9447
9448 2004-01-24  Andreas Tobler  <a.tobler@schweiz.ch>
9449
9450         * cse.c: (cse_cc_succs) Fix comparison warning.
9451
9452 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9453
9454         * config/h8300/h8300.md: Remove extraneous USE in expanders.
9455
9456 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9457
9458         * config/h8300/h8300-protos.h: Provide prototypes for
9459         h8300_legitimate_constant_p and h8300_legitimate_address_p.
9460         * config/h8300/h8300.c (h8300_legitimate_constant_p): New.
9461         (h8300_rtx_ok_for_base_p): Likewise.
9462         (h8300_legitimate_address_p): Likewise.
9463         * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Use
9464         h8300_legitimate_constant_p.
9465         (RTX_OK_FOR_BASE_P): Remove.
9466         (GO_IF_LEGITIMATE_ADDRESS): Use h8300_legitimate_address_p.
9467
9468 2004-01-24  Kazu Hirata  <kazu@cs.umass.edu>
9469
9470         * config/h8300/h8300.h (REG_OK_FOR_INDEX_NONSTRICT_P): New.
9471         (REG_OK_FOR_BASE_NONSTRICT_P): Likewise.
9472         (REG_OK_FOR_INDEX_STRICT_P): Likewise.
9473         (REG_OK_FOR_BASE_STRICT_P): Likewise.
9474         (REG_OK_FOR_INDEX_STRICT_P): Use REGNO_OK_FOR_INDEX_P.
9475         (REG_OK_FOR_BASE_STRICT_P): Use REGNO_OK_FOR_BASE_P.
9476         (REG_OK_FOR_INDEX_P): Use REG_OK_FOR_INDEX_STRICT_P.
9477         (REG_OK_FOR_BASE_P): Use REG_OK_FOR_BASE_STRICT_P.
9478
9479 2004-01-24  Jan Hubicka  <jh@suse.cz>
9480
9481         * cselib.c (remove_useless_values):  Do not access discarded values.
9482
9483 2004-01-24  Joseph S. Myers  <jsm@polyomino.org.uk>
9484
9485         * c-typeck.c (build_conditional_expr): Do not allow non-lvalue
9486         arrays.
9487
9488 2004-01-23  Kazu Hirata  <kazu@cs.umass.edu>
9489
9490         * recog.c: Fix a typo in copyright.
9491
9492 2004-01-23  Andrew Pinski  <apinski@apple.com>
9493
9494         * config/rs6000/rs6000.md (call): Fix misappiled patch.
9495         (call_value): Likewise.
9496
9497 2004-01-23  Richard Henderson  <rth@redhat.com>
9498
9499         PR opt/12941
9500         * combine.c (SHIFT_COUNT_TRUNCATED): Provide default value.
9501         (simplify_comparison): Don't simplify (eq (zero_extract c 1 r) 0)
9502         if SHIFT_COUNT_TRUNCATED is set.
9503
9504 2004-01-23  Bob Wilson  <bob.wilson@acm.org>
9505
9506         * config/xtensa/xtensa.c (xtensa_va_arg): Handle complex values as
9507         separate real and imaginary parts.
9508         * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Define.
9509
9510 2004-01-23  Hartmut Penner <hpenner@de.ibm.com>
9511
9512         PR target/13674
9513         * config/rs6000/rs6000.md (movdf_hardfloat64): Do not disparage
9514         loading into GPR.
9515
9516 2004-01-23  Jan Hubicka  <jh@suse.cz>
9517
9518         * emit-rtl.c (change_address_1):  Do not re-generate the RTX if nothing
9519         change.
9520
9521         * alloc-pool.c (align_four): Kill.
9522         (create_alloc_pool): Align size to eight.
9523         (free_alloc_pool, free_pool): Invalidate deallocated data.
9524
9525 2004-01-23  Ian Lance Taylor  <ian@wasabisystems.com>
9526
9527         PR gcc/1532
9528         * cse.c (cse_change_cc_mode): New static function.
9529         (cse_change_cc_mode_insns, cse_cc_succs): Likewise.
9530         (cse_condition_code_reg): New function.
9531         * rtl.h (cse_condition_code_reg): Declare.
9532         * toplev.c (rest_of_handle_cse2): Call cse_condition_code_reg.
9533         * target.h (struct gcc_target): Add fixed_condition_code_regs and
9534         cc_modes_compatible.
9535         * target-def.h (TARGET_FIXED_CONDITION_CODE_REGS): Define.
9536         (TARGET_CC_MODES_COMPATIBLE): Define.
9537         (TARGET_INITIALIZER): Add new initializers.
9538         * targhooks.c (default_cc_modes_compatible): New function.
9539         * targhooks.c (default_cc_modes_compatible): Declare.
9540         * hooks.c (hook_bool_intp_intp_false): New function.
9541         * hooks.h (hook_bool_intp_intp_false): Declare.
9542         * config/i386/i386.c (TARGET_FIXED_CONDITION_CODE_REGS): Define.
9543         (TARGET_CC_MODES_COMPATIBLE): Define.
9544         (ix86_fixed_condition_code_regs): New static function.
9545         (ix86_cc_modes_compatible): Likewise.
9546         * doc/tm.texi (Condition Code): Document new hooks.
9547
9548 2004-01-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9549
9550         * fixinc/inclhack.def (bad_lval): Renamed to ...
9551         (alpha_bad_lval): ... this.
9552         Removed file list.
9553         Restrict to alpha*-dec-osf*.
9554         * fixinc/fixincl.x: Regenerate.
9555         * fixinc/tests/base/dirent.h: Remove, moving test ...
9556         * fixinc/tests/base/testing.h: ... here, reflecting new name.
9557
9558 2004-01-23  Zack Weinberg  <zack@codesourcery.com>
9559
9560         PR c/13814
9561         * c-decl.c (diagnose_mismatched_decls): Also discard a
9562         built-in if we encounter an old-style definition with the
9563         same name.
9564
9565 2004-01-23  Jakub Jelinek  <jakub@redhat.com>
9566
9567         * config.gcc (powerpc*-*): Clear $with_cpu or $with_tune if it was
9568         set to default{32,64}.
9569
9570 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
9571
9572         * config/rs6000/linux64.h (MD_FALLBACK_FRAME_STATE_FOR)
9573         [!__powerpc64__]: Corrected to handle kernels with changed ucontext.
9574
9575 2004-01-23  Eric Botcazou  <ebotcazou@act-europe.fr>
9576             Olivier Hainque  <hainque@act-europe.fr>
9577
9578         * fold-const.c (fold_binary_op_with_conditional_arg): Only
9579         build a COMPOUND_EXPR if 'arg' is really a SAVE_EXPR.
9580
9581 2004-01-23  Daniel Jacobowitz  <drow@mvista.com>
9582
9583         * config/arm/arm.c (arm_legitimate_address_p): Don't check the mode
9584         size for minipool references.
9585
9586 2004-01-23  Roger Sayle  <roger@eyesopen.com>
9587
9588         * real.c (real_floor, real_ceil): Tweak to allow input and output
9589         arguments to overlap.
9590         (real_round): New function to implement round(3m) semantics.
9591         * real.h (real_round): Prototype here.
9592         * builtins.c (fold_builtin_round): New function to constant fold
9593         round, roundf and roundl.
9594         (fold_builtin): Call fold_builtin_round for BUILT_IN_ROUND{,F,L}.
9595
9596 2004-01-23  Alexandre Oliva  <aoliva@redhat.com>
9597
9598         PR optimization/13819
9599         * config/sh/sh.c (sh_reorg): Compensate for sharing of CLOBBERs
9600         introduced by 2004-01-20's Jan Hubicka's copy_insn change.
9601         (sh_handle_sp_switch_attribute): Remove warning.
9602
9603 2003-11-30  Jan Hubicka  <jh@suse.cz>
9604
9605         * i386.c (ix86_emit_restore_regs_using_mov):  Deal with large offsets.
9606
9607 2004-01-23  J"orn Rennecke <joern.rennecke@superh.com>
9608
9609         * doc/tm.texi: Insert some weasel words when LOAD_EXTEND_OP
9610         may or may not return non-NIL.
9611         * postreload.c (reload_cse_simplify_operands): In LOAD_EXTEND_OP code,
9612         check CANNOT_CHANGE_MODE_CLASS
9613
9614 2004-01-23  Jan Hubicka  <jh@suse.cz>
9615
9616         * basic-block.h (PROP_POSTRELOAD): New macro.
9617         (CLEANUP_LOG_LINKS): New.
9618         * cfgcleanup.c (cleanup_cfg): Only PROP_LOG_LINKS when asked to.
9619         * toplev.c (rest_of_handle_life):  Preserve LOG_LINKS trought cleanup_cfg.
9620
9621         * cselib.c (value_pool): New.
9622         (new_cselib_val): Use pool.
9623         (cselib_init): Initialize value_pool
9624         (cselib_finish): Free pool.
9625
9626 2004-01-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
9627
9628         * config/sparc/sparc.c (scan_record_type): New function.
9629         (function_arg_slotno): Use it to determine which kinds of
9630         registers the record can be passed in.
9631
9632 2004-01-22  James A. Mmorrison  <ja2morri@uwaterloo.ca>
9633
9634         * config/pa/fptr.c: Fix old-style definition.
9635
9636 2004-01-22  Paolo Bonzini  <bonzini@gnu.org>
9637
9638         PR optimization/13724
9639         * cse.c (fold_rtx) <SUBREG>:  Fold a SUBREG to zero if it
9640         represents the zero bits produced by a ZERO_EXTEND operation.
9641
9642 2004-01-22  Roger Sayle  <roger@eyesopen.com>
9643
9644         PR optimization/13821
9645         * simplify-rtx.c (simplify_subreg): Use subreg_lowpart_offset to
9646         correctly calculate the lowpart offset of the contracted subreg.
9647
9648 2004-01-22  Ian Lance Taylor  <ian@wasabisystems.com>
9649
9650         * doc/invoke.texi (Optimize Options): Note that --param arguments
9651         are subject to change without notice.
9652
9653 2004-01-22  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
9654
9655         * config.gcc (mips-sgi-irix6*o32): Removed.
9656         * config/mips/iris6-o32-as.h: Likewise.
9657         * config/mips/iris6-o32-gas.h: Likewise.
9658         * config/mips/iris6-o32.h: Likewise.
9659
9660 2004-01-22  Jan Hubicka  <jh@suse.cz>
9661
9662         * cfgcleanup.c (first_pass): New static variable.
9663         (try_forward_edges):  Add work limiting check for threading.
9664         (try_crossjump_bb):  Add work limiting check for crossjumping.
9665         (try_optimize_cfg):  Maintain first pass variable.
9666
9667 2004-01-22  Bob Wilson  <bob.wilson@acm.org>
9668
9669         * config/xtensa/xtensa.c (function_arg): Generalize logic so that it
9670         handles complex and vector modes.
9671
9672 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
9673
9674         * config/h8300/h8300.h (REG_OK_FOR_INDEX_P_STRICT): Remove.
9675         (REG_OK_FOR_BASE_P_STRICT): Likewise.
9676         (STRICT): Likewise.
9677
9678 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
9679
9680         * c-semantics.c (genrtl_while_stmt, genrtl_do_stmt_1)
9681         (genrtl_for_stmt): Remove emit_nop calls.
9682
9683 2004-01-22  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9684
9685         PR target/13713
9686         PR target/13324
9687         * pa.md (movstrsi_prereload, movstrsi_postreload, movstrdi_prereload,
9688         movstrdi_postreload, clrstrsi_prereload, clrstrsi_postreload,
9689         clrstrdi_prereload, clrstrdi_postreload): Fix constraints.
9690
9691 2004-01-22  Daniel Jacobowitz  <drow@mvista.com>
9692
9693         * config/arm/arm.c: Include "debug.h".
9694         (thumb_pushpop): Take two new arguments.  Add some commentary.
9695         Output frame information when pushing.
9696         (thumb_exit, thumb_unexpanded_epilogue): Update calls to
9697         thumb_pushpop.
9698         (thumb_output_function_prologue): Likewise.  Accumulate a CFA
9699         offset, and pass it to thumb_pushpop.  Output CFI information.
9700         (thumb_expand_prologue): Add some frame-related markers and notes.
9701
9702 2004-01-22  Ulrich Weigand  <uweigand@de.ibm.com>
9703
9704         * config/s390/s390.c (s390_frame_info): Allow large frame sizes
9705         for TARGET_64BIT.
9706         (s390_arg_frame_offset): Change return type to HOST_WIDE_INT.
9707         * config/s390/s390-protos.h (s390_arg_frame_offset): Likewise.
9708
9709 2004-01-22  Roger Sayle  <roger@eyesopen.com>
9710             Paolo Bonzini  <bonzini@gnu.org>
9711
9712         * rtlanal.c (subreg_lsb_1): New function split out from subreg_lsb.
9713         (subreg_lsb): Change to call new subreg_lsb_1 helper function.
9714         * rtl.h (subreg_lsb_1): Prototype here.
9715         * simplify-rtx.c (simplify_subreg): Optimize subregs of zero and
9716         sign extensions.
9717
9718 2004-01-22  Kazu Hirata  <kazu@cs.umass.edu>
9719
9720         * doc/tm.texi (CASE_VECTOR_PC_RELATIVE): Mention that the
9721         macro need not be defined if jump-tables should contain
9722         relative addresses only when -fPIC or -fPIC is in effect.
9723
9724 2004-01-22  Jan Hubicka  <jh@suse.cz>
9725
9726         * alias.c (reg_base_value): Turn into varray.
9727         (reg_base_value_size): Kill.
9728         (old_reg_base_value): New deletable varray.
9729         (alias_invariant_size): New variable.
9730         (REG_BASE_VALUE): Update to use varray.
9731         (find_base_value): Likewise.
9732         (record_set): Likewise.
9733         (record_base_value): Likewise.
9734         (memrefs_conflict_p): Likewise.
9735         (record_set): Likewise
9736         (record_base_value): Likewise.
9737         (memrefs_conflict_p): Use alias_invariant_size.
9738         (init_alias_analysis): Use varray; set alias_invariant_size;
9739         rescale other arrays to be sized by maxreg.
9740         (end_alias_analysis): Save reg_base_value; clear alias_invariant_size.
9741
9742 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
9743
9744         * config/sparc/sparc.c (function_arg_slotno): Use
9745         FLOAT_TYPE_P to detect FP fields in structures.
9746         (function_arg_record_value_1): Likewise.
9747         (function_arg_record_value_2): Likewise.
9748
9749 2004-01-22  Jan Hubicka  <jh@suse.cz>
9750
9751         * function.c (allocate_struct_function): Do not initialize expr, emit
9752         and varasm.
9753         (prepare_function_start): Do it here.
9754         * c-parse.in (maybe_type_qual): Do not produce line number notes.
9755
9756 2004-01-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
9757
9758         PR target/13559
9759         * config/sparc/sparc.c (function_arg_record_value_3): Revert
9760         to 'word_mode' once the first slot has been filled.
9761
9762 2004-01-22  Olivier Hainque  <hainque@act-europe.fr>
9763
9764         * config/sparc/sparc.c (function_arg_record_value_1): Fix
9765         computation of the number of integer registers required.
9766
9767 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
9768
9769         * config/i386/i386.md: Simplify certain comparisons of
9770         const_int.
9771
9772 2004-01-21  Andrew Pinski  <apinski@apple.com>
9773
9774         PR target/13785
9775         * config/rs6000/rs6000.md (call_value): Force operand
9776         1 not operand 0 into a register.
9777
9778 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
9779
9780         * cpperror.c, cpptrad.c, longlong.h, params.def, rtl.def,
9781         unwind-dw2-fde.h: Update copyright.
9782
9783 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9784
9785         * pa-protos.h: Update copyright.
9786         * pa.h: Likewise.
9787         * pa.md: Likewise.
9788
9789 2004-01-21  Caroline Tice  <ctice@apple.com>
9790
9791         PR target/12308
9792         * config/i386/i386.md (fix_truncxfdi2): Add clause to clobber
9793         flags register.
9794         (fix_truncdfdi2): Likewise.
9795         (fix_truncsfdi2): Likewise.
9796         (*fix_truncdi_1): Likewise.
9797         (fix_truncxfsi2): Likewise.
9798         (fix_truncdfsi2): Likewise.
9799         (fix_truncsfsi2): Likewise.
9800         (*fix_truncsi_1): Likewise.
9801         (fix_truncxfhi2): Likewise.
9802         (fix_truncdfhi2): Likewise.
9803         (fix_truncsfhi2): Likewise.
9804         (*fix_trunchi_1): Likewise.
9805
9806 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
9807
9808         * alias.c, basic-block.h, c-common.c, c-common.h,
9809         c-cppbuiltin.c, c-opts.c, c-pragma.c, c-pretty-print.c,
9810         calls.c, cfg.c, cfgcleanup.c, cfgrtl.c, cgraph.h, collect2.c,
9811         combine.c, cppcharset.c, cpphash.h, cppinit.c, cpplib.c,
9812         cpplib.h, cppmacro.c, crtstuff.c, cselib.c, cselib.h,
9813         defaults.h, df.c, dominance.c, et-forest.c, expmed.c, expr.c,
9814         expr.h, fix-header.c, function.h, gcc.c, gcse.c, genattrtab.c,
9815         genautomata.c, genconditions.c, genemit.c, genflags.c,
9816         gengtype.c, gengtype.h, genopinit.c, genrecog.c, gensupport.c,
9817         ggc-zone.c, graph.c, haifa-sched.c, input.h, integrate.c,
9818         langhooks-def.h, langhooks.c, langhooks.h, line-map.c,
9819         line-map.h, local-alloc.c, optabs.c, optabs.h, postreload.c,
9820         ra.h, recog.c, reg-stack.c, regmove.c, reload.c, reorg.c,
9821         rtl.c, sched-deps.c, sched-ebb.c, sdbout.c, system.h,
9822         target.h, targhooks.c, toplev.h, tree-inline.c, unwind-pe.h,
9823         unwind.h, varray.c, varray.h: Update copyright.
9824
9825 2004-01-21  Kazu Hirata  <kazu@cs.umass.edu>
9826
9827         * config/h8300/coff.h: Update copyright.
9828         * config/h8300/elf.h: Likewise.
9829         * config/h8300/h8300-protos.h: Likewise.
9830         * config/h8300/h8300.c: Likewise.
9831         * config/h8300/h8300.h: Likewise.
9832         * config/h8300/h8300.md: Likewise.
9833
9834 2004-01-21  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9835
9836         * fixinc/inclhack.def (hpux10_stdio_declarations, ultrix_const3,
9837         ultrix_locale, ultrix_stdlib, ultrix_strings, ultrix_sys_time,
9838         ultrix_unistd): New hacks.
9839         * fixinc/tests/base/stdio.h (HPUX10_STDIO_DECLARATIONS_CHECK,
9840         ULTRIX_CONST2_CHECK): Add checks.
9841         * fixinc/tests/base/stdlib.h (ULTRIX_STDLIB_CHECK): Likewise.
9842         * fixinc/tests/base/strings.h (ULTRIX_STRINGS2_CHECK): Likewise.
9843         * fixinc/tests/base/unistd.h (ULTRIX_UNISTD_CHECK): Likewise.
9844         * fixinc/tests/base/sys/time.h (ULTRIX_SYS_TIME_CHECK): Likewise.
9845         * fixinc/tests/base/locale.h: New file.
9846         * fixinc/fixincl.x: Rebuilt.
9847
9848 2004-01-21  Andreas Jaeger  <aj@suse.de>
9849             Michael Matz  <matz@suse.de>
9850
9851         * doc/extend.texi (Extended Asm): Clarify memory clobber.
9852
9853 2004-01-21  Jakub Jelinek  <jakub@redhat.com>
9854
9855         * crtstuff.c (frame_dummy, __do_global_ctors_1): Call
9856         _Jv_RegisterClasses through a function pointer.
9857
9858 2004-01-21  Falk Hueffner  <falk@debian.org>
9859
9860         PR target/12898
9861         * config/alpha/alpha.c (alpha_emit_set_const_1): If
9862         no_new_pseudos, use gen_rtx_SET directly for SImode constants
9863         which need multiple instructions to emit.
9864
9865 2004-01-21  Inaoka Kazuhiro  <inaoka.kazuhiro@renesas.com>
9866
9867         * config/m32r/m32r.h (CPP_SPEC): Define.
9868
9869 2004-01-21  Zack Weinberg  <zack@codesourcery.com>
9870
9871         * c-decl.c (merge_decls): Kill different_binding_level and
9872         different_tu arguments; simplify throughout.
9873         (duplicate_decls): Likewise.
9874         (pushdecl, merge_translation_unit_decls): Update calls to
9875         duplicate_decls.
9876
9877 2004-01-20  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
9878
9879         * Makefile.in (pretty-print.o): Depend on $(CONFIG_H) and
9880         $(SYSTEM_H).
9881         (print-rtl1.o): Depend on $(SYSTEM_H).
9882
9883 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
9884
9885         PR bootstrap/12730
9886         * configure.ac: Delete definition and subsitution of docdir.
9887         Add info, man, srcman and srcinfo to target hooks. Create doc/
9888         directory.
9889         * configure: Regenerate.
9890         * Makefile.in: Don't substitute docdir and delete all references
9891         throughout.
9892         (MAKEINFOFLAGS): Define.
9893         (stmp-docobjdir): Delete.
9894         (INFOFILES, MANFILES): Define.
9895         (info): Call lang.info, srcinfo and lang.srcinfo.
9896         (generated-manpages): Call lang.man, srcman and lang.srcman.
9897         (srcinfo, srcman): New rules to copy back files to source directory.
9898         (doc/%.info, doc/%.dvi, doc/%.1, doc/%.7): New implict rule.
9899         (install-man): Revamp rule.
9900         (clean): Update dvi directory.
9901         (distclean): Delete TAGS from front end directorys.
9902         (maintainer-clean): Delete all document files in source directory.
9903
9904         objc/Make-lang.in (objc.man, objc.info): Dummy entries.
9905         (objc.srcman, objc.srcinfo): Likewise.
9906
9907 2004-01-20  Bruce Korb  <bkorb@gnu.org>
9908
9909         * fixinc/inclhack.def(math_exception): bypass only for glibc.
9910         (matherr_decl): rename & relocate as exception_structure.
9911         This fix must precede the math_exception fix.
9912
9913 2004-01-20  Roger Sayle  <roger@eyesopen.com>
9914
9915         * fold-const.c (fold_convert): Rename to fold_convert_const.
9916         (fold_convert_const): Change arguments to take a tree_code,
9917         a type and the operand/expression to be converted.  Return
9918         NULL_TREE if no simplification is possible.  Add support for
9919         FIX_CEIL_EXPR and FIX_FLOOR_EXPR in addition to FIX_TRUNC_EXPR.
9920         (fold): Handle FIX_CEIL_EXPR and FIX_FLOOR_EXPR.
9921         Adjust call to fold_convert to match new fold_convert_const.
9922         Avoid modifying the tree passed to fold in-place.
9923
9924 2004-01-21  Alan Modra  <amodra@bigpond.net.au>
9925
9926         * config/rs6000/sysv4.h (DWARF2_FRAME_REG_OUT): Define.
9927         * dwarf2out.c (output_cfi): Map regs using DWARF2_FRAME_REG_OUT.
9928         * doc/tm.texi (DWARF_FRAME_REGNUM, DWARF2_FRAME_REG_OUT): Document.
9929
9930 2004-01-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9931
9932         * pa-protos.h (compute_frame_size): Use HOST_WIDE_INT for frame sizes.
9933         * pa.c (store_reg, store_reg_modify, load_reg, set_reg_plus_d):
9934         Likewise.  Handle frames larger than 0x7fffffff on 64-bit ports.
9935         (emit_move_sequence): Check scratch_reg first in various if statements.
9936         Extend source simplification to handle all 64-bit CONST_INTs.
9937         (pa_output_function_prologue): Use HOST_WIDE_INT_PRINT_DEC for printing
9938         frame size.
9939         (hppa_expand_prologue, hppa_expand_epilogue): Use HOST_WIDE_INT for
9940         frame offset calculations.
9941         * pa.h (NEW_HP_ASSEMBLER): Add comment.
9942         (MAX_LEGIT_64BIT_CONST_INT, MIN_LEGIT_64BIT_CONST_INT,
9943         LEGITIMATE_64BIT_CONST_INT_P): Define.
9944         (LEGITIMATE_CONSTANT_P): Use LEGITIMATE_64BIT_CONST_INT_P.  Treat
9945         any CONST_INT as legitimate during and after reload.
9946         (VAL_32_BITS_P, INT_32_BITS): Define.
9947         (LEGITIMIZE_RELOAD_ADDRESS): Handle large frame offsets.
9948
9949 2004-01-20  Jan Hubicka  <jh@suse.cz>
9950
9951         * emit-rtl.c (verify_rtx_sharing, copy_insn_1,
9952         emit_copy_of_insn_after, emit_copy_of_insn_after): Clobbers
9953         containing hard regs are shared.
9954         (gen_hard_reg_clobber): New function.
9955         (hard_reg_clobbers): New array.
9956         * genemit.c (gen_exp): Use gen_hard_reg_clobber.
9957         (copy_rtx): Do not copy clobbers containing hard regs.
9958         * rtl.h (gen_hard_reg_clobber): Declare.
9959
9960 2004-01-20  Jan Hubicka  <jh@suse.cz>
9961
9962         * varray.c:  Include hashtab.h
9963         (varray_descriptor): New structure.
9964         (hash_descriptor, eq_descriptor, varray_descriptor,
9965         print_statistics): New static functions
9966         (varray_init, varray_grow): Update statistics
9967         (dump_varray_statistics): New function.
9968         * varray.h (dump_varray_statistics): Declare.
9969         * toplev.c (finalize): Call it.
9970         * Makefile.in (varray.o): Add dependency.
9971
9972 2004-01-20  Jan Hubicka  <jh@suse.cz>
9973
9974         * cselib.c: Include alloc-pool.h
9975         (empty_vals, empty_elt_lists, empty_elt_loc_lists): Kill.
9976         (elt_loc_list_pool, elt_list_pool, cselib_val_pool): Declare.
9977         (new_elt_list, new_elt_loc_list, unchain_one_elt_list,
9978         unchain_one_elt_loc_list_pool, unchain_one_value,
9979         new_cselib_val): Simplify using allocpool.
9980         (cselib_init): Initialize allocpools.
9981         (cselib_finish): Finish allocpools.
9982         * Makefile.in (cselib.o): Depend on alloc-pool.h
9983
9984 2004-01-20  Richard Sandiford  <rsandifo@redhat.com>
9985
9986         * config/mips/mips.c (mips_load_call_address): Make the call insn
9987         use $gp if it could be calling a lazy binding stub.
9988
9989 2004-01-20  Kazu Hirata  <kazu@cs.umass.edu>
9990
9991         * config/s390/s390.c (TARGET_PROMOTE_FUNCTION_ARGS): Define.
9992         (TARGET_PROMOTE_FUNCTION_RETURN): Likewise.
9993         (TARGET_STRUCT_VALUE_RTX): Likewise.
9994         * config/s390/s390.h (PROMOTE_FUNCTION_ARGS): Remove.
9995         (PROMOTE_FUNCTION_RETURN): Remove.
9996         (STRUCT_VALUE): Remove.
9997
9998 2004-01-20  Denis Chertykov  <denisc@overta.ru>
9999
10000         PR bootstrap/13735
10001         * config/avr/avr.h (BASE_REG_CLASS): Don't permit to use X
10002         register as pointer after reload.
10003
10004 2004-01-20  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10005
10006         PR optimization/12440
10007         * loop.c: Include ggc.h.
10008         (loop_optimize): Run garbage collector between optimization of loops.
10009         * Makefile.in (loop.o): Add GGC_H dependency.
10010
10011 2004-01-20  Hartmut Penner  <hpenner@de.ibm.com>
10012
10013         * gcc/config/rs6000/rs6000.c (function_arg) Handle
10014         vector register special in function without prototype.
10015         (function_arg_advance): Vector parameters get always
10016         GPRs allocated for the linux64 target.
10017
10018 2004-01-20  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
10019
10020         * config/m32r/m32r.h (TARGET_M32R2). Test for TARGET_M32R2_MASK
10021         not TARGET_M32RX_MASK.
10022
10023 2004-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
10024
10025         PR target/13557
10026         * config/sparc/sparc.c (function_arg): Reorder the cases.
10027
10028 2004-01-19  Per Bothner  <per@bothner.com>
10029
10030         Move cpp_reader's line_maps field to a shared global.
10031         * cpphash.h (cpp_reader):  Rename line_maps field to line_table
10032         and change the type to a pointer rather than a struct.
10033         * cppinit.c (cpp_push_main_field):  Adjust accordingly.
10034         * cpplib.c (do_include_common, _cpp_do_file_change, cpp_get_callbacks):
10035         Likewise.
10036         * cppfiles.c (validate_pch):  Likewise.
10037         * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_builtin_macro_text):
10038         Likewise.
10039         * cpperror.c (print_location):  Likewise.
10040         * cpplib.h (cpp_create_reader):  New line_maps pointer parameter.
10041         * cppinit.c (cpp_create_reader):  Handle new parameter.
10042         (cpp_destroy):  Don't free line_maps - that's no longer our job.
10043         * input.h (line_table):  New variable.
10044         * toplev.c (line_table):  Declare variable.
10045         (general_init):  Initialize line_table.
10046         * c-opts.c (c_common_init_options):  Pass line_table to
10047         cpp_create_reader.
10048         * fix-header.c (read_scan_file):  New local variable line_table.
10049         Initialize, and pass it to cpp_create_reader.
10050         * Makefile.in (LIBS, LIBDEPS):  Add libcpp.a.
10051         (C_AND_OBJC_OBJS, fix-header):  Remove redundant libcpp.a.
10052
10053 2004-01-19  Per Bothner  <per@bothner.com>
10054
10055         Implement a cache for linemap_lookup.
10056         * line-map.h (struct_line_maps):  Add cache field.
10057         * line-map.c (linemap_init):  Zero cache field.
10058         (linemap_add):  Set cache field to offset of newly allocated map.
10059         (linemap_lookup):  Use and set cache field.
10060
10061 2004-01-20  Kaz Kojima  <kkojima@gcc.gnu.org>
10062
10063         PR optimization/13567
10064         * cse.c (cse_basic_block): Call cse_insn with a non-null
10065         libcall_insn for the last SET insn of a no-confilict block.
10066
10067 2004-01-20  Kelley Cook  <kcook@gcc.gnu.org>
10068
10069         * Makefile.in (target_noncanonical, program_transform_name): Use
10070         immediate define instead of deferred.
10071         (GCC_INSTALL_NAME, GCC_TARGET_INSTALL_NAME, CPP_INSTALL_NAME,
10072         PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME,
10073         GCCBUG_INSTALL_NAME): Define via a immediate $(shell) instead of
10074         deferred backquote.
10075
10076 2004-01-20  Joseph S. Myers  <jsm@polyomino.org.uk>
10077
10078         * c-decl.c (c_init_decl_processing): Set pedantic_lvalues to
10079         true unconditionally.
10080         * c-typeck.c (unary_complex_lvalue, pedantic_lvalue_warning):
10081         Remove.
10082         (build_unary_op, build_modify_expr): Don't handle extended
10083         lvalues.
10084         (build_component_ref, build_conditional_expr): Call non_lvalue
10085         instead of pedantic_non_lvalue.
10086         (build_c_cast): Don't condition use of non_lvalue on pedantic.
10087         * fold-const.c (fold): Don't check pedantic directly for
10088         COMPOUND_EXPR.  Ensure that results for COMPOUND_EXPR are
10089         passed to pedantic_non_lvalue.
10090         * doc/extend.texi: Remove documentation of extended lvalues.
10091
10092 2004-01-19  Roger Sayle  <roger@eyesopen.com>
10093
10094         PR optimization/5263
10095         * simplify-rtx.c (associative_constant_p): Delete.
10096         (simplify_associative_operation): Rewrite to linearize terms, and
10097         attempt to simplify new term against both left and right subterms.
10098         (simplify_binary_operation): Call swap_commutative_operands_p on
10099         op0 and op1, not trueop0 and trueop1.  Move the initialization of
10100         trueop0 and trueop1 down to where first needed.
10101         (simplify_relational_operation): Likewise.
10102         * rtlanal.c (commutative_operand_precedence): Also order constant
10103         operands using avoid_constant_pool_reference.
10104
10105 2004-01-19  Richard Henderson  <rth@redhat.com>
10106
10107         * config/alpha/alpha.c (aligned_memory_operand): Check MEM_ALIGN,
10108         don't check memory mode.
10109         (unaligned_memory_operand): Likewise.
10110         (reload_inqi, reload_inhi, reload_outqi, reload_outhi): Don't
10111         abort for op0 not MEM.
10112
10113         * config/alpha/alpha.c (alpha_expand_mov_nobwx): If the destination
10114         is not a reg, copy to a scratch first.
10115         (aligned_loadqi, aligned_loadhi, unaligned_loadqi, unaligned_loadhi,
10116         unaligned_loadqi_le, unaligned_loadqi_be, unaligned_loadhi_le,
10117         unaligned_loadhi_be): Expect op0 in DImode; don't SUBREG.
10118         (reload_inqi, reload_inhi): Fix mode of op0.
10119         (reload_inqi_help, reload_inhi_help, reload_outqi_help,
10120         reload_outhi_help): Likewise.  Use define_insn_and_split.
10121
10122         * config/alpha/alpha.md (call peepholes): Check for REG_NORETURN
10123         as well as $29 dead.
10124
10125 2004-01-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
10126
10127         * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): New.  Emit
10128         "tls_object" for thread-local objects.
10129         * config/sparc/sparc.c (sparc_elf_asm_named_section): Emit
10130         "#tls" for thread-local sections.
10131         * configure.ac (thread-local checks): Specify --fatal-warnings in
10132         every binutils-specific checks.  For sparc*-*-*, test whether the
10133         OS is Solaris and the tools are native and act accordingly.
10134         * configure: Rebuild.
10135
10136 2004-01-19  Jeff Law  <law@redhat.com>
10137
10138         * contrib.texi: Update Paolo Carlini's entry.  New entries for
10139         Jerry Quinn and Petur Runolfsson.
10140
10141 2004-01-19  Roger Sayle  <roger@eyesopen.com>
10142
10143         * config/i386/i386.md (*movhi_1, *movqi_1): When optimizing for
10144         size, don't use the larger zero-extending loads.
10145
10146 2004-01-19  Richard Henderson  <rth@redhat.com>
10147
10148         * alpha.h (HARD_REGNO_MODE_OK): Disallow SImode in FP regs.
10149         * alpha.md (UNSPEC_NT_LDA): Remove.
10150         (UNSPEC_CVTLQ, cvtlq): New.
10151         (extendsidi2_1): Rename from extendsidi2_nofix; remove f/f.
10152         (extendsidi2_fix): Remove.
10153         (extendsidi2 splitter): Use cvtlq.
10154         (extendsidi2 fp peepholes): Remove.
10155         (cvtql): Use SFmode instead of SImode.
10156         (fix_trunc?fsi): Update to match.
10157         (floatsisf2_ieee, floatsisf2, floatsidf2_ieee, floatsidf2): New.
10158         (movsi): Rename from movsi_nofix, remove f alternatives.
10159         (movsi_nt_vms): Similarly.
10160         (movsi_fix, movsi_nt_vms_fix): Remove.
10161         (nt_lda): Remove.
10162         * alpha.c (alpha_expand_prologue): Use adddi3, not nt_lda.
10163
10164 2004-01-19  Jan Hubicka  <jh@suse.cz>
10165
10166         * cgraph.c (cgraph_remove_node): Fix removal from linked list.
10167         * cgraphunit.c (cgraph_finalize_compilation_unit): Clear next_needed
10168         list.
10169         (cgraph_remove_unreachable_nodes): New function
10170         (cgraph_decide_inlining_of_small_function): Fix pasto.
10171         (cgraph_decide_inlining_incrementally): Fix pasto.
10172         (cgrpah_decide_inlining): Likewise; remove unreachable nodes.
10173
10174 2004-01-19  Steven Bosscher  <stevenb@suse.de>
10175
10176         * gengtype.c (header_file): Make it static.
10177         (write_types_process_field, write_enum_defn): Minor whitespace fixes.
10178         * gengtype.h (header_file): No longer extern.
10179
10180 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
10181
10182         * defaults.h (CASE_VECTOR_PC_RELATIVE): Provide the default.
10183         * expr.c (CASE_VECTOR_PC_RELATIVE): Remove.
10184         * stmt.c (CASE_VECTOR_PC_RELATIVE): Likewise.
10185
10186 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
10187
10188         * stmt.c (HAVE_casesi): Define it not already defined.
10189         (HAVE_tablejump): Likewise.
10190         (expand_end_case_type): Resort to the binary tree method if
10191         neither casesi or tablejump is available.
10192
10193 2004-01-18  Daniel Jacobowitz  <drow@mvista.com>
10194
10195         * final.c (final_scan_insn): Make non-static again.
10196         * output.h (final_scan_insn): Re-add prototype.
10197         * config/arc/arc.c (arc_output_function_epilogue): Add NULL
10198         to final_scan_insn call.
10199         * config/cris/cris.c (cris_target_asm_function_epilogue): Likewise.
10200         * config/mips/mips.c (mips_output_conditional_branch): Likewise.
10201         * config/pa/pa.c (output_lbranch, output_call): Likewise.
10202         * config/sh/sh.c (print_slot): Likewise.
10203         * config/sparc/sparc.c (sparc_nonflat_function_epilogue): Likewise.
10204         (output_sibcall, sparc_flat_function_epilogue): Likewise.
10205
10206 2004-01-18  Jan Hubicka  <jh@suse.cz>
10207
10208         * basic-block.h (try_redirect_by_replacing_jump): Declare.
10209         * cfgcleanup.c (try_optimize_cfg): Use it.
10210         * cfgrtl.c (try_redirect_by_replacing_jump): Export.
10211         (rtl_redirect_edge_and_branch, cfg_layout_redirect_edge_and_branch):
10212         Kill hack.
10213         (cfg_layout_merge_blocks): Use try_redirect_by_replacing_jump.
10214
10215         Revert:
10216         2004-01-16  Geoffrey Keating  <geoffk@apple.com>
10217
10218                 * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
10219                 even after reload, just don't remove the actual jump tables.
10220
10221 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
10222
10223         * config/rs6000/rs6000.h (STRICT_ARGUMENT_NAMING): Remove.
10224
10225 2004-01-18  Kazu Hirata  <kazu@cs.umass.edu>
10226
10227         * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Fix the computation of
10228         the size of a pointer in bytes.
10229
10230 2004-01-18  Roger Sayle  <roger@eyesopen.com>
10231
10232         * builtins.c (expand_builtin_expect_jump): Fix thinko of reusing
10233         live "next" variable, which could lead to an infinite loop.
10234
10235 2004-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
10236
10237         * config/rs6000/altivec.h: Wrap C++ functions in extern "C++"
10238         block.
10239
10240         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
10241         Check for NULL in the chain and remove repeated code.
10242
10243 2004-01-18  Jan Hubicka  <jh@suse.cz>
10244
10245         * coverage.c (checksum_string): Rename to ...
10246         (coverage_checksum_string): ... this one, Use crc32_string; recognize
10247         names containing random number and zero the number out in order to get
10248         match.
10249
10250 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
10251
10252         * config/mips/mips.c (mips_got_alias_set): Mark for PCH.
10253
10254 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
10255
10256         * doc/c-tree.texi, doc/cpp.texi, doc/extend.texi,
10257         doc/frontends.texi, doc/gcov.texi, doc/gty.texi, doc/install.texi,
10258         doc/invoke.texi, doc/libgcc.texi, doc/md.texi, doc/rtl.texi,
10259         doc/sourcebuild.texi, doc/standards.texi, doc/tm.texi,
10260         doc/trouble.texi: Remove trailing whitespace.
10261
10262 2004-01-18  Richard Sandiford  <rsandifo@redhat.com>
10263
10264         PR target/7618
10265         * config/mips/mips.c: Include cfglayout.h.
10266         (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Define.
10267         (mips_unspec_offset_high): Add temporary register argument.
10268         (mips_load_call_address): New function, split out from...
10269         (mips_expand_call): ...here.
10270         (mips_output_cplocal): New function.
10271         (mips_output_function_prologue, mips_output_function_epilogue): Use it.
10272         (mips_emit_loadgp): New function, split out from...
10273         (mips_expand_prologue): ...here.
10274         (mips_output_mi_thunk): New function.
10275
10276 2004-01-17  Bernardo Innocenti  <bernie@develer.com>
10277
10278         * longlong.h (mc68020, __mc68030__, mc68030, __mc68040__, mc68040,
10279         mcpu32): Remove redundant checks for implied target predefines.
10280
10281 2004-1-17  Andrew Pinski  <pinskia@physics.uc.edu>
10282
10283         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
10284         Return type is unsigned int not int.
10285         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
10286         Likewise.
10287
10288 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
10289
10290         * doc/contrib.texi, doc/cppenv.texi, doc/extend.texi,
10291         doc/install.texi, doc/invoke.texi, doc/tm.texi: Consistently use
10292         "GNU/Linux" and "Microsoft Windows" terminology.
10293
10294 2004-01-18  Joseph S. Myers  <jsm@polyomino.org.uk>
10295
10296         * doc/c-tree.texi, doc/compat.texi, doc/cpp.texi,
10297         doc/cppopts.texi, doc/extend.texi, doc/install.texi,
10298         doc/interface.texi, doc/invoke.texi, doc/libgcc.texi, doc/md.texi,
10299         doc/objc.texi, doc/rtl.texi, doc/tm.texi, doc/trouble.texi: Use
10300         @smallexample instead of @example.
10301
10302 2004-01-17  Ziemowit Laski  <zlaski@apple.com>
10303
10304         * objc/objc-act.c (build_objc_method_call): Use target
10305         hooks instead of macros to determine if ..._stret
10306         dispatchers should be used (NeXT runtime only).
10307
10308 2004-01-17  Roger Sayle  <roger@eyesopen.com>
10309
10310         * builtins.c (expand_builtin_expect_jump): Fix mistake in my
10311         last patch.  Use XEXP (x, 0) to get a LABEL_REF's CODE_LABEL.
10312
10313 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
10314
10315         * rtl.h (emit_insn_before_sameloc, emit_jump_insn_before_sameloc)
10316         (emit_call_insn_before_sameloc, emit_insn_after_sameloc)
10317         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): New
10318         macros.
10319         * reload1.c (emit_reload_insns): Use them.
10320         * emit-rtl.c (emit_insn_before_sameloc, emit_insn_after_sameloc)
10321         (emit_jump_insn_after_sameloc, emit_call_insn_after_sameloc): Check
10322         for NULL PATTERN.
10323
10324 2004-01-17  Daniel Jacobowitz  <drow@mvista.com>
10325
10326         * final.c (SEEN_BB, SEEN_NOTE, SEEN_EMITTED): Define.
10327         (final_scan_insn): Update to take an additional SEEN argument.  Emit
10328         a line note after the prologue.  Make static.
10329         (line_note_exists): Remove.
10330         (final): Don't initialize line_note_exists.  Update call to
10331         final_scan_insn.
10332         * output.h (final_scan_insn): Remove prologue.
10333         * function.c (set_insn_locators): Update comment.
10334         (thread_prologue_and_epilogue_insns): Add a comment.
10335
10336 2004-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
10337
10338         PR target/10781
10339         * config/rs6000/rs6000-protos.h (rs6000_special_round_type_align):
10340         Prototype.
10341         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
10342         New function.
10343         * config/rs6000/linux64.h (ROUND_TYPE_ALIGN): Use it.
10344         * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Likewise.
10345         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Likewise.
10346
10347 2004-01-17  Jan Hubicka  <jh@suse.cz>
10348
10349         * toplev.c (rest_of_handle_reorder_blocks): Fix pasto in previous
10350         commit.
10351
10352         * toplev.c (HAVE_conditional_execution): Provide default.
10353         (rest_of_handle_reorder_blocks): For conditional_execution target
10354         update liveness once after all transformations
10355         (rest_of_compilation): Do crossjumping before ce3.
10356
10357 2004-01-17  Geoffrey Keating  <geoffk@apple.com>
10358
10359         * alias.c (new_alias_set): Mark last_alias_set for PCH.
10360         (get_varargs_alias_set): Rename 'set' to 'varargs_set' and mark it
10361         for PCH.
10362         (get_frame_alias_set): Likewise, except rename it to 'frame_set'.
10363         * config/rs6000/rs6000.c (rs6000_sr_alias_set): Mark for PCH.
10364         (get_TOC_alias_set): Mark 'set' for PCH.
10365
10366 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
10367
10368         * cfgrtl.c (try_redirect_by_replacing_jump): Optimize tablejumps
10369         even after reload, just don't remove the actual jump tables.
10370
10371 2004-01-17  J. Brobecker  <brobecker@gnat.com>
10372
10373         * dwarf2out.c (is_subrange_type): Renamed from is_ada_subrange_type().
10374         Remove checks for is_ada() and TREE_UNSIGNED.
10375         (subrange_type_die): Emit a byte_size attribute if the subrange
10376         type size is different from the base type size.
10377         (modified_type_die): Replace call to is_ada_subrange_type() by
10378         call to is_subrange_type().
10379
10380 2004-01-16  Andrew Pinski  <pinskia@physics.uc.edu>
10381
10382         * config/sh/sh.c: Include ggc.h.
10383
10384 2004-01-16  Geoffrey Keating  <geoffk@apple.com>
10385
10386         * Makefile.in (MD5_H): New.
10387         (fold-const.o): Depend on md5.h.
10388         (dwarf2out.o): Likewise.
10389         (cppfiles.o): Likewise.
10390         * cppfiles.c: Include md5.h.
10391         (should_stack_file): Check against list read from PCH file.
10392         (struct pchf_data): New.
10393         (pchf): New variable.
10394         (struct pchf_adder_info): New.
10395         (pchf_adder): New.
10396         (pchf_save_compare): New.
10397         (_cpp_save_file_entries): New.
10398         (_cpp_read_file_entries): New.
10399         (struct pchf_compare_data): New.
10400         (pchf_compare): New.
10401         (check_file_against_entries): New.
10402         * cpphash.h (_cpp_save_file_entries): Prototype.
10403         (_cpp_read_file_entries): Prototype.
10404         * cpppch.c (cpp_write_pch_state): Write the list of headers.
10405         (cpp_read_state): Read the list of headers.
10406
10407 2004-01-17  Jan Hubicka  <jh@suse.cz>
10408
10409         * c-common.c (c_estimate_num_insns_1): Handle builtin_constant_p and
10410         builtin_expect specially.
10411         * params.def (PARAM_MAX_INLINE_INSNS_AUTO): Set to 100.
10412         (PARAM_LARGE_FUNCTION_INSNS): Set to 3000.
10413         * invoke.texi (max-inline-insns-single): Set to 100.
10414         (large-function-insns): Set to 3000.
10415
10416 2004-01-16  Eric Christopher  <echristo@redhat.com>
10417             Chandrakala Chavva <cchavva@redhat.com>
10418
10419         * cppcharset.c (one_iso88591_to_utf8): New function.
10420         (convert_iso88591_utf8): Ditto. Use.
10421         (conversion_tab): Use.
10422         (_cpp_input_to_utf8): New function.
10423         (_cpp_init_iconv_buffer): Ditto.
10424         (_cpp_close_iconv_buffer): Ditto.
10425         * cpphash.h: Prototype new functions.
10426         (cpp_buffer): Add input_cset_desc.
10427         * cppinit.c: Add input_charset default.
10428         * cpplib.c (cpp_push_buffer): Support init and
10429         close of iconv.
10430         * cpplib.h (cpp_options): Add input_charset.
10431
10432 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
10433
10434         * system.h (ASM_OUTPUT_SECTION_NAME): Poison.
10435         * config/alpha/unicosmk.h: Remove a commented-out definition
10436         of ASM_OUTPUT_SECTION_NAME.
10437         * config/stormy16/stormy16.h: Likewise.
10438
10439 2004-01-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10440
10441         * fixinc/inclhack.def (alpha___extern_prefix): Renamed to ...
10442         (alpha___extern_prefix_sys_stat): ... this.
10443         Apply to <sys/mount.h>, too.
10444         Tweak to match more variations.
10445         * fixinc/tests/base/sys/stat.h: Adapt for new hackname.
10446
10447         * fixinc/inclhack.def (alpha___extern_prefix,
10448         alpha___extern_prefix_standards): New hacks to obey
10449         __PRAGMA_EXTERN_PREFIX.
10450         * fixinc/tests/base/testing.h [ALPHA___EXTERN_PREFIX_CHECK]: New
10451         test.
10452         * fixinc/tests/base/standards.h: Likewise.
10453
10454         * fixincl/inclhack.def (alpha_pthread): Tweak to match more
10455         variations.
10456         New testcase.
10457         * fixinc/tests/base/pthread.h: Handle it.
10458
10459         * fixincl/inclhack.def (bad_lval): Sort file list.
10460         Add many missing files up to Tru64 UNIX V5.1B.
10461         * gcc/fixinc/tests/base/libgen.h: Renamed to ...
10462         * gcc/fixinc/tests/base/dirent.h: ... this to match new file list
10463         order.
10464
10465         * fixinc/fixincl.x: Regenerate.
10466
10467 2004-01-16  Mark Mitchell  <mark@codesourcery.com>
10468
10469         * version.c (version_string): Change to 3.5.0.
10470         * doc/include/gcc-common.texi (version-GCC): Likewise.
10471
10472 2004-01-16  Jan Hubicka  <jh@suse.cz>
10473
10474         * i386.md (load_tp_di): Fix pasto.
10475
10476         PR opt/13608
10477         * i386.c (ix86_compute_frame_layout): Fix for alloca on leaf function.
10478
10479         * c-pretty-print.c (pp_c_type_cast, pp_c_abstract_declarator,
10480         pp_c_character_constant, pp_c_floating_constant,
10481         pp_c_additive_expression, pp_c_shift_expression,
10482         pp_c_equality_expression, pp_c_and_expression,
10483         pp_c_exclusive_or_expression, pp_c_inclusive_or_expression,
10484         pp_c_logical_and_expression): Remove inline modifier.
10485         * dwarf2out.c (get_AT): Likewise.
10486         * et-forest.c (et_splay): Likewise.
10487         * ra.h (ra_alloc, ra_calloc): Likewise
10488
10489 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
10490
10491         * config/frv/frv-protos.h: Fix comment formatting.
10492         * config/frv/frv.c: Likewise.
10493         * config/frv/frv.h: Likewise.
10494         * config/frv/frv.md: Likewise.
10495         * config/frv/frvbegin.c: Likewise.
10496         * config/frv/frvend.c: Likewise.
10497
10498 2004-01-16  Kazu Hirata  <kazu@cs.umass.edu>
10499
10500         * system.h (LINKER_DOES_NOT_WORK_WITH_DWARF2): Poison.
10501         * doc/tm.texi (PREFERRED_DEBUGGING_TYPE): Don't mention
10502         LINKER_DOES_NOT_WORK_WITH_DWARF2.
10503         (LINKER_DOES_NOT_WORK_WITH_DWARF2): Remove.
10504
10505 2004-01-16  J"orn Rennecke <joern.rennecke@superh.com>
10506
10507         PR 11864
10508         * postreload.c (reload_cse_simplify_operands): Don't remove
10509         implicit extension from LOAD_EXTEND_OP.
10510
10511 2004-01-16  Jan Hubicka  <jh@suse.cz>
10512
10513         PR opt/11350
10514         * cfgcleanup.c (try_optimize_cfg): Suppress tablejump removal
10515         after reload.
10516         * cfgrtl.c (rtl_can_merge_blocks, cfglayout_can_merge_blocks,
10517         rtl_try_redirect_by_replacing_branch): Likewise.
10518
10519 2004-01-15  Geoffrey Keating  <geoffk@apple.com>
10520
10521         PR pch/13689
10522         * alias.c (struct alias_set_entry): Mark for GC.
10523         (alias_sets): Make static, mark for GC.
10524         (record_alias_subset): Use GC to allocate alias structures.
10525         * varray.c (element): Make generic varrays GCed.
10526
10527         PR pch/13361
10528         * c-typeck.c (constructor_asmspec): Delete.
10529         (struct initializer_stack): Delete field 'asmspec'.
10530         (start_init): Delete saving of asmspec.
10531         (finish_init): Don't update constructor_asmspec.
10532         * dwarf2out.c (rtl_for_decl_location): Duplicate string from tree.
10533         * stmt.c (expand_asm): Duplicate strings from tree.
10534         (expand_asm_operands): Likewise.
10535         * tree.c (tree_size): Update computation of size of STRING_CST.
10536         (make_node): Don't make STRING_CST nodes.
10537         (build_string): Allocate string with tree node.
10538         * tree.def (STRING_CST): Update comment.
10539         * tree.h (TREE_STRING_POINTER): Adjust for change to STRING_CST.
10540         (tree_string): Place contents of string in tree node.
10541         * config/sh/sh.c (sh_handle_sp_switch_attribute): Duplicate string
10542         from tree.
10543
10544         * config/rs6000/rs6000.c (rs6000_va_arg): No need to special-case
10545         altivec operands.
10546
10547 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
10548
10549         * c-common.h: Fix comment formatting.
10550         * c-cppbuiltin.c: Likewise.
10551         * c-pragma.c: Likewise.
10552         * calls.c: Likewise.
10553         * collect2.c: Likewise.
10554         * cppcharset.c: Likewise.
10555         * cpptrad.c: Likewise.
10556         * dbxout.c: Likewise.
10557         * defaults.h: Likewise.
10558         * dwarf2out.c: Likewise.
10559         * fold-const.c: Likewise.
10560         * genautomata.c: Likewise.
10561         * genconditions.c: Likewise.
10562         * genflags.c: Likewise.
10563         * gengtype.c: Likewise.
10564         * integrate.c: Likewise.
10565         * loop.c: Likewise.
10566         * predict.c: Likewise.
10567         * sdbout.c: Likewise.
10568
10569 2004-01-15  Zack Weinberg  <zack@codesourcery.com>
10570
10571         * config/ia64/ia64.md (*movti_internal): C output template
10572         extracted to ia64.c.
10573         (*movti_internal_reg): Delete.
10574         (reload_inti, reload_outti): Use the correct mode on operand 2
10575         in the first place, don't fix it up in the output template.
10576         (movtf, reload_ointf, reload_outtf): New expanders.
10577         (*movtf_internal): New define_insn_and_split.
10578         * config/ia64/ia64.c (ia64_split_timode): Rename to ia64_split_tmode;
10579         make static; do not hand TFmode CONST_DOUBLEs to split_double.
10580         (ia64_split_tmode_move): New function, body mostly pulled
10581         from ia64.md:*movti_internal.
10582         (ia64_function_arg_words): New function, extracted common
10583         logic from ia64_function_arg et seq.
10584         (ia64_function_arg_offset): Likewise.  Handle correctly the
10585         case of a scalar quantity 16 bytes wide with only 8-byte alignment.
10586         (ia64_function_arg, ia64_function_arg_partial_nregs)
10587         (ia64_function_arg_advance): Use ia64_function_arg_words and
10588         ia64_function_arg_offset.
10589         (ia64_function_value): TCmode does not go in float regs.
10590         (ia64_secondary_reload_class): Also handle TFmode.
10591         * config/ia64/ia64-protos.h: Remove prototype for
10592         ia64_split_timode; add prototype for ia64_split_tmode_move.
10593
10594 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
10595
10596         * Makefile.in (MAINT): Make it an immediate assignment.
10597
10598 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
10599
10600         * config/m32r/m32r.md: Remove useless calls to gen_lowpart.
10601
10602 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
10603
10604         * config/h8300/coff.h: Replace Hitachi with Renesas.
10605         * config/h8300/elf.h: Likewise.
10606         * config/h8300/h8300-protos.h: Likewise.
10607         * config/h8300/h8300.c: Likewise.
10608         * config/h8300/h8300.h: Likewise.
10609         * config/h8300/h8300.md: Likewise.
10610         * config/h8300/lib1funcs.asm: Likewise.
10611
10612 2004-01-15  Andrew Pinski  <apinski@apple.com>
10613
10614         * config/rs6000/rs6000.c (uses_TOC): Wrap #if TARGET_ELF
10615         around it.
10616
10617 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
10618
10619         * config/h8300/h8300.c (h8300_return_in_memory): New.
10620         (TARGET_STRUCT_VALUE_RTX): Likewise.
10621         (TARGET_RETURN_IN_MEMORY): Likewise.
10622         * config/h8300/h8300.h (STRUCT_VALUE): Remove.
10623         (RETURN_IN_MEMORY): Likewise.
10624
10625 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
10626
10627         PR optimization/13375
10628         * gcse.c (handle_avail_expr): Just return if the source is not a
10629         single set.
10630
10631 2004-01-15  Richard Earnshaw  <rearnsha@arm.com>
10632             Daniel Jacobowitz  <drow@mvista.com>
10633
10634         * arm/lib1funcs.asm (ARM_FUNC_START): Correct interworking case.
10635         (EQUIV): Define.
10636         (ARM_FUNC_ALIAS): New macro.
10637         * arm/ieee754-df.S (gedf2, ledf2, nedf2, eqdf2): Use it.
10638         * arm/ieee754-sf.S (gesf2, lesf2, nesf2, eqsf2): Use it.
10639
10640 2004-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
10641
10642         PR optimization/12372
10643         * calls.c (expand_call): Add call_fusage data for stack arguments in
10644         constant calls.
10645
10646 2004-01-15  Alan Modra  <amodra@bigpond.net.au>
10647
10648         * config/rs6000/rs6000.c (uses_TOC): Correct comment.  Make static.
10649         (rs6000_elf_declare_function_name): Formatting.
10650         * config/rs6000/rs6000-protos.h (uses_TOC): Remove declaration.
10651
10652 2004-01-15  Jan Hubicka  <jh@suse.cz>
10653
10654         PR bootstrap/13692
10655         * sched-deps.c (sched_analyze_1, sched_analyze_2): Fix thinko in
10656         previous patch.
10657
10658 2004-01-15  Richard Henderson  <rth@redhat.com>
10659
10660         * config/alpha/alpha.h (REG_ALLOC_ORDER): Reorder fp regs after
10661         integer regs of the same call-savedness.
10662
10663 2004-01-15  Andreas Schwab  <schwab@suse.de>
10664
10665         PR bootstrap/13562
10666         * config/m68k/m68k.c (output_move_const_into_data_reg): Clear cc
10667         status for NOTB/NOTW/NEGW methods.
10668
10669 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
10670
10671         * doc/invoke.texi: Update dump file names.  Fix a typo.
10672
10673 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
10674
10675         * builtins.c (expand_builtin_va_end): Don't use
10676         EXPAND_BUILTIN_VA_END.
10677         * system.h (EXPAND_BUILTIN_VA_END): Poison.
10678         * config/d30v/d30v.h: Remove a commented-out definition of
10679         EXPAND_BUILTIN_VA_END.
10680         * config/stormy16/stormy16.h: Likewise.
10681
10682 2004-01-15  Kazu Hirata  <kazu@cs.umass.edu>
10683
10684         * system.h (STRUCT_VALUE_INCOMING_REGNUM): Poison.
10685         * targhooks.c (default_struct_value_rtx): Don't use
10686         STRUCT_VALUE_INCOMING_REGNUM.
10687
10688 2004-01-15  Kelley Cook  <kcook@gcc.gnu.org>
10689
10690         PR bootstrap/12744
10691         * configure.in: Revamp enable-generated-files-in-srcdir rule to define
10692         GENINSRC and not parsedir.  Define srcextra as a langhook.
10693         * configure: Regenerate.
10694         * Makefile.in: Suppress default .l.c rule.  Don't substitute
10695         parsedir and delete all references throughout.  Conditionally define
10696         rule for srcextra dependent on GENINSRC.
10697         (stmp-docobjdir): Delete.
10698         (c-parse.o, gengtype-lex.o, gengtype-yacc.o): Use implicit build rule.
10699         (srcextra): Copy c-parse.y, c-parse.c, gengtype-lex.c, gengtype-yacc.c,
10700         and gengtype-yacc.h back to source directory.
10701         (maintainer-clean): Delete all parse files in source directory.
10702         (distclean): Delete generated files.
10703
10704         * objc/Make-lang.in (objc-parse.o): Use implicit build rule.
10705         (objc-parse.c, objc-parse.y): Don't use parsedir.
10706         (objc.srcextra): Copy objc-parse.y and objc-parse.c back to source
10707         directory if requested.
10708         (po-generated): Don't use parsedir.
10709         (objc.maintainer-clean): Delete above files from source directory.
10710
10711 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
10712
10713         * doc/tm.texi (FUNCTION_VALUE): Fix a typo.
10714
10715 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
10716
10717         * doc/tm.texi: Replace RETURN_IN_MEMORY with
10718         TARGET_RETURN_IN_MEMORY.
10719
10720 2004-01-15  Jan Hubicka  <jh@suse.cz>
10721
10722         * builtins.c (std_expand_builtin_va_arg): Align operand when needed.
10723         * i386.c (init_cumulative_args): Set warn_sse; fix handling of variadic
10724         functions accepting SSE arguments
10725         (function_arg): Warn only when asked to warn.
10726         * i386.h (ix86_args): Add warn_sse/warn_mmx fiels.
10727
10728 2004-01-14  Joseph S. Myers  <jsm@polyomino.org.uk>
10729
10730         * c-parse.in (stmts_and_decls): Make label at end of compound
10731         statement a hard error.
10732
10733 2004-01-14  Jan Hubicka  <jh@suse.cz>
10734
10735         * cgraph.c (create_edge): Use local.redefined_extern_inline.
10736         * cgraph.h (cgraph_local_info): Sort fields by size; add
10737         redefined_extern_inline
10738         (cgraph_global_info): Sort fields by size.
10739         (cgraph_node): Likewise.
10740         * cgraphunit.c (cgraph_finalize_function): Se
10741         local.redefined_extern_inline on redefinition.
10742         (cgraph_analyze_function): Use it; fix formating.
10743
10744 2004-01-14  Jan Hubicka  <jh@suse.cz>
10745
10746         PR c++/10776
10747         * sched-deps.c (trye_dependency_cache, anti_dependency_cache,
10748         outptu_dependency_cache, forward_dependency_cahe): Trun to vectors of
10749         bitmaps
10750         (cache_size): New variable
10751         (add_dependence): Update use; canonize early memory locations
10752         (sched_analyze_1): Likewise.
10753         (sched_analyze_2): Likewise.
10754         (init_dependency_caches): Initialize bitmaps.
10755         (free_dependency_caches): Free bitmaps
10756
10757 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
10758
10759         * calls.c: Replace STRICT_ARGUMENT_NAMING in comments with
10760         targetm.calls.strict_argument_naming().
10761         * target.h: Likewise.
10762
10763 2004-01-14  Richard Henderson  <rth@redhat.com>
10764
10765         PR debug/13231
10766         * dwarf2out.c (dwarf2out_stack_adjust): Skip prologue and epilogue
10767         instructions.
10768
10769 2004-01-14  Richard Henderson  <rth@redhat.com>
10770
10771         PR c++/12491
10772         * except.c (struct eh_region): Add u.fixup.resolved.
10773         (resolve_one_fixup_region): Split out from ...
10774         (resolve_fixup_regions): ... here.
10775
10776 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
10777
10778         * config/mn10300/mn10300.h (STRUCT_VALUE): Change to 0.
10779
10780 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
10781
10782         * config/alpha/alpha.h (STRUCT_VALUE): Remove.
10783         * config/alpha/vms.h (STRUCT_VALUE_REGNUM): Remove #undef.
10784         (STRUCT_VALUE): Remove.
10785
10786 2004-01-14  Steven Bosscher  <stevenb@suse.de>
10787
10788         * system.h: Poison PROMOTED_MODE
10789         * integrate.c (expand_inline_function): Don't mention the
10790         PROMOTED_MODE.
10791         * loop.c (update_giv_derive): Same.
10792         * tree.h (DECL_RTL): Same.
10793
10794 2004-01-14  J"orn Rennecke <joern.rennecke@superh.com>
10795
10796         PR target/9365
10797         * sh.c (gen_block_redirect): Add special handling of RETURN.
10798         (gen_far_branch) Don't call gen_stuff_delay_slot if there is no
10799         far branch target (i.e. it's a return).
10800
10801 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
10802
10803         * regrename.c (find_oldest_value_reg): Fix a warning.
10804
10805 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
10806
10807         PR bootstrap/12527
10808         * config.gcc (arm*-*-linux*): Don't include unknown-elf.h in tm_file.
10809         Move linux-gas.h and linux-elf.h before aout.h.
10810         * arm/arm.h (INITIALIZE_TRAMPOLINE): Only define if not already.
10811         * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Define.
10812
10813 2004-01-14  Kazu Hirata  <kazu@cs.umass.edu>
10814
10815         * config/m32r/m32r.md: Use GEN_INT instead of gen_rtx
10816         (CONST_INT, VOIDmode, ...).
10817
10818 2004-01-14  Richard Earnshaw  <rearnsha@arm.com>
10819
10820         * regrename.c (find_oldest_value_reg): If the replacement uses
10821         multiple hard registers, check that all of them are in CLASS.
10822
10823 2004-01-14  Jan Hubicka  <jh@suse.cz>
10824
10825         * alias.c (get_alias_set):  Initialize alias set to 0 when subset is
10826         impossible.
10827
10828 2004-01-14  Kelley Cook  <kcook@gcc.gnu.org>
10829
10830         * Makefile.in: Define MAINT from --enable-maintainer-mode.
10831
10832 2004-01-14  Hartmut Penner  <hpenner@de.ibm.com>
10833
10834         * gcc/config/rs6000/rs6000.c (rs6000_stack_info)
10835         Calculate always vrsave_mask if TARGET_ALTIVEC.
10836         (rs6000_emit_prologue): Emit code for vrsave
10837         only if TARGET_ALTIVEC_VRSAVE.
10838         (rs6000_emit_epilogue): Likewise.
10839
10840 2004-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
10841
10842         * config/sparc/sparc.md (tie_add32): Fix pasto.
10843         (tie_add64): Likewise.
10844
10845 2004-01-14  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10846
10847         * config/i386/i386.md (*addqi_1_slp): Do not access operands[2].
10848
10849 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
10850
10851         * config/iq2000/iq2000-protos.h: Fix comment formatting.
10852         * config/iq2000/iq2000.c: Likewise.
10853         * config/iq2000/iq2000.md: Likewise.
10854
10855 2004-01-14  J. Brobecker  <brobecker@gnat.com>
10856
10857         * dwarf2out.c (is_ada_subrange_type): No longer check the TYPE_NAME.
10858         (subrange_type_die): Add handle for nameless subrange types.
10859
10860 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
10861
10862         * config/h8300/h8300-protos.h: Replace do_movsi with
10863         h8300_expand_movsi.
10864         * config/h8300/h8300.c (do_movsi): Change to
10865         h8300_expand_movsi.
10866         * config/h8300/h8300.md (movsi): Replace do_movsi with
10867         h8300_expand_movsi.
10868         (movsf): Likewise.
10869
10870 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
10871
10872         * config/h8300/h8300.c (dosize): Change to
10873         h8300_emit_stack_adjustment.  Update callers.
10874
10875 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
10876
10877         * config/h8300/h8300.md (movstrictqi): Add an alternative with
10878         the source being post_inc.  Tighten the predicate for the
10879         destination to register_operand.
10880         (movstricthi): Likewise.
10881
10882 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
10883
10884         * system.h (SHARED_BSS_SECTION_ASM_OP): Poison.
10885         * varasm.c (bss_section): Don't use SHARED_BSS_SECTION_ASM_OP.
10886         * doc/tm.texi (SHARED_BSS_SECTION_ASM_OP): Remove.
10887
10888 2004-01-14  Jan Hubicka  <jh@suse.cz>
10889
10890         Partial fix PR c++/12850
10891         * cgraphunit.c (cgraph_finalize_function): Always ggc_collect when
10892         at zero nest level.
10893
10894 2004-01-13  Bernardo Innocenti  <bernie@develer.com>
10895
10896         * config/m68k/netbsd-elf.h (REGISTER_NAMES): Add missing "argptr"
10897         pseudo-register.
10898
10899 2004-01-13  Devang Patel <dpatel@apple.com
10900
10901         PR debug/7078
10902         * dbxout.c (dbxout_symbol_name): Emit mangled names for
10903         NAMESPACE_DECL memebers.
10904
10905 2004-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
10906
10907         PR c++/12709
10908         * c-common.c (finish_fname_decls): Use the chain only if the
10909         tree is an expr_stmt.
10910
10911 2004-01-13  Vladimir Makarov  <vmakarov@redhat.com>
10912
10913         * rtl.def: Add comment about new option in automata_option.
10914
10915         * genautomata.c (PROGRESS_OPTION): New macro.
10916         (progress_flag): New global variable.
10917         (gen_automata_option): Process `progress'.
10918         (transform_insn_regexps, check_unit_distributions_to_automata,
10919         make_automaton, NDFA_to_DFA, build_automaton, create_automata,
10920         expand_automata, write_automata): Print about the progress only if
10921         progress_flag.  Remove fflush.
10922         (initiate_automaton_gen): Process command line flag `-progress'.
10923
10924         * doc/md.texi: Describe the new option.
10925
10926 2004-01-13  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
10927
10928         * cfg.c (dump_bb): Dump entry edges.
10929
10930 2004-01-13  Richard Earnshaw  <rearnsha@arm.com>
10931
10932         * arm.c (thumb_legitimate_address_p): Only allow constant pool
10933         references from SImode.
10934         * arm.md (thumb_movhi_insn): Don't allow minipool references.
10935
10936 2004-01-13  Kazu Hirata  <kazu@cs.umass.edu>
10937
10938         * system.h (TEXT_SECTION): Poison.
10939         * varasm.c (text_section): Don't use TEXT_SECTION.
10940         * config/sh/sh.c (sh_file_start): Fix a comment typo.
10941         * doc/tm.texi (TEXT_SECTION): Remove.
10942
10943 2004-01-13  Ben Elliston  <bje@wasabisystems.com>
10944
10945         * doc/rtl.texi (Vector Operations): Remove defunct vec_const item.
10946
10947 2004-01-12  James E Wilson  <wilson@specifixinc.com>
10948
10949         * unwind-libunwind.c: Delete.
10950
10951 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
10952
10953         PR 13656
10954         * c-decl.c (diagnose_mismatched_decls): Whenever newtype or
10955         oldtype is set, set *newtypep or *oldtypep too.  Do not set
10956         them at the very end.
10957         (validate_proto_after_old_defn): Restructure for comprehensibility;
10958         make error messages clearer.
10959
10960 2004-01-12  Zack Weinberg  <zack@codesourcery.com>
10961
10962         * varray.h (VARRAY_POP): Add checking variant, aborts on underflow.
10963         (VARRAY_TOP): Use VARRAY_CHECK so the access is bounds-checked.
10964         * varray.c: No need to prototype error.
10965         (varray_check_failed): Wrap long string onto two lines.
10966         (varray_underflow): New function.
10967
10968 2004-01-13  Steven Bosscher  <stevenb@suse.de>
10969
10970         PR c++/13376
10971         * function.h (struct function): Kill `name' field.
10972         (current_function_name): Make it an extern function.
10973         * function.c (current_function_name): New function.
10974         * graph.c: Update all uses of current_function_name.
10975         * gcse.c: Likewise.
10976         * config/alpha/alpha.c, config/avr/avr.c, config/c4x/c4x.c,
10977         config/mips/mips.c, config/pdp11/pdp11.c: Likewise.
10978         * config/ip2k/ip2k.c (function_prologue): Use MAIN_NAME_P
10979         instead of a strcmp with "main".
10980
10981 2004-01-13  Jan Hubicka  <jh@suse.cz>
10982
10983         * c-decl.c (diagnose_mismatched_decls):  Fix warning calls.
10984
10985         * cgraphunit.c (cgraph_optimize_function):  Always do
10986         optimize_inline_calls when there is always_inline callee.
10987         (cgraph_decide_inlining): Fix formating.
10988         * tree-inline.c (inlinable_function_p): Do sorry for alwaysinline
10989         functions.
10990         (expand_call_inline): Likewise.
10991         * toplev.h (sorry): Fix prototype.
10992
10993 2004-01-12  Roger Sayle  <roger@eyesopen.com>
10994
10995         * builtins.c (expand_builtin_expect_jump): Simplify logic. Handle
10996         conditional jumps that drop through to unconditional jumps or the
10997         end of the sequence.
10998
10999 2004-01-13  Jan Hubicka  <jh@suse.cz>
11000
11001         * alias.c (new_alias_set): Construct the alias_set varray.
11002         (init_alias_once): Don't do it here.
11003
11004 2004-01-12  Marc Espie <espie@openbsd.org>
11005
11006         * system.h: handle YYBYACC like YYBISON.
11007
11008 2004-01-12  Jonathan Merriman <jonm@dualitymedia.com>
11009
11010         PR target/10847
11011         * config.gcc: No longer includes conflicting header sparc/sol2.h when
11012         building on sparc64-*-openbsd*.
11013
11014 2004-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
11015
11016         PR debug/13539
11017         * dbxout.c (dbxout_type): Protected inheritance is not
11018         private but protected.
11019
11020 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
11021
11022         * config/mips/mips.c (mips_symbolic_constant_p): Revert last patch.
11023
11024 2004-01-12  Kazu Hirata  <kazu@cs.umass.edu>
11025
11026         PR optimization/12508.
11027         * combine.c (try_combine): Remove a dead set in a parallel
11028         even if its destination is a subreg.
11029
11030         Revert:
11031         2003-06-03  Kazu Hirata  <kazu@cs.umass.edu>
11032         * combine.c (simplify_set): Don't move a subreg in SET_SRC to
11033         SET_DEST if WORD_REGISTER_OPERATIONS is not defined.
11034
11035 2004-01-12  Geoffrey Keating  <geoffk@apple.com>
11036
11037         * real.c: Update copyright date.
11038         * emit-rtl.c: Likewise.
11039         * rtl.h: Likewise.
11040         * dwarf2out.c: Likewise.
11041         * config/rs6000/darwin-ldouble.c: Likewise.
11042         * config/rs6000/rs6000.md: Likewise.
11043
11044 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
11045
11046         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Add AIX
11047         TFmode to SImode libfuncs.
11048
11049 2004-01-12  Roger Sayle  <roger@eyesopen.com>
11050
11051         PR middle-end/11397
11052         * varasm.c (assemble_alias): Remove weak aliases from weak_decls.
11053
11054 2004-01-12  Jan Hubicka  <jh@suse.cz>
11055
11056         PR opt/12826
11057         * loop.c (insert_loop_mem): Preffer VOLATILE memory references to be
11058         stored.
11059
11060         PR opt/12863
11061         * cfgcleanup.c (label_is_jump_target_p): Move to...
11062         * rtlanal.c (label_is_jump_target_p): ... here.
11063         * cfgrtl.c (cfg_layout_redirect_edge_and_branch):  Fix redirecting of fallthru
11064         edges unified with branch edges.
11065
11066 2004-01-12  Richard Earnshaw  <rearnsha@arm.com>
11067
11068         * simplify-rtx.c (simplify_immed_subreg): Correctly extract the
11069         high word of an integral CONST_DOUBLE.
11070
11071 2004-01-12  Paul Brook  <paul@codesourcery.com>
11072
11073         * simplify-rtx.c (simplify_plus_minus): Always generate canonical form.
11074
11075 2004-01-12  J"orn Rennecke <joern.rennecke@superh.com>
11076
11077         PR target/13585
11078         * sh-protos.h (check_use_sfunc_addr): Declare.
11079         * sh.c (extract_sfunc_addr, check_use_sfunc_addr): New functions.
11080         * sh.md (use_sfunc_addr): Use check_use_sfunc_addr in insn predicate.
11081
11082 2004-01-12  Jan Hubicka  <jh@suse.cz>
11083
11084         * alias.c:  Invlude varray.h
11085         (alias_sets): Turn into varray.
11086         (get_alias_set_entry): Use VARRAY; mark inline.
11087         (mems_in_disjoint_alias_sets_p): Mark inline.
11088         (record_alias_subset): Use varray.
11089         (init_alias_once): Initialize varray.
11090         (new_alias_set): Grow array.
11091         * varray.c: Make VARRAY_GENERIC_PTR non GTYized.
11092
11093 2004-01-12  Jan Hubicka  <jh@suse.cz>
11094
11095         Partial fix for PR opt/10776 II
11096         * cselib.c: Include params.h
11097         (cselib_invalidate_mem):  Limit amount of nonconflicting memory
11098         locations.
11099         * params.def (PARAM_MAX_CSELIB_MEMORY_LOCATIONS): New.
11100         * Makefile.in (cselib.o): Depend on params.h
11101
11102 2004-01-12  Richard Sandiford  <rsandifo@redhat.com>
11103
11104         * combine.c (combine_simplify_rtx): Don't pass VOIDmode to
11105         simplify_unary_operation if the operand has a known mode.
11106
11107 2004-01-12  Hartmut Penner  <hpenner@de.ibm.com>
11108
11109         PR target/13534
11110         * gcc/config/rs6000/rs6000.c (word_offset_memref_operand): New
11111         predicate to handle 'ld' conform addresses.
11112         * gcc/config/rs6000/rs6000.h (EXTRA_CONSTRAINT): New 'Y'
11113         contraint.
11114         (EXTRA_MEMORY_CONSTRAINT): Tell reload which constraint
11115         are memory contraints.
11116         * gcc/config/rs6000/rs6000-protos.h (word_offset_memref_operand):
11117         New prototype.
11118         * gcc/config/rs6000/rs6000.md (*movdf_hardfloat64):
11119         Change 'o' to 'Y' constraint.
11120         (*movdf_softfloat64): Ditto.
11121
11122 2004-01-12  Bernardo Innocenti  <bernie@develer.com>
11123
11124         * gcc/config/m68k/m68k.md: Switch from the "*..." syntax to the
11125         brace-enclosed syntax in all C output statements.
11126
11127 2004-01-12  David Edelsohn  <edelsohn@gnu.org>
11128
11129         PR target/13401
11130         * config/rs6000/rs6000.c (rs6000_output_function_epilogue):
11131         Objective-C language type value is 14.
11132
11133 2004-01-12  Markus F.X.J. Oberhumer  <markus@oberhumer.com>
11134
11135         PR c/12148
11136         * config/m68k/fpgnulib.c: Fix `-mshort' bugs: Use `long' instead of
11137         `int' in a number of places to make sure we always have a SImode
11138         and not a HImode.  Add a 'L' suffix to a number of constants.
11139
11140 2004-01-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11141
11142         * pa.c: Don't include obstack.h.
11143
11144         * pa.md: Correct constraint in pattern for loading PIC label address.
11145
11146 2004-01-11  Kaz Kojima  <kkojima@gcc.gnu.org>
11147
11148         * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Undefine
11149          before defining.
11150
11151 2004-01-11  Steven Bosscher  <stevenb@suse.de>
11152
11153         PR fortran/9972
11154         * toplev.c (rest_of_handle_inline): Also consider functions
11155         for deferral if the language is GNU F77.
11156
11157 2004-01-11  Zack Weinberg  <zack@codesourcery.com>
11158
11159         * c-decl.c (diagnose_arglist_conflict): Add missing space to
11160         diagnostic messages.
11161
11162 2004-01-11  Jakub Jelinek  <jakub@redhat.com>
11163
11164         PR middle-end/13392
11165         * builtins.c (expand_builtin_expect_jump): Handle conditional jumps
11166         to drop through label.  Don't fall back to SCC even when conditional
11167         jump has not been found.
11168
11169 2004-01-11  Jan Hubicka  <jh@suse.cz>
11170
11171         * invoke.texi: Fix syntax error in previous patch.
11172
11173         Partial fix for PR opt/10776
11174         * Makefile.in (reload.o): Include param.h
11175         * params.def (PARAM_MAX_RELOAD_SEARCH_INSNS): New parameter.
11176         * reload.c: Include params.h.
11177         (find_equiv_reg): Work limiting check.
11178         * invoke.texi: Document.
11179
11180 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
11181
11182         * config/mips/mips.c (mips_symbolic_constant_p): Don't allow
11183         out-of-bounds accesses to string constants.  Simplify mips16
11184         case accordingly.
11185
11186 2004-01-11  Richard Sandiford  <rsandifo@redhat.com>
11187
11188         PR optimization/13469
11189         * toplev.c (rest_of_compilation): Call purge_all_dead_edges after
11190         reload_cse_regs (-fnon-call-exceptions only).
11191
11192 2004-01-11  Kazu Hirata  <kazu@cs.umass.edu>
11193
11194         * config/mcore/lib1.asm: Fix comment formatting.
11195         * config/mcore/mcore-elf.h: Likewise.
11196         * config/mcore/mcore.c: Likewise.
11197         * config/mcore/mcore.h: Likewise.
11198         * config/mcore/mcore.md: Likewise.
11199
11200 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
11201
11202         * c-decl.c (duplicate_decls): Break apart into...
11203         (diagnose_arglist_conflict, validate_proto_after_old_defn)
11204         (locate_old_defn, diagnose_mismatched_decls, merge_decls):
11205         ... these new functions.  Restructure for comprehensibility.
11206         Remove various archaic special cases.  Always report the
11207         location of the previous declaration when a diagnostic is issued.
11208         (redeclaration_error_message): Fold into diagnose_mismatched_decls.
11209         (match_builtin_function_types): Delete unnecessary forward declaration.
11210
11211 2004-01-10  Zack Weinberg  <zack@codesourcery.com>
11212
11213         * genautomata.c (make_automaton, NDFA_to_DFA):
11214         Print progress bars with '.' characters instead of '*'.
11215         (build_automaton): Change notes to match.
11216
11217 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
11218
11219         * config/m32r/m32r.md: Use define_constants for unspec and
11220         unspec_volatile.
11221
11222 2004-01-10  Jan Hubicka  <jh@suse.cz>
11223
11224         PR opt/11635
11225         * expr.c (expand_expr_real):  More curefully expand union casts.
11226
11227 2004-01-10  Kazu Hirata  <kazu@cs.umass.edu>
11228
11229         * config/m32r/m32r.md (flush_icache): Use 1 for
11230         unspec_volatile.
11231
11232 2004-01-10  David Edelsohn  <edelsohn@gnu.org>
11233             James E Wilson  <wilson@specifixinc.com>
11234
11235         PR debug/12860
11236         * dbxout.c (dbxout_symbol): Remove initialization of
11237         current_sym_code, current_sym_value, and current_sym_addr.
11238         (dbxout_symbol_location): Same.
11239         (dbxout_prepare_symbol): Zero current_sym_code,
11240         current_sym_value, and current_sym_addr.
11241
11242 2004-01-10  Richard Sandiford  <rsandifo@redhat.com>
11243
11244         * tree.c (get_unwidened): Reorder conditions so that the null pointer
11245         check is done first.
11246
11247 2004-01-09  Eric Christopher  <echristo@redhat.com>
11248
11249         * toplev.c (rest_of_handle_cfg): Add reg_scan pass
11250         if we're running mark_constant_function.
11251
11252 2004-01-09  Jeff Bailey  <jbailey@nisa.net>
11253
11254         PR target/12561
11255         * config/t-gnu: Rename SYSTEM_HEADER_DIR to NATIVE_SYSTEM_HEADER_DIR.
11256
11257 2004-01-09  Andrew Pinski <pinskia@physics.uc.edu>
11258
11259         PR debug/11231
11260         * dbxout.c (dbxout_type_fields): Return if any item is
11261         error_mark_node or the type is error_mark_node.
11262
11263 2004-01-09  Geoffrey Keating  <geoffk@apple.com>
11264
11265         * config/rs6000/darwin-ldouble.c: Add big comment explaining
11266         exactly what is expected as a 'long double'.
11267         (_xlqadd): When a value to be returned is representable as a
11268         'double', just return it directly, do not construct it using a union.
11269         Also, correct final fixup.
11270         (_xlqmul): Likewise.
11271         (_xlqdiv): Likewise.
11272         * real.c (encode_ibm_extended): Make consistent with darwin-ldouble.c.
11273
11274         * config/rs6000/rs6000.md (fix_trunctfdi2): Delete.
11275
11276 2004-01-09  Richard Henderson  <rth@redhat.com>
11277
11278         * recog.c (constrain_operands): Validate mem operands.
11279
11280 2004-01-09   James E Wilson  <wilson@specifixinc.com>
11281
11282         * gcc.c (init_spec): Remove -lunwind from shared case.
11283         * conifg/ia64/t-hpux (SHLIB_LINK): Add -lunwind.
11284
11285 2004-01-09  Steve Ellcey  <sje@cup.hp.com>
11286
11287         * configure.ac: (gcc_cv_ld_hidden) Set to true for ia64*-*-hpux*.
11288         * configure: Regenerate
11289
11290 2004-01-09  Joseph S. Myers  <jsm@polyomino.org.uk>
11291
11292         PR c/11234
11293         * c-typeck.c (build_c_cast): If pedantic, warn for conversions
11294         between function and object pointers.
11295         (digest_init): When comparing a pointer to function type to the
11296         target type, only apply TREE_TYPE once to the pointer to function
11297         type.
11298         * except.c (for_each_eh_label_1): Treat data as a pointer to a
11299         function pointer rather than casting it to a function pointer.
11300         (for_each_eh_label): Update caller.
11301         * recog.h (struct insn_data): Use a struct or union for output.
11302         * genoutput.c (output_insn_data): Update.
11303         * final.c (get_insn_template): Update.
11304
11305 2004-01-09  Mark Mitchell  <mark@codesourcery.com>
11306
11307         * expr.h (expand_expr): Make it a macro, not a function.
11308         (expand_expr_real): New function.
11309         * expr.c (store_expr): Adjust logic for deciding whether or not to
11310         copy the value returned by expand_expr.
11311         (expand_expr): Rename to ...
11312         (expand_expr_real): ... this.  Add alt_rtl parameter.  Adjust
11313         calls to language hooks.
11314         * c-common.h (c_expand_expr): Adjust prototype.
11315         * c-common.c (c_expand_expr): Add alt_rtl parameter.
11316         * langhooks-def.h (lhd_expand_expr): Change prototype.
11317         * langhooks.c (lhd_expand_expr): Add all_rtl parameter.
11318         * langhooks.h (lang_hooks): Change type of expand_expr.
11319         * stmt.c (stmt_status): Add x_last_expr_alt_rtl.
11320         (last_expr_alt_rtl): Likewise.
11321         (expand_expr_stmt_value): Set last_expr_alt_rtl.
11322         (clear_last_expr): Clear it.
11323         (expand_end_stmt_expr): Set RTL_EXPR_ATL_RTL.
11324         (expand_end_bindings): Save and restor last_expr_alt_rtl.
11325         * tree.def (RTL_EXPR): Give it an additional operand.
11326         * tree.h (RTL_EXPR_ALT_RTL): New macro.
11327
11328 2004-01-09  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
11329
11330         * config/m32r/m32r.h (TARGET_CPU_CPP_BUILTINS): Add __m32r__.
11331         * config/m32r/m32r.c (call26_operand): Allow in PIC mode.
11332
11333 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
11334
11335         PR target/13380.
11336         * config/m32r/m32r.md: Replace (reg:SI 17) with (reg:CC 17)
11337         or (ne:SI (reg:CC 17) (const_int 0)).
11338         Be specific about modes wherever possible.
11339
11340 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
11341
11342         * config/m32r/m32r.c (m32r_expand_block_move): Call
11343         gen_movestrsi_internal with two more arguments.
11344         (m32r_output_block_move): Adjust operand numbers.
11345         Properly update the source and destination pointers.
11346         * config/m32r/m32r.md (movstrsi_internal): Use 'r' instead of
11347         'r+'.  Change the set detinations to match_operand.
11348
11349 2004-01-09  Kazu Hirata  <kazu@cs.umass.edu>
11350
11351         * final.c (FIRST_INSN_ADDRESS): Remove.
11352         (shorten_branches): Don't use FIRST_INSN_ADDRESS.
11353         * system.h (FIRST_INSN_ADDRESS): Poison.
11354         * config/avr/avr.h: Remove a comment about FIRST_INSN_ADDRESS.
11355         * config/m32r/m32r-protos.h: Remove the prototype for
11356         m32r_first_insn_address.
11357         * config/m32r/m32r.c (m32r_first_insn_address): Remove.
11358         * config/m32r/m32r.h (FIRST_INSN_ADDRESS): Likewise.
11359         * doc/md.texi (FIRST_INSN_ADDRESS): Likewise.
11360
11361 2004-01-09  J. Brobecker  <brobecker@gnat.com>
11362
11363         * dwarf2out.c (gen_enumeration_type_die): Return the DIE that
11364         we just created.
11365         (is_ada_subrange_type): DIEs for enumeration subtypes should be
11366         emitted as subrange types too.
11367         (subrange_type_die): Add handling of enumeration subtypes.
11368
11369 2004-01-08  Richard Henderson  <rth@redhat.com>
11370
11371         PR opt/12441
11372         Revert: Sat Mar 30 14:08:55 CET 2002  Jan Hubicka  <jh@suse.cz>
11373         * i386.c (aligned_operand): Be prepared for SUBREGed registers.
11374         (ix86_decompose_address): Use REG_P instead of GET_CODE (...) == REG.
11375         (ix86_address_cost): Be prepared for SUBREGed registers.
11376         (legitimate_address_p): Accept SUBREGed registers.
11377
11378 2004-01-08  Kelley Cook  <kcook@gcc.gnu.org>
11379
11380         * Makefile.in: Rename configure.in to configure.ac
11381         * doc/sourcebuild.texi: Likewise.
11382         * configure: Regenerate.
11383         * config.in: Regenerate.
11384
11385 2004-01-08  Stuart Hastings  <stuart@apple.com>
11386
11387         * config/i386/i386.md: Typos in MMX/SSE immediate shifts.
11388
11389 2004-01-08  Jan Hubicka  <jh@suse.cz>
11390
11391         * cgraphunit.c (cgraph_decide_inlining):  Fix typo.
11392
11393 2004-01-08  Geoffrey Keating  <geoffk@apple.com>
11394
11395         * config/rs6000/rs6000.md (cmptf_internal1): Correct branch offset.
11396         (UNSPEC_FIX_TRUNC_TF): New constant.
11397         (movtf_internal): Make splitter active only when insn is active.
11398         (extenddftf2): Rewrite to properly load zero into low part.
11399         (extenddftf2_internal): New.
11400         (extendsftf2): Rewrite.
11401         (truncdftf2): Correct length.
11402         (floatditf2): Delete.
11403         (fix_trunc_helper): New.
11404         (fix_trunctfdi2): Use fix_trunc_helper.
11405         (fix_trunctfsi2): Likewise.fix_trunc
11406         (fix_trunctfsi2_internal): New.
11407
11408         * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): lo_sum
11409         addresses are legitimate on Darwin even when flag_pic.
11410         (rs6000_legitimize_reload_address) [TARGET_MACHO]: Don't create
11411         non-offsettable addresses for loads of TFmode constants.
11412
11413 2004-01-08  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
11414
11415         * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Actually emit
11416         variables in the appropriate bss section.
11417
11418 2004-01-09  Alan Modra  <amodra@bigpond.net.au>
11419
11420         * config/rs6000/linux64.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Ensure
11421         target_flags has MASK_POWERPC64 when -m64.
11422         * config/rs6000/rs6000.c (processor_target_table): Add MASK_POWERPC64
11423         to 620, 630, power3, power4 and rs64a entries.
11424         * config/rs6000/rs6000.h (MASK_64BIT): Expand comment.
11425
11426 2004-01-08  Richard Sandiford  <rsandifo@redhat.com>
11427
11428         * simplify-rtx.c (simplify_immed_subreg): Fix construction of
11429         floating-point constants.
11430
11431 2004-01-08  J. Brobecker  <brobecker@gnat.com>
11432
11433         * dwarf2out.c (subrange_type_die): Add context_die parameter.
11434         Create the subrange_type DIE using the given context DIE.
11435         (modified_type_die): Update call to subrange_type_die.
11436
11437 2004-01-08  Zack Weinberg  <zack@codesourcery.com>
11438
11439         * dwarf2.h, unwind-dw2-fde.h, unwind-pe.h, unwind.h:
11440         Add multiple-include guard.
11441
11442 2004-01-08  Hartmut Penner  <hpenner@de.ibm.com>
11443
11444         * gcc/config/rs6000/rs6000.c (easy_vector_constant): Accept
11445         all vector constant loadable by vsplt*.
11446         (output_vec_const_move): Likewise.
11447
11448 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
11449
11450         PR c/6024
11451         * c-typeck.c (comptypes): Only treat enumerated types in the same
11452         translation unit as compatible with each other when they are the
11453         same type.
11454         * doc/extend.texi: Update.
11455
11456 2004-01-07  Joseph S. Myers  <jsm@polyomino.org.uk>
11457
11458         PR c/12165
11459         * c-decl.c (grokdeclarator): Take type qualifiers of typedefed
11460         array type from the array element type.
11461
11462 2004-01-07  Alan Modra  <amodra@bigpond.net.au>
11463
11464         * config/rs6000/rs6000.c (rs6000_dbx_register_number): New function.
11465         * config/rs6000/rs6000-protos.h (rs6000_dbx_register_number): Declare.
11466         * config/rs6000/rs6000.h (DWARF_FRAME_REGNUM): Define.
11467         (DWARF_REG_TO_UNWIND_COLUMN): Correct column adjustment and comment.
11468         * config/rs6000/sysv4.h (DBX_REGISTER_NUMBER): Define.
11469
11470 2004-01-06  Eric Christopher  <echristo@redhat.com>
11471
11472         * config/mips/mips.h (MDEBUG_ASM_SPEC): Change for dwarf2 default.
11473         (DWARF2_DEBUGGING_INFO): Define.
11474         (PREFERRED_DEBUGGING_TYPE): Set to dwarf2.
11475         * config/mips/openbsd.h (PREFERRED_DEBUGGING_TYPE): Remove.
11476         * config/mips/iris6.h (SUBTARGET_ASM_DEBUGGING_SPEC): Only pass -g0
11477         for irix as.
11478         (SUBTARGET_ASM_OPTIMIZING_SPEC): Only pass O0 for irix as.
11479         * config/mips/iris6gas.h (MDEBUG_ASM_SPEC): Remove.
11480         * config/mips/iris5gas.h: Ditto.
11481         (DBX_DEBUGGING_INFO): Remove.
11482         (DWARF2_DEBUGGING_INFO): Ditto.
11483         (MIPS_DEBUGGING_INFO): Ditto.
11484         (PREFERRED_DEBUGGING_TYPE): Ditto.
11485         * config/mips/elf.h (DWARF2_DEBUGGING_INFO): Remove.
11486         (PREFERRED_DEBUGGING_TYPE): Ditto.
11487         (SUBTARGET_ASM_DEBUGGING_SPEC): Ditto.
11488         * config/mips/elf64.h: Ditto.
11489
11490 2004-01-06  Jan Hubicka  <jh@suse.cz>
11491
11492         * Makefile.in (STAGEPROFILE_FLAGS_TO_PASS): Use -fprofile-generate.
11493         (STAGEFEEDBACK_FLAGS_TO_PASS): Use -fprofile-use.
11494
11495 2004-01-06  Geoffrey Keating  <geoffk@apple.com>
11496
11497         * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Compile darwin-ldouble.c.
11498         (TARGET_LIBGCC2_CFLAGS): Use -mlong-double-128.
11499         * config/rs6000/darwin-ldouble.c: New.
11500
11501         * emit-rtl.c (gen_lowpart_common): Use simplify_gen_subreg
11502         for constants.
11503         (constant_subword): Delete.
11504         * rtl.h (constant_subword): Delete prototype.
11505         (immed_double_const): Is not in varasm.c.
11506         * simplify-rtx.c (simplify_immed_subreg): New.
11507         (simplify_subreg): Use simplify_immed_subreg.
11508
11509         * config/rs6000/rs6000.md (floatsitf2): Use expand_float rather
11510         than trying to generate RTL directly.
11511         (fix_trunctfsi2): Use expand_fix rather than trying to generate
11512         RTL directly.
11513
11514         * dwarf2out.c (add_const_value_attribute): Remove incorrect comment.
11515
11516 2004-01-06  David Edelsohn  <edelsohn@gnu.org>
11517
11518         * config/rs6000/xcoff.h (EXTRA_SECTION_FUNCTIONS): Split each
11519         function into a separate macro.
11520         (read_only_data_section): Add void argument.
11521         (private_data_section): Same.
11522         (read_only_private_data_section): Same.
11523         (toc_section): Same.
11524
11525 2004-01-06  Jan Hubicka  <jh@suse.cz>
11526
11527         * invoke.texi:  Remove typo in last change.
11528
11529         PR target/10301
11530         * config.gcc: Accept opteron and athlon-64 as variants
11531         of k8.
11532         * i386.c (override_options): Likewise.
11533         * invoke.texi (i386 -mtune): Expand documentation.
11534
11535 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
11536
11537         * alias.c: Fix comment typos.
11538         * builtins.c: Likewise.
11539         * cfg.c: Likewise.
11540         * df.c: Likewise.
11541         * dominance.c: Likewise.
11542         * dwarf2out.c: Likewise.
11543         * emit-rtl.c: Likewise.
11544         * expr.c: Likewise.
11545         * final.c: Likewise.
11546         * fold-const.c: Likewise.
11547         * gcse.c: Likewise.
11548         * genattrtab.c: Likewise.
11549         * genrecog.c: Likewise.
11550         * gensupport.c: Likewise.
11551         * ggc-zone.c: Likewise.
11552         * integrate.c: Likewise.
11553         * local-alloc.c: Likewise.
11554         * loop.c: Likewise.
11555         * recog.c: Likewise.
11556         * regmove.c: Likewise.
11557         * reg-stack.c: Likewise.
11558         * reorg.c: Likewise.
11559         * rtlanal.c: Likewise.
11560         * rtl.h: Likewise.
11561         * sched-ebb.c: Likewise.
11562         * simplify-rtx.c: Likewise.
11563         * toplev.c: Likewise.
11564         * varasm.c: Likewise.
11565
11566 2004-01-06  Kazu Hirata  <kazu@cs.umass.edu>
11567
11568         * doc/install.texi: Fix typos.
11569         * doc/invoke.texi: Likewise.
11570         * doc/md.texi: Likewise.
11571
11572 2004-01-06  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
11573
11574         * config/m32r/m32r.h (TRAMPOLINE_LINE_SIZE): Changed
11575
11576 2004-01-06  Jan Hubicka  <jh@suse.cz>
11577
11578         * i386.c (init_cumulative_args):  Add handling of MMX_REGPARM.
11579         (function_arg_advance):  Do not pass aggregates in SSE; deal handling
11580         of MMX_REGPARM.
11581         (function_arg): Add new warnings about ABI changes;  fix SSE_REGPARM;
11582         add MMX_REGPARM.
11583         * i386.h (ix86_args): Add mmx_words/mmx_regs/mmx_regno fields.
11584         (SSE_REGPARM_MAX): Default to 3 on i386 -msse ABI.
11585         (MMX_REGPARM_MAX): Similarly for -mmmx.
11586
11587 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
11588
11589         * config/sh/linux.h: Fix comment formatting.
11590         * config/sh/netbsd-elf.h: Likewise.
11591         * config/sh/sh.c: Likewise.
11592         * config/sh/sh.h: Likewise.
11593         * config/sh/vxworks.h: Likewise.
11594
11595 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
11596
11597         * system.h (ASM_OUTPUT_MAIN_SOURCE_FILENAME): Poison.
11598         * toplev.c (output_file_directive): Don't use
11599         ASM_OUTPUT_MAIN_SOURCE_FILENAME.
11600
11601 2004-01-05  Steven Bosscher <s.bosscher@student.tudelft.nl>
11602
11603         * toplev.c: Fix broken checkin of 2003-12-30.
11604
11605 2004-01-05  Daniel Berlin  <dberlin@dberlin.org>
11606
11607         * ggc-zone.c: Remove everything in #ifdef USING_MALLOC_PAGE_GROUPS
11608         (USING_MMAP): We don't support non-mmap.
11609         (struct alloc_chunk): Steal 1 bit from typecode, use it to mark
11610         large objects.
11611         (struct page_entry): Remove bytes_free.
11612         (struct page_table_chain): Remove.
11613         (struct globals): Remove page_table member.
11614         (loookup_page_table_entry): Function deleted.
11615         (set_page_table_entry): Ditto.
11616         (ggc_allocated_p): No longer need page table lookups.
11617         (ggc_marked_p): Ditto.
11618         (alloc_small_page): Don't care about bytes_free anymore.
11619         (alloc_large_page): Round up size.
11620         (ggc_alloc_zone_1): Mark large objects as such, and calculate
11621         their size the new way.
11622         Remove page table lookups and setting.
11623         (ggc_get_size): Calculate large object size the new way.
11624         (sweep_pages): Redo to account for fact that we no longer have
11625         bytes_free.
11626         (ggc_collect): No longer need to reincrement bytes_free.
11627         (ggc_pch_alloc_object): Handle new large objects properly.
11628         (ggc_pch_read): Put PCH stuff into it's own uncollected zone.
11629
11630 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
11631
11632         * doc/invoke.texi: Remove a page break.
11633
11634 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
11635
11636         * config/avr/avr.c (avr_output_function_prologue): Remove an
11637         extra pair of curly braces.
11638
11639 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
11640
11641         * config/mn10300/mn10300.c: Fix comment formatting.
11642         * config/mn10300/mn10300.h: Likewise.
11643
11644 2004-01-05  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
11645
11646         * tree.h: Update documentation on nothrow_flag.
11647         * print-tree.c (print_node): Print TREE_NOTHROW as "align-ok" for
11648         types.
11649
11650 2004-01-05  Kazu Hirata  <kazu@cs.umass.edu>
11651
11652         * doc/invoke.texi: Remove traces of dead ports.
11653
11654 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
11655
11656         * doc/invoke.texi: Add documentation for the MIPS -mexplicit-relocs
11657         option.
11658
11659 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
11660
11661         PR target/12945
11662         * coverage.c (coverage_counter_alloc): Set SYMBOL_FLAG_LOCAL for
11663         counter labels.
11664         * config/mips/mips.c (INTERNAL_SYMBOL_P): Delete.
11665         (mips_classify_symbol): Always treat SYMBOL_REF_FLAG as indicating
11666         string constants if TARGET_MIPS16.  Use SYMBOL_REF_DECL to check
11667         the binding of decl symbols, otherwise check SYMBOL_REF_LOCAL_P.
11668         (mips_symbol_insns): Don't trust the local/global classification.
11669         (m16_usym8_4, m16_usym5_4): Same mips16 change as mips_classify_symbol.
11670         (override_options): Make -mabicalls -fno-unit-at-a-time imply
11671         -mno-explicit-relocs.
11672         (mips_encode_section_info): Don't use SYMBOL_REF_FLAG to distinguish
11673         between local and global symbols.
11674
11675 2004-01-05  Richard Sandiford  <rsandifo@redhat.com>
11676
11677         * config/mips/mips-protos.h (mips_dangerous_for_la25_p): Declare.
11678         (mips_preferred_reload_class): Declare.
11679         * config/mips/mips.h (DANGEROUS_FOR_LA25_P): Replace with function.
11680         (EXTRA_CONSTRAINT): Update accordingly.
11681         (PREFERRED_RELOAD_CLASS): Use mips_preferred_reload_class.
11682         * config/mips/mips.c (mips_dangerous_for_la25_p): New function.
11683         (mips_preferred_reload_class): New function.  Prefer LEA_REGS if
11684         mips_dangerous_for_la25_p.
11685         (mips_secondary_reload_class): Use LEA_REGS rather than GR_REGS
11686         if mips_dangerous_for_la25_p.
11687
11688 2004-01-05  Bernardo Innocenti  <bernie@develer.com>
11689
11690         * config/m68k/m68k.c (output_andsi3): Fix signed/unsigned comparison
11691         warning.
11692
11693 2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
11694
11695         * configure.ac: Use AC_PROG_CPP_WERROR.
11696         * configure: Regenerate.
11697
11698 2004-01-04  Zack Weinberg  <zack@codesourcery.com>
11699
11700         * .cvsignore: Add autom4te.cache.
11701
11702 2004-01-04  Richard Sandiford  <rsandifo@redhat.com>
11703
11704         * doc/invoke.texi: Revamp documentation of MIPS options.  Remove
11705         -mabi=meabi, -mabi-fake-default, -mmips-as, -mgas, -mmips-tfile,
11706         -m4650, -mfix7000 and -(m)no-crt0.  Put endianness options first,
11707         then architecture options, then ABI options.  General rewording.
11708
11709 2004-01-04  Joseph S. Myers  <jsm@polyomino.org.uk>
11710
11711         PR c/3414
11712         * doc/extend.texi: Clarify definition of malloc attribute.
11713
11714 2004-01-04  Jan Hubicka  <jh@suse.cz>
11715
11716         * Makefile.in (cgraph.o, cgraphunit.o): Add intl.h dependency.
11717         * cgraph.c (create_edge, dump_cgraph): Update to use inline_failed
11718         * cgraph.h (cgraph_edge): Replace inline_call by inline_failed
11719         (cgraph_inline_p): Add extra argument reason.
11720         * cgraphunit.c: Minor formating fixes.
11721         cgraph_first_inlined_callee): New functions.
11722         (record_call_1): Record builtins too.
11723         (cgraph_analyze_function): Update inline_failed messages.
11724         (cgraph_mark_functions_to_output, cgraph_expand_function, cgraph_inlined_into,
11725         cgraph_inlined_callees, cgraph_estimate_growth): Update to use inline_failed.
11726         (cgraph_check_inline_limits): Likewise; Add argument reason.
11727         (cgraph_set_inline_failed): New static function.
11728         (cgraph_decide_inlining_of_small_function, cgraph_decide_inlining): Set
11729         reasons.
11730         (cgraph_inline_p): Add new argument reason.
11731         * tree-inline.c (expand_call_inline):  Update warning.
11732
11733 2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
11734
11735         * configure.ac: Replace AC_INIT, AC_OUTPUT, AC_CANONICAL_SYSTEM
11736         with modern equivalents.
11737         * configure: Regenerate.
11738
11739         * configure.ac: Replace gcc_AC_CHECK_TYPE with AC_CHECK_TYPE.
11740         * aclocal.m4 (gcc_AC_CHECK_TYPE): Remove.
11741         * configure: Regenerate.
11742
11743         * doc/install.texi: Note that 'gcc' is now a 2.57 directory.
11744
11745         * configure.in: Rename to configure.ac.
11746         * configure.ac: Renamed from configure.in; make minimum necessary
11747         changes for autoconf 2.5x.
11748         * aclocal.m4: Make minimum necessary changes for autoconf 2.5x.
11749         * configure: Regenerate with autoconf 2.57.
11750
11751 2004-01-03  Kazu Hirata  <kazu@cs.umass.edu>
11752
11753         * config/mips/linux.h: Fix comment formatting.
11754         * config/mips/mips.c: Likewise.
11755         * config/mips/mips.h: Likewise.
11756         * config/mips/mips.md: Likewise.
11757         * config/mips/netbsd.h: Likewise.
11758         * config/mips/windiss.h: Likewise.
11759
11760 2004-01-02  Richard Henderson  <rth@redhat.com>
11761
11762         * config/i386/i386.md (fp constant pool splitter): Reorg suppression
11763         for sse and 387; add suppression for mmx.
11764
11765 2004-01-02  Andrew Pinski  <pinskia@physics.uc.edu>
11766
11767         * loop.c (loop_optimize): Free all loops_info's mems.
11768
11769         * c-typeck.c (finish_init): Free spelling_base before
11770         setting it again.
11771
11772         * cfgloop.c (flow_loops_find): Always free the sbitmap
11773         headers.
11774
11775         * predict.c (estimate_probability): Free bbs after being
11776         done with it.
11777
11778 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
11779
11780         * config/mn10300/mn10300.h (PREDICATE_CODES): Add
11781         const_8bit_operand and call_address_operand.
11782
11783 2004-01-02  Jan Hubicka  <jh@suse.cz>
11784
11785         * cgraphunit.c (cgraph_optimize_function):  Call optimize_inline_calls
11786         when there is nothing to inline but warnings are requested.
11787         (cgraph_decide_inlining):  Fix memory leak.
11788
11789 2004-01-02  Jan Hubicka  <jh@suse.cz>
11790
11791         * expr.c (store_constructor):  Fix pasto in previous patch.
11792
11793 2004-01-02  Kazu Hirata  <kazu@cs.umass.edu>
11794
11795         * config/i386/cygming.h: Fix comment formatting.
11796         * config/i386/djgpp.h: Likewise.
11797         * config/i386/gthr-win32.c: Likewise.
11798         * config/i386/i386-interix.h: Likewise.
11799         * config/i386/i386.c: Likewise.
11800         * config/i386/i386.h: Likewise.
11801         * config/i386/openbsd.h: Likewise.
11802         * config/i386/winnt.c: Likewise.
11803         * config/i386/xm-mingw32.h: Likewise.
11804
11805 2004-01-02  Joseph S. Myers  <jsm@polyomino.org.uk>
11806
11807         * doc/gcc.texi, doc/invoke.texi, doc/install.texi: Update
11808         copyright and last modification dates.
11809
11810 2004-01-02  Andreas Jaeger  <aj@suse.de>, Gerald Pfeifer  <gp@suse.de>
11811
11812         * doc/install.texi (Specific): Mention x86_64.
11813
11814 2004-01-01  Hans-Peter Nilsson  <hp@bitrange.com>
11815
11816         * builtins.c (expand_builtin_apply_args_1) [STACK_GROWS_DOWNWARD]:
11817         Call force_operand on plus_constant result.
11818
11819 2004-01-01  Jan Hubicka  <jh@suse.cz>
11820
11821         * expmed.c (store_bit_field, extract_bit_field): Use new named patterns
11822         * expr.c (store_constructor): Use vec_init pattern.
11823         * genopinit.c (optabs): Initailize vec_set/vec_extract/vec_init.
11824         * optabs.h (optab_index): ADD OTI_vec_set/OTI_vec_extract/OTI_vec_init
11825         (vec_set_optab, vec_extract_optab, vec_init_optab): New.
11826         * i386.md (vec_setv2df, vec_extractv2df, vec_setv4sf, vec_extractv4sf):
11827         New patterns.
11828         (sse2_unpc?pd): Fix pattern.
11829         (sse2_movlpd): Kill.
11830         (sse2_movsd): Deal with movlpd too.
11831         * i386.c (ix86_expand_builtin): Use sse2_movsd instead of sse2_movlpd.
11832         (ix86_expand_vector_init): New.
11833         * emmintrin.h (__mm_set_pd, __mm_set_ps): Use vector extensions.
11834         * md.texi (vec_set, vec_extract): Document
11835
11836 2003-12-31  Jan Hubicka  <jh@suse.cz>
11837
11838         PR opt/13473
11839         * recog.c (validate_replace_rtx_1):  Take care for RTL sharing inside
11840         ASM input operands
11841
11842         PR opt/12617
11843         * toplev.c (dump_file_index): Reorder ce3 and bbro.
11844         (dump_file): Likewise.
11845         (rest_of_compilation): Likewise.
11846
11847         PR debug/13367
11848         * cgraph.c (cgraph_function_possibly_inlined):  Even with
11849         flag_really_no_inline we inline always_inline functions.
11850         * cgraphunit.c (cgraph_analyze_function): Clear inlinable flag
11851         for non-always_inline functions when there is flag_really_no_inline.
11852         (cgraph_decide_inlining): Limit work done when not inlining.
11853         (cgraph_decide_inlining_incrementally): Likewise.
11854         (cgraph_optimize_function): Check whether something got inlined.
11855         * c-objc-common.c (c_disregard_inline_limits): Do not always inline
11856         extern inline functions when not inlining.
11857
11858         * opts.c (decode_options):  Disable crossjumping at -O1
11859         * invoke.texi (-O1): Document change.
11860
11861 See ChangeLog.10 for earlier changes.