1 2004-08-24 Zack Weinberg <zack@codesourcery.com>
3 * rtl.def: Reorganize, placing all codes used only in machine
4 descriptions at the end.
6 2004-08-24 Zack Weinberg <zack@codesourcery.com>
8 * basic-block.h (struct basic_block_def): Reorder fields to
9 eliminate interior padding. Remove 'partition' field.
10 (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
11 (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
12 (BB_COPY_PARTITION): New macros.
13 * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
14 Replace all references to the 'partition' field of a basic
15 block with new macros.
17 * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
18 * final.c (final_scan_insn): Don't handle it.
19 * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
20 instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
21 * sched-rgn.c (sched_is_disabled_for_current_region_p):
22 Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
24 2004-08-24 Nathan Sidwell <nathan@codesourcery.com>
26 * c-decl.c (c_init_decl_processing): Adjust
27 build_common_tree_nodes call.
28 * expmed.c (const_mult_add_overflow_p): Use
29 build_distinct_type_copy.
30 * stor-layout.c (early_type_list): Remove.
31 (layout_type): Don't append to early_type_list.
32 (initialize_sizetypes): Add signed_p argument.
33 (set_sizetype): Overwrite the stub type nodes directly.
34 * tree.c (copy_node_stat): Clear a type's value cache here ...
35 (build_distinct_type): ... not here.
36 (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
37 * tree.h (initialize_sizetypes): Add signed_p argument.
38 (build_common_tree_nodes): Likewise.
40 * objc/objc-act.c (get_static_reference): Use
41 build_variant_type_copy.
42 (get_protocol_reference): Likewise.
43 * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
45 2004-08-24 Richard Henderson <rth@redhat.com>
46 Andrew Pinski <apinski@apple.com>
48 * gimplify.c (gimplify_array_ref_to_plus): Delete.
49 (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
52 * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
53 ARRAY_REF also to get to the STRING_CST.
55 2004-08-24 Paul Brook <paul@codesourcery.com>
57 * config/arm/arm.c (arm_override_options): Update error message.
58 * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
59 TARGET_HARD_FLOAT_ABI.
60 (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
61 (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.
63 2004-08-24 Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
66 * config/m32r.md (movsi_sda): Add SI mode specification to
69 2004-08-24 Nick Clifton <nickc@redhat.com>
71 * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
74 2004-08-24 Nathan Sidwell <nathan@codesourcery.com>
76 * Makefile.in (PROTO_OBJS): Add errors.o.
77 * protoize.c (fancy_abort): Remove.
78 * mips-tfile.c (fancy_abort): Add parameters.
80 2004-08-24 Jonathan Wakely <redi@gcc.gnu.org>
82 * doc/trouble.texi (C++ misunderstandings): Fix example code.
84 2004-08-24 Andreas Tobler <a.tobler@schweiz.ch>
86 * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
87 (host-default.o): Add dependency on HOOKS_H.
88 * config/x-linux: Likewise.
89 * config/x-solaris: Likewise.
90 * config/i386/x-mingw32: Likewise.
91 * config/rs6000/x-darwin: Likewise.
93 2004-08-23 James E Wilson <wilson@specifixinc.com>
95 * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
98 2004-08-23 Mark Mitchell <mark@codesourcery.com>
101 * dwarf2out.c (loc_descriptor_from_tree): Robustify.
103 2004-08-23 Diego Novillo <dnovillo@redhat.com>
105 * cfg.c (check_bb_profile): Fix typos.
106 * function.c (assign_parm_is_stack_parm): Likewise.
107 * tree-nested.c: Likewise.
109 2004-08-23 Daniel Jacobowitz <dan@debian.org>
111 * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
113 (ggc_alloc_zone_1): Mark TYPE as unused. Don't save it in the chunk.
115 2004-08-23 Eric Christopher <echristo@redhat.com>
117 * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
118 * system.h (VECTOR_MODE_SUPPORTED_P): Poison.
119 * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
121 * hooks.h: Include machmode.h.
122 (hook_bool_mode_false): Declare.
123 * hooks.c (hook_bool_mode_false): Define.
124 * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
125 * stor-layout.c (layout_type): Ditto.
126 * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
127 Define to target macro.
128 * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
129 * config/arm/arm.c: Ditto. Use.
130 * config/arm/arm.h: Ditto.
131 * config/arm/arm-protos.h: Ditto.
132 * config/i386/i386.c: Ditto.
133 * config/i386/i386.h: Ditto.
134 * config/rs6000/rs6000.c: Ditto.
135 * config/rs6000/rs6000.h: Ditto.
136 * config/sh/sh.c: Ditto.
137 * config/sh/sh.h: Ditto.
138 * config/sh/sh-protos.h: Ditto.
139 * config/sh/sh.md: Use.
140 * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
141 to TARGET_VECTOR_MODE_SUPPORTED_P.
143 2004-08-23 Nathan Sidwell <nathan@codesourcery.com>
145 * Makefile.in (BUILD_ERRORS): Set to build-errors.
146 (errors.o): New target for host.
147 (build-errors.o): New target for build.
148 (genobjs): Replace errors.o with build-errors.
149 (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
150 (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
151 (fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
152 (fix-header.o): Add errors.h
153 * collect2.c (fancy_abort): Add parameters.
154 * collect2.h (fancy_abort): Don't declare.
155 * errors.h (fancy_abort): Don't declare.
156 * errors.c: Include either bconfig.h or config.h.
157 (fancy_abort): Trim filename.
158 * fix-header.c (v_fatal, fatal): Remove.
159 (progname): Remove definition.
160 (main): Set progname here.
161 * gcc.c (fancy_abort): Add parameters.
162 * gcc.h (fancy_abort): Remove declaration.
163 * gcov.c (fancy_abort): Remove.
164 * rtl.h (fancy_abort): Don't declare.
165 (abort): Don't define.
166 * tree.h (fancy_abort): Don't declare.
167 (abort): Don't define.
168 * system.h (fancy_abort): Declare.
169 (abort): Define to fancy_abort.
170 * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
172 * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
173 (usize_type, ubitsizetype): Remove.
174 * stor-layout.c (set_sizetype): Don't initialize usizetype,
176 * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
178 * tree.h (build_distinct_type_copy): New.
179 (build_type_copy): ... here. Rename to ...
180 (build_variant_type_copy): ... here.
181 * tree.c (build_qualified_type): Rename build_type_copy call.
182 (build_distinct_type_copy): New, broken out of ...
183 (build_type_copy): ... here. Rename to ...
184 (build_variant_type_copy): ... here. Use
185 build_distinct_type_copy.
186 (build_common_tree_nodes_2): Rename build_type_copy call.
187 * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
189 (handle_packed_attribute, handle_unused_attribute,
190 handle_transparanet_union_attribute, handle_aligned_attribute,
191 handle_deprecated_attribute): Likewise.
192 * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
194 * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
195 * config/rs6000/rs6000.c (rs6000_init_builtins): Use
196 build_distinct_type_copy.
198 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
200 * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR. Add mode
203 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
205 * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
207 (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
208 formerly unnamed patterns. Redefine using :P for the address. Remove
209 explicit length attributes.
211 2004-08-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
213 * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
215 (single_reachable_address): Use them.
216 (schedule_sm): Add dump.
217 (is_call_clobbered_ref): New function.
218 (determine_lsm_reg): Check whether the reference is call clobbered.
219 Only work for gimple_reg_type values.
221 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
223 * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
224 $31 store insns. Redefine using :GPR.
226 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
228 * config/mips/mips.md (P): New mode macro.
229 (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
230 (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
233 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
235 * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
236 (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants. Shuffle
237 later constants to cover the gap.
238 (load, store): New mode attributes.
239 (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
240 Use new unspec constants.
242 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
244 * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
245 (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise. Change 32-bit patterns
246 to use register_operand rather than uns_arith_operand as the predicate
247 for operand 1. Remove redundant MIPS16 force_reg() for operand 1.
248 (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
249 Redefine using :GPR. Make same predicate change here. Extend the
250 commutativity of operands 1 and 2 from the SImode version to the
252 (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
253 but with no predicate changes.
254 (*nor[sd]i3): Redefine using :GPR.
256 2004-08-23 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
258 * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
261 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
263 * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
264 * config/mips/mips.md (abs[sd]i2): Redefine using :GPR. Only use
265 branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY. Use "%."
266 rather than "%z2" (with a fake const0_rtx for operand 2).
267 (ffs[sd]i2): Redefine using :GPR.
268 (clz[sd]i2): Likewise. Use ISA_HAS_CLO_CLZ for the 64-bit case.
270 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
272 * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
274 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
276 * config/mips/mips.md (any_extend): New code macro.
277 (u, su): New code attributes.
278 ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000)
279 ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal)
280 ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart)
281 (*{s,u}mul_acc_di): Redefine using any_extend.
282 (*{,u}muls_di, *{s,u}msac_di): Likewise. Change names of patterns
283 to reflect real insn names.
284 (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator
285 with an any_extend template.
286 ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend.
289 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
291 * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
292 * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal)
293 (mul[sd]i3_r4000): Redefine using :GPR.
294 (mulsi3_mult3): Don't check TARGET_MAD separately.
295 (muldi3_mult3): Moved after mulsi_mult3.
297 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
299 * config.gcc (mips-*-*): Remove definitions of MASK_GAS and
300 OBJECT_FORMAT_ELF. Set MASK_SPLIT_ADDR by default if using GNU ld.
301 * config/mips/mips.h (MASK_GAS): Delete. Shuffle later masks down.
302 (TARGET_GAS, TARGET_MIPS_AS): Delete.
303 (TARGET_GPWORD): Define to true for n32 on IRIX.
304 (TARGET_SWITCHES): Remove -mmips-as. Turn -mgas into a no-op.
305 (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
306 (GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
307 (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
308 (MDEBUG_ASM_SPEC): Delete, folding into...
309 (SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
310 (ASM_SPEC): Inline old GAS_ASM_SPEC. Use GNU names for ABI switches.
311 (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
312 subtarget_mips_as_asm_spec, mdebug_asm_spec. Use MULTILIB_ABI_DEFAULT
313 to define asm_abi_default_spec.
314 (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
315 (TARGET_ASM_SELECT_SECTION): Delete.
316 * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
317 for non-mips16 code, removing previous workaround for SGI assemblers.
318 (TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
319 (TARGET_ASM_ALIGNED_DI_OP): Define this instead.
320 (override_options): Remove !TARGET_GAS and !have_named_sections code.
321 (print_operand): Fold TARGET_GAS conditionals into asm strings.
322 (mips_output_filename): Remove !TARGET_GAS code. Replace use of
323 ASM_STABS_OP and ASM_STABN_OP.
324 (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
325 (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
326 (mips_output_function_prologue): Remove !TARGET_GAS code.
327 (mips_select_rtx_section): Remove !have_named_sections code.
328 (mips_select_section): Delete.
329 * config/mips/mips.md (trap): Remove !TARGET_GAS check.
330 * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
331 * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
332 (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
333 * config/mips/vxworks.h (ASM_SPEC): As for mips.h.
334 * config/mips/windiss.h (ASM_SPEC): Likewise.
336 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
338 * read-rtl.c (map_value, mapping, macro_group): New structures.
339 (BELLWETHER_CODE): New macro.
340 (modes, codes, bellwether_codes): New variables.
341 (find_mode, uses_mode_macro_p, apply_mode_macro, find_code)
342 (uses_code_macro_p, apply_code_macro, apply_macro_to_string)
343 (apply_macro_to_rtx, uses_macro_p, add_condition_to_string)
344 (add_condition_to_rtx, apply_macro_traverse, add_mapping)
345 (add_map_value, initialize_macros): New functions.
346 (def_hash, def_hash_eq_p): Generalize to anything that points to,
347 or starts with, a char * field.
348 (find_macro, read_mapping, check_code_macro): New functions.
349 (read_rtx_1): New, split out from read_rtx. Handle the new
350 define_{mode,code}_{macro,attr} constructs. Use find_macro
351 to parse the name of a code or mode. Use BELLWETHER_CODE to
352 extract the format and to choose a suitable code for rtx_alloc.
353 Modify recursive invocations to use read_rtx_1.
354 (read_rtx): Call initialize_macros. Apply code and mode macros
355 to the rtx returned by read_rtx_1. Cache everything after the
356 first macro expansion for subsequent read_rtx calls.
357 * doc/md.texi: Document new .md constructs.
358 * config/mips/mips.md (GPR): New mode macro.
359 (d, si8_di5): New mode attributes.
360 (any_cond): New code macro.
361 (add[sd]i3): Redefine using :GPR.
362 (*add[sd]i3): Likewise, renaming from add[sd]i3_internal.
363 (*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming
364 previously unnamed MIPS16 patterns.
365 (*addsi3_extended): Renamed from addsi3_internal_2. Fix overly long
366 lines. Don't match (plus (const_int 0) ...).
367 (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern.
368 Use a define_split to generate the addition.
369 (sub[sd]i3): Redefine using :GPR. Turn subsi3 into a define_insn.
370 (subsi3_internal): Delete.
371 (*subsi3_extended): Renamed from subsi3_internal_2.
372 (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt)
373 (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine
374 using an any_cond template.
376 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
378 * read-rtl.c (read_rtx): Tidy use of format_ptr.
380 2004-08-23 Richard Sandiford <rsandifo@redhat.com>
382 * read-rtl.c (string_obstack): New file-scope variable.
383 (read_string, read_quoted_string, read_braced_string)
384 (read_escape): Remove obstack parameter and use string_obstack instead.
385 (read_rtx): Remove function-local rtl_obstack and initialize
386 string_obstack instead. Update call to read_string.
388 2004-08-22 Andrew Pinski <apinski@apple.com>
391 * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered
392 expression is not constant.
393 (c_finish_return): Do not go through INDIRECT_REF when looking
394 for the inner expression of an ADDR_EXPR for warning about.
396 2004-08-22 Richard Henderson <rth@redhat.com>
399 * cfgexpand.c (expand_gimple_tailcall): Detect when we can both
400 create new blocks and fall through.
401 (expand_gimple_basic_block): Update to match.
403 2004-08-22 Ulrich Weigand <uweigand@de.ibm.com>
405 * reload.c (find_reloads_address): Make return value tri-state.
406 Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded.
407 (find_reloads): Assume that reloaded addresses match 'o' or
408 EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address
409 returned 1 (not -1). Omit optional reloads for address operands
410 only if find_reloads_address returned 1 (not -1).
412 * config/s390/s390.c (legitimize_reload_address): New function.
413 * config/s390/s390-protos.h (legitimize_reload_address): Declare.
414 * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define. Call
415 legitimize_reload_address.
417 2004-08-22 Richard Hendersion <rth@redhat.com>
419 * tree.h (SAVE_EXPR_RESOLVED_P): New.
420 * gimplify.c (gimplify_save_expr): Use it.
421 * expr.c (expand_expr_real_1): Likewise. Also set DECL_IGNORED_P
422 on the temporary variable.
424 2004-08-22 Andrew Pinski <pinskia@physics.uc.edu>
426 * fold-const.c (rtl_expr_nonnegative_p): Delete.
427 * tree.h (rtl_expr_nonnegative_p): Remove.
429 2004-08-22 Steven Bosscher <stevenb@suse.de>
431 * config/i386/ppro.md (ppro_complex_insn): Add missing check
434 * combine.c (struct reg_stat): Fix comment typo.
436 2004-08-22 Joseph S. Myers <jsm@polyomino.org.uk>
438 * c-tree.h (c_sizeof_nowarn): Remove.
440 2004-08-21 Joseph S. Myers <jsm@polyomino.org.uk>
442 * c-decl.c (set_array_declarator_type): Rename to
443 set_array_declarator_inner.
444 (build_c_parm, build_attrs_declarator, build_function_declarator):
446 (make_pointer_declarator): Call build_attrs_declarator.
447 * c-tree.h (set_array_declarator_type): Rename to
448 set_array_declarator_inner.
449 (build_c_parm, build_attrs_declarator, build_function_declarator):
451 * c-parse.in (after_type_declarator,
452 parm_declarator_starttypename, parm_declarator_nostarttypename,
453 notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm,
454 firstparm): Use these functions
456 2004-08-21 Joseph S. Myers <jsm@polyomino.org.uk>
458 * c-decl.c (build_array_declarator, set_array_declarator_type,
459 start_decl, grokdeclarator, grokparms): Change boolean parameters
461 * c-tree.h (build_array_declarator, set_array_declarator_type,
462 start_decl): Update prototypes.
463 * c-decl.c, c-parse.in: All callers changed.
465 2004-08-21 Mike Stump <mrs@apple.com>
467 * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to...
468 (darwin_fix_and_continue): Likewise.
469 (darwin_fix_and_continue_switch): Likewise.
470 * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool.
471 (darwin_fix_and_continue): Likewise.
472 (darwin_fix_and_continue_switch): Likewise.
474 2004-08-21 Danny Smith <dannysmith@users.sourceforge.net>
477 * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix):
478 Remove, merging into ...
479 (gen_stdcall_or_fastcall_suffix): New function, returning tree
480 rather than const char*, and accepting additional parameter.
481 Don't add suffix to '*'-prefixed symbols or variadic functions.
482 (i386_pe_encode_section_info): Adjust for call to new function.
483 Call change_decl_assembler_name.
485 2004-08-20 Mike Stump <mrs@apple.com>
487 * config/darwin.c (machopic_indirect_data_reference): Mark
489 * config/386/386.c (darwin_local_data_pic): Add.
490 (legitimate_constant_p): Reorder so that PLUS handling runs
491 before darwin_local_data_pic to match the ordering in
492 legitimate_pic_address_disp_p and so that MINUS runs after
493 darwin_local_data_pic as otherwise the darwin_local_data_pic
494 logic can be skipped, which would be very bad.
495 (legitimate_pic_address_disp_p): Move from from here to
496 darwin_local_data_pic so it can be reused.
498 2004-08-21 Alan Modra <amodra@bigpond.net.au>
500 * config/rs6000/linux64.h (DOT_SYMBOLS): Define.
501 (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version.
502 (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS.
503 (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise.
504 (RS6000_ABI_NAME): Define as "linux".
505 (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols.
506 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select
507 ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT.
508 * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl.
509 * config/rs6000/rs6000.c (dot_symbols): New global var.
510 (rs6000_output_function_entry): New function, modified for
512 (print_operand <case 'z'>): ..extracted from here.
513 (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS.
514 (rs6000_output_function_epilogue): Likewise.
515 (rs6000_elf_declare_function_name): Likewise.
516 * config/rs6000/rs6000.h (DOT_SYMBOLS): Define.
517 (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS.
518 * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE.
519 * configure: Regenerate.
520 * config.in: Regenerate.
522 2004-08-20 Mark Mitchell <mark@codesourcery.com>
524 * reload.c (find_reloads_address): Fix thinko in previous change.
526 * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
529 2004-08-20 Jakub Jelinek <jakub@redhat.com>
531 PR rtl-optimization/17099
532 * combine.c (force_to_mode): Check if inner_mask has any bits set
533 outside of GET_MODE (x) instead of op_mode.
535 2004-08-20 Mark Mitchell <mark@codesourcery.com>
537 * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
539 * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo.
540 (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler.
541 * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5
543 (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
545 * config/arm/t-symbian: New file.
547 2004-08-20 Andrew Pinski <apinski@apple.com>
549 * regrename.c (kill_value_regno): ANSIfy.
551 2004-08-20 Dale Johannesen <dalej@apple.com>
553 * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
555 2004-08-20 Daniel Jacobowitz <dan@debian.org>
557 * regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
558 (kill_value_regno): New function, derived from kill_value.
559 (kill_value): Update.
560 (copyprop_hardreg_forward_1): Update call to kill_value_regno.
562 2004-08-20 Daniel Berlin <dberlin@dberlin.org>
564 Fix PR tree-optimization/17111
565 * tree-ssa-pre.c (create_value_expr_from): Don't change the types
566 of non-value_handles.
567 (bitmap_set_contains): All constants are in every set.
569 2004-08-20 Nathan Sidwell <nathan@codesourcery.com>
571 * fold-const.c (round_up, round_down): Use build_int_cst.
572 Optimize common case.
574 2004-08-20 Zack Weinberg <zack@codesourcery.com>
575 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
577 * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section,
578 one_only_data_section): Rename to som_readonly_data_section,
579 som_one_only_readonly_data_section and som_one_only_data_section.
580 * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP,
581 NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete
583 (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP,
584 NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual
586 (pa_select_section): Use renamed section functions.
587 * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
588 SOM_READONLY_DATA_SECTION_FUNCTION,
589 SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
590 SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION):
592 * config/pa/som.h: ... not here.
593 (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
594 ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP,
595 ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
596 ONE_ONLY_DATA_SECTION_ASM_OP): Delete.
597 (READONLY_DATA_SECTION): Use som_readonly_data_section.
599 2004-08-20 Nathan Sidwell <nathan@codesourcery.com>
601 * fold-const.c (int_const_binop): Don't generate non-overflowing
602 size-types specially.
603 (fold_convert_const): Likewise.
605 * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
606 clear cache on copied sizetype.
608 2004-08-20 Ben Elliston <bje@au.ibm.com>
610 * configure.ac: Don't escape apostrophe in --enable-coverage help.
611 * configure: Regenerate.
613 2004-08-20 Danny Smith <dannysmith@users.sourceforge.net>
616 * gcc.c (struct stat input_stat): Don't define if
617 HOST_LACKS_INODE_NUMBERS
618 (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather
619 than stat to determine if temp file is same as input file.
620 * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS.
621 * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS
623 2004-08-20 Richard Sandiford <rsandifo@redhat.com>
625 * configure.ac (mips*-*-*): Print an error if not using GAS.
626 * configure: Regenerated.
627 * doc/install.texi: Remove irix5 bullet from --with-gnu-as. Remove
628 comments about buggy MIPSpro assemblers.
629 * config.gcc (mips-sgi-irix[56]*): Combine stanzas. Include elfos.h
630 before mips.h and iris.h after it. Use t-iris and t-slibgcc-irix.
631 Use iris5.h only for IRIX 5 configs. Use iris6.h and t-iris6 for
632 IRIX 6 configs. Define IRIX_USING_GNU_LD if using GNU ld.
633 * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
634 (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
635 (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
636 (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
637 (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
638 of more general IRIX 6 definitions.
639 (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
640 (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
641 (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
642 (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
643 (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
644 (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
645 (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
646 (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
647 (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
648 (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
649 (LINK_SPEC): Move most of definition to iris.h.
650 (SUBTARGET_LINK_SPEC): New macro.
651 (IRIX_STARTFILE_SPEC): Fold into...
652 (STARTFILE_SPEC): ...here.
653 (IRIX_ENDFILE_SPEC): Fold into...
654 (ENDFILE_SPEC): ...here.
655 * config/mips/iris6.h (TARGET_IRIX5): Remove override.
656 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
657 (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
658 (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
659 (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
660 (TARGET_OS_CPP_BUILTINS): Likewise. Guard IRIX6-specific bits.
661 (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
662 (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
663 (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
664 (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
665 (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
666 (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
667 (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
668 (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
669 (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
670 (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
671 (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
672 (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
673 (TARGET_IRIX6): Define to 1.
674 (DRIVER_SELF_SPECS): Define.
675 (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
676 (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
677 (SUBTARGET_LINK_SPEC): New macro.
678 (IRIX_STARTFILE_SPEC): Fold into...
679 (STARTFILE_SPEC): ...here. Remove !mabi=* case.
680 (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
681 (LIB_SPEC, LIBGCC_SPEC): Use them.
682 (LIB_SPEC): Remove !mabi=* case.
683 (IRIX_ENDFILE_SPEC): Fold into...
684 (ENDFILE_SPEC): ...here. Remove !mabi=* case.
685 * config/mips/mips-protos.h (irix_output_external_libcall): Delete.
686 * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
687 (TARGET_IRIX6): New macro.
688 (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
689 (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
690 (LABEL_AFTER_LOC): Delete.
691 * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
692 (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
693 (mips_build_builtin_va_list): Check TARGET_IRIX6.
694 (override_options): Remove TARGET_SGI_O32_AS-related code.
695 (irix_output_external_libcall): Make static.
696 (mips_output_filename): Avoid use of SET_FILE_NUMBER and
698 (mips_file_start): Tidy guard for ABI sections. Remove use of
699 ABICALLS_ASM_OP; use .abicalls instead.
700 (mips_output_aligned_decl_common, mips_declare_object_name)
701 (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
702 (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
703 .globl foo .text directives.
704 (irix_asm_named_section_1, irix_asm_named_section)
705 (irix_section_align_entry, irix_section_align_htab)
706 (irix_orig_asm_out_file, irix_section_align_entry_eq)
707 (irix_section_align_entry_hash, irix_asm_output_align)
708 (irix_file_start, irix_section_align_1, copy_file_data)
709 (irix_file_end, irix_section_type_flags): Delete.
710 * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
711 Use standard section syntax. Remove protective "jr $31".
712 (__gcc_fini): Likewise .gcc_fini.
713 * config/mips/irix-crtn.asm: Adjust sections accordingly.
714 * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
716 * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
718 (EXTRA_MULTILIB_PARTS): Define.
719 * config/mips/t-iris6: Remove bogus comment.
720 (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
721 * config/mips/iris5gas.h, config/mips/iris5gld.h,
722 config/mips/iris6gas.h, config/mips/iris6gld.h,
723 config/mips/t-iris5-as, config/mips/t-iris5-gas
724 config/mips/t-irix-gld: Delete.
725 * config/mips/iris.h: New file.
726 * config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
728 2004-08-20 Richard Earnshaw <rearnsha@arm.com>
730 * postreload.c (reload_cse_move2add): Allow any condjump, but check
731 that the implicit set isn't clobbered in the jump insn.
733 2004-08-19 Mark Mitchell <mark@codesourcery.com>
735 * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove.
736 * optabs.c (init_optabs): Don't check it.
737 * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define.
738 * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove.
740 2004-08-18 Andreas Krebbel <krebbel1@de.ibm.com>
742 * config/s390/s390.md (s390_warn_framesize_string)
743 (s390_warn_dynamic_string, s390_stack_size_string)
744 (s390_stack_guard_string): New global string variables.
745 (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size)
746 (s390_stack_guard): New global variables.
747 (override_options): Added checks for the new options.
748 (s390_emit_prologue): Emit stack check and trap code and perform
749 compile time stack size checking.
751 * config/s390/s390.h (TARGET_OPTIONS): Added new options
752 "warn-framesize", "warn-dynamicstack", "stack-size" and
755 * doc/invoke.texi: Added documentation for the new options.
757 2004-08-19 Ulrich Weigand <uweigand@de.ibm.com>
759 * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen
760 to eliminate warning.
761 (linear_search_fdes): Declare p as unsigned.
762 (binary_search_mixed_encoding_fdes): Likewise.
763 * unwind-dw2.c (get_cie_encoding): Cast argument to strlen
764 to eliminate warning.
765 * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing
768 2004-08-19 Ulrich Weigand <uweigand@de.ibm.com>
770 * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype.
771 * config/s390/s390.c (preferred_la_operand_p): Accept two operands
772 instead of one. Check for strictly legitimate address.
773 * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call
774 to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate.
776 2004-08-19 Eric Christopher <echristo@redhat.com>
778 * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove.
779 * langhooks.h (unsave_expr_now): Ditto.
780 * tree.h (unsave_expr_1): Remove prototype.
781 (lhd_unsave_expr_now): Rename to unsave_expr_now.
782 * tree-inline.c (unsave_expr_1): Move here
783 from tree.c. Make static.
784 (unsave_expr_now): Rename from lhd_unsave_expr_now.
785 * tree-sra.c: Fix up for rename.
786 * tree-ssa-copy.c: Ditto.
788 * tree.c (unsave_expr_1): Move to tree-inline.c.
790 2004-08-19 Caroline Tice <ctice@apple.com>
792 * config/i386/cygming.h (switch_to_section): Fix typo (change
793 in_unlikely_text_section to in_unlikely_executed_text).
795 2004-08-19 Daniel Berlin <dberlin@dberlin.org>
797 * vec.h (VEC_lower_bound): New macro.
799 2004-08-19 Richard Sandiford <rsandifo@redhat.com>
802 * config/mips/mips.c (struct mips_arg_info): Delete num_bytes.
803 (mips_arg_info): Update accordingly. Remove common treatment of fpr_p;
804 treat each ABI separately. Deal with n32/n64 complex float arguments.
805 (function_arg): Add associated complex handling here.
807 2004-08-19 Richard Henderson <rth@redhat.com>
809 * config/arm/arm.c (arm_gen_load_multiple): Use
810 adjust_automodify_address. Take base memory and offset instead
811 of unchanging/struct/scalar bits.
812 (arm_gen_store_multiple): Likewise.
813 (arm_gen_movmemqi): Use adjust_automodify_address.
814 * config/arm/arm-protos.h: Update decls.
815 * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call.
816 (store_multiple): Similarly.
818 2004-08-19 J"orn Rennecke <joern.rennecke@superh.com>
820 * regclass.c (globalize_reg): Update call_really_used_regs.
822 2004-08-19 Nathan Sidwell <nathan@codesourcery.com>
824 * doc/invoke.texi (integer-share-limit): Document.
826 * tree.h (TYPE_CACHED_VALUES_P): New.
827 (TYPE_CACHED_VALUES): New.
828 (TYPE_ORIG_SIZE_TYPE): Adjust.
829 * tree.def (INTEGER_CST): Update documentation.
830 * tree.c: Inlcude params.h.
831 (build_int_cst): Cache small values.
832 (build_type_copy): Do not copy the value cache.
833 * c-common.c (c_common_nodes_and_builtins): Add comment, remove
835 * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting.
836 * expmed.c (const_mult_add_overflow_p): Clear type copy's value
838 * fold-const.c (force_fit_type): Copy value when setting
840 (int_const_binop): Likewise.
841 * stor-layout.c: Include params.h
842 (set_sizetype): Create values cache.
843 (fixup_unsigned_type): Set UNSIGNED_P before caching any values.
844 * params.def (PARAM_INTEGER_SHARE_LIMIT): New.
845 * params.h (INTEGER_SHARE_LIMIT): New.
846 * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H.
848 2004-08-19 Paolo Bonzini <bonzini@gnu.org>
850 * gimplify.c (gimplify_minimax_expr): Remove.
851 (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
853 2004-08-19 Dorit Naishlos <dorit@il.ibm.com>
855 * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
856 STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
858 2004-08-19 Mark Mitchell <mark@codesourcery.com>
860 * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
862 2004-08-18 Andrew Pinski <apinski@apple.com>
864 * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
866 2004-08-18 Mark Mitchell <mark@codesourcery.com>
868 * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
869 (__aeabi_ul2f): Likewise.
871 2004-08-18 Richard Henderson <rth@redhat.com>
873 * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block
874 move to rtl completely.
875 (struct meminsnbuf, xtensa_emit_block_move): Remove.
876 (xtensa_find_mode_for_size): Remove.
877 * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove.
878 * config/xtensa/xtensa.md (movmemsi_internal): Remove.
880 2004-08-18 Richard Henderson <rth@redhat.com>
882 * config/mcore/mcore.c (mode_from_align): Remove DImode.
883 (block_move_sequence): Rewrite to use adjust_address.
884 (mcore_expand_block_move): Cleanup logic. Accept only operands.
885 Return boolean indicating success/failure.
886 * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl.
887 * config/mcore/mcore.md (movmemsi): Update to match.
889 2004-08-18 Mike Stump <mrs@apple.com>
891 * doc/invoke.texi (-mfix-and-continue): Add support for
892 fast turn around debugging.
893 (-ffix-and-continue): Likewise.
894 (-mindirect-data): Likewise.
895 (-findirect-data): Likewise.
896 * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise.
897 (indirect_data): Likewise.
898 (machopic_data_defined_p): Likewise.
899 (machopic_output_indirection): Likewise.
900 (darwin_encode_section_info): Likewise.
901 (darwin_fix_and_continue): Likewise.
902 (darwin_fix_and_continue_switch): Likewise.
903 * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise.
904 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
905 (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise.
906 (SUBTARGET_OPTIONS): Likewise.
907 (darwin_fix_and_continue): Likewise.
908 (darwin_fix_and_continue_switch): Likewise.
909 (TARGET_FIX_AND_CONTINUE): Likewise.
910 * config/rs6000.c (rs6000_emit_prologue): Likewise.
912 2004-08-19 Steven Bosscher <stevenb@suse.de>
914 * basic-block.h (struct edge_def): Remove crossing_edge.
915 (EDGE_CROSSING): New define.
916 (EDGE_ALL_FLAGS): Update.
917 * bb-reorder.c (find_traces_1_round, better_edge_p,
918 find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges,
919 find_jump_block, fix_crossing_conditional_branches,
920 fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
921 Replace all occurences of crossing_edge with an edge flag check
923 * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
924 try_crossjump_bb): Likewise.
925 * cfglayout.c (fixup_reorder_chain): Likewise.
926 * cfgrtl.c (force_nonfallthru_and_redirect,
927 commit_one_edge_insertion): Likewise.
929 * Makefile.in (cfganal.o): Depend on TIMEVAR_H.
930 * tree-flow.h (compute_dominance_frontiers): Move prototype...
931 * basic-block.h: ...here.
932 * tree-cfg.c (compute_dominance_frontiers_1,
933 compute_dominance_frontiers): Move from here...
934 * cfganal.c: ...to here. Include timevar.h.
936 2004-08-18 James E Wilson <wilson@specifixinc.com>
938 * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=.
939 * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes.
941 * config/mips/mips.md (type): Add frdiv.
942 (divsf3+1, divsf3+2): Change type to frdiv.
943 * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe,
944 ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New.
946 * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv.
947 * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise.
948 * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise.
949 * config/mips/5000.md (r5k_fdiv_single): Likewise.
950 * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise.
951 * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise.
952 * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise.
953 * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise.
954 * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise.
955 * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double):
957 * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
959 2004-08-18 Robert Bowdidge <bowdidge@apple.com>
961 * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
962 get regression tester working again.
964 2004-08-18 Zack Weinberg <zack@codesourcery.com>
966 * insn-notes.def, reg-notes.def: New files.
967 * rtl.h: Use them to define enum insn_note and enum reg_note.
968 * rtl.c: Use them to define note_insn_name and reg_note_name.
969 * Makefile.in (RTL_BASE_H): Update.
971 * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
972 renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
974 2004-08-18 Richard Earnshaw <rearnsha@arm.com>
976 * arm.c (arm_size_rtx_costs): New function.
977 (arm_override_options): Use it if optimizing for space.
979 2004-08-18 Richard Henderson <rth@redhat.com>
981 * emit-rtl.c (gen_const_mem): New.
982 * rtl.h (gen_const_mem): Declare.
983 * expr.c (do_tablejump): Use it.
984 * varasm.c (force_const_mem): Likewise.
985 * config/darwin.c (machopic_indirect_data_reference): Likewise.
986 (machopic_legitimize_pic_address): Likewise.
987 * config/arm/arm.c (legitimize_pic_address): Likewise.
988 * config/i386/i386.c (legitimize_pic_address): Likewise.
989 (legitimize_tls_address): Likewise.
990 * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
991 * config/ia64/ia64.md (load_fptr): Likewise.
992 * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
993 * config/pa/pa.c (legitimize_pic_address): Likewise.
994 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
995 (rs6000_emit_move): Likewise.
996 * config/s390/s390.c (legitimize_pic_address): Likewise.
997 (legitimize_tls_address): Likewise.
998 * config/s390/s390.md (casesi): Likewise.
999 * config/sh/sh.c (sh_reorg): Likewise.
1000 * config/sparc/sparc.c (legitimize_pic_address): Likewise.
1001 * config/v850/v850.md (casesi): Likewise.
1003 * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
1004 * config/sh/sh.c (prepare_move_operands): Remove incorrect
1005 use of MEM_READONLY_P.
1007 2004-08-18 Steven Bosscher <stevenb@suse.de>
1009 * Makefile.in (OBJS-common): Add postreload-gcse.c.
1010 Add new postreload-gcse.o.
1011 * cse.c (SAFE_HASH): Define as wrapper around safe_hash.
1012 (lookup_as_function, insert, rehash_using_reg, use_related_value,
1013 equiv_constant): Use SAFE_HASH instead of safe_hash.
1014 (exp_equiv_p): Export. Add for_gcse argument when comparing
1016 (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr,
1017 find_comparison_args, fold_rtx, cse_insn): Update callers.
1018 (hash_rtx): New function derived from old canon_hash and bits
1019 from gcse.c hash_expr_1.
1020 (canon_hash_string): Rename to hash_rtx_string.
1021 (canon_hash, safe_hash): Make static inline. Call hash_rtx.
1022 * cselib.c (hash_rtx): Rename to cselib_hash_rtx.
1023 (cselib_lookup): Update this caller.
1024 * gcse.c (modify_mem_list_set, canon_modify_mem_list_set):
1026 (hash_expr): Call hash_rtx.
1027 (ldst_entry): Likewise.
1028 (expr_equiv_p): Call exp_equiv_p.
1029 (struct unoccr, hash_expr_1, hash_string_1, lookup_expr,
1030 reg_used_on_edge, reg_set_between_after_reload_p,
1031 reg_used_between_after_reload_p, get_avail_load_store_reg,
1032 is_jump_table_basic_block, bb_has_well_behaved_predecessors,
1033 get_bb_avail_insn, hash_scan_set_after_reload,
1034 compute_hash_table_after_reload,
1035 eliminate_partially_redundant_loads, gcse_after_reload,
1036 get_bb_avail_insn, gcse_after_reload_main): Remove.
1037 * postreload-gcse.c: New file, reincarnating most of the above.
1038 * rtl.h (exp_equiv_p, hash_rtx): New prototypes.
1039 (gcse_after_reload_main): Update prototype.
1040 * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar.
1041 * passes.c (rest_of_handle_gcse2): Use it.
1043 2004-08-18 Diego Novillo <dnovillo@redhat.com>
1045 * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
1046 (pass_loop_done): Likewise.
1048 2004-08-18 Andrew Pinski <apinski@apple.com>
1050 * config/rs6000/darwin.md: Delete the altivec patterns which are
1051 handled differently now.
1052 (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT
1053 (macho_correct_pic_di): Likewise.
1054 (call_indirect_nonlocal_darwin64): Likewise.
1055 Delete the save world/saveFP/saveVec patterns.
1057 Revert the reversion of: 2004-08-16 Stan Shebs <shebs@apple.com>
1058 * config/darwin.c (macho_indirect_data_reference): Add DImode case.
1059 * config/rs6000/rs6000.md: Include darwin.md.
1060 (builtin_setjmp_receiver): Add DImode case.
1061 * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
1064 2004-08-18 Matt Austern <austern@apple.com>
1067 * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped.
1068 * darwin.c (darwin_file_end): Mark file as potentially strippable.
1070 2004-08-18 Richard Henderson <rth@redhat.com>
1072 * alias.c (readonly_fields_p): Remove.
1073 (objects_must_conflict_p): Don't call it.
1074 * tree.h (readonly_fields_p): Remove.
1075 * langhooks.h (struct lang_hooks): Remove honor_readonly.
1076 * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove.
1078 2004-08-18 Diego Novillo <dnovillo@redhat.com>
1080 * tree-dfa.c (add_referenced_var): Only global variables are
1082 * tree-flow.h (struct ptr_info_def): Add field pt_global_mem.
1083 * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark
1084 all pointers dereferenced if the statement dereferences them.
1085 (create_name_tags): Do not create memory tags for pointers
1086 that have PT_ANYTHING set.
1087 Also check if PT_VARS is not empty before creating a name tag.
1088 (compute_flow_sensitive_aliasing): Don't mark call-clobbered
1089 variables that share the same alias set with a pointer that
1091 (add_may_alias): Add FIXME comment to remove clobbering
1092 aliased variables and tags.
1093 (replace_may_alias): Likewise.
1094 (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED.
1095 (merge_pointed_to_info): If the original variable has not
1096 points-to information, call set_pt_anything.
1097 (add_pointed_to_var): Do not prevent adding a pointed-to
1098 variable if the pointers is PT_ANYTHING.
1099 If the variable is a global, set PT_GLOBAL_MEM.
1100 (collect_points_to_info_r): Don't assume that PLUS_EXPRs of
1101 pointer type only come in PTR+OFFSET flavours.
1102 Always call merge_pointed_to_info on PHI arguments that are
1104 (get_nmt_for): Mark call-clobbered tags whose pointer points
1106 * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
1108 (get_indirect_ref_operands): Always clear OPF_KILL_DEF from
1110 (add_stmt_operand): Abort if the caller tried to add a killing
1111 definition for a memory tag.
1112 * tree-ssa.c (verify_flow_sensitive_alias_info): Remove
1115 2004-08-18 J"orn Rennecke <joern.rennecke@superh.com>
1117 * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers
1118 from call_used_regs. Update call_really_used_regs.
1119 (CALL_REALLY_USED_REGISTERS): Define.
1120 * sh.c (output_stack_adjust, shmedia_target_regs_stack_space):
1121 Replace call_used_regs with call_really_used_regs.
1122 (calc_live_regs, sh_media_register_for_return): Likewise.
1123 (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise.
1124 * sh.md (return_media): Likewise.
1126 2004-08-18 Andrew Pinski <apinski@apple.com>
1128 * config/darwin.c (machopic_legitimize_pic_address): Only set
1129 MEM_READONLY_P in the non TARGET_TOC case.
1131 2004-08-18 Zack Weinberg <zack@codesourcery.com>
1133 * rtl.def (NIL): Delete.
1134 * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
1135 Tighten the syntax a little.
1137 * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c
1138 * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h
1139 * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c
1140 * config/i386/predicates.md, config/m32r/m32r.h
1141 * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c
1142 * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h
1143 * config/sparc/sparc.h, doc/tm.texi:
1144 Replace all occurrences of NIL with UNKNOWN.
1146 2004-08-18 Zack Weinberg <zack@codesourcery.com>
1148 * dojump.c (do_jump <unordered_bcc>): Do not recursively call
1149 self with a TRUTH_ORIF_EXPR; generate the appropriate jump
1150 sequence inline. Move drop_through_label code into this
1151 block, being the only place it is used. Adjust comments.
1153 2004-08-18 Fariborz Jahanian <fjahanian@apple.com>
1155 * config/rs6000/altivec.md: Add new patterns for calls to
1156 save_world/rest_world functions.
1158 * config/rs6000/rs6000-protos.h: (save_world_operation,
1159 restore_world_operation) new declarations.
1161 * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p
1163 (rs6000_stack_info): Set world_save_p field.
1164 (save_world_operation): New function.
1165 (restore_world_operation): New function.
1166 (compute_save_world_info): New function.
1167 (rs6000_stack_info): Call compute_save_world_info.
1168 (rs6000_emit_prologue): Check for world_save_p and generate
1169 pattern to call save_world for saving all non-volatile and
1171 (rs6000_emit_epilogue): Check for world_save_p and generate
1172 pattern to call rest_world to restore saved registers.
1174 config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO,
1175 FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined.
1176 (rs6000_reg_names): New entries added for save_world_operation and
1177 restore_world_operation.
1179 2004-08-18 Caroline Tice <ctice@apple.com>
1181 * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
1182 "-freorder-blocks-and-partition" to the flags used in second
1183 stage of profiledbootstrap.
1184 * bb-reorder.c (push_to_next_round_p): Add new variable,
1185 next_round_is_last; set and use variable to make sure, when
1186 partitioning, that the last trace construction round consists
1187 of all (and only) cold basic blocks.
1188 (rotate_loop): Don't copy blocks that end in a section
1190 (copy_bb): Correctly initialize "partition" of duplicated bb.
1191 (add_unlikely_executed_notes): Add a comment.
1192 (find_rarely_executed_basic_blocks_and_crossing_edges): Modify
1193 to make sure, if function contains hot blocks, that the
1194 successors of ENTRY_BLOCK_PTR are hot; also, only look for
1195 crossing edges if the architecture supports named sections.
1196 (mark_bb_for_unlikely_executed_section): Modify to always
1197 insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
1198 the basic block note insn.
1199 (fix_crossing_unconditional_branches): Remove extra space.
1200 (fix_edges_for_rarely_executed_code): Modify to only do
1201 partitioning work if the architecture supports named sections.
1202 (reorder_basic_blocks): Modify to only add
1203 NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
1204 supports named sections.
1205 * c-common.c (handle_section_attribute): Initialize new global
1206 variable, user_defined_section_attribute, to true if user has
1208 * cfgcleanup.c (try_forward_edges): Modify to not attempt to
1209 forward edges that cross section boundaries.
1210 * cfglayout.c (fixup_reorder_chain): Modify to only fix up
1211 partitioning information if the architecture supports named
1213 * cfgrtl.c (target.h): Add statement to include this.
1214 (rtl_split_block): Make sure newly created bb gets correct
1216 (try_redirect_by_replacing_jump): Make sure redirection isn't
1217 attempting to cross section boundaries.
1218 (force_nonfallthru_and_redirect): Only do partition fix up if
1219 architecture supports named sections.
1220 (rtl_split_edge): Make sure newly created bb ends up in
1222 (commit_one_edge_insertion): Remove code that incorrectly
1223 updated basic block partition; Make sure partition fix up only
1224 happens if architecture supports named sections and it's not
1226 (rtl_verify_flow_info_1): Fix if-condition on test/error
1227 condition that fallthru edges are not allowed to cross section
1229 * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
1230 * final.c (final_scan_insn): Remove redundant test from if-statement;
1231 change calls to text_section into calls to function_section; add code
1232 to only to partitioning fix up if architecture supports named
1234 * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
1236 (if_convert): Add targetm.have_named_sections to test.
1237 * output.h (unlikely_section_label): Extern declaration for new global
1239 (unlikely_text_section_name): Likewise.
1240 * opts.c (decode_options): If both partitioning and DWARF debugging
1241 are turned on, issue a warning that this doesn't work, and change
1242 partitiong to basic block reordering (without hot/cold partitions).
1243 * passes.c (rest_of_handle_final): Re-set new global variable,
1244 user_defined_section_attribute, to false.
1245 (rest_of_compilation): Change options for calling partitioning
1246 function: Don't call if the user defined the section attribute, and
1247 don't call if DECL_ONE_ONLY is true for the current function.
1248 * predict.c (choose_function_section): Return immediately if we
1249 are doing hot/cold partitioning (i.e. let the basic block partitioning
1250 determine where the function belongs).
1251 * reg-stack.c (emit_swap_insn): Add condition to step over
1252 NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
1253 * toplev.c (user_defined_section_attribute): New global variable.
1254 * toplev.h (user_defined_section_attribute): Extern declaration
1255 for new global variable.
1256 * varasm.c (unlikely_section_label): New global variable.
1257 (unlikely_text_section_name): New global variable.
1258 (unlikely_text_section): Add code to initialize
1259 unlikely_text_section_name if necessary; modify to use
1260 unlikely_text_section_name and unlikely_section_label; also to use
1261 named_section properly.
1262 (in_unlikely_text_section): Modify to work correctly with
1263 named_section and to use unlikely_text_section_name.
1264 (named_section): Add code to work properly with cold section.
1265 (function_section): Clean up if-statement.
1266 * config/darwin.c (darwin_asm_named_section): Return to original
1267 code, removing use of SECTION_FORMAT_STRING.
1268 * config/arm/pe.h (switch_to_section): Add case for
1269 in_unlikely_executed_text to switch statement.
1270 * config/i386/cygming.h (switch_to_section): Likewise.
1271 * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
1272 (SECTION_FORMAT_STRING): Likewise.
1273 * config/mcore/mcore.h (switch_to_section): Likewise.
1274 * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
1275 (SECTION_FORMAT_STRING): Remove.
1277 2004-08-18 Roger Sayle <roger@eyesopen.com>
1279 * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be
1280 -ffixed-reg safe, by preserving the meanings of zero and one.
1281 (CALL_USED_REGISTERS): Likewise.
1282 (CONDITIONAL_REGISTER_USAGE): Update to process new encodings.
1284 2004-08-18 Kaz Kojima <kkojima@gcc.gnu.org>
1286 * config/sh/sh.c (split_branches): Check the result of
1288 (sh_output_mi_thunk): Call init_flow if basic_block_info is null.
1289 Call rtl_register_cfg_hooks.
1291 2004-08-18 Richard Henderson <rth@redhat.com>
1293 * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
1294 * alias.c (true_dependence): Update to match new semantics.
1295 (canon_true_dependence, write_dependence_p): Likewise.
1296 (anti_dependence, output_dependence): Update write_dependence_p args.
1297 (unchanging_anti_dependence): Remove.
1298 * calls.c (purge_mem_unchanging_flag): Remove.
1299 (fixup_tail_calls): Don't call it.
1300 (expand_call): Don't add unchanging memory to function usage.
1301 * expr.c (emit_block_move_via_libcall): Likewise.
1302 (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems.
1303 (get_subtarget): Don't use RTX_UNCHANGING_P.
1304 (expand_assignment, store_constructor, expand_expr_real_1): Likewise.
1305 (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P.
1306 * combine.c (get_last_value_validate): Use MEM_READONLY_P.
1307 * cse.c (insert): Don't use RTX_UNCHANGING_P.
1308 (cse_insn, canon_hash): Use MEM_READONLY_P.
1309 * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P
1310 instead of RTX_UNCHANGING_P.
1311 * explow.c (maybe_set_unchanging): Remove.
1312 * expr.h (maybe_set_unchanging): Remove.
1313 * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence.
1314 * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P.
1315 (assign_parm_setup_reg, expand_function_start): Likewise.
1316 * integrate.c (copy_rtx_and_substitute): Likewise.
1317 * ra-rewrite.c (emit_colors): Likewise.
1318 * regmove.c (copy_src_to_dest, regmove_optimize): Likewise.
1319 (fixup_match_1): Likewise.
1320 * reload1.c (reload, alter_reg): Likewise.
1321 * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P,
1322 not RTX_UNCHANGING_P.
1323 (equiv_init_varies_p): Likewise.
1324 * loop-invariant.c (check_maybe_invariant): Likewise.
1325 * resource.c (mark_referenced_resources, mark_set_resources): Likewise.
1326 * loop.c (note_addr_stored): Likewise.
1327 (prescan_loop): Likewise. Don't check function usage for clobbered
1329 * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P,
1330 not RTX_UNCHANGING_P.
1331 (rtx_varies_p, modified_between_p, modified_in_p): Likewise.
1332 * varasm.c (force_const_mem): Likewise.
1333 * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.
1334 * web.c (entry_register): Likewise.
1335 * tree-gimple.h (get_base_address): Move decl ...
1337 * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
1339 * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be
1340 called via for_each_rtx. Copy MEM_SCALAR_P, MEM_NOTRAP_P too.
1341 (alpha_set_memflags): Update to match.
1343 * config/darwin.c (machopic_indirect_data_reference): Set
1344 MEM_READONLY_P instead of RTX_UNCHANGING_P.
1345 (machopic_indirect_call_target): Likewise.
1346 (machopic_legitimize_pic_address): Likewise.
1347 * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple,
1348 arm_gen_store_multiple, arm_gen_movmemqi): Likewise.
1349 * config/arm/arm.md (load_multiple, store_multiple): Likewise.
1350 * config/frv/frv.md (symGOT2reg): Likewise.
1351 * config/i386/i386.c (legitimize_pic_address,
1352 legitimize_tls_address, ix86_split_to_parts): Likewise.
1353 * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
1354 * config/ia64/ia64.md (load_fptr): Likewise.
1355 * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
1356 * config/m68k/m68k.c (legitimize_pic_address): Likewise.
1357 * config/mcore/mcore.c (block_move_sequence): Likewise.
1358 * config/mn10300/mn10300.md (symGOT2reg): Likewise.
1359 * config/pa/pa.c (legitimize_pic_address): Likewise.
1360 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
1361 (rs6000_emit_move): Likewise.
1362 * config/s390/s390.c (legitimize_pic_address): Likewise.
1363 (legitimize_tls_address): Likewise.
1364 * config/s390/s390.md (casesi): Likewise.
1365 * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise.
1366 * config/sh/sh.md (symGOT2reg): Likewise.
1367 * config/sparc/sparc.c (legitimize_pic_address): Likewise.
1368 * config/v850/v850.md (casesi): Likewise.
1370 * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P.
1371 * config/iq2000/iq2000.c (save_restore_insns): Likewise.
1372 * config/mips/mips.c (mips_restore_gp): Likewise.
1373 (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise.
1374 * config/sh/sh.c (sh_reorg): Likewise.
1376 2004-08-18 Richard Henderson <rth@redhat.com>
1378 * tree.h (struct tree_decl): Add gimple_formal_temp.
1379 (DECL_GIMPLE_FORMAL_TEMP_P): New.
1380 * gimplify.c (pop_gimplify_context): Clear it.
1381 (lookup_tmp_var): Set it, if is_formal.
1382 (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX.
1383 Use is_gimple_val for VECTOR. Simplify return value.
1384 (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P.
1385 (gimplify_expr): Likewise.
1386 * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from
1387 is_gimple_tmp_rhs for clarity. Update all callers.
1388 (is_gimple_reg_rhs): Simplify logic.
1389 (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for
1390 clarity; use DECL_GIMPLE_FORMAL_TEMP_P.
1391 (is_gimple_formal_tmp_reg): Similarly.
1392 * tree-gimple.h: Update decls.
1393 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use
1394 DECL_IGNORED_P, not DECL_ARTIFICIAL. Tidy formatting.
1395 * tree-ssa-live.c (var_union, type_var_init): Likewise.
1397 2004-08-18 Paolo Bonzini <bonzini@gnu.org>
1399 * c4x.c (legitimize_operands): Remove calls to
1400 preserve_subexpressions_p.
1402 2004-08-18 David Edelsohn <edelsohn@gnu.org>
1404 * varasm.c (MAX_OFILE_ALIGNMENT): Move ...
1405 * defaults.h (MAX_OFILE_ALIGNMENT): ... here.
1407 2004-08-18 Ziemowit Laski <zlaski@apple.com>
1409 * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii"
1410 Objective-C++ extensions.
1411 * gengtype.c (get_file_basename): Match entire subdirectory name
1412 ('cp', 'objc', 'objcp') rather than just its suffix.
1413 (get_base_file_bitmap): Allow for files to belong to more than one
1415 (get_output_file_with_visibility): Treat objc/objc-act.h as a header
1416 used by more than one front-end.
1418 2004-08-18 Richard Earnshaw <rearnsha@arm.com>
1420 * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to
1421 avoid use of preserve_subexpressions_p.
1423 2004-08-17 Richard Henderson <rth@redhat.com>
1426 * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
1428 2004-08-17 DJ Delorie <dj@redhat.com>
1430 * doc/extend.texi: Document new xstormy16 attribute.
1432 * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New.
1433 (xstormy16_splittable_below100_or_register): New.
1435 (xstormy16_reorg): New.
1436 (TARGET_MACHINE_DEPENDENT_REORG): Define.
1438 * config/stormy16/stormy16.md (movqi_internal): Make name public.
1439 (movhi_internal): Likewise.
1440 (cbhranchhi): Likewise.
1441 (cbhranchhi_neg): Likewise.
1442 (andhi3): Only allow splittable below100 operands.
1444 (peephole2): New and/zero_extend->and peephole.
1445 (peephole2): New load/ior/save->set1 peephole.
1446 (peephole2): New load/and/save->clr1 peephole.
1447 (bclrx, bclrx2, bclr7, bclr15): New.
1448 (bsetx, bsetx2, bset7, bset15): New.
1450 * config/stormy16/stormy16.c (xstormy16_print_operand): Be more
1451 liberal about acceptable 'B' masks.
1453 * config/stormy16/stormy16-protos.h
1454 (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
1455 xstormy16_below100_operand, xstormy16_below100_or_register,
1456 xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
1457 (PREDICATE_CODES): Add new predicates.
1459 * config/stormy16/stormy16.c
1460 (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
1461 xstormy16_below100_operand, xstormy16_below100_or_register,
1462 xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
1463 (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New.
1464 (xstormy16_legitimate_address_p): Allow below100 symbols.
1465 (xstormy16_extra_constraint_p): Add 'W' for below100 operands.
1466 (xstormy16_expand_move): Leave below100 operands as-is.
1467 (xstormy16_encode_section_info): Encode below100 symbols.
1468 (xstormy16_strip_name_encoding): New.
1469 (xstormy16_print_operand): Print 'b' as shift mask.
1470 (xstormy16_attribute_table): Add below100 attributes.
1471 (xstormy16_handle_below100_attribute): New.
1473 * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100.
1474 (XSTORMY16_SECTION_FUNCTION): New.
1475 (EXTRA_SECTION_FUNCTIONS): Define using the above.
1476 (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
1477 (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols.
1478 (ASM_OUTPUT_LABELREF): Define.
1480 * config/stormy16/stormy16.md (movqi_internal): Add below100 support.
1481 (movhi_internal): Add below100 support.
1482 (andhi3): Add below100 support.
1483 (iorhi3): Add below100 support.
1484 (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New.
1486 2004-08-17 James E Wilson <wilson@specifixinc.com>
1488 * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead
1489 of VOIDmode for comparison code mode.
1490 * config/mips/mips.md: For conditional move patterns, use mode of
1491 first compare operand for comparison mode, instead of VOIDmode.
1493 * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both
1494 normal and -ffast-math code.
1496 2004-08-17 Mark Mitchell <mark@codesourcery.com>
1499 * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
1501 2004-08-17 Robert Bowdidge <bowdidge@apple.com>
1503 * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
1505 2004-08-17 Andreas Tobler <a.tobler@schweiz.ch>
1507 * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
1508 for non Darwin targets.
1509 (*call_value_nonlocal_darwin64): Likewise.
1511 2004-08-17 Fariborz Jahanian <fjahanian@apple.com>
1513 * config/rs6000/rs6000.c (rs6000_function_value): Check for
1514 altivec mode for altivec return register.
1516 2004-08-17 David Edelsohn <edelsohn@gnu.org>
1518 Revert 2004-08-16 Stan Shebs <shebs@apple.com>
1519 * config/darwin.c (macho_indirect_data_reference): Add DImode case.
1520 * config/rs6000/rs6000.md: Include darwin.md.
1521 (builtin_setjmp_receiver): Add DImode case.
1522 * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
1525 2004-08-17 Dorit Naishlos <dorit@il.ibm.com>
1527 * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE
1529 * tree-vectorizer.h: New File: Same.
1530 * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files.
1531 * common.opt (ftree-vectorize): New flag to enable vectorization.
1532 * timevar.def (TV_TREE_VECTORIZATION): New dump file for
1534 * tree-data-ref.h (init_data_ref): Additional argument.
1535 (array_base_name_differ_p): Moved to tree-data-ref.c.
1536 * tree-data-ref.c (array_base_name_differ_p): Revised.
1537 (initialize_data_dependence_relation): Call array_base_name_differ_p
1538 with an extra argument.
1539 (analyze_all_data_dependences): Same.
1540 (init_data_ref): Additional argument is_read to set DR_IS_READ.
1541 * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this
1543 * tree-flow.h (vectorize_loops, empty_block_p): Add declaration.
1544 * tree-optimize.c (pass_vectorize): Schedule the vectorization pass.
1545 * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new
1547 * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize.
1548 (tree_ssa_loop_done): Call scev_finalize.
1549 (tree_vectorize): Define the new vectorization pass.
1550 * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the
1551 size of the vector they support (until support for multiple vector
1552 sizes is added to the vectorizer).
1553 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define.
1554 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define.
1555 * invoke.texi (fdump-tree-vect, ftree-vectorize): Add
1558 2004-08-17 Nathan Sidwell <nathan@codesourcery.com>
1560 * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
1562 (generate_protocol_list, handle_impent): Likewise.
1564 2004-08-17 Roger Sayle <roger@eyesopen.com>
1566 * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to
1567 ensure that call_used_regs is a superset of both fixed_regs and
1568 call_really_used_regs.
1570 2004-08-17 Daniel Bornstein <danfuzz@milk.com>
1573 * arm.md (addsi3_cbranch_scratch): Correct case labels.
1575 2004-08-17 Paolo Bonzini <bonzini@gnu.org>
1578 * fold-const.c (fold): Check for integer operand when
1579 folding (A >> N) & 1 ? (1 << N) : 0. Fix from Andrew
1580 Pinski <pinskia@physics.uc.edu>.
1582 2004-08-17 Paolo Bonzini <bonzini@gnu.org>
1584 * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
1585 No need to check if in a cross configuration.
1586 * configure: Regenerate.
1588 * calls.c (precompute_register_parameters):
1589 Inline preserve_subexpressions_p ().
1590 * expmed.c (expand_mult_const, emit_store_flag): Likewise.
1591 * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
1593 * expr.c (get_subtarget): Likewise.
1594 * rtl.h (preserve_subexpressions_p): Remove.
1595 * stmt.c (preserve_subexpressions_p): Remove.
1597 * dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
1598 TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
1599 Abort on gimplified cases.
1601 2004-08-16 James E Wilson <wilson@specifixinc.com>
1603 * tree.h (VECTOR_FLOAT_TYPE_P): New.
1604 (FLOAT_TYPE_P): Use it.
1605 * c-typeck.c (build_binary_op): After convert calls, check for
1606 check for ERROR_MARK operands.
1608 2004-08-16 Zack Weinberg <zack@codesourcery.com>
1610 * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete.
1611 (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update.
1612 (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o.
1613 (genobjs static pattern rule): Remove %.c dependency.
1614 ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o):
1615 Rename rules; delete commands; fix dependencies.
1616 (mostlyclean): Do not delete temporary source copies.
1617 * configure.ac: Delete all references to BUILD_PREFIX and
1619 * configure: Regenerate.
1621 * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE.
1622 Do not include tree.h, real.h, flags.h, hard-reg-set.h, or
1623 basic-block.h #ifdef GENERATOR_FILE. Surround some more code
1624 with #ifndef GENERATOR_FILE so that nothing from those headers
1627 * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE.
1629 2004-08-16 Adam Nemet <anemet@lnxw.com>
1631 * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB).
1633 2004-08-16 Andrew Pinski <apinski@apple.com>
1635 * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove
1636 extraneous semicolon.
1638 2004-08-16 Devang Patel <dpatel@apple.com>
1640 * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P.
1641 * print-tree.c (print_node): Print DECL_PRESERVE_P.
1642 * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define.
1643 (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED
1644 * target.h (struct gcc_target): New member, mark_decl_preserved.
1645 * hooks.c (hook_void_charptr): Rename to ...
1646 (hook_void_constcharptr): ... new name.
1647 * hooks.h (hook_void_charptr): Rename to ..
1648 (hook_void_constcharptr): ... new name.
1649 * tree.h (DECL_PRESERVE_P): New #define.
1650 (struct tree_decl): New member, preserve_flag.
1651 * varasm.c (assemble_start_function): Mark decl preserved.
1652 (assemble_variable): Same.
1653 * darwin.c (darwin_mark_decl_preserved): New function.
1654 * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define.
1655 * darwin-protos.h (darwin_mark_decl_preserved): New decl.
1656 * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document.
1658 2004-08-16 Joseph S. Myers <jsm@polyomino.org.uk>
1660 * c-decl.c (grokdeclarator): Allow for function definition where
1661 innermost declarator has attributes.
1663 2004-08-16 Fariborz Jahanian <fjahanian@apple.com>
1665 * except.c (get_exception_filter, build_post_landing_pads,
1666 dw2_build_landing_pads): Use target-specific mode for 'filter'.
1667 * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used.
1668 * target.h (eh_return_filter_mode): New field added.
1669 * targhooks.c (default_eh_return_filter_mode): Defined.
1670 * targhooks.h (default_eh_return_filter_mode): Declared.
1671 * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined.
1673 2004-08-16 Nathanael Nerode <neroden@gcc.gnu.org>
1675 * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
1676 ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST.
1677 * configure: Regenerate.
1679 2004-08-16 Stan Shebs <shebs@apple.com>
1681 Basic support for 64-bit Darwin.
1682 * config/darwin.c (macho_indirect_data_reference): Add DImode case.
1683 (machopic_legitimize_pic_address): Similarly, plus use Pmode
1685 * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit.
1686 (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro.
1687 (SUBTARGET_SWITCHES): Add -m32 and -m64 flags.
1688 (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64.
1689 (PROCESSOR_DEFAULT64): Define.
1690 * config/rs6000/darwin.md: New file, patterns specific to 64-bit
1692 * config/rs6000/rs6000.md: Include darwin.md.
1693 (builtin_setjmp_receiver): Add DImode case.
1694 * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for
1696 (TARGET_ASM_ALIGNED_DI_OP): Ditto.
1697 (rs6000_emit_move): Add DImode case to Darwin bits.
1698 (machopic_output_stub): Use .quad if 64-bit.
1699 * invoke.texi: Document -m32 and -m64.
1701 2004-08-16 Janis Johnson <janis187@us.ibm.com>
1703 * doc/extend.texi (AltiVec builtins): Document additional differences
1704 from the Motorola AltiVec PIM.
1706 2004-08-16 Nathan Sidwell <nathan@codesourcery.com>
1708 * c-typeck.c (build_c_cast): Only copy overflow from expr nodes.
1709 * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify.
1710 (struct tree_common): Update public_flag documentation.
1712 2004-08-16 Nathanael Nerode <neroden@gcc.gnu.org>
1714 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
1715 Check for artificial variables, not is_gimple_tmp_var.
1716 * tree-ssa-live.c (var_union): Likewise.
1718 2004-08-16 Nathan Sidwell <nathan@codesourcery.com>
1720 * calls.c (load_register_parameters): Remove spurious FIXME token.
1722 2004-08-15 Ziemowit Laski <zlaski@apple.com>
1724 * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
1725 (c-lang.o): Depend on c-objc-common.h.
1726 (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and
1727 c-objc-common.h; remove duplicate $(C_TREE_H) dependency.
1728 * c-lang.c: Include c-objc-common.h.
1729 (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
1730 LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
1731 LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
1732 LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
1733 LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
1734 LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
1735 LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
1736 LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
1737 LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
1738 LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
1739 LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
1740 LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
1741 LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
1742 LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
1743 LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
1744 LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
1745 LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
1746 LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
1747 LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
1748 LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
1749 LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
1750 LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
1751 LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
1752 LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
1753 Move to c-objc-common.h.
1754 * c-objc-common.c: Include c-objc-common.h.
1755 * c-objc-common.h: New file.
1757 2004-08-15 Andreas Tobler <a.tobler@schweiz.ch>
1758 Andrew Pinski <pinskia@physics.uc.edu>
1761 * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
1764 2004-08-15 Nathan Sidwell <nathan@codesourcery.com>
1766 * tree.h (build_int_cst): New.
1767 (build_int_2): Remove.
1768 * tree.c (build_int_2): Remove.
1769 (build_int_cst): New.
1770 (make_vector_type, build_common_tree_nodes,
1771 build_common_tree_nodes_2): Use build_int_cst.
1772 * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
1773 expand_builtin_strpbrk, expand_builtin_fputs,
1774 build_string_literal, expand_builtin_printf,
1775 expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
1776 fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
1777 fold_builtin_isdigit, simplify_builtin_strstr,
1778 simplify_builtin_strpbrk, fold_builtin_fputs,
1779 simplify_builtin_sprintf): Use build_int_cst.
1780 * c-common.c (start_fname_decls, fix_string_type,
1781 c_common_nodes_and_builtins, c_init_attributes,
1782 shorten_compare): Likewise.
1783 * c-decl.c (complete_array_type,
1784 check_bitfield_type_and_width): Likewise.
1785 * c-lex.c (interpret_integer, lex_charconst): Likewise.
1786 * c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
1787 * c-pretty-print.c (pp_c_integer_constant): Likewise.
1788 * c-typeck.c (really_start_incremental_init, push_init_level,
1789 set_nonincremental_init_from_string): Likewise.
1790 * calls.c (load_register_parameters): Likewise.
1791 * convert.c (convert_to_pointer): Likewise.
1792 * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
1793 build_fn_info_type, build_ctr_info_value, build_gcov_info):
1795 * except.c (init_eh, assign_filter_values, assign_filter_values):
1797 * expmed.c (store_fixed_bit_field, extract_bit_field,
1798 extract_fixed_bit_field, extract_split_bit_field, expand_shift,
1799 expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
1800 expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
1801 * expr.c (convert_move, emit_group_load, emit_group_store,
1802 expand_assignment, store_constructor, store_field,
1803 expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
1804 * fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
1805 invert_truthvalue, optimize_bit_field_compare,
1806 decode_field_reference, all_ones_mask_p, constant_boolean_node,
1807 fold_div_compare, fold, fold_read_from_constant_string,
1808 fold_negate_const, fold_abs_const, fold_not_const): Likewise.
1809 * function.c (assign_parm_setup_block): Likewise.
1810 * stmt.c (shift_return_value, expand_end_case_type,
1811 estimate_case_costs): Likewise.
1812 * stor-layout.c (layout_type, initialize_sizetypes,
1813 set_min_and_max_values_for_integral_type): Likewise.
1814 * tree-chrec.c (chrec_fold_multiply_poly_poly,
1815 reset_evolution_in_loop): Likewise.
1816 * tree-chrec.h (build_polynomial_chrec): Likewise.
1817 * tree-complex.c (build_replicated_const): Likewise.
1818 * tree-eh.c (honor_protect_cleanup_actions,
1819 lower_try_finally_onedest, lower_try_finally_copy,
1820 lower_try_finally_switch): Likewise.
1821 * tree-mudflap.c (mf_build_string, mx_register_decls,
1822 mudflap_register_call, mudflap_enqueue_constant): Likewise.
1823 * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
1824 * tree-pretty-print.c (dump_generic_node): Likewise.
1825 * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
1827 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
1828 * tree-ssa-loop-niter.c (number_of_iterations_cond,
1829 loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
1832 * config/alpha/alpha.c (alpha_initialize_trampoline,
1833 alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
1834 * config/arm/arm.c (arm_get_cookie_size): Likewise.
1835 * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
1836 * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
1837 * config/i860/i860.c (i860_va_start): Likewise.
1838 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
1839 * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
1840 mips_gimplify_va_arg_expr): Likewise.
1841 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
1842 * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
1843 add_compiler_branch_island): Likewise.
1844 * config/s390/s390.c (s390_va_start): Likewise.
1845 * config/sh/sh.c (sh_va_start): Likewise.
1846 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
1848 * config/xtensa/xtensa.c (xtensa_va_start,
1849 xtensa_gimplify_va_arg_expr): Likewise.
1851 * objc/objc-act.c (build_objc_string_object,
1852 build_objc_symtab_template, init_def_list, init_objc_symtab,
1853 init_module_descriptor, generate_static_references,
1854 build_selector_translation_table, get_proto_encoding,
1855 build_typed_selector_reference, build_selector_reference,
1856 build_next_objc_exception_stuff,
1857 build_method_prototype_list_template, generate_descriptor_table,
1858 generate_protocols, build_protocol_initializer,
1859 build_ivar_list_template, build_method_list_template,
1860 build_ivar_list_initializer, generate_ivars_list,
1861 generate_dispatch_table, generate_protocol_list,
1862 build_category_initializer, build_shared_structure_initializer,
1863 generate_shared_structures, handle_impent,
1864 generate_objc_image_info): Use build_int_cst.
1866 2004-08-15 Ben Elliston <bje@au.ibm.com>
1868 * vec.h: Comment improvements.
1870 2004-08-14 Roger Sayle <roger@eyesopen.com>
1872 * c-common.c (shorten_compare, pointer_int_sum,
1873 c_common_truthvalue_conversion, boolean_increment): Replace calls
1874 to build with calls to buildN.
1875 * c-decl.c (complete_array_type, grokdeclarator): Likewise.
1876 * c-gimplify.c (c_build_bind_expr, gimplify_c_loop,
1877 gimplify_switch_stmt): Likewise.
1878 * c-typeck.c (default_function_array_conversion,
1879 build_component_ref, build_array_ref, build_function_call,
1880 pointer_diff, build_unary_op, build_conditional_expr,
1881 build_compound_expr, build_modify_expr, c_finish_goto_label,
1882 c_finish_goto_ptr, c_finish_return, c_finish_loop,
1883 c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt,
1884 build_binary_op): Likewise.
1886 2004-08-15 Steven Bosscher <stevenb@suse.de>
1888 * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
1890 2004-08-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1892 * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h,
1893 curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h.
1894 * fixinc/fixincl.x: Rebuilt.
1896 2004-08-14 Richard Sandiford <rsandifo@redhat.com>
1898 * config/mips/mips-protos.h (mips_symbolic_constant_p)
1899 (mips_atomic_symbolic_constant_p, mips_stack_address_p)
1900 (mips_small_data_pattern_p): Declare.
1901 * config/mips/mips.h (CONST_GP_P): Moved from mips.c.
1902 (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
1903 * config/mips/mips.c (mips_symbolic_constant_p): Make global.
1904 (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions.
1905 (uns_arith_operand, const_arith_operand, arith_operand, sle_operand)
1906 (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand)
1907 (reg_or_const_float_1_operand, hilo_operand, extend_operator)
1908 (macc_msac_operand, equality_op, cmp_op, trap_cmp_op)
1909 (pc_or_label_operand, call_insn_operand, move_operand)
1910 (consttable_operand, symbolic_operand, general_symbolic_operand)
1911 (global_got_operand, local_got_operand, stack_operand)
1912 (fp_register_operand, lo_operand, fcc_register_operand): Delete.
1913 (mips_small_data_pattern_1): Renamed from small_data_pattern_1.
1914 (mips_small_data_pattern_p): Replace previous small_data_pattern
1915 predicate. Turn into a bool () (rtx) function.
1916 * config/mips/predicates.md: New file.
1917 * config/mips/mips.md: Include it. Use the target-independent
1918 comparison_operator instead of cmp_op. Rename trap_cmp_op to
1919 trap_comparison_operator and equality_op to equality_operator.
1920 Replace uses of small_int with the equivalent const_arith_operand.
1921 Rename reg_or_const_float_1_operand to reg_or_1_operand. Rename
1922 const_float_1_operand to const_1_operand. Rename fcc_register_operand
1923 to fcc_reload_operand.
1924 * config/mips/sb1.md: Rename fp_register_operand to fpr_operand.
1926 2004-08-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1928 PR libstdc++/17005 partial fix.
1929 * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE
1930 except when generating ANSI/C89 code.
1932 2004-08-14 Nathan Sidwell <nathan@codesourcery.com>
1934 * c-common.c (shorten_compare): Use force_fit_type directly.
1936 2004-08-14 Gerald Pfeifer <gerald@pfeifer.com>
1937 Dimitri Papadopoulos-Orfanos <papadopo@shfj.cea.fr>
1938 Dave Korn <dk@artimi.com>
1940 * doc/install.texi (Building): Avoid duplicate reference to GNU
1942 (*-*-solaris2*): Do not recommend GNU make any longer. Simplify.
1944 2004-08-14 Richard Henderson <rth@redhat.com>
1946 * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
1947 * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
1949 2004-08-13 Richard Henderson <rth@redhat.com>
1951 * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode
1952 for constant_call_address_operand.
1953 (call_value_pop_1, call_value_1): Likewise.
1954 (sibcall_value_1, call_value_1_rex64): Likewise.
1956 2004-08-13 James E Wilson <wilson@specifixinc.com>
1958 * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
1959 Correct mode from SFmode to DFmode.
1961 2004-08-13 Ziemowit Laski <zlaski@apple.com>
1963 * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
1964 __cstring_object and __image_info sections with the no_dead_strip
1967 2004-08-13 Roger Sayle <roger@eyesopen.com>
1968 David Billinghurst <David.Billinghurst@riotinto.com>
1970 PR libgfortran/15930
1971 * fixinc/inclhack.def (irix___generic1, irix___generic2): New.
1972 * fixinc/fixincl.x: Regenerate.
1973 * fixinc/tests/base/internal/math_core.h: New file.
1975 2004-08-13 Richard Henderson <rth@redhat.com>
1977 * dbxout.c (NO_DBX_FUNCTION_END): Default to zero.
1978 (dbxout_function_end): Remove ifdefs for it.
1979 (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions.
1981 2004-08-13 Richard Henderson <rth@redhat.com>
1983 * Makefile.in (insn-preds.o): Depend on TREE_H.
1984 * genpreds.c (write_insn_preds_c): Include tree.h.
1985 * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand,
1986 reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand,
1987 const48_operand, and_operand, or_operand, mode_width_operand,
1988 mode_mask_operand, mul8_operand, const0_operand,
1989 hard_fp_register_operand, hard_int_register_operand,
1990 reg_or_cint_operand, some_operand, some_ni_operand, input_operand,
1991 samegp_function_operand, direct_call_operand, small_symbolic_operand,
1992 global_symbolic_operand, call_operand, symbolic_operand,
1993 dtp16_symbolic_operand, dtp32_symbolic_operand,
1994 gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand,
1995 gottp_symbolic_operand, alpha_comparison_operator,
1996 alpha_zero_comparison_operator, alpha_swapped_comparison_operator,
1997 signed_comparison_operator, alpha_fp_comparison_operator,
1998 divmod_operator, fix_operator, aligned_memory_operand,
1999 unaligned_memory_operand, reg_or_unaligned_mem_operand,
2000 any_memory_operand, reg_not_elim_operand, normal_memory_operand,
2001 reg_no_subreg_operand, addition_operation): Move to predicates.md.
2002 (reg_or_const_int_operand): Remove. Replace all users with
2003 reg_or_cint_operand.
2004 (tls_symbolic_operand_1): Export. Don't check mode or for CONST.
2005 (resolve_reload_operand): Split out of aligned_memory_operand.
2006 * config/alpha/alpha-protos.h: Update for exports.
2007 * config/alpha/alpha.h (PREDICATE_CODES): Remove.
2008 * config/alpha/alpha.md: Include predicates.md.
2009 * config/alpha/predicates.md: New file.
2011 2004-08-13 Richard Sandiford <rsandifo@redhat.com>
2013 * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno
2014 fields with a pointer to the instruction definition.
2015 (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent)
2016 (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get)
2017 (write_attr_case, write_const_num_delay_slots): Update accordingly.
2018 (write_attr_case, write_const_num_delay_slots): Write the name of
2019 an insn next to its case statement.
2020 * genoutput.c (data): Add a filename field.
2021 (gen_insn, gen_peephole, gen_expand, gen_split): Set it.
2022 (output_insn_data): Print the location of each insn definition.
2023 * genrecog.c (write_action): Print the name of an insn above
2024 the statement that returns its code.
2026 2004-08-12 Andrew Pinski <pinskia@physics.uc.edu>
2028 * config/darwin-c.c (find_subframework_file): Fix spelling of cannot.
2029 * config/libgloss.h: Likewise.
2030 * config/arm/arm.c (arm_gen_load_multiple): Likewise.
2031 * c4x/c4x-modes.def: Likewise.
2032 * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise.
2033 (c4x_rptb_nop_p): Likewise.
2034 (c4x_rptb_valid_p): Likewise.
2035 (c4x_rptb_insert): Likewise.
2036 (c4x_address_conflict): Likewise.
2037 * config/c4x/c4x.md: Likewise.
2038 * config/frv/frv.md: Likewise.
2039 * config/i386/athlon.md: Likewise.
2040 * config/i386/i386.md: Likewise.
2041 * config/i386/predicates.md: Likewise.
2042 * config/ia64/ia64.c: Likewise.
2043 * config/ia64/itanium1.md: Likewise.
2044 * config/ia64/itanium2.md: Likewise.
2045 * config/iq2000/iq2000.md: Likewise.
2046 * config/mcore/mcore.c: Likewise.
2047 * config/mips/mips.c: Likewise.
2048 * config/mips/r3900.h: Likewise.
2049 * config/mips/sb1.md: Likewise.
2050 * config/pa/milli64.S: Likewise.
2051 * config/pa/pa.c: Likewise.
2052 * config/pa/pa.h: Likewise.
2053 * config/rs6000/8540.md: Likewise.
2055 2004-08-13 Daniel Berlin <dberlin@dberlin.org>
2057 * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
2059 2004-08-13 J"orn Rennecke <joern.rennecke@superh.com>
2061 * sh.md (cbranch define_delay) Use cond_delay_slot for
2062 non-anulled condition too.
2064 2004-08-12 David Edelsohn <edelsohn@gnu.org>
2066 * config/rs6000/rs6000.c (any_parallel_operand): New predicate.
2067 * config/rs6000/rs6000.h (PREDICATE_CODES): Add
2068 any_parallel_operand, lmw_operation, stmw_operation,
2069 mfcr_operation, mtcrf_operation. Remove PARALLEL from any_operand.
2070 * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use
2071 any_parallel_operand.
2072 (return_and_restore_fpregs_{si,di}): Same.
2074 2004-08-12 Zack Weinberg <zack@codesourcery.com>
2076 * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL,
2077 if pred->singleton != PARALLEL, issue a warning and pretend it was.
2078 Also issue a warning for any predicate we don't know about.
2080 2004-08-12 Richard Henderson <rth@redhat.com>
2082 * config/i386/i386.c (internal_label_prefix): Export.
2083 (internal_label_prefix_len, struct ix86_address,
2084 ix86_decompose_address, maybe_get_pool_constant,
2085 ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes,
2086 memory_address_length): Export.
2087 (any_fp_register_operand, fp_register_operand,
2088 register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand,
2089 x86_64_general_operand, x86_64_szext_general_operand,
2090 x86_64_nonmemory_operand, x86_64_movabs_operand,
2091 x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
2092 x86_64_zext_immediate_operand, const_int_1_31_operand,
2093 symbolic_operand, pic_symbolic_operand, local_symbolic_operand,
2094 tls_symbolic_operand, global_dynamic_symbolic_operand,
2095 local_dynamic_symbolic_operand, initial_exec_symbolic_operand,
2096 local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand,
2097 constant_call_address_operand, const0_operand, const1_operand,
2098 const248_operand, const_0_to_3_operand, const_0_to_7_operand,
2099 const_0_to_15_operand, const_0_to_255_operand, incdec_operand,
2100 shiftdi_operand, reg_no_sp_operand, mmx_reg_operand,
2101 general_no_elim_operand, nonmemory_no_elim_operand,
2102 index_register_operand, q_regs_operand, flags_reg_operand,
2103 non_q_regs_operand, zero_extended_scalar_load_operand,
2104 vector_move_operand, no_seg_address_operand, sse_comparison_operator,
2105 ix86_comparison_operator, ix86_carry_flag_operator,
2106 fcmov_comparison_operator, promotable_binary_operator,
2107 cmp_fp_expander_operand, ext_register_operand, binary_fp_operator,
2108 mult_operator, div_operator, arith_or_logical_operator,
2109 memory_displacement_operand, cmpsi_operand, long_memory_operand,
2110 aligned_operand): Move to predicates.md as define_predicates.
2111 (tls_symbolic_operand_1): Remove.
2112 (x86_64_sign_extended_value): Merge into x86_64_immediate_operand.
2113 (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand.
2114 (legitimize_address): Merge tls_symbolic_operand contents.
2115 (ix86_expand_move): Likewise.
2116 * config/i386/i386-protos.h: Update for exports.
2117 * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames.
2118 (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove.
2119 * config/i386/i386.md: Include predicates.md.
2120 * config/i386/predicates.md: New file.
2122 2004-08-13 Mark Mitchell <mark@codesourcery.com>
2125 * config/i386/winnt.c (i386_pe_mark_dllexport): Set
2127 (i386_pe_mark_dllimport): Likewise.
2128 (i386_pe_encode_section_info): Likewise, when overriding
2129 dllimport attribute.
2131 2004-08-12 Geoffrey Keating <geoffk@apple.com>
2133 * configure.ac: When testing for flex, nm, ar, and bison, check
2134 that they will actually be built.
2135 * configure: Regenerate.
2137 2004-08-12 Ulrich Weigand <uweigand@de.ibm.com>
2139 * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
2140 (MOVE_MAX_PIECES): Define.
2142 2004-08-12 Devang patel <dpatel@apple.com>
2144 * dbxout.c (dbxout_begin_prologue): New function.
2145 (dbx_debug_hooks): Use new begin prologue hook.
2146 (dbxout_function_end): Emit N_ENSYM.
2147 * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
2149 2004-08-12 Janis Johnson <janis187@us.ibm.com>
2151 * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
2154 * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
2157 * doc/extend.texi (AltiVec builtins): Fix description for recent
2158 changes. Update operation list to match current support.
2160 2004-08-12 Andreas Krebbel <krebbel1@de.ibm.com>
2162 * config/s390/s390.c (struct s390_frame_layout): New struct as element
2163 of struct machine_function.
2164 (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
2166 (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
2168 (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
2169 (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
2170 (s390_frame_area, s390_register_info): New functions.
2171 (s390_optimize_prolog): Renamed to s390_optimize_prologue. Added check
2173 (s390_return_addr_rtx, s390_return_address_offset)
2174 (s390_va_start, s390_gimplify_va_arg)
2175 (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
2177 (s390_frame_info): Functionality partly moved to s390_register_info.
2178 Made adaptions for new stack layout.
2179 (save_gprs, restore_gprs): Changed meaning of second parameter and
2180 adapted all callers.
2182 * config/s390/s390.h (s390_backchain_string): New global variable.
2183 (MASK_BACKCHAIN): Removed definition.
2184 (TARGET_BACKCHAIN): Changed check.
2185 (TARGET_KERNEL_BACKCHAIN): New macro.
2186 (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
2187 (TARGET_OPTIONS): Added "backchain", "no-backchain" and
2189 (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
2191 * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
2192 as condition. Adjusted for new stack layout.
2194 * doc/invoke.texi: Added documentation for new option
2195 "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
2198 2004-08-12 Paul Brook <paul@codesourcery.com>
2200 * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
2201 (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
2203 2004-08-12 David Daney <ddaney@avtrex.com>
2205 * java/gcj.texi: Add subsection on signal usage.
2207 2004-08-12 David Edelsohn <edelsohn@gnu.org>
2209 * expr.c (move_by_pieces): Set alignment for move to minimum of
2210 MOVE_MAX_PIECES mode alignment and the largest non-slow mode
2211 alignment, but not less than the original alignment.
2212 (move_by_pieces_ninsns): Same.
2213 (can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
2214 (store_by_pieces_1): Same.
2216 2004-08-12 Diego Novillo <dnovillo@redhat.com>
2218 PR tree-optimization/16867
2219 * tree.c (is_global_var): New function.
2220 (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
2222 * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
2224 (is_global_var): Declare.
2225 * tree-dfa.c (dump_variable): Display global and addressable
2227 (add_referenced_var): Clarify documentation when marking
2228 variables call-clobbered.
2229 * tree-flow-inline.h (is_call_clobbered): Call is_global_var
2230 instead of needs_to_live_in_memory.
2231 (mark_call_clobbered): If the variable is a tag, mark it
2233 * tree-gimple.c (is_gimple_reg): Don't check for
2235 (is_gimple_non_addressable): Likewise.
2236 * tree-ssa-alias.c (get_nmt_for): Always check whether the tag
2237 needs to be marked call-clobbered.
2238 (setup_pointers_and_addressables): Call is_global_var instead
2239 of needs_to_live_in_memory.
2240 * tree-ssa-dce.c (need_to_preserve_store): Remove.
2241 Update all users with is_global_var.
2242 (mark_stmt_if_obviously_necessary): Fix processing of aliased
2243 stores. Don't check the virtual definitions. Rather, check
2244 whether the store is going into global memory.
2245 (find_obviously_necessary_stmts): Get the symbol from the PHI
2247 * tree-ssa-operands.c (get_call_expr_operands): Do not add
2248 clobbering may-defs if the call does not have side effects.
2250 2004-08-12 Jakub Jelinek <jakub@redhat.com>
2253 * output.h (default_function_rodata_section,
2254 default_no_function_rodata_section): New prototypes.
2255 * target.h (struct gcc_target): Add asm_out.function_rodata_section.
2256 * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
2257 (TARGET_ASM_OUT): Add it.
2258 * varasm.c (default_function_rodata_section,
2259 default_no_function_rodata_section): New functions.
2260 * final.c (final_scan_insn): Call
2261 targetm.asm_out.function_rodata_section instead of
2262 readonly_data_section.
2263 * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
2264 * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
2265 * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
2266 * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
2268 * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
2269 * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
2271 * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
2273 * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
2274 * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
2275 * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.
2277 2004-08-12 Paul Brook <paul@codesourcery.com>
2279 * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
2281 * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
2284 2004-08-12 Ben Elliston <bje@au.ibm.com>
2287 * config/rs6000/altivec.h: Change vector to __vector throughout.
2288 (Except for the `vector' macro itself).
2290 2004-08-12 Zack Weinberg <zack@codesourcery.com>
2292 * genpreds.c: Add capability to generate predicate bodies as
2293 well as function prototypes. Write function prototypes for
2294 the generic predicates too.
2295 (process_define_predicate, write_tm_preds_h, write_insn_preds_c)
2296 (write_predicate_subfunction, mark_mode_tests, add_mode_tests)
2297 (write_match_code, write_predicate_expr, write_one_predicate_function)
2298 (parse_option): New functions.
2299 (output_predicate_decls): Delete.
2300 (main): Read the machine description, process DEFINE_PREDICATE or
2301 DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
2304 * genrecog.c (struct decision_test): Replace index with
2305 struct pred_data pointer.
2306 (next_index): Remove, unused.
2307 (pred_table, preds, special_mode_pred_table): Delete.
2308 (compute_predicate_codes, process_define_predicate): New functions.
2309 (validate_pattern, add_to_sequence, write_switch): Update for
2310 new data structures.
2311 (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
2312 Check both error_count and have_error.
2314 * gensupport.c (in_fname, first_predicate): New globals.
2315 (define_pred_queue, define_pred_tail): New RTL-pattern queue.
2316 (predicate_table, last_predicate, old_pred_table)
2317 (old_special_pred_table): New statics.
2318 (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
2319 (add_predicate, init_predicate_table): New functions.
2320 (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
2321 (init_md_reader_args_cb): Use the global in_fname. No need to zero
2322 it or max_include_len. Call init_predicate_table.
2323 (read_rtx): Run the predicate queue after the attribute queue
2324 but before all the others.
2325 * gensupport.h (in_fname, struct pred_data, first_predicate)
2326 (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
2327 * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
2328 (DEFINE_SPECIAL_PREDICATE): New RTL codes.
2329 * dummy-conditions.c: Don't include bconfig.h, system.h,
2330 coretypes.h, tm.h, or system.h. Do include stddef.h.
2331 Duplicate declaration of struct c_test from gensupport.h.
2333 * Makefile.in (OBJS-common): Add insn-preds.o.
2334 (STAGESTUFF, .PRECIOUS): Add insn-preds.c.
2335 (insn-preds.c, insn-preds.o): New rules.
2336 (s-preds): Also generate insn-preds.c.
2337 (dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
2338 Update dependencies.
2339 (print-rtl.o, print-rtl1.o): Correct dependencies.
2341 * recog.h: Delete prototypes of predicate functions.
2343 * doc/md.texi (Predicates): New section with complete
2344 documentation of operand/operator predicates. Remove some
2345 incomplete documentation of predicates from other places.
2346 * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
2347 PREDICATE_CODES; indicate that both are deprecated in favor
2348 of define_predicate/define_special_predicate.
2350 * config/ia64/ia64.c: All predicate function definitions moved
2352 (small_addr_symbolic_operand, tls_symbolic_operand): Delete.
2353 (ia64_expand_load_address, ia64_expand_move):
2354 Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
2356 * config/ia64/ia64.md: All predicates now defined here.
2357 (symbolic_operand): Is now a special predicate.
2359 * config/ia64/ia64.h: Declare ia64_section_threshold.
2360 (PREDICATE_CODES): Delete.
2362 2004-08-12 Richard Henderson <rth@redhat.com>
2364 * c-common.h (STATEMENT_LIST_HAS_LABEL): New.
2365 * c-semantics.c (add_stmt): Set it.
2366 * c-decl.c (finish_decl): Use it to create a new BIND_EXPR
2367 before instantiating a variable sized type.
2369 2004-08-12 Richard Henderson <rth@redhat.com>
2371 * stor-layout.c (round_up, round_down): Move ...
2372 * fold-const.c (round_up, round_down): ... here. Use
2373 multiple_of_p to avoid any arithmetic at all.
2375 2004-08-12 Richard Henderson <rth@redhat.com>
2377 * gimplify.c (struct gimplify_init_ctor_preeval_data): New.
2378 (gimplify_init_ctor_preeval_1): New.
2379 (gimplify_init_ctor_preeval): New.
2380 (gimplify_init_ctor_eval): New.
2381 (gimplify_init_constructor): Use them. Always gimplify the LHS
2384 2004-08-12 Ziemowit Laski <zlaski@apple.com>
2386 (This patch is part of merge of objc-improvements-branch
2389 * doc/frontends.texi: Mention Objective-C++ in addition to
2391 * doc/install.texi: Add 'obj-c++' to list of configurable
2393 * doc/invoke.texi: Rename Objective-C option headings to
2394 indicate they also apply to Objective-C++. List file
2395 extensions for Objective-C++ sources. Mention that
2396 ObjC and ObjC++ compilations may also use C and C++ options,
2397 respectively. Point users to doc/standards.texi for
2398 further info on ObjC and ObjC++.
2399 * doc/sourcebuild.texi: Mention the objcp/ directory and
2400 the Objective-C++ sources it contains.
2401 * doc/standards.texi: Update link to Apple ObjC site;
2402 add link to gcc readings.html WWW doc.
2404 2004-08-12 Alan Modra <amodra@bigpond.net.au>
2406 * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
2407 and 2004-07-14 changes.
2409 2004-08-12 Paul Brook <paul@codesourcery.com>
2411 * doc/invoke.texi: Fix typo.
2413 2004-08-11 Devang Patel <dpatel@apple.com>
2415 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
2416 and -no_dead_strip_inits_and_terms.
2418 * doc/invoke.texi (Darwin Options): Document -dead_strip and
2419 -no_dead_strip_inits_and_terms.
2421 2004-08-11 Paul Brook <paul@codesourcery.com>
2423 * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
2424 (arm_load_pic_register): ... to this.
2425 * config/arm/arm.c (arm_finalize_pic): Rename ...
2426 (arm_load_pic_register): ... to this. Always output insns at the
2427 current location. Load via low reg in thumb mode.
2428 (arm_expand_prologue): Call arm_load_pic_register.
2429 (thumb_expand_prologue): Ditto.
2430 * config/arm/arm.h (FINALIZE_PIC): Remove.
2431 * config/arm/arm.md (builtin_setjmp_receiver): Call
2432 arm_load_pic_register.
2434 2004-08-11 Paul Brook <paul@codesourcery.com>
2436 * arm.c (thumb_force_lr_save): Add prototype.
2437 (thumb_compute_save_reg_mask): New function.
2438 (thumb_find_work_register): New function.
2439 (arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
2440 (thumb_unexpanded_epilogue): Ditto. Remove redundant code.
2441 Don't clobber r3 when removing pretend args.
2442 (thumb_expand_prologue): Use thumb_compute_save_reg_mask.
2443 (thumb_output_function_prologue): Use new functions.
2444 (thumb_set_return_address): Use thumb_compute_save_reg_mask.
2445 * arm.h (THUMB_REG_PUSHED_P): Remove.
2447 2004-08-11 James E Wilson <wilson@specifixinc.com>
2449 PR rtl-optimization/16490
2450 * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and
2451 global_live_at_end for new basic block if already set for other blocks.
2453 2004-08-11 David Edelsohn <edelsohn@gnu.org>
2455 * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
2457 * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
2458 (mfcr rlwinm rlwinm patterns): Set length to 12.
2460 2004-08-11 Andrew MacLeod <amacleod@redhat.com>
2462 * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
2463 get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
2464 (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
2465 (start_ssa_stmt_operands): Delete.
2466 * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new
2467 struct stmt_operands_d.
2468 (build_ssa_operands): New extern entry point.
2469 * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand
2470 building code, replace with create_ssa_artficial_load_stmt().
2471 * tree-ssa-operands.c (struct voperands_d): Delete.
2472 (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
2473 (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
2474 (free_uses, free_defs, free_vuses, free_v_may_defs,
2475 free_v_must_defs): Remove dealloc parameter.
2476 (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
2477 (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
2478 finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
2479 vector comparisons, ssa_name reuse, and allocations here.
2480 (verify_start_operands): Delete.
2481 (finalize_ssa_stmt_operands): Set new operands by calling finalize
2483 (start_ssa_stmt_operands): Move from tree-flow-inline.h.
2484 (append_def, append_usei): Simplify to simple accumulation.
2485 (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
2486 duplicates and simple accumulation.
2487 (free_ssa_operands): Free vectors in a stmt_operand structure.
2488 (build_ssa_operands): New. Create a new stmt_operand structure from
2489 a stmt and an old set of stmt_operands.
2490 (get_stmt_operands): Simplify and call build_ssa_operands.
2491 (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
2492 get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
2493 add_call_read_ops): Don't pass prev_vops around anymore.
2494 (note_addressable): Return if no stmt annotation.
2495 (copy_virtual_operands): Access v_may_def operands through a struct.
2496 (create_ssa_artficial_load_stmt): New. Create a load stmt for DOM's
2497 hash tables without treating the stmt as a real stmt.
2498 * tree-ssa-operands.h (struct v_may_def_operand_type): New. Access
2499 v_may_def def and use through a struct instead of 2 array elements.
2500 (struct v_may_def_optype_d): Use v_may_def_operand_type.
2501 (struct stmt_operands_d): New. Struct for storing all operand vectors.
2503 2004-08-11 Nick Clifton <nickc@redhat.com>
2505 * config/arm/arm.c (arm_is_longcall_p): Update comment describing
2506 this funciton's behaviour. Return true when the current function
2507 has a section attribute and -mlong-calls is in effect.
2508 * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the
2509 short-call marker when -mlong-calls is in effect and the function
2510 has a section attribute.
2512 2004-08-10 Zack Weinberg <zack@codesourcery.com>
2514 * stmt.c (expand_return): If asked to return the RESULT_DECL,
2515 just call expand_value_return on result_rtl.
2517 2004-08-10 Richard Henderson <rth@redhat.com>
2519 * builtins.def (BUILT_IN_STACK_ALLOC): Remove.
2520 * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
2521 * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
2522 (add_location_or_const_value_attribute): ... not here. Use
2523 loc_descriptor_from_tree if possible.
2524 (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
2525 Simplify address handling. Handle DECL_VALUE_EXPR. Handle register
2527 (loc_descriptor_from_tree): New. Update callers.
2528 * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
2529 * gimplify.c (gimplify_decl_expr): Lower variable sized types to
2530 pointer plus dereference. Set DECL_VALUE_EXPR. Set save_stack.
2531 (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
2532 and BUILT_IN_STACK_RESTORE.
2533 (gimplify_expr): Lower DECL_VALUE_EXPR decls.
2534 * stmt.c (expand_stack_alloc): Remove.
2535 * tree-mudflap.c (mx_register_decls): Don't look for
2536 BUILT_IN_STACK_ALLOC.
2537 * tree-nested.c (convert_local_reference): Likewise.
2538 * tree.h (DECL_VALUE_EXPR): New.
2540 2004-08-10 Richard Henderson <rth@redhat.com>
2542 * stor-layout.c (round_up): Check for 0/1 before dividing.
2543 (round_down): Likewise.
2545 * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
2547 2004-08-09 Mark Mitchell <mark@codesourcery.com>
2549 * config.gcc (arm*-*-eabi*): New target.
2550 * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
2551 (TARGET_LIB_INT_CMP_BIASED): Likewise.
2552 * expmed.c (expand_divmod): Try a two-valued divmod function as a
2554 * gthr.h: Remove bogus tokens at end of #pragma.
2555 * optabs.c (expand_twoval_binop_libfunc): New function.
2556 (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
2557 (prepare_float_lib_cmp): Try reversing the condition.
2558 (debug_optab_libfuncs): New function.
2559 * optabs.h (expand_twoval_binop_libfunc): Declare.
2560 * config/arm/arm.c (arm_init_libfuncs): New function.
2561 (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
2562 (TARGET_INIT_LIBFUNCS): Define it.
2563 * config/arm/arm.h (TARGET_BPABI): New macro.
2564 * config/arm/arm-protos.h
2565 (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
2566 * config/arm/bpabi.S: New file.
2567 * config/arm/bpabi.c: Likewise.
2568 * config/arm/bpabi.h: Likewise.
2569 * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
2570 (__aeabi_drsub): Likewise.
2571 (__aeabi_dsub): Likewise.
2572 (__aeabi_dadd): Likewise.
2573 (__aeabi_ui2d): Likewise.
2574 (__aeabi_i2d): Likewise.
2575 (__aeabi_f2d): Likewise.
2576 (__aeabi_dmul): Likewise.
2577 (__aeabi_ddiv): Likewise.
2578 (__aeabi_cdrcmple): Likewise.
2579 (__aeabi_cdcmpeq): Likewise.
2580 (__aeabi_cdcmple): Likewise.
2581 (__aeabi_dcmpeq): Likewise.
2582 (__aeabi_dcmplt): Likewise.
2583 (__aeabi_dcmple): Likewise.
2584 (__aeabi_dcmpge): Likewise.
2585 (__aeabi_dcmpgt): Likewise.
2586 (__aeabi_dcmpun): Likewise.
2587 (__aeabi_d2iz): Likewise.
2588 (__aeabi_d2uiz): Likewise.
2589 (__aeabi_d2f): Likewise.
2590 * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
2591 (__aeabi_frsub): Likewise.
2592 (__aeabi_fsub): Likewise.
2593 (__aeabi_fadd): Likewise.
2594 (__aeabi_ui2f): Likewise.
2595 (__aeabi_i2f): Likewise.
2596 (__aeabi_fmul): Likewise.
2597 (__aeabi_fdiv): Likewise.
2598 (__aeabi_cfrcmple): Likewise.
2599 (__aeabi_cfcmpeq): Likewise.
2600 (__aeabi_cfcmple): Likewise.
2601 (__aeabi_fcmpeq): Likewise.
2602 (__aeabi_fcmplt): Likewise.
2603 (__aeabi_fcmple): Likewise.
2604 (__aeabi_fcmpge): Likewise.
2605 (__aeabi_fcmpgt): Likewise.
2606 (__aeabi_fcmpun): Likewise.
2607 (__aeabi_f2iz): Likewise.
2608 (__aeabi_f2uiz): Likewise.
2609 * config/arm/lib1funcs.asm (ARM_CALL): New macro.
2610 (__aeabi_uidivmod): New function or alias.
2611 (__aeabi_idivmod): Likewise.
2612 (__aeabi_idiv0): Likewise.
2613 (__aeabi_ldiv0): Likewise.
2614 (__aeabi_llsr): Likewise.
2615 (__aeabi_lasr): Likewise.
2616 (__aeabi_llsl): Likewise.
2617 (bpabi.S): Include it.
2618 * config/arm/libgcc-bpabi.ver: New file.
2619 * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
2620 (LINK_SPEC): Remove.
2621 * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
2623 * config/arm/t-bpabi: New file.
2624 * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
2625 (TARGET_LIB_INT_CMP_BIASED): Likewise.
2627 2004-08-10 David Edelsohn <edelsohn@gnu.org>
2629 * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
2630 * config/rs6000/rs6000.md (clrmemsi): New pattern.
2631 * config/rs6000/rs6000.c (expand_block_clear): New function.
2632 (expand_block_move): Convert alignment to bits. Use SImode and
2633 HImode for unaligned addresses if not STRICT_ALIGNMENT.
2635 2004-08-10 Caroline Tice <ctice@apple.com>
2637 * varasm.c (unlikely_section_label): New global variable.
2638 (unlikely_text_section_name): New global variable.
2639 (text_section): Remove alignment statement.
2640 (unlikely_text_section): Remove alignment statement; use
2641 unlikely_section_label rather than hard-coded string.
2642 (assemble_start_function): Initialize unlikely_section_label and
2643 unlikely_text_section_name; make sure cold section is properly
2644 aligned at start of function; output unlikely_section_label if
2647 2004-08-10 Ulrich Weigand <uweigand@de.ibm.com>
2649 * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
2650 * config/s390/s390.c (s390_canonicalize_comparison): New function.
2651 * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
2652 * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
2653 "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
2654 ("*tmqi_mem"): Remove SUBREG from pattern.
2655 ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
2656 ("*andsi3_cconly"): Likewise.
2658 2004-08-10 H.J. Lu <hongjiu.lu@intel.com>
2661 * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
2663 2004-08-10 Janis Johnson <janis187@us.ibm.com>
2665 * doc/sourcebuild.texi (compat testing): Document available test
2666 framework commands. Use the preferred spelling of DejaGnu.
2668 2004-08-10 Daniel Berlin <dberlin@dberlin.org>
2670 * lambda.h: Add matrix type, and prototypes for remainder of
2671 matrix and vector functions.
2672 (lambda_vector_mult_const): New function.
2673 (lambda_vector_negate): Ditto.
2674 (lambda_vector_add): Ditto.
2675 (lambda_vector_add_mc): Ditto.
2676 (lambda_vector_copy): Ditto.
2677 (lambda_vector_zerop): Ditto.
2678 (lambda_vector_equal): Ditto.
2679 (lambda_vector_min_nz): Ditto.
2680 (lambda_vector_first_nz): Ditto.
2681 (lambda_vector_matrix_mult): Ditto.
2682 * lambda-mat.c: New file.
2683 * Makefile.in (lambda-mat.o): New.
2685 2004-08-10 Andrew MacLeod <amacleod@redhat.com>
2687 * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
2688 after linking stmt into the program.
2689 (bsi_remove): Don't call modify_stmt.
2690 * tree-complex.c (update_complex_assignment,
2691 expand_complex_comparison): Call modify_stmt after changing the stmt.
2692 * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
2694 * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
2695 the stmt, and only if needed.
2696 * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
2698 (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
2699 (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
2700 (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
2701 (eliminate_redundant_computations): Don't pass an annotation. Call
2702 modify_stmt rather than setting the annotation directly.
2703 (record_equivalences_from_stmt): Remove unused local 'j'.
2704 (cprop_operand): Take a stmt rather than an annotation as a parameter.
2706 (cprop_into_stmt): Pass stmt rather than annotation.
2707 (update_rhs_and_lookup_avail_expr): Call modify_stmt.
2708 * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
2710 * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
2712 2004-08-10 Jason Merrill <jason@redhat.com>
2715 * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
2718 2004-08-10 Geoffrey Keating <geoffk@apple.com>
2720 * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
2723 2004-08-10 Roger Sayle <roger@eyesopen.com>
2725 * config/mips/mips.md: New reciprocal square root patterns that
2726 match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
2728 2004-08-10 Paul Brook <paul@codesourcery.com>
2730 * config/arm/arm-protos.h (arm_set_return_address,
2731 thumb_set_return_address): Add prototypes.
2732 * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
2733 * config/arm/arm.c (arm_compute_func_type,
2734 use_return_insn, arm_compute_save_reg0_reg12_mask,
2735 arm_compute_save_reg_mask, arm_output_function_prologue,
2736 arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
2737 current_function_calls_eh_return.
2738 (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
2740 (arm_set_return_address, thumb_set_return_address): New functions.
2741 * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
2742 ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
2743 * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
2744 (epilogue): Use the stackadj register.
2745 (eh_return, arm_eh_return, thumb_eh_return): New pattern.
2747 2004-08-10 Jakub Jelinek <jakub@redhat.com>
2750 * expr.c (move_by_pieces_ninsns): Add max_size argument.
2751 (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
2752 (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
2753 (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
2754 but using MOVE_RATIO.
2755 (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
2756 (can_store_by_pieces): Change max_size type to unsigned int.
2757 (store_by_pieces_1): Likewise. Pass max_size to
2758 move_by_pieces_ninsns.
2759 * config/s390/s390.h (STORE_BY_PIECES_P): Define.
2760 * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
2761 to move_by_pieces_ninsns.
2762 (STORE_BY_PIECES_P): Define.
2763 * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
2764 to move_by_pieces_ninsns.
2765 * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
2767 * config/i386/i386.h (CLEAR_RATIO): Define.
2769 2004-08-09 Paolo Bonzini <bonzini@gnu.org>
2771 * expr.c (expand_expr_real_1): Add back code that was not dead.
2773 2004-08-09 Andrew Pinski <apinski@apple.com>
2775 * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
2776 which is found to be compatible before returning the aliasing set.
2778 2004-08-09 Daniel Jacobowitz <dan@debian.org>
2780 * ggc-zone.c (struct alloc_zone): Add statistics counters.
2781 (always_collect): New flag.
2782 (ggc_alloc_zone_1): Update statistics support. Don't include
2783 overhead in allocated counter.
2784 (sweep_pages): Update allocated counter for large pages. Don'y
2786 (ggc_collect_1): Always collect.
2787 (ggc_collect): Honor always_collect flag. Sum all zones to decide
2789 (SCALE, LABEL): New macros.
2790 (ggc_print_statistics): Add statistics support.
2792 2004-08-09 Roger Sayle <roger@eyesopen.com>
2794 * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
2795 (init_expmed): Fix potential overrun problem with "all.reg".
2796 (expand_sdiv2_pow2): Add an alternate implementation for signed
2797 division, if the target provides a suitable conditional move insn.
2799 2004-08-09 Paul Brook <paul@codesourcery.com>
2800 Richard Henderson <rth@redhat.com>
2802 * unwind-dw2.c (uw_install_context_1): Update target saved stack
2805 2004-08-09 Geoffrey Keating <geoffk@apple.com>
2807 * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
2808 Check DATA limit only if there's no AS limit. Ignore insanely
2810 (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
2811 but take care that the AS limit isn't overrun.
2812 * doc/invoke.texi: Update documentation of min-heapsize parameter.
2814 2004-08-09 Jeff Law <law@redhat.com>
2816 * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
2817 (tree-ssa-threadupdate.o): Add dependencies.
2818 * tree-ssa-threadupdate.c: New file.
2819 * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
2820 (rewrite_vars_out_of_ssa): Remove prototype.
2821 (cleanup_tree_cfg): Returns a bool.
2822 * tree.h (thread_through_all_blocks): Prototype.
2823 * tree-outof-ssa.c (SSANORM_*): Move into here.
2824 (remove_ssa_form): Now static.
2825 (rewrite_vars_out_of_ssa): Kill.
2826 * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
2827 * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
2828 (remove_ssa_form, register_partitions_for_vars): Kill declarations.
2829 * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
2830 anything was changed.
2831 * tree-phinodes.c (add_phi_arg): Get the block for the PHI
2832 from the PHI's annotation rather than the edge associated with
2834 * tree-ssa-dom.c (redirection_edges): Kill.
2835 (redirect_edges_and_update_ssa_graph): Kill.
2836 (tree_ssa_dominator_optimize): Do not reset forwardable flag
2837 for blocks anymore. Do not initialize redirection_edges.
2838 Call thread_through_all_blocks. Simplify code for cleanup
2839 of the CFG and iterating. No longer call cleanup_tree_cfg
2840 outside the iteration loop.
2841 (thread_across_edge): No longer mess with forwardable blocks.
2843 2004-08-09 Zack Weinberg <zack@codesourcery.com>
2845 * explow.c (memory_address): Use memory_address_p.
2846 * recog.c (general_operand): Likewise.
2847 * regrename.c: No need to define REG_OK_STRICT.
2849 2004-08-09 Steven Bosscher <stevenb@suse.de>
2851 * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
2853 * gcse.c: Include timevar.h.
2854 (const_prop_count, copy_prop_count): Rename to global_const_prop_count
2855 and global_copy_prop_count.
2856 (local_const_prop_count, local_copy_prop_count): New static globals.
2857 (gcse_main): Set the right timevar for each pass.
2858 (cprop_jump): Increment global_const_prop_count when a constant is
2859 propagated. Add "GLOBAL" to dump output.
2860 (cprop_insn): Increment global_const_prop_count when a constant is
2861 propagated, or global_copy_prop_count when a copy is propagated.
2862 (do_local_cprop): Likewise for local_const_prop_count and
2863 local_copy_prop_count.
2864 (one_cprop_pass): Initialize const/cprop counters to zero.
2865 Print out results of local and global const/cprop separately.
2866 (bypass_block): Break over-length line.
2867 * Makefile.in (gcse.o): Add TIMEVAR_H dependency. Fix dependencies
2868 for bb-reorder.o and tracer.o.
2870 2004-08-09 Paolo Bonzini <bonzini@gnu.org>
2872 * Makefile.in (GTFILES): Remove stmt.c
2873 (stmt.o): Do not depend on gt-stmt.h.
2874 * emit-rtl.c (emit_line_note): Do not call
2875 set_file_and_line_for_stmt.
2876 * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
2878 * function.c (free_after_parsing): Do not free STMT field.
2879 (allocate_struct_function): Do not call init_stmt_for_function.
2880 (assign_stack_temp_for_type): Do not accept values of keep
2882 (init_temp_slots): Do not initialize removed variables.
2883 * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
2884 and X_VAR_TEMP_SLOT_LEVEL fields.
2885 * rtl.h (set_file_and_line_for_stmt): Remove.
2886 * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
2887 struct stmt_status, cond_stack, case_stack, nesting_stack,
2888 nesting_depth, emit_locus, set_file_and_line_for_stmt,
2889 same_case_target_p, init_stmt_for_function, emit_nop,
2890 expand_start_cond, expand_start_elseif, expand_start_else,
2891 expand_elseif, expand_end_cond): Remove.
2892 (preserve_subexpressions_p): Remove references to CFUN->STMT.
2893 (expand_start_case, expand_end_case_type): Remove, merge into...
2894 (expand_case): ... this one, including other bits from
2895 expand_expr_real_1. Inline same_case_target_p. Turn members
2896 of CASE_STACK into local variables.
2897 (emit_case_bit_tests): Inline same_case_target_p.
2898 (add_case_node): Add HEAD argument, return new head of the list,
2899 do not handle default label here.
2900 * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
2901 expand_start_elseif, current_nesting_level, expand_start_case,
2902 expand_end_case_type, expand_end_case, add_case_node,
2903 init_stmt_for_function, expand_elseif): Remove prototypes.
2904 (expand_case): Add prototype.
2906 2004-08-09 Paolo Bonzini <bonzini@gnu.org>
2908 * expr.c (expand_expr_real_1): Use optab_for_tree_code.
2910 2004-08-09 Paolo Bonzini <bonzini@gnu.org>
2912 * expr.c (var_rtx): Remove.
2913 (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
2914 LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
2915 TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
2917 (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
2918 * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
2919 * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
2921 2004-08-08 Mostafa Hagog <mustafa@il.ibm.com>
2922 Ayal Zaks <zaks@il.ibm.com>
2924 * common.opt (freschedule-modulo-scheduled-loops): New flag.
2925 * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
2926 * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
2927 when -freschedule-modulo-scheduled-loops flag is not specified.
2928 (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
2929 add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
2930 More accurate placing of insn in row of partial schedule.
2931 (ps_insn_find_column): New function.
2932 * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
2933 * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
2934 (schedule_region): Use sched_is_disabled_for_current_region_p.
2935 * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
2937 2004-08-07 H.J. Lu <hongjiu.lu@intel.com>
2939 * config/i386/i386.c (ix86_expand_clrmem): Revert the last
2942 2004-08-07 H.J. Lu <hongjiu.lu@intel.com>
2944 * config/i386/i386.c (ix86_expand_clrmem): Properly call
2945 gen_strset for 64bit target.
2947 2004-08-07 Olivier Hainque <hainque@act-europe.fr>
2949 * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
2951 2004-08-07 Jason Merrill <jason@redhat.com>
2953 Make return in memory explicit.
2954 * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
2955 (assign_parm_find_data_types): Remove code for old front end
2956 invisible reference handling.
2957 (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
2958 (expand_function_end): Likewise.
2959 * gimplify.c (gimplify_return_expr): Handle a dereferenced
2961 * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
2962 (declare_return_variable): Handle DECL_BY_REFERENCE.
2963 * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
2964 (cp_genericize_r): Use convert_from_reference.
2965 Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
2966 (cp_genericize): Handle the RESULT_DECL. Unset TREE_ADDRESSABLE.
2968 * c-common.c (c_warn_unused_result): Check TREE_USED before
2969 warning about a CALL_EXPR with an unused value.
2971 2004-08-06 Mark Mitchell <mark@codesourcery.com>
2973 * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
2974 to the compiler. Use -fshort-wchar by default.
2976 2004-08-06 Pat Haugen <pthaugen@us.ibm.com>
2978 * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
2979 * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
2981 * doc/invoke.texi (param): Document min-crossjump-insns.
2983 2004-08-06 Richard Sandiford <rsandifo@redhat.com>
2986 * c.opt (Wmissing-field-initializers): New option.
2987 * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
2988 * c-typeck.c (pop_init_level): Guard the missing field warning with
2989 warn_missing_field_initializers rather than extra_warnings.
2990 * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
2991 some of the explanation from...
2992 (-Wextra): ...here. Say that the missing field warning can be
2993 seperately controlled by -Wmissing-field-initializers.
2995 2004-08-06 Paolo Bonzini <bonzini@gnu.org>
2997 * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
2998 * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
2999 * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
3000 * tree.def (ENTRY_VALUE_EXPR): Remove.
3002 2004-08-06 Jakub Jelinek <jakub@redhat.com>
3004 * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
3005 the places where it is actually needed. Don't use repz; stosb
3006 for -Os with sufficiently small constant sizes.
3007 For sufficiently small repz; stos{l,q} repeat counts use a sequence
3008 of stos{l,q} instructions instead.
3010 2004-08-06 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3012 PR tree-optimization/16807
3013 * loop-iv.c (dump_iv_info): Dump invariants correctly.
3014 (iv_subreg, iv_extend): Express value of invariant purely in
3017 2004-08-06 Mark Mitchell <mark@codesourcery.com>
3019 * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
3020 (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
3022 2004-08-06 Roman Zippel <zippel@linux-m68k.org>
3024 * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
3025 * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
3027 * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
3028 pattern until reload is finished to allow better code generation
3029 and split them completely into separate instrunctions.
3030 (*andsi3_split): New pattern.
3032 2004-08-05 Mark Mitchell <mark@codesourcery.com>
3034 * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
3035 Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P. Set
3036 DECL_VISIBLITY. Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
3037 * tree.h (handle_dll_attribute): Declare. Test
3038 TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
3039 * c-common.h (c_determine_visibility): Declare.
3040 * c-common.c (c_determine_visibility): New function.
3041 * c-decl.c (finish_decl): Use it.
3042 (finish_function): Likewise.
3043 * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
3044 zero, by default. Use #if, not #ifdef, to test it.
3045 * config/arm/arm.c (arm_attribute_table): Use
3046 handle_dll_attribute. Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
3048 * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
3049 * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
3051 * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
3052 * config/i386/i386.c (ix86_attribute_table): Use
3053 handle_dll_attribute for dllimport/dllexport. Test
3054 TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
3055 * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
3056 * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
3058 * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
3060 * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
3062 * doc/extend.texi (dllexport): Clarify and correct documentation.
3063 (dllimport): Likewise.
3064 * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
3065 handle_dll_attribute.
3067 2004-08-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3069 * tree-ssa-loop-manip.c: New file.
3070 * Makefile.in (tree-ssa-loop-manip.o): Add.
3071 * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
3073 * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
3075 (tree_ssa_loop_done): Verify loop closed ssa form.
3076 * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
3078 2004-08-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3080 * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
3081 pa_asm_output_aligned_local): New functions.
3082 * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
3083 pa_asm_output_aligned_common and pa_asm_output_aligned_local.
3084 * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
3085 pa_asm_output_aligned_common.
3086 (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
3087 * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
3088 (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
3089 (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
3090 * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
3091 (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
3092 (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
3093 * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
3096 2004-08-05 Andrew Pinski <apinski@apple.com>
3098 * objc/objc-act.c (build_objc_string_object): Mark the address
3099 expression as constant.
3101 2004-08-05 David Edelsohn <edelsohn@gnu.org>
3103 * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
3104 and mask64_operand thinkos. Handle ZERO_EXTRACT. Handle
3105 SIGN_EXTEND / ZERO_EXTEND of MEM. Handle rlwinm patterns.
3107 2004-08-05 Joseph S. Myers <jsm@polyomino.org.uk>
3109 * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
3110 Remove definitions conditioned on USE_GNULIBC_1 or conditioned
3111 out, and associated obsolete comments.
3113 2004-08-05 Nathan Sidwell <nathan@codesourcery.com>
3115 * tree.h (force_fit_type): Return a tree, take three flags.
3116 * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
3117 TREE_CONSTANT_OVERFLOW here.
3118 (int_const_binop, const_binop): Adjust.
3119 (size_int_type): Do sign extension here.
3120 (fold_convert_const, optimize_bit_field_compare,
3121 decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
3122 fold_negate_const, fold_abs_const, fold_not_const): Adjust.
3123 * tree.c (size_in_bytes, int_fits_type_p): Adjust.
3125 2004-08-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3127 PR tree-optimization/16864
3128 * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
3129 for ssa names without default_def.
3131 2004-08-05 Richard Sandiford <rsandifo@redhat.com>
3133 * config/i386/i386.c (ix86_expand_prologue): If the function uses a
3134 frame pointer, restore eax with an ebp-relative address.
3136 2004-08-04 Geoffrey Keating <geoffk@apple.com>
3139 * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
3140 * c-common.h (make_rtl_for_local_static): Delete.
3141 * c-decl.c (shadow_tag_warned): Clean up comment.
3142 (finish_decl): Clean up spacing. Use set_user_assembler_name when
3143 appropriate. Don't pass asmspec to rest_of_decl_compilation.
3144 * c-semantics.c (make_rtl_for_local_static): Delete.
3145 * expr.c (init_block_move_fn): Use set_user_assembler_name.
3146 (init_block_clear_fn): Likewise.
3147 * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
3148 expect it to be in DECL_ASSEMBLER_NAME. Update callers in many files.
3149 * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
3150 * tree.h (make_decl_rtl): Remove second parameter.
3151 (set_user_assembler_name): New.
3152 * varasm.c (set_user_assembler_name): New.
3153 (make_decl_rtl): Remove second parameter. Update callers in many
3156 2004-08-05 Adam Nemet <anemet@lnxw.com>
3158 * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
3159 (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*. Update
3161 * gthr-lynx.h: New file.
3162 * config/lynx-ng.h: Remove file.
3163 * config/lynx.h: Update to LynxOS 4.0.
3164 * config/t-lynx: New file.
3165 * config/i386/lynx-ng.h: Remove file.
3166 * config/i386/lynx.h: Update to LynxOS 4.0.
3167 * config/rs6000/lynxbase.h: Remove file.
3168 * config/rs6000/lynx.h: Update to LynxOS 4.0.
3169 * config/rs6000/t-lynx: New file.
3170 * doc/install.texi (Options specification): Remove reference to
3171 LynxOS from systems where --with-gnu-as makes a difference.
3173 2004-08-05 Joseph S. Myers <jsm@polyomino.org.uk>
3175 * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
3177 * c-cppbuiltin.c (builtin_define_stdint_macros): New. Define
3179 (c_cpp_builtins): Call it.
3180 * doc/cpp.texi: Update.
3182 2004-08-04 David Edelsohn <edelsohn@gnu.org>
3184 * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
3187 2004-08-04 Jan Hubicka <jh@suse.cz>
3189 * basic-block.h (profile_staus): New global variable.
3190 * cfg.c (profile_status): Declare.
3191 (check_bb_profile): Break out from ....; use profile_status
3192 (dump_flow_info): ... here.
3193 * cfgbuild.c (find_basic_blocks): Set profile_status.
3194 * cfgexpand.c (tree_expand_cfg): Likewise.
3195 * predict.c (estimate_probability): Likewise.
3196 * profile.c (branch_prob): Likewise.
3197 * tree-cfg.c (build_tree_cfg): Likewise.
3198 (dump_function_to_file): Use check_bb_profile.
3199 * tree-pretty-print (dump_bb_header): Likewise.
3200 * tree-profile.c (do_tree_profiling): Cleanup.
3202 2004-08-04 Zack Weinberg <zack@codesourcery.com>
3204 * Makefile.in (RTL_BASE_H, RTL_H): Correct.
3205 (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
3206 (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
3207 (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
3208 (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
3209 (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
3210 (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
3211 (ggc-none.o, errors.o): Move rule to generators section;
3212 correct dependencies.
3213 (min-insn-modes.o): Move rule to generators section; remove
3214 unnecessary explicit command; correct dependencies.
3215 (print-rtl.o, print-rtl1.o): Correct dependencies.
3216 ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
3217 (mostlyclean): Update.
3219 * errors.c: Include bconfig.h not config.h. Correct comment.
3220 * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
3221 * ggc-none.c: Include bconfig.h; not config.h or tm.h.
3222 * print-rtl.c: Don't include tm_p.h.
3224 * rtl.h: Move forward-decl of struct function down where it's
3225 needed. Include genrtl.h #ifndef GENERATOR_FILE, not
3226 #ifndef NO_GENRTL_H. Remove unnecessary #ifdef BUFSIZ statements.
3228 2004-08-04 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3229 Jeff Law <law@redhat.com>
3231 * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
3232 * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
3233 * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
3234 manipulate the duplicated ssa names.
3235 * tree-ssanames.c (ssa_names_to_rewrite): New variable.
3236 (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
3237 unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
3239 (release_ssa_name): Do not release ssa names that may have multiple
3241 * tree.h (release_ssa_name_force, mark_for_rewrite,
3242 unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
3243 marked_ssa_names): Declare.
3244 * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
3245 (duplicate_blocks): Remove call to mark_defs_for_rewrite.
3246 Update call to rewrite_ssa_into_ssa.
3248 2004-08-04 Mark Mitchell <mark@codesourcery.com>
3250 * defaults.h (TARGET_DECLSPEC): New macro.
3251 * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
3252 * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
3253 * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
3254 * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
3256 (TARGET_DECLSPEC): Define.
3257 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
3259 * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
3261 (TARGET_DECLSPEC): Define.
3262 * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
3264 * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
3266 * doc/tm.texi (TARGET_DECLSPEC): Document.
3268 * doc/extend.texi: Fix typo in comment.
3270 2004-08-04 Paul Brook <paul@codesourcery.com>
3272 * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
3273 (TARGET_CXX): Use it.
3274 * target.h (struct gcc_target): Add cdtor_returns_this.
3275 * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
3276 (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
3277 * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
3279 2004-08-03 Nathan Sidwell <nathan@codesourcery.com>
3281 * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
3282 low/high pair. Do range checking directly.
3283 (interpret_integer): Adjust.
3285 2004-08-04 Nick Clifton <nickc@redhat.com>
3287 * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
3289 * doc/invoke.texi: Document this new switch and also the -mrenesas
3292 2004-08-04 Nathan Sidwell <nathan@codesourcery.com>
3294 * cfglayout.c (insn_locators_initialize): Update the current
3295 location before initializing a location.
3297 2004-08-03 Zack Weinberg <zack@codesourcery.com>
3299 * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
3300 (dbxout_function_end): Return after emitting the "Lscope" symbol
3301 under the same conditions that this function formerly wasn't called.
3302 Add explanatory comments.
3305 * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
3309 * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
3310 functions, broken out of dbxout_block.
3311 (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
3312 stabs too, if it contains symbols. Use the begin_label and
3313 the Lscope label (emitted by dbxout_function_end) for the
3314 range of this block.
3316 2004-08-03 Nathanael Nerode <neroden@gcc.gnu.org>
3318 * doc/install.texi: Update autoconf version requirements.
3320 2004-08-03 Zack Weinberg <zack@codesourcery.com>
3322 * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
3323 * recog.c (general_operand, immediate_operand, nonmemory_operand)
3324 (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
3325 * regclass.c (record_reg_classes): Likewise.
3326 * reload.c (find_reloads): Likewise.
3327 * reload1.c (reload): Likewise.
3329 2004-08-03 Zack Weinberg <zack@codesourcery.com>
3331 * gensupport.c (init_md_reader_args_cb): Renamed from
3332 init_md_reader_args. Add third option, callback function for
3333 parsing program-specific options. Add diagnosis of incorrect
3334 number of input files.
3335 (init_md_reader): Fold into init_md_reader_args_cb.
3336 (init_md_reader_args): Now a thin wrapper around
3337 init_md_reader_args_cb.
3338 * gensupport.h: Update prototypes.
3340 * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
3341 * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
3342 * genrecog.c: No need to diagnose lack of an input file;
3343 init_md_reader_args will handle it.
3344 * genconditions.c: Likewise, and use init_md_reader_args.
3345 * genconstants.c: Likewise, and no need to call read_md_rtx.
3347 2004-08-03 Joseph S. Myers <jsm@polyomino.org.uk>
3349 * c-decl.c (implicitly_declare): Diagnose incompatible implicit
3352 2004-08-03 Mike Stump <mrs@apple.com>
3354 * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
3356 * doc/invoke.texi (Darwin Options): Update to reflect above.
3358 2004-08-03 Roger Sayle <roger@eyesopen.com>
3361 * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
3362 truncations, not just global truncations.
3364 2004-08-03 Andrew Pinski <apinski@apple.com>
3367 * loop-iv.c (simplify_using_assignment): Initialize lhs.
3369 2004-08-03 Paul Brook <paul@codesourcery.com>
3371 * gcc/doc/install.texi: Document MPFR requirement.
3373 2004-08-03 Maciej W. Rozycki <macro@linux-mips.org>
3375 * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
3376 and mmap() explicitly instead of relying on preset autoconf cache
3378 * configure: Regenerate.
3380 2004-08-03 H.J. Lu <hongjiu.lu@intel.com>
3383 * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
3385 (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
3386 (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
3389 * config/i386/t-gmm_malloc: New file.
3390 * config/i386/t-pmm_malloc: Likewise.
3392 * config/i386/xmmintrin.h: Include <mm_malloc.h>.
3394 2004-08-03 H.J. Lu <hongjiu.lu@intel.com>
3395 Tanguy Fautrà <tfautre@pandora.be>
3397 * config/i386/pmm_malloc.h: New file.
3399 2004-08-03 Danny Smith <dannysmith@users.sourceforge.net>
3401 * config/i386/gmm_malloc.h: New file.
3403 2004-08-03 Dale Johannesen <dalej@apple.com>
3405 * config/rs6000/rs6000.c (machopic_output_stub): Align Darwin stubs.
3406 * c-common.c: Include opts.h.
3407 (c_common_get_alias_set): Fix check for a single input file.
3408 * toplev.c: Remove current_file_decl.
3411 2004-08-03 Mark Mitchell <mark@codesourcery.com>
3413 * config.gcc (arm*-*-symbianelf*): New target.
3414 * config/arm/symbian.h: New file.
3416 * gthr-gnat.c: Add visibility #pragmas.
3417 * gthr-gnat.h : Likewise.
3419 * libgcc2.c (__ffsSI2): Move prototype to libgcc2.h.
3420 (__ffsDI2): Likewise.
3421 (__clzSI2): Likewise.
3422 (__ctzSI2): Likewise.
3423 (__ctzDI2): Likewise.
3424 (__popcountSI2): Likewise.
3425 (__popcountDI2): Likewise.
3426 (__paritySI2): Likewise.
3427 (__parityDI2): Likewise.
3428 * libgcc2.h: Add visibility #pragmas.
3429 (__clzDI2): Add prototype.
3430 (__clzSI2): Likewise.
3431 (__ctzSI2): Likewise.
3432 (__ffsDI2): Likewise.
3433 (__ffsSI2): Likewise.
3434 (__ctzDI2): Likewise.
3435 (__popcountSI2): Likewise.
3436 (__popcountDI2): Likewise.
3437 (__paritySI2): Likewise.
3438 (__parityDI2): Likewise.
3439 * unwind-dw2-fde.h: Add visibility #pragmas.
3440 * unwind.h: Likewise.
3442 2004-08-03 David Edelsohn <edelsohn@gnu.org>
3443 Dale Johannesen <dalej@apple.com>
3444 Roger Sayle <roger@eyesopen.com>
3446 * config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of
3447 constants more accurately. Adjust costs for FMA instructions.
3448 Add cases for most logical and float operations. Recurse into
3451 2004-08-03 Richard Earnshaw <rearnsha@arm.com>
3453 * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files.
3455 2004-08-03 Pat Haugen <pthaugen@us.ibm.com>
3457 * ra-build.c (conflicts_between_webs): For webs that cross a call add
3458 conflicts to regs_invalidated_by_call.
3460 2004-08-03 Paul Brook <paul@codesourcery.com>
3462 * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
3464 2004-08-03 Jan Hubicka <jh@suse.cz>
3466 * coverage.c (tree_coverage_counter_ref): Fix computation of the new
3469 2004-08-03 Richard Earnshaw <rearnsha@arm.com>
3471 * arm-cores.def: Sort by architecture. Add arm946es, arm966es,
3472 arm968es, arm10e, arm1020e, arm1022e.
3473 * invoke.texi: Update list of ARM cores.
3474 * arm-tune.md: Regenerate.
3476 2004-08-03 Richard Earnshaw <rearnsha@arm.com>
3478 * arm/gentune.sh: New file.
3479 * arm/t-arm: New file.
3480 * arm/arm-tune.md: New file (autogenerated).
3481 * config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants.
3482 * arm.md (attribute tune): Delete. Include arm-tune.md.
3484 2004-08-03 Paolo Bonzini <bonzini@gnu.org>
3486 * gcc.c (add_prefix, add_sysrooted_prefix): Remove
3487 penultimate parameter. All callers adjusted.
3488 (struct prefix_list): Remove used_flag_ptr.
3489 (find_a_file): Do not set *pl->used_flag_ptr.
3490 (warn_B, warn_std_ptr): Remove.
3492 2004-08-03 Yossi Markovich <yossim@il.ibm.com>
3493 Mostafa Hagog <mustafa@il.ibm.com>
3495 * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern.
3497 2004-08-02 Geoffrey Keating <geoffk@apple.com>
3499 * dwarf2out.c (output_call_frame_info): Don't change data format
3500 due to TARGET_USES_WEAK_UNWIND_INFO. Always refer to the local
3501 label. Use 'true' not '1'.
3502 * doc/install.texi (powerpc-*-darwin*): Mention cctools version
3505 2004-08-02 Gabriel Dos Reis <gdr@cs.tamu.edu>
3507 * gdbinit.in: Reflect previous changes to rtunion_def.
3509 2004-08-02 Roger Sayle <roger@eyesopen.com>
3511 * fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y"
3512 -> "X % Y" is only valid for TRUNC_MOD_EXPR.
3514 2004-08-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
3516 * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
3518 * langhooks.h (lang_hooks::builtin_function): Rename parameter
3519 from "class" to "bt_class".
3521 2004-08-02 Paul Brook <paul@codesourcery.com>
3523 PR rtl-optimization/15068
3524 * flow.c (init_propagate_block_info): Check condition is reversible.
3526 2004-08-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
3528 * gengtype.h (options::info): Change type to const char *.
3529 (enum gc_used_enum): Move out of struct type scope.
3530 * gengtype.c (create_option): Convert initializer for option::info to
3532 (adjust_field_type, walk_type, write_func_for_structure,
3533 write_root, write_roots): Remove pointless cast.
3535 2004-08-02 J"orn Rennecke <joern.rennecke@superh.com>
3537 * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F.
3539 2004-08-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
3541 * rtl.h (union rtunion_def): Have all members start with the
3543 (XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL,
3544 X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
3545 X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP,
3546 XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members
3548 * gengtype.c (adjust_field_rtx_def): Likewise.
3549 * rtlanal.c (loc_mentioned_in_p): Likewise.
3551 2004-08-02 Richard Sandiford <rsandifo@redhat.com>
3553 * config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file.
3554 Replace uses of mips/elf64.h with mips/elf.h
3555 * config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION)
3556 (TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP)
3557 (ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS)
3558 (MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP)
3559 (HANDLE_SYSV_PRAGMA): Delete.
3560 (ASM_OUTPUT_DEF): Fix formatting.
3561 * config/mips/elf64.h: Delete.
3563 2004-08-01 Zack Weinberg <zack@codesourcery.com>
3565 * config/ia64/ia64.c (got_symbolic_operand): Do require a
3566 symbol+offset operand to have its offset be zero mod 0x3fff
3567 when GOT entries are in use. Clarify logic in SYMBOL_REF
3568 case. Clarify comments.
3569 (ia64_expand_load_address): Split a symbol+offset load when
3570 the offset is nonzero mod 0x3fff, not 0x1fff.
3572 2004-08-01 Geoffrey Keating <geoffk@apple.com>
3574 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
3575 if trying to *store* to a non-offsettable address.
3576 * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to
3577 a nonoffsettable address.
3578 (movdi_internal32): Don't move GPRs to a nonoffsettable address.
3580 (movti_string): Don't move GPRs to a nonoffsettable address.
3581 (movti_ppc64): Don't move GPRs to a nonoffsettable address. Clean up.
3583 2004-08-02 Ben Elliston <bje@au.ibm.com>
3586 * config/rs6000/altivec.h: Replace typeof with __typeof__.
3588 2004-08-01 Richard Henderson <rth@redhat.com>
3590 * expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with
3591 variable sized types.
3593 2004-08-01 Richard Sandiford <rsandifo@redhat.com>
3595 * doc/invoke.texi: In the MIPS options section, remove the passage
3596 saying that -mexplicit-relocs is usually disabled for -mabicalls
3597 -fno-unit-at-a-time.
3598 * config/mips/mips.c (override_options): Remove the code that enforced
3601 2004-08-01 Richard Sandiford <rsandifo@redhat.com>
3603 * config/mips/mips.md (cprestore): Provide two alternatives, one for
3604 an in-range offset and one for an out-of-range offset. Wrap the latter
3605 in .set macro/.set nomacro if it's inside a .set nomacro block.
3607 2004-08-01 Richard Sandiford <rsandifo@redhat.com>
3609 * config/mips/mips-protos.h (mips_gp_save_slot): Remove.
3610 (mips_restore_gp): Declare.
3611 * config/mips/mips.c (mips_add_offset): Add a scratch register
3612 argument. Reimplement in rtl only, reusing MIPS16 logic from
3613 mips_output_mi_thunk.
3614 (mips_legitimize_address, mips_legitimize_const_move): Adjust calls
3616 (mips_gp_save_slot): Delete.
3617 (mips_restore_gp): New function.
3618 (mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
3619 * config/mips/mips.md (exception_receiver): Turn into a
3620 define_insn_and_split. Use mips_restore_gp to do the split.
3621 (call_internal, call_value_internal, call_value_multiple_internal): Use
3622 mips_restore_gp to restore $gp.
3624 2004-07-31 Andrew Pinski <apinski@apple.com>
3627 * mkheaders.in (libsubdir): s/gcc-lib/gcc/.
3629 2004-07-31 Joseph S. Myers <jsm@polyomino.org.uk>
3631 * c-decl.c (diagnose_mismatched_decls): Give error for external
3632 redeclaration of identifier declared with no linkage, not just
3633 warning with -Wtraditional. Do not check DECL_CONTEXT to give
3634 error for redeclaration with no linkage.
3636 2004-07-30 Geoffrey Keating <geoffk@apple.com>
3637 Fariborz Jahanian <fjahanian@apple.com>
3639 * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit
3640 non-offsettable addresses even for DImode.
3641 (rs6000_split_multireg_move): Cope with non-offsettable addresses
3642 being moved into multiple GPRs.
3644 * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
3646 (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
3647 * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
3649 * config/rs6000/darwin-ldouble.c (isless): New macro.
3651 (nonfinite): New macro.
3653 (_xlqadd): Completely rewrite.
3654 (_xlqmul): Correct overflow handling.
3655 (_xlqdiv): Correct overflow handling.
3656 * config/rs6000/darwin-ldouble-format: New file.
3658 2004-07-30 Roger Sayle <roger@eyesopen.com>
3659 Richard Henderson <rth@redhat.com>
3661 * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or
3662 9 into the equivalent lea instruction.
3664 2004-07-30 Richard Henderson <rth@redhat.com>
3666 * gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace
3667 with DECL_INITIAL if fb_lvalue.
3668 * tree-gimple.c (is_gimple_id): Add CONST_DECL.
3669 * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL
3671 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
3673 2004-07-30 Diego Novillo <dnovillo@redhat.com>
3675 * tree-ssa-alias.c (compute_points_to_and_addr_escape): If a
3676 pointer escapes through a function call, assume that the
3677 callee will dereference it.
3678 (add_pointed_to_var): Assume that VALUE is always an
3680 (collect_points_to_info_r): Only call add_pointed_to_var if
3681 the value is an ADDR_EXPR.
3683 2004-07-30 Diego Novillo <dnovillo@redhat.com>
3685 * tree-ssa-alias.c (create_alias_map_for): Do not get the
3686 alias set of the inner type of ARRAY_TYPEs.
3688 2004-07-29 Diego Novillo <dnovillo@redhat.com>
3690 * tree-ssa-ccp.c (visit_assignment): Move code to prevent
3691 setting a non-register to UNDEFINED right before the call to
3694 2004-07-29 Kaz Kojima <kkojima@gcc.gnu.org>
3696 * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*.
3698 2004-07-29 Diego Novillo <dnovillo@redhat.com>
3700 * tree-ssa.c (verify_flow_sensitive_alias_info): When
3701 comparing points-to sets of different pointers, make sure the
3702 second pointer is actually referenced in the code.
3704 2004-07-29 Zack Weinberg <zack@codesourcery.com>
3706 * config/ia64/ia64.c (setjmp_operand): Delete, unused.
3707 (got_symbolic_operand): Remove unreachable code.
3708 * config/ia64/ia64.h (PREDICATE_CODES): Remove entry for
3709 setjmp_operand; add entry for tls_symbolic_operand.
3710 * config/ia64/ia64-protos.h: Remove all prototypes of
3711 predicate functions.
3713 2004-07-29 Mark Mitchell <mark@codesourcery.com>
3715 * c-common.h (lang_post_pch_load): New variable.
3716 * c-pch.c (lang_post_pch_load): Define it.
3717 (c_common_read_pch): Use it.
3718 * cgraphunit.c (record_call_1): Give the front end a chance to
3719 record additional needed entities when a variable is marked as
3721 * tlink.c (recompile_files): Robustify.
3722 (scan_linker_output): If a symbol is assigned to a file,
3723 but after recompilation is not present there, issue an error
3726 2004-07-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3728 * tree-ssa-loop-im.c (force_move_till_expr, force_move_till):
3729 Take orig_loop argument and pass it to set_level.
3730 (schedule_sm): Pass the correct orig_loop to force_move_till.
3732 2004-07-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3734 * cfgloop.c (update_latch_info): Update dominator of the new block.
3735 (canonicalize_loop_headers, flow_loops_find): Do not free dominance
3737 * dominance.c (verify_dominators): Check that the dominance tree is
3739 (recount_dominator): Ignore unreachable blocks.
3740 (iterate_fix_dominators): Cleanup old dominance information before
3743 2004-07-29 Diego Novillo <dnovillo@redhat.com>
3745 * tree-ssa-operands.c (get_expr_operands): Revert changes
3746 to ADDR_EXPR processing introduced by:
3747 2004-06-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3748 * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
3750 2004-07-29 Joseph S. Myers <jsm@polyomino.org.uk>
3752 * doc/implement-c.texi: Add C90 subclause references. Point to
3753 preprocessor documentation instead of duplicating it. Add points
3754 only present in C90. Fill in documentation for all points.
3756 2004-07-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3758 * pa.c (output_movb): Correct typo.
3760 2004-07-29 Pat Haugen <pthaugen@us.ibm.com>
3762 * ra.h (single_reg_in_regclass): Declare.
3763 * ra.c (single_reg_in_regclass): Define.
3764 (first_hard_reg): New.
3765 (init_ra): Initialize single_reg_in_regclass.
3766 * ra-colorize.c (ok_class): New.
3767 (coalesce, aggressive_coalesce, extended_coalesce_2): Use it.
3769 2004-07-29 Nathan Sidwell <nathan@codesourcery.com>
3771 * gcov-io.h: Allow zero tag as EOF indicator.
3772 (gcov_is_eof): Remove.
3773 (gcov_truncate): Remove.
3774 * gcov-io.c (gcov_seek): Always SEEK_SET.
3775 * libgcov.c (gcov_exit): Don't use gcov_truncate. Write explicit
3777 * coverage.c (read_counts_file): Don't use gcov_is_eof.
3778 * gcov-dump.c (dump_file): Likewise.
3779 * gcov.c (read_graph_file, read_count_file): Likewise.
3781 * c-decl.c (complete_array_type): Don't gratuitously copy
3782 maxindex. Check it always has a type.
3784 2004-07-29 Steven Bosscher <stevenb@suse.de>
3786 * rtl.c (currently_expanding_to_rtl): New.
3787 * rtl.h (currently_expanding_to_rtl): Export it.
3788 * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit.
3790 * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
3792 * config/sh/sh.c: Replace rtx_equal_function_value_matters
3793 with currently_expanding_to_rtl.
3794 * config/sh/sh.md: Likewise.
3795 * config/ia64/ia64.c (got_symbolic_operand): Likewise.
3797 2004-07-29 Alexandre Oliva <aoliva@redhat.com>
3799 Introduce sh2a support.
3800 2004-07-29 Alexandre Oliva <aoliva@redhat.com>
3801 * config.gcc: Build multilibs for sh2a and sh2a-single by
3803 * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
3804 default. Split their tests out of the corresponding SH4
3806 * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
3808 2004-07-28 Alexandre Oliva <aoliva@redhat.com>
3809 * config.gcc: Handle sh2a multilibs and cpu selection.
3810 * config/sh/sh.h: Likewise. Handle sh2a command line flags.
3811 * config/sh/t-mlib-sh2a: New.
3812 * config/sh/t-mlib-sh2a-nofpu: New.
3813 * config/sh/t-mlib-sh2a-single: New.
3814 * config/sh/t-mlib-sh2a-single-only: New.
3815 2004-07-09 Nick Clifton <nickc@redhat.com>
3817 * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if
3818 -ml and -m2a are used together.
3819 2004-03-23 DJ Delorie <dj@redhat.com>
3820 * config/sh/sh.c (sh_builtin_saveregs): Use the double code only
3821 when we have a double-sized FPU.
3822 2004-02-24 Corinna Vinschen <vinschen@redhat.com>
3823 * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__
3825 * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu,
3826 -msh2a-single and -msh2a-single-only
3827 2004-02-24 Corinna Vinschen <vinschen@redhat.com>
3828 * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__
3830 2004-02-20 DJ Delorie <dj@delorie.com>
3831 * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu.
3832 2004-02-20 Fred Fish <fnf@redhat.com>,
3833 Corinna Vinschen <vinschen@redhat.com>
3834 * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu.
3835 (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a.
3836 2004-02-18 DJ Delorie <dj@redhat.com>
3837 * config/sh/sh.c (broken_move): Add support for movi20.
3838 * config/sh/sh.h: Likewise.
3839 (SHIFT_COUNT_TRUNCATED): Set for sh2a.
3840 * config/sh/sh.md (udivsi3_sh2a): New.
3845 (ashlsi3_sh2a): New.
3846 (ashrsi3_sh2a): New.
3847 (lshrsi3_sh2a): New.
3848 (movsi_i): Disable for sh2a.
3849 (movsi_ie): Add movi20.
3850 (movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable
3851 sh2a, for -m2a-nofpu mode.
3852 2004-02-13 DJ Delorie <dj@redhat.com>
3853 * config/sh/lib1funcs.asm: Handle double vs single better.
3854 * config/sh/sh.h: Likewise.
3855 2004-02-09 DJ Delorie <dj@redhat.com>
3856 * config/sh/crt1.asm: Add support for sh2a.
3857 * config/sh/elf.h: Likewise.
3858 * config/sh/lib1funcs.asm: Likewise.
3859 * config/sh/sh.c: Likewise.
3860 * config/sh/sh.md: Likewise.
3861 * config/sh/sh.h: Likewise.
3862 * config/sh/t-sh: Likewise.
3864 2004-07-28 Alexandre Oliva <aoliva@redhat.com>
3866 * config/frv/frv.md (movqi_internal, movhi_internal,
3867 movsi_internal): Add backup alternatives for memory inputs.
3869 2004-07-28 Matt Austern <austern@apple.com>
3871 * config/darwin.c (darwin_one_byte_bool): New global variable.
3872 * config/darwin.h (darwin_one_byte_bool): Declare.
3873 (SUBTARGET_OPTIONS): Define macro. (for -mone-byte-bool flag.)
3874 * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on
3875 value of darwin_one_byte_bool.
3876 * doc/invoke.texi: Document -mone-byte-bool flag.
3878 2004-07-28 Eric Christopher <echristo@redhat.com>
3880 * c-common.c (c_common_unsafe_for_reeval): Delete.
3881 * c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use.
3882 * c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case.
3883 * calls.c (fix_unsafe_tree): Delete.
3884 (expand_call): Delete code which used above.
3885 * dojump.c (do_jump): Delete UNSAVE_EXPR case.
3886 * expr.c (expand_expr_real_1): Ditto.
3887 * fold-const.c (non_lvalue): Ditto.
3888 * langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
3889 (lhd_unsafe_for_reeval): Ditto.
3890 * langhooks.c (lhd_unsafe_for_reeval): Ditto.
3891 * langhooks.h (unsafe_for_reeval): Ditto.
3892 (unsave_expr_now): Adjust comment.
3893 * tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits.
3894 (estimate_num_insns_1): Ditto.
3895 * tree-pretty-print.c (dump_generic_node): Ditto.
3896 * tree.c (expr_align): Ditto.
3897 (unsave_expr): Delete.
3898 (unsafe_for_reeval): Ditto.
3899 * tree.h (unsafe_for_reeval, unsave_expr): Ditto.
3900 * tree.def (UNSAVE_EXPR): Delete.
3901 * objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete.
3903 2004-07-28 Zack Weinberg <zack@codesourcery.com>
3905 * tree.h (enum tls_model): Move ...
3906 * coretypes.h: ... here.
3908 2004-07-28 Richard Sandiford <rsandifo@redhat.com>
3910 * config/frv/frv.h (EPILOGUE_USES): New. Use LR.
3912 2004-07-28 Richard Sandiford <rsandifo@redhat.com>
3914 * cse.c (validate_canon_reg): New function, split out from...
3915 (canon_reg): ...here. Use validate_canon_reg for both 'e' and 'E'.
3917 2004-07-28 Diego Novillo <dnovillo@redhat.com>
3919 * tree-ssa-alias.c (maybe_create_global_var): Don't just
3920 return if .GLOBAL_VAR has been created.
3922 2004-07-28 Diego Novillo <dnovillo@redhat.com>
3924 * tree-ssa.c (verify_flow_insensitive_alias_info): Process
3925 every variable that may have aliases, not just tags.
3927 2004-07-28 Aldy Hernandez <aldyh@redhat.com>
3929 * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to
3930 move_from_CR_eq_bit.
3931 Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ.
3934 * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to
3937 * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to
3938 output_e500_flip_eq_bit.