1 2004-04-09 Zack Weinberg <zack@codesourcery.com>
4 * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Look only at
6 * config/ia64/ia64.c (ia64_hpux_file_end): Check
7 TREE_SYMBOL_REFERENCED on DECL_ASSEMBLER_NAME, not DECL_NAME.
9 2004-04-09 Roger Sayle <roger@eyesopen.com>
11 * simplify-rtx.c (mode_signbit_p): New function to check whether
12 an RTX is an immediate constant that represents the most significant
13 bit of a given machine mode.
14 (simplify_unary_operation) <NOT>: Optimize ~(X+C) as X ^ ~C, where
16 (simplify_binary_operation) <PLUS>: Optimize (X^C1) + C2 as X^(C1^C2)
17 when C2 is the sign bit.
18 (simplify_binary_operation) <XOR>: Canonicalize X^C as X+C when C
19 is the sign bit. Optimize (X+C1) ^ C2 as X^(C1^C2) when C1 is the
22 2004-04-09 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
24 * builtins.c (mathfn_built_in): Check TYPE_MAIN_VARIANT, not
27 2004-04-09 Andrew Pinski <pinskia@physics.uc.edu>
29 * c-common.c (handle_noreturn_attribute): Use TYPE_READONLY instead
30 of TREE_READONLY for types.
32 2004-04-09 Caroline Tice <ctice@apple.com>
34 * basic-block.h (struct edge_def): Add new field, crossing_edge.
35 (struct basic_block_def): Add new field, partition.
36 (UNPARTITIONED, HOT_PARTITION, COLD_PARTITION): New constant macro
38 (partition_hot_cold_basic_blocks): Add extern function
40 * bb-reorder.c (function.h, obstack.h, expr.h, regs.h): Add four new
42 (N_ROUNDS): Increase the maximum number of rounds by 1.
43 (branch_threshold): Add array value for new round.
44 (exec_threshold): Add array value for new round.
45 (push_to_next_round_p): New function.
46 (add_unlikely_executed_notes): New function.
47 (find_rarely_executed_basic_blocks_and_crossing_edges): New function.
48 (mark_bb_for_unlikely_executed_section): New function.
49 (add_labels_and_missing_jumps): New function.
50 (add_reg_crossing_jump_notes): New function.
51 (fix_up_fall_thru_edges): New function.
52 (find_jump_block): New function.
53 (fix_crossing_conditional_branches): New function.
54 (fix_crossing_unconditional_branches): New function.
55 (fix_edges_for_rarely_executed_code): New function.
56 (partition_hot_cold_basic_blocks): New function.
57 (find_traces): Add an extra round for partitioning hot/cold
59 (find_traces_1_round): Add a parameter. Modify to push all cold blocks,
60 and only cold blocks, into the last (extra) round of collecting traces.
61 (better_edge_p): Add a parameter. Modify to favor non-crossing edges
63 (bb_to_key): Add code to correctly identify cold blocks when
65 (connect_traces): Modify to connect all the non-cold traces first, then
66 go back and connect up all the cold traces.
67 (reorder_basic_blocks): Add call to add_unlikely_executed_notes.
68 * cfg.c (entry_exit_blocks): Add initialization for partition field in
69 entry and exit blocks.
70 * cfgbuild.c (make_edges): Update current_function_has_computed_jump
71 if we are doing hot/cold partitioning.
72 * cfgcleanup.c (cfglayout.h): Add new include statement.
73 (try_simplify_condjump): Modify to not attempt on blocks with jumps
74 that cross section boundaries.
75 (try_forward_edges): Likewise.
76 (merge_blocks_move_predecessor_nojumps): Likewise.
77 (merge_blocks_move_successor_nojumps): Likewise.
78 (merge_blocks_move): Likewise.
79 (try_crossjump_to_edge): Modify to not attempt after we have done
80 the block partitioning.
81 (try_crossjump_bb): Modify to not attempt on blocks with jumps that
82 cross section boundaries.
83 (try_optimize_cfg): Likewise.
84 * cfghooks.c (tidy_fallthru_edges): Modify to not remove indirect
85 jumps that cross section boundaries.
86 * cfglayout.c (flags.h): Add new include statement.
87 (update_unlikely_executed_notes): New function.
88 (fixup_reorder_chain): Add code so when a new jumping basic block is
89 added, it's UNLIKELY_EXECUTED_CODE and REG_CROSSING_JUMP notes are
90 updated appropriately.
91 (duplicate_insn_chain): Add code to duplicate the new NOTE insn
92 introduced by this optimization.
93 * cfglayout.h (scan_ahead_for_unlikely_executed_note): Add new
94 extern function declaration.
95 * cfgrtl.c (can_delete_note_p): Add NOTE_INSN_UNLIKELY_EXECUTED_CODE to
96 list of notes that can be deleted.
97 (create_basic_block_structure): Add initialization for partition field.
98 (rtl_can_merge_blocks): Modify to test blocks for jumps that cross
100 (try_redirect_by_replacing_jump): Modify to not attempt on jumps that
101 cross section boundaries.
102 (commit_one_edge_insertion): Add code so newly created basic block
103 ends up in correct (hot or cold) section. Modify to disallow
104 insertions before NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
105 (rtl_verify_flow_info_1): Add code to verify that no fall_thru edge
106 crosses section boundaries.
107 (cfg_layout_can_merge_blocks_p): Modify to test blocks for jumps that
108 cross section boundaries.
109 (force_nonfallthru_and_redirect): Modify to make sure new basic block
110 ends up in correct section, with correct notes attached.
111 * common.opt (freorder-blocks-and-partition): Add new flag for this
113 * dbxout.c (dbx_function_end): Add code to make sure scope labels at
114 the end of functions are written into the correct (hot or cold)
116 (dbx_source_file): Add code so writing debug file information
117 doesn't incorrectly change sections.
118 * defaults.h (NORMAL_TEXT_SECTION_NAME): New constant macro, for use
119 in partitioning hot/cold basic blocks into separate sections.
120 (SECTION_FORMAT_STRING): New constant macro, for linux/i386 hot/cold
121 section partitioning.
122 (HAS_LONG_COND_BRANCH): New constant macro, indicating whether or not
123 conditional branches can span all of memory.
124 (HAS_LONG_UNCOND_BRANCH): New constant macro, indicationg whether or not
125 unconditional branches can span all of memory.
126 * final.c (scan_ahead_for_unlikely_executed_note): New function.
127 (final_scan_insn): Add code to check for NOTE instruction indicating
128 whether basic block belongs in hot or cold section, and to make sure
129 the current basic block is being written to the appropriate section.
130 Also added code to ensure that jump table basic blocks end up in the
132 * flags.h (flag_reorder_blocks_and_partition): New flag.
133 * ifcvt.c (find_if_case_1): Modify to not attempt if conversion if
134 one of the branches has a jump that crosses between sections.
135 (find_if_case_2): Likewise.
136 (ifcvt): Modify to not attempt to mark loop exit edges after
137 hot/cold partitioning has occurred.
138 * opts.c (decode_options): Code to handle new flag,
139 flag_reorder_blocks_and_partition; also to turn it off if
140 flag_exceptions is on.
141 (common_handle_option): Code to handle new flag,
142 flag_reorder_blocks_and_partition.
143 * output.h (unlikely_text_section): New extern function declaration.
144 (in_unlikely_text_section): New extern function declaration.
145 * passes.c (rest_of_handle_stack_regs): Add
146 flag_reorder_blocks_and_partition as an 'or' condition for calling
147 reorder_basic_blocks.
148 (rest_of_handle_reorder_blocks): Add flag_reorder_blocks_and_partition
149 as an 'or' condition for calling reorder_basic_blocks.
150 (rest_of_compilation): Add call to partition_hot_cold_basic_blocks.
151 * print-rtl.c (print_rtx): Add code for handling new note,
152 NOTE_INSN_UNLIKELY_EXECUTED_CODE
153 * rtl.c (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note insn (see below).
154 (REG_CROSSING_JUMP): New kind of reg_note, to mark jumps that
155 cross between section boundaries.
156 * rtl.h (NOTE_INSN_UNLIKELY_EXECUTED_CODE): New note instruction,
157 indicating the basic block containing it belongs in the cold section.
158 (REG_CROSSING_JUMP): New type of reg_note, to mark jumps that cross
159 between hot and cold sections.
160 * toplev.c (flag_reorder_blocks_and_partition): Add code to
161 initialize this flag, and to tie it to the command-line option
162 freorder-blocks-and-partition.
163 * varasm.c (cfglayout.h): Add new include statement.
164 (unlikely_section_label_printed): New global variable, used for
165 determining when to output section name labels for cold sections.
166 (in_section): Add in_unlikely_executed_text to enum data structure.
167 (text_section): Modify code to use SECTION_FORMAT_STRING and
168 NORMAL_TEXT_SECTION_NAME macros.
169 (unlikely_text_section): New function.
170 (in_unlikely_text_section): New function.
171 (function_section): Add code to make sure beginning of function is
172 written into correct section (hot or cold).
173 (assemble_start_function): Add code to make sure stuff is written to
175 (assemble_zeros): Add in_unlikely_text_section as an 'or' condition
176 to an if statement that was checking 'in_text_section'.
177 (assemble_variable): Add 'in_unlikely_text_section' as an 'or'
178 condition to an if statement that was checking 'in_text_section'.
179 (default_section_type_flags_1): Add check: if in cold section
180 flags = SECTION_CODE.
181 * config/darwin.c (darwin_asm_named_section): Modify to use
182 SECTION_FORMAT_STRING if we are partitioning hot/cold blocks.
183 * config/i386/i386.h (HAS_LONG_COND_BRANCH): Defined this macro
184 specifically for the i386.
185 (HAS_LONG_UNCOND_BRANCH): Defined this macro specifically for the i386.
186 * config/rs6000/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Change
187 text string to something more informative.
188 (NORMAL_TEXT_SECTION_NAME): Add new definition.
189 (SECTION_FORMAT_STRING): Add new definition.
190 * config/rs6000/rs6000.c (rs6000_assemble_integer): Add
191 '!in_unlikely_text_section' as an 'and' condition to an if statement
192 that was already checking '!in_text_section'.
193 * config/rs6000/sysv4.h (HOT_TEXT_SECTION_NAME,NORMAL_TEXT_SECTION_NAME,
194 UNLIKELY_EXECUTED_TEXT_SECTION_NAME,SECTION_FORMAT_STRING): Make
195 sure these are properly defined for linux on ppc.
196 * doc/invoke.texi (freorder-blocks-and-partition): Add documentation
198 * doc/rtl.texi (REG_CROSSING_JUMP): Add documentation for new
200 * doc/tm.texi (NORMAL_TEXT_SECTION_NAME, SECTION_FORMAT_STRING,
201 HAS_LONG_COND_BRANCH, HAS_LONG_UNCOND_BRANCH): Add documentation for
204 2004-04-08 Roger Sayle <roger@eyesopen.com>
206 * function.c (gen_mem_addressof): When changing the RTX from a REG
207 to a MEM, clear MEM_VOLATILE_P which was formerly REG_USERVAR_P.
209 2004-04-08 Roger Sayle <roger@eyesopen.com>
212 * config/i386/i386.md (truncdfsf2_noop, truncxfsf2_noop,
213 truncxfdf2_noop): Provide dummy "fmov" implementations.
215 2004-04-08 Ian Lance Taylor <ian@wasabisystems.com>
217 * gcc.c (default_compilers): Add missing initializers.
219 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
220 Return 1 if file was successfully mapped.
222 2004-04-08 Geoffrey Keating <geoffk@apple.com>
227 * doc/invoke.texi (Precompiled Headers): Suggest -o
228 to put an output file in a particular place. Be more detailed
229 about which options affect PCH validity and which options
231 * c-pch.c (pch_matching): New.
233 (struct c_pch_validity): New field 'match'.
234 (pch_init): Handle pch_matching.
235 (c_common_valid_pch): Check pch_matching.
237 * explow.c: Fix typo defining default of PROMOTE_FUNCTION_MODE.
239 2004-04-08 Mark Mitchell <mark@codesourcery.com>
241 * doc/invoke.texi (Precompiled Headers): Warn about known
244 2004-04-08 Danny Smith <dannysmith@users.sourceforge.net>
247 * defaults.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): New macro. Default
248 to 1 if ASM_OUTPUT_DEF is defined.
249 * doc/tm.texi (TARGET_USE_LOCAL_THUNK_ALIAS_P): Document.
250 * config/i386/cygming.h (TARGET_USE_LOCAL_THUNK_ALIAS_P): Define.
251 Set to non-zero iff not a one_only decl.
253 2004-04-08 Paul Brook <paul@codesourcery.com>
255 * arm.h (CLASS_LIKELY_SPILLED_P): Define.
257 2004-04-08 Paul Brook <paul@codesourcery.com>
259 * explow.c (promote_mode): Use PROMOTE_FUNCTION_MODE instead of
260 PROMOTE_FOR_CALL_ONLY.
261 * config/arm/arm-protos.h (arm_function_value): Declare.
262 * config/arm/arm.h (TARGET_PROMOTE_FUNCTION_ARGS): Define.
263 (TARGET_PROMOTE_PROTOTYPES): Return false.
264 (arm_function_value): New function.
265 * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Define.
266 (FUNCTION_VALUE): Call arm_function_value.
267 * config/cris/cris.h (PROMOTE_MODE): Rename ...
268 (PROMOTE_FUNCTION_MODE): ... to this.
269 (PROMOTE_FOR_CALL_ONLY): Remove.
270 * config/mmix/mmix.h: Likewise.
271 * config/s390/s390.h: Likewise.
272 * config/sparc/sparc.h: Likewise.
273 * config/sparc/sparc.c: Update comments about PROMOTE_MODE.
274 * doc/tm.texi (PROMOTE_FUNCTION_MODE): Document.
275 (TARGET_PROMOTE_FUNCTION_MODE, TARGET_PROMOTE_FUNCTION_RETURN): Update.
276 (PROMOTE_FOR_CALL_ONLY): Remove.
278 2004-04-08 Joel Sherrill <joel@oarcorp.com>
281 * ada/5rosinte.adb: Remove fake mprotect() body.
282 * ada/5rosinte.ads: Add SA_SIGINFO.
283 * ada/5rtpopsp.adb: Rewrite to use new interface.
284 * ada/init.c: Reorder so the simple single OS conditional __rtems__
285 is tested before more complex ones which mix UNIX and embedded
286 systems in the conditional.
288 2004-04-08 Joel Sherrill <joel@oarcorp.com>
291 * ada/osint.adb (Find_Program_Name): Rework to properly handle
292 filenames which end in .exe or have versioning suffixes like VMS.
294 2004-04-08 Andrew Pinski <pinskia@physics.uc.edu>
297 * config/darwin.c (darwin_encode_section_info): When the decl has
298 a DECL_INITIAL, it is only defined also when it is not a common.
300 2004-04-08 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
302 * builtins.c (fold_builtin_isascii, fold_builtin_toascii): New.
303 (fold_builtin): Handle BUILT_IN_ISASCII and BUILT_IN_TOASCII.
305 2004-04-07 H.J. Lu <hongjiu.lu@intel.com>
307 * config/ia64/ia64.c (ia64_encode_section_info): Don't prod
308 global register variables.
310 2004-04-07 Joseph S. Myers <jsm@polyomino.org.uk>
312 * fixinc/inclhack.def (rpc_xdr_lvalue_cast_a,
313 rpc_xdr_lvalue_cast_b): New fixes.
314 * fixinc/fixincl.x: Regenerate.
315 * fixinc/tests/base/rpc/xdr.h: Add new tests.
317 2004-04-07 David Edelsohn <edelsohn@gnu.org>
319 * config/rs6000/rs6000.c (processor_target_table): Add MASK_MFCRF
320 to power4 and power5 entries.
322 2004-04-06 Geoffrey Keating <geoffk@apple.com>
324 * c-common.h (pending_lang_change): Mark for PCH.
326 2004-04-07 Caroline Tice <ctice@apple.com>
328 * gcc.c (main): Move 'break' in main loops (on an error)
329 to wait until error processing has occurred.
331 2004-04-06 Nathanael Nerode <neroden@gcc.gnu.org>
333 * config.gcc: Stop changing enable_threads midstream.
334 Replace uses of enable_threads_flag with enable_threads.
335 * configure.ac: Replace uses of enable_threads_flag with
336 enable_threads. Improve autoconf quotation in one place.
337 * configure: Regenerate.
339 2004-04-06 Uros Bizjak <uros@kss-loka.si>
341 * builtins.c: Implement support for sincos function.
342 (expand_builtin_mathfn): Remove BUILT_IN_SIN{,F,L} and
344 (expand_builtin_mathfn_3): New function.
345 (expand_builtin): Expand BUILT_IN_SIN{,F,L} and
346 BUILT_IN_COS{,F,L} using expand_builtin_mathfn_3 if
347 flag_unsafe_math_optimization is set.
349 * optabs.h (enum optab_index): Add new OTI_sincos.
350 (sincos_optab): Define corresponding macro.
352 * optabs.c (init_optabs): Initialize sincos_optab.
353 (expand_twoval_unop): New function.
355 * genopinit.c (optabs): Implement sincos_optab using sincos?f3
358 * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_SINCOS_COS
359 and UNSPEC_SINCOS_SIN.
361 * config/i386/i386.md (sincosdf3, sincossf3, *sincosextendsfdf3,
362 sincosxf3): New patterns to implement sincos, sincosf and sincosl
363 built-ins as inline x87 intrinsics. Define splits for
364 sindf2, sinsf2, *sinextendsfdf2, sinxf2, cosdf2,
365 cossf2, *cosextendsfdf2 and cosxf2 patterns from corresponding
367 (sindf2, sinsf2, sinxf2): Rename to *sindf2, *sinsf2, *sinxf2.
368 (cosdf2, cossf2, cosxf2): Rename to *cosdf2, *cossf2, *cosxf2.
370 (UNSPEC_SINCOS_SIN, UNPEC_SINCOS_COS): New unspecs to represent
373 2004-04-06 Devang Patel <dpatel@apple.com>
376 * config/darwin.h (LINK_COMMAND_SPEC): Use c++filt instead of c++filt3.
378 2004-04-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
380 * doc/install.texi: Update HP-UX 11 installation procedure.
382 2004-04-06 Paul Brook <paul@codesourcery.com>
384 * doc/sourcebuild.texi: Remove obsolete contraint on testcases.
386 2004-04-05 Kaz Kojima <kkojima@gcc.gnu.org>
388 * config/sh/sh.c (prepare_move_operands): Use emit_call_insn
389 when the TLS address is generated by a function call.
390 * config/sh/sh.md (tls_global_dynamic): Use a call expression.
391 (tls_local_dynamic): Likewise.
393 2004-04-05 Andrew Pinski <pinskia@physics.uc.edu>
395 * tree.c (reconstruct_complex_type): Use TYPE_READONLY
398 2004-04-05 Caroline Tice <ctice@apple.com>
400 * gcc.c (combine_flag): New global variable, for new driver option.
401 (struct compiler): Add two new fields, to be used when
402 combining multiple input files in a single pass (IMA).
403 (default_compilers): Add values for the new fields to all
404 compiler entries. Modify the "@c" compiler entry for doing IMA
405 properly with "-save-temps" and the "combine" flag.
406 (option_map): Add new driver option, "--combine", to tell driver
407 to pass multiple input files to compiler at one time.
408 (have_o_argbuf_index): New global variable.
409 (store_arg): Modify to assign value to have_o_argbuf_index.
410 (struct infile): Add three new fields, to help with IMA.
411 (display_help): Add help for new "combine" option.
412 (process_command): Remove local variable have_o; add code to check
413 for new "combine" option; remove assignment to combine_inputs.
414 (do_spec_1): Modify to deal with IMA better.
415 (main): Make variable 'lang_n_infiles' local to entire function
416 rather than to a single block. Use flag combine_flag to
417 determine whether to do IMA or not; Modify loop initializing
418 infiles to deal properly with linker files.
419 Add code for doing preprocessing in presence of
420 IMA with "-save-temps" flag. Modify "main" loop to handle
421 multiple input files, in multiple languages, with or without
422 preprocessing, gracefully.
423 * toplev.c (set_src_pwd): Modify to not complain if attempting to
424 re-set it to same directory it's previously been set to (avoid
425 irritating, meaningless warning messages when doing IMA with
427 * doc/invoke.texi: Add "-combine" to list of Overall Options;
428 remove documentation about IMA that is no longer accurate; Add
429 documentation explaining what "-combine" does.
430 * ada/lang-specs.h: Add initialization values for new fields in
432 * cp/lang-specs.h: Likewise.
433 * f/lang-specs.h: Likewise.
434 * java/lang-specs.h: Likewise.
435 * objc/lang-specs.h: Likewise.
436 * treelang/lang-specs.h: Likewise.
438 2004-04-05 David Edelsohn
440 * config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
443 2004-04-05 Jakub Jelinek <jakub@redhat.com>
444 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
446 PR optimization/13424 (hppa), bootstrap/14462, c/14828
447 * pa.md: Use replace_equiv_address to retain the attributes of the
448 memory operands used in the split and peephole2 patterns for optimizing
449 the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
451 2004-04-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
453 * c-decl.c (build_compound_literal): Use TYPE_READONLY.
454 * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
455 * objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
456 * c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
458 * calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
460 * print-tree.c (print_node): Properly handle side-effects, readonly,
462 * tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
463 and TREE_CONSTANT if not a type.
464 * tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
465 (IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
466 (NON_TYPE_CHECK): New macro.
467 (TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
469 2004-04-05 Eric Botcazou <ebotcazou@libertysurf.fr>
471 * config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
472 to DWARF2_DEBUG unconditionally.
473 (ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
475 2004-04-04 Ian Lance Taylor <ian@wasabisystems.com>
476 Nathanael Nerode <neroden@gcc.gnu.org>
479 * config.host: Set the shell variable host_can_use_collect2.
480 Set it to yes by default, and to no for alpha*-dec-*vms*,
481 i[34567]86-*-mingw32*, and powerpc-*-beos*.
482 * configure.ac: Set and substitute the shell variable collect2.
483 Give an error if use_collect2 is yes and host_can_use_collect2 is
485 * Makefile.in (COLLECT2): Rename from USE_COLLECT2. Change all
486 uses. Initialize to @collect2@.
487 (STAGESTUFF): Remove $(USE_COLLECT2).
488 * config/alpha/x-vms (USE_COLLECT2): Don't set.
489 * config/i386/t-mingw32 (USE_COLLECT2): Likewise.
490 * config/rs6000/t-beos (USE_COLLECT2): Likewise.
491 * config/pa/t-pa64: Remove commented out USE_COLLECT2.
492 * configure: Regenerate.
494 2004-04-04 Roger Sayle <roger@eyesopen.com>
496 * simplify-rtx.c (simplify_binary_operation): Constant fold
497 DIV, MOD, UDIV and UMOD using div_and_round_double.
499 2004-04-04 Mark Mitchell <mark@codesourcery.com>
502 * varasm.c (initializer_constant_valid_p): Allow NOP_EXPRs to
505 2004-04-04 Mark Mitchell <mark@codesourcery.com>
507 * doc/invoke.texi (-mabi=o64): Create link to O64 ABI
510 2004-04-04 Roger Sayle <roger@eyesopen.com>
512 * cse.c (cse_insn): Correct usage of simplify_replace_rtx when
513 updating the REG_EQUAL note on an insn's libcall_insn.
515 2004-04-04 Roger Sayle <roger@eyesopen.com>
517 * df.h: Tidy up whitespace in the definitions of the DF_ flags.
519 2004-04-03 Roger Sayle <roger@eyesopen.com>
521 * fold-const.c (fold) <PLUS_EXPR>: Guard (-A)+B -> B-A transformation
522 with reorder_operands_p.
524 2004-04-03 Jan Hubicka <jh@suse.cz>
526 * md.texi (vec_set, vec_extract, vec_init): Document.
528 2004-04-02 Gabor Loki <loki@inf.u-szeged.hu>
530 * opts.c (decode_options): Do function inlining with very small
531 max-inline-insns-* parameters when optimizing for size.
533 2004-04-02 Vladimir Makarov <vmakarov@redhat.com>
535 * config/i386/i386.h (TARGET_NOCONA): New macro.
536 (TARGET_CPU_CPP_BUILTINS): Add code for Nocona.
537 (processor_type): Add PROCESSOR_NOCONA.
539 * config/i386/i386.md (cpu): Add nocona to the attribute values.
541 * config/i386/i386.c (nocona_cost): New variable.
542 (m_NOCONA): New macro.
543 (x86_push_memory, x86_movx, x86_cmove, x86_deep_branch,
544 x86_branch_hints, x86_use_sahf, x86_single_stringop,
545 x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8,
546 x86_integer_DFmode_moves, x86_partial_reg_dependency,
547 x86_memory_mismatch_stall, x86_accumulate_outgoing_args,
548 x86_decompose_lea, x86_arch_always_fancy_math_387,
549 x86_sse_partial_reg_dependency, x86_sse_load0_by_pxor,
550 x86_ext_80387_constants, x86_four_jump_limit):
551 (override_options): Add nocona_cost to processor_target_table.
552 Set up PROCESSOR_NOCONA for Nocona entry in processor_alias_table.
553 (incdec_operand): Prevent inc/dec generation for Nocona too.
554 (ix86_issue_rate): Add PROCESSOR_NOCONA.
556 2004-04-01 Andrew Pinski <pinskia@physics.uc.edu>
558 * rtlanal.c (find_reg_note): Manually
561 2004-04-01 Mark Mitchell <mark@codesourcery.com>
563 * genemit.c (gen_split): Change prototype of generated code.
564 * genrecog.c (write_action): Adjust prototype for and calls to
566 * gensupport.c (struct queue_elem): Add split field.
567 (queue_pattern): Return a value. Clear the split field.
568 (process_rtx): Maintain an association between an insn and the
569 split generated from it for a define_insn_and_split.
570 (process_one_cond_exec): Generate a new split for a
571 define_insn_and_split.
572 * config/arm/arm-protos.h (arm_split_constant): Add insn
574 (emit_constant_insn): New function.
575 (arm_gen_constant): Use it.
576 * config/arm/arm.md: Adjust calls to arm_split_constant.
578 2004-04-02 Jan Hubicka <jh@suse.cz>
580 * cgraph.c: Add overall comment.
581 (cgraph_inline_hash): New global variable.
582 (cgraph_create_node): Break out from ...
583 (cgraph_node): ... here.
584 (cgraph_edge): New function.
585 (cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
586 (cgraph_remove_edge): Accept edge, intead of source and destination.
587 (cgraph_redirect_edge_callee): New.
588 (cgraph_remove_node): Update all new datastructures.
589 (cgraph_record_call, cgraph_remove_call): Kill.
590 (dump_cgraph_node): Break out from ... ; dump new datastructures.
591 (dump_cgraph): ... here.
592 (cgraph_function_possibly_inlined_p): Use new hashtable.
593 (cgraph_clone_edge, cgraph_clone_node): New.
594 * cgraph.h: Include hashtab.h
595 (struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
596 fields, add inlined_to pointer.
597 (cgraph_node): Add pointer to next_clone.
598 (cgraph_remove_edge, cgraph_create_edge): Update prototype.
599 (cgraph_remove_call, cgraph_record_call): Kill.
600 (cgraph_inline_hash): Declare.
601 (dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
602 cgraph_redirect_edge_callee): Declare.
603 (cgraph_create_edges, cgraph_inline_p): Update prorotype.
604 (cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
605 cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
606 * cgraphunit.c: Add overall comment.
607 (cgraph_optimize_function): Kill.
608 (cgraph_assemble_pending_functions): Do not assemble inline clones.
609 (cgraph_finalize_function): Update call of cgraph_remove_node
610 (record_call_1): Record call sites.
611 (cgraph_create_edges): Accept node instead of decl argument.
612 (error_found): New static variable.
613 (verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
614 (cgraph_analyze_function): Update for new datastructures.
615 (cgraph_finalize_compilation_unit): Plug memory leak.
616 (cgraph_optimize_function): Kill.
617 (cgraph_expand_function): Do not use cgraph_optimize_function.
618 (INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
619 cgraph_inlined_callees): Kill.
620 (cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
622 (estimate_growth): Simplify.
623 (cgraph_clone_inlined_nodes): New function.
624 (cgraph_mark_inline_edge): Re-implement.
625 (cgraph_mark_inline): Likewise.
626 (cgraph_check_inline_limits): Simplify.
627 (cgraph_recursive_inlining_p): New.
628 (update_callee_keys): Break out from ...
629 (cgraph_decide_inlining_of_small_functions): ... here; simplify.
630 (cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
632 (cgraph_expand_all_functions): Remove inline clones from the ordered
634 (cgraph_preserve_function_body_p): New predicate.
635 (cgraph_optimize): Verify cgraph.
636 * function.h (struct function): Add fields saved_tree/saved_args.
637 * timevar.def (TV_CGRAPH_VERIFY): Use verifier.
638 * toplev.c (rest_of_compilation): Do not free cfun.
639 * tree-inline.c: Include function.h
640 (struct inline_data): Add saving_p field; replace decl/current_decl by
642 (insert_decl_map): New function.
643 (copy_body_r): Handle saving; update cgraph datastructure.
644 (copy_body): Handle recursive inlining.
645 (initialize_inlined_parameters): Likewise.
646 (expand_call_inline): Propagate node attributes; update cgraph.
647 (optimize_inline_calls): Verify that datastructure still match.
648 (save_body): New function.
649 * tree-inline.h (save_body): New.
650 * tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
651 * langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
652 * langhooks.c (lang_hooks): Add update_decl_after_saving.
654 2004-04-01 Serge Belyshev <1319@bot.ru>
657 * config/i386/i386.md: fix source operand constraints in
658 mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
660 2004-04-01 Waldek Hebisch <hebisch@math.uni.wroc.pl>
662 * fold-const.c (folda): Preserve types of comparisons.
664 2004-04-01 Richard Henderson <rth@redhat.com>
666 * toplev.c (backend_init): Move init_optimization_passes call ...
667 (lang_dependent_init): ... here.
669 2004-04-01 Alan Modra <amodra@bigpond.net.au>
670 Jakub Jelinek <jakub@redhat.com>
672 * gcc.c (init_gcc_specs): If HAVE_LD_AS_NEEDED, link with
673 -lgcc --as-needed -lgcc_s --no-as-needed by default.
674 * configure.ac (HAVE_LD_AS_NEEDED): Check for ld --as-needed.
675 * configure: Rebuilt.
676 * config.in: Rebuilt.
677 * Makefile.in (stage1-start): Copy also libgcc_s*$(SHLIB_EXT).
678 (stage2-start, stage3-start, stage4-start): Likewise.
679 (stageprofile-start, stagefeedback-start): Likewise.
681 2004-04-01 Jakub Jelinek <jakub@redhat.com>
683 * config/sparc/sparc.h (DITF_CONVERSION_LIBFUNCS): Define to 0.
684 * config/sparc/linux.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
685 * config/sparc/linux64.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
686 * config/sparc/sol2.h (DITF_CONVERSION_LIBFUNCS): Redefine to 1.
687 (SOLARIS_CONVERSION_LIBFUNCS): Rename to SUN_CONVERSION_LIBFUNCS.
688 * config/sparc/sparc.c (sparc_init_libfuncs): Initialize optabs
689 with _Q_qtoll, _Q_qtoull and _Q_lltoq if DITF_CONVERSION_LIBFUNCS.
690 * config.gcc (sparc-*-linux*): Revert 2004-03-23 change.
691 * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Likewise.
692 * config/sparc/t-linux: Removed.
694 2004-04-01 Jakub Jelinek <jakub@redhat.com>
697 * fold-const.c (fold) <EQ_EXPR>: Properly compute newconst in
698 "bitfld++ == const" to "++bitfld == const + incr" transformations.
700 2004-04-01 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
702 * expr.c (get_inner_reference): Use DECL_UNSIGNED, not TREE_UNSIGNED.
703 * stor-layout.c (layout_decl): Likewise.
704 * tree.c (get_narrower): Likewise and also use BIT_FIELD_REF_UNSIGNED.
705 * fold-const.c (make_bit_field_ref): Use BIT_FIELD_REF_UNSIGNED.
706 * print-tree.c (print_node): Handle various used of unsigned_flag.
707 * tree.def (BIT_FIELD_REF): Update comment.
708 * tree.h (TREE_UNSIGNED): Deleted.
709 (DECL_UNSIGNED, BIT_FIELD_REF_UNSIGNED): New macros.
711 2004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
713 * builtins.c, c-aux-info.c, c-common.c, c-cppbuiltin.c, c-decl.c:
714 Change most occurrences of TREE_UNSIGNED to TYPE_UNSIGNED.
715 * c-format.c, c-opts.c, c-pretty-print.c, c-typeck.c: Likewise.
716 * calls.c, convert.c, dbxout.c, dojump.c, dwarf2out.c: Likewise.
717 * expmed.c, expr.c, fold-const.c, function.c, integrate.c: Likewise.
718 * optabs.c, sdbout.c, stmt.c, stor-layout.c, tree-dump.c: Likewise.
719 * tree.c, config/iq2000/iq2000.c, config/m32r/m32r.c: Likewise.
720 * config/mips/mips.c, config/rs6000/rs6000.c: Likewise.
721 * config/s390/s390.c, config/sparc/sparc.c, objc/objc-act.c: Likewise.
722 * stor-layout.c (layout_type, case COMPLEX_TYPE): Test for
723 REAL_TYPE, not INTEGER_TYPE.
724 (layout_type, case VECTOR_TYPE): Simplify code.
725 * tree.c (build_vector_type_for_mode): Remove dup unsigned setting.
726 * tree.h: Update comments.
727 (STRIP_NOPS): Use TYPE_UNSIGNED.
728 (TYPE_UNSIGNED): New macro.
729 (TYPE_TRAP_SIGNED): Remove now redundant check.
730 (SAVE_EXPR_NOPLACEHOLDER): Don't use TREE_UNSIGNED.
732 2004-03-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
734 * function.c (put_var_into_stack): Properly set orig_reg for indirect.
736 2004-03-31 Andrew Pinski <pinskia@physics.uc.edu>
738 * config/rs6000/t-darwin (LIB2FUNCS_STATIC_EXTRA):
739 Add darwin-fpsave.asm, darwin-vecsave.asm,
740 and darwin-world.asm.
741 (TARGET_LIBGCC2_CFLAGS): Add -Wa,-force_cpusubtype_ALL
742 as the asm files contain altivec instructions.
743 * config/rs6000/darwin-fpsave.asm: New file.
744 * config/rs6000/darwin-vecsave.asm: New file.
745 * config/rs6000/darwin-world.asm: New file.
747 2004-03-31 Zack Weinberg <zack@codesourcery.com>
749 * gengtype-yacc.y (option, stringseq): Add missing
750 terminating semicolon.
752 2004-03-30 David Edelsohn <edelsohn@gnu.org>
754 * config/rs6000/rs6000.md (tls_gd_32, tls_gd_64,
755 tls_ld_32, tls_ld_64, tls_dtprel_32, tls_dtprel_64,
756 tls_dtprel_ha_32, tls_dtprel_ha_64,
757 tls_dtprel_lo_32, tls_dtprel_lo_64,
758 tls_got_dtprel_64, tls_tprel_32, tls_tprel_64,
759 tls_tprel_ha_32, tls_tprel_ha_64,
760 tls_tprel_lo_32, tls_tprel_lo_64,
761 tls_got_tprel_32, tls_got_tprel_64,
762 tls_tls_32, tls_tls_64): Replace register_operand with
765 2004-03-30 Mostafa Hagog <mustafa@il.ibm.com>
767 * config/rs6000/rs6000.md (*ctrsi_internal1, *ctrsi_internal2,
768 *ctrdi_internal1, *ctrdi_internal2, *ctrsi_internal3,
769 *ctrsi_internal4, *ctrdi_internal3, *ctrdi_internal4,
770 *ctrsi_internal5, *ctrsi_internal6, *ctrdi_internal5,
771 *ctrdi_internal6): Replace register_operand with
772 nonimmediate_operand.
774 2004-03-29 Fariborz Jahanian <fjahanian@apple.com>
776 * fold-const.c (fold): Reassociate multiply expression
777 with an adjacent non-multiply expression to use
778 architecture's multiply-add instruction.
780 2004-03-30 Zack Weinberg <zack@codesourcery.com>
782 * gengtype.c (create_option): New function.
783 * gengtype.h: Prototype it.
784 * gengtype-yacc.y (stringseq): New rule.
785 (option): Use create_option. Add new bare ID production. Use
786 stringseq, not STRING directly.
788 * alias.c, bitmap.c, c-decl.c, cgraph.h, cpplib.h, cselib.h
789 * dwarf2out.c, emit-rtl.c, function.h, lists.c, tree.h
790 * varray.h, config/alpha/alpha.c:
791 Use new shorter form of GTY markers.
793 * doc/gty.texi: Rewrite.
795 2004-03-30 Andrew Pinski <pinskia@physics.uc.edu>
797 * config/darwin.c (machopic_function_base_name):
798 Remove current_name and getting the name of the
801 2004-03-30 Nick Clifton <nickc@redhat.com>
803 * config/arm/arm.md (thumb_jump): Reduce the backward branch
804 range, and increase the forward branch range, to allow for
805 the fact that the PC will be off by 4.
807 2004-03-30 Alan Modra <amodra@bigpond.net.au>
809 * .cvsignore: Add GPATH, GRTAGS, GSYMS and GTAGS (GNU GLOBAL)
811 2004-03-30 Hartmut Penner <hpenner@de.ibm.com>
813 * config/rs6000/rs6000.c (output_vec_const_move):
814 Find all cases of EASY_VECTOR_15_ADD_SELF.
815 (easy_vector_constant_add_self): Accept
816 all vector constant loadable by vsplt* and vadd*.
817 (easy_vector_same): Use easy_vector_splat_const.
818 (easy_vector_const): Use easy_vector_splat_const.
819 (easy_vector_splat_const): New function.
820 (gen_easy_vector_constant_add_self): New function.
822 * config/rs6000/rs6000-protos.c (gen_easy_vector_constant_add_self):
825 * config/rs6000/altivec.md (movv4si splitter): Change to
826 emit move insn with halfed vector constant.
827 (*movv8hi splitter): Likewise.
828 (*movv16qi splitter): Likewise.
830 2004-03-30 Hartmut Penner <hpenner@de.ibm.com>
833 * config/rs6000/rs6000.c (rs6000_legitimate_address):
834 Allow any offset to argument pointer in no-strict case.
836 2004-03-30 Jan Hubicka <jh@suse.cz>
838 * toplev.c (backend_init): Add missing call to inint_optimization_passes.
839 * passes.c (init_optimization_passes, finish_optimization_passes): Output cgraph
840 dump file in non-unit-at-a-time mode.
842 2004-03-29 Hans-Peter Nilsson <hp@axis.com>
844 * config/cris/cris.h: Correct #ifdef to test for
845 HAVE_AS_NO_MUL_BUG_ABORT_OPTION, not
846 HAVE_AS_MUL_BUG_ABORT_OPTION.
848 2004-03-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
850 * function.c (put_var_into_stack): If old RTL was ADDRESSOF, update
851 the address inside the old RTL.
853 2004-03-28 Zack Weinberg <zack@codesourcery.com>
855 * c-decl.c: Verify that C_SIZEOF_STRUCT_LANG_IDENTIFIER is correct.
856 (struct c_binding, struct c_scope): Add chain_next
857 attributes to GTY markers.
858 (struct lang_identifier, struct lang_tree_node): Define
860 * c-tree.h: ... not here. No longer need to declare struct
861 c_binding either. Do define C_SIZEOF_STRUCT_LANG_IDENTIFIER.
862 * c-lang.c, objc/objc-lang.c: Set LANG_HOOKS_IDENTIFIER_SIZE
863 to C_SIZEOF_STRUCT_LANG_IDENTIFIER.
866 * c-decl.c (get_parm_info): If error_mark_node is encountered
867 in the bindings chain, unbind and discard it; don't abort.
869 2004-03-28 Olga Golovonevsky <olga@il.ibm.com>
870 Dorit Naishlos <dorit@il.ibm.com>
872 * config/rs6000/altivec.md: (andvv16qi3, andv8hi3, one_cmplv16qi2,
873 one_cmplv8hi2, one_cmplv4si2, iorv16qi3, iorv8hi3,): New modelling.
875 2004-03-28 Stephane Carrez <stcarrez@nerim.fr>
877 * config/m68hc11/m68hc11-protos.h (m68hc11_page0_symbol_p): Declare.
879 * config/m68hc11/m68hc11.c (m68hc11_handle_page0_attribute): New.
880 (m68hc11_attribute_table): New attribute "page0" to mark a global
881 variable as being allocated from within page0 section.
882 (m68hc11_encode_label): New function.
883 (m68hc11_strip_name_encoding): New function.
884 (m68hc11_page0_symbol_p): New function.
885 (m68hc11_indirect_p): Accept global variables marked in page0.
886 (m68hc11_encode_section_info): Lookup "page0" attribute.
888 * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): 'R' constraint also
889 represents access to page0 variables.
891 * config/m68hc11/m68hc11.md ("*logicalsi3_zexthi"): Use gen_rtx_REG.
892 ("*logicalsi3_silshl16_zext"): Likewise.
893 ("*ashldi3_const32"): Likewise.
894 (peephole2 ashift): Likewise.
896 2004-03-28 Joseph S. Myers <jsm@polyomino.org.uk>
898 * c-tree.h (C_DECL_REGISTER): New.
899 * c-aux-info.c (gen_decl), c-decl.c (objc_mark_locals_volatile,
900 finish_decl, grokdeclarator, get_parm_info), c-typeck.c
901 (build_array_ref, c_mark_addressable): Set and use it.
902 * c-decl.c (grokdeclarator), c-typeck.c (c_mark_addressable):
903 Allow structures with volatile fields to be declared register.
904 Don't check TREE_ADDRESSABLE before warning about taking address
906 * c-decl.c (finish_decl): Don't allow structures with volatile
907 fields to be placed in named register.
908 * doc/trouble.texi: Remove reference to structures with volatile
911 2004-03-27 Ulrich Weigand <uweigand@de.ibm.com>
913 * function.c (thread_prologue_and_epilogue): Move
914 NOTE_INSN_FUNCTION_END and NOTE_INSN_FUNCTION_BEG notes
917 2004-03-27 Ulrich Weigand <uweigand@de.ibm.com>
919 * expr.c (store_constructor): Use gen_int_mode to correctly
920 sign-extend CONST_INT value.
922 2004-03-27 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
924 * builtin-types.def (BT_WINT, BT_FN_INT_WINT, BT_FN_WINT_WINT): New.
925 * builtins.def (DEF_C94_BUILTIN): New. Add wctype builtins.
926 * doc/extend.texi: Likewise.
928 2004-03-26 Diego Novillo <dnovillo@redhat.com>
930 * c-typeck.c (comptypes): Replace calls to TYPE_DOMAIN
931 with TYPE_ORIG_SIZE_TYPE.
933 2004-03-25 Aldy Hernandez <aldyh@redhat.com>
936 * c-typeck.c (build_binary_op): Do not allow comparisons of
939 2004-03-26 James A. Morrison <ja2morri@uwaterloo.ca>
941 * config.gcc: Remove sparc-tti-*.
942 * config/sparc/pbd.h: Delete.
944 * config/sparc/sol2.h: Remove note about Sun OS 4.x.
945 * config/sparc/aout.h: Likewise.
947 * config/sparc/sparc.h: Remove if 0'd code.
948 * config/sparc/sparc.md (call): Remove if 0'd code.
949 (call_value): Likewise.
950 (nonlocal_goto): Likewise.
951 (unimp_insn): Delete.
953 2004-03-25 Roger Sayle <roger@eyesopen.com>
955 * fold-const.c (tree_expr_nonnegative_p): Handle BIT_XOR_EXPR like
956 BIT_IOR_EXPR; A^B is nonnegative when A and B are nonnegative.
958 2004-03-25 Richard Henderson <rth@redhat.com>
961 * c-typeck.c (pop_init_level): Emit pending init elements earlier
964 2004-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
966 * builtins.c (fold_builtin): Fix error in last change.
968 2004-03-25 Richard Sandiford <rsandifo@redhat.com>
970 * config/mips/mips.h: Formatting fix.
972 2004-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
974 * builtins.def: Add ctype builtins.
975 * doc/extend.texi: Likewise.
977 2004-03-25 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
979 * builtins.c (fold_builtin): Add new builtin optimizations for
981 * fold-const.c (fold): Likewise.
983 2004-03-25 David Edelsohn <edelsohn@gnu.org>
985 * config/rs6000/rs6000.c (rs6000_always_hint): New variable.
986 (rs6000_sched_groups): New variable.
987 (processor_target_table): Add power5.
988 (rs6000_override_options): Set rs6000_sched_insert_nops,
989 rs6000_sched_costly_dep and rs6000_sched_restricted_insns_priority
990 from rs6000_sched_groups.
991 (output_cbranch): Use rs6000_always_hint.
992 (rs6000_variable_issue): Use rs6000_sched_groups.
993 (rs6000_adjust_cost): Add CPU_POWER5.
994 (is_microcoded_insn): Use rs6000_sched_groups.
995 (is_dispatch_slot_restricted): Use rs6000_sched_groups.
996 Return 2 for POWER5 cracked instructions.
997 (is_cracked_insn): Use rs6000_sched_groups.
998 (is_branch_slot_insn): Use rs6000_sched_groups.
999 (rs6000_issue_rate): Add CPU_POWER5.
1000 (rs6000_sched_finish): Use rs6000_sched_groups.
1001 (rs6000_rtx_costs): Add PROCESSOR_POWER5.
1002 * config/rs6000/rs6000.h (processor_type): Add PROCESSOR_POWER5.
1003 (DEFAULT_SCHED_COSTLY_DEP): Delete.
1004 (DEFAULT_RESTRICTED_INSNS_PRIORITY): Delete.
1005 (DEFAULT_SCHED_FINISH_NOP_INSERTION_SCHEME): Delete.
1006 * config/rs6000/rs6000.md (define_attr "cpu"): Add power5.
1007 * config/rs6000/power5.md: New file.
1008 * doc/invoke.texi: Add power5 option.
1010 2004-03-25 Kazu Hirata <kazu@cs.umass.edu>
1012 * cfgrtl.c, dbxout.c, tree.def, config/darwin.h,
1013 config/arm/arm.c, objc/objc-act.c: Fix comment typos.
1014 * doc/invoke.texi: Fix a typo.
1016 2004-03-25 Kazu Hirata <kazu@cs.umass.edu>
1018 PR optimization/9707.
1019 * stmt.c (emit_case_nodes): Emit equality comparisons instead
1020 of recursing if both children are single-valued cases with no
1023 2004-03-25 Paul Brook <paul@codesourcery.com>
1025 * config/arm/arm.c (vfp_print_multi): Remove.
1026 (arm_output_fldmx): New function.
1027 (vfp_emit_fstmx): Return block size, not insn. Add ARM10 VFPr1 bugfix.
1028 (arm_expand_prologue): Update to match.
1029 (arm_get_vfp_saved_size): New Function.
1030 (arm_get_frame_offsets): Use it.
1031 (arm_output_epilogue): Use new functions.
1033 2004-03-24 Richard Henderson <rth@redhat.com>
1035 * alias.c (alias_invariant, alias_invariant_size): Mark GTY.
1036 (reg_known_value, reg_known_value_size): Likewise; make static.
1037 (reg_known_equiv_p): Make static.
1038 (clear_reg_alias_info): Update for new indexing.
1039 (get_reg_known_value, set_reg_known_value): New.
1040 (get_reg_known_equiv_p, set_reg_known_equiv_p): New.
1041 (canon_rtx): Use them.
1042 (init_alias_analysis): Likewise. Allocate reg_known_value with gc.
1043 Don't play queer offsetting games with reg_known_value and
1045 (end_alias_analysis): Free reg_known_value with gc.
1046 * rtl.h (get_reg_known_value, get_reg_known_equiv_p): Declare.
1047 * sched-deps.c (reg_known_equiv_p, reg_known_value): Remove.
1048 (deps_may_trap_p, sched_analyze_1, sched_analyze_2): Use the new
1051 2004-03-24 Kazu Hirata <kazu@cs.umass.edu>
1053 * dwarf2asm.c, loop.h, pretty-print.c, pretty-print.h,
1054 config/i386/mmintrin.h: Update copyright.
1056 2004-03-24 Nathanael Nerode <neroden@gcc.gnu.org>
1058 * configure.ac: Add --enable-werror-always (for top level bootstrap
1060 * configure: Regenerate.
1062 2004-03-24 Ziemowit Laski <zlaski@apple.com>
1064 * objc/objc-act.c (objc_comptypes): Treat comparisons
1065 between 'Class' and '<class> *' as explicitly invalid.
1067 2004-03-24 David Edelsohn <edelsohn@gnu.org>
1069 * doc/invoke.texi (-frename-registers: Add enabled at -O3.
1070 (-fprofile-values): Add enabled with profile-{generate,use}.
1072 (-ftracer): Add enabled with profile-use.
1073 (-funit-at-a-time): Add enabled at -O2,-O3.
1074 (-funroll-loops): Add enabled with profile-use.
1075 (-funswitch-loops): Add enabled with profile-use. Remove duplicates.
1076 (max-gcse-passes): Mention default.
1077 (max-cse-path-length): Mention default.
1079 2004-03-24 Nathanael Nerode <neroden@gcc.gnu.org>
1081 * Makefile.in (STRICT2_WARN): Reorder.
1082 * configure.ac: Check for -Wold-style-definition, and use it
1083 in strict1_warn if it's available.
1084 * configure: Regnerate.
1086 2004-03-24 Paul Brook <paul@nowt.org>
1088 * config.gcc <arm>: Add --with-abi=
1089 * config/arm/arm-protos.h (arm_get_frame_size, thumb_get_frame_size,
1090 thumb_far_jump_used): Remove prototypes.
1091 (arm_needs_doubleword_align): Add prototype.
1092 (thumb_compute_initial_elimination_offset): Ditto.
1093 * config/arm/arm.c (arm_get_frame_offsets): New function.
1094 (use_return_insn, output_return_instruction, arm_output_epilogue,
1095 arm_output_function_epilogue, arm_compute_initial_elimination_offset,
1096 arm_expand_prologue, thumb_expand_epilogue): Use it.
1097 (arm_abi, target_abi_name, all_arm_abis): New variables.
1098 (arm_override_options): Set them. Set structure padding for AAPCS.
1099 (arm_return_in_memory): Update ABI check.
1100 (arm_init_cumulative_args): Initialize can_split.
1101 (arm_needs_doubleword_align): New function.
1102 (arm_function_arg): Don't split args after pushing to stack. Handle
1103 doubleword/even reg alignment.
1104 (arm_va_arg): Handle all doubleword aligned args.
1105 (add_minpoolforward ref, dump_minpool, push_minpool_fix): Align based
1107 (arm_compute_save_reg0_reg12_mask): Fix comment.
1108 (thumb_get_frame_size, thumb_get_frame_size): Remove.
1109 (thumb_jump_far_used_p): Remove superfluous argument. Return save
1110 value for alignment.
1111 (thumb_unexpanded_epilogue, thumb_output_function_prologue): Change
1113 (thumb_compute_initial_elimination_offset): New function.
1114 (thumb_expand_prologue): Use arm_get_frame_offsets. Remove
1115 unneccessary rounding.
1116 * config/arm/arm.h (target_abi_name): Declare.
1117 (ARM_DOUBLEWORD_ALIGN, DOUBLEWORD_ALIGNMENT, TARGET_IWMMXT_ABI,
1118 arm_abi_type, ARM_DEFAULT_ABI): Define.
1119 (ARM_FLAG_ATPCS): Remove.
1120 (TARGET_OPTIONS, OPTION_DEFAULT_SPECS): Add -mabi=.
1121 (BIGGEST_ALIGNMENT, PREFERRED_STACK_BOUNDARY, STACK_BOUNDARY): Use it.
1122 (ADJUST_FIELD_ALIGN, DATA_ALIGNMENT, LOCAL_ALIGNMENT,
1123 TYPE_NEEDS_IWMMXT_ALIGNMENT): Remove.
1124 (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, FUNCTION_ARG_REGNO_P):
1125 Contitionalize on ABI, not CPU.
1126 (struct arm_stack_offsets): Define.
1127 (struct machine_function): Add stack_offsets. Remove frame_size.
1128 (FUNCTION_ARG_PARTIAL_NREGS): Don't split if previous args have been
1130 (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_BOUNDARY): Handle general
1131 doubleword alignment.
1132 (THUMB_INITIAL_ELIMINATION_OFFSET,
1133 ARM_INITIAL_ELIMINATION_OFFSET): Remove.
1134 (INITIAL_ELIMINATION_OFFSET): Call functions directly.
1135 * config/arm/arm.md (align_8): Enable for all targets.
1136 * config/arm/netbsd-elf.h (TARGET_DEFAULT): Remove TARGET_ATPCS.
1137 (ARM_DEFAULT_ABI): Define.
1138 * doc/invoke.texi <ARM>: Document -mabi=. Update documentation for
1139 -mstructure-size-boundary.
1141 2004-03-24 Nathanael Nerode <neroden@gcc.gnu.org>
1143 * configure.ac: Check for -Wno-variadic-macros; don't use
1144 -pedantic (in stage 1 or a simple 'make all') unless it's available,
1145 and if it's available, use it. Also, clean up check for
1147 * configure: Regenerate.
1149 2004-03-24 Richard Sandiford <rsandifo@redhat.com>
1151 * config.gcc (mips64vr-*-elf*, mips64vrel-*-elf*): Remove tm_defines.
1152 * config/mips/vr.h (DEFAULT_VR_ARCH): New macro, defined to vr4130.
1153 (MULTILIB_DEFAULTS): Use it.
1154 (MIPS_CPU_STRING_DEFAULT): Remove.
1155 (MIPS_ABI_DEFAULT, MIPS_MARCH_CONTROLS_SOFT_FLOAT): Define.
1156 (DRIVER_SELF_SPECS): Make -mfix-vr4122-bugs imply -march=vr4120. Make
1157 EABI64 -mlong32 the default ABI. Enforce the default architecture.
1158 * config/mips/t-vr (MULTILIB_OPTIONS): Add mfix-vr4122-bugs,
1159 march=vr4130, march=vr4300, march=vr5000 and march=vr5500.
1160 (MULTILIB_MATCHES): Use -mfix-vr4122-bugs multilibs for -march=vr4120.
1161 (MULTILIB_EXCEPTIONS): Change choice of multilibs. Update comments
1164 2004-03-24 DJ Delorie <dj@redhat.com>
1165 Richard Sandiford <rsandifo@redhat.com>
1167 * config/mips/mips.h (MASK_FIX_VR4122, TARGET_FIX_VR4122): New macros.
1168 (TARGET_SWITCHES): Add -mfix-vr4122-bugs and -mno-fix-vr4122-bugs.
1169 (ASM_SPEC): Pass down -mfix-vr4122-bugs.
1170 * config/mips/mips.c (mips_avoid_hazards): Don't emit whole functions
1171 in .set noreorder and .set nomacro if TARGET_FIX_VR4122.
1172 (mips_init_libfuncs): Use special functions for divsi3 and modsi3
1173 if TARGET_FIX_VR4122.
1174 * config/mips/mips.md (define_attr length): Account for nops inserted
1175 after macc and dmult when using -mfix-vr4122-bugs.
1176 (umuldi3_highpart, divmodsi4, divmoddi4): Disable if TARGET_FIX_VR4122.
1177 * config/mips/t-vr (LIB2FUNCS_STATIC_EXTRA): Define instead of
1178 LIB2FUNCS_EXTRA. Add config/mips/vr4122-div.S.
1179 * config/mips/vr4122-div.S: New file.
1180 * doc/invoke.texi: Document -mfix-vr4122-bugs.
1182 2004-03-24 Richard Sandiford <rsandifo@redhat.com>
1184 * config/mips/mips.h (PROCESSOR_R4130): New processor_type.
1185 (TARGET_MIPS4130): New macro.
1186 (ISA_HAS_MACC): Return true if TARGET_MIPS4130 && !TARGET_MIPS16.
1187 * config/mips/mips.c (mips_cpu_info_table): Add a vr4130 entry.
1188 (override_options): Extend MIPS_MARCH_CONTROLS_SOFT_FLOAT to deal
1189 with PROCESSOR_R4130.
1190 * config/mips/mips.md (define_attr cpu): Add r4130.
1191 * doc/invoke.texi: Document vr4130 as a supported MIPS architecture.
1193 2004-03-24 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
1194 Richard Sandiford <rsandifo@redhat.com>
1196 * doc/invoke.texi: Apply missed hunk from 2004-03-03 change.
1198 2004-03-24 Alexandre Oliva <aoliva@redhat.com>
1200 PR preprocessor/14438
1201 * cpplib.c (do_pragma): Remove line_change call after pragma
1204 2004-03-23 Ian Lance Taylor <ian@wasabisystems.com>
1206 * doc/extend.texi (ARM Built-in Functions): Replace with correct
1209 2004-03-23 Roger Sayle <roger@eyesopen.com>
1211 * reg-stack.c (get_true_reg): Handle FLOAT_TRUNCATE like FLOAT_EXTEND
1212 if flag_unsafe_math_optimizations.
1213 * config/i386/i386.md (truncdfsf2): If flag_unsafe_math_optimizations
1214 and TARGET_80387 expand using truncdfsf2_noop pattern.
1215 (truncxfsf2): Likewise using truncxfsf2_noop.
1216 (truncxfdf2): Likewise using truncxfdf2_noop.
1217 (truncdfsf2_noop, truncxfsf2_noop, truncxfdf2_noop): New patterns.
1219 2004-03-23 Ziemowit Laski <zlaski@apple.com>
1221 * hooks.c (hook_constcharptr_tree_null): New hook.
1222 * hooks.h (hook_constcharptr_tree_null): New prototype.
1223 * target-def.h (TARGET_MANGLE_FUNDAMENTAL_TYPE): New target hook.
1224 * target.h (mangle_fundamental_type): New target hook.
1225 * config/rs6000/rs6000.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Point
1226 target hook at rs6000_mangle_fundamental_type.
1227 (rs6000_mangle_fundamental_type): New function.
1228 * doc/tm.texi (TARGET_MANGLE_FUNDAMENTAL_TYPE): Document.
1230 2004-03-23 Zack Weinberg <zack@codesourcery.com>
1232 PR 12267, 12391, 12560, 13129, 14114, 14133
1233 * c-tree.h: Forward declare struct c_binding. Declare
1234 c_override_bindings_to_false. Update prototypes.
1235 (struct lang_identifier): Update comments. Change fields to be
1237 (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE)
1238 (IDENTIFIER_LABEL_VALUE, C_DECL_INVISIBLE)
1239 (KEEP_NO, KEEP_YES, KEEP_MAYBE): Delete.
1240 (C_DECL_IN_EXTERNAL_SCOPE, C_DECL_DECLARED_BUILTIN): New.
1241 * c-common.h: Update prototypes.
1242 * c-decl.c (struct c_scope): Update commentary. Remove names,
1243 names_last, parms, parms_last, tags, and shadowed fields. Add
1244 bindings and depth fields.
1245 (scope_freelist): Move to more appropriate location.
1246 (c_print_identifier): Update for changes to struct lang_identifier.
1247 (objc_mark_locals_volatile): Update for new bindings structures.
1248 (global_bindings_p): Honor c_override_global_bindings_to_false.
1249 (pushlevel): Rename to push_scope; take no arguments; use the
1250 scope_freelist; initialize scope->depth and check for overflow.
1251 (poplevel): Rename to pop_scope; totally rewritten for new bindings
1253 (diagnose_mismatched_decls): Use C_DECL_DECLARED_BUILTIN, not
1254 C_DECL_INVISIBLE, for certain decisions. Adjust some diagnostics.
1255 Improve some commentary. Adjust handling of forward parm decls.
1256 (merge_decls): Set C_DECL_DECLARED_BUILTIN when appropriate.
1257 Preserve C_DECL_IN_EXTERNAL_SCOPE.
1258 (warn_if_shadowing): Correct indentation. Improve diagnostics.
1259 (pushdecl): Remove unnecessary assertion. Short-circuit anonymous
1260 decls. Rewrite for new bindings structures. Improve commentary.
1261 Eliminate the copy_node call.
1262 (implicit_decl_warning): Use the "diag" idiom (as seen in
1263 locate_old_decl) to reduce code duplication; call locate_old_decl
1264 if appropriate. Relocate to remove need for forward declaration.
1265 (implicitly_declare): Adjust for new bindings structures. Kludge
1266 around Objective-C not-really-builtin functions.
1267 (undeclared_variable): Improve diagnostics. If current_function_decl
1268 is nonnull but current_function_scope is null, use current_scope.
1270 (lookup_tag): Adjust for new bindings structures. Kludge around
1271 Objective-C's tag declarations that wind up in the external scope.
1272 (lookup_name): Adjust for new bindings structures. Kludge around
1273 c-common.c's pseudo-typedefs that wind up in the external scope.
1274 (lookup_name_current_level): Rename lookup_name_in_scope; take a
1275 second argument indicating the scope to examine; rewrite for
1276 new bindings structures.
1277 (c_init_decl_processing): Adjust for renamed functions. Do not
1278 initialize current_file_decl, first_builtin_decl, last_builtin_decl.
1279 First scope pushed is the external scope, not the global scope.
1280 (builtin_function): Use bind, not pushdecl. Adjust other bits
1281 for new data structures. Keep track of builtins that should be
1282 made visible automatically.
1283 (start_decl): Adjust diagnostics. Remove unnecessary call to
1285 (grokparms): Return 0 if arg_types is error_mark_node.
1286 (get_parm_info): Rename "void_at_end" argument to "ellipsis", with
1287 reversed sense. Rewrite for new bindings structures. Do not
1288 leave any decls in the scope, to prevent pop_scope from doing
1289 contradictory things with them.
1290 (finish_struct, finish_enum): Remove redundant diagnostics.
1291 (build_enumerator): Don't cascade diagnostics for error_mark_node.
1292 Mark location where -pedantic changes the meaning of the program.
1293 (store_parm_decls_newstyle, store_parm_decls_oldstyle): Load the
1294 parameter decls into the function's scope structure using bind.
1295 Warn here about function definitions in the wrong style.
1297 (store_parm_decls): Correct the determination of whether a
1298 function was defined with a prototype.
1299 (c_write_global_declarations): Operate on all file decls and on
1300 the external scope. Split body of the loop to...
1301 (c_write_global_declarations_1): ... this new function, to avoid
1303 (truly_local_externals, first_builtin_decl, last_builtin_decl)
1304 (make_scope, pop_scope, in_parm_level_p, set_block)
1305 (any_external_decl, record_external_decl, bind_label, getdecls)
1306 (link_hash_hash, link_hash_eq, merge_translation_unit_decls)
1307 (c_reset_state): Delete.
1308 (visible_builtins, c_override_global_bindings_to_false)
1309 (c_binding, I_SYMBOL_BINDING, I_SYMBOL_DECL, I_TAG_BINDING)
1310 (I_TAG_DECL, I_LABEL_BINDING, I_LABEL_DECL, file_scope)
1311 (external_scope, binding_freelist, bind, free_binding_and_advance)
1312 (push_file_scope, pop_file_scope): New.
1313 (pushtag, pushdecl_top_level, lookup_label, declare_label)
1314 (define_label, c_make_fname_decl, finish_decl)
1315 (mark_forward_parm_decls, build_compound_literal)
1316 (grokdeclarator, start_function, check_for_loop_decls)
1317 (identifier_global_value, record_builtin_type): Minor adjustments
1318 for new bindings structures. Improve diagnostics and commentary.
1319 * c-objc-common.c (start_cdtor, finish_cdtor): Adjust calls to
1320 pushlevel/poplevel respectively.
1321 (c_objc_common_finish_file): Don't call merge_translation_unit_decls.
1322 * c-opts.c (c_common_parse_file): Remove spurious ATTRIBUTE_UNUSED.
1323 Warn about YYDEBUG not being defined only if -dy. Remove no-longer-
1324 correct loop over multiple translation units; call fatal_error if
1325 requested to compile more than one file at once. (This disables
1326 IMA temporarily - an up-front error being preferable to a crash.)
1327 * c-parse.in (pushlevel, poplevel rules): Rename push_scope, pop_scope.
1328 (all actions): Adjust calls to pushlevel/poplevel.
1329 (parsing_iso_function_signature): Delete.
1330 (extdef_1): Fold into extdef.
1331 (old_style_parm_decls_1): Fold into old_style_parm_decls. Don't
1332 warn here about function definitions in the wrong style.
1333 (after_tyle_declarator, parm_declarator_starttypename)
1334 (parm_declarator_nostarttypename, notype_declarator): Remove
1335 commented-out productions.
1336 (parmlist_1, parmlist_2): Use make_node, not tree_cons, to create
1337 an empty TREE_LIST node. Adjust calls to get_parm_info.
1338 (parmlist_2 : ELLIPSIS): Tag the arg-info block with error_mark_node
1339 to suppress -Wold-style-definition after this error.
1340 (c_parse_file): Don't clear the binding stack or call
1341 finish_fname_decls here. Correct comment.
1342 * c-typeck.c (same_translation_unit_p): Export.
1343 (common_type): Use c_override_global_bindings_to_false, not
1344 pushlevel/poplevel/declare_parm_level.
1345 * c-lang.c: Override LANG_HOOKS_CLEAR_BINDING_STACK,
1346 LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK,
1347 and LANG_HOOKS_GETDECLS with do-nothing stubs.
1348 * objc/objc-lang.c: Likewise.
1349 * objc/objc-act.c: Adjust all calls to pushlevel, poplevel,
1351 (OBJC_VOID_AT_END): Delete; replace all uses
1352 with void_list_node.
1353 (generate_forward_declaration_to_string_table): Delete.
1354 * objc/objc-act.h (OCTI_STRG_DECL, UOBJC_STRINGS_decl): Delete.
1356 * coverage.c (create_coverage): Don't pushdecl anything.
1357 * langhooks.c (lhd_clear_binding_stack): Call
1358 lang_hooks.decls.poplevel, not poplevel.
1359 * tree.c (list_length): If ENABLE_TREE_CHECKING, abort on a
1360 circular list rather than going into an infinite loop.
1362 2004-03-23 Olivier Hainque <hainque@act-europe.fr>
1364 * optabs.c (expand_binop): When synthesizing double word rotates
1365 from single word shifts, use a new register target if the provided
1366 target is not a REG already.
1368 2004-03-23 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1370 * alias.c (get_alias_set): Add support for TYPE_REF_CAN_ALIAS_ALL.
1371 * c-common.c (handle_mode_attribute): Add extra arg to
1372 build_pointer_type_for_mode and build_reference_type_for_mode.
1373 * c-typeck.c (build_c_cast): Only look at TREE_CONSTANT_OVERFLOW
1375 * tree.c (build_pointer_type_for_mode): Add arg CAN_ALIAS_ALL.
1376 Chain pointers via TYPE_NEXT_PTR_TO.
1377 (build_reference_type_for_mode): Similarly.
1378 (build_type_no_quals): Add extra arg to build_pointer_type_for_mode
1379 and build_reference_type_for_mode.
1380 (tree_check4_failed): New function.
1381 * tree.h (TREE_CHECK4, PTR_OR_REF_CHECK): New macros.
1382 (TYPE_REF_CAN_ALIAS_ALL, TYPE_NEXT_PTR_TO, TYPE_NEXT_REF_TO): Likewise.
1383 (TREE_NO_UNSUED_WARNING, TREE_VIA_VIRTUAL, TREE_CONSTANT_OVERFLOW):
1386 2004-03-23 Roger Sayle <roger@eyesopen.com>
1388 * fold-const.c (tree_expr_nonnegative_p): A&B is nonnegative when
1389 A is nonnegative or B is nonnegative. Similarly A|B is nonnegative
1390 when both A and B are nonnegative.
1391 (tree_expr_nonzero_p): A|B is nonzero when A is nonzero or B is
1394 2004-03-23 Kazu Hirata <kazu@cs.umass.edu>
1396 * fold-const.c (fold): Remove cases for INTEGER_CST, REAL_CST,
1397 VECTOR_CST, STRING_CST, COMPLEX_CST, and CONSTRUCTOR.
1399 2004-03-23 Kazu Hirata <kazu@cs.umass.edu>
1401 PR optimization/14669
1402 * fold-const.c (fold): Only unwiden integer comparisons for equality
1403 and inequality operators, or when the signedness doesn't change.
1405 2004-03-23 Jakub Jelinek <jakub@redhat.com>
1407 * config.gcc (sparc-*-linux*): Add sparc/t-linux to tmake_file.
1408 * config/sparc/t-linux64 (TARGET_LIBGCC2_CFLAGS): Set.
1409 * config/sparc/t-linux: New file.
1411 2004-03-23 Richard Sandiford <rsandifo@redhat.com>
1413 * gcse.c (can_assign_to_reg_p): New function, split out from...
1414 (want_to_gcse_p): ...here.
1415 (compute_ld_motion_mems): Use can_assign_to_reg_p to validate
1418 2004-03-22 Diego Novillo <dnovillo@redhat.com>
1420 * c-typeck.c (same_translation_unit_p): Fix pasto.
1422 2004-03-22 David Edelsohn <edelsohn@gnu.org>
1424 * params.def (PARAM_MAX_SCHED_REGION_BLOCKS): New.
1425 (PARAM_MAX_SCHED_REGION_INSNS): New.
1426 * sched-rgn.c: Include params.h
1427 (MAX_RGN_BLOCKS): Delete.
1428 (MAX_RGN_INSNS): Delete.
1429 (too_large): Return bool. Convert to PARAM_VALUE.
1430 * Makefile.in (sched-rgn.o): Depend on $(PARAMS_H).
1431 * doc/invoke.texi (param): Document max-sched-region-blocks and
1432 max-sched-region-insns.
1434 2004-03-22 Joel Brobecker <brobecker@gnat.com>
1436 * dwarf2out.c (is_subrange_type): Do not emit a subrange_type DIE
1439 2004-03-22 Joel Brobecker <brobecker@gnat.com>
1441 * dwarf2out.c (is_subrange_type): Minor code rework. No behavior
1444 2004-03-22 Jakub Jelinek <jakub@redhat.com>
1447 * c-decl.c (finish_struct): Change type of incorrect flexible array
1448 field into error_mark_node.
1450 2004-03-22 Andrew Pinski <pinskia@physics.uc.edu>
1453 * config/rs6000/rs6000.c (symbol_ref_operand): Reject symbols
1454 who are not local for Darwin PIC.
1456 2004-03-22 Ulrich Weigand <uweigand@de.ibm.com>
1458 * regrename.c (regrename_optimize): Set regs_ever_live for all
1459 registers introduced as replacement.
1461 2004-03-22 Eric Botcazou <ebotcazou@libertysurf.fr>
1464 * expr.c (mark_queue): New function.
1465 (emit_insns_enqueued_after_mark): New function replacing
1466 emit_queue. Clear the body of emitted queued insns.
1467 (emit_queue): Call emit_insns_enqueued_after_mark.
1468 (store_expr): Mark the increment queue on entry. Emit
1469 only the incrementations queued when expanding the source.
1471 2004-03-22 Nathanael Nerode <neroden@gcc.gnu.org>
1473 * configure.ac: Allow --disable-coverage-flags (for the future benefit
1474 of top level bootstrap, and consistency). Reindent.
1475 * configure: Regenerate.
1477 2004-03-21 Kazu Hirata <kazu@cs.umass.edu>
1479 * bt-load.c, builtins.c, cfghooks.c, cfgrtl.c, gcse.c,
1480 ggc-page.c, integrate.c, var-tracking.c, web.c: Remove
1483 2004-03-22 Danny Smith <dannysmith@users.sourceforge.net>
1486 * gcov-io.h (gcov_truncate): Define ftruncate as _chsize for
1489 2004-03-21 Ulrich Weigand <uweigand@de.ibm.com>
1491 * config/s390/s390.md ("*doloop_si"): Change predicate for operand 2
1492 to nonimmediate_operand.
1493 ("*doloop_di"): Likewise.
1495 2004-03-21 Alexandre Oliva <aoliva@redhat.com>
1497 * real.h (struct real_value): Use the same type for all
1498 bitfields. Rename exp to uexp.
1499 (REAL_EXP, SET_REAL_EXP): New accessor macros for uexp.
1500 Adjust all uses of exp...
1501 * builtins.c: ... here, ...
1502 * emit-rtl.c: ... here, and ...
1503 * real.c: ... and here.
1505 2004-03-21 Gabriel Dos Reis <gdr@integrable-solutions.net>
1507 * pretty-print.c (pp_base_maybe_space): New function.
1508 * pretty-print.h (pp_base_maybe_space): Declare.
1509 (pp_maybe_space): New macro.
1511 2004-03-21 Ulrich Weigand <uweigand@de.ibm.com>
1513 * config/s390/s390.md ("addti3", "subti3"): New insns and splitters.
1515 2004-03-21 Ulrich Weigand <uweigand@de.ibm.com>
1517 * expmed.c (choose_mult_variant): Pass MULT_COST as argument instead
1518 of using register multiplication cost.
1519 (expand_mult): Adapt choose_mult_variant call.
1520 (expand_mult_highpart): Call choose_mult_variant with WIDER_MODE
1521 of MODE; pass appropriate cost bound. Adjust result when
1522 performing signed multiplication by a negative constant.
1523 Don't use intermediate modes larger than word_mode.
1525 2004-03-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1527 * alias.c (get_alias_set): Remove handling of PLACEHOLDER_EXPR.
1528 * emit-rtl.c (component_ref_for_mem_expr): Likewise.
1529 (set_mem_attributes_minus_bitpos): Call SUBSTITUTE_PLACEHOLDER_IN_EXPR.
1530 * explow.c (expr_size): Likewise.
1531 * expr.h (placeholder_list, find_placeholder): Deleted.
1532 * expr.c (store_constructor): Likewise.
1533 (get_inner_reference): Likewise. Also don't call find_placeholder.
1534 (placeholder_list, find_placeholder): Deleted.
1535 (is_aligning_offset): Don't handle WITH_RECORD_EXPR, PLACEHOLDER_EXPR.
1536 (expand_expr_real, cases PLACEHOLDER_EXPR, WITH_RECORD_EXPR): Likewise.
1537 (highest_pow2_factor, case WITH_RECORD_EXPR): Remove.
1538 * dojump.c (do_jump, case WITH_RECORD_EXPR): Likewise.
1539 * dwarf2out.c (loc_descriptor_from_tree, case WITH_RECORD_EXPR):
1541 * fold-const.c (invert_truthvalue, case WITH_RECORD_EXPR): Likewise.
1542 (extract_muldiv, case WITH_RECORD_EXPR): Likewise.
1543 * tree.c (expr_align, case WITH_RECORD_EXPR): Likewise.
1544 (contains_placeholder_p): Don't handle WITH_RECORD_EXPR.
1545 Clean up by using first_rtl_op.
1546 (substitute_in_expr): Use SUBSTITUTE_IN_EXPR for recursive call.
1547 (substitute_placeholder_in_expr): New function.
1548 * tree.def (WITH_RECORD_EXPR): Deleted.
1549 * tree.h (SUBSTITUTE_IN_EXPR, SUBSTITUTE_PLACEHOLDER_IN_EXPR): New.
1550 (substitute_placeholder_in_expr): New.
1552 2004-03-21 Andrew Pinski <pinskia@gcc.gnu.org>
1554 * dojump.c (prefer_and_bit_test): Fix which part of
1555 the and_test is replaced.
1557 2004-03-21 Joseph S. Myers <jsm@polyomino.org.uk>
1559 * frontends.texi: Add missing line.
1561 2004-03-21 Zack Weinberg <zack@codesourcery.com>
1562 Chris Devers <cdevers@pobox.com>
1563 Joseph S. Myers <jsm@polyomino.org.uk>
1565 * doc/frontends.texi: Rewrite.
1566 * doc/gcc.texi: Update last modification date.
1568 2004-03-21 Josef Zlomek <zlomekj@suse.cz>
1570 * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Print the debug
1571 message before redirecting the edge.
1573 2004-03-20 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1575 * emit-rtl.c (set_mem_attributes_minus_bitpos): Set MEM_POINTER
1577 * explow.c (force_not_mem): Set REG_POINTER flag according to
1579 * rtl.h (MEM_POINTER): New macro.
1580 (struct rtx_def): Use integrated for MEM_SCALAR_P and frame_related
1583 2004-03-20 Roger Sayle <roger@eyesopen.com>
1586 * cse.c (fold_rtx): Avoid substituting constants into unary
1587 conversion operations.
1589 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
1591 * fold-const.c (fold): Replace "expr" with "t".
1593 2004-03-20 Ian Lance Taylor <ian@wasabisystems.com>
1596 * c-typeck.c (tagged_types_tu_compatible_p): Don't use
1597 DECL_ORIGINAL_TYPE if there isn't one.
1599 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
1601 * fold-const.c (fold): Replace "final_type" with "type".
1602 Remove variable "final_type".
1604 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
1606 * fold-const.c (fold): Constify "type".
1607 Replace "TREE_TYPE (t)" with "type".
1609 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
1611 * bb-reorder.c, bt-load.c, c-decl.c, cfgcleanup.c, coverage.c,
1612 dwarf2asm.c, ifcvt.c, stor-layout.c, varasm.c: Replace calls
1613 via (*targetm.foo) () with targetm.foo ().
1615 2004-03-20 Joseph S. Myers <jsm@polyomino.org.uk>
1618 * doc/install.texi: Add info directory category and entry.
1620 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
1622 * fold-const.c (fold): Replace "t" with "tem" where it is used
1623 as a temporary variable. Remove "orig_t" and all of its uses.
1625 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
1627 * fold-const.c (fold): Remove variable "invert".
1628 Move the handling of relational expressions that can be folded
1630 (fold_relational_const): ... here.
1631 (tree_expr_nonzero_p): New.
1633 2004-03-20 Joseph S. Myers <jsm@polyomino.org.uk>
1636 * builtins.def (nan, nanf, nanl, nans, nansf, nansl): Change to
1639 2004-03-20 Richard Sandiford <rsandifo@redhat.com>
1641 * Makefile.in (dojump.o): Depend on $(GGC_H) and dojump.h.
1642 (GTFILES): Add $(srcdir)/dojump.h.
1643 (gt-dojump.h): New dependency.
1644 * dojump.c (and_reg, and_test, shift_test): New static variables.
1645 (prefer_and_bit_test): New function.
1646 (do_jump): Use it to choose between (X & (1 << C)) and (X >> C) & 1.
1648 2004-03-20 Kazu Hirata <kazu@cs.umass.edu>
1650 * c-common.c, cfgcleanup.c, cgraphunit.c, c-pretty-print.c,
1651 expmed.c, ggc-common.c, jump.c, passes.c, recog.c, regmove.c,
1652 reorg.c, tree.h: Fix comment typos.
1654 2004-03-19 Kazu Hirata <kazu@cs.umass.edu>
1656 * alias.c, attribs.c, bt-load.c, builtins.c, c-common.c,
1657 c-decl.c, c-objc-common.c, c-typeck.c, calls.c, cfglayout.c,
1658 cse.c, dbxout.c, dwarf2out.c, except.c, final.c,
1659 haifa-sched.c, integrate.c, passes.c, rtlanal.c, sched-rgn.c,
1660 sched-vis.c, simplify-rtx.c, stor-layout.c, tree.c, varasm.c,
1661 vmsdbgout.c: Replace calls via (*targetm.foo) () with
1664 2004-03-19 Ziemowit Laski <zlaski@apple.com>
1666 * config/rs6000/altivec.h (vec_dst, vec_dstst, vec_dststt,
1667 vec_dstt, vec_sld, vec_splat): Add prototypes, marked with
1668 always_inline attribute.
1669 * config/rs6000/rs6000.c (altivec_expand_dst_builtin):
1670 Treat expansion as completed even if literal argument is
1671 invalid (so that other expansions are not tried in vain).
1673 2004-03-19 Kazu Hirata <kazu@cs.umass.edu>
1675 * loop-doloop.c (add_test): Replace GEN_INT (0) with
1678 2004-03-19 Kazu Hirata <kazu@cs.umass.edu>
1680 * fold-const.c (fold) <ABS_EXPR>: Move the handling of constants
1682 (fold_abs_const): ... here.
1684 2004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1686 * tree.h (TYPE_ARRAY_MAX_SIZE): Use type.maxval directly.
1688 2004-03-19 Denis Chertykov <denisc@overta.ru>
1691 * config/avr/avr.md ("call_insn"): Handle explicit integer
1693 (call_value_insn): Likewise.
1695 2004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1697 * tree.c (substitute_in_expr): Rewrite to simplify and be more generic.
1699 2004-03-19 Kazu Hirata <kazu@cs.umass.edu>
1701 * fold-const.c (negate_expr): Move the handling of constants
1703 (fold_negate_const): ... here.
1705 2004-03-19 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1707 * langhooks-def.h (LANG_HOOKS_HASH_TYPES): New macro and hook.
1708 * langhooks.h (struct lang_hooks_for_types): New field hash_types.
1709 * tree.c (debug_no_type_hash): Deleted.
1710 (type_hash_canon): Abort if passed a variant.
1711 Check lang_hooks.types.hash_types.
1712 (build_type_no_quals): Copy mode of POINTER_TYPE and REFERENCE_TYPE.
1713 (build_array_type): Remove unnecessary allocation of pointer type.
1714 (build_complex_type): Properly qualify resulting type.
1716 2004-03-19 Paolo Bonzini <bonzini@gnu.org>
1718 * config/rs6000/rs6000.c (rs6000_init_builtins): Fix typo.
1720 2004-03-19 Richard Sandiford <rsandifo@redhat.com>
1722 * expmed.c (choose_mult_variant, expand_mult_const): New, split from...
1723 (expand_mult): ...here.
1724 (extract_high_half): New, split out from expand_mult_highpart.
1725 (expand_highpart_optab): Likewise. Don't clobber target prematurely.
1726 (expand_highpart): Evaluate the cost of a shift/add sequence,
1727 then see if any of the specialized optabs are cheaper.
1729 2004-03-18 Ian Lance Taylor <ian@wasabisystems.com>
1731 * mklibgcc.in: Remove obsolete MAYBE_USE_COLLECT2.
1733 2004-03-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1735 * convert.c (convert_to_real): Add more math builtins.
1737 2004-03-18 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1739 * convert.c (convert_to_real): Reformat using switch stmt.
1741 2004-03-18 Mark Mitchell <mark@codesourcery.com>
1743 * c-common.c (pointer_int_sum): Do not complain about using
1744 pointers to pointers-to-members.
1746 2004-03-18 Kazu Hirata <kazu@cs.umass.edu>
1748 * system.h (MD_ASM_CLOBBERS): Move to "Old target macros that
1749 have moved to the target hooks structure".
1751 2004-03-18 James E Wilson <wilson@specifixinc.com>
1753 * config/mips/mips.md (type): Split move into arith and fmove. Split
1754 hilo into mthilo and mfhilo. Add trap. Delete icmp. Fix all uses.
1755 * config/mips/5400.md (ir_vr54_hilo, ir_vr54_arith, ir_vr54_fabs):
1757 * config/mips/5500.md (ir_vr55_hilo, ir_vr55_arith, ir_vr55_fabs):
1759 * config/mips/7000.md (rm7_int_other, rm7_mthilo, rm7_mfhilo,
1760 rm7_fp_quick): Likewise.
1761 * config/mips/9000.md (rm9k_int, rm9k_mfhilo, rm9k_mthilo,
1762 rm9k_fquick): Likewise.
1763 * config/mips/sr71k.md (ir_sr70_hilo, ir_sr70_arith, ir_sr70_fabs):
1765 (ir_sr70_icmp): Delete.
1767 2004-03-18 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
1769 * tree.h (TREE_CHECK2, TREE_CHECK3, TREE_CHECK5): New macros.
1770 (tree_check2_failed, tree_check3_failed, tree_check5_failed): New decl.
1771 (FUNC_OR_METHOD_CHECK, SET_ARRAY_OR_VECTOR_CHECK): New macros.
1772 (REC_OR_UNION_CHECK, NUMERICAL_TYPE_CHECK): Likewise.
1773 (TYPE_VALUES, TYPE_DOMAIN, TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD):
1774 Protect with proper check.
1775 (TYPE_ARG_TYPES, TYPE_METHOD_BASETYPE, TYPE_OFFSET_BASETYPE): Likewise.
1776 (TYPE_MIN_VALUE, TYPE_MAX_VALUE): Likewise.
1777 * tree.c (type_hash_eq): Rewrite to access proper fields for each type.
1778 (tree_check2_failed, tree_check3_failed, tree_check5_failed): New.
1779 * c-typeck.c (build_array_ref): Use TYPE_DOMAIN, not TYPE_VALUES.
1780 * dwarf2out.c (gen_enumeration_type_die): Use TYPE_VALUES,
1782 * stor-layout.c (set_sizetype): Use TYPE_ORIG_SIZE_TYPE.
1784 2004-03-18 Mostafa Hagog <mustafa@il.ibm.com>
1786 * gcse.c (eliminate_partially_redundant_loads): Reject change if
1787 dest is set between beginning and current insn.
1789 2004-03-18 Mark Mitchell <mark@codesourcery.com>
1791 * c-decl.c (grokdeclarator): Do not complain about redeclaring
1792 visible "static" identifiers "extern" in a local scope.
1793 * dwarf2out.c (loc_descriptor_from_tree): Handle pre- and
1794 post-increments/decrements.
1796 2004-03-18 Bob Wilson <bob.wilson@acm.org>
1798 * config/xtensa/xtensa.c (current_function_arg_words): Delete.
1799 (xtensa_builtin_saveregs): Use current_function_args_info.arg_words.
1800 (xtensa_va_start): Remove assignment to current_function_arg_words.
1802 2004-03-18 Richard Sandiford <rsandifo@redhat.com>
1804 * alias.c (record_set): Detect the case where a register is assigned
1805 a new value that has the same base term as the old one.
1807 2004-03-18 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
1809 * doloop.c: Removed.
1810 * loop-doloop.c: New file.
1811 * Makefile.in (doloop.o): Remove.
1812 (loop-doloop.o): New.
1813 * cfgloop.h (get_loop_level, doloop_optimize_loops): Declare.
1814 * cfgloopanal.c (get_loop_level): New function.
1815 * loop-iv.c (iv_number_of_iterations): Handle case when loop
1816 is leaved immediatelly.
1817 * loop.c (strength_reduce): Do not call doloop optimization.
1818 * loop.h (LOOP_BCT): Removed.
1819 * passes.c (rest_of_handle_loop_optimize): Do not use LOOP_BCT.
1820 (rest_of_handle_loop2): Call doloop_optimize_loops.
1821 (rest_of_compilation): Test for optimizations moved to
1822 rest_of_handle_loop2.
1824 2004-03-17 Fariborz Jahanian <fjahanian@apple.com>
1826 * config/rs6000/rs6000.c (rs6000_stack_info): correct reg_size
1828 (rs6000_emit_prologue): Ditto.
1829 (rs6000_emit_epilogue): Ditto.
1830 * config/rs6000/rs6000.h: Definition of DWARF_CIE_DATA_ALIGNMENT
1831 macro for mixed mode.
1833 2004-03-18 Jan Hubicka <jh@suse.cz>
1835 * predict.c (propagate_freq): Compute correctly frequency of
1838 2004-03-17 Eric Christopher <echristo@redhat.com>
1840 * builtins.c (apply_args_size): Use reg_raw_mode.
1841 (apply_result_size): Ditto.
1843 2004-03-17 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
1846 * config/rtems.h: Add STD_LIB_SPEC and LIB_SPEC.
1848 2004-03-17 Jakub Jelinek <jakub@redhat.com>
1850 * config/rs6000/t-linux64 (bispecs): Don't add -mlong-double-128 for
1851 32-bit builds when defaulting to 32-bit.
1853 2004-03-17 Jan Hubicka <jh@suse.cz>
1855 * cfgrtl.c (rtl_create_basic_block): Pre-allocate basic_block_info
1858 2004-03-17 James E Wilson <wilson@specifixinc.com>
1860 * config/mips/mips.md (zero_extendsidi2): Add length attribute.
1861 (hazard_nop): Change type to nop.
1862 (type): Split arith into arith, shift, slt, clz. Delete darith.
1863 Fix all uses. Change arith to multi if more than one insn emitted.
1864 * config/mips/5400.md (ir_vr54_arith): Likewise.
1865 * config/mips/5500.md (ir_vr55_arith): Likewise.
1866 * config/mips/7000.md (rm7_int_other): Likewise.
1867 * config/mips/9000.md (rm9k_int): Likewise.
1868 * config/mips/sr71k.md (ir_sr70_arith): Likewise.
1870 2004-03-17 Joel Brobecker <brobecker@gnat.com>
1872 * dwarf2out.c (subrange_type_die): Define new variable "subtype"
1873 to hold the subtype tree instead of recomputing it several times.
1875 2004-03-17 Kazu Hirata <kazu@cs.umass.edu>
1877 * config/mn10300/mn10300.c (notice_update_cc): Don't handle
1879 * config/mn10300/mn10300.md (cc): Remove "invert".
1881 2004-03-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
1883 * builtins.c (integer_valued_real_p): Add builtin rint.
1884 (fold_builtin): Likewise.
1885 * convert.c (convert_to_real): Likewise.
1887 * convert.c (convert_to_real): Fix typos in `long double'
1890 2004-03-16 Mark Mitchell <mark@codesourcery.com>
1893 * fold-const.c (fold): Set TREE_NO_UNUSED_WARNING on implicitly
1894 generated COMPOUND_EXPRs.
1896 2004-03-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
1898 * config/h8300/t-rtems (h8300-*-rtems*): New.
1900 2004-03-16 Eric Christopher <echristo@redhat.com>
1902 * doc/cppopts.texi(fwide-exec-charset): Fix typo.
1904 2004-03-16 Kazu Hirata <kazu@cs.umass.edu>
1906 * config/i386/i386-protos.h: Add a prototype for
1907 ix86_reverse_condition.
1908 * config/i386/i386.c (ix86_reverse_condition): New.
1909 * config/i386/i386.h (REVERSE_CONDITION): Use
1910 ix86_reverse_condition.
1911 * config/i386/i386.md: Use ix86_reverse_condition instead of
1914 2004-03-16 J. Brobecker <brobecker@gnat.com>
1916 * dwarf2out.c (loc_descriptor_from_tree): Add handling for MIN_EXPR.
1918 2004-03-16 Nathanael Nerode <neroden@gcc.gnu.org>
1921 * Makefile.in: Pass $(INCLUDES) down to libgcc.mk explicitly.
1923 2004-03-16 Paolo Bonzini <bonzini@gnu.org>
1925 * c-common.c (c_common_type_for_mode): Build vector types on
1927 (handle_mode_attribute): Deprecate using the mode attribute
1928 to create vector types. Fix indentation.
1929 (vector_type_node_list): Remove.
1930 (handle_vector_size_attribute): Create vector types on demand.
1931 Strip a NON_LVALUE_EXPR from the attribute if there is one.
1932 * c-typeck.c (comptypes): Make vector types compatible if they
1933 have the same underlying mode.
1934 (convert_for_assignment): Use comptypes to convert between
1936 * tree.c (build_common_tree_nodes_2): Do not create vector types.
1937 * config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
1939 * tree.h: Remove vector types.
1940 * config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
1941 * config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
1942 (V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
1943 V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
1944 * doc/extend.texi (Vector Types): Document how to use the
1945 vector_size attribute to create vectors, rather than mode.
1947 * config/arm/mmintrin.h: Use vector_size attribute, not mode.
1948 * config/i386/emmintrin.h: Likewise.
1949 * config/i386/mmintrin.h: Likewise.
1950 * config/i386/xmmintrin.h: Likewise.
1951 * config/sh/ushmedia.h: Likewise.
1953 2004-03-16 Kazu Hirata <kazu@cs.umass.edu>
1955 * config/freebsd-spec.h, config/arc/arc-protos.h,
1956 config/arm/aout.h, config/arm/elf.h, config/arm/freebsd.h,
1957 config/arm/linux-gas.h, config/arm/semi.h,
1958 config/cris/cris-protos.h, config/i386/xm-djgpp.h,
1959 config/ia64/freebsd.h, config/mips/7000.md,
1960 config/mips/9000.md, config/ns32k/ns32k-protos.h,
1961 config/sparc/pbd.h: Update copyright.
1963 2004-03-16 Ralf Corsepius <corsepiu@faw.uni-ulm.de>
1966 * config.gcc: Switch sh-*-rtems* to ELF. Add sh-*-rtemscoff.
1968 2004-03-16 Paolo Bonzini <bonzini@gnu.org>
1970 * combine.c (combine_simplify_rtx): Remove the "last"
1971 parameter and its documentation. Adjust recursive calls.
1972 (simplify_logical): Always perform the only simplification
1973 controlled by "last", if the simplified expression is
1975 (try_combine): Do not pass the "last" parameter to
1976 combine_simplify_rtx.
1978 2004-03-16 Richard Sandiford <rsandifo@redhat.com>
1981 * config/mips/mips.md (UNSPEC_GP): New constant.
1982 * config/mips/mips.c (CONST_GP_P): Expect the CONST to contain
1983 an UNSPEC instead of (reg $gp).
1984 (mips16_gp_pseudo_reg): Change accordingly.
1985 (print_operand): Print $gp directly when handling CONST_GP_P.
1987 2004-03-16 Richard Zidlicky <rz@linux-m68k.org>
1989 * config.gcc, config/m68k/linux.h: Implement with-cpu for m68k-linux.
1990 * longlong.h: Make code 68060 clean when compiling for m68060.
1992 2004-03-16 Richard Zidlicky <rz@linux-m68k.org>
1994 * config/m68k/m68k.md: Fix constraints for bitfield instructions.
1995 * doc/md.texi: Clarify description of "i" constraint.
1997 2004-03-15 James E Wilson <wilson@specifixinc.com>
1999 * config/mips/mips.md (type): Split load into load, fpload, fpidxload.
2000 Split store into store, fpstore, fpidxstore. Fix all uses.
2001 * config/mips/5400.md (ir_vr54_load, ir_vr54_store, ir_vr54_fstore):
2003 * config/mips/5500.md (ir_vr55_load, i5_vr55_store): Likewise.
2004 * config/mips/7000.md (rm7_ld, rm7_st): Likewise.
2005 * config/mips/9000.md (rm9k_load, rm9k_store): Likewise.
2006 * config/mips/sr71k.md (ir_sr70_load, ir_sr70_store, ir_sr70_fload,
2007 ir_sr70_fstore): Likewise.
2009 2004-03-15 Richard Henderson <rth@redhat.com>
2012 * except.c (collect_one_action_chain): Record action for cleanup
2013 outer of exception spec.
2015 2004-03-15 Ian Lance Taylor <ian@wasabisystems.com>
2017 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
2018 Fix the check for abort and only do the mmap if we can.
2020 2004-03-15 Eric Botcazou <ebotcazou@act-europe.fr>
2022 * config/sparc/sparc.h: Rework comments about the code model
2023 in 64-bit environment and the mode 'Pmode'.
2024 * doc/invoke.texi (SPARC options): Rework description of the
2025 different code models supported in 64-bit environment.
2027 2004-03-15 Kazu Hirata <kazu@cs.umass.edu>
2029 * defaults.h (REVERSIBLE_CC_MODE): Define.
2030 * jump.c (reversed_comparison_code_parts): Don't check if
2031 REVERSIBLE_CC_MODE is defined.
2033 2004-03-15 Kazu Hirata <kazu@cs.umass.edu>
2035 * c-incpath.c, c-incpath.h, c-pch.c, c.opt, cppexp.c,
2036 et-forest.h, genattr.c, ggc-none.c, hosthooks-def.h,
2037 hosthooks.h, params.h, ra-colorize.c, web.c,
2038 config/darwin-c.c, config/alpha/freebsd.h, config/arm/pe.c,
2039 config/avr/avr-protos.h, config/avr/avr.md,
2040 config/fr30/fr30-protos.h, config/fr30/fr30.md,
2041 config/h8300/fixunssfsi.c, config/i386/darwin.h,
2042 config/i386/freebsd.h, config/i386/freebsd64.h,
2043 config/ia64/hpux.h, config/ia64/unwind-ia64.c,
2044 config/ip2k/libgcc.S, config/m32r/xm-m32r.h,
2045 config/mmix/mmix-modes.def, config/ns32k/netbsd.h,
2046 config/ns32k/ns32k.md, config/pa/pa64-hpux.h,
2047 config/pa/pa64-regs.h, config/rs6000/aix41.h,
2048 config/rs6000/aix43.h, config/rs6000/host-darwin.c,
2049 config/sparc/aout.h, config/sparc/freebsd.h,
2050 config/sparc/litecoff.h, config/vax/vax-protos.h,
2051 doc/hostconfig.texi, doc/include/gcc-common.texi: Update
2054 2004-03-15 Paul Brook <paul@codesourcery.com>
2056 * config/arm/arm.c (thumb_expand_prologue): Tie prologue insns to fp.
2058 2004-03-15 Gabriel Dos Reis <gdr@integrable-solutions.net>
2060 * c-pretty-print.c (pp_c_semicolon): Fix formatting.
2061 (pp_c_cv_qualifier): Document.
2062 (pp_c_space_for_pointer_operator): Likewise.
2063 (pp_c_integer_constant): Likewise.
2064 (pp_c_identifier): Likewise.
2065 (pp_c_init_declarator): Don't print function body.
2067 2004-03-14 Joseph S. Myers <jsm@polyomino.org.uk>
2069 * doc/contrib.texi, doc/extend.texi, doc/gcov.texi,
2070 doc/install.texi, doc/invoke.texi, doc/makefile.texi,
2071 doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: Capitalize
2072 "gcc", "g++" and "g77" or mark up with appropriate markup. Adjust
2073 wording and grammar.
2075 2004-03-14 Roger Sayle <roger@eyesopen.com>
2077 * alias.c (get_alias_set): Replace calls via (*lang_hooks.foo) ()
2078 with lang_hooks.foo ().
2079 * builtins.c (expand_builtin_va_arg): Likewise.
2080 * c-common.c (fname_as_string, c_common_truthvalue_conversion,
2081 c_common_type_for_mode, c_common_nodes_and_builtins,
2082 handle_mode_attribute, handle_vector_size_attribute): Likewise.
2083 * c-convert.c (convert): Likewise.
2084 * c-format.c (check_format_types): Likewise.
2085 * c-objc-common.c (c_tree_printer): Likewise.
2086 * c-typeck.c (build_unary_op, build_conditional_expr,
2087 build_binary_op): Likewise.
2088 * calls.c (try_to_integrate, expand_call,
2089 emit_library_call_value_1): Likewise.
2090 * cgraph.c (cgraph_node_name, cgraph_function_possibly_inlined_p):
2092 * cgraphunit.c (record_call_1, cgraph_analyze_function,
2093 cgraph_expand_function): Likewise.
2094 * convert.c (convert_to_pointer, convert_to_integer): Likewise.
2095 * coverage.c (build_fn_info_type, build_ctr_info_type,
2096 build_gcov_info, create_coverage): Likewise.
2097 * dbxout.c (dbxout_init): Likewise.
2098 * diagnostic.c (diagnostic_report_current_function): Likewise.
2099 * dojump.c (do_jump): Likewise.
2100 * dwarf2out.c (dwarf2_name): Likewise.
2101 * except.c (init_eh): Likewise.
2102 * explow.c (expr_size, int_expr_size): Likewise.
2103 * expmed.c (make_tree, const_mult_add_overflow_p, expand_mult_add):
2105 * expr.c (store_expr, store_constructor, safe_from_p,
2106 expand_expr_real, do_store_flag, try_casesi): Likewise.
2107 * function.c (push_function_context_to, pop_function_context_from,
2108 free_after_parsing, assign_stack_local_1, assign_stack_temp_for_type,
2109 put_var_into_stack, allocate_struct_function, current_function_name):
2111 * integrate.c (copy_decl_for_inlining, expand_inline_function):
2113 * langhooks.c (lhd_clear_binding_stack, write_global_declarations,
2114 lhd_print_error_function): Likewise.
2115 * opts.c (handle_option, decode_options): Likewise.
2116 * passes.c (open_dump_file): Likewise.
2117 * print-tree.c (print_node): Likewise.
2118 * stmt.c (expand_fixup, fixup_gotos, expand_asm_operands,
2119 expand_decl_cleanup, emit_case_nodes): Likewise.
2120 * stor-layout.c (variable_size): Likewise.
2121 * toplev.c (announce_function, wrapup_global_declarations,
2122 check_global_declarations, compile_file, default_tree_printer,
2123 process_options, lang_dependent_init, finalize): Likewise.
2124 * tree-dump.c (dequeue_and_dump): Likewise.
2125 * tree-inline.c (remap_decl, remap_block, copy_body_r,
2126 initialize_inlined_parameters, declare_return_variable,
2127 inlinable_function_p, expand_call_inline, optimize_inline_calls,
2128 walk_tree, copy_tree_r): Likewise.
2129 * tree-optimize.c (tree_rest_of_compilation): Likewise.
2130 * tree.c (decl_assembler_name, tree_size, size_in_bytes, staticp,
2131 unsafe_for_reeval, get_unwidened, get_narrower, get_callee_fndecl,
2132 variably_modified_type_p, dump_tree_statistics): Likewise.
2133 * varasm.c (assemble_variable, compare_constant, copy_constant,
2134 force_const_mem, compute_reloc_for_constant, output_constant,
2135 output_addressed_constants, initializer_constant_valid_p): Likewise.
2137 2004-03-14 Kelley Cook <kcook@gcc.gnu.org>
2139 * doc/install.texi: Make autoconf 2.13 the exception, not the rule.
2141 2004-03-14 Andreas Tobler <a.tobler@schweiz.ch>
2143 * doc/install.texi: Reflect autoconf and automake version for
2144 libffi. Update autoconf version to 2.59.
2146 2004-03-13 Roger Sayle <roger@eyesopen.com>
2148 * fold-const.c (negate_expr, operand_equal_for_comparison_p,
2149 optimize_bit_field_compare, decode_field_reference, all_ones_mask_p,
2150 make_range, build_range_check, fold_range_test, unextend,
2151 constant_boolean_node, fold_binary_op_with_conditional_arg,
2152 fold_truthop, fold_mathfn_compare, fold_inf_compare,
2153 fold_single_bit_test, fold): Replace calls via (*lang_hooks.foo) ()
2154 with lang_hooks.foo ().
2156 2004-03-14 Richard Earnshaw <rearnsha@arm.com>
2158 * arm.h (EXTRA_CONSTRAINT_STR_ARM): Update comment.
2160 2004-03-13 Dara Hazeghi <dhazeghi@yahoo.com>
2162 * doc/install.texi: Note status of -fnew-ra.
2164 2004-03-13 Eric Botcazou <ebotcazou@libertysurf.fr>
2167 * expr.c (store_expr): Call emit_queue before generating the move
2168 from the temporary to the original target. Protect the temporary
2171 2004-03-13 Jakub Jelinek <jakub@redhat.com>
2174 * config/s390/s390.c (legitimize_pic_address): Don't abort on UNSPEC
2175 other than UNSPEC_GOTOFF.
2177 2004-03-13 Richard Earnshaw <rearnsha@arm.com>
2179 * arm.c (arm_legitimate_address_p): New argument, OUTER. Pass through
2180 to arm_legitimate_index_p. Update all callers with SET as default
2182 (arm_legitimate_index_p): New argument, OUTER. Restrict the index
2183 range if OUTER is a sign-extend operation on QImode. Correctly
2184 reject shift operations on sign-extended QImode addresses.
2185 (bad_signed_byte_operand): Delete.
2186 (arm_extendqisi_mem_op): New function.
2187 * arm.h (EXTRA_CONSTRAINT_ARM): Delete. Replace with...
2188 (EXTRA_CONSTRAINT_STR_ARM): ... this. Handle extended address
2190 (CONSTRAINT_LEN): New.
2191 (EXTRA_CONSTRAINT): Delete. Replace with...
2192 (EXTRA_CONSTRAINT_STR): ... this.
2193 (PREDICATE_CODES): Remove bad_signed_byte_operand.
2194 * arm.md (extendqihi_insn): Use new constraint Uq. Rework. Length
2195 is now always default.
2196 (define_splits for bad sign-extend loads): Delete.
2197 (arm_extendqisi, arm_extendqisi_v5): Likewise.
2198 * arm/vfp.md (arm_movsi_vfp, arm_movdi_vfp, movsf_vfp, movdf_vfp):
2199 Rework 'U' constraint to 'Uv'.
2200 * arm-protos.h: Remove bad_signed_byte_operand. Add
2201 arm_extendqisi_mem_op.
2202 * doc/md.texi (ARM constraints): Rename VFP constraint (now Uv).
2205 2004-03-13 Alan Modra <amodra@bigpond.net.au>
2207 * config/rs6000/rs6000.c (rs6000_va_arg): Replace SPLIT_COMPLEX_ARGS
2208 with targetm version.
2211 * config/rs6000/rs6000.h (UNITS_PER_ARG, RS6000_ARG_SIZE): Delete.
2212 (HARD_REGNO_MODE_OK): Disallow TFmode for fp31.
2213 * config/rs6000/rs6000.c (rs6000_arg_size): New function.
2214 Update all users of RS6000_ARG_SIZE.
2215 (function_arg_advance): Count fregno using mode size.
2216 (function_arg): Handle long double split over regs and memory.
2217 (function_arg_partial_nregs): Likewise.
2218 (rs6000_va_arg): Repackage complex args.
2220 2004-03-13 Dean Ferreyra <dferreyra@igc.org>
2223 * config/avr/avr.c (avr_progmem_p): Add "attributes" parameter.
2224 (avr_insert_attributes): Pass "attributes" to avr_progmem_p.
2225 * config/avr/avr-protos.h (avr_progmem_p): Change prototype.
2227 2004-03-12 Jakub Jelinek <jakub@redhat.com>
2229 * config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Add
2231 * config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): New.
2232 * config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Define.
2234 2003-03-12 Andrew Pinski <apinski@apple.com>
2236 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_use_address):
2237 Use ret instead of result. Use addr instead of base.
2239 2004-03-12 David Edelsohn <edelsohn@gnu.org>
2241 * doc/install.texi (*-ibm-aix*): Document assembler and achiver
2242 fixes required by libstdc++ and update installation instructions
2245 2004-03-12 Danny Smith <dannysmith@users.sourceforge.net>
2247 * config/i386/winnt.c (i386_pe_strip_name_encoding_full): Strip
2248 leading '@' on fastcall symbols before stripping suffix.
2250 2004-03-12 Roger Sayle <roger@eyesopen.com>
2252 * combine.c (unmentioned_reg_p): New function to check whether an
2253 expression is a "specialization" of another, i.e. that there are
2254 no registers or memory references mentioned in the first that don't
2255 appear in the second.
2256 (unmentioned_reg_p_1): New helper subroutine of unmentioned_reg_p.
2257 (combine_instructions): Also try combining instructions using the
2258 REG_EQUAL note from a preceding log-linked instruction.
2260 2004-03-12 Roger Sayle <roger@eyesopen.com>
2262 * config/i386/i386.c (ix86_split_ashrdi): Optimize shift by 63.
2264 2004-03-12 Matt Austern <austern@apple.com>
2266 * target.h (struct gcc_target): New target hook, unwind_label.
2267 * target-def.h (TARGET_ASM_EMIT_UNWIND_LABEL): New hook.
2268 * output.h (default_emit_unwind_label): New function.
2269 * default.h (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): New macro.
2270 (TARGET_USES_WEAK_UNWIND_INFO): New target macro.
2271 (TARGET_SUPPORTS_HIDDEN): New target macro.
2272 * dwarf2out.c (struct dw_fde_struct): Add field for function decl
2273 that corresponds to this FDE.
2274 (FRAME_BEGIN_LABEL): Allow target to override default label.
2275 (output_call_frame_info): If FDEs are linknonce, then use extra
2276 indirection for FDE encoding, output a label for each FDE, and
2277 output an empty label for each function without an FDE.
2278 (dwarf2out_begin_prologue): Set up decl field when creating an FDE.
2279 * varasm.c (globalize_decl): Call ASM_MAKE_LABEL_LINKONCE for
2280 decls with DECL_ONE_ONLY set, if that macro is defined.
2281 (make_decl_one_only): Don't use DECL_COMMON if we're compiling
2282 for a SUPPORTS_ONE_ONLY target.
2283 * config/darwin-protos.h (darwin_unique_section): Declare.
2284 (darwin_asm_named_section): Likewise.
2285 (darwin_section_type_flags): Likewise.
2286 (darwin_non_lazy_pcrel): Likewise.
2287 (darwin_emit_unwind_label): Likewise.
2288 (darwin_make_decl_one_only): Likewise.
2289 * config/darwin.c (machopic_finish): Get rid of tweak that
2290 eliminate stubs for symbols that are defined.
2291 (darwin_encode_section_info): Don't treat weak functions as defined.
2292 (darwin_make_decl_one_only): Define.
2293 (darwin_asm_named_section): Likewise.
2294 (darwin_section_type_flags): Likewise.
2295 (darwin_unique_section): Likewise.
2296 (darwin_emit_unwind_label): Likewise.
2297 (darwin_non_lazy_pcrel): Likewise.
2298 (darwin_asm_output_dwarf_delta): Difference between two labels is
2299 local only if both labels are local.
2300 * config/darwin.h (MAKE_DECL_ONE_ONLY): Define.
2301 (ASM_MAKE_LABEL_LINKONCE): Likewise.
2302 (TARGET_SUPPORTS_HIDDEN): Likewise.
2303 (TARGET_USES_WEAK_UNWIND_INFO): Likewise.
2304 (TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY): Likewise.
2305 (FRAME_BEGIN_LABEL): Likewise.
2306 (ASM_DECLARE_OBJECT_NAME): Make references to weak symbols indirect.
2307 (ASM_DECLARE_FUNCTION_NAME): Likewise.
2308 (darwin_eh_frame_section): Give __eh_frame section the coalesced flag.
2309 (TARGET_ASM_UNIQUE_SECTION): Define.
2310 (EH_FRAME_SECTION_NAME): Define.
2311 (EH_FRAME_SECTION_ATTR): Likewise.
2312 (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
2313 (TARGET_ASM_NAMED_SECTION): Likewise.
2314 (TARGET_SECTION_TYPE_FLAGS): Likewise.
2315 * doc/tm.texi: Document TARGET_USES_WEAK_UNWIND_INFO,
2316 TARGET_EXPLICIT_INSTANTIATIONS_ONE_ONLY, TARGET_SUPPORTS_HIDDEN,
2317 TARGET_ASM_EMIT_UNWIND_LABEL.
2319 2004-03-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2321 * builtins.c (expand_builtin_mathfn): Add pow10* to the
2322 existing exp10* case.
2323 (expand_builtin): Likewise.
2325 2004-03-12 Eric Botcazou <ebotcazou@libertysurf.fr>
2327 * doc/tm.texi (registers) <Values in Registers>: Add
2328 entry for REGMODE_NATURAL_SIZE.
2330 2004-03-12 Richard Henderson <rth@redhat.com>
2333 * target.h (struct gcc_target): Move calls substructure before
2334 booleans. Add split_complex_arg.
2335 * function.c (assign_parms, split_complex_args): Use it.
2336 * calls.c (expand_call): Likewise.
2337 (split_complex_values): Likewise. Check for splittable types
2338 before allocating memory.
2339 (split_complex_types): Likewise.
2340 * system.h (SPLIT_COMPLEX_ARGS): Poison.
2341 * expr.h (SPLIT_COMPLEX_ARGS): Remove.
2342 * target-def.h (TARGET_SPLIT_COMPLEX_ARG): New.
2343 * config/alpha/alpha.c (alpha_split_complex_arg): New.
2344 (TARGET_SPLIT_COMPLEX_ARG): New.
2345 * config/alpha/alpha.h (SPLIT_COMPLEX_ARGS): Remove.
2346 * config/rs6000/rs6000.c (TARGET_SPLIT_COMPLEX_ARG): New.
2347 (rs6000_override_options): Zap it for non-AIX.
2348 (rs6000_function_value): Use targetm.calls.split_complex_arg.
2349 * config/rs6000/rs6000.h (SPLIT_COMPLEX_ARGS): Remove.
2350 * config/xtensa/xtensa.c (TARGET_SPLIT_COMPLEX_ARG): New.
2351 * config/xtensa/xtensa.h (SPLIT_COMPLEX_ARGS): Remove.
2352 * doc/tm.texi (TARGET_SPLIT_COMPLEX_ARG): Modify from old
2353 SPLIT_COMPLEX_ARGS entry.
2355 2004-03-11 Richard Henderson <rth@redhat.com>
2357 * config/alpha/alpha.c (xfloating_ops, vax_cvt_ops): New.
2358 (alpha_lookup_xfloating_lib_func): Use them, return rtx.
2359 (alpha_emit_xfloating_arith): Update to match.
2360 (alpha_emit_xfloating_compare): Likewise.
2361 (alpha_emit_xfloating_cvt): Likewise.
2362 (alpha_emit_xfloating_libcall): Take already built symbol,
2364 * config/alpha/alpha.md (extendsftf2, extenddftf2): Take
2367 2004-03-11 Richard Henderson <rth@redhat.com>
2370 * config/alpha/alpha.h (STACK_BOUNDARY): Set to 128.
2372 * simplify-rtx.c (simplify_relational_operation): Fix typo.
2374 2004-03-11 Richard Henderson <rth@redhat.com>
2377 * except.c (remove_unreachable_regions): Look thru CALL_PLACEHOLDER.
2379 2004-03-11 Ulrich Weigand <uweigand@de.ibm.com>
2382 * calls.c (load_register_parameters): If BLOCK_REG_PADDING is not
2383 defined, pass small BLKmode values in registers in the low-order part.
2385 2004-03-11 Ulrich Weigand <uweigand@de.ibm.com>
2387 * combine.c (if_then_else_cond): Check for NULL return value of
2388 simplify_gen_subreg.
2390 2004-03-11 Richard Sandiford <rsandifo@redhat.com>
2393 * config/mips/mips.h (UNITS_PER_FPVALUE): Fix value for
2394 TARGET_SINGLE_FLOAT.
2396 2004-03-11 Steve Ellcey <sje@cup.hp.com>
2398 * config/ia64/hpux.h (TARGET_INIT_LIBFUNCS): Add undef.
2399 * config/ia64/ia64.h (TARGET_INIT_LIBFUNCS): Add define.
2400 * config/ia64/ia64.c (ia64_init_libfuncs): New.
2401 (ia64_hpux_init_libfuncs): Add call to ia64_init_libfuncs.
2403 2004-03-11 Roger Sayle <roger@eyesopen.com>
2405 * fold-const.c (negate_expr_p) <RSHIFT_EXPR>: We can optimize
2406 -((int)X>>C) where C is an integer constant one bit less than the
2407 size of X into (unsigned)X>>C. Similarly for unsigned->signed.
2408 (negate_expr) <RSHIFT_EXPR>: Implement the above transformations.
2410 * simplify-rtx.c (simplify_unary_operation): Also implement the
2411 above transformations at the RTL level.
2413 2004-03-11 Alan Modra <amodra@bigpond.net.au>
2415 * real.c (encode_ibm_extended): Do round low word.
2417 2004-03-11 Ben Elliston <bje@wasabisystems.com>
2419 * config/arm/arm.md (is_xscale): Comment this attribute and move
2420 it a bit further up in the file, closer to related attributes.
2422 2004-03-11 Eric Botcazou <ebotcazou@libertysurf.fr>
2424 * config/host-solaris.c (sol_gt_pch_use_address): Add
2425 missing terminating marker to comment.
2427 2004-03-11 Richard Sandiford <rsandifo@redhat.com>
2429 * config/mips/mips.md: Use move_operand in splitters for 64-bit moves.
2430 (movdi, movsi, movhi, movqi, movsf, movdf): Remove predicates.
2431 (*movdi_32bit_mips16, *movsi_mips16, *movhi_mips16, *movqi_mips16)
2432 (*movsf_mips16, *movdf_mips16): Name unnamed patterns. Use
2433 move_operand as source predicate in all cases.
2434 (*movdi_32bit): Renamed from movdi_internal. Remove 'F' constraint.
2435 Test reg_or_0_operand. Use move_operand as source predicate.
2436 (*movdi_64bit): Renamed from movdi_internal2. Test reg_or_0_operand.
2437 (*movdi_64bit_mips16): Renamed from movdi_internal2_mips16.
2438 (*movsi_internal): Renamed from movsi_internal. Test reg_or_0_operand.
2439 (movhi, movqi, movsf, movdf): Use mips_legitimize_move.
2440 (*movhi_internal): Renamed from movhi_internal. Test reg_or_0_operand.
2441 Use move_operand as source predicate. Remove 'K' constraint.
2442 (*movqi_internal): Likewise movqi_internal.
2443 (*movsf_hardfloat): Renamed from movsf_internal1. Test
2444 reg_or_0_operand. Use move_operand as source predicate.
2445 (*movsf_softfloat): Likewise movsf_internal2.
2446 (*movdf_hardfloat_64bit): Likewise movsf_internal1a.
2447 (*movdf_hardfloat_32bit): Likewise movsf_internal1b.
2448 (*movdf_softfloat): Likewise movdf_internal2.
2449 * config/mips/mips.c (move_operand): Match arbitrary CONST_INTs
2450 for DImode if !TARGET_64BIT.
2451 (mips_legitimize_move): Simplify accordingly.
2453 2004-03-11 Josef Zlomek <zlomekj@suse.cz>
2456 * var-tracking.c (struct variable_def): Added field refcount.
2457 (variable_htab_free): Decrease the refcount and delete variable
2458 only if there are no more references.
2459 (unshare_variable): New function.
2460 (vars_copy_1): Increase refcount instead of copying the variable.
2461 (variable_union): Share the variables where possible, unshare
2462 the variables if needed.
2463 (variable_different_p): Return false if var1 and var2 are
2465 (variable_was_changed): Init the refcount of new variable.
2466 (set_frame_base_location): Unshare variable if needed.
2467 (set_variable_part): Init the refcount of new variable.
2468 Unshare the variables if needed.
2469 (delete_variable_part): Unshare the variables if needed.
2470 (emit_notes_for_differences_1): Init the refcount of new variable.
2471 (vt_add_function_parameters): Do not add function parameters to
2472 IN set of ENTRY_BLOCK_PTR because it is unused anyway.
2473 (vt_initialize): Do not add frame_base_decl to IN set of
2474 ENTRY_BLOCK_PTR because it is unused anyway.
2476 2004-03-11 Josef Zlomek <zlomekj@suse.cz>
2478 * var-tracking.c (vars_copy_1): Cleanup and speedup chain operations.
2479 (vars_copy): Likewise.
2480 (variable_union): Likewise.
2481 (set_variable_part): Likewise.
2482 (delete_variable_part): Likewise.
2484 2004-03-11 Kazu Hirata <kazu@cs.umass.edu>
2486 * c-typeck.c, combine.c, cse.c, dominance.c, et-forest.h,
2487 ggc-page.c, var-tracking.c, config/fp-bit.c, config/c4x/c4x.c,
2488 config/cris/cris.c, config/i386/ppro.md, config/i860/i860.c,
2489 config/i860/i860.h, config/m32r/m32r.h, config/m32r/xm-m32r.h,
2490 config/m68hc11/m68hc11.h, config/m68hc11/m68hc11.md,
2491 config/mips/mips.c, config/mmix/mmix.c, config/ns32k/ns32k.h,
2492 config/pa/pa.c, config/pa/pa32-regs.h, config/pa/pa64-regs.h,
2493 config/pdp11/pdp11.h, config/rs6000/rs6000.c,
2494 config/stormy16/stormy16.c: Fix comment typos and formatting.
2496 2004-03-11 Nathanael Nerode <neroden@gcc.gnu.org>
2498 * configure: Regenerate, since I forgot to while committing Paolo's
2501 2004-03-08 Paolo Bonzini <bonzini@gnu.org>
2504 Move language detection to the top level.
2505 * configure.ac: Remove code to detect languages,
2506 it now lives exclusively in the top level.
2507 * aclocal.m4 (gcc_AC_PROG_GNAT): Moved to the
2508 top level, renamed to ACX_PROG_GNAT.
2510 2004-03-10 Richard Henderson <rth@redhat.com>
2512 * c-pch.c (c_common_no_more_pch): Update for gt_pch_use_address
2514 * config.host (*-*-solaris2*, *-*-linux*): Add out_host_hook_obj
2515 and host_xmake_file fragments.
2516 * ggc-common.c (gt_pch_save): Update for gt_pch_get_address change.
2517 (gt_pch_restore): Similarly for gt_pch_use_address.
2518 (default_gt_pch_get_address): New.
2519 (mmap_gt_pch_get_address): Split out of gt_pch_save.
2520 (default_gt_pch_use_address): Split out of gt_pch_restore.
2521 (mmap_gt_pch_use_address): Likewise.
2522 * hooks.c (hook_voidp_size_t_null): Remove.
2523 (hook_bool_voidp_size_t_false): Remove.
2524 * hooks.h: Likewise.
2525 * hosthooks-def.h (HOST_HOOKS_GT_PCH_GET_ADDRESS): Use one of the
2526 default_ or mmap_ definitions.
2527 (HOST_HOOKS_GT_PCH_USE_ADDRESS): Likewise.
2528 * hosthooks.h (struct host_hooks): Update gt_pch_get_address
2529 and gt_pch_use_address.
2530 * config/host-linux.c, config/host-solaris.c: New files.
2531 * config/x-linux, config/x-solaris: New files.
2532 * config/rs6000/host-darwin.c (darwin_rs6000_gt_pch_get_address):
2533 Update for changed definition.
2534 (darwin_rs6000_gt_pch_use_address): Likewise.
2535 * doc/hostconfig.texi: Update docs.
2537 2004-03-10 Richard Henderson <rth@redhat.com>
2540 * c-decl.c (grokdeclarator): Don't warn for duplicate qualifiers
2541 except for pedantic c90 mode.
2543 2004-03-10 Kelley Cook <kcook@gcc.gnu.org>
2545 * configure.ac: Bump AC_PREREQ to 2.59.
2546 * configure: Regenerate.
2548 2004-03-10 Uros Bizjak <uros@kss-loka.si>
2550 * optabs.h (enum optab_index): Add new OTI_exp10 and OTI_exp2.
2551 (exp10_optab, exp2_optab): Define corresponding macros.
2552 * optabs.c (init_optabs): Initialize exp10_optab and exp2_optab.
2553 * genopinit.c (optabs): Implement exp10_optab and exp2_optab
2554 using exp10?f2 and exp2?f2 patterns.
2555 * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_EXP10{,F,L}
2556 using exp10_optab, and BUILT_IN_EXP2{,F,L} using exp2_optab.
2557 (expand_builtin): Expand BUILT_IN_EXP10{,F,L} and BUILT_IN_EXP2{,F,L}
2558 using expand_builtin_mathfn if flag_unsafe_math_optimizations is set.
2560 * config/i386/i386.md (exp10sf2, exp10df2, exp10xf2, exp2sf2,
2561 exp2df2, exp2xf2): New patterns to implement exp10, exp10f, exp10l,
2562 exp2, exp2f and exp2l built-ins as inline x87 intrinsics.
2564 2004-03-10 Anthony Green <green@redhat.com>
2566 * doc/invoke.texi (ARM Options): Fix -mpfu typo.
2568 2004-03-10 David Edelsohn <edelsohn@gnu.org>
2570 * config/rs6000/aix.h (TARGET_OS_CPP_BUILTINS): Rename to ...
2571 (TARGET_OS_AIX_CPP_BUILTINS): this. Conditionally define
2573 * config/rs6000/aix41.h (TARGET_OS_CPP_BUILTINS): Use
2574 TARGET_OS_AIX_CPP_BUILTINS.
2575 * config/rs6000/aix43.h (TARGET_OS_CPP_BUILTINS): Same.
2576 * config/rs6000/aix51.h (TARGET_OS_CPP_BUILTINS): Same.
2577 * config/rs6000/aix52.h (TARGET_OS_CPP_BUILTINS): Same.
2578 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Revert
2581 2004-03-10 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2583 * fold-const.c (tree_expr_nonnegative_p): Add more builtin cases.
2585 2004-03-10 David Edelsohn <edelsohn@gnu.org>
2587 * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
2588 __LONGDOUBLE128 on AIX.
2590 2004-03-10 Andrew Haley <aph@redhat.com>
2592 PR optimization/14381
2593 * function.c (expand_function_end): Emit a blockage insn before
2594 the epilogue when -fnon-call-exceptions is used.
2596 * except.c (expand_start_all_catch): Make comment more accurate.
2598 2004-03-08 Joel Sherrill <joel@oarcorp.com>
2601 * config/rs6000/t-rtems: Add missing file on branch.
2603 2004-03-10 Ulrich Weigand <uweigand@de.ibm.com>
2605 * dbxout.c (dbxout_symbol_location): Do not output references
2606 to optimized-out constant pool symbols.
2608 2004-03-10 Andreas Schwab <schwab@suse.de>
2610 * config/ia64/ia64.md (divsi3, udivsi3): Remove unused variable
2613 2004-03-09 James E Wilson <wilson@specifixinc.com>
2615 * alias.c (alias_sets_might_conflict_p): New.
2616 * c-typeck.c (build_c_cast): Call it if warn_strict_aliasing > 1.
2617 * common.opt (Wstrict-aliasing=): New.
2618 * flags.h (warn_strict_aliasing): Change type to int.
2619 * opts.c (warn_strict_aliasing): Change type to int.
2620 (common_handle_option): Handle OPT_Wstrict_aliasing_.
2621 * tree.h (alias_sets_might_conflict_p): Declare it.
2622 * doc/invoke.tex (-Wstrict-aliasing=2): Document it.
2624 2004-03-10 Roman Zippel <zippel@linux-m68k.org>
2627 * config/m68k/m68k.h (FIXED_REGISTERS): Add arg pointer.
2628 (CALL_USED_REGISTERS): Likewise.
2629 (REG_CLASS_CONTENTS): Likewise.
2630 (REG_ALLOC_ORDER): New.
2631 (REGNO_REG_CLASS): Use regno_reg_class.
2632 * config/m68k/m68k.c: Add regno_reg_class array.
2634 2004-03-09 Steve Ellcey <sje@cup.hp.com>
2636 * config/ia64/ia64.md (divsi3): Fix algorithm.
2638 (setf_exp_xf): Remove '*' from name.
2639 * testsuite/gcc.dg/20040309-1.c: New test.
2641 2004-03-09 Ian Lance Taylor <ian@wasabisystems.com>
2643 * system.h (SUNOS4_SHARED_LIBRARIES): Poison.
2644 * collect2.c: Remove SUNOS4_SHARED_LIBRARIES code.
2645 * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): Don't define.
2646 * config/sparc/sparc.c (sparc_aout_select_section): Remove.
2647 (sparc_aout_select_rtx_section): Don't check
2648 SUNOS4_SHARED_LIBRARIES.
2649 * config/sparc/sparc.h (SUNOS4_SHARED_LIBRARIES): Don't define.
2651 2004-03-10 Hans-Peter Nilsson <hp@axis.com>
2654 * doc/md.texi (Pattern Ordering, Dependent Patterns)
2655 (Jump Patterns, Looping Patterns): Wrap in separate "@ifset
2658 2004-03-09 Zack Weinberg <zack@codesourcery.com>
2660 * config/ia64/hpux.h (MULTILIB_DEFAULTS): Define.
2661 (LIBGCC_SPEC): Update to match.
2663 2004-03-09 Zack Weinberg <zack@codesourcery.com>
2665 * c-decl.c (last_function_parms, last_function_parm_tags)
2666 (last_function_parm_others, current_function_parms)
2667 (current_function_parm_tags, current_function_parm_others):
2669 (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, ARG_INFO_OTHERS):
2671 (grokdeclarator): For function definitions, save the arg-info
2672 block from the declarator in DECL_ARGUMENTS.
2673 (grokparms): Do not write to last_function_parm*. Use ARG_INFO_*
2674 macros to operate on arg-info block. Can assume ARG_INFO_PARMS
2675 contains only PARM_DECLs. Improve diagnostics.
2676 (get_parm_info): Use ARG_INFO_* macros. Improve comments and
2677 diagnostics. Disable some expensive checks if not ENABLE_CHECKING.
2678 (store_parm_decls_newstyle): Take the function to operate on,
2679 and an arg-info block, as arguments; don't get anything from
2680 current_function_* globals.
2681 (store_parm_decls_oldstyle): Likewise.
2682 (store_parm_decls): Pass fndecl and its arg-info block down to
2683 store_parm_decls_newstyle/oldstyle. Send functions with empty
2684 argument lists through store_parm_decls_newstyle to reduce
2686 (pushdecl): Comment on the problems with the call to copy_node.
2687 Clear DECL_ARGUMENTS of the old node after copying it, if it
2688 is an arg-info block instead of a chain of decls.
2689 (start_function): Do not manipulate current_function_parm* or
2690 last_function_parm*.
2692 2004-03-09 Roger Sayle <roger@eyesopen.com>
2693 Andrew Pinski <pinskia@physics.uc.edu>
2695 * ifcvt.c (noce_try_sign_mask): New function to transform
2696 "x = (y < 0) ? z : 0" into the equivalent "x = (y >> C) & z".
2697 (noce_process_if_block): Call noce_try_sign_mask.
2699 2004-03-09 Andrew Pinski <apinski@apple.com>
2701 * c-typeck.c (tagged_types_tu_compatible_p):
2704 2004-03-09 Roger Sayle <roger@eyesopen.com>
2706 * simplify-rtx.c (simplify_const_relational_operation): New function
2707 renamed from simplify_relational_operation.
2708 (simplify_relational_operation): Change prototype to accept an
2709 additional mode argument. Call simplify_const_relational_operation.
2710 (simplify_gen_relational): Update simplify_relational_operation call.
2711 (simplify_ternary_operation): Update simplify_relational_operation
2712 subroutine call to use simplify_const_relational_operation instead.
2714 * rtl.h (simplify_const_relational_operation): Prototype here.
2715 (simplify_relational_operation): Add addtional mode argument.
2717 * combine.c (combine_simplify_rtx): Update calls to
2718 simplify_relational_operation.
2719 (simplify_set): Likewise.
2720 (gen_binary): Likewise.
2721 * cse.c (fold_rtx): Likewise.
2722 * dojump.c (compare_from_rtx): Likewise.
2723 (do_compare_rtx_and_jump): Likewise.
2724 * integrate.c (subst_constants): Likewise.
2725 * unroll.c (simplify_cmp_and_jump_insns): Likewise.
2727 2004-03-09 Kazu Hirata <kazu@cs.umass.edu>
2729 * config/m32r/m32r.md: Remove all define_peephole's.
2731 2004-03-09 Alan Modra <amodra@bigpond.net.au>
2733 * config/rs6000/rs6000.md: Remove trailing whitespace.
2735 2004-03-08 Eric Christopher <echristo@redhat.com>
2737 * Makefile.in (site.exp): Add libiconv variable definition.
2739 2004-03-09 Hans-Peter Nilsson <hp@axis.com>
2741 * configure: Regenerate for config/accross.m4 correction.
2743 2004-03-08 Joel Sherrill <joel@oarcorp.com>
2746 * config/rs6000/t-rtems: Add missing file on branch.
2748 2004-03-08 Roger Sayle <roger@eyesopen.com>
2751 * c-typeck.c (c_mark_addressable): A register variable should
2752 be considered global if its not automatic, i.e. TREE_PUBLIC,
2753 TREE_STATIC or DECL_EXTERNAL.
2754 * function.c (put_var_into_stack): Call abort when placing a
2755 hard register into the stack, if x_parm_reg_stack_loc is NULL.
2757 2004-03-08 Ulrich Weigand <uweigand@de.ibm.com>
2759 * config/s390/s390.md ("*extendqidi2_short_displ"): Add CC clobber.
2760 ("*extendqisi2_short_displ"): Likewise.
2762 2004-03-08 Kazu Hirata <kazu@cs.umass.edu>
2764 * config/pdp11/pdp11.c (comparison_operator_index): Remove.
2765 (comp_operator): Likewise.
2766 * config/pdp11/pdp11-protos.h: Remove corresponding
2769 2004-03-08 Eric Botcazou <ebotcazou@act-europe.fr>
2771 * expr.c (highest_pow2_factor_for_type): Rename into
2772 highest_pow2_factor_for_target. Use DECL_ALIGN instead of
2773 TYPE_ALIGN when the target is a COMPONENT_REF.
2774 (expand_assignment): Ajust call to highest_pow2_factor_for_type.
2776 2004-03-08 Alan Modra <amodra@bigpond.net.au>
2778 * config/rs6000/rs6000.c: Formatting fix.
2779 (legitimate_offset_address_p): Correct offset range check.
2781 * config/rs6000/rs6000.c (rs6000_override_options): Don't override
2782 -msoft-float by -mcpu. Consolidate similar code for MASK_MULTIPLE
2785 2004-03-07 Aldy Hernandez <aldyh@redhat.com>
2787 * config/rs6000/rs6000.md (ashrdi3): Do not call ashrdi3_no_power
2789 ("ashrdi3_no_power"): Disable for little endian.
2792 2004-03-07 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2794 * fold-const.c (tree_expr_nonnegative_p): Reformat checks for
2797 2004-03-08 Hans-Peter Nilsson <hp@axis.com>
2800 * configure.ac (Target-specific assembler checks) <cris-*-*>: New
2801 case, checking for -no-mul-bug-abort option.
2802 * configure, config.in: Regenerate.
2803 * doc/invoke.texi (CRIS Options): Document -mmul-bug-workaround
2804 and -mno-mul-bug-workaround.
2805 * config/cris/cris.md ("smulsi3_highpart", "umulsi3_highpart")
2806 ("mulsidi3", "umulsidi3"): Prefix output template with "%!".
2807 ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3"):
2808 Ditto. Make attribute "slottable" dependent on TARGET_MUL_BUG.
2809 * config/cris/mulsi3.asm (__Mul) [__CRIS_arch_version >= 10]: Make
2810 sure mulu.d is not last on cache-line.
2811 * config/cris/cris.h (ASM_SPEC): Translate -mno-mul-bug-workaround
2812 into -no-mul-bug-abort depending on HAVE_AS_MUL_BUG_ABORT_OPTION.
2813 (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG): New macros.
2814 (TARGET_SWITCHES): New options -mmul-bug-workaround and
2815 -mno-mul-bug-workaround.
2816 (TARGET_DEFAULT): Include TARGET_MASK_MUL_BUG.
2817 (PRINT_OPERAND_PUNCT_VALID_P): Include '!'.
2818 * config/cris/cris.c (cris_operand_extend_operator): Clarify
2819 relation to MULT in head comment.
2820 (cris_op_str): Abort for MULT.
2821 (cris_print_operand) <case '!'>: New case.
2823 2004-03-08 Alan Modra <amodra@bigpond.net.au>
2826 * dwarf2out.c (enum dw_val_class): Rename dw_val_class_float to
2827 dw_val_class_vec. Replace use throughout file.
2828 (dw_float_const): Delete.
2829 (dw_vec_const): New.
2830 (dw_val_struct_union): Rename val_float to val_vec. Replace use
2832 (add_AT_vec): Rename from add_AT_float. Add elt_size param.
2833 (same_dw_val_p): Adjust vec comparison. Use memcmp.
2834 (size_of_die): Adjust dw_val_class_vec sizing.
2835 (output_die): Output dw_val_class_vec.
2836 (insert_int, extract_int, insert_float): New functions.
2837 (add_const_value_attribute): Use insert_float for CONST_DOUBLE.
2838 Handle CONST_VECTOR.
2839 (add_location_or_const_value_attribute): Handle CONST_VECTOR.
2841 2004-03-07 Aldy Hernandez <aldyh@redhat.com>
2843 * config/rs6000/rs6000.c (rs6000_parse_abi_options): SPE and
2844 AltiVec abi cannot co-exist.
2846 * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Same.
2848 2004-03-07 Jan Hubicka <jh@suse.cz>
2850 * except.c (emit_to_new_bb_before): Break fallthru edges.
2852 2004-03-07 Stephane Carrez <stcarrez@nerim.fr>
2854 * config/m68hc11/m68hc11.md ("*lshrsi3_const"): Disable for 68HC12.
2855 ("*lshrsi3"): Also accept an immediate for 68HC12.
2856 ("*ashrsi3_const"): Likewise.
2857 ("*ashrsi3"): Likewise.
2858 ("*ashlsi3_const"): Likewise.
2859 ("*ashlsi3"): Likewise.
2860 ("cmphi_1_hc12"): Compare two hard register by pushing them and
2861 comparing with a pop; don't use a split for that.
2862 ("cmphi split"): Disable compare split for 68HC12.
2864 * config/m68hc11/m68hc11.c (m68hc11_notice_update_cc): Invalidate
2865 the status operands if they have side effects.
2867 2004-03-07 Kazu Hirata <kazu@cs.umass.edu>
2869 * defaults.h (LEGITIMIZE_ADDRESS): Provide a default
2871 * config/arc/arc.h, config/fr30/fr30.h, config/frv/frv.h,
2872 config/h8300/h8300.h, config/ia64/ia64.h,
2873 config/mcore/mcore.h, config/mmix/mmix.h,
2874 config/ns32k/ns32k.h, config/pdp11/pdp11.h,
2875 config/stormy16/stormy16.h, config/v850/v850.h,
2876 config/vax/vax.h (LEGITIMIZE_ADDRESS): Remove.
2877 * doc/tm.texi (LEGITIMIZE_ADDRESS): Mention the default
2880 2004-03-07 Roger Sayle <roger@eyesopen.com>
2882 * fold-const.c (fold) <IOR_EXPR>: Fold x | x as x.
2883 <XOR_EXPR>: Fold x ^ x as zero.
2884 <AND_EXPR>: Fold x & x as x.
2886 2004-03-07 Roger Sayle <roger@eyesopen.com>
2888 * fold-const.c (fold) <EQ_EXPR>: Rewrite optimization to transform
2889 "foo++ == const" into "++foo == const+incr".
2891 2004-03-07 Richard Sandiford <rsandifo@redhat.com>
2893 * config/mips/mips.c (mips_in_small_data_p): Return false if
2896 2004-03-06 Stephane Carrez <stcarrez@nerim.fr>
2898 * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Use 2,-sp to push
2900 (expand_prologue): Don't make an interrupt or a trap handler a far
2902 (m68hc11_initial_elimination_offset): Likewise.
2904 2004-03-06 Richard Henderson <rth@redhat.com>
2906 * config/alpha/alpha.c (alpha_in_small_data_p): False for functions.
2908 2004-03-06 Kazu Hirata <kazu@cs.umass.edu>
2910 * config/ns32k/ns32k-protos.h: Add a prototype for
2911 ns32k_notice_update_cc.
2912 * config/ns32k/ns32k.c (ns32k_notice_update_cc): New.
2913 * config/ns32k/ns32k.h (NOTICE_UPDATE_CC): Call
2914 ns32k_notice_update_cc.
2916 2004-03-06 Ulrich Weigand <uweigand@de.ibm.com>
2918 * config/s390/s390.md ("load_multiple", "*load_multiple_di",
2919 "*load_multiple_si"): Allow only if reload_completed.
2920 ("store_multiple", "*store_multiple_di", "*store_multiple_si"):
2923 2004-03-06 Kazu Hirata <kazu@cs.umass.edu>
2925 * config/vax/vax-protos.h: Add a prototype for
2926 vax_notice_update_cc.
2927 * config/vax/vax.c (vax_notice_update_cc): New.
2928 * config/vax/vax.h (NOTICE_UPDATE_CC): Call
2929 vax_notice_update_cc.
2931 2004-03-06 David Edelsohn <edelsohn@gnu.org>
2933 * collect2.c (main): Only export initfunc and finifunc if
2934 LD_INIT_SWITCH not defined.
2935 (scan_prog_file): Only export constructors and destructors if
2936 LD_INIT_SWITCH not defined. Only export symbols not found in
2939 2004-03-06 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2941 * pa.md (icacheflush): Reorder operands to make match_scratch operand
2943 * pa.h (INITIALIZE_TRAMPOLINE): Remove unnecessary scratch argument
2944 from calls to gen_icacheflush.
2946 2004-03-06 Richard Henderson <rth@redhat.com>
2948 * config/alpha/alpha.h (MASK_LONG_DOUBLE_128): New.
2949 (TARGET_LONG_DOUBLE_128): New.
2950 (TARGET_SWITCHES): Add long-double-{128,64}.
2951 (TARGET_HAS_XFLOATING_LIBS): Default to TARGET_LONG_DOUBLE_128.
2952 (LONG_DOUBLE_TYPE_SIZE): Honor TARGET_LONG_DOUBLE_128.
2953 (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): New.
2954 (WIDEST_HARDWARE_FP_SIZE): New.
2955 (TARGET_CPU_CPP_BUILTINS): Define __LONG_DOUBLE_128__.
2956 * config/alpha/alpha.c (override_options): Clear MASK_LONG_DOUBLE_128
2957 if TARGET_VAX_FLOAT.
2958 * config/alpha/osf5.h (LONG_DOUBLE_TYPE_SIZE): Remove.
2959 (TARGET_DEFAULT): Set MASK_LONG_DOUBLE_128.
2961 2004-03-06 Richard Henderson <rth@redhat.com>
2963 * config/alpha/alpha.c (alpha_swapped_comparison_operator): Fix
2964 botched rtx class conversion.
2966 2004-03-06 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2968 * tree.h (BUILTIN_EXP10_P, BUILTIN_EXPONENT_P, BUILTIN_SQRT_P,
2969 BUILTIN_CBRT_P, BUILTIN_ROOT_P): New macros.
2971 * builtins.c (fold_builtin_logarithm, fold_builtin): Use new
2973 * fold-const.c (fold_mathfn_compare, fold): Likewise.
2975 2004-03-06 Eric Botcazou <ebotcazou@libertysurf.fr>
2978 * config/i386/i386.md (movv2di_internal): Conditionalize on
2979 TARGET_SSE, not TARGET_SSE2.
2981 2004-03-05 Chris Demetriou <cgd@broadcom.com>
2983 * config.gcc (mips64orion-*-elf*, mips64orionel-*-elf*): Delete
2986 2004-03-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
2988 * builtins.c: Consistently use logN not log* in comments.
2990 2004-03-05 Andreas Krebbel <krebbel1@de.ibm.com>
2992 * rtl.h (mem_expr_equal_p): Function prototype added.
2993 * cfgcleanup.c (merge_memattrs): New function.
2994 (flow_find_cross_jump): Call merge_memattrs for matching insns.
2995 * emit-rtl.c (mem_expr_equal_p): New function.
2997 2004-03-05 Ziemowit Laski <zlaski@apple.com>
2999 * objc/objc-act.c (synth_module_prologue): Const-qualify
3000 objc_selector type if using the GNU runtime; fix generated
3001 signatures for objc_msg_lookup and objc_msg_lookup_super
3002 to match what GNU ObjC headers provide; reformat and clean up.
3003 (synth_self_and_ucmd_args): Use previously constructed (and
3004 hence possibly const-qualified) objc_selector type.
3006 2004-03-05 Kazu Hirata <kazu@cs.umass.edu>
3008 * doc/tm.texi (HARD_REGNO_RENAME_OK): Document.
3010 2004-03-05 Jason Merrill <jason@redhat.com>
3012 * tree.h (TYPE_HASH): Use TYPE_UID.
3013 (TREE_HASH): New macro with old definition of TYPE_HASH.
3014 * tree.c (build_type_attribute_variant): Use iterative_hash_object.
3015 (build_array_type, build_function_type): Likewise.
3016 (build_method_type_directly): Likewise.
3017 (build_offset_type, build_complex_type): Likewise.
3018 (type_hash_list, attribute_hash_list): Likewise. Now static.
3019 * except.c: s/TYPE_HASH/TREE_HASH/.
3021 2004-03-05 Bob Wilson <bob.wilson@acm.org>
3023 * config/xtensa/xtensa.c (function_arg): Handle 16-byte aligned args.
3024 (xtensa_va_start): Initialize __va_stk to ($arg_ptr - 32). Adjust
3025 __va_ndx by 2 words when referencing an argument on the stack.
3026 (xtensa_va_arg): Handle 16-byte aligned args. Adjust __va_ndx by 2
3027 words when an arg on the stack is first seen.
3029 2004-03-05 Paul Brook <paul@codesourcery.com>
3031 * arm.h (ARM_FLAG_VFP): Remove.
3032 (ARM_FLAG_ATPCS, CIRRUS_FIX_INVALID_INSNS): Renumber.
3033 * netbsd-elf.h (ARM_FLAG_VFP): Remove.
3035 2004-03-05 Paul Brook <paul@codesourcery.com>
3037 * function.c (assign_parms): Include pretend alignment offset.
3039 2004-03-05 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3041 * stor-layout.c (layout_type, case FUNCTION_TYPE): Make size
3042 FUNCTION_BOUNDARY, not POINTER_SIZE * 2.
3044 2004-03-05 Ian Lance Taylor <ian@wasabisystems.com>
3046 * configure.ac: When passing --enable-languages to subdir
3047 configure when host != build, make sure we don't pass an empty
3049 * configure: Regenerate.
3051 2004-03-05 Nathan Sidwell <nathan@codesourcery.com>
3054 * gcc.c (cc1_options): Robustify -auxbase-strip from multiple -o
3057 2004-03-05 Paolo Bonzini <bonzini@gnu.org>
3059 * simplify-rtx.c (simplify_relational_operation): If
3060 flag_wrapv is set, do not move terms between the two
3061 side of a relational operator.
3063 2004-03-05 Paolo Bonzini <bonzini@gnu.org>
3065 * rtlanal.c: Include target.h and output.h
3066 (rtx_cost, address_cost, default_address_cost): Move from...
3067 * cse.c (rtx_cost, address_cost, default_address_cost):
3069 * rtl.h (rtx_cost, address_cost): Move under rtlanal.c.
3070 * Makefile.in: Adjust dependencies.
3072 2004-03-05 Paolo Bonzini <bonzini@gnu.org>
3074 * cse.c (cse_end_of_basic_block): Make static.
3075 * local-alloc.c (function_invariant_p): Move to
3077 * loop.c (libcall_other_reg, record_excess_regs):
3079 * reload1.c (function_invariant_p): Moved here
3080 from local-alloc.c, made static.
3081 * rtl.h (cse_end_of_basic_block, function_invariant_p,
3082 libcall_other_reg, record_excess_regs): Remove
3085 2004-03-05 Kazu Hirata <kazu@cs.umass.edu>
3087 * config/m32r/m32r.c (signed_comparison_operator): Add a
3088 missing parenthesis.
3090 2004-03-04 Ian Lance Taylor <ian@wasabisystems.com>
3092 * ggc-common.c (gt_pch_restore): Don't unmap addr unless we are
3093 going to call mmap again. Read the file into the right place.
3094 Give a fatal error if we have to relocate.
3096 2004-03-04 Bob Wilson <bob.wilson@acm.org>
3098 * config/xtensa/xtensa.c (xtensa_return_in_msb): New function.
3099 (TARGET_RETURN_IN_MSB): Define to xtensa_return_in_msb.
3101 2004-03-05 Hans-Peter Nilsson <hp@axis.com>
3104 * config/fp-bit.c (_fpdiv_parts): Do not round when pack_d would
3105 round the same. When rounding, clear bits that would cause a
3106 second rounding in pack_d.
3107 (_fpmul_parts): Ditto. Remove #if 0:d code.
3109 2004-03-04 Ziemowit Laski <zlaski@apple.com>
3111 PR c++/14425, c++/14426
3112 * config/rs6000/altivec.h (vec_splat_s8, vec_splat_s16,
3113 vec_splat_s32, vec_splat_u8, vec_splat_u16, vec_splat_u32):
3114 Change C++ definitions to accept a 'const int' argument;
3115 the prototypes already do.
3116 * config/rs6000/rs6000.c (rs6000_common_init_builtins):
3117 Rename v4si_ftype_char, v8hi_ftype_char, v16qi_ftype_char,
3118 v4sf_ftype_v4si_char, v4si_ftype_v4sf_char, v4si_ftype_v4si_char,
3119 v8hi_ftype_v8hi_char, v16qi_ftype_v16qi_char,
3120 v16qi_ftype_v16qi_v16qi_char, v8hi_ftype_v8hi_v8hi_char,
3121 v4si_ftype_v4si_v4si_char and v4sf_ftype_v4sf_v4sf_char to
3122 end in ..._int; change them to accept an int instead of a char
3123 as the last parameter.
3125 2004-03-04 Phil Edwards <phil@codesourcery.com>
3127 * genmultilib: Change '=' to '-' when translating option names
3130 2004-03-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3132 * expr.c (expand_expr_real, case COMPONENT_REF): Get proper type of
3133 stack slot for temp used for result of BLKmode but in integral mode.
3135 2004-03-04 Jan Hubicka <jh@suse.cz>
3137 * reload.c (find_reloads): Reorganize if seqeunce to switch.
3139 * cfgrtl.c (rtl_redirect_edge_and_branch): Set the source BB as dirty.
3140 (cfglayout_redirect_edge_and_branch): Set the source BB as dirty.
3142 2004-03-04 Steve Ellcey <sje@cup.hp.com>
3144 * config/ia64/ia64.md (divdf3_internal_thr): Fix algorithm.
3145 * testsuite/gcc.dg/20040303-1.c: New test.
3147 2004-03-04 Steven Bosscher <stevenb@suse.de>
3149 * ppro.md: Rewrite as a DFA pipeline description.
3150 * i386.md: Remove all uses of the ppro_uops attribute.
3151 * i386.c: (ix86_safe_ppro_uops, ix86_dump_ppro_packet,
3152 ix86_reorder_insn, ix86_sched_reorder_ppro, ix86_sched_init,
3153 ix86_sched_reorder, ix86_variable_issue,
3154 struct ix86_sched_data, TARGET_SCHED_VARIABLE_ISSUE,
3155 TARGET_SCHED_INIT, TARGET_SCHED_REORDER): Remove.
3156 (ia32_use_dfa_pipeline_interface): Add TARGET_PENTIUMPRO.
3157 (ia32_multipass_dfa_lookahead): Add TARGET_PENTIUMPRO.
3158 * athlon.md (athlon_ssecmp_load): Fix comment
3160 2004-03-04 Stuart Hastings <stuart@apple.com>
3162 * gcc/doc/invoke.texi: Document -mlongcall for Darwin/PPC.
3164 2004-03-04 Stuart Hastings <stuart@apple.com>
3166 * gcc/config/i386/darwin.h: Darwin/x86 doesn't support CPUs before
3167 686, tell Darwin assembler to allow prefetch insns, non-empty def
3168 of SUBTARGET_OPTION_TRANSLATE_TABLE.
3170 2004-03-04 DJ Delorie <dj@redhat.com>
3172 PR optimization/14282
3173 * sched-deps.c (sched_analyze_insn): Allow a stack adjustment
3174 between a call and the assignment of its return value.
3176 2004-03-04 Kazu Hirata <kazu@cs.umass.edu>
3178 * config/h8300/h8300.c: Put a comment for every function.
3180 2004-03-04 Kazu Hirata <kazu@cs.umass.edu>
3182 * config/h8300/h8300.md: Add comments about peephole2's.
3184 2004-03-04 Steven Bosscher <stevenb@suse.de>
3186 * i386.h (TARGET_CPU_DEFAULT_nocona): Fix value.
3188 2004-03-04 Jan Hubicka <jh@suse.cz>
3190 * cfgcleanup.c (thread_jump): Update call of cselib_init.
3191 * cselib.c (cselib_record_memory): New static variable.
3192 (cselib_lookup_mem, cselib_record_set, cselib_record_sets):
3193 Give up on memories when asked for.
3194 (cselib_init): Accept new argument.
3195 * cselib.h (cselib_init): Update prototype.
3196 * gcse.c (local_cprop_pass): Update call of cselib_init.
3197 * loop.c (load_mems): Update call of cselib_init.
3198 * postreload.c (reload_cse_regs_1): Update call of cselib_init.
3199 * sched-deps.c (sched_analyze): Update call of cselib_init.
3201 2004-03-04 David Edelsohn <edelsohn@gnu.org>
3204 * config/rs6000/rs6000.c (output_function_profiler): Append @plt
3207 2004-03-04 Josef Zlomek <zlomekj@suse.cz>
3210 * var-tracking.c (track_expr_p): Do not track variables which
3211 should be ignored for debugging purposes.
3213 2004-03-04 Alan Modra <amodra@bigpond.net.au>
3215 * real.c (encode_ibm_extended): Don't bother rounding low double.
3216 * c-cppbuiltin.c (builtin_define_float_constants): Tweak MAX
3217 when fmt->pnan < fmt->p.
3219 2004-03-04 Eric Christopher <echristo@redhat.com>
3221 * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Fix to check
3222 only range of valid arg registers and fixed_regs.
3224 2004-03-04 Alan Modra <amodra@bigpond.net.au>
3227 * config/rs6000/rs6000.md (abstf2, abstf2+1): Delete define_insn.
3228 (abstf2, abstf2_internal): New define_expand.
3230 2004-03-04 Eric Botcazou <ebotcazou@libertysurf.fr>
3232 PR optimization/14235
3233 * expr.c (convert_move): Copy the source to a new pseudo
3234 when converting from a sub-word source to a larger-than-word
3235 register which conflicts with the source.
3237 2004-03-03 Zack Weinberg <zack@codesourcery.com>
3240 * c-decl.c (diagnose_mismatched_decls): Issue an error for two
3241 parameters with the same name, unless one is a forward decl.
3242 Do not issue a redundant-redeclaration warning for forward
3243 decls of parameters.
3245 2004-03-04 David Edelsohn <edelsohn@gnu.org>
3247 * doc/install.texi (*-ibm-aix*): Document use of Bash to speed up
3250 2004-03-03 Ian Lance Taylor <ian@wasabisystems.com>
3252 * ggc-zone.c (ggc_pch_write_object): Don't align file pointer.
3254 2004-03-04 Alan Modra <amodra@bigpond.net.au>
3256 * target-def.h (TARGET_OPTF): Delete.
3257 * c-opts.c (TARGET_OPTF): Define.
3259 2004-03-04 Jan Hubicka <jh@suse.cz>
3261 * cselib.c (cselib_finish): Fix another miss-application of my previous
3264 2004-03-03 Mike Stump <mrs@apple.com>
3266 Add framework support for darwin.
3268 * c-incpath.c: Include target.h and machmode.h.
3269 (add_path): Use a consistent style for cpp_dir. Initialize
3271 (add_cpp_dir_path): New.
3272 (register_include_chains): Add use of extra_includes callback.
3273 (hook_void_int): Add.
3274 (target_c_incpath): Add.
3275 * c-incpath.h (add_cpp_dir_path): New.
3276 (target_c_incpath_s): Add.
3277 (target_c_incpath): Add.
3278 (C_INCPATH_INIT): Add.
3279 * c-opts.c (c_common_missing_argument,
3280 c_common_handle_option): Add -F argument processing.
3281 * c.opt: Add -F argument processing.
3282 * gcc.c (trad_capable_cpp): Add -F argument processing.
3283 * cppfiles.c (find_file_in_dir): Update to use construct
3285 (search_path_exhausted, cpp_get_path, cpp_get_buffer,
3287 (_cpp_find_file): Use search_path_exhausted.
3288 (make_cpp_dir): Initialize construct to 0.
3289 * cpplib.h (missing_header_cb
3290 cpp_get_path, cpp_get_buffer, cpp_get_file, cpp_get_prev): New.
3291 (cpp_callbacks): Add missing_header
3292 (cpp_dir): Add construct.
3293 * target-def.h: (TARGET_OPTF): New.
3294 * hooks.c (hook_void_int, hook_void_charptr): Add.
3295 * hooks.h (hook_void_int, hook_void_charptr): Add.
3296 * Makefile.in (c-incpath.o) : Add $(TARGET_H) and
3297 $(MACHMODE_H) dependencies.
3298 * doc/invoke.texi (Darwin Options): Document -F.
3299 * doc/tm.texi (TARGET_EXTRA_INCLUDES): Add.
3301 * fix-header.c (target_c_incpath): Add.
3303 * config/darwin-c.c: Add c-incpath.h include.
3304 (using_frameworks, find_subframework_file,
3305 find_subframework_header, add_system_framework_path,
3306 frameworks_in_use, num_frameworks, max_frameworks,
3307 add_framework, find_framework, struct framework_header,
3308 framework_header_dirs, framework_construct_pathname,
3309 find_subframework_file, add_system_framework_path,
3310 add_framework_path, framework_defaults,
3311 darwin_register_frameworks, find_subframework_header): Add.
3312 * config/darwin.h (TARGET_EXTRA_INCLUDES, TARGET_OPTF): New.
3313 (TARGET_OPTION_TRANSLATE_TABLE): Add -framework support.
3314 (CPP_SPEC): Add __APPLE_CC__ support.
3315 * t-darwin (darwin-c.o): Add c-incpath.h dependency.
3317 2004-03-04 Jan Hubicka <jh@suse.cz>
3319 * cselib.c (cselib_finish): Fix miss-application of my previous
3322 2004-03-03 Kazu Hirata <kazu@cs.umass.edu>
3324 * hooks.c (hook_tree_tree_identity): New.
3325 * hooks.h: Add a prototype for hook_tree_tree_identity.
3326 * stmt.c (expand_asm_operands): Use targetm.md_asm_clobbers
3327 instead of MD_ASM_CLOBBERS.
3328 * system.h (MD_ASM_CLOBBERS): Poison.
3329 * target-def.h (TARGET_MD_ASM_CLOBBERS): New.
3330 (TARGET_INITIALIZER): Add TARGET_MD_ASM_CLOBBERS.
3331 * target.h (gcc_target): Add md_asm_clobbers.
3332 * config/i386/i386.c (TARGET_MD_ASM_CLOBBERS): New.
3333 (ix86_md_asm_clobbers): New.
3334 * config/i386/i386.h (MD_ASM_CLOBBERS): Remove.
3335 * doc/tm.texi (MD_ASM_CLOBBERS): Change to
3336 TARGET_MD_ASM_CLOBBERS.
3338 2004-03-03 Stuart Hastings <stuart@apple.com>
3340 * gcc/config.gcc: Arrange for Darwin/x86 to build libgcc_eh.a.
3342 2004-03-03 Eric Botcazou <ebotcazou@libertysurf.fr>
3344 * config/sparc/sparc.c (noov_compare64_op): Fix typo.
3346 * config/sparc/sparc.h (ASM_FLOAT): Delete.
3347 (ASM_DOUBLE): Likewise.
3348 (ASM_LONGDOUBLE): Likewise.
3349 * config/sparc/pbd.h (ASM_INT_OP): Delete.
3351 2003-03-03 Richard Henderson <rth@redhat.com>
3354 * cselib.c (cselib_record_sets): Don't record multiple sets in
3357 2004-03-03 Mostafa Hagog <mustafa@il.ibm.com>
3359 * common.opt: Add description of the new -fgcse-after-reload flag.
3361 * flags.h (flag_gcse_after_reload): Declaration of global variable.
3363 * gcse.c (reg_used_on_edge ,reg_set_between_after_reload_p,
3364 reg_used_between_after_reload_p, rtx get_avail_load_store_reg,
3365 is_jump_table_basic_block, bb_has_well_behaved_predecessors,
3366 get_bb_avail_insn, hash_scan_set_after_reload,
3367 compute_hash_table_after_reload, eliminate_partially_redundant_loads,
3368 gcse_after_reload, get_bb_avail_insn): New functions to implement
3370 (gcse_after_reload_main): New function, the main entry point to
3373 * rtl.h (gcse_after_reload_main): Declaration of the new function.
3375 * opts.c (common_handle_option): Handle the -fgcse-after-reload flag.
3377 * toplev.c (flag_gcse_after_reload): Initialization.
3379 * passes.c (rest_of_handl_gcse2): Call gcse_after_reload_main.
3381 * params.def (PARAM_GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
3382 PARAM_GCSE_AFTER_RELOAD_CRITICAL_FRACTION): New parameters for tuning
3383 the gcse after reload optimization.
3385 * params.h (GCSE_AFTER_RELOAD_PARTIAL_FRACTION,
3386 GCSE_AFTER_RELOAD_CRITICAL_FRACTION): Two macros to access the tuning
3389 * doc/invoke.texi: Documentation for the new flag gcse-after-reload.
3391 2004-03-03 Nicolas Pitre <nico@cam.org>
3393 * config/arm/ieee754-df.S (muldf3, divdf3): Fix denormalization of
3394 small negative values.
3396 2004-03-03 Jan Hubicka <jh@suse.cz>
3398 * cselib.c (hash_table): Remove GTY marker.
3399 (reg_values): Turn into array.
3400 (used_regs): Likewise.
3401 (n_used_regs): New static variable.
3402 (reg_values_old): Kill.
3403 (clear_table): Update uses of arrays.
3404 (cselib_lookup): Likewise.
3405 (cselib_record_set): Likewise.
3406 (cselib_init): Likewise.
3407 (cselib_finish): Likewise.
3408 (cselib_udpate_varray_sizes): Kill.
3409 * cselib.h (cselib_update_varray_sizes): Kill.
3411 2004-03-03 Paul Brook <paul@codesourcery.com>
3413 * flow.c (ior_reg_cond, and_reg_cond): Remove stray ")".
3415 2004-03-03 Jan Hubicka <jh@suse.cz>
3417 * ggc-common.c (ggc_alloc_cleared_stat, ggc_realloc_stat):
3418 Rename from ...; make statistics transparent.
3419 (ggc_alloc_cleared, ggc_realloc_stat): ... these.
3420 (loc_descriptor): New structure.
3421 (hash_descriptor, eq_descriptor, loc_descriptor, cmp_statistics,
3423 New static function.
3424 (ggc_record_overhead, dump_statistics): New global function.
3425 * ggc-none.c (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
3426 ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Rename
3427 from ...; accept locations
3428 (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
3429 ggc_realloc, ggc_alloc_typed): ... this one.
3430 from ...; accept locations
3431 * ggc-page.c (ggc_alloc_typed_stat, ggc_alloc_zone_stat,
3432 ggc_alloc_stat): Rename from ... ; pass locations
3433 * ggc-page.c (ggc_alloc_typed, ggc_alloc_zone, ggc_alloc):
3435 (ggc_alloc_stat): Record overehead.
3436 * ggc.h (ggc_alloc_types, ggc_alloc, ggc_alloc_zone, ggc_alloc_cleared,
3437 ggc_realloc, ggc_alloc_typed): Turn to macros
3438 (ggc_alloc_types_stat, ggc_alloc_stat, ggc_alloc_zone_stat,
3439 ggc_alloc_cleared_stat, ggc_realloc_stat, ggc_alloc_typed_stat): Declare.
3440 (dump_ggc_loc_satistics, ggc_record_overehead): Declare.
3441 * langhooks.h (lhd_make_node): Declare.
3442 (LANG_HOOKS_MAKE_TYPE): Default to new function,
3443 * langhooks.c (lhd_make_node): New.
3444 * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Rename from ... ; pass
3446 (rtx_alloc, swallow_copy_rtx): ... this one.
3447 * rtl.h (rtx_alloc, swallow_copy_rtx): Turn to macros.
3448 * rtl.c (rtx_alloc_stat, swallow_copy_rtx_stat): Declare.
3449 * toplpev.c (finalize): Dump stats.
3450 * tree.c (make_node_stat, copy_node_stat, make_tree_vec_stat,
3451 build_tree_list_stat, tree_cons_stat, build?_stat, build_decl_stat):
3452 Rename from ... ; pass locators.
3453 (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
3454 build?, build_decl): Declare.
3455 * tree.h (make_node_stat, copy_node_stat, make_tree_vec_stat,
3456 build_tree_list_stat, tree_cons_stat, build?_stat, build_decl_stat):
3458 (make_node, copy_node, make_tree_vec, build_tree_list, tree_cons,
3459 build?, build_decl): New macros.
3460 * Makefile.in (RTL_H, TREE_H): Add statistics.h dependency.
3461 * statistics.h: New file.
3463 2004-03-03 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
3464 Richard Sandiford <rsandifo@redhat.com>
3466 * config/mips/mips.h (MASK_FIX_SB1): Bump.
3467 (MASK_FIX_R4400, TARGET_FIX_R4400): New macros.
3468 (TARGET_SWITCHES): Add -mfix-r4400 and -mno-fix-r4400.
3469 * config/mips/mips.c (mips_output_division): Fill the branch delay
3470 slot with a nop if TARGET_FIX_R4000. Extend R4000 workarounds to
3472 (mips_output_division): Adjust accordingly.
3473 (override_options): Make -march=r4400 imply -mfix-r4400 by default.
3474 * doc/invoke.texi: Document -mfix-r4400 and new errata workarounds.
3476 2004-03-03 Paolo Bonzini <bonzini@gnu.org>
3478 * alias.c (rtx_equal_for_memref_p): Use predicates
3479 to test rtx classes and new rtx class codes, possibly
3480 splitting conditionals that tested against '<' and 'o'.
3481 * caller-save.c (save_call_clobbered_regs): Likewise.
3482 * combine.c (contains_muldiv, find_split_point, subst,
3483 combine_simplify_rtx, simplify_if_then_else,
3484 simplify_set, simplify_logical, expand_compound_operation,
3485 make_compound_operation, if_then_else_cond, known_cond,
3486 apply_distributive_law, cached_nonzero_bits,
3487 cached_num_sign_bit_copies, simplify_shift_const,
3488 gen_binary, simplify_comparison, update_table_tick,
3489 record_value_for_reg, get_lsat_value_validate): Likewise.
3490 * cse.c (mention_regs, find_best_addr, find_comparison_args,
3491 fold_rtx, cse_insn, invalidate_memory, cse_basic_block):
3493 * emit-rtl.c (copy_insn_1): Likewise.
3494 * expr.c (force_operand): Likewise.
3495 * final.c (final_scan_insn, get_mem_expr_from_op): Likewise.
3496 * flow.c (notice_stack_pointer_modification_1,
3497 invalidate_mems_from_autoinc, ior_reg_cond, not_reg_cond,
3498 and_reg_cond, elim_reg_cond): Likewise.
3499 * function.c (update_epilogue_consts): Likewise.
3500 * genattrtab.c (attr_rtx_1): Likewise.
3501 * genopinit.c (gen_insn): Likewise.
3502 * integrate.c (subst_constants): Likewise.
3503 * jump.c (reversed_comparison_code_parts,
3504 reversed_comparison_code, delete_related_insns,
3505 rtx_renumbered_equal_p): Likewise.
3506 * local-alloc.c (block_alloc): Likewise.
3507 * loop.c (rtx_equal_for_prefetch_p, maybe_eliminate_biv,
3508 canonicalize_condition): Likewise.
3509 * loop-iv.c (simplify_using_conditions, iv_number_of_iterations):
3511 * optabs.c (add_equal_node, expand_binop): Likewise.
3512 * predict.c (estimate_probability): Likewise.
3513 * ra-debug.c (ra_print_rtx_2op, ra_print_rtx): Likewise.
3514 * recog.c (validate_replace_rtx_1, comparison_operator,
3515 offsettable_address_p, constrain_operands): Likewise.
3516 * reg-stack.c (swap_rtx_condition_1, subst_stack_regs_pat):
3518 * regclass.c (scan_one_insn): Likewise.
3519 * regmove.c (stable_and_no_regs_but_for_p): Likewise.
3520 * regrename.c (kill_autoinc_value): Likewise.
3521 * reload.c (find_reusable_reload, find_reloads,
3522 reg_overlap_mentioned_for_reload_p): Likewise.
3523 * reload1.c (gen_reload, delete_address_reloads_1): Likewise.
3524 * rtl.c (copy_rtx): Likewise.
3525 * rtl.h (CONSTANT_P, INSN_P): Likewise.
3526 * rtlanal.c (commutative_operand_precedence): Likewise.
3527 * sched-deps.c (conditions_mutex_p): Likewise.
3528 * sched-rgn.c (is_cfg_nonregular): Likewise.
3529 * simplify-rtx.c (simplify_gen_binary,
3530 simplify_gen_relational, simplify_replace_rtx,
3531 simplify_unary_operation, simplify_binary_operation,
3532 simplify_ternary_operation, simplify_rtx): Likewise.
3533 * unroll.c (reg_dead_after_loop): Likewise.
3534 * config/alpha/alpha.c (alpha_swapped_comparison_operator,
3535 print_operand): Likewise.
3536 * config/arc/arc.c (proper_comparison_operator): Likewise.
3537 * config/arm/arm.c (arm_arm_address_cost, arm_select_cc_mode):
3539 * config/avr/avr.c (_reg_unused_after): Likewise.
3540 * config/frv/frv.c (frv_ifcvt_modify_tests,
3541 frv_ifcvt_modify_insn, frv_pack_insn): Likewise.
3542 * config/i386/i386.c (ix86_comparison_operator,
3543 ix86_carry_flag_operator, fcmov_comparison_operator,
3544 arith_or_logical_operator, print_operand,
3545 ix86_expand_binary_operator, ix86_binary_operator_ok):
3547 * config/i386/i386.md: Likewise.
3548 * config/ia64/ia64.c (not_postinc_memory_operand,
3549 ia64_print_operand, update_set_flags, errata_emit_nops):
3551 * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS,
3552 CONSTRAINT_OK_FOR_S): Likewise.
3553 * config/ip2k/ip2k.c (mdr_resequence_xy_yx,
3554 mdr_try_move_dp_reload, ip2k_check_can_adjust_stack_ref,
3555 ip2k_xexp_not_uses_reg_for_mem, ip2k_xexp_not_uses_reg_p,
3556 ip2k_composite_xexp_not_uses_reg_p, ip2k_unary_operator):
3558 * config/iq2000/iq2000.c (cmp_op, symbolic_expression_p,
3559 eqne_comparison_operator, signed_comparison_operator):
3561 * config/mips/mips.c (cmp_op, symbolic_expression_p):
3563 * config/mmix/mmix (mmix_foldable_comparison_operator,
3564 mmix_comparison_operator): Likewise.
3565 * config/pa/pa.c (hppa_legitimize_address): Likewise.
3566 * config/rs6000/rs6000.c (stmw_operation,
3567 branch_comparison_operator, trap_comparison_operator,
3569 * config/rs6000/rs6000.h (SELECT_CC_MODE): Likewise.
3570 * config/s390/s390.c (s390_alc_comparison,
3571 s390_slb_comparison):L Likewise.
3572 * config/sh/sh.c (gen_block_redirect, reg_unused_after):
3574 * config/sparc/sparc.c (eq_or_neq, normal_comp_operator,
3575 noov_compare_op, noov_compare64_op, v9_regcmp_op,
3576 emit_hard_tfmode_operation, reg_unused_after)
3577 * doc/md.texi, doc/rtl.texi: Likewise.
3579 * ra-debug.c: Add 2004 to list of copyright years.
3580 * unroll.c: Likewise.
3582 * combine.c (simplify_logical): Remove dummy test,
3583 (apply_distributive_law): Fix typo in comment.
3584 GET_CODE (x) == AND so x is a commutative binary op.
3585 * jump.c (delete_related_insns): simplify loop
3586 condition, move testing of RTX codes inside the loop.
3587 (rtx_renumbered_equal_p): do not use RTX_CODE.
3588 * rtl.c (rtx_class): Declare as enum rtx_class.
3589 * rtl.def (EQ, NE, UNEQ, LTGT, UNORDERED, ORDERED):
3590 Move to RTX_COMM_COMPARE class.
3591 (HIGH, SYMBOL_REF, LABEL_REF, CONST, CONST_INT, CONST_DOUBLE):
3592 Move to RTX_CONST_OBJ class.
3593 * rtl.h (enum rtx_class): New declaration,
3594 (RTX_OBJ_MASK, RTX_OBJ_RESULT, RTX_COMPARE_MASK,
3595 RTX_COMPARE_RESULT, RTX_ARITHMETIC_MASK, RTX_ARITHMETIC_RESULT,
3596 RTX_BINARY_MASK, RTX_BINARY_RESULT, RTX_COMMUTATIVE_MASK,
3597 RTX_COMMUTATIVE_RESULT, RTX_NON_COMMUTATIVE_RESULT,
3598 RTX_EXPR_FIRST, RTX_EXPR_LAST, UNARY_P, BINARY_P,
3599 ARITHMETIC_P, COMMUTATIVE_ARITHMETIC_P, COMPARISON_P,
3600 SWAPPABLE_OPERANDS_P, NON_COMMUTATIVE_P, COMMUTATIVE_P,
3601 OBJECT_P): New macros.
3602 * config/sparc/sparc.c (noov_compare_op): Remove register
3605 2004-03-03 Kazu Hirata <kazu@cs.umass.edu>
3607 * target.h: Remove texi jargons in comments.
3609 2004-03-02 Kazu Hirata <kazu@cs.umass.edu>
3611 * config/h8300/lib1funcs.asm (___fixunssfsi): Change the
3615 2004-02-27 Kazu Hirata <kazu@cs.umass.edu>
3616 * config/h8300/fixunssfsi.c (__fixunssfsi): Enable on H8/300
3618 * config/h8300/lib1funcs.asm (___fixunssfsi): Remove.
3619 * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _fixunssfsi_asm.
3621 2004-03-02 Kazu Hirata <kazu@cs.umass.edu>
3623 * doc/md.texi (cbranchmode4): New.
3625 2004-03-02 Eric Christopher <echristo@redhat.com>
3627 * config/mips/mips16.S: Change fixsfsi and fixdfsi to
3629 * config/mips/mips.c (mips_init_libfuncs): Change accordingly.
3630 * config/mips/t-elf (LIB1ASMFUNCS): Ditto.
3631 * config/mips/t-isa3264 (LIB1ASMFUNCS): Ditto.
3632 * config/mips/t-r3900 (LIB1ASMFUNCS): Ditto.
3634 2004-03-02 Richard Henderson <rth@redhat.com>
3637 * coverage.c (coverage_counter_ref): Set MEM_NOTRAP_P.
3638 * optabs.c (prepare_cmp_insn): Force trapping memories to registers
3639 before the compare, if flag_non_call_exceptions.
3641 2004-03-02 Richard Henderson <rth@redhat.com>
3644 * stmt.c (expand_computed_goto): Do do_pending_stack_adjust before
3645 emitting the label, not after.
3647 2004-03-02 Stephane Carrez <stcarrez@nerim.fr>
3649 * config/m68hc11/m68hc11.c (m68hc11_addr_mode): New variable.
3650 (m68hc11_mov_addr_mode): Likewise.
3651 (m68hc11_override_options): Initialize them based on target.
3652 (register_indirect_p): Allow a MEM for indirect addressing modes and
3653 use flags to control what is allowed.
3654 (m68hc11_small_indexed_indirect_p): Use m68hc11_mov_addr_mode for
3655 supported addressing modes.
3656 (m68hc11_register_indirect_p): Use m68hc11_addr_mode.
3657 (go_if_legitimate_address_internal): Likewise.
3658 (m68hc11_indirect_p): Likewise and check the mode.
3659 (print_operand): Allow a (MEM (MEM)) and generate indirect addressing.
3661 2004-03-02 Kazu Hirata <kazu@cs.umass.edu>
3663 * builtins.c (BUILTIN_SETJMP_FRAME_VALUE): Remove.
3664 (expand_builtin_setjmp_setup): Use
3665 targetm.builtin_setjmp_frame_value instead of
3666 BUILTIN_SETJMP_FRAME_VALUE.
3667 * system.h (BUILTIN_SETJMP_FRAME_VALUE): Poison.
3668 * target-def.h (TARGET_BUILTIN_SETJMP_FRAME_VALUE): New.
3669 (TARGET_INITIALIZER): Add TARGET_BUILTIN_SETJMP_FRAME_VALUE.
3670 * target.h (gcc_target): Add builtin_setjmp_frame_value.
3671 * targhooks.c (default_builtin_setjmp_frame_value): New.
3672 * targhooks.h: Add a prototype for
3673 default_builtin_setjmp_frame_value.
3674 * doc/tm.texi (BUILTIN_SETJMP_FRAME_VALUE): Change to
3675 TARGET_BUILTIN_SETJMP_FRAME_VALUE.
3677 2004-03-02 Stephane Carrez <stcarrez@nerim.fr>
3679 * config/m68hc11/m68hc11.md (move peephole2): New peepholes to optimize
3681 (add peepholes): New peepholes to optimize sequences adding small
3683 (bset peepholes): New peepholes to transform an OR in a bset form
3684 (bclr peepholes): Likewise for bclr form.
3685 (cmp peepholes): New peepholes to avoid register copies when comparing.
3687 2004-03-02 Stephane Carrez <stcarrez@nerim.fr>
3689 * config/m68hc11/m68hc11.md ("*pushdi_internal"): New insn and split
3690 to separate push from moves.
3691 ("*pushdf_internal"): Likewise.
3692 ("*pushsf_internal"): Likewise.
3693 ("*pushsi_internal"): Likewise.
3694 ("movdi_internal"): Use define_insn_and_split; non push operand.
3695 ("movdf_internal"): Likewise.
3696 ("movsf_internal"): Likewise.
3697 ("movsi_internal"): Likewise.
3698 ("*movhi_68hc12", "*addhi3_68hc12"): Fix and tune constraints
3699 ("*addhi3", "*subhi3", "*andhi3_mem", "*iorhi3_mem"): Likewise.
3700 ("*ashlsi3_const1", "*lshrsi3_const1"): Likewise.
3702 2004-03-02 Stephane Carrez <stcarrez@nerim.fr>
3704 * config/m68hc11/m68hc11.md ("tstqi_z_used"): Use define_insn_and_split.
3705 ("cmphi_z_used", "cmpqi_z_used"): Likewise.
3706 ("movstrictsi", "movstricthi", "movstrictqi"): Likewise.
3707 ("anddi3", "andsi3", "iordi3", "iorsi3"): Likewise.
3708 ("xordi3", "xorsi3", "*logicalsi3_zexthi"): Likewise.
3709 ("*logicalsi3_zextqi", "*logicalhi3_zexthi_ashift8"): Likewise.
3710 ("logicalhi3_zexthi", "*logicalsi3_silshr16"): Likewise.
3711 ("*logicalsi3_silshl16", "*logicalsi3_silshl16_zext"): Likewise.
3712 ("*ashldi3_const32", "*ashldi3_const1", "addsi_silshr16"): Likewise.
3713 ("addsi_andshr16", "*ashlsi3_const16_zexthi"): Likewise.
3714 ("*lshrdi3_const32", "*lshrdi_const1"): Likewise.
3716 2004-03-02 Stephane Carrez <stcarrez@nerim.fr>
3718 * config/m68hc11/m68hc11.md (SOFT_TMP_REGNUM): Define.
3719 (SOFT_XY_REGNUM): Define.
3720 (cmp split): Use the above instead of hard coded numbers.
3721 (8-bit op split): No need to check the mode; allow Q_REG.
3722 (ashift split): Adjust the first operand if it uses the SP and we
3723 are pushing the shifted value.
3724 (plus shift split): Fix when a source is in register D+X.
3725 ("doloop_end"): Pass dummy arguments to gen_rtx_NE.
3727 2004-03-02 Stephane Carrez <stcarrez@nerim.fr>
3729 * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix when
3730 comparing with Z register.
3732 2004-03-02 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3734 * cfgloop.h (struct loop_desc): Removed.
3735 (struct loop): Fields simple, desc and has_desc removed.
3736 (simple_loop_p, count_loop_iterations): Declaration removed.
3737 * cfgloopanal.c (struct unmark_altered_insn_data): Removed.
3738 (unmark_altered, blocks_invariant_registers, unmark_altered_insn
3739 blocks_single_set_registers, invariant_rtx_wrto_regs_p_helper,
3740 invariant_rtx_wrto_regs_p, test_for_iteration, constant_iterations,
3741 simple_loop_exit_p, variable_initial_value, variable_initial_values,
3742 simple_condition_p, simple_increment, count_strange_loop_iterations,
3743 inverse, fits_in_mode_p, simple_loop_p, count_loop_iterations):
3745 * loop-iv.c (check_simple_exit, find_simple_exit): Update comments.
3747 2004-03-02 Kazu Hirata <kazu@cs.umass.edu>
3749 * genattrtab.c: Don't handle MATCH_INSN.
3750 * genrecog.c: Likewise.
3751 * gensupport.c: Likewise.
3752 * rtl.def (match_insn): Remove.
3753 * doc/md.texi (match_insn, match_insn2): Remove.
3755 2004-03-02 Mark Mitchell <mark@codesourcery.com>
3757 * doc/c-tree.texi (DECL_ASSEMBLER_NAME): Mention that using this
3758 macro results in memory allocation.
3760 2004-03-02 David O'Brien <obrien@FreeBSD.org>
3762 * config/freebsd-spec.h (FBSD_DYNAMIC_LINKER): Add.
3763 * config/alpha/freebsd.h (SUBTARGET_EXTRA_SPECS): Define
3764 %(fbsd_dynamic_linker),
3765 (LINK_SPEC): Use %(fbsd_dynamic_linker), and sync style with
3766 config/i386/freebsd.h
3767 * config/arm/freebsd.h: Ditto.
3768 * config/i386/freebsd.h: Ditto.
3769 * config/i386/freebsd64.h: Ditto.
3770 * config/ia64/freebsd.h: Ditto.
3771 * config/rs6000/sysv4.h: Ditto.
3772 * config/sparc/freebsd.h: Ditto.
3774 2004-03-02 Loren James Rittle <ljrittle@acm.org>
3776 * gcc/doc/install.texi (*-*-freebsd*): Update target information.
3778 2004-03-02 Kazu Hirata <kazu@cs.umass.edu>
3780 * rtl.def (define_combine): Remove.
3782 2004-03-02 Kazu Hirata <kazu@cs.umass.edu>
3784 * config/h8300/h8300.md: Tweak formatting.
3786 2004-03-02 Kazu Hirata <kazu@cs.umass.edu>
3788 * config/h8300/h8300.md (*cmphi_h8300): Rename to
3790 (*cmphi_h8300hs): Rename to *cmphi_h8300hs_znvc.
3792 2004-03-01 Mark Mitchell <mark@codesourcery.com>
3795 * gcc.c (process_command): Remove const-qualification from argv.
3798 2004-03-02 Kazu Hirata <kazu@cs.umass.edu>
3800 * config/h8300/h8300.md (pushqi1_h8300hs): Rename to
3801 pushqi1_h8300hs_advanced. Adjust its caller.
3802 (pushhi1_h8300hs): Rename to pushhi1_h8300hs_advanced.
3805 2004-03-02 Nicolas Roche <roche@act-europe.fr>
3807 * Makefile.in (install-libgcc, install-multilib): Pass
3808 mkinstalldirs var to libgcc.mk.
3810 2004-03-01 Kazu Hirata <kazu@cs.umass.edu>
3812 * system.h (DBX_OUTPUT_STANDARD_TYPES): Poison.
3813 * doc/tm.texi (DBX_OUTPUT_STANDARD_TYPES): Remove.
3815 2004-03-01 Kazu Hirata <kazu@cs.umass.edu>
3817 * config/h8300/h8300.c (gtle_operator): Accept GT and LE.
3818 * config/h8300/h8300.md: Split several peephole2's, each into
3821 2004-03-02 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3823 * dominance.c (recount_dominator): Handle postdominators.
3825 2004-03-01 Richard Sandiford <rsandifo@redhat.com>
3827 * config/mips/mips-protos.h (enum mips_symbol_type): Move from mips.h.
3828 (NUM_SYMBOL_TYPES): Likewise.
3829 (SYMBOL_64_HIGH, SYMBOL_64_MID, SYMBOL_64_LOW): New symbol types.
3830 (mips_unspec_address): Declare.
3831 (mips_gotoff_page, mips_gotoff_global): Delete.
3832 * config/mips/mips.h (PREDICATE_CODES): Add general_symbolic_operand.
3833 * config/mips/mips.c (enum mips_symbol_type, NUM_SYMBOL_TYPES): Delete.
3834 (mips_symbolic_constant_p, mips_symbolic_address_p)
3835 (mips_symbol_insns): Handle new symbol types.
3836 (general_symbolic_operand): New predicate.
3837 (mips_unspec_address): Make extern.
3838 (mips_gotoff_page, mips_gotoff_global): Delete.
3839 (override_options): Allow -mabi=64 -mno-abicalls -mexplicit-relocs.
3840 Handle new symbol types.
3841 * config/mips/mips.md (*lea_high64, *lea64): New patterns.
3842 (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_disp[sd]i): Call
3843 mips_unspec_address directly.
3844 * doc/invoke.texi: Remove the -mabi=64 -mno-abicalls exception from
3845 the documentation of -mexplicit-relocs.
3847 2004-03-01 Jeff Law <law@redhat.com>
3849 * fold-const.c (fold): An equality comparison of a non-weak object
3850 against zero has a known result. Similarly an equality comparison
3851 of the address of two non-weak, unaliased symbols has a known result.
3853 * ggc-page.c (struct page_entry): New field PREV.
3854 (ggc_alloc): Update PREV field appropriately.
3855 (sweep_pages): Likewise.
3856 (ggc_free): Likewise. Use PREV field rather than loop to
3857 improve ggc_free performance.
3859 2004-03-01 Richard Sandiford <rsandifo@redhat.com>
3861 * config/mips/mips.c (mips_output_division): Use the division
3862 instruction to fill the delay slot of a zero check.
3863 (mips_idiv_insns): Adjust accordingly.
3865 2004-03-01 Nathanael Nerode <neroden@gcc.gnu.org>
3867 * config.gcc: Create a default tmake_file for linux, and use
3868 it in all but two linux clauses. Comment those two.
3870 2004-03-01 Paolo Bonzini <bonzini@gnu.org>
3872 * combine.c (try_combine): Do not refer to is_replaced.
3873 (gen_lowpart_for_combine): Perverse subregs now have a
3874 more politically correct name.
3875 * cse.c (cse_insn): Likewise.
3876 * jump.c: Fix bogus reference to delete_insn.
3878 2004-02-29 Mark Mitchell <mark@codesourcery.com>
3881 * dwarf2out.c (gen_enumeration_type_die): Output all enumeration
3882 constants as signed values.
3885 * c-tree.h (readonly_warning): Rename to ...
3886 (readonly_error): ... this.
3887 * c-typeck.c (build_unary_op): Adjust accordingly.
3888 (readonly_warning): Rename to ...
3889 (readonly_error): ... this and issue errors, not warnings.
3890 (build_modify_expr): Call readonly_error, not readonly_warning.
3891 (c_expand_asm_operands): Likewise.
3892 * tree-inline.c (optimize_inline_calls): Do not inline functions
3893 after errors have occurred.
3895 2004-02-29 Nathanael Nerode <neroden@gcc.gnu.org>
3897 * configure.ac: Rearrange some threading code for clarity;
3898 add section comment.
3899 * configure: Regenerate.
3901 2004-02-29 Kazu Hirata <kazu@cs.umass.edu>
3903 * passes.c, config/frv/frv.c, config/sh/sh.c: Fix comment
3905 * doc/cppopts.texi: Fix a typo.
3907 2004-02-29 Kazu Hirata <kazu@cs.umass.edu>
3909 * config/i386/i386.md: Fix formatting.
3911 2004-02-29 Nathanael Nerode <neroden@gcc.gnu.org>
3913 * configure.ac: Add some comments delineating sections of code.
3915 * doc/install.texi: Note that libada uses autoconf 2.57 also.
3917 * doc/install.texi: Fix idiot typo in previous commit.
3919 * doc/install.texi: Update for conversion of intl to autoconf 2.57.
3921 2004-02-29 Kazu Hirata <kazu@cs.umass.edu>
3923 * config/h8300/h8300.md: Add comments about peephole2's.
3925 2004-02-29 Kazu Hirata <kazu@cs.umass.edu>
3927 * config/h8300/h8300.md: Tweak operand numbers of some
3930 2004-02-29 Kazu Hirata <kazu@cs.umass.edu>
3932 * config/h8300/h8300.md: Tweak comments about peephole2's.
3934 2004-02-29 Waldek Hebisch <hebisch@math.uni.wroc.pl>
3937 * function.c (uninitialized_vars_warning): Use DECL_RTL_SET_P
3938 instead of testing whether DECL_RTL is not NULL.
3940 2004-02-28 Kazu Hirata <kazu@cs.umass.edu>
3942 * config/sh/sh.c: Fix formatting.
3944 2004-02-28 Kazu Hirata <kazu@cs.umass.edu>
3946 * config/sh/sh.c: Convert to ISO-C.
3948 2004-02-28 Andrew Pinski <pinskia@physics.uc.edu>
3950 * c-typeck.c (tagged_types_tu_compatible_p): Fix pasto in
3953 * config/darwin.h (machopic_finish): Output stub even if the
3954 symbol is already defined.
3956 2004-02-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3958 * pa64-hpux.h (LIB_SPEC): Fix linking under HP-UX 11.00 with -p and -pg.
3960 2004-02-28 Kazu Hirata <kazu@cs.umass.edu>
3962 * genattr.c (main): Don't define
3963 TRADITIONAL_PIPELINE_INTERFACE or DFA_PIPELINE_INTERFACE.
3964 * system.h (TRADITIONAL_PIPELINE_INTERFACE): Poison.
3965 (DFA_PIPELINE_INTERFACE): Likewise.
3966 * doc/tm.texi (TRADITIONAL_PIPELINE_INTERFACE): Remove.
3967 (DFA_PIPELINE_INTERFACE): Likewise.
3969 2004-02-28 Richard Sandiford <rsandifo@redhat.com>
3971 * config/mips/mips.md (tstsi, tstdi): Delete.
3973 2004-02-28 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
3975 * config/mips/mips.c (override_options): Remove an obsolete
3976 duplicate definition of the "e" constraint.
3977 * config/mips/mips.h: Update a comment accordingly.
3979 2004-02-28 Maciej W. Rozycki <macro@ds2.pg.gda.pl>
3981 * config/mips/mips.md: Complete the unfinished R4000
3982 multiply/shift errata workaround. Improve documentation.
3983 (hazard): Use TARGET_FIX_R4000 to decide whether an "imul" instruction
3985 (mulsi3, mulsi3_internal, mulsi3_r4000): Use TARGET_FIX_R4000.
3986 (muldi3, muldi3_internal): Likewise.
3987 (muldi3_internal2): Remove, replacing with...
3988 (muldi3_mult3, muldi3_r4000): ...these new patterns.
3989 (mulsidi3): Take the errata into account.
3990 (mulsidi3_32bit): Remove, replacing with...
3991 (mulsidi3_32bit_internal, mulsidi3_32bit_r4000): ...these new patterns.
3992 (mulsidi3_64bit, mulsidi3_64bit_parts): Disable if TARGET_FIX_R4000.
3993 (umulsidi3): Take the errata into account.
3994 (umulsidi3_32bit): Remove, replacing with..
3995 (umulsidi3_32bit_internal, umulsidi3_32bit_r4000): ...these patterns.