1 2004-08-21 Mike Stump <mrs@apple.com>
3 * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to...
4 (darwin_fix_and_continue): Likewise.
5 (darwin_fix_and_continue_switch): Likewise.
6 * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool.
7 (darwin_fix_and_continue): Likewise.
8 (darwin_fix_and_continue_switch): Likewise.
10 2004-08-21 Danny Smith <dannysmith@users.sourceforge.net>
13 * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix):
14 Remove, merging into ...
15 (gen_stdcall_or_fastcall_suffix): New function, returning tree
16 rather than const char*, and accepting additional parameter.
17 Don't add suffix to '*'-prefixed symbols or variadic functions.
18 (i386_pe_encode_section_info): Adjust for call to new function.
19 Call change_decl_assembler_name.
21 2004-08-20 Mike Stump <mrs@apple.com>
23 * config/darwin.c (machopic_indirect_data_reference): Mark
25 * config/386/386.c (darwin_local_data_pic): Add.
26 (legitimate_constant_p): Reorder so that PLUS handling runs
27 before darwin_local_data_pic to match the ordering in
28 legitimate_pic_address_disp_p and so that MINUS runs after
29 darwin_local_data_pic as otherwise the darwin_local_data_pic
30 logic can be skipped, which would be very bad.
31 (legitimate_pic_address_disp_p): Move from from here to
32 darwin_local_data_pic so it can be reused.
34 2004-08-21 Alan Modra <amodra@bigpond.net.au>
36 * config/rs6000/linux64.h (DOT_SYMBOLS): Define.
37 (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version.
38 (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS.
39 (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise.
40 (RS6000_ABI_NAME): Define as "linux".
41 (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols.
42 * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select
43 ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT.
44 * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl.
45 * config/rs6000/rs6000.c (dot_symbols): New global var.
46 (rs6000_output_function_entry): New function, modified for
48 (print_operand <case 'z'>): ..extracted from here.
49 (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS.
50 (rs6000_output_function_epilogue): Likewise.
51 (rs6000_elf_declare_function_name): Likewise.
52 * config/rs6000/rs6000.h (DOT_SYMBOLS): Define.
53 (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS.
54 * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE.
55 * configure: Regenerate.
56 * config.in: Regenerate.
58 2004-08-20 Mark Mitchell <mark@codesourcery.com>
60 * reload.c (find_reloads_address): Fix thinko in previous change.
62 * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
65 2004-08-20 Jakub Jelinek <jakub@redhat.com>
67 PR rtl-optimization/17099
68 * combine.c (force_to_mode): Check if inner_mask has any bits set
69 outside of GET_MODE (x) instead of op_mode.
71 2004-08-20 Mark Mitchell <mark@codesourcery.com>
73 * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
75 * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo.
76 (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler.
77 * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5
79 (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
81 * config/arm/t-symbian: New file.
83 2004-08-20 Andrew Pinski <apinski@apple.com>
85 * regrename.c (kill_value_regno): ANSIfy.
87 2004-08-20 Dale Johannesen <dalej@apple.com>
89 * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
91 2004-08-20 Daniel Jacobowitz <dan@debian.org>
93 * regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
94 (kill_value_regno): New function, derived from kill_value.
96 (copyprop_hardreg_forward_1): Update call to kill_value_regno.
98 2004-08-20 Daniel Berlin <dberlin@dberlin.org>
100 Fix PR tree-optimization/17111
101 * tree-ssa-pre.c (create_value_expr_from): Don't change the types
102 of non-value_handles.
103 (bitmap_set_contains): All constants are in every set.
105 2004-08-20 Nathan Sidwell <nathan@codesourcery.com>
107 * fold-const.c (round_up, round_down): Use build_int_cst.
108 Optimize common case.
110 2004-08-20 Zack Weinberg <zack@codesourcery.com>
111 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
113 * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section,
114 one_only_data_section): Rename to som_readonly_data_section,
115 som_one_only_readonly_data_section and som_one_only_data_section.
116 * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP,
117 NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete
119 (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP,
120 NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual
122 (pa_select_section): Use renamed section functions.
123 * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
124 SOM_READONLY_DATA_SECTION_FUNCTION,
125 SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
126 SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION):
128 * config/pa/som.h: ... not here.
129 (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
130 ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP,
131 ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
132 ONE_ONLY_DATA_SECTION_ASM_OP): Delete.
133 (READONLY_DATA_SECTION): Use som_readonly_data_section.
135 2004-08-20 Nathan Sidwell <nathan@codesourcery.com>
137 * fold-const.c (int_const_binop): Don't generate non-overflowing
138 size-types specially.
139 (fold_convert_const): Likewise.
141 * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
142 clear cache on copied sizetype.
144 2004-08-20 Ben Elliston <bje@au.ibm.com>
146 * configure.ac: Don't escape apostrophe in --enable-coverage help.
147 * configure: Regenerate.
149 2004-08-20 Danny Smith <dannysmith@users.sourceforge.net>
152 * gcc.c (struct stat input_stat): Don't define if
153 HOST_LACKS_INODE_NUMBERS
154 (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather
155 than stat to determine if temp file is same as input file.
156 * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS.
157 * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS
159 2004-08-20 Richard Sandiford <rsandifo@redhat.com>
161 * configure.ac (mips*-*-*): Print an error if not using GAS.
162 * configure: Regenerated.
163 * doc/install.texi: Remove irix5 bullet from --with-gnu-as. Remove
164 comments about buggy MIPSpro assemblers.
165 * config.gcc (mips-sgi-irix[56]*): Combine stanzas. Include elfos.h
166 before mips.h and iris.h after it. Use t-iris and t-slibgcc-irix.
167 Use iris5.h only for IRIX 5 configs. Use iris6.h and t-iris6 for
168 IRIX 6 configs. Define IRIX_USING_GNU_LD if using GNU ld.
169 * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
170 (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
171 (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
172 (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
173 (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
174 of more general IRIX 6 definitions.
175 (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
176 (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
177 (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
178 (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
179 (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
180 (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
181 (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
182 (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
183 (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
184 (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
185 (LINK_SPEC): Move most of definition to iris.h.
186 (SUBTARGET_LINK_SPEC): New macro.
187 (IRIX_STARTFILE_SPEC): Fold into...
188 (STARTFILE_SPEC): ...here.
189 (IRIX_ENDFILE_SPEC): Fold into...
190 (ENDFILE_SPEC): ...here.
191 * config/mips/iris6.h (TARGET_IRIX5): Remove override.
192 (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
193 (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
194 (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
195 (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
196 (TARGET_OS_CPP_BUILTINS): Likewise. Guard IRIX6-specific bits.
197 (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
198 (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
199 (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
200 (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
201 (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
202 (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
203 (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
204 (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
205 (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
206 (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
207 (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
208 (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
209 (TARGET_IRIX6): Define to 1.
210 (DRIVER_SELF_SPECS): Define.
211 (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
212 (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
213 (SUBTARGET_LINK_SPEC): New macro.
214 (IRIX_STARTFILE_SPEC): Fold into...
215 (STARTFILE_SPEC): ...here. Remove !mabi=* case.
216 (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
217 (LIB_SPEC, LIBGCC_SPEC): Use them.
218 (LIB_SPEC): Remove !mabi=* case.
219 (IRIX_ENDFILE_SPEC): Fold into...
220 (ENDFILE_SPEC): ...here. Remove !mabi=* case.
221 * config/mips/mips-protos.h (irix_output_external_libcall): Delete.
222 * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
223 (TARGET_IRIX6): New macro.
224 (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
225 (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
226 (LABEL_AFTER_LOC): Delete.
227 * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
228 (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
229 (mips_build_builtin_va_list): Check TARGET_IRIX6.
230 (override_options): Remove TARGET_SGI_O32_AS-related code.
231 (irix_output_external_libcall): Make static.
232 (mips_output_filename): Avoid use of SET_FILE_NUMBER and
234 (mips_file_start): Tidy guard for ABI sections. Remove use of
235 ABICALLS_ASM_OP; use .abicalls instead.
236 (mips_output_aligned_decl_common, mips_declare_object_name)
237 (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
238 (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
239 .globl foo .text directives.
240 (irix_asm_named_section_1, irix_asm_named_section)
241 (irix_section_align_entry, irix_section_align_htab)
242 (irix_orig_asm_out_file, irix_section_align_entry_eq)
243 (irix_section_align_entry_hash, irix_asm_output_align)
244 (irix_file_start, irix_section_align_1, copy_file_data)
245 (irix_file_end, irix_section_type_flags): Delete.
246 * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
247 Use standard section syntax. Remove protective "jr $31".
248 (__gcc_fini): Likewise .gcc_fini.
249 * config/mips/irix-crtn.asm: Adjust sections accordingly.
250 * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
252 * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
254 (EXTRA_MULTILIB_PARTS): Define.
255 * config/mips/t-iris6: Remove bogus comment.
256 (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
257 * config/mips/iris5gas.h, config/mips/iris5gld.h,
258 config/mips/iris6gas.h, config/mips/iris6gld.h,
259 config/mips/t-iris5-as, config/mips/t-iris5-gas
260 config/mips/t-irix-gld: Delete.
261 * config/mips/iris.h: New file.
262 * config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
264 2004-08-20 Richard Earnshaw <rearnsha@arm.com>
266 * postreload.c (reload_cse_move2add): Allow any condjump, but check
267 that the implicit set isn't clobbered in the jump insn.
269 2004-08-19 Mark Mitchell <mark@codesourcery.com>
271 * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove.
272 * optabs.c (init_optabs): Don't check it.
273 * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define.
274 * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove.
276 2004-08-18 Andreas Krebbel <krebbel1@de.ibm.com>
278 * config/s390/s390.md (s390_warn_framesize_string)
279 (s390_warn_dynamic_string, s390_stack_size_string)
280 (s390_stack_guard_string): New global string variables.
281 (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size)
282 (s390_stack_guard): New global variables.
283 (override_options): Added checks for the new options.
284 (s390_emit_prologue): Emit stack check and trap code and perform
285 compile time stack size checking.
287 * config/s390/s390.h (TARGET_OPTIONS): Added new options
288 "warn-framesize", "warn-dynamicstack", "stack-size" and
291 * doc/invoke.texi: Added documentation for the new options.
293 2004-08-19 Ulrich Weigand <uweigand@de.ibm.com>
295 * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen
296 to eliminate warning.
297 (linear_search_fdes): Declare p as unsigned.
298 (binary_search_mixed_encoding_fdes): Likewise.
299 * unwind-dw2.c (get_cie_encoding): Cast argument to strlen
300 to eliminate warning.
301 * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing
304 2004-08-19 Ulrich Weigand <uweigand@de.ibm.com>
306 * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype.
307 * config/s390/s390.c (preferred_la_operand_p): Accept two operands
308 instead of one. Check for strictly legitimate address.
309 * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call
310 to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate.
312 2004-08-19 Eric Christopher <echristo@redhat.com>
314 * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove.
315 * langhooks.h (unsave_expr_now): Ditto.
316 * tree.h (unsave_expr_1): Remove prototype.
317 (lhd_unsave_expr_now): Rename to unsave_expr_now.
318 * tree-inline.c (unsave_expr_1): Move here
319 from tree.c. Make static.
320 (unsave_expr_now): Rename from lhd_unsave_expr_now.
321 * tree-sra.c: Fix up for rename.
322 * tree-ssa-copy.c: Ditto.
324 * tree.c (unsave_expr_1): Move to tree-inline.c.
326 2004-08-19 Caroline Tice <ctice@apple.com>
328 * config/i386/cygming.h (switch_to_section): Fix typo (change
329 in_unlikely_text_section to in_unlikely_executed_text).
331 2004-08-19 Daniel Berlin <dberlin@dberlin.org>
333 * vec.h (VEC_lower_bound): New macro.
335 2004-08-19 Richard Sandiford <rsandifo@redhat.com>
338 * config/mips/mips.c (struct mips_arg_info): Delete num_bytes.
339 (mips_arg_info): Update accordingly. Remove common treatment of fpr_p;
340 treat each ABI separately. Deal with n32/n64 complex float arguments.
341 (function_arg): Add associated complex handling here.
343 2004-08-19 Richard Henderson <rth@redhat.com>
345 * config/arm/arm.c (arm_gen_load_multiple): Use
346 adjust_automodify_address. Take base memory and offset instead
347 of unchanging/struct/scalar bits.
348 (arm_gen_store_multiple): Likewise.
349 (arm_gen_movmemqi): Use adjust_automodify_address.
350 * config/arm/arm-protos.h: Update decls.
351 * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call.
352 (store_multiple): Similarly.
354 2004-08-19 J"orn Rennecke <joern.rennecke@superh.com>
356 * regclass.c (globalize_reg): Update call_really_used_regs.
358 2004-08-19 Nathan Sidwell <nathan@codesourcery.com>
360 * doc/invoke.texi (integer-share-limit): Document.
362 * tree.h (TYPE_CACHED_VALUES_P): New.
363 (TYPE_CACHED_VALUES): New.
364 (TYPE_ORIG_SIZE_TYPE): Adjust.
365 * tree.def (INTEGER_CST): Update documentation.
366 * tree.c: Inlcude params.h.
367 (build_int_cst): Cache small values.
368 (build_type_copy): Do not copy the value cache.
369 * c-common.c (c_common_nodes_and_builtins): Add comment, remove
371 * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting.
372 * expmed.c (const_mult_add_overflow_p): Clear type copy's value
374 * fold-const.c (force_fit_type): Copy value when setting
376 (int_const_binop): Likewise.
377 * stor-layout.c: Include params.h
378 (set_sizetype): Create values cache.
379 (fixup_unsigned_type): Set UNSIGNED_P before caching any values.
380 * params.def (PARAM_INTEGER_SHARE_LIMIT): New.
381 * params.h (INTEGER_SHARE_LIMIT): New.
382 * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H.
384 2004-08-19 Paolo Bonzini <bonzini@gnu.org>
386 * gimplify.c (gimplify_minimax_expr): Remove.
387 (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
389 2004-08-19 Dorit Naishlos <dorit@il.ibm.com>
391 * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
392 STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
394 2004-08-19 Mark Mitchell <mark@codesourcery.com>
396 * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
398 2004-08-18 Andrew Pinski <apinski@apple.com>
400 * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
402 2004-08-18 Mark Mitchell <mark@codesourcery.com>
404 * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
405 (__aeabi_ul2f): Likewise.
407 2004-08-18 Richard Henderson <rth@redhat.com>
409 * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block
410 move to rtl completely.
411 (struct meminsnbuf, xtensa_emit_block_move): Remove.
412 (xtensa_find_mode_for_size): Remove.
413 * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove.
414 * config/xtensa/xtensa.md (movmemsi_internal): Remove.
416 2004-08-18 Richard Henderson <rth@redhat.com>
418 * config/mcore/mcore.c (mode_from_align): Remove DImode.
419 (block_move_sequence): Rewrite to use adjust_address.
420 (mcore_expand_block_move): Cleanup logic. Accept only operands.
421 Return boolean indicating success/failure.
422 * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl.
423 * config/mcore/mcore.md (movmemsi): Update to match.
425 2004-08-18 Mike Stump <mrs@apple.com>
427 * doc/invoke.texi (-mfix-and-continue): Add support for
428 fast turn around debugging.
429 (-ffix-and-continue): Likewise.
430 (-mindirect-data): Likewise.
431 (-findirect-data): Likewise.
432 * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise.
433 (indirect_data): Likewise.
434 (machopic_data_defined_p): Likewise.
435 (machopic_output_indirection): Likewise.
436 (darwin_encode_section_info): Likewise.
437 (darwin_fix_and_continue): Likewise.
438 (darwin_fix_and_continue_switch): Likewise.
439 * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise.
440 * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
441 (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise.
442 (SUBTARGET_OPTIONS): Likewise.
443 (darwin_fix_and_continue): Likewise.
444 (darwin_fix_and_continue_switch): Likewise.
445 (TARGET_FIX_AND_CONTINUE): Likewise.
446 * config/rs6000.c (rs6000_emit_prologue): Likewise.
448 2004-08-19 Steven Bosscher <stevenb@suse.de>
450 * basic-block.h (struct edge_def): Remove crossing_edge.
451 (EDGE_CROSSING): New define.
452 (EDGE_ALL_FLAGS): Update.
453 * bb-reorder.c (find_traces_1_round, better_edge_p,
454 find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges,
455 find_jump_block, fix_crossing_conditional_branches,
456 fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
457 Replace all occurences of crossing_edge with an edge flag check
459 * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
460 try_crossjump_bb): Likewise.
461 * cfglayout.c (fixup_reorder_chain): Likewise.
462 * cfgrtl.c (force_nonfallthru_and_redirect,
463 commit_one_edge_insertion): Likewise.
465 * Makefile.in (cfganal.o): Depend on TIMEVAR_H.
466 * tree-flow.h (compute_dominance_frontiers): Move prototype...
467 * basic-block.h: ...here.
468 * tree-cfg.c (compute_dominance_frontiers_1,
469 compute_dominance_frontiers): Move from here...
470 * cfganal.c: ...to here. Include timevar.h.
472 2004-08-18 James E Wilson <wilson@specifixinc.com>
474 * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=.
475 * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes.
477 * config/mips/mips.md (type): Add frdiv.
478 (divsf3+1, divsf3+2): Change type to frdiv.
479 * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe,
480 ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New.
482 * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv.
483 * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise.
484 * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise.
485 * config/mips/5000.md (r5k_fdiv_single): Likewise.
486 * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise.
487 * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise.
488 * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise.
489 * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise.
490 * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise.
491 * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double):
493 * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
495 2004-08-18 Robert Bowdidge <bowdidge@apple.com>
497 * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
498 get regression tester working again.
500 2004-08-18 Zack Weinberg <zack@codesourcery.com>
502 * insn-notes.def, reg-notes.def: New files.
503 * rtl.h: Use them to define enum insn_note and enum reg_note.
504 * rtl.c: Use them to define note_insn_name and reg_note_name.
505 * Makefile.in (RTL_BASE_H): Update.
507 * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
508 renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
510 2004-08-18 Richard Earnshaw <rearnsha@arm.com>
512 * arm.c (arm_size_rtx_costs): New function.
513 (arm_override_options): Use it if optimizing for space.
515 2004-08-18 Richard Henderson <rth@redhat.com>
517 * emit-rtl.c (gen_const_mem): New.
518 * rtl.h (gen_const_mem): Declare.
519 * expr.c (do_tablejump): Use it.
520 * varasm.c (force_const_mem): Likewise.
521 * config/darwin.c (machopic_indirect_data_reference): Likewise.
522 (machopic_legitimize_pic_address): Likewise.
523 * config/arm/arm.c (legitimize_pic_address): Likewise.
524 * config/i386/i386.c (legitimize_pic_address): Likewise.
525 (legitimize_tls_address): Likewise.
526 * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
527 * config/ia64/ia64.md (load_fptr): Likewise.
528 * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
529 * config/pa/pa.c (legitimize_pic_address): Likewise.
530 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
531 (rs6000_emit_move): Likewise.
532 * config/s390/s390.c (legitimize_pic_address): Likewise.
533 (legitimize_tls_address): Likewise.
534 * config/s390/s390.md (casesi): Likewise.
535 * config/sh/sh.c (sh_reorg): Likewise.
536 * config/sparc/sparc.c (legitimize_pic_address): Likewise.
537 * config/v850/v850.md (casesi): Likewise.
539 * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
540 * config/sh/sh.c (prepare_move_operands): Remove incorrect
541 use of MEM_READONLY_P.
543 2004-08-18 Steven Bosscher <stevenb@suse.de>
545 * Makefile.in (OBJS-common): Add postreload-gcse.c.
546 Add new postreload-gcse.o.
547 * cse.c (SAFE_HASH): Define as wrapper around safe_hash.
548 (lookup_as_function, insert, rehash_using_reg, use_related_value,
549 equiv_constant): Use SAFE_HASH instead of safe_hash.
550 (exp_equiv_p): Export. Add for_gcse argument when comparing
552 (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr,
553 find_comparison_args, fold_rtx, cse_insn): Update callers.
554 (hash_rtx): New function derived from old canon_hash and bits
555 from gcse.c hash_expr_1.
556 (canon_hash_string): Rename to hash_rtx_string.
557 (canon_hash, safe_hash): Make static inline. Call hash_rtx.
558 * cselib.c (hash_rtx): Rename to cselib_hash_rtx.
559 (cselib_lookup): Update this caller.
560 * gcse.c (modify_mem_list_set, canon_modify_mem_list_set):
562 (hash_expr): Call hash_rtx.
563 (ldst_entry): Likewise.
564 (expr_equiv_p): Call exp_equiv_p.
565 (struct unoccr, hash_expr_1, hash_string_1, lookup_expr,
566 reg_used_on_edge, reg_set_between_after_reload_p,
567 reg_used_between_after_reload_p, get_avail_load_store_reg,
568 is_jump_table_basic_block, bb_has_well_behaved_predecessors,
569 get_bb_avail_insn, hash_scan_set_after_reload,
570 compute_hash_table_after_reload,
571 eliminate_partially_redundant_loads, gcse_after_reload,
572 get_bb_avail_insn, gcse_after_reload_main): Remove.
573 * postreload-gcse.c: New file, reincarnating most of the above.
574 * rtl.h (exp_equiv_p, hash_rtx): New prototypes.
575 (gcse_after_reload_main): Update prototype.
576 * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar.
577 * passes.c (rest_of_handle_gcse2): Use it.
579 2004-08-18 Diego Novillo <dnovillo@redhat.com>
581 * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
582 (pass_loop_done): Likewise.
584 2004-08-18 Andrew Pinski <apinski@apple.com>
586 * config/rs6000/darwin.md: Delete the altivec patterns which are
587 handled differently now.
588 (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT
589 (macho_correct_pic_di): Likewise.
590 (call_indirect_nonlocal_darwin64): Likewise.
591 Delete the save world/saveFP/saveVec patterns.
593 Revert the reversion of: 2004-08-16 Stan Shebs <shebs@apple.com>
594 * config/darwin.c (macho_indirect_data_reference): Add DImode case.
595 * config/rs6000/rs6000.md: Include darwin.md.
596 (builtin_setjmp_receiver): Add DImode case.
597 * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
600 2004-08-18 Matt Austern <austern@apple.com>
603 * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped.
604 * darwin.c (darwin_file_end): Mark file as potentially strippable.
606 2004-08-18 Richard Henderson <rth@redhat.com>
608 * alias.c (readonly_fields_p): Remove.
609 (objects_must_conflict_p): Don't call it.
610 * tree.h (readonly_fields_p): Remove.
611 * langhooks.h (struct lang_hooks): Remove honor_readonly.
612 * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove.
614 2004-08-18 Diego Novillo <dnovillo@redhat.com>
616 * tree-dfa.c (add_referenced_var): Only global variables are
618 * tree-flow.h (struct ptr_info_def): Add field pt_global_mem.
619 * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark
620 all pointers dereferenced if the statement dereferences them.
621 (create_name_tags): Do not create memory tags for pointers
622 that have PT_ANYTHING set.
623 Also check if PT_VARS is not empty before creating a name tag.
624 (compute_flow_sensitive_aliasing): Don't mark call-clobbered
625 variables that share the same alias set with a pointer that
627 (add_may_alias): Add FIXME comment to remove clobbering
628 aliased variables and tags.
629 (replace_may_alias): Likewise.
630 (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED.
631 (merge_pointed_to_info): If the original variable has not
632 points-to information, call set_pt_anything.
633 (add_pointed_to_var): Do not prevent adding a pointed-to
634 variable if the pointers is PT_ANYTHING.
635 If the variable is a global, set PT_GLOBAL_MEM.
636 (collect_points_to_info_r): Don't assume that PLUS_EXPRs of
637 pointer type only come in PTR+OFFSET flavours.
638 Always call merge_pointed_to_info on PHI arguments that are
640 (get_nmt_for): Mark call-clobbered tags whose pointer points
642 * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
644 (get_indirect_ref_operands): Always clear OPF_KILL_DEF from
646 (add_stmt_operand): Abort if the caller tried to add a killing
647 definition for a memory tag.
648 * tree-ssa.c (verify_flow_sensitive_alias_info): Remove
651 2004-08-18 J"orn Rennecke <joern.rennecke@superh.com>
653 * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers
654 from call_used_regs. Update call_really_used_regs.
655 (CALL_REALLY_USED_REGISTERS): Define.
656 * sh.c (output_stack_adjust, shmedia_target_regs_stack_space):
657 Replace call_used_regs with call_really_used_regs.
658 (calc_live_regs, sh_media_register_for_return): Likewise.
659 (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise.
660 * sh.md (return_media): Likewise.
662 2004-08-18 Andrew Pinski <apinski@apple.com>
664 * config/darwin.c (machopic_legitimize_pic_address): Only set
665 MEM_READONLY_P in the non TARGET_TOC case.
667 2004-08-18 Zack Weinberg <zack@codesourcery.com>
669 * rtl.def (NIL): Delete.
670 * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
671 Tighten the syntax a little.
673 * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c
674 * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h
675 * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c
676 * config/i386/predicates.md, config/m32r/m32r.h
677 * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c
678 * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h
679 * config/sparc/sparc.h, doc/tm.texi:
680 Replace all occurrences of NIL with UNKNOWN.
682 2004-08-18 Zack Weinberg <zack@codesourcery.com>
684 * dojump.c (do_jump <unordered_bcc>): Do not recursively call
685 self with a TRUTH_ORIF_EXPR; generate the appropriate jump
686 sequence inline. Move drop_through_label code into this
687 block, being the only place it is used. Adjust comments.
689 2004-08-18 Fariborz Jahanian <fjahanian@apple.com>
691 * config/rs6000/altivec.md: Add new patterns for calls to
692 save_world/rest_world functions.
694 * config/rs6000/rs6000-protos.h: (save_world_operation,
695 restore_world_operation) new declarations.
697 * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p
699 (rs6000_stack_info): Set world_save_p field.
700 (save_world_operation): New function.
701 (restore_world_operation): New function.
702 (compute_save_world_info): New function.
703 (rs6000_stack_info): Call compute_save_world_info.
704 (rs6000_emit_prologue): Check for world_save_p and generate
705 pattern to call save_world for saving all non-volatile and
707 (rs6000_emit_epilogue): Check for world_save_p and generate
708 pattern to call rest_world to restore saved registers.
710 config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO,
711 FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined.
712 (rs6000_reg_names): New entries added for save_world_operation and
713 restore_world_operation.
715 2004-08-18 Caroline Tice <ctice@apple.com>
717 * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
718 "-freorder-blocks-and-partition" to the flags used in second
719 stage of profiledbootstrap.
720 * bb-reorder.c (push_to_next_round_p): Add new variable,
721 next_round_is_last; set and use variable to make sure, when
722 partitioning, that the last trace construction round consists
723 of all (and only) cold basic blocks.
724 (rotate_loop): Don't copy blocks that end in a section
726 (copy_bb): Correctly initialize "partition" of duplicated bb.
727 (add_unlikely_executed_notes): Add a comment.
728 (find_rarely_executed_basic_blocks_and_crossing_edges): Modify
729 to make sure, if function contains hot blocks, that the
730 successors of ENTRY_BLOCK_PTR are hot; also, only look for
731 crossing edges if the architecture supports named sections.
732 (mark_bb_for_unlikely_executed_section): Modify to always
733 insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
734 the basic block note insn.
735 (fix_crossing_unconditional_branches): Remove extra space.
736 (fix_edges_for_rarely_executed_code): Modify to only do
737 partitioning work if the architecture supports named sections.
738 (reorder_basic_blocks): Modify to only add
739 NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
740 supports named sections.
741 * c-common.c (handle_section_attribute): Initialize new global
742 variable, user_defined_section_attribute, to true if user has
744 * cfgcleanup.c (try_forward_edges): Modify to not attempt to
745 forward edges that cross section boundaries.
746 * cfglayout.c (fixup_reorder_chain): Modify to only fix up
747 partitioning information if the architecture supports named
749 * cfgrtl.c (target.h): Add statement to include this.
750 (rtl_split_block): Make sure newly created bb gets correct
752 (try_redirect_by_replacing_jump): Make sure redirection isn't
753 attempting to cross section boundaries.
754 (force_nonfallthru_and_redirect): Only do partition fix up if
755 architecture supports named sections.
756 (rtl_split_edge): Make sure newly created bb ends up in
758 (commit_one_edge_insertion): Remove code that incorrectly
759 updated basic block partition; Make sure partition fix up only
760 happens if architecture supports named sections and it's not
762 (rtl_verify_flow_info_1): Fix if-condition on test/error
763 condition that fallthru edges are not allowed to cross section
765 * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
766 * final.c (final_scan_insn): Remove redundant test from if-statement;
767 change calls to text_section into calls to function_section; add code
768 to only to partitioning fix up if architecture supports named
770 * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
772 (if_convert): Add targetm.have_named_sections to test.
773 * output.h (unlikely_section_label): Extern declaration for new global
775 (unlikely_text_section_name): Likewise.
776 * opts.c (decode_options): If both partitioning and DWARF debugging
777 are turned on, issue a warning that this doesn't work, and change
778 partitiong to basic block reordering (without hot/cold partitions).
779 * passes.c (rest_of_handle_final): Re-set new global variable,
780 user_defined_section_attribute, to false.
781 (rest_of_compilation): Change options for calling partitioning
782 function: Don't call if the user defined the section attribute, and
783 don't call if DECL_ONE_ONLY is true for the current function.
784 * predict.c (choose_function_section): Return immediately if we
785 are doing hot/cold partitioning (i.e. let the basic block partitioning
786 determine where the function belongs).
787 * reg-stack.c (emit_swap_insn): Add condition to step over
788 NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
789 * toplev.c (user_defined_section_attribute): New global variable.
790 * toplev.h (user_defined_section_attribute): Extern declaration
791 for new global variable.
792 * varasm.c (unlikely_section_label): New global variable.
793 (unlikely_text_section_name): New global variable.
794 (unlikely_text_section): Add code to initialize
795 unlikely_text_section_name if necessary; modify to use
796 unlikely_text_section_name and unlikely_section_label; also to use
797 named_section properly.
798 (in_unlikely_text_section): Modify to work correctly with
799 named_section and to use unlikely_text_section_name.
800 (named_section): Add code to work properly with cold section.
801 (function_section): Clean up if-statement.
802 * config/darwin.c (darwin_asm_named_section): Return to original
803 code, removing use of SECTION_FORMAT_STRING.
804 * config/arm/pe.h (switch_to_section): Add case for
805 in_unlikely_executed_text to switch statement.
806 * config/i386/cygming.h (switch_to_section): Likewise.
807 * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
808 (SECTION_FORMAT_STRING): Likewise.
809 * config/mcore/mcore.h (switch_to_section): Likewise.
810 * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
811 (SECTION_FORMAT_STRING): Remove.
813 2004-08-18 Roger Sayle <roger@eyesopen.com>
815 * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be
816 -ffixed-reg safe, by preserving the meanings of zero and one.
817 (CALL_USED_REGISTERS): Likewise.
818 (CONDITIONAL_REGISTER_USAGE): Update to process new encodings.
820 2004-08-18 Kaz Kojima <kkojima@gcc.gnu.org>
822 * config/sh/sh.c (split_branches): Check the result of
824 (sh_output_mi_thunk): Call init_flow if basic_block_info is null.
825 Call rtl_register_cfg_hooks.
827 2004-08-18 Richard Henderson <rth@redhat.com>
829 * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
830 * alias.c (true_dependence): Update to match new semantics.
831 (canon_true_dependence, write_dependence_p): Likewise.
832 (anti_dependence, output_dependence): Update write_dependence_p args.
833 (unchanging_anti_dependence): Remove.
834 * calls.c (purge_mem_unchanging_flag): Remove.
835 (fixup_tail_calls): Don't call it.
836 (expand_call): Don't add unchanging memory to function usage.
837 * expr.c (emit_block_move_via_libcall): Likewise.
838 (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems.
839 (get_subtarget): Don't use RTX_UNCHANGING_P.
840 (expand_assignment, store_constructor, expand_expr_real_1): Likewise.
841 (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P.
842 * combine.c (get_last_value_validate): Use MEM_READONLY_P.
843 * cse.c (insert): Don't use RTX_UNCHANGING_P.
844 (cse_insn, canon_hash): Use MEM_READONLY_P.
845 * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P
846 instead of RTX_UNCHANGING_P.
847 * explow.c (maybe_set_unchanging): Remove.
848 * expr.h (maybe_set_unchanging): Remove.
849 * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence.
850 * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P.
851 (assign_parm_setup_reg, expand_function_start): Likewise.
852 * integrate.c (copy_rtx_and_substitute): Likewise.
853 * ra-rewrite.c (emit_colors): Likewise.
854 * regmove.c (copy_src_to_dest, regmove_optimize): Likewise.
855 (fixup_match_1): Likewise.
856 * reload1.c (reload, alter_reg): Likewise.
857 * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P,
858 not RTX_UNCHANGING_P.
859 (equiv_init_varies_p): Likewise.
860 * loop-invariant.c (check_maybe_invariant): Likewise.
861 * resource.c (mark_referenced_resources, mark_set_resources): Likewise.
862 * loop.c (note_addr_stored): Likewise.
863 (prescan_loop): Likewise. Don't check function usage for clobbered
865 * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P,
866 not RTX_UNCHANGING_P.
867 (rtx_varies_p, modified_between_p, modified_in_p): Likewise.
868 * varasm.c (force_const_mem): Likewise.
869 * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.
870 * web.c (entry_register): Likewise.
871 * tree-gimple.h (get_base_address): Move decl ...
873 * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
875 * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be
876 called via for_each_rtx. Copy MEM_SCALAR_P, MEM_NOTRAP_P too.
877 (alpha_set_memflags): Update to match.
879 * config/darwin.c (machopic_indirect_data_reference): Set
880 MEM_READONLY_P instead of RTX_UNCHANGING_P.
881 (machopic_indirect_call_target): Likewise.
882 (machopic_legitimize_pic_address): Likewise.
883 * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple,
884 arm_gen_store_multiple, arm_gen_movmemqi): Likewise.
885 * config/arm/arm.md (load_multiple, store_multiple): Likewise.
886 * config/frv/frv.md (symGOT2reg): Likewise.
887 * config/i386/i386.c (legitimize_pic_address,
888 legitimize_tls_address, ix86_split_to_parts): Likewise.
889 * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
890 * config/ia64/ia64.md (load_fptr): Likewise.
891 * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
892 * config/m68k/m68k.c (legitimize_pic_address): Likewise.
893 * config/mcore/mcore.c (block_move_sequence): Likewise.
894 * config/mn10300/mn10300.md (symGOT2reg): Likewise.
895 * config/pa/pa.c (legitimize_pic_address): Likewise.
896 * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
897 (rs6000_emit_move): Likewise.
898 * config/s390/s390.c (legitimize_pic_address): Likewise.
899 (legitimize_tls_address): Likewise.
900 * config/s390/s390.md (casesi): Likewise.
901 * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise.
902 * config/sh/sh.md (symGOT2reg): Likewise.
903 * config/sparc/sparc.c (legitimize_pic_address): Likewise.
904 * config/v850/v850.md (casesi): Likewise.
906 * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P.
907 * config/iq2000/iq2000.c (save_restore_insns): Likewise.
908 * config/mips/mips.c (mips_restore_gp): Likewise.
909 (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise.
910 * config/sh/sh.c (sh_reorg): Likewise.
912 2004-08-18 Richard Henderson <rth@redhat.com>
914 * tree.h (struct tree_decl): Add gimple_formal_temp.
915 (DECL_GIMPLE_FORMAL_TEMP_P): New.
916 * gimplify.c (pop_gimplify_context): Clear it.
917 (lookup_tmp_var): Set it, if is_formal.
918 (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX.
919 Use is_gimple_val for VECTOR. Simplify return value.
920 (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P.
921 (gimplify_expr): Likewise.
922 * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from
923 is_gimple_tmp_rhs for clarity. Update all callers.
924 (is_gimple_reg_rhs): Simplify logic.
925 (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for
926 clarity; use DECL_GIMPLE_FORMAL_TEMP_P.
927 (is_gimple_formal_tmp_reg): Similarly.
928 * tree-gimple.h: Update decls.
929 * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use
930 DECL_IGNORED_P, not DECL_ARTIFICIAL. Tidy formatting.
931 * tree-ssa-live.c (var_union, type_var_init): Likewise.
933 2004-08-18 Paolo Bonzini <bonzini@gnu.org>
935 * c4x.c (legitimize_operands): Remove calls to
936 preserve_subexpressions_p.
938 2004-08-18 David Edelsohn <edelsohn@gnu.org>
940 * varasm.c (MAX_OFILE_ALIGNMENT): Move ...
941 * defaults.h (MAX_OFILE_ALIGNMENT): ... here.
943 2004-08-18 Ziemowit Laski <zlaski@apple.com>
945 * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii"
946 Objective-C++ extensions.
947 * gengtype.c (get_file_basename): Match entire subdirectory name
948 ('cp', 'objc', 'objcp') rather than just its suffix.
949 (get_base_file_bitmap): Allow for files to belong to more than one
951 (get_output_file_with_visibility): Treat objc/objc-act.h as a header
952 used by more than one front-end.
954 2004-08-18 Richard Earnshaw <rearnsha@arm.com>
956 * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to
957 avoid use of preserve_subexpressions_p.
959 2004-08-17 Richard Henderson <rth@redhat.com>
962 * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
964 2004-08-17 DJ Delorie <dj@redhat.com>
966 * doc/extend.texi: Document new xstormy16 attribute.
968 * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New.
969 (xstormy16_splittable_below100_or_register): New.
971 (xstormy16_reorg): New.
972 (TARGET_MACHINE_DEPENDENT_REORG): Define.
974 * config/stormy16/stormy16.md (movqi_internal): Make name public.
975 (movhi_internal): Likewise.
976 (cbhranchhi): Likewise.
977 (cbhranchhi_neg): Likewise.
978 (andhi3): Only allow splittable below100 operands.
980 (peephole2): New and/zero_extend->and peephole.
981 (peephole2): New load/ior/save->set1 peephole.
982 (peephole2): New load/and/save->clr1 peephole.
983 (bclrx, bclrx2, bclr7, bclr15): New.
984 (bsetx, bsetx2, bset7, bset15): New.
986 * config/stormy16/stormy16.c (xstormy16_print_operand): Be more
987 liberal about acceptable 'B' masks.
989 * config/stormy16/stormy16-protos.h
990 (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
991 xstormy16_below100_operand, xstormy16_below100_or_register,
992 xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
993 (PREDICATE_CODES): Add new predicates.
995 * config/stormy16/stormy16.c
996 (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
997 xstormy16_below100_operand, xstormy16_below100_or_register,
998 xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
999 (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New.
1000 (xstormy16_legitimate_address_p): Allow below100 symbols.
1001 (xstormy16_extra_constraint_p): Add 'W' for below100 operands.
1002 (xstormy16_expand_move): Leave below100 operands as-is.
1003 (xstormy16_encode_section_info): Encode below100 symbols.
1004 (xstormy16_strip_name_encoding): New.
1005 (xstormy16_print_operand): Print 'b' as shift mask.
1006 (xstormy16_attribute_table): Add below100 attributes.
1007 (xstormy16_handle_below100_attribute): New.
1009 * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100.
1010 (XSTORMY16_SECTION_FUNCTION): New.
1011 (EXTRA_SECTION_FUNCTIONS): Define using the above.
1012 (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
1013 (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols.
1014 (ASM_OUTPUT_LABELREF): Define.
1016 * config/stormy16/stormy16.md (movqi_internal): Add below100 support.
1017 (movhi_internal): Add below100 support.
1018 (andhi3): Add below100 support.
1019 (iorhi3): Add below100 support.
1020 (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New.
1022 2004-08-17 James E Wilson <wilson@specifixinc.com>
1024 * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead
1025 of VOIDmode for comparison code mode.
1026 * config/mips/mips.md: For conditional move patterns, use mode of
1027 first compare operand for comparison mode, instead of VOIDmode.
1029 * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both
1030 normal and -ffast-math code.
1032 2004-08-17 Mark Mitchell <mark@codesourcery.com>
1035 * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
1037 2004-08-17 Robert Bowdidge <bowdidge@apple.com>
1039 * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
1041 2004-08-17 Andreas Tobler <a.tobler@schweiz.ch>
1043 * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
1044 for non Darwin targets.
1045 (*call_value_nonlocal_darwin64): Likewise.
1047 2004-08-17 Fariborz Jahanian <fjahanian@apple.com>
1049 * config/rs6000/rs6000.c (rs6000_function_value): Check for
1050 altivec mode for altivec return register.
1052 2004-08-17 David Edelsohn <edelsohn@gnu.org>
1054 Revert 2004-08-16 Stan Shebs <shebs@apple.com>
1055 * config/darwin.c (macho_indirect_data_reference): Add DImode case.
1056 * config/rs6000/rs6000.md: Include darwin.md.
1057 (builtin_setjmp_receiver): Add DImode case.
1058 * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
1061 2004-08-17 Dorit Naishlos <dorit@il.ibm.com>
1063 * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE
1065 * tree-vectorizer.h: New File: Same.
1066 * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files.
1067 * common.opt (ftree-vectorize): New flag to enable vectorization.
1068 * timevar.def (TV_TREE_VECTORIZATION): New dump file for
1070 * tree-data-ref.h (init_data_ref): Additional argument.
1071 (array_base_name_differ_p): Moved to tree-data-ref.c.
1072 * tree-data-ref.c (array_base_name_differ_p): Revised.
1073 (initialize_data_dependence_relation): Call array_base_name_differ_p
1074 with an extra argument.
1075 (analyze_all_data_dependences): Same.
1076 (init_data_ref): Additional argument is_read to set DR_IS_READ.
1077 * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this
1079 * tree-flow.h (vectorize_loops, empty_block_p): Add declaration.
1080 * tree-optimize.c (pass_vectorize): Schedule the vectorization pass.
1081 * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new
1083 * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize.
1084 (tree_ssa_loop_done): Call scev_finalize.
1085 (tree_vectorize): Define the new vectorization pass.
1086 * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the
1087 size of the vector they support (until support for multiple vector
1088 sizes is added to the vectorizer).
1089 * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define.
1090 * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define.
1091 * invoke.texi (fdump-tree-vect, ftree-vectorize): Add
1094 2004-08-17 Nathan Sidwell <nathan@codesourcery.com>
1096 * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
1098 (generate_protocol_list, handle_impent): Likewise.
1100 2004-08-17 Roger Sayle <roger@eyesopen.com>
1102 * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to
1103 ensure that call_used_regs is a superset of both fixed_regs and
1104 call_really_used_regs.
1106 2004-08-17 Daniel Bornstein <danfuzz@milk.com>
1109 * arm.md (addsi3_cbranch_scratch): Correct case labels.
1111 2004-08-17 Paolo Bonzini <bonzini@gnu.org>
1114 * fold-const.c (fold): Check for integer operand when
1115 folding (A >> N) & 1 ? (1 << N) : 0. Fix from Andrew
1116 Pinski <pinskia@physics.uc.edu>.
1118 2004-08-17 Paolo Bonzini <bonzini@gnu.org>
1120 * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO.
1121 No need to check if in a cross configuration.
1122 * configure: Regenerate.
1124 * calls.c (precompute_register_parameters):
1125 Inline preserve_subexpressions_p ().
1126 * expmed.c (expand_mult_const, emit_store_flag): Likewise.
1127 * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn):
1129 * expr.c (get_subtarget): Likewise.
1130 * rtl.h (preserve_subexpressions_p): Remove.
1131 * stmt.c (preserve_subexpressions_p): Remove.
1133 * dojump.c (do_jump) <COND_EXPR, EQ_EXPR, NE_EXPR,
1134 TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, COMPOUND_EXPR>:
1135 Abort on gimplified cases.
1137 2004-08-16 James E Wilson <wilson@specifixinc.com>
1139 * tree.h (VECTOR_FLOAT_TYPE_P): New.
1140 (FLOAT_TYPE_P): Use it.
1141 * c-typeck.c (build_binary_op): After convert calls, check for
1142 check for ERROR_MARK operands.
1144 2004-08-16 Zack Weinberg <zack@codesourcery.com>
1146 * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete.
1147 (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update.
1148 (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o.
1149 (genobjs static pattern rule): Remove %.c dependency.
1150 ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o):
1151 Rename rules; delete commands; fix dependencies.
1152 (mostlyclean): Do not delete temporary source copies.
1153 * configure.ac: Delete all references to BUILD_PREFIX and
1155 * configure: Regenerate.
1157 * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE.
1158 Do not include tree.h, real.h, flags.h, hard-reg-set.h, or
1159 basic-block.h #ifdef GENERATOR_FILE. Surround some more code
1160 with #ifndef GENERATOR_FILE so that nothing from those headers
1163 * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE.
1165 2004-08-16 Adam Nemet <anemet@lnxw.com>
1167 * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB).
1169 2004-08-16 Andrew Pinski <apinski@apple.com>
1171 * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove
1172 extraneous semicolon.
1174 2004-08-16 Devang Patel <dpatel@apple.com>
1176 * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P.
1177 * print-tree.c (print_node): Print DECL_PRESERVE_P.
1178 * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define.
1179 (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED
1180 * target.h (struct gcc_target): New member, mark_decl_preserved.
1181 * hooks.c (hook_void_charptr): Rename to ...
1182 (hook_void_constcharptr): ... new name.
1183 * hooks.h (hook_void_charptr): Rename to ..
1184 (hook_void_constcharptr): ... new name.
1185 * tree.h (DECL_PRESERVE_P): New #define.
1186 (struct tree_decl): New member, preserve_flag.
1187 * varasm.c (assemble_start_function): Mark decl preserved.
1188 (assemble_variable): Same.
1189 * darwin.c (darwin_mark_decl_preserved): New function.
1190 * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define.
1191 * darwin-protos.h (darwin_mark_decl_preserved): New decl.
1192 * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document.
1194 2004-08-16 Joseph S. Myers <jsm@polyomino.org.uk>
1196 * c-decl.c (grokdeclarator): Allow for function definition where
1197 innermost declarator has attributes.
1199 2004-08-16 Fariborz Jahanian <fjahanian@apple.com>
1201 * except.c (get_exception_filter, build_post_landing_pads,
1202 dw2_build_landing_pads): Use target-specific mode for 'filter'.
1203 * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used.
1204 * target.h (eh_return_filter_mode): New field added.
1205 * targhooks.c (default_eh_return_filter_mode): Defined.
1206 * targhooks.h (default_eh_return_filter_mode): Declared.
1207 * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined.
1209 2004-08-16 Nathanael Nerode <neroden@gcc.gnu.org>
1211 * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with
1212 ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST.
1213 * configure: Regenerate.
1215 2004-08-16 Stan Shebs <shebs@apple.com>
1217 Basic support for 64-bit Darwin.
1218 * config/darwin.c (macho_indirect_data_reference): Add DImode case.
1219 (machopic_legitimize_pic_address): Similarly, plus use Pmode
1221 * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit.
1222 (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro.
1223 (SUBTARGET_SWITCHES): Add -m32 and -m64 flags.
1224 (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64.
1225 (PROCESSOR_DEFAULT64): Define.
1226 * config/rs6000/darwin.md: New file, patterns specific to 64-bit
1228 * config/rs6000/rs6000.md: Include darwin.md.
1229 (builtin_setjmp_receiver): Add DImode case.
1230 * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for
1232 (TARGET_ASM_ALIGNED_DI_OP): Ditto.
1233 (rs6000_emit_move): Add DImode case to Darwin bits.
1234 (machopic_output_stub): Use .quad if 64-bit.
1235 * invoke.texi: Document -m32 and -m64.
1237 2004-08-16 Janis Johnson <janis187@us.ibm.com>
1239 * doc/extend.texi (AltiVec builtins): Document additional differences
1240 from the Motorola AltiVec PIM.
1242 2004-08-16 Nathan Sidwell <nathan@codesourcery.com>
1244 * c-typeck.c (build_c_cast): Only copy overflow from expr nodes.
1245 * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify.
1246 (struct tree_common): Update public_flag documentation.
1248 2004-08-16 Nathanael Nerode <neroden@gcc.gnu.org>
1250 * tree-ssa-copyrename.c (copy_rename_partition_coalesce):
1251 Check for artificial variables, not is_gimple_tmp_var.
1252 * tree-ssa-live.c (var_union): Likewise.
1254 2004-08-16 Nathan Sidwell <nathan@codesourcery.com>
1256 * calls.c (load_register_parameters): Remove spurious FIXME token.
1258 2004-08-15 Ziemowit Laski <zlaski@apple.com>
1260 * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h.
1261 (c-lang.o): Depend on c-objc-common.h.
1262 (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and
1263 c-objc-common.h; remove duplicate $(C_TREE_H) dependency.
1264 * c-lang.c: Include c-objc-common.h.
1265 (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS,
1266 LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION,
1267 LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS,
1268 LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P,
1269 LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE,
1270 LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION,
1271 LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL,
1272 LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME,
1273 LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL,
1274 LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED,
1275 LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL,
1276 LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
1277 LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE,
1278 LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN,
1279 LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS,
1280 LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P,
1281 LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING,
1282 LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS,
1283 LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN,
1284 LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE,
1285 LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE,
1286 LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE,
1287 LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO,
1288 LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS):
1289 Move to c-objc-common.h.
1290 * c-objc-common.c: Include c-objc-common.h.
1291 * c-objc-common.h: New file.
1293 2004-08-15 Andreas Tobler <a.tobler@schweiz.ch>
1294 Andrew Pinski <pinskia@physics.uc.edu>
1297 * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub
1300 2004-08-15 Nathan Sidwell <nathan@codesourcery.com>
1302 * tree.h (build_int_cst): New.
1303 (build_int_2): Remove.
1304 * tree.c (build_int_2): Remove.
1305 (build_int_cst): New.
1306 (make_vector_type, build_common_tree_nodes,
1307 build_common_tree_nodes_2): Use build_int_cst.
1308 * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
1309 expand_builtin_strpbrk, expand_builtin_fputs,
1310 build_string_literal, expand_builtin_printf,
1311 expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop,
1312 fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii,
1313 fold_builtin_isdigit, simplify_builtin_strstr,
1314 simplify_builtin_strpbrk, fold_builtin_fputs,
1315 simplify_builtin_sprintf): Use build_int_cst.
1316 * c-common.c (start_fname_decls, fix_string_type,
1317 c_common_nodes_and_builtins, c_init_attributes,
1318 shorten_compare): Likewise.
1319 * c-decl.c (complete_array_type,
1320 check_bitfield_type_and_width): Likewise.
1321 * c-lex.c (interpret_integer, lex_charconst): Likewise.
1322 * c-parse.in (primary): <TYPES_COMPATIBLE_P> Likewise.
1323 * c-pretty-print.c (pp_c_integer_constant): Likewise.
1324 * c-typeck.c (really_start_incremental_init, push_init_level,
1325 set_nonincremental_init_from_string): Likewise.
1326 * calls.c (load_register_parameters): Likewise.
1327 * convert.c (convert_to_pointer): Likewise.
1328 * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
1329 build_fn_info_type, build_ctr_info_value, build_gcov_info):
1331 * except.c (init_eh, assign_filter_values, assign_filter_values):
1333 * expmed.c (store_fixed_bit_field, extract_bit_field,
1334 extract_fixed_bit_field, extract_split_bit_field, expand_shift,
1335 expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
1336 expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
1337 * expr.c (convert_move, emit_group_load, emit_group_store,
1338 expand_assignment, store_constructor, store_field,
1339 expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
1340 * fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
1341 invert_truthvalue, optimize_bit_field_compare,
1342 decode_field_reference, all_ones_mask_p, constant_boolean_node,
1343 fold_div_compare, fold, fold_read_from_constant_string,
1344 fold_negate_const, fold_abs_const, fold_not_const): Likewise.
1345 * function.c (assign_parm_setup_block): Likewise.
1346 * stmt.c (shift_return_value, expand_end_case_type,
1347 estimate_case_costs): Likewise.
1348 * stor-layout.c (layout_type, initialize_sizetypes,
1349 set_min_and_max_values_for_integral_type): Likewise.
1350 * tree-chrec.c (chrec_fold_multiply_poly_poly,
1351 reset_evolution_in_loop): Likewise.
1352 * tree-chrec.h (build_polynomial_chrec): Likewise.
1353 * tree-complex.c (build_replicated_const): Likewise.
1354 * tree-eh.c (honor_protect_cleanup_actions,
1355 lower_try_finally_onedest, lower_try_finally_copy,
1356 lower_try_finally_switch): Likewise.
1357 * tree-mudflap.c (mf_build_string, mx_register_decls,
1358 mudflap_register_call, mudflap_enqueue_constant): Likewise.
1359 * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
1360 * tree-pretty-print.c (dump_generic_node): Likewise.
1361 * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
1363 * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
1364 * tree-ssa-loop-niter.c (number_of_iterations_cond,
1365 loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
1368 * config/alpha/alpha.c (alpha_initialize_trampoline,
1369 alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst.
1370 * config/arm/arm.c (arm_get_cookie_size): Likewise.
1371 * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
1372 * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
1373 * config/i860/i860.c (i860_va_start): Likewise.
1374 * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
1375 * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
1376 mips_gimplify_va_arg_expr): Likewise.
1377 * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
1378 * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
1379 add_compiler_branch_island): Likewise.
1380 * config/s390/s390.c (s390_va_start): Likewise.
1381 * config/sh/sh.c (sh_va_start): Likewise.
1382 * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
1384 * config/xtensa/xtensa.c (xtensa_va_start,
1385 xtensa_gimplify_va_arg_expr): Likewise.
1387 * objc/objc-act.c (build_objc_string_object,
1388 build_objc_symtab_template, init_def_list, init_objc_symtab,
1389 init_module_descriptor, generate_static_references,
1390 build_selector_translation_table, get_proto_encoding,
1391 build_typed_selector_reference, build_selector_reference,
1392 build_next_objc_exception_stuff,
1393 build_method_prototype_list_template, generate_descriptor_table,
1394 generate_protocols, build_protocol_initializer,
1395 build_ivar_list_template, build_method_list_template,
1396 build_ivar_list_initializer, generate_ivars_list,
1397 generate_dispatch_table, generate_protocol_list,
1398 build_category_initializer, build_shared_structure_initializer,
1399 generate_shared_structures, handle_impent,
1400 generate_objc_image_info): Use build_int_cst.
1402 2004-08-15 Ben Elliston <bje@au.ibm.com>
1404 * vec.h: Comment improvements.
1406 2004-08-14 Roger Sayle <roger@eyesopen.com>
1408 * c-common.c (shorten_compare, pointer_int_sum,
1409 c_common_truthvalue_conversion, boolean_increment): Replace calls
1410 to build with calls to buildN.
1411 * c-decl.c (complete_array_type, grokdeclarator): Likewise.
1412 * c-gimplify.c (c_build_bind_expr, gimplify_c_loop,
1413 gimplify_switch_stmt): Likewise.
1414 * c-typeck.c (default_function_array_conversion,
1415 build_component_ref, build_array_ref, build_function_call,
1416 pointer_diff, build_unary_op, build_conditional_expr,
1417 build_compound_expr, build_modify_expr, c_finish_goto_label,
1418 c_finish_goto_ptr, c_finish_return, c_finish_loop,
1419 c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt,
1420 build_binary_op): Likewise.
1422 2004-08-15 Steven Bosscher <stevenb@suse.de>
1424 * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK.
1426 2004-08-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1428 * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h,
1429 curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h.
1430 * fixinc/fixincl.x: Rebuilt.
1432 2004-08-14 Richard Sandiford <rsandifo@redhat.com>
1434 * config/mips/mips-protos.h (mips_symbolic_constant_p)
1435 (mips_atomic_symbolic_constant_p, mips_stack_address_p)
1436 (mips_small_data_pattern_p): Declare.
1437 * config/mips/mips.h (CONST_GP_P): Moved from mips.c.
1438 (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
1439 * config/mips/mips.c (mips_symbolic_constant_p): Make global.
1440 (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions.
1441 (uns_arith_operand, const_arith_operand, arith_operand, sle_operand)
1442 (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand)
1443 (reg_or_const_float_1_operand, hilo_operand, extend_operator)
1444 (macc_msac_operand, equality_op, cmp_op, trap_cmp_op)
1445 (pc_or_label_operand, call_insn_operand, move_operand)
1446 (consttable_operand, symbolic_operand, general_symbolic_operand)
1447 (global_got_operand, local_got_operand, stack_operand)
1448 (fp_register_operand, lo_operand, fcc_register_operand): Delete.
1449 (mips_small_data_pattern_1): Renamed from small_data_pattern_1.
1450 (mips_small_data_pattern_p): Replace previous small_data_pattern
1451 predicate. Turn into a bool () (rtx) function.
1452 * config/mips/predicates.md: New file.
1453 * config/mips/mips.md: Include it. Use the target-independent
1454 comparison_operator instead of cmp_op. Rename trap_cmp_op to
1455 trap_comparison_operator and equality_op to equality_operator.
1456 Replace uses of small_int with the equivalent const_arith_operand.
1457 Rename reg_or_const_float_1_operand to reg_or_1_operand. Rename
1458 const_float_1_operand to const_1_operand. Rename fcc_register_operand
1459 to fcc_reload_operand.
1460 * config/mips/sb1.md: Rename fp_register_operand to fpr_operand.
1462 2004-08-14 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
1464 PR libstdc++/17005 partial fix.
1465 * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE
1466 except when generating ANSI/C89 code.
1468 2004-08-14 Nathan Sidwell <nathan@codesourcery.com>
1470 * c-common.c (shorten_compare): Use force_fit_type directly.
1472 2004-08-14 Gerald Pfeifer <gerald@pfeifer.com>
1473 Dimitri Papadopoulos-Orfanos <papadopo@shfj.cea.fr>
1474 Dave Korn <dk@artimi.com>
1476 * doc/install.texi (Building): Avoid duplicate reference to GNU
1478 (*-*-solaris2*): Do not recommend GNU make any longer. Simplify.
1480 2004-08-14 Richard Henderson <rth@redhat.com>
1482 * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types.
1483 * config/alpha/alpha.c (function_value): Use PROMOTE_MODE.
1485 2004-08-13 Richard Henderson <rth@redhat.com>
1487 * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode
1488 for constant_call_address_operand.
1489 (call_value_pop_1, call_value_1): Likewise.
1490 (sibcall_value_1, call_value_1_rex64): Likewise.
1492 2004-08-13 James E Wilson <wilson@specifixinc.com>
1494 * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe):
1495 Correct mode from SFmode to DFmode.
1497 2004-08-13 Ziemowit Laski <zlaski@apple.com>
1499 * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup,
1500 __cstring_object and __image_info sections with the no_dead_strip
1503 2004-08-13 Roger Sayle <roger@eyesopen.com>
1504 David Billinghurst <David.Billinghurst@riotinto.com>
1506 PR libgfortran/15930
1507 * fixinc/inclhack.def (irix___generic1, irix___generic2): New.
1508 * fixinc/fixincl.x: Regenerate.
1509 * fixinc/tests/base/internal/math_core.h: New file.
1511 2004-08-13 Richard Henderson <rth@redhat.com>
1513 * dbxout.c (NO_DBX_FUNCTION_END): Default to zero.
1514 (dbxout_function_end): Remove ifdefs for it.
1515 (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions.
1517 2004-08-13 Richard Henderson <rth@redhat.com>
1519 * Makefile.in (insn-preds.o): Depend on TREE_H.
1520 * genpreds.c (write_insn_preds_c): Include tree.h.
1521 * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand,
1522 reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand,
1523 const48_operand, and_operand, or_operand, mode_width_operand,
1524 mode_mask_operand, mul8_operand, const0_operand,
1525 hard_fp_register_operand, hard_int_register_operand,
1526 reg_or_cint_operand, some_operand, some_ni_operand, input_operand,
1527 samegp_function_operand, direct_call_operand, small_symbolic_operand,
1528 global_symbolic_operand, call_operand, symbolic_operand,
1529 dtp16_symbolic_operand, dtp32_symbolic_operand,
1530 gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand,
1531 gottp_symbolic_operand, alpha_comparison_operator,
1532 alpha_zero_comparison_operator, alpha_swapped_comparison_operator,
1533 signed_comparison_operator, alpha_fp_comparison_operator,
1534 divmod_operator, fix_operator, aligned_memory_operand,
1535 unaligned_memory_operand, reg_or_unaligned_mem_operand,
1536 any_memory_operand, reg_not_elim_operand, normal_memory_operand,
1537 reg_no_subreg_operand, addition_operation): Move to predicates.md.
1538 (reg_or_const_int_operand): Remove. Replace all users with
1539 reg_or_cint_operand.
1540 (tls_symbolic_operand_1): Export. Don't check mode or for CONST.
1541 (resolve_reload_operand): Split out of aligned_memory_operand.
1542 * config/alpha/alpha-protos.h: Update for exports.
1543 * config/alpha/alpha.h (PREDICATE_CODES): Remove.
1544 * config/alpha/alpha.md: Include predicates.md.
1545 * config/alpha/predicates.md: New file.
1547 2004-08-13 Richard Sandiford <rsandifo@redhat.com>
1549 * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno
1550 fields with a pointer to the instruction definition.
1551 (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent)
1552 (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get)
1553 (write_attr_case, write_const_num_delay_slots): Update accordingly.
1554 (write_attr_case, write_const_num_delay_slots): Write the name of
1555 an insn next to its case statement.
1556 * genoutput.c (data): Add a filename field.
1557 (gen_insn, gen_peephole, gen_expand, gen_split): Set it.
1558 (output_insn_data): Print the location of each insn definition.
1559 * genrecog.c (write_action): Print the name of an insn above
1560 the statement that returns its code.
1562 2004-08-12 Andrew Pinski <pinskia@physics.uc.edu>
1564 * config/darwin-c.c (find_subframework_file): Fix spelling of cannot.
1565 * config/libgloss.h: Likewise.
1566 * config/arm/arm.c (arm_gen_load_multiple): Likewise.
1567 * c4x/c4x-modes.def: Likewise.
1568 * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise.
1569 (c4x_rptb_nop_p): Likewise.
1570 (c4x_rptb_valid_p): Likewise.
1571 (c4x_rptb_insert): Likewise.
1572 (c4x_address_conflict): Likewise.
1573 * config/c4x/c4x.md: Likewise.
1574 * config/frv/frv.md: Likewise.
1575 * config/i386/athlon.md: Likewise.
1576 * config/i386/i386.md: Likewise.
1577 * config/i386/predicates.md: Likewise.
1578 * config/ia64/ia64.c: Likewise.
1579 * config/ia64/itanium1.md: Likewise.
1580 * config/ia64/itanium2.md: Likewise.
1581 * config/iq2000/iq2000.md: Likewise.
1582 * config/mcore/mcore.c: Likewise.
1583 * config/mips/mips.c: Likewise.
1584 * config/mips/r3900.h: Likewise.
1585 * config/mips/sb1.md: Likewise.
1586 * config/pa/milli64.S: Likewise.
1587 * config/pa/pa.c: Likewise.
1588 * config/pa/pa.h: Likewise.
1589 * config/rs6000/8540.md: Likewise.
1591 2004-08-13 Daniel Berlin <dberlin@dberlin.org>
1593 * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU.
1595 2004-08-13 J"orn Rennecke <joern.rennecke@superh.com>
1597 * sh.md (cbranch define_delay) Use cond_delay_slot for
1598 non-anulled condition too.
1600 2004-08-12 David Edelsohn <edelsohn@gnu.org>
1602 * config/rs6000/rs6000.c (any_parallel_operand): New predicate.
1603 * config/rs6000/rs6000.h (PREDICATE_CODES): Add
1604 any_parallel_operand, lmw_operation, stmw_operation,
1605 mfcr_operation, mtcrf_operation. Remove PARALLEL from any_operand.
1606 * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use
1607 any_parallel_operand.
1608 (return_and_restore_fpregs_{si,di}): Same.
1610 2004-08-12 Zack Weinberg <zack@codesourcery.com>
1612 * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL,
1613 if pred->singleton != PARALLEL, issue a warning and pretend it was.
1614 Also issue a warning for any predicate we don't know about.
1616 2004-08-12 Richard Henderson <rth@redhat.com>
1618 * config/i386/i386.c (internal_label_prefix): Export.
1619 (internal_label_prefix_len, struct ix86_address,
1620 ix86_decompose_address, maybe_get_pool_constant,
1621 ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes,
1622 memory_address_length): Export.
1623 (any_fp_register_operand, fp_register_operand,
1624 register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand,
1625 x86_64_general_operand, x86_64_szext_general_operand,
1626 x86_64_nonmemory_operand, x86_64_movabs_operand,
1627 x86_64_szext_nonmemory_operand, x86_64_immediate_operand,
1628 x86_64_zext_immediate_operand, const_int_1_31_operand,
1629 symbolic_operand, pic_symbolic_operand, local_symbolic_operand,
1630 tls_symbolic_operand, global_dynamic_symbolic_operand,
1631 local_dynamic_symbolic_operand, initial_exec_symbolic_operand,
1632 local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand,
1633 constant_call_address_operand, const0_operand, const1_operand,
1634 const248_operand, const_0_to_3_operand, const_0_to_7_operand,
1635 const_0_to_15_operand, const_0_to_255_operand, incdec_operand,
1636 shiftdi_operand, reg_no_sp_operand, mmx_reg_operand,
1637 general_no_elim_operand, nonmemory_no_elim_operand,
1638 index_register_operand, q_regs_operand, flags_reg_operand,
1639 non_q_regs_operand, zero_extended_scalar_load_operand,
1640 vector_move_operand, no_seg_address_operand, sse_comparison_operator,
1641 ix86_comparison_operator, ix86_carry_flag_operator,
1642 fcmov_comparison_operator, promotable_binary_operator,
1643 cmp_fp_expander_operand, ext_register_operand, binary_fp_operator,
1644 mult_operator, div_operator, arith_or_logical_operator,
1645 memory_displacement_operand, cmpsi_operand, long_memory_operand,
1646 aligned_operand): Move to predicates.md as define_predicates.
1647 (tls_symbolic_operand_1): Remove.
1648 (x86_64_sign_extended_value): Merge into x86_64_immediate_operand.
1649 (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand.
1650 (legitimize_address): Merge tls_symbolic_operand contents.
1651 (ix86_expand_move): Likewise.
1652 * config/i386/i386-protos.h: Update for exports.
1653 * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames.
1654 (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove.
1655 * config/i386/i386.md: Include predicates.md.
1656 * config/i386/predicates.md: New file.
1658 2004-08-13 Mark Mitchell <mark@codesourcery.com>
1661 * config/i386/winnt.c (i386_pe_mark_dllexport): Set
1663 (i386_pe_mark_dllimport): Likewise.
1664 (i386_pe_encode_section_info): Likewise, when overriding
1665 dllimport attribute.
1667 2004-08-12 Geoffrey Keating <geoffk@apple.com>
1669 * configure.ac: When testing for flex, nm, ar, and bison, check
1670 that they will actually be built.
1671 * configure: Regenerate.
1673 2004-08-12 Ulrich Weigand <uweigand@de.ibm.com>
1675 * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define.
1676 (MOVE_MAX_PIECES): Define.
1678 2004-08-12 Devang patel <dpatel@apple.com>
1680 * dbxout.c (dbxout_begin_prologue): New function.
1681 (dbx_debug_hooks): Use new begin prologue hook.
1682 (dbxout_function_end): Emit N_ENSYM.
1683 * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs.
1685 2004-08-12 Janis Johnson <janis187@us.ibm.com>
1687 * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first
1690 * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type
1693 * doc/extend.texi (AltiVec builtins): Fix description for recent
1694 changes. Update operation list to match current support.
1696 2004-08-12 Andreas Krebbel <krebbel1@de.ibm.com>
1698 * config/s390/s390.c (struct s390_frame_layout): New struct as element
1699 of struct machine_function.
1700 (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and
1702 (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and
1704 (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size)
1705 (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros.
1706 (s390_frame_area, s390_register_info): New functions.
1707 (s390_optimize_prolog): Renamed to s390_optimize_prologue. Added check
1709 (s390_return_addr_rtx, s390_return_address_offset)
1710 (s390_va_start, s390_gimplify_va_arg)
1711 (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack
1713 (s390_frame_info): Functionality partly moved to s390_register_info.
1714 Made adaptions for new stack layout.
1715 (save_gprs, restore_gprs): Changed meaning of second parameter and
1716 adapted all callers.
1718 * config/s390/s390.h (s390_backchain_string): New global variable.
1719 (MASK_BACKCHAIN): Removed definition.
1720 (TARGET_BACKCHAIN): Changed check.
1721 (TARGET_KERNEL_BACKCHAIN): New macro.
1722 (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain".
1723 (TARGET_OPTIONS): Added "backchain", "no-backchain" and
1725 (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts.
1727 * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN
1728 as condition. Adjusted for new stack layout.
1730 * doc/invoke.texi: Added documentation for new option
1731 "-mkernel-backchain" and adjusted documentation of "-mbackchain" and
1734 2004-08-12 Paul Brook <paul@codesourcery.com>
1736 * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name.
1737 (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation.
1739 2004-08-12 David Daney <ddaney@avtrex.com>
1741 * java/gcj.texi: Add subsection on signal usage.
1743 2004-08-12 David Edelsohn <edelsohn@gnu.org>
1745 * expr.c (move_by_pieces): Set alignment for move to minimum of
1746 MOVE_MAX_PIECES mode alignment and the largest non-slow mode
1747 alignment, but not less than the original alignment.
1748 (move_by_pieces_ninsns): Same.
1749 (can_store_by_pieces): Similar for store with STORE_MAX_PIECES.
1750 (store_by_pieces_1): Same.
1752 2004-08-12 Diego Novillo <dnovillo@redhat.com>
1754 PR tree-optimization/16867
1755 * tree.c (is_global_var): New function.
1756 (needs_to_live_in_memory): Check for TREE_ADDRESSABLE.
1758 * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove.
1760 (is_global_var): Declare.
1761 * tree-dfa.c (dump_variable): Display global and addressable
1763 (add_referenced_var): Clarify documentation when marking
1764 variables call-clobbered.
1765 * tree-flow-inline.h (is_call_clobbered): Call is_global_var
1766 instead of needs_to_live_in_memory.
1767 (mark_call_clobbered): If the variable is a tag, mark it
1769 * tree-gimple.c (is_gimple_reg): Don't check for
1771 (is_gimple_non_addressable): Likewise.
1772 * tree-ssa-alias.c (get_nmt_for): Always check whether the tag
1773 needs to be marked call-clobbered.
1774 (setup_pointers_and_addressables): Call is_global_var instead
1775 of needs_to_live_in_memory.
1776 * tree-ssa-dce.c (need_to_preserve_store): Remove.
1777 Update all users with is_global_var.
1778 (mark_stmt_if_obviously_necessary): Fix processing of aliased
1779 stores. Don't check the virtual definitions. Rather, check
1780 whether the store is going into global memory.
1781 (find_obviously_necessary_stmts): Get the symbol from the PHI
1783 * tree-ssa-operands.c (get_call_expr_operands): Do not add
1784 clobbering may-defs if the call does not have side effects.
1786 2004-08-12 Jakub Jelinek <jakub@redhat.com>
1789 * output.h (default_function_rodata_section,
1790 default_no_function_rodata_section): New prototypes.
1791 * target.h (struct gcc_target): Add asm_out.function_rodata_section.
1792 * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
1793 (TARGET_ASM_OUT): Add it.
1794 * varasm.c (default_function_rodata_section,
1795 default_no_function_rodata_section): New functions.
1796 * final.c (final_scan_insn): Call
1797 targetm.asm_out.function_rodata_section instead of
1798 readonly_data_section.
1799 * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define.
1800 * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
1801 * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
1802 * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
1804 * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
1805 * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
1807 * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION):
1809 * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
1810 * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise.
1811 * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document.
1813 2004-08-12 Paul Brook <paul@codesourcery.com>
1815 * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh
1817 * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and
1820 2004-08-12 Ben Elliston <bje@au.ibm.com>
1823 * config/rs6000/altivec.h: Change vector to __vector throughout.
1824 (Except for the `vector' macro itself).
1826 2004-08-12 Zack Weinberg <zack@codesourcery.com>
1828 * genpreds.c: Add capability to generate predicate bodies as
1829 well as function prototypes. Write function prototypes for
1830 the generic predicates too.
1831 (process_define_predicate, write_tm_preds_h, write_insn_preds_c)
1832 (write_predicate_subfunction, mark_mode_tests, add_mode_tests)
1833 (write_match_code, write_predicate_expr, write_one_predicate_function)
1834 (parse_option): New functions.
1835 (output_predicate_decls): Delete.
1836 (main): Read the machine description, process DEFINE_PREDICATE or
1837 DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c
1840 * genrecog.c (struct decision_test): Replace index with
1841 struct pred_data pointer.
1842 (next_index): Remove, unused.
1843 (pred_table, preds, special_mode_pred_table): Delete.
1844 (compute_predicate_codes, process_define_predicate): New functions.
1845 (validate_pattern, add_to_sequence, write_switch): Update for
1846 new data structures.
1847 (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
1848 Check both error_count and have_error.
1850 * gensupport.c (in_fname, first_predicate): New globals.
1851 (define_pred_queue, define_pred_tail): New RTL-pattern queue.
1852 (predicate_table, last_predicate, old_pred_table)
1853 (old_special_pred_table): New statics.
1854 (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate)
1855 (add_predicate, init_predicate_table): New functions.
1856 (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE.
1857 (init_md_reader_args_cb): Use the global in_fname. No need to zero
1858 it or max_include_len. Call init_predicate_table.
1859 (read_rtx): Run the predicate queue after the attribute queue
1860 but before all the others.
1861 * gensupport.h (in_fname, struct pred_data, first_predicate)
1862 (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare.
1863 * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE)
1864 (DEFINE_SPECIAL_PREDICATE): New RTL codes.
1865 * dummy-conditions.c: Don't include bconfig.h, system.h,
1866 coretypes.h, tm.h, or system.h. Do include stddef.h.
1867 Duplicate declaration of struct c_test from gensupport.h.
1869 * Makefile.in (OBJS-common): Add insn-preds.o.
1870 (STAGESTUFF, .PRECIOUS): Add insn-preds.c.
1871 (insn-preds.c, insn-preds.o): New rules.
1872 (s-preds): Also generate insn-preds.c.
1873 (dummy-conditions.o, genpreds$(build_exeext), genpreds.o):
1874 Update dependencies.
1875 (print-rtl.o, print-rtl1.o): Correct dependencies.
1877 * recog.h: Delete prototypes of predicate functions.
1879 * doc/md.texi (Predicates): New section with complete
1880 documentation of operand/operator predicates. Remove some
1881 incomplete documentation of predicates from other places.
1882 * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to
1883 PREDICATE_CODES; indicate that both are deprecated in favor
1884 of define_predicate/define_special_predicate.
1886 * config/ia64/ia64.c: All predicate function definitions moved
1888 (small_addr_symbolic_operand, tls_symbolic_operand): Delete.
1889 (ia64_expand_load_address, ia64_expand_move):
1890 Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand.
1892 * config/ia64/ia64.md: All predicates now defined here.
1893 (symbolic_operand): Is now a special predicate.
1895 * config/ia64/ia64.h: Declare ia64_section_threshold.
1896 (PREDICATE_CODES): Delete.
1898 2004-08-12 Richard Henderson <rth@redhat.com>
1900 * c-common.h (STATEMENT_LIST_HAS_LABEL): New.
1901 * c-semantics.c (add_stmt): Set it.
1902 * c-decl.c (finish_decl): Use it to create a new BIND_EXPR
1903 before instantiating a variable sized type.
1905 2004-08-12 Richard Henderson <rth@redhat.com>
1907 * stor-layout.c (round_up, round_down): Move ...
1908 * fold-const.c (round_up, round_down): ... here. Use
1909 multiple_of_p to avoid any arithmetic at all.
1911 2004-08-12 Richard Henderson <rth@redhat.com>
1913 * gimplify.c (struct gimplify_init_ctor_preeval_data): New.
1914 (gimplify_init_ctor_preeval_1): New.
1915 (gimplify_init_ctor_preeval): New.
1916 (gimplify_init_ctor_eval): New.
1917 (gimplify_init_constructor): Use them. Always gimplify the LHS
1920 2004-08-12 Ziemowit Laski <zlaski@apple.com>
1922 (This patch is part of merge of objc-improvements-branch
1925 * doc/frontends.texi: Mention Objective-C++ in addition to
1927 * doc/install.texi: Add 'obj-c++' to list of configurable
1929 * doc/invoke.texi: Rename Objective-C option headings to
1930 indicate they also apply to Objective-C++. List file
1931 extensions for Objective-C++ sources. Mention that
1932 ObjC and ObjC++ compilations may also use C and C++ options,
1933 respectively. Point users to doc/standards.texi for
1934 further info on ObjC and ObjC++.
1935 * doc/sourcebuild.texi: Mention the objcp/ directory and
1936 the Objective-C++ sources it contains.
1937 * doc/standards.texi: Update link to Apple ObjC site;
1938 add link to gcc readings.html WWW doc.
1940 2004-08-12 Alan Modra <amodra@bigpond.net.au>
1942 * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28
1943 and 2004-07-14 changes.
1945 2004-08-12 Paul Brook <paul@codesourcery.com>
1947 * doc/invoke.texi: Fix typo.
1949 2004-08-11 Devang Patel <dpatel@apple.com>
1951 * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip
1952 and -no_dead_strip_inits_and_terms.
1954 * doc/invoke.texi (Darwin Options): Document -dead_strip and
1955 -no_dead_strip_inits_and_terms.
1957 2004-08-11 Paul Brook <paul@codesourcery.com>
1959 * config/arm/arm-protos.h (arm_finalize_pic) Rename ...
1960 (arm_load_pic_register): ... to this.
1961 * config/arm/arm.c (arm_finalize_pic): Rename ...
1962 (arm_load_pic_register): ... to this. Always output insns at the
1963 current location. Load via low reg in thumb mode.
1964 (arm_expand_prologue): Call arm_load_pic_register.
1965 (thumb_expand_prologue): Ditto.
1966 * config/arm/arm.h (FINALIZE_PIC): Remove.
1967 * config/arm/arm.md (builtin_setjmp_receiver): Call
1968 arm_load_pic_register.
1970 2004-08-11 Paul Brook <paul@codesourcery.com>
1972 * arm.c (thumb_force_lr_save): Add prototype.
1973 (thumb_compute_save_reg_mask): New function.
1974 (thumb_find_work_register): New function.
1975 (arm_get_frame_offsets): Use thumb_compute_save_reg_mask.
1976 (thumb_unexpanded_epilogue): Ditto. Remove redundant code.
1977 Don't clobber r3 when removing pretend args.
1978 (thumb_expand_prologue): Use thumb_compute_save_reg_mask.
1979 (thumb_output_function_prologue): Use new functions.
1980 (thumb_set_return_address): Use thumb_compute_save_reg_mask.
1981 * arm.h (THUMB_REG_PUSHED_P): Remove.
1983 2004-08-11 James E Wilson <wilson@specifixinc.com>
1985 PR rtl-optimization/16490
1986 * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and
1987 global_live_at_end for new basic block if already set for other blocks.
1989 2004-08-11 David Edelsohn <edelsohn@gnu.org>
1991 * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define.
1993 * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8.
1994 (mfcr rlwinm rlwinm patterns): Set length to 12.
1996 2004-08-11 Andrew MacLeod <amacleod@redhat.com>
1998 * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops,
1999 get_vuse_ops,get_v_must_def_ops): Add operand structure reference.
2000 (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct.
2001 (start_ssa_stmt_operands): Delete.
2002 * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new
2003 struct stmt_operands_d.
2004 (build_ssa_operands): New extern entry point.
2005 * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand
2006 building code, replace with create_ssa_artficial_load_stmt().
2007 * tree-ssa-operands.c (struct voperands_d): Delete.
2008 (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector.
2009 (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *).
2010 (free_uses, free_defs, free_vuses, free_v_may_defs,
2011 free_v_must_defs): Remove dealloc parameter.
2012 (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete.
2013 (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs,
2014 finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand
2015 vector comparisons, ssa_name reuse, and allocations here.
2016 (verify_start_operands): Delete.
2017 (finalize_ssa_stmt_operands): Set new operands by calling finalize
2019 (start_ssa_stmt_operands): Move from tree-flow-inline.h.
2020 (append_def, append_usei): Simplify to simple accumulation.
2021 (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding
2022 duplicates and simple accumulation.
2023 (free_ssa_operands): Free vectors in a stmt_operand structure.
2024 (build_ssa_operands): New. Create a new stmt_operand structure from
2025 a stmt and an old set of stmt_operands.
2026 (get_stmt_operands): Simplify and call build_ssa_operands.
2027 (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands,
2028 get_call_expr_operands, add_stmt_operand, add_call_clobber_ops,
2029 add_call_read_ops): Don't pass prev_vops around anymore.
2030 (note_addressable): Return if no stmt annotation.
2031 (copy_virtual_operands): Access v_may_def operands through a struct.
2032 (create_ssa_artficial_load_stmt): New. Create a load stmt for DOM's
2033 hash tables without treating the stmt as a real stmt.
2034 * tree-ssa-operands.h (struct v_may_def_operand_type): New. Access
2035 v_may_def def and use through a struct instead of 2 array elements.
2036 (struct v_may_def_optype_d): Use v_may_def_operand_type.
2037 (struct stmt_operands_d): New. Struct for storing all operand vectors.
2039 2004-08-11 Nick Clifton <nickc@redhat.com>
2041 * config/arm/arm.c (arm_is_longcall_p): Update comment describing
2042 this funciton's behaviour. Return true when the current function
2043 has a section attribute and -mlong-calls is in effect.
2044 * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the
2045 short-call marker when -mlong-calls is in effect and the function
2046 has a section attribute.
2048 2004-08-10 Zack Weinberg <zack@codesourcery.com>
2050 * stmt.c (expand_return): If asked to return the RESULT_DECL,
2051 just call expand_value_return on result_rtl.
2053 2004-08-10 Richard Henderson <rth@redhat.com>
2055 * builtins.def (BUILT_IN_STACK_ALLOC): Remove.
2056 * builtins.c (expand_builtin) <BUILT_IN_STACK_ALLOC>: Remove.
2057 * dwarf2out.c (loc_descriptor): Handle PARALLEL here ...
2058 (add_location_or_const_value_attribute): ... not here. Use
2059 loc_descriptor_from_tree if possible.
2060 (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree.
2061 Simplify address handling. Handle DECL_VALUE_EXPR. Handle register
2063 (loc_descriptor_from_tree): New. Update callers.
2064 * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables.
2065 * gimplify.c (gimplify_decl_expr): Lower variable sized types to
2066 pointer plus dereference. Set DECL_VALUE_EXPR. Set save_stack.
2067 (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC
2068 and BUILT_IN_STACK_RESTORE.
2069 (gimplify_expr): Lower DECL_VALUE_EXPR decls.
2070 * stmt.c (expand_stack_alloc): Remove.
2071 * tree-mudflap.c (mx_register_decls): Don't look for
2072 BUILT_IN_STACK_ALLOC.
2073 * tree-nested.c (convert_local_reference): Likewise.
2074 * tree.h (DECL_VALUE_EXPR): New.
2076 2004-08-10 Richard Henderson <rth@redhat.com>
2078 * stor-layout.c (round_up): Check for 0/1 before dividing.
2079 (round_down): Likewise.
2081 * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL.
2083 2004-08-09 Mark Mitchell <mark@codesourcery.com>
2085 * config.gcc (arm*-*-eabi*): New target.
2086 * defaults.h (TARGET_LIBGCC_FUNCS): New macro.
2087 (TARGET_LIB_INT_CMP_BIASED): Likewise.
2088 * expmed.c (expand_divmod): Try a two-valued divmod function as a
2090 * gthr.h: Remove bogus tokens at end of #pragma.
2091 * optabs.c (expand_twoval_binop_libfunc): New function.
2092 (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case.
2093 (prepare_float_lib_cmp): Try reversing the condition.
2094 (debug_optab_libfuncs): New function.
2095 * optabs.h (expand_twoval_binop_libfunc): Declare.
2096 * config/arm/arm.c (arm_init_libfuncs): New function.
2097 (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT.
2098 (TARGET_INIT_LIBFUNCS): Define it.
2099 * config/arm/arm.h (TARGET_BPABI): New macro.
2100 * config/arm/arm-protos.h
2101 (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT.
2102 * config/arm/bpabi.S: New file.
2103 * config/arm/bpabi.c: Likewise.
2104 * config/arm/bpabi.h: Likewise.
2105 * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias.
2106 (__aeabi_drsub): Likewise.
2107 (__aeabi_dsub): Likewise.
2108 (__aeabi_dadd): Likewise.
2109 (__aeabi_ui2d): Likewise.
2110 (__aeabi_i2d): Likewise.
2111 (__aeabi_f2d): Likewise.
2112 (__aeabi_dmul): Likewise.
2113 (__aeabi_ddiv): Likewise.
2114 (__aeabi_cdrcmple): Likewise.
2115 (__aeabi_cdcmpeq): Likewise.
2116 (__aeabi_cdcmple): Likewise.
2117 (__aeabi_dcmpeq): Likewise.
2118 (__aeabi_dcmplt): Likewise.
2119 (__aeabi_dcmple): Likewise.
2120 (__aeabi_dcmpge): Likewise.
2121 (__aeabi_dcmpgt): Likewise.
2122 (__aeabi_dcmpun): Likewise.
2123 (__aeabi_d2iz): Likewise.
2124 (__aeabi_d2uiz): Likewise.
2125 (__aeabi_d2f): Likewise.
2126 * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias.
2127 (__aeabi_frsub): Likewise.
2128 (__aeabi_fsub): Likewise.
2129 (__aeabi_fadd): Likewise.
2130 (__aeabi_ui2f): Likewise.
2131 (__aeabi_i2f): Likewise.
2132 (__aeabi_fmul): Likewise.
2133 (__aeabi_fdiv): Likewise.
2134 (__aeabi_cfrcmple): Likewise.
2135 (__aeabi_cfcmpeq): Likewise.
2136 (__aeabi_cfcmple): Likewise.
2137 (__aeabi_fcmpeq): Likewise.
2138 (__aeabi_fcmplt): Likewise.
2139 (__aeabi_fcmple): Likewise.
2140 (__aeabi_fcmpge): Likewise.
2141 (__aeabi_fcmpgt): Likewise.
2142 (__aeabi_fcmpun): Likewise.
2143 (__aeabi_f2iz): Likewise.
2144 (__aeabi_f2uiz): Likewise.
2145 * config/arm/lib1funcs.asm (ARM_CALL): New macro.
2146 (__aeabi_uidivmod): New function or alias.
2147 (__aeabi_idivmod): Likewise.
2148 (__aeabi_idiv0): Likewise.
2149 (__aeabi_ldiv0): Likewise.
2150 (__aeabi_llsr): Likewise.
2151 (__aeabi_lasr): Likewise.
2152 (__aeabi_llsl): Likewise.
2153 (bpabi.S): Include it.
2154 * config/arm/libgcc-bpabi.ver: New file.
2155 * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove.
2156 (LINK_SPEC): Remove.
2157 * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and
2159 * config/arm/t-bpabi: New file.
2160 * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry.
2161 (TARGET_LIB_INT_CMP_BIASED): Likewise.
2163 2004-08-10 David Edelsohn <edelsohn@gnu.org>
2165 * config/rs6000/rs6000-protos.h (expand_block_clear): Declare.
2166 * config/rs6000/rs6000.md (clrmemsi): New pattern.
2167 * config/rs6000/rs6000.c (expand_block_clear): New function.
2168 (expand_block_move): Convert alignment to bits. Use SImode and
2169 HImode for unaligned addresses if not STRICT_ALIGNMENT.
2171 2004-08-10 Caroline Tice <ctice@apple.com>
2173 * varasm.c (unlikely_section_label): New global variable.
2174 (unlikely_text_section_name): New global variable.
2175 (text_section): Remove alignment statement.
2176 (unlikely_text_section): Remove alignment statement; use
2177 unlikely_section_label rather than hard-coded string.
2178 (assemble_start_function): Initialize unlikely_section_label and
2179 unlikely_text_section_name; make sure cold section is properly
2180 aligned at start of function; output unlikely_section_label if
2183 2004-08-10 Ulrich Weigand <uweigand@de.ibm.com>
2185 * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare.
2186 * config/s390/s390.c (s390_canonicalize_comparison): New function.
2187 * config/s390/s390.h (CANONICALIZE_COMPARISON): Define.
2188 * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext",
2189 "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove.
2190 ("*tmqi_mem"): Remove SUBREG from pattern.
2191 ("*anddi3_cconly"): Prevent accidentally matching TM pattern.
2192 ("*andsi3_cconly"): Likewise.
2194 2004-08-10 H.J. Lu <hongjiu.lu@intel.com>
2197 * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI.
2199 2004-08-10 Janis Johnson <janis187@us.ibm.com>
2201 * doc/sourcebuild.texi (compat testing): Document available test
2202 framework commands. Use the preferred spelling of DejaGnu.
2204 2004-08-10 Daniel Berlin <dberlin@dberlin.org>
2206 * lambda.h: Add matrix type, and prototypes for remainder of
2207 matrix and vector functions.
2208 (lambda_vector_mult_const): New function.
2209 (lambda_vector_negate): Ditto.
2210 (lambda_vector_add): Ditto.
2211 (lambda_vector_add_mc): Ditto.
2212 (lambda_vector_copy): Ditto.
2213 (lambda_vector_zerop): Ditto.
2214 (lambda_vector_equal): Ditto.
2215 (lambda_vector_min_nz): Ditto.
2216 (lambda_vector_first_nz): Ditto.
2217 (lambda_vector_matrix_mult): Ditto.
2218 * lambda-mat.c: New file.
2219 * Makefile.in (lambda-mat.o): New.
2221 2004-08-10 Andrew MacLeod <amacleod@redhat.com>
2223 * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt
2224 after linking stmt into the program.
2225 (bsi_remove): Don't call modify_stmt.
2226 * tree-complex.c (update_complex_assignment,
2227 expand_complex_comparison): Call modify_stmt after changing the stmt.
2228 * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not
2230 * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing
2231 the stmt, and only if needed.
2232 * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy
2234 (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param.
2235 (simplify_cond_and_lookup_avail_expr): Use modify_stmt.
2236 (simplify_switch_and_lookup_avail_expr): Don't take an annotation param.
2237 (eliminate_redundant_computations): Don't pass an annotation. Call
2238 modify_stmt rather than setting the annotation directly.
2239 (record_equivalences_from_stmt): Remove unused local 'j'.
2240 (cprop_operand): Take a stmt rather than an annotation as a parameter.
2242 (cprop_into_stmt): Pass stmt rather than annotation.
2243 (update_rhs_and_lookup_avail_expr): Call modify_stmt.
2244 * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than
2246 * tree-ssa.c (propagate_into_addr): Dont call modify_stmt.
2248 2004-08-10 Jason Merrill <jason@redhat.com>
2251 * function.c (expand_function_start): Handle DECL_BY_REFERENCE on
2254 2004-08-10 Geoffrey Keating <geoffk@apple.com>
2256 * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the
2259 2004-08-10 Roger Sayle <roger@eyesopen.com>
2261 * config/mips/mips.md: New reciprocal square root patterns that
2262 match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns.
2264 2004-08-10 Paul Brook <paul@codesourcery.com>
2266 * config/arm/arm-protos.h (arm_set_return_address,
2267 thumb_set_return_address): Add prototypes.
2268 * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove.
2269 * config/arm/arm.c (arm_compute_func_type,
2270 use_return_insn, arm_compute_save_reg0_reg12_mask,
2271 arm_compute_save_reg_mask, arm_output_function_prologue,
2272 arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with
2273 current_function_calls_eh_return.
2274 (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace
2276 (arm_set_return_address, thumb_set_return_address): New functions.
2277 * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO,
2278 ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define.
2279 * config/arm/arm.md (VUNSPEC_EH_RETURN): Add.
2280 (epilogue): Use the stackadj register.
2281 (eh_return, arm_eh_return, thumb_eh_return): New pattern.
2283 2004-08-10 Jakub Jelinek <jakub@redhat.com>
2286 * expr.c (move_by_pieces_ninsns): Add max_size argument.
2287 (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it.
2288 (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it.
2289 (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P,
2290 but using MOVE_RATIO.
2291 (move_by_pieces): Pass max_size to move_by_pieces_ninsns.
2292 (can_store_by_pieces): Change max_size type to unsigned int.
2293 (store_by_pieces_1): Likewise. Pass max_size to
2294 move_by_pieces_ninsns.
2295 * config/s390/s390.h (STORE_BY_PIECES_P): Define.
2296 * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1
2297 to move_by_pieces_ninsns.
2298 (STORE_BY_PIECES_P): Define.
2299 * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1
2300 to move_by_pieces_ninsns.
2301 * doc/tm.texi (STORE_BY_PIECES_P): Document changed default.
2303 * config/i386/i386.h (CLEAR_RATIO): Define.
2305 2004-08-09 Paolo Bonzini <bonzini@gnu.org>
2307 * expr.c (expand_expr_real_1): Add back code that was not dead.
2309 2004-08-09 Andrew Pinski <apinski@apple.com>
2311 * c-common.c (c_common_get_alias_set): Set the aliasing set of the type
2312 which is found to be compatible before returning the aliasing set.
2314 2004-08-09 Daniel Jacobowitz <dan@debian.org>
2316 * ggc-zone.c (struct alloc_zone): Add statistics counters.
2317 (always_collect): New flag.
2318 (ggc_alloc_zone_1): Update statistics support. Don't include
2319 overhead in allocated counter.
2320 (sweep_pages): Update allocated counter for large pages. Don'y
2322 (ggc_collect_1): Always collect.
2323 (ggc_collect): Honor always_collect flag. Sum all zones to decide
2325 (SCALE, LABEL): New macros.
2326 (ggc_print_statistics): Add statistics support.
2328 2004-08-09 Roger Sayle <roger@eyesopen.com>
2330 * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool.
2331 (init_expmed): Fix potential overrun problem with "all.reg".
2332 (expand_sdiv2_pow2): Add an alternate implementation for signed
2333 division, if the target provides a suitable conditional move insn.
2335 2004-08-09 Paul Brook <paul@codesourcery.com>
2336 Richard Henderson <rth@redhat.com>
2338 * unwind-dw2.c (uw_install_context_1): Update target saved stack
2341 2004-08-09 Geoffrey Keating <geoffk@apple.com>
2343 * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit.
2344 Check DATA limit only if there's no AS limit. Ignore insanely
2346 (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8,
2347 but take care that the AS limit isn't overrun.
2348 * doc/invoke.texi: Update documentation of min-heapsize parameter.
2350 2004-08-09 Jeff Law <law@redhat.com>
2352 * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c
2353 (tree-ssa-threadupdate.o): Add dependencies.
2354 * tree-ssa-threadupdate.c: New file.
2355 * tree-flow.h (incoming_edge_threaded): New flag in block annotation.
2356 (rewrite_vars_out_of_ssa): Remove prototype.
2357 (cleanup_tree_cfg): Returns a bool.
2358 * tree.h (thread_through_all_blocks): Prototype.
2359 * tree-outof-ssa.c (SSANORM_*): Move into here.
2360 (remove_ssa_form): Now static.
2361 (rewrite_vars_out_of_ssa): Kill.
2362 * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill.
2363 * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c.
2364 (remove_ssa_form, register_partitions_for_vars): Kill declarations.
2365 * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if
2366 anything was changed.
2367 * tree-phinodes.c (add_phi_arg): Get the block for the PHI
2368 from the PHI's annotation rather than the edge associated with
2370 * tree-ssa-dom.c (redirection_edges): Kill.
2371 (redirect_edges_and_update_ssa_graph): Kill.
2372 (tree_ssa_dominator_optimize): Do not reset forwardable flag
2373 for blocks anymore. Do not initialize redirection_edges.
2374 Call thread_through_all_blocks. Simplify code for cleanup
2375 of the CFG and iterating. No longer call cleanup_tree_cfg
2376 outside the iteration loop.
2377 (thread_across_edge): No longer mess with forwardable blocks.
2379 2004-08-09 Zack Weinberg <zack@codesourcery.com>
2381 * explow.c (memory_address): Use memory_address_p.
2382 * recog.c (general_operand): Likewise.
2383 * regrename.c: No need to define REG_OK_STRICT.
2385 2004-08-09 Steven Bosscher <stevenb@suse.de>
2387 * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM):
2389 * gcse.c: Include timevar.h.
2390 (const_prop_count, copy_prop_count): Rename to global_const_prop_count
2391 and global_copy_prop_count.
2392 (local_const_prop_count, local_copy_prop_count): New static globals.
2393 (gcse_main): Set the right timevar for each pass.
2394 (cprop_jump): Increment global_const_prop_count when a constant is
2395 propagated. Add "GLOBAL" to dump output.
2396 (cprop_insn): Increment global_const_prop_count when a constant is
2397 propagated, or global_copy_prop_count when a copy is propagated.
2398 (do_local_cprop): Likewise for local_const_prop_count and
2399 local_copy_prop_count.
2400 (one_cprop_pass): Initialize const/cprop counters to zero.
2401 Print out results of local and global const/cprop separately.
2402 (bypass_block): Break over-length line.
2403 * Makefile.in (gcse.o): Add TIMEVAR_H dependency. Fix dependencies
2404 for bb-reorder.o and tracer.o.
2406 2004-08-09 Paolo Bonzini <bonzini@gnu.org>
2408 * Makefile.in (GTFILES): Remove stmt.c
2409 (stmt.o): Do not depend on gt-stmt.h.
2410 * emit-rtl.c (emit_line_note): Do not call
2411 set_file_and_line_for_stmt.
2412 * expr.c (expand_expr_real_1) <SWITCH_EXPR>: Let expand_case
2414 * function.c (free_after_parsing): Do not free STMT field.
2415 (allocate_struct_function): Do not call init_stmt_for_function.
2416 (assign_stack_temp_for_type): Do not accept values of keep
2418 (init_temp_slots): Do not initialize removed variables.
2419 * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL
2420 and X_VAR_TEMP_SLOT_LEVEL fields.
2421 * rtl.h (set_file_and_line_for_stmt): Remove.
2422 * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK,
2423 struct stmt_status, cond_stack, case_stack, nesting_stack,
2424 nesting_depth, emit_locus, set_file_and_line_for_stmt,
2425 same_case_target_p, init_stmt_for_function, emit_nop,
2426 expand_start_cond, expand_start_elseif, expand_start_else,
2427 expand_elseif, expand_end_cond): Remove.
2428 (preserve_subexpressions_p): Remove references to CFUN->STMT.
2429 (expand_start_case, expand_end_case_type): Remove, merge into...
2430 (expand_case): ... this one, including other bits from
2431 expand_expr_real_1. Inline same_case_target_p. Turn members
2432 of CASE_STACK into local variables.
2433 (emit_case_bit_tests): Inline same_case_target_p.
2434 (add_case_node): Add HEAD argument, return new head of the list,
2435 do not handle default label here.
2436 * tree.h (expand_start_cond, expand_end_cond, expand_start_else,
2437 expand_start_elseif, current_nesting_level, expand_start_case,
2438 expand_end_case_type, expand_end_case, add_case_node,
2439 init_stmt_for_function, expand_elseif): Remove prototypes.
2440 (expand_case): Add prototype.
2442 2004-08-09 Paolo Bonzini <bonzini@gnu.org>
2444 * expr.c (expand_expr_real_1): Use optab_for_tree_code.
2446 2004-08-09 Paolo Bonzini <bonzini@gnu.org>
2448 * expr.c (var_rtx): Remove.
2449 (expand_expr_real_1) <LOOP_EXPR, EXIT_EXPR,
2450 LABELED_BLOCK_EXPR, EXIT_BLOCK_EXPR, TRUTH_ANDIF_EXPR,
2451 TRUTH_ORIF_EXPR, COMPOUND_EXPR, CONJ_EXPR, INIT_EXPR>:
2453 (expand_expr_real_1) <COND_EXPR>: Remove most special cases.
2454 * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove.
2455 * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove.
2457 2004-08-08 Mostafa Hagog <mustafa@il.ibm.com>
2458 Ayal Zaks <zaks@il.ibm.com>
2460 * common.opt (freschedule-modulo-scheduled-loops): New flag.
2461 * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK.
2462 * modulo-sched.c (sms_schedule): Emit a note to disable scheduling
2463 when -freschedule-modulo-scheduled-loops flag is not specified.
2464 (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps,
2465 add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts):
2466 More accurate placing of insn in row of partial schedule.
2467 (ps_insn_find_column): New function.
2468 * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note.
2469 * sched-rgn.c (sched_is_disabled_for_current_region_p): New.
2470 (schedule_region): Use sched_is_disabled_for_current_region_p.
2471 * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops.
2473 2004-08-07 H.J. Lu <hongjiu.lu@intel.com>
2475 * config/i386/i386.c (ix86_expand_clrmem): Revert the last
2478 2004-08-07 H.J. Lu <hongjiu.lu@intel.com>
2480 * config/i386/i386.c (ix86_expand_clrmem): Properly call
2481 gen_strset for 64bit target.
2483 2004-08-07 Olivier Hainque <hainque@act-europe.fr>
2485 * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition.
2487 2004-08-07 Jason Merrill <jason@redhat.com>
2489 Make return in memory explicit.
2490 * function.c (aggregate_value_p): Check DECL_BY_REFERENCE.
2491 (assign_parm_find_data_types): Remove code for old front end
2492 invisible reference handling.
2493 (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL.
2494 (expand_function_end): Likewise.
2495 * gimplify.c (gimplify_return_expr): Handle a dereferenced
2497 * tree-inline.c (copy_body_r): Don't bother looking for &* anymore.
2498 (declare_return_variable): Handle DECL_BY_REFERENCE.
2499 * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL.
2500 (cp_genericize_r): Use convert_from_reference.
2501 Don't dereference a RESULT_DECL directly inside a RETURN_EXPR.
2502 (cp_genericize): Handle the RESULT_DECL. Unset TREE_ADDRESSABLE.
2504 * c-common.c (c_warn_unused_result): Check TREE_USED before
2505 warning about a CALL_EXPR with an unused value.
2507 2004-08-06 Mark Mitchell <mark@codesourcery.com>
2509 * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options
2510 to the compiler. Use -fshort-wchar by default.
2512 2004-08-06 Pat Haugen <pthaugen@us.ibm.com>
2514 * params.def (PARAM_MIN_CROSSJUMP_INSNS): New.
2515 * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match
2517 * doc/invoke.texi (param): Document min-crossjump-insns.
2519 2004-08-06 Richard Sandiford <rsandifo@redhat.com>
2522 * c.opt (Wmissing-field-initializers): New option.
2523 * c-opts.c (c_common_post_options): Make -Wextra turn it on by default.
2524 * c-typeck.c (pop_init_level): Guard the missing field warning with
2525 warn_missing_field_initializers rather than extra_warnings.
2526 * doc/invoke.texi (-Wmissing-field-initializers): Document, moving
2527 some of the explanation from...
2528 (-Wextra): ...here. Say that the missing field warning can be
2529 seperately controlled by -Wmissing-field-initializers.
2531 2004-08-06 Paolo Bonzini <bonzini@gnu.org>
2533 * expr.c (expand_expr_real_1) <ENTRY_VALUE_EXPR>: Remove.
2534 * tree-inline.c (estimate_num_insns_1) <ENTRY_VALUE_EXPR>: Remove.
2535 * tree-pretty-print.c (dump_generic_node) <ENTRY_VALUE_EXPR>: Remove.
2536 * tree.def (ENTRY_VALUE_EXPR): Remove.
2538 2004-08-06 Jakub Jelinek <jakub@redhat.com>
2540 * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to
2541 the places where it is actually needed. Don't use repz; stosb
2542 for -Os with sufficiently small constant sizes.
2543 For sufficiently small repz; stos{l,q} repeat counts use a sequence
2544 of stos{l,q} instructions instead.
2546 2004-08-06 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2548 PR tree-optimization/16807
2549 * loop-iv.c (dump_iv_info): Dump invariants correctly.
2550 (iv_subreg, iv_extend): Express value of invariant purely in
2553 2004-08-06 Mark Mitchell <mark@codesourcery.com>
2555 * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums.
2556 (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC.
2558 2004-08-06 Roman Zippel <zippel@linux-m68k.org>
2560 * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New.
2561 * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand,
2563 * config/m68k/m68k.md (zero_extend*2): delay the splitting of the
2564 pattern until reload is finished to allow better code generation
2565 and split them completely into separate instrunctions.
2566 (*andsi3_split): New pattern.
2568 2004-08-05 Mark Mitchell <mark@codesourcery.com>
2570 * tree.c (handle_dll_attribute): Move here from i383/winnt.c.
2571 Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P. Set
2572 DECL_VISIBLITY. Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
2573 * tree.h (handle_dll_attribute): Declare. Test
2574 TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
2575 * c-common.h (c_determine_visibility): Declare.
2576 * c-common.c (c_determine_visibility): New function.
2577 * c-decl.c (finish_decl): Use it.
2578 (finish_function): Likewise.
2579 * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to
2580 zero, by default. Use #if, not #ifdef, to test it.
2581 * config/arm/arm.c (arm_attribute_table): Use
2582 handle_dll_attribute. Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with
2584 * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1.
2585 * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
2587 * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove.
2588 * config/i386/i386.c (ix86_attribute_table): Use
2589 handle_dll_attribute for dllimport/dllexport. Test
2590 TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if.
2591 * config/i386/winnt.c (ix86_handle_dll_attribute): Remove.
2592 * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
2594 * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it
2596 * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define
2598 * doc/extend.texi (dllexport): Clarify and correct documentation.
2599 (dllimport): Likewise.
2600 * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention
2601 handle_dll_attribute.
2603 2004-08-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2605 * tree-ssa-loop-manip.c: New file.
2606 * Makefile.in (tree-ssa-loop-manip.o): Add.
2607 * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa):
2609 * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa
2611 (tree_ssa_loop_done): Verify loop closed ssa form.
2612 * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form.
2614 2004-08-05 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
2616 * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common,
2617 pa_asm_output_aligned_local): New functions.
2618 * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss,
2619 pa_asm_output_aligned_common and pa_asm_output_aligned_local.
2620 * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use
2621 pa_asm_output_aligned_common.
2622 (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
2623 * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro.
2624 (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
2625 (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
2626 * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro.
2627 (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common.
2628 (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local.
2629 * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global
2632 2004-08-05 Andrew Pinski <apinski@apple.com>
2634 * objc/objc-act.c (build_objc_string_object): Mark the address
2635 expression as constant.
2637 2004-08-05 David Edelsohn <edelsohn@gnu.org>
2639 * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand
2640 and mask64_operand thinkos. Handle ZERO_EXTRACT. Handle
2641 SIGN_EXTEND / ZERO_EXTEND of MEM. Handle rlwinm patterns.
2643 2004-08-05 Joseph S. Myers <jsm@polyomino.org.uk>
2645 * config/linux.h, config/i386/linux.h, config/sparc/linux.h:
2646 Remove definitions conditioned on USE_GNULIBC_1 or conditioned
2647 out, and associated obsolete comments.
2649 2004-08-05 Nathan Sidwell <nathan@codesourcery.com>
2651 * tree.h (force_fit_type): Return a tree, take three flags.
2652 * fold-const.c (force_fit_type): Set TREE_OVERFLOW and
2653 TREE_CONSTANT_OVERFLOW here.
2654 (int_const_binop, const_binop): Adjust.
2655 (size_int_type): Do sign extension here.
2656 (fold_convert_const, optimize_bit_field_compare,
2657 decode_field_reference, all_ones_mask_p, fold_div_compare, fold,
2658 fold_negate_const, fold_abs_const, fold_not_const): Adjust.
2659 * tree.c (size_in_bytes, int_fits_type_p): Adjust.
2661 2004-08-05 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2663 PR tree-optimization/16864
2664 * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes
2665 for ssa names without default_def.
2667 2004-08-05 Richard Sandiford <rsandifo@redhat.com>
2669 * config/i386/i386.c (ix86_expand_prologue): If the function uses a
2670 frame pointer, restore eax with an ebp-relative address.
2672 2004-08-04 Geoffrey Keating <geoffk@apple.com>
2675 * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs.
2676 * c-common.h (make_rtl_for_local_static): Delete.
2677 * c-decl.c (shadow_tag_warned): Clean up comment.
2678 (finish_decl): Clean up spacing. Use set_user_assembler_name when
2679 appropriate. Don't pass asmspec to rest_of_decl_compilation.
2680 * c-semantics.c (make_rtl_for_local_static): Delete.
2681 * expr.c (init_block_move_fn): Use set_user_assembler_name.
2682 (init_block_clear_fn): Likewise.
2683 * passes.c (rest_of_decl_compilation): Remove asmspec parameter,
2684 expect it to be in DECL_ASSEMBLER_NAME. Update callers in many files.
2685 * toplev.h (rest_of_decl_compilation): Remove asmspec parameter.
2686 * tree.h (make_decl_rtl): Remove second parameter.
2687 (set_user_assembler_name): New.
2688 * varasm.c (set_user_assembler_name): New.
2689 (make_decl_rtl): Remove second parameter. Update callers in many
2692 2004-08-05 Adam Nemet <anemet@lnxw.com>
2694 * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0.
2695 (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*. Update
2697 * gthr-lynx.h: New file.
2698 * config/lynx-ng.h: Remove file.
2699 * config/lynx.h: Update to LynxOS 4.0.
2700 * config/t-lynx: New file.
2701 * config/i386/lynx-ng.h: Remove file.
2702 * config/i386/lynx.h: Update to LynxOS 4.0.
2703 * config/rs6000/lynxbase.h: Remove file.
2704 * config/rs6000/lynx.h: Update to LynxOS 4.0.
2705 * config/rs6000/t-lynx: New file.
2706 * doc/install.texi (Options specification): Remove reference to
2707 LynxOS from systems where --with-gnu-as makes a difference.
2709 2004-08-05 Joseph S. Myers <jsm@polyomino.org.uk>
2711 * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and
2713 * c-cppbuiltin.c (builtin_define_stdint_macros): New. Define
2715 (c_cpp_builtins): Call it.
2716 * doc/cpp.texi: Update.
2718 2004-08-04 David Edelsohn <edelsohn@gnu.org>
2720 * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero
2723 2004-08-04 Jan Hubicka <jh@suse.cz>
2725 * basic-block.h (profile_staus): New global variable.
2726 * cfg.c (profile_status): Declare.
2727 (check_bb_profile): Break out from ....; use profile_status
2728 (dump_flow_info): ... here.
2729 * cfgbuild.c (find_basic_blocks): Set profile_status.
2730 * cfgexpand.c (tree_expand_cfg): Likewise.
2731 * predict.c (estimate_probability): Likewise.
2732 * profile.c (branch_prob): Likewise.
2733 * tree-cfg.c (build_tree_cfg): Likewise.
2734 (dump_function_to_file): Use check_bb_profile.
2735 * tree-pretty-print (dump_bb_header): Likewise.
2736 * tree-profile.c (do_tree_profiling): Cleanup.
2738 2004-08-04 Zack Weinberg <zack@codesourcery.com>
2740 * Makefile.in (RTL_BASE_H, RTL_H): Correct.
2741 (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o.
2742 (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o.
2743 (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o)
2744 (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o)
2745 (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o)
2746 (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H).
2747 (ggc-none.o, errors.o): Move rule to generators section;
2748 correct dependencies.
2749 (min-insn-modes.o): Move rule to generators section; remove
2750 unnecessary explicit command; correct dependencies.
2751 (print-rtl.o, print-rtl1.o): Correct dependencies.
2752 ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule.
2753 (mostlyclean): Update.
2755 * errors.c: Include bconfig.h not config.h. Correct comment.
2756 * gengtype.c, genpreds.c: Don't define NO_GENRTL_H.
2757 * ggc-none.c: Include bconfig.h; not config.h or tm.h.
2758 * print-rtl.c: Don't include tm_p.h.
2760 * rtl.h: Move forward-decl of struct function down where it's
2761 needed. Include genrtl.h #ifndef GENERATOR_FILE, not
2762 #ifndef NO_GENRTL_H. Remove unnecessary #ifdef BUFSIZ statements.
2764 2004-08-04 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
2765 Jeff Law <law@redhat.com>
2767 * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions.
2768 * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed.
2769 * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to
2770 manipulate the duplicated ssa names.
2771 * tree-ssanames.c (ssa_names_to_rewrite): New variable.
2772 (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite,
2773 unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force):
2775 (release_ssa_name): Do not release ssa names that may have multiple
2777 * tree.h (release_ssa_name_force, mark_for_rewrite,
2778 unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p,
2779 marked_ssa_names): Declare.
2780 * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove.
2781 (duplicate_blocks): Remove call to mark_defs_for_rewrite.
2782 Update call to rewrite_ssa_into_ssa.
2784 2004-08-04 Mark Mitchell <mark@codesourcery.com>
2786 * defaults.h (TARGET_DECLSPEC): New macro.
2787 * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC.
2788 * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support.
2789 * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define.
2790 * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove
2792 (TARGET_DECLSPEC): Define.
2793 * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove
2795 * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove
2797 (TARGET_DECLSPEC): Define.
2798 * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove
2800 * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec
2802 * doc/tm.texi (TARGET_DECLSPEC): Document.
2804 * doc/extend.texi: Fix typo in comment.
2806 2004-08-04 Paul Brook <paul@codesourcery.com>
2808 * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
2809 (TARGET_CXX): Use it.
2810 * target.h (struct gcc_target): Add cdtor_returns_this.
2811 * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function.
2812 (TARGET_CXX_CDTOR_RETURNS_THIS): Define.
2813 * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS.
2815 2004-08-03 Nathan Sidwell <nathan@codesourcery.com>
2817 * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take
2818 low/high pair. Do range checking directly.
2819 (interpret_integer): Adjust.
2821 2004-08-04 Nick Clifton <nickc@redhat.com>
2823 * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the
2825 * doc/invoke.texi: Document this new switch and also the -mrenesas
2828 2004-08-04 Nathan Sidwell <nathan@codesourcery.com>
2830 * cfglayout.c (insn_locators_initialize): Update the current
2831 location before initializing a location.
2833 2004-08-03 Zack Weinberg <zack@codesourcery.com>
2835 * dbxout.c (dbxout_function_decl): Always call dbxout_function_end.
2836 (dbxout_function_end): Return after emitting the "Lscope" symbol
2837 under the same conditions that this function formerly wasn't called.
2838 Add explanatory comments.
2841 * c-decl.c (record_builtin_type): Call debug_hooks->type_decl
2845 * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New
2846 functions, broken out of dbxout_block.
2847 (dbxout_block): The block at depth 0 should get LBRAC/RBRAC
2848 stabs too, if it contains symbols. Use the begin_label and
2849 the Lscope label (emitted by dbxout_function_end) for the
2850 range of this block.
2852 2004-08-03 Nathanael Nerode <neroden@gcc.gnu.org>
2854 * doc/install.texi: Update autoconf version requirements.
2856 2004-08-03 Zack Weinberg <zack@codesourcery.com>
2858 * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition.
2859 * recog.c (general_operand, immediate_operand, nonmemory_operand)
2860 (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P.
2861 * regclass.c (record_reg_classes): Likewise.
2862 * reload.c (find_reloads): Likewise.
2863 * reload1.c (reload): Likewise.
2865 2004-08-03 Zack Weinberg <zack@codesourcery.com>
2867 * gensupport.c (init_md_reader_args_cb): Renamed from
2868 init_md_reader_args. Add third option, callback function for
2869 parsing program-specific options. Add diagnosis of incorrect
2870 number of input files.
2871 (init_md_reader): Fold into init_md_reader_args_cb.
2872 (init_md_reader_args): Now a thin wrapper around
2873 init_md_reader_args_cb.
2874 * gensupport.h: Update prototypes.
2876 * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c
2877 * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c
2878 * genrecog.c: No need to diagnose lack of an input file;
2879 init_md_reader_args will handle it.
2880 * genconditions.c: Likewise, and use init_md_reader_args.
2881 * genconstants.c: Likewise, and no need to call read_md_rtx.
2883 2004-08-03 Joseph S. Myers <jsm@polyomino.org.uk>
2885 * c-decl.c (implicitly_declare): Diagnose incompatible implicit
2888 2004-08-03 Mike Stump <mrs@apple.com>
2890 * config/darwin-c.c: Don't search in "/Local/Library/Frameworks"
2892 * doc/invoke.texi (Darwin Options): Update to reflect above.
2894 2004-08-03 Roger Sayle <roger@eyesopen.com>
2897 * fold-const.c (extract_muldiv_1) <NOP_EXPR>: Disallow local
2898 truncations, not just global truncations.
2900 2004-08-03 Andrew Pinski <apinski@apple.com>
2903 * loop-iv.c (simplify_using_assignment): Initialize lhs.
2905 2004-08-03 Paul Brook <paul@codesourcery.com>
2907 * gcc/doc/install.texi: Document MPFR requirement.
2909 2004-08-03 Maciej W. Rozycki <macro@linux-mips.org>
2911 * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for <sys/mman.h>
2912 and mmap() explicitly instead of relying on preset autoconf cache
2914 * configure: Regenerate.
2916 2004-08-03 H.J. Lu <hongjiu.lu@intel.com>
2919 * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc
2921 (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise.
2922 (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc
2925 * config/i386/t-gmm_malloc: New file.
2926 * config/i386/t-pmm_malloc: Likewise.
2928 * config/i386/xmmintrin.h: Include <mm_malloc.h>.
2930 2004-08-03 H.J. Lu <hongjiu.lu@intel.com>
2931 Tanguy Fautrà <tfautre@pandora.be>
2933 * config/i386/pmm_malloc.h: New file.
2935 2004-08-03 Danny Smith <dannysmith@users.sourceforge.net>
2937 * config/i386/gmm_malloc.h: New file.
2939 2004-08-03 Dale Johannesen <dalej@apple.com>
2941 * config/rs6000/rs6000.c (machopic_output_stub): Align Darwin stubs.
2942 * c-common.c: Include opts.h.
2943 (c_common_get_alias_set): Fix check for a single input file.
2944 * toplev.c: Remove current_file_decl.
2947 2004-08-03 Mark Mitchell <mark@codesourcery.com>
2949 * config.gcc (arm*-*-symbianelf*): New target.
2950 * config/arm/symbian.h: New file.
2952 * gthr-gnat.c: Add visibility #pragmas.
2953 * gthr-gnat.h : Likewise.
2955 * libgcc2.c (__ffsSI2): Move prototype to libgcc2.h.
2956 (__ffsDI2): Likewise.
2957 (__clzSI2): Likewise.
2958 (__ctzSI2): Likewise.
2959 (__ctzDI2): Likewise.
2960 (__popcountSI2): Likewise.
2961 (__popcountDI2): Likewise.
2962 (__paritySI2): Likewise.
2963 (__parityDI2): Likewise.
2964 * libgcc2.h: Add visibility #pragmas.
2965 (__clzDI2): Add prototype.
2966 (__clzSI2): Likewise.
2967 (__ctzSI2): Likewise.
2968 (__ffsDI2): Likewise.
2969 (__ffsSI2): Likewise.
2970 (__ctzDI2): Likewise.
2971 (__popcountSI2): Likewise.
2972 (__popcountDI2): Likewise.
2973 (__paritySI2): Likewise.
2974 (__parityDI2): Likewise.
2975 * unwind-dw2-fde.h: Add visibility #pragmas.
2976 * unwind.h: Likewise.
2978 2004-08-03 David Edelsohn <edelsohn@gnu.org>
2979 Dale Johannesen <dalej@apple.com>
2980 Roger Sayle <roger@eyesopen.com>
2982 * config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of
2983 constants more accurately. Adjust costs for FMA instructions.
2984 Add cases for most logical and float operations. Recurse into
2987 2004-08-03 Richard Earnshaw <rearnsha@arm.com>
2989 * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files.
2991 2004-08-03 Pat Haugen <pthaugen@us.ibm.com>
2993 * ra-build.c (conflicts_between_webs): For webs that cross a call add
2994 conflicts to regs_invalidated_by_call.
2996 2004-08-03 Paul Brook <paul@codesourcery.com>
2998 * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment.
3000 2004-08-03 Jan Hubicka <jh@suse.cz>
3002 * coverage.c (tree_coverage_counter_ref): Fix computation of the new
3005 2004-08-03 Richard Earnshaw <rearnsha@arm.com>
3007 * arm-cores.def: Sort by architecture. Add arm946es, arm966es,
3008 arm968es, arm10e, arm1020e, arm1022e.
3009 * invoke.texi: Update list of ARM cores.
3010 * arm-tune.md: Regenerate.
3012 2004-08-03 Richard Earnshaw <rearnsha@arm.com>
3014 * arm/gentune.sh: New file.
3015 * arm/t-arm: New file.
3016 * arm/arm-tune.md: New file (autogenerated).
3017 * config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants.
3018 * arm.md (attribute tune): Delete. Include arm-tune.md.
3020 2004-08-03 Paolo Bonzini <bonzini@gnu.org>
3022 * gcc.c (add_prefix, add_sysrooted_prefix): Remove
3023 penultimate parameter. All callers adjusted.
3024 (struct prefix_list): Remove used_flag_ptr.
3025 (find_a_file): Do not set *pl->used_flag_ptr.
3026 (warn_B, warn_std_ptr): Remove.
3028 2004-08-03 Yossi Markovich <yossim@il.ibm.com>
3029 Mostafa Hagog <mustafa@il.ibm.com>
3031 * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern.
3033 2004-08-02 Geoffrey Keating <geoffk@apple.com>
3035 * dwarf2out.c (output_call_frame_info): Don't change data format
3036 due to TARGET_USES_WEAK_UNWIND_INFO. Always refer to the local
3037 label. Use 'true' not '1'.
3038 * doc/install.texi (powerpc-*-darwin*): Mention cctools version
3041 2004-08-02 Gabriel Dos Reis <gdr@cs.tamu.edu>
3043 * gdbinit.in: Reflect previous changes to rtunion_def.
3045 2004-08-02 Roger Sayle <roger@eyesopen.com>
3047 * fold-const.c (fold) <TRUNC_MOD_EXPR>: The transformation "X % -Y"
3048 -> "X % Y" is only valid for TRUNC_MOD_EXPR.
3050 2004-08-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
3052 * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
3054 * langhooks.h (lang_hooks::builtin_function): Rename parameter
3055 from "class" to "bt_class".
3057 2004-08-02 Paul Brook <paul@codesourcery.com>
3059 PR rtl-optimization/15068
3060 * flow.c (init_propagate_block_info): Check condition is reversible.
3062 2004-08-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
3064 * gengtype.h (options::info): Change type to const char *.
3065 (enum gc_used_enum): Move out of struct type scope.
3066 * gengtype.c (create_option): Convert initializer for option::info to
3068 (adjust_field_type, walk_type, write_func_for_structure,
3069 write_root, write_roots): Remove pointless cast.
3071 2004-08-02 J"orn Rennecke <joern.rennecke@superh.com>
3073 * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F.
3075 2004-08-02 Gabriel Dos Reis <gdr@integrable-solutions.net>
3077 * rtl.h (union rtunion_def): Have all members start with the
3079 (XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL,
3080 X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE,
3081 X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP,
3082 XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members
3084 * gengtype.c (adjust_field_rtx_def): Likewise.
3085 * rtlanal.c (loc_mentioned_in_p): Likewise.
3087 2004-08-02 Richard Sandiford <rsandifo@redhat.com>
3089 * config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file.
3090 Replace uses of mips/elf64.h with mips/elf.h
3091 * config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION)
3092 (TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP)
3093 (ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS)
3094 (MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP)
3095 (HANDLE_SYSV_PRAGMA): Delete.
3096 (ASM_OUTPUT_DEF): Fix formatting.
3097 * config/mips/elf64.h: Delete.
3099 2004-08-01 Zack Weinberg <zack@codesourcery.com>
3101 * config/ia64/ia64.c (got_symbolic_operand): Do require a
3102 symbol+offset operand to have its offset be zero mod 0x3fff
3103 when GOT entries are in use. Clarify logic in SYMBOL_REF
3104 case. Clarify comments.
3105 (ia64_expand_load_address): Split a symbol+offset load when
3106 the offset is nonzero mod 0x3fff, not 0x1fff.
3108 2004-08-01 Geoffrey Keating <geoffk@apple.com>
3110 * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
3111 if trying to *store* to a non-offsettable address.
3112 * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to
3113 a nonoffsettable address.
3114 (movdi_internal32): Don't move GPRs to a nonoffsettable address.
3116 (movti_string): Don't move GPRs to a nonoffsettable address.
3117 (movti_ppc64): Don't move GPRs to a nonoffsettable address. Clean up.
3119 2004-08-02 Ben Elliston <bje@au.ibm.com>
3122 * config/rs6000/altivec.h: Replace typeof with __typeof__.
3124 2004-08-01 Richard Henderson <rth@redhat.com>
3126 * expr.c (expand_expr_real_1) <normal_inner_ref>: Fix crash with
3127 variable sized types.
3129 2004-08-01 Richard Sandiford <rsandifo@redhat.com>
3131 * doc/invoke.texi: In the MIPS options section, remove the passage
3132 saying that -mexplicit-relocs is usually disabled for -mabicalls
3133 -fno-unit-at-a-time.
3134 * config/mips/mips.c (override_options): Remove the code that enforced
3137 2004-08-01 Richard Sandiford <rsandifo@redhat.com>
3139 * config/mips/mips.md (cprestore): Provide two alternatives, one for
3140 an in-range offset and one for an out-of-range offset. Wrap the latter
3141 in .set macro/.set nomacro if it's inside a .set nomacro block.
3143 2004-08-01 Richard Sandiford <rsandifo@redhat.com>
3145 * config/mips/mips-protos.h (mips_gp_save_slot): Remove.
3146 (mips_restore_gp): Declare.
3147 * config/mips/mips.c (mips_add_offset): Add a scratch register
3148 argument. Reimplement in rtl only, reusing MIPS16 logic from
3149 mips_output_mi_thunk.
3150 (mips_legitimize_address, mips_legitimize_const_move): Adjust calls
3152 (mips_gp_save_slot): Delete.
3153 (mips_restore_gp): New function.
3154 (mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
3155 * config/mips/mips.md (exception_receiver): Turn into a
3156 define_insn_and_split. Use mips_restore_gp to do the split.
3157 (call_internal, call_value_internal, call_value_multiple_internal): Use
3158 mips_restore_gp to restore $gp.
3160 2004-07-31 Andrew Pinski <apinski@apple.com>
3163 * mkheaders.in (libsubdir): s/gcc-lib/gcc/.
3165 2004-07-31 Joseph S. Myers <jsm@polyomino.org.uk>
3167 * c-decl.c (diagnose_mismatched_decls): Give error for external
3168 redeclaration of identifier declared with no linkage, not just
3169 warning with -Wtraditional. Do not check DECL_CONTEXT to give
3170 error for redeclaration with no linkage.
3172 2004-07-30 Geoffrey Keating <geoffk@apple.com>
3173 Fariborz Jahanian <fjahanian@apple.com>
3175 * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit
3176 non-offsettable addresses even for DImode.
3177 (rs6000_split_multireg_move): Cope with non-offsettable addresses
3178 being moved into multiple GPRs.
3180 * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
3182 (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
3183 * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
3185 * config/rs6000/darwin-ldouble.c (isless): New macro.
3187 (nonfinite): New macro.
3189 (_xlqadd): Completely rewrite.
3190 (_xlqmul): Correct overflow handling.
3191 (_xlqdiv): Correct overflow handling.
3192 * config/rs6000/darwin-ldouble-format: New file.
3194 2004-07-30 Roger Sayle <roger@eyesopen.com>
3195 Richard Henderson <rth@redhat.com>
3197 * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or
3198 9 into the equivalent lea instruction.
3200 2004-07-30 Richard Henderson <rth@redhat.com>
3202 * gimplify.c (gimplify_expr) <case CONST_DECL>: Don't replace
3203 with DECL_INITIAL if fb_lvalue.
3204 * tree-gimple.c (is_gimple_id): Add CONST_DECL.
3205 * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL
3207 * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL.
3209 2004-07-30 Diego Novillo <dnovillo@redhat.com>
3211 * tree-ssa-alias.c (compute_points_to_and_addr_escape): If a
3212 pointer escapes through a function call, assume that the
3213 callee will dereference it.
3214 (add_pointed_to_var): Assume that VALUE is always an
3216 (collect_points_to_info_r): Only call add_pointed_to_var if
3217 the value is an ADDR_EXPR.
3219 2004-07-30 Diego Novillo <dnovillo@redhat.com>
3221 * tree-ssa-alias.c (create_alias_map_for): Do not get the
3222 alias set of the inner type of ARRAY_TYPEs.
3224 2004-07-29 Diego Novillo <dnovillo@redhat.com>
3226 * tree-ssa-ccp.c (visit_assignment): Move code to prevent
3227 setting a non-register to UNDEFINED right before the call to
3230 2004-07-29 Kaz Kojima <kkojima@gcc.gnu.org>
3232 * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*.
3234 2004-07-29 Diego Novillo <dnovillo@redhat.com>
3236 * tree-ssa.c (verify_flow_sensitive_alias_info): When
3237 comparing points-to sets of different pointers, make sure the
3238 second pointer is actually referenced in the code.
3240 2004-07-29 Zack Weinberg <zack@codesourcery.com>
3242 * config/ia64/ia64.c (setjmp_operand): Delete, unused.
3243 (got_symbolic_operand): Remove unreachable code.
3244 * config/ia64/ia64.h (PREDICATE_CODES): Remove entry for
3245 setjmp_operand; add entry for tls_symbolic_operand.
3246 * config/ia64/ia64-protos.h: Remove all prototypes of
3247 predicate functions.
3249 2004-07-29 Mark Mitchell <mark@codesourcery.com>
3251 * c-common.h (lang_post_pch_load): New variable.
3252 * c-pch.c (lang_post_pch_load): Define it.
3253 (c_common_read_pch): Use it.
3254 * cgraphunit.c (record_call_1): Give the front end a chance to
3255 record additional needed entities when a variable is marked as
3257 * tlink.c (recompile_files): Robustify.
3258 (scan_linker_output): If a symbol is assigned to a file,
3259 but after recompilation is not present there, issue an error
3262 2004-07-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3264 * tree-ssa-loop-im.c (force_move_till_expr, force_move_till):
3265 Take orig_loop argument and pass it to set_level.
3266 (schedule_sm): Pass the correct orig_loop to force_move_till.
3268 2004-07-29 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
3270 * cfgloop.c (update_latch_info): Update dominator of the new block.
3271 (canonicalize_loop_headers, flow_loops_find): Do not free dominance
3273 * dominance.c (verify_dominators): Check that the dominance tree is
3275 (recount_dominator): Ignore unreachable blocks.
3276 (iterate_fix_dominators): Cleanup old dominance information before
3279 2004-07-29 Diego Novillo <dnovillo@redhat.com>
3281 * tree-ssa-operands.c (get_expr_operands): Revert changes
3282 to ADDR_EXPR processing introduced by:
3283 2004-06-21 Richard Kenner <kenner@vlsi1.ultra.nyu.edu>
3284 * tree-ssa-operands.c (get_expr_operands): Minor rearrangements.
3286 2004-07-29 Joseph S. Myers <jsm@polyomino.org.uk>
3288 * doc/implement-c.texi: Add C90 subclause references. Point to
3289 preprocessor documentation instead of duplicating it. Add points
3290 only present in C90. Fill in documentation for all points.
3292 2004-07-29 John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
3294 * pa.c (output_movb): Correct typo.
3296 2004-07-29 Pat Haugen <pthaugen@us.ibm.com>
3298 * ra.h (single_reg_in_regclass): Declare.
3299 * ra.c (single_reg_in_regclass): Define.
3300 (first_hard_reg): New.
3301 (init_ra): Initialize single_reg_in_regclass.
3302 * ra-colorize.c (ok_class): New.
3303 (coalesce, aggressive_coalesce, extended_coalesce_2): Use it.
3305 2004-07-29 Nathan Sidwell <nathan@codesourcery.com>
3307 * gcov-io.h: Allow zero tag as EOF indicator.
3308 (gcov_is_eof): Remove.
3309 (gcov_truncate): Remove.
3310 * gcov-io.c (gcov_seek): Always SEEK_SET.
3311 * libgcov.c (gcov_exit): Don't use gcov_truncate. Write explicit
3313 * coverage.c (read_counts_file): Don't use gcov_is_eof.
3314 * gcov-dump.c (dump_file): Likewise.
3315 * gcov.c (read_graph_file, read_count_file): Likewise.
3317 * c-decl.c (complete_array_type): Don't gratuitously copy
3318 maxindex. Check it always has a type.
3320 2004-07-29 Steven Bosscher <stevenb@suse.de>
3322 * rtl.c (currently_expanding_to_rtl): New.
3323 * rtl.h (currently_expanding_to_rtl): Export it.
3324 * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit.
3326 * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL
3328 * config/sh/sh.c: Replace rtx_equal_function_value_matters
3329 with currently_expanding_to_rtl.
3330 * config/sh/sh.md: Likewise.
3331 * config/ia64/ia64.c (got_symbolic_operand): Likewise.
3333 2004-07-29 Alexandre Oliva <aoliva@redhat.com>
3335 Introduce sh2a support.
3336 2004-07-29 Alexandre Oliva <aoliva@redhat.com>
3337 * config.gcc: Build multilibs for sh2a and sh2a-single by
3339 * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by
3340 default. Split their tests out of the corresponding SH4
3342 * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a
3344 2004-07-28 Alexandre Oliva <aoliva@redhat.com>
3345 * config.gcc: Handle sh2a multilibs and cpu selection.
3346 * config/sh/sh.h: Likewise. Handle sh2a command line flags.
3347 * config/sh/t-mlib-sh2a: New.
3348 * config/sh/t-mlib-sh2a-nofpu: New.
3349 * config/sh/t-mlib-sh2a-single: New.
3350 * config/sh/t-mlib-sh2a-single-only: New.
3351 2004-07-09 Nick Clifton <nickc@redhat.com>
3353 * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if
3354 -ml and -m2a are used together.
3355 2004-03-23 DJ Delorie <dj@redhat.com>
3356 * config/sh/sh.c (sh_builtin_saveregs): Use the double code only
3357 when we have a double-sized FPU.
3358 2004-02-24 Corinna Vinschen <vinschen@redhat.com>
3359 * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__
3361 * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu,
3362 -msh2a-single and -msh2a-single-only
3363 2004-02-24 Corinna Vinschen <vinschen@redhat.com>
3364 * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__
3366 2004-02-20 DJ Delorie <dj@delorie.com>
3367 * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu.
3368 2004-02-20 Fred Fish <fnf@redhat.com>,
3369 Corinna Vinschen <vinschen@redhat.com>
3370 * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu.
3371 (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a.