OSDN Git Service

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