OSDN Git Service

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