OSDN Git Service

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