OSDN Git Service

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