OSDN Git Service

More MIPS vector cleanup work.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2004-09-03  James E Wilson  <wilson@specifixinc.com>
2
3         * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips3d.
4
5         * config/mips/generic.md (generic_frecip_fsqrt_step): New.
6         * config/mips/mips-ps-3d.md (mips_rsqrt1_<fmt>): Use frsqrt1 type.
7         (mips_rsqrt2_<fmt>): Use frsqrt2 type.
8         (mips_recip1_<fmt>): Use frdiv1 type.
9         (mips_recip2_<fmt>): Use frdiv2 type.
10         * config/mips/mips.md (type): Add frdiv1, frdiv2, frsqrt1, frsqrt2.
11         * config/mips/sb1.md (ir_sb1_fpu_2pipes, ir_sb1_fpu_1pipe): Add frdiv1
12         and frsqrt1.
13         (ir_sb1_fpu_step2_2pipes, ir_sb1_fpu_step2_1pipe): New.
14
15 2004-09-03  Daniel Jacobowitz  <dan@debian.org>
16
17         * reload.c (find_reloads): Swap operand_loc pointers for
18         find_dummy_reload if we have swapped two operands.
19
20 2004-09-03  Hans-Peter Nilsson  <hp@axis.com>
21
22         * config/cris/cris.h (ASM_OUTPUT_CASE_END): Use prev_nonnote_insn
23         to get the tablejump-insn before the jump-table label.
24
25 2004-09-03  Ziemowit Laski  <zlaski@apple.com>
26
27         * c-common.h (objc_is_id, objc_declare_alias, objc_declare_class,
28         objc_declare_protocols, objc_build_message_expr,
29         objc_finish_message_expr, objc_build_selector_expr,
30         objc_build_protocol_expr, objc_build_encode_expr,
31         objc_build_string_object, objc_get_protocol_qualified_type,
32         objc_get_class_reference, objc_get_class_ivars,
33         objc_start_class_interface, objc_start_category_interface,
34         objc_start_protocol, objc_continue_interface, objc_finish_interface,
35         objc_start_class_implementation, objc_start_category_implementation,
36         objc_continue_implementation, objc_finish_implementation,
37         objc_set_visibility, objc_set_method_type, objc_build_method_signature,
38         objc_add_method_declaration, objc_start_method_definition,
39         objc_finish_method_definition, objc_add_instance_variable,
40         objc_build_keyword_decl, objc_build_throw_stmt, objc_begin_try_stmt,
41         objc_finish_try_stmt, objc_begin_catch_clause,
42         objc_finish_catch_clause, objc_build_finally_clause,
43         objc_build_synchronized, objc_static_init_needed_p,
44         objc_generate_static_init_call): New prototypes.
45
46 2004-09-03  Steve Ellcey  <sje@cup.hp.com>
47
48         * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL even if there
49         is only one reg.
50         (ia64_function_value): Ditto.
51
52 2004-09-03  Jan Beulich  <jbeulich@novell.com>
53
54         * config.gcc: Resurrect NetWare as a target. Handle special case of
55         Novell linker to be used (specified through --with-ld=) and threading
56         model of either Posix (default) or NKS.
57         * config/i386/i386.c (ix86_return_pops_args): Conditionalize popping
58         of incoming hidden argument on KEEP_AGGREGATE_RETURN_POINTER.
59         * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): New.
60         * config/i386/netware.c, config/i386/netware.h: New.
61         * config/i386/nwld.c, config/i386/nwld.h: New.
62         * config/i386/netware-crt0.c: New.
63         * config/i386/netware-libgcc.c: New.
64         * config/i386/netware-libgcc.def: New.
65         * config/i386/netware-libgcc.exp: New.
66         * config/i386/t-netware, config/i386/t-nwld: New.
67         * gthr-nks.h: New.
68         * doc/install.texi: Document NKS threading model.
69
70 2004-09-03  Jan Beulich  <jbeulich@novell.com>
71
72         PR c/7054
73         * defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default.
74         * tree.h (initial_max_fld_align): Declare
75         * stor-layout.c (initial_max_fld_align): Define and initialize.
76         (maximum_field_alignment): Initialize to the same value.
77         * common.opt: Add -fpack-struct= variant of switch.
78         * opts.c: Handle -fpack-struct= variant of switch.
79         * c-pragma.c: Change #pragma pack() handling so that it becomes
80         compatible to other compilers: accept individual 'push' argument,
81         make final pop restore (command line) default, correct interaction
82         of push/pop and sole specification of a new alignment (so that the
83         sequence #pragma pack(push) - #pragma pack(<n>) becomes identical
84         to #pragma pack(push, <n>).
85         * doc/extend.texi: New node "Structure-Packing Pragmas" under
86         "Pragmas", describing #pragma pack.
87         * doc/invoke.texi: Document -fpack-struct=<n> variant of switch.
88         * doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP.
89         Document new TARGET_DEFAULT_PACK_STRUCT.
90
91 2004-09-03  Devang Patel  <dpatel@apple.com>
92
93         * dwarf2out.c (gen_field_die). Equate decl number to die.
94         
95 2004-09-03  Vladimir Makarov  <vmakarov@redhat.com>
96
97         PR target/15832
98         * global.c (modify_reg_pav): New function.
99         (make_accurate_live_analysis): Call the new function.  Move pavin
100         modification by earlyclobber set into the new function.
101
102 2004-09-03  Andreas Schwab  <schwab@suse.de>
103
104         * config/m68k/m68k.c (output_andsi3): Use -1 instead of
105         (HOST_WIDE_INT)0xffffffff since CONST_INT value are always sign
106         extended.
107
108 2004-09-02  Jan Beulich  <jbeulich@novell.com>
109
110         * Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h.
111         * mklibgcc.in (libgcc_dep): New, covering general dependencies, but
112         not unwind code specific ones.
113         (libgcc2_c_dep): Replace general dependencies with use of libgcc_dep.
114         Remove unwind code specific dependencies.
115         (libgcov_c_dep): Replace general dependencies with use of libgcc_dep.
116         Remove gbl-ctors.h.
117         Add libgcc_dep to output generated for LIB2ADD, LIB2ADDEH, and
118         LIB2ADD_ST. Add LIB2ADDEHDEP to output generated for LIB2ADDEH.
119         * tsystem.h: Declare memcpy and memset when inhibit_libc.
120
121 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
122  
123         * combine.c (try_combine): Delay modifying of insns which cannot
124         be easily undone.
125
126 2004-09-02  Daniel Berlin  <dberlin@dberlin.org>
127
128         * gcc/common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to
129         tree-loop-im.
130         * gcc/tree-ssa-loop.c: Ditto
131         * gcc/tree-ssa-loop-ivcanon.c: Ditto
132         * gcc/doc/invoke.texi: Ditto.
133
134 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
135
136         * c-decl.c (store_parm_decls_newstyle): Make static.
137         (store_parm_decls_from): New function.
138         * c-tree.h (store_parm_decls_newstyle): Remove prototype.
139         (store_parm_decls_from): New prototype.
140
141 2004-09-02  David Edelsohn  <edelsohn@gnu.org>
142
143         * config/rs6000/rs6000.c (expand_block_move): Use SImode and
144         HImode with STRICT_ALIGNMENT.
145
146 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
147
148         * config/arm/bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define.
149         (TARGET_OS_CPP_BUILTINS): Likewise.
150         * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Include
151         TARGET_BPABI_CPP_BUILTINS.
152
153 2004-09-02  Roman Zippel  <zippel@linux-m68k.org>
154  
155         * combine.c (distribute_notes): Don't add REG_LABEL to jump insn.
156
157 2004-09-02  Eric Christopher  <echristo@redhat.com>
158
159         * builtins.c (expand_builtin_cabs): Delete.
160         (expand_builtin): If unable to fold the values do a normal
161         library call for builtin_cab*.
162         (fold_builtin_cabs): Depend on optimize and optimize_size.
163         * optabs.c (expand_cmplxdiv_straight): Delete.
164         (expand_cmplxdiv_wide): Ditto.
165         (expand_vector_binop): Ditto.
166         (expand_vector_unop): Ditto.
167         (expand_complex_abs): Delete.
168         (expand_binop): Remove calls to above functions.
169         Remove open coding of complex arithmetic.
170         (expand_unop): Ditto.
171         * optabs.h: Remove prototypes.
172
173 2004-09-02  Ziemowit Laski  <zlaski@apple.com>
174
175         * c-decl.c (store_parm_decls_newstyle): Make externally visible.
176         * c-tree.h (store_parm_decls_newstyle): New prototype.
177
178 2004-09-02  Geoffrey Keating  <geoffk@apple.com>
179
180         * config/rs6000/rs6000.c (expand_block_clear): Use vector
181         instructions if available.
182         (expand_block_move): Likewise.
183
184 2004-09-03  Jan Hubicka  <jh@suse.cz>
185
186         * rtl.def (RANGE_INFO, RANGE_REG, RANGE_VAR, RANGE_LIVE): Kill.
187
188 2004-09-02  Mark Mitchell  <mark@codesourcery.com>
189
190         * config/arm/symbian.h (LIB_SPEC): Define to empty.
191         * config/arm/t-symbian (SHLIB_LC): Likewise.
192
193 2004-09-02  Paul Brook  <paul@codesourcery.com>
194
195         * config/arm/bpabi.c (__aeabi_ul2d, __aeabi_ul2f): Remove.
196
197 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
198
199         * config/mips/mips.c (mips_classify_symbol, mips_fetch_insns):
200         (mips_restore_gp, mips_set_return_address, mips_expand_prologue)
201         (mips16_fp_args, mips_avoid_hazard): Replace abort with gcc_assert.
202         (build_mips16_call_stub): Likewise.  Remove daft CALL_INSN checks.
203         (mips_issue_rate): Remove unreachable abort.
204         (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns)
205         (mips_output_move, mips_relational_operand_ok_p, mips_arg_info)
206         (mips_block_move_straight, print_operand_address, mips_file_start)
207         (mips_initial_elimination_offset, mips16_fp_args, dump_constants_1)
208         (mips_output_conditional_branch, mips_expand_builtin_direct)
209         (mips_expand_builtin_compare): Replace abort with gcc_unreachable.
210         * config/mips/mips.md (rotr<mode>3, consttable_float): Replace abort
211         with gcc_assert.
212
213 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
214
215         * config/mips/mips.md (*lea_high64): Change split condition to
216         flow2_completed.  Add a peephole2 to generate a more parallel version.
217
218 2004-09-02  Jan Hubicka  <jh@suse.cz>
219
220         * gimplify.c (gimplify_compound_lval): Move "stack" varray out of
221         GGC.
222
223         * ggc-page.c: include tree-flow.h.
224         (extra_order_size_table): Add stmt_ann_d.
225         (STAT_LABEL): Rename from ....
226         (LABEL): ... this one.
227         * Makefile.in (ggc-page.o): Add dependency.
228
229         * ggc-common.c (ggc_force_collect): New global variable.
230         (loc_description): Add fields "freed", "collected"
231         (ptr_hash): New static hash
232         (ptr_hash_entry): New structure.
233         (hash_ptr,eq_ptr,ggc_prune_ptr): New static functions.
234         (ggc_record_overhead): Take ptr argument, record it
235         (ggc_prune_overhead_list, ggc_free_overhead): New functions.
236         (cmp_statistics): Imrove sorting.
237         (dump_ggc_loc_statistics): Output newly collected statistics
238         * ggc-page.c (ggc_alloc): Update call of ggc_record_overhead
239         (ggc_free): Call ggc_free_overhead.
240         (ggc_collect): Force collection when asked to be forced.
241         (ggc_collect): Call ggc_prune_overhead_list.
242         * ggc.h (ggc_force_collect): Declare
243         (ggc_record_overhead): Update prototype.
244         (ggc_free_overhead, ggc_prune_overhead_list): Declare.
245
246 2004-09-02  James E Wilson  <wilson@specifixinc.com>
247
248         * common.opt (ftrapping-math): Default to on.
249
250 2004-09-02  Richard Earnshaw  <rearnsha@arm.com>
251
252         * arm/predicates.md (arm_reload_memory_operand): Allow MEM.
253
254 2004-09-02  Denis Chertykov  <denisc@overta.ru>
255
256         PR target/16884
257         * config/avr/avr.md ("movmemhi"): Substitute match_dup to
258         match_scratch.
259         (*movmemqi_insn): Likewise.
260         (*movmemhi): Likewise.
261         (clrmemhi): Likewise.
262         (*clrmemqi): Likewise.
263         (*clrmemhi): Likewise.
264
265 2004-09-02  Paul Brook  <paul@codesourcery.com>
266
267         * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set
268         default_use_cxa_atexit=yes.
269
270 2004-09-02  Alan Modra  <amodra@bigpond.net.au>
271
272         * config/rs6000/linux64.h: Don't include signal.h or sys/ucontext.h.
273         (struct kernel_old_ucontext): Delete.
274         (struct gcc_pt_regs, gcc_sigcontext, gcc_ucontext): New.
275         (MD_FALLBACK_FRAME_STATE_FOR): Use gcc_* structs.  Only define
276         when IN_LIGGCC2.
277
278 2004-09-02  Richard Sandiford  <rsandifo@redhat.com>
279
280         * toplev.c (process_options): Fix typo.
281
282 2004-09-01  Richard Henderson  <rth@redhat.com>
283
284         PR middle-end/17258
285         * calls.c (initialize_argument_information): Tighten pass-through
286         conditions for pass-by-reference.  Remove dead TARGET_EXPR code.
287         Use build_fold_addr_expr.
288         (emit_library_call_value_1): Use build_fold_addr_expr.  Remove code
289         that assumes ADDR_EXPR allocates stack space.
290         * fold-const.c (build_fold_addr_expr_with_type): Look through
291         WITH_SIZE_EXPR.
292
293 2004-09-01  Dan Nicolaescu  <dann@ics.uci.edu>
294
295         * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE.
296         * ggc.h (ggc_alloc_rtx): Delete.
297
298 2004-09-01  Roger Sayle  <roger@eyesopen.com>
299
300         * expmed.c (enum alg_code): Remove long unused enumeration values.
301         (struct mult_cost): New structure to hold the "score" of a synthetic
302         multiply sequence, including both a rtx_cost and a latency field.
303         (MULT_COST_LESS): New macro to compare mult_cost to a constant.
304         (CHEAPER_MULT_COST): New macro to compare two mult_costs.
305         (struct algorithm): Change type of cost field to be mult_cost.
306         (synth_mult): Change type of cost_limit argument to be a
307         pointer to a mult_cost.  Update all cost comparisons to use the
308         new mult_cost infrastructure.  For alg_add_factor and
309         alg_sub_factor operations, latency is lower than the rtx_cost.
310         (choose_mult_variant):  Update calls to synth_mult.  Perform
311         cost comparisons using the new mult_cost infrastructure.
312         (expand_mult_highpart): Use alg.cost.cost instead of alg.cost
313         to optain the total rtx_cost of a synth_mult "algorithm".
314
315 2004-09-01  David Edelsohn  <edelsohn@gnu.org>
316
317         * config/rs6000/power4.md: Increase store latency to 12.
318         * config/rs6000/power5.md: Same.
319
320 2004-09-01  James E Wilson  <wilson@specifixinc.com>
321
322         PR target/14064
323         * config/avr/avr.c (avr_unique_section): Delete prototype and
324         definition.
325         (TARGET_ASM_UNIQUE_SECTION): Delete.
326
327 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
328
329         * c-parse.in (primary): Call objc_build_message_expr(),
330         objc_build_selector_expr(), objc_build_protocol_expr(),
331         objc_build_encode_expr() and objc_build_string_object() instead of
332         build_message_expr(), build_selector_expr(), build_protocol_expr(),
333         build_encode_expr() and build_objc_string_object(), respectively.
334         (component_decl_list2): Call objc_get_class_ivars() instead of
335         get_class_ivars_from_name().
336         (keyworddecl): Call objc_build_keyword_decl() instead of
337         build_keyword_decl().
338         (receiver): Call objc_get_class_reference() instead of
339         get_class_reference().
340         (reswords): Add blank line before @@ifobjc section, for clarity.
341
342 2002-09-01  Fariborz Jahanian <fjahanian@apple.com>
343
344         * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment
345         to Altivec vetors.
346
347 2004-09-01  Wu Yongwei  <adah@sh163.net>
348             Danny Smith  <dannysmith@users.sourceforge.net>
349
350         * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long',
351         not Windows 'DWORD'.
352         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo.
353         (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise.
354         (__gthr_win32_recursive_mutex_init_function): Add prototype for
355         __GTHREAD_HIDE_WIN32API case..
356         (__gthr_win32_recursive_mutex_lock): Likewise.
357         (__gthr_win32_recursive_mutex_trylock): Likewise.
358         (__gthr_win32_recursive_mutex_unlock): Likewise.
359         (__gthread_recursive_mutex_init_function); Add definition for
360         __GTHREAD_HIDE_WIN32API case.
361         (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement.
362         * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct
363         call to InterlockedDecrement.
364
365 2004-09-01  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
366
367         * tree-tailcall.c (find_tail_calls): Also fail is statement has
368         volatile operands.
369
370         * tree-ssa.c (propagate_into_addr): Properly test for LHR.
371
372         * doc/c-tree.texi: Document new operands for ARRAY_REF and
373         COMPONENT_REF.
374
375 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
376
377         * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency.
378         * common.opt (fspeculative-prefetching): New.
379         * flags.h (flag_speculative_prefetching_set): Declare.
380         * gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative
381         values.
382         * opts.c (flag_sepculative_prefetching_set): New variable.
383         (common_handle_option): Handle -fspeculative-prefetching.
384         * passes.c (rest_of_compilation): Ditto.
385         * profile.c (instrument_values, compute_value_histograms, branch_prob):
386         Use vectors instead of arrays.
387         * toplev.c (process_options): Handle -fspeculative-prefetching.
388         * rtl-profile.c: Include ggc.h.
389         (rtl_gen_interval_profiler, rtl_gen_pow2_profiler,
390         rtl_gen_one_value_profiler_no_edge_manipulation,
391         rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of
392         argument changed.
393         * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler,
394         tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of
395         argument changed.
396         * value-prof.c: Include ggc.h.
397         (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New
398         macros.
399         (insn_prefetch_values_to_profile, find_mem_reference_1,
400         find_mem_reference_2, find_mem_reference, gen_speculative_prefetch,
401         speculative_prefetching_transform): New.
402         (value_profile_transformations): Call speculative_prefetching_transform.
403         (insn_values_to_profile): Call insn_prefetch_values_to_profile.
404         (insn_divmod_values_to_profile, rtl_find_values_to_profile,
405         tree_find_values_to_profile, find_values to profile): Use vectors
406         instead of arrays.
407         (free_profiled_values): Removed.
408         * value-prof.h (struct histogram_value): Renamed to
409         struct histogram_value_t.
410         (histogram_value, histogram_values): New types.
411         (find_values_to_profile): Declaration changed.
412         (free_profiled_values): Removed.
413         (struct profile_hooks): Type of argument of the hooks changed to
414         histogram_value.
415         * doc/invoke.texi (-fspeculative-prefetching): Document.
416
417 2004-09-01  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
418
419         PR rtl-optimization/16408
420         * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes.
421
422 2004-09-01  Richard Henderson  <rth@redhat.com>
423
424         * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove.
425         (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline.
426
427 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
428
429         * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup.
430
431 2004-09-01  Mike Stump  <mrs@apple.com>
432
433         * config/darwin.c (machopic_symbol_defined_p): In addition to
434         being SYMBOL_REF_LOCAL_P, a symbol must also be
435         ! SYMBOL_REF_EXTERNAL_P, as only those are _always_ locally
436         defined in this output file, or translation unit in the case
437         of IMA not being used.
438         (machopic_output_indirection): SYMBOL_REF_LOCAL_P symbols
439         never need .indirect_symbol when indirecting.
440
441 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
442
443         * Makefile.in (bb-reorder.o): Add several dependencies.
444
445 2004-09-01  Jakub Jelinek  <jakub@redhat.com>
446
447         * fold-const.c (operand_equal_p): Require equal sign also for
448         FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR.
449
450 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
451
452         * config.gcc (--with-cpu on ARM): Preserve the canonical cpu name
453         for use in configargs.h.  Put the cname in a separate variable.  Use
454         that to set target_cpu_default2.
455
456 2004-09-01  J"orn Rennecke <joern.rennecke@superh.com>
457             Nick Clifton  <nickc@redhat.com>
458
459         * config/sh/sh.md ("length"): Increase branch length when
460         SH1 pic code to 18: 12 bytes of instructions, 4 byte for the
461         constant, 2 byte for aligning the constant.
462
463 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
464
465         * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the
466         CPU.
467         (arm7tdmi-s): New CPU name.
468         * arm/arm.c (ARM_CORE): Update for new format.
469         * arm/arm.h (ARM_CORE): Likewise.
470         * arm/gentune.sh: Update for extra field.
471         * config.gcc: Likewise.
472         * arm/arm-tune.md: Regenerate.
473         * doc/invoke.texi: Document the real processor names for ARM cpus.
474
475 2004-09-01  Richard Earnshaw  <rearnsha@arm.com>
476
477         * arm/ieee754-df.S (aeabi_ul2d, aeabi_l2d, floatundidf)
478         (floatdidf): New functions.
479         * arm/ieee754-sf.S (aeabi_ul2f, aeabi_l2f, floatundisf)
480         (floatdisf): New functions.
481         * t-arm-elf: Use them.
482
483 2004-09-01  Ziemowit Laski  <zlaski@apple.com>
484
485         * c-common.h (lookup_interface): Remove prototype.
486         (is_class_name): Rename to objc_is_class_name.
487         (lookup_objc_ivar): Rename to objc_lookup_ivar.
488         (get_current_scope): Rename to objc_get_current_scope.
489         * c-decl.c (get_current_scope): Rename to objc_get_current_scope.
490         * c-parse.in (parmlist_or_identifiers_1): Get rid of unused variable.
491         (yylexname): Call objc_is_class_name() instead of is_class_name().
492         * c-typeck.c (build_external_ref): Call objc_lookup_ivar()
493         instead of lookup_objc_ivar().
494         * stub-objc.c (lookup_interface): Remove stub.
495         (is_class_name): Rename to objc_is_class_name.
496         (lookup_objc_ivar): Rename to objc_lookup_ivar.
497
498 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
499
500         * config.gcc (arm*-*-symbianelf*): Do not include t-bpabi.
501         * config/arm/lib1funcs.asm: Do not include supplemental .S files
502         when compiling for Symbian.
503         * config/arm/symbian.h (RENAME_LIBRARY): New macro.
504         (TARGET_OS_CPP_BUILTINS): Likewise.
505         * config/arm/t-symbian (LIB1ASMFUNCS): Define.
506
507 2004-08-31  Stan Shebs  <shebs@apple.com>
508
509         * toplev.c (process_options): Ensure debug_hooks is initialized.
510
511 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
512
513         * target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA.
514         * target.h (cxx): Add export_class_data.
515         * config/arm/arm.c (arm_cxx_export_class_data): New function.
516         (TARGET_CXX_EXPORT_CLASS_DATA): Use it.
517         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Document it.
518
519 2004-08-31  Kaz Kojima  <kkojima@gcc.gnu.org>
520
521         * config/sh/sh.c (output_branch): Check the insn length possibly
522         in the delayed slot.
523
524 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
525
526         * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add
527         blank after ')'.
528         (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used.
529
530         * c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT.
531         (c_sizeof_of_alignof_type): Likewise.
532         * expr.c (array_ref_element_size): Likewise.
533         (highest_pow2_factor_for_target): Likewise.
534         * gimplify.c (canonicalize_addr_expr): Likewise.
535         (gimplify_compound_lval): Likewise.
536         * stor-layout.c (finalize_record_size, finalize_type_size): Likewise.
537         * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise.
538         * varasm.c (assemble_variable): Likewise.
539         (output_constant_def_contents): Alignments are unsigned.
540
541 2004-08-31  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
542             Jeff Law  <law@redhat.com>
543
544         * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL
545         gets modified.
546
547 2004-08-31  Mark Mitchell  <mark@codesourcery.com>
548
549         * hooks.c (hook_bool_void_true): New function.
550         * hooks.h (hook_bool_void_true): Declare.
551         * target-def.h (TARGET_CXX): Add
552         TARGET_CXX_KEY_METHOD_MAY_BE_INLINE.
553         * target.h (struct cxx): Add key_method_may_be_inline.
554         * config/arm/arm.c (arm_cxx_key_method_may_be_inline): New
555         function.
556         (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro.
557         * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of
558         __THUMB_INTERWORK.
559
560 2004-08-31  Denis Chertykov  <denisc@overta.ru>
561
562         PR target/15417
563         * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of
564         frame pointer register only in Pmode while reload in progress.
565
566 2004-08-31  Stephane Carrez  <stcarrez@nerim.fr>
567
568         PR target/15334
569         * config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb
570         because it breaks the 32-bit shift patterns that rely on a match_dup.
571
572 2004-08-31  Matt Austern  <austern@apple.com>
573
574         * config/darwin.c (darwin_make_decl_one_only): Allocate section
575         names once per compilation, instead of once per symbol.
576
577 2004-08-31  Paolo Bonzini  <bonzini@gnu.org>
578
579         * Makefile.in (build_subdir): New substitution.
580         (fixinc.sh): Simplify heavily since fixincludes is already built.
581         (stmp-fixinc): Depend on specs.ready.
582         (install-mkheaders): Use new location of fixincludes.
583         (clean): Do not descend into fixinc.
584         (FORBUILD): Replace with ../$(build_subdir).
585         * configure.ac (build_subdir): Substitute.
586         (FORBUILD): Do not set.
587         (all_outputs): Remove fixinc/Makefile.
588         (default commands): Do not create links in fixinc.
589         * mkfixinc.sh: New, from fixinc/mkfixinc.sh without
590         the fixincludes configuration steps and substituting
591         @FIXINCL@ in fixinc.in.
592         * fixinc.in: New, from fixinc/fixincl.sh.
593
594         * fixinc/*: Removed.
595
596 2004-08-31  Joseph S. Myers  <jsm@polyomino.org.uk>
597
598         * attribs.c (strip_attrs): Remove.
599         (split_specs_attrs): Move ...
600         * c-decl.c: ... to here.
601         * tree.h (split_specs_attrs, strip_attrs): Remove.
602         * c-tree.h (split_specs_attrs): Declare.
603
604 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
605
606         * read-rtl.c: Disable RTL checking.
607         (apply_macro_to_rtx): Use XTMPL to access 'T' fields.
608
609 2004-08-31  Richard Sandiford  <rsandifo@redhat.com>
610
611         * config/mips/mips.md (fcond): New code macro and attribute.
612         (sunordered_[sd]f, suneq_[sd]f, sunlt_[sd]f, sunle_[sd]f)
613         (seq_[sd]f, slt_[sd]f, sle_[sd]f): Redefine using :SCALARF and fcond.
614         (sgt_[sd]f, sge_[sd]f): Redefine using :SCALARF.
615
616 2004-08-30  Mark Mitchell  <mark@codesourcery.com>
617
618         Revert:
619         2004-08-29  Mark Mitchell  <mark@codesourcery.com>
620         PR rtl-optimization/16590
621         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
622
623 2004-08-30  Andrew Pinski  <apinski@apple.com>
624
625         * hard-reg-set.h:
626         s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT.
627         * ChangeLog: Fix previous ChangeLog entry.
628
629         PR rtl-opt/13987
630         * config.host (use_long_long_for_widest_fast_int): New, default is
631         off.
632         (ia64-*-hpux*): Enable use_long_long_for_widest_fast_int.
633         * configure.ac: If use_long_long_for_widest_fast_int, then
634         define USE_LONG_LONG_FOR_WIDEST_FAST_INT.
635         * configure: Regenerate.
636         * config.in: Regenerate.
637         * hwint.h (HOST_WIDEST_FAST_INT, HOST_BITS_PER_WIDEST_FAST_INT):
638         New: widest integer type supported efficiently in hardware for the
639         host.
640         * sbitmap.h (SBITMAP_ELT_BITS): Define based on
641         HOST_BITS_PER_WIDEST_FAST_INT.
642         (SBITMAP_ELT_TYPE): Define based on HOST_WIDEST_FAST_INT.
643         * hard-reg-set.h (HARD_REG_ELT_TYPE): Define based on
644         HOST_WIDEST_FAST_INT
645         instead of HOST_WIDE_INT.
646         (HARD_REG_SET_LONGS): Likewise.
647         (UHOST_BITS_PER_WIDE_INT): Likewise.
648         Change the checks for the fast cases to be based on
649         HOST_BITS_PER_WIDEST_FAST_INT instead of HOST_BITS_PER_WIDE_INT.
650
651 2004-08-30  Steven Bosscher  <stevenb@suse.de>
652
653         * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE,
654         not the pointers.
655
656 2004-08-30  Geoffrey Keating  <geoffk@apple.com>
657
658         PR 12738
659         PR 17205
660         Radar 3460526
661         Radar 3775729
662         * c-decl.c (grokdeclarator): Produce error for 'static' on local
663         function declaration.
664
665 2004-08-30  Richard Henderson  <rth@redhat.com>
666
667         * expr.c (array_ref_element_size): Force aligned_size back to
668         sizetype.
669         (component_ref_field_offset): Similarly for aligned_offset.
670         * tree.c (recompute_tree_invarant_for_addr_expr): Mark raw
671         low-bound, element-size, field-offset fields rather than
672         computed values.
673
674 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
675
676         * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and
677         redundant code.
678
679 2004-08-30  Joseph S. Myers  <jsm@polyomino.org.uk>
680
681         * c-tree.h (struct language_function): Add arg_info element.
682         * c-decl.c (current_function_arg_info): New.
683         (grokdeclarator, store_parm_decls): Use it instead of
684         DECL_ARGUMENTS.
685         (c_push_function_context, c_pop_function_context): Save and
686         restore it.
687
688 2004-08-30  Richard Henderson  <rth@redhat.com>
689
690         * c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a
691         COMPONENT_REF to pointer arithmetic.
692         * varasm.c (initializer_constant_valid_p): Allow "&(*c).f", for
693         constant "c" as a valid constant initializer.  Allow narrowing of
694         differences against the same base object, for any base object.
695
696 2004-08-30  Richard Henderson  <rth@redhat.com>
697
698         * expr.c (expand_expr_addr_expr): New.
699         (expand_expr_real_1) <case ADDR_EXPR>: Use it.
700
701 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
702
703         * config/mips/mips.c (MIPS_FP_CONDITIONS): New macro.
704         (mips_fp_condition): New enum.
705         (mips_fp_conditions): New array.
706         (print_fcc_operand): Delete.
707         (print_operand): Remove %V, %v and %Q.  Redefine %Z so that it prints
708         the operand and comma if and only if ISA_HAS_8CC.  Add %Y.
709         (builtin_description): Add "cond" field.
710         (DIRECT_BUILTIN): Initialize it.
711         (CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter
712         into INSN and CODE.  Initialize the "cond" field.
713         (CMP_BUILTINS): Update accordingly.
714         (mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS.
715         (mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the
716         mips_fp_condition as argument.  Make it the final operand of the
717         comparison instruction.
718         (mips_expand_builtin): Update accordingly.
719         * config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete.
720         (UNSPEC_C, UNSPEC_CABS): New constants.  Shuffle others to fill
721         the gaps.
722         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]):
723         Don't use the 'Q' operand prefix; just print the operand normally.
724         (mips_cabs_*, mips_c_*): Delete, replacing with...
725         (mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new
726         patterns.  Split the 4s versions into 2 ps patterns after reload.
727
728 2004-08-30  Richard Henderson  <rth@redhat.com>
729
730         * fold-const.c (tree_expr_nonzero_p): Use get_base_address before
731         assuming an ADDR_EXPR is non-null.
732
733 2004-08-30  Jason Merrill  <jason@redhat.com>
734
735         * gthr-posix.h, gthr-dce.h: Add #pragma weaks.
736
737 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
738
739         * gcov-io.c (GCOV_CHECK): Use gcc_assert when available.
740         * gcov.c (abort): Remove undef.
741
742         * tree.h (BINFO_PRIMARY_BASE_OF): Remove.
743         (struct tree_binfo): Remove primary field.
744
745 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
746
747         * fixinc/Makefile.in (machname.h): Remove.
748         (fixincl.x): Do not pass $@ to genfixes.
749         * fixinc/genfixes: Remove code to produce machname.h.
750         * fixinc/fixincl.sh: Move it here instead.
751         * fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence,
752         instead check if pz_mn_name_pat is NULL.  Make mn_get_regexps
753         return a bool indicating whether pz_mn_name_pat is NULL.
754         * fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence.
755         Declare extern C variables for the ENV_TABLE.
756         * fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence,
757         instead use the result of mn_get_regexps.
758         * fixinc/fixtests.c: Likewise.
759
760 2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
761
762         * configure.ac: Do not run fixincludes after stage1 during
763         toplevel bootstrap.
764         * configure: Regenerate.
765
766 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
767
768         * sched-deps.c (get_condition): Partially revert previous, by never
769         trying to extract the condition from a condjump.
770
771 2004-08-30  Nathan Sidwell  <nathan@codesourcery.com>
772
773         * c-common.c (c_sizeof_or_alignof_type): Use gcc_assert.
774         (handle_visibility_attribute, c_determine_visibility): Likewise.
775         * c-common.h (my_friendly_assert): Remove.
776
777 2004-08-30  Richard Sandiford  <rsandifo@redhat.com>
778
779         * config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete.
780         (UNSPEC_{RSQRT,RECIP}[12]): New constants.
781         (UNSPEC_MOVE_TF_PS): Renumber to avoid gaps.
782         * config/mips/mips-ps-3d.md (*movcc_v2sf_[sd]i): Use :GPR.
783         (mips_{rsqrt,recip}[12]_{s,d,ps}): Use :ANYF.
784
785 2004-08-30  Diego Novillo  <dnovillo@redhat.com>
786
787         * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE
788         in COMPONENT_REF nodes.
789
790 2004-08-29  Gabriel Dos Reis  <gdr@integrable-solutions.net>
791
792         PR c++/15378
793         * c-opts.c (c_common_handle_option): <case OPT_Werror> set
794         global_dc->warning_as_error_requested.
795         * diagnostic.c (diagnostic_initialize): Tidy.
796         * diagnostic.h (diagnostic_context::x_data): Remove
797         (diagnostic_context::issue_warnings_are_errors_message): Rename
798         from warnings_are_errors_message.
799         (diagnostic_context::warning_as_error_requested): New.
800
801 2004-08-30  Richard Earnshaw  <rearnsha@arm.com>
802
803         * sched-deps.c (get_condition): Fix breakage in previous patch.
804
805 2004-08-30  Paul Brook  <paul@codesourcery.com>
806
807         * doc/install.texi: Fix broken mpfr link.
808
809 2004-08-29  David O'Brien  <obrien@FreeBSD.org>
810
811         * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with
812         other FreeBSD platforms.
813
814 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
815
816         * arm.h (REVERSE_CONDITION): Define.
817         (REVERSIBLE_CC_MODE): All comparisons are now reversible.
818
819 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
820
821         * flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not
822         just the codes, call reversed_comparison_code ().
823         (ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P.
824         (not_reg_cond): Use reversed_comparison_code.
825         (and_reg_cond): Likewise.
826         * ifcvt.c (cond_exec_process_if_block): Likewise.
827         * doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation.
828
829 2004-08-29  Richard Earnshaw  <rearnsha@arm.com>
830
831         * sched-deps.c (get_condition): Rewrite using jump support functions.
832         Use reversed_comparison_code.
833         (conditions_mutex_p): Use reversed_comparison_code.
834
835 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
836
837         * config/mips/mips.c (override_options): Disable hot/cold partitioning
838         for MIPS16.
839
840 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
841
842         * config/mips/mips.h (mips_builtins, mips_cmp_choice): Delete.
843         (mips_function_type): Move to mips.c.
844         * config/mips/mips.c (mips_builtin_type): New enum.
845         (builtin_description): Replace code and ftype with builtin_type
846         and function_type.
847         (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS, CMP_4S_BUILTINS)
848         (MOVTF_BUILTINS, CMP_BUILTINS): New macros.
849         (CODE_FOR_mips_abs_ps): Define.
850         (mips_bdesc): Use new macros.
851         (mips_expand_builtin): Use builtin_type.  Update calls to subroutines.
852         (mips_init_builtins): Use the mips_bdesc[] index as the function code.
853         (mips_expand_builtin_direct): New function.
854         (mips_expand_builtin_movtf): Renamed from mips_expand_ps_cond_move_
855         builtin.  Replace boolean parameter with builtin_type.
856         (mips_expand_compare_builtin, mips_expand_scalar_compare_builtin)
857         (mips_expand_4s_compare_builtin): Delete, replacing with...
858         (mips_expand_builtin_compare): ...this new function.
859
860 2004-08-29  Mark Mitchell  <mark@codesourcery.com>
861
862         PR rtl-optimization/16590
863         * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes.
864
865 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
866
867         * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards.
868         * tree-ssa-propagate.c: Fix documentation.
869
870 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
871
872         * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF.
873         (mov[sd]fcc): Likewise.
874
875 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
876
877         * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF.
878
879 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
880
881         * config/mips/mips.md (divide_condition): New mode attribute.
882         (div[sd]f3, *div[sd]f3): Use it.  Redefine using :SCALARF.
883         (sqrt[sd]f3): Redefine using SCALARF.
884         (*recip[sd]f3, *rsqrt<mode>[ab]): Likewise.  Name formerly unnamed
885         patterns.
886
887 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
888
889         * config/mips/mips.md (ANYF, SCALARF): New mode macros.
890         (loadx, storex, fmt, UNITMODE): New mode attributes.
891         (add{sf,df,v2sf}3, sub{sf,df,v2sf}3): Redefine using :ANYF.
892         (mul[sd]f3): Redefine using :SCALARF.
893         (*mul[sd]f3): Renamed from mul[sd]f3_internal.  Use :SCALARF.
894         (*mul[sd]3_r4300): Likewise mul[sd]f3_r4300.
895         (*m{add,sub}{sf,df,v2sf}3): Name formerly unnamed patterns.  Use :ANYF.
896         Check TARGET_FUSED_MADD for V2SF too.
897         (*nm{add,sub}{sf,df,v2sf}3{,_fastmath}): Likewise, except v2sf patterns
898         were already named.
899         (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF.
900         (*[sl][wd]xc1_[sd]i): Redefine using :ANYF.
901
902 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
903
904         * config/mips/mips.c (mips_init_builtins): Simplify.  Only create
905         V2SF_type_node if it will be needed.
906
907 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
908
909         * config/mips/mips.h (MIPS_CMP_MOVT, MIPS_CMP_MOVF): Delete.
910         * config/mips/mips.c (mips_prepare_builtin_arg): New function.
911         (mips_prepare_builtin_target): New function.
912         (mips_expand_builtin): Use them.  Update calls to subroutines.
913         (mips_expand_ps_cond_move_builtin): Use the new functions.  Replace
914         cmp_choice with a boolean argument to select between movt and movf.
915         Take the comparison's icode as an argument, not the function's fcode.
916         (mips_expand_compare_builtin): New function.  Rename existing function
917         to mips_expand_scalar_compare_builtin.
918         (mips_expand_scalar_compare_builtin, mips_expand_4s_compare_builtin)
919         (mips_expand_ps_compare_builtin): Use the new functions.  Take the
920         comparison's icode as an argument, not the builtin's fcode.
921
922 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
923
924         * config/mips/mips.c (print_operand): Remove '%Y' and '%y'.
925         (mips_expand_4s_compare_builtin): Redefine CCV4 to be 0 if all
926         registers are false and -1 if all registers are true.
927         (mips_expand_ps_compare_builtin): Likewise CCV2.  Use subregs for
928         MIPS_CMP_UPPER and MIPS_CMP_LOWER.
929         * config/mips/mips.md (mips_cond_move_tf_ps): Use %Q rather than %y.
930         (bc1any4t, bc1any4f): Adjust for new CCV4 interpretation.
931         (bc1any2t, bc1any2f): Likewise CCV2.
932         (bc1upper2t, bc1lower2t, bc1upper2f, bc1lower2f): Delete.
933
934 2004-08-29  Richard Sandiford  <rsandifo@redhat.com>
935
936         * config/mips/mips.md (UNSPEC_MOVE_TF_PS): New.
937         * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an
938         UNSPEC rather than an IF_THEN_ELSE.
939         * config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit
940         mips_cond_move_tf_ps by name.
941
942 2004-08-29  Chao-ying Fu  <fu@mips.com>
943             James E Wilson  <wilson@specifixinc.com>
944
945         * config/mips/mips-modes.def (V2SF, CCV2, CCV4): New modes. Give CCV2
946         8 byte size and alignment.  Give CCV4 16 byte size and alignment.
947         * config/mips/mips-ps-3d.md: New file.
948         * config/mips/mips.c (TARGET_VECTOR_MODE_SUPPORTED_P,
949         TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
950         (mips_const_insns): Handle CONST_VECTOR the same as CONST_DOUBLE.
951         (mips_output_move): Emit "mov.ps" for V2SFmode.
952         (mips_arg_info): Add checks for VECTOR_FLOAT_TYPE_P and
953         MODE_VECTOR_FLOAT.
954         (override_options): Check if TARGET_MIPS3D and there was an explicit
955         !TARGET_PAIRED_SINGLE_FLOAT.  Set MASK_PAIRED_SINGLE, if TARGET_MIPS3D.
956         Check if TARGET_FLOAT64 and TARGET_HARD_FLOAT are both true, when
957         TARGET_PAIRED_SINGLE_FLOAT is true.  Check if the ISA supports
958         TARGET_PAIRED_SINGLE_FLOAT.  Allow MODE_VECTOR_FLOAT in fp registers,
959         and allow CCV2 and CCV4 to occupy two and four CC registers.
960         (print_fcc_operand): New function.
961         (print_operand): Add %Y, %y, %V, %v, %Q for CCV2, CCV4, CC.  Modify
962         %Z to call print_fcc_operand.
963         (mips_function_value): Handle MODE_VECTOR_FLOAT.
964         (mips_class_max_nregs): Check for ST_REGS, and handle CCmodes.
965         (mips_vector_mode_supported_p): New function.
966         (mips_hard_regno_nregs): Check for ST_REG_P, and handle CCmodes.
967         (builtin_description): New struct.
968         (mips_bdesc): New array of struct builtin_description.
969         (mips_expand_builtin, mips_init_builtins,
970         mips_expand_ps_cond_move_builtin, mips_expand_4s_compare_builtin,
971         mips_expand_compare_builtin, mips_expand_ps_compare_builtin): New
972         functions.
973         * config/mips/mips.h (MASK_PAIRED_SINGLE, MASK_MIPS3D): New defines.
974         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D): New defines.
975         (TARGET_CPU_CPP_BUILTINS): Add __mips_paired_single_float.
976         (TARGET_SWITCHES): Added "-mpaired-single", "-mno-paired-single",
977         "-mips3d", and "-mno-mips3d".
978         (ASM_SPEC): Map -mips3d to -mips3d in gas.
979         (EXTRA_CONSTRAINT_Y): New macro.
980         (EXTRA_CONSTRAINT_STR): Renamed from EXTRA_CONSTRAINT.  Add new
981         multi-letter constraint 'Y'.
982         (CONSTRAINT_LEN): New macro.
983         (enum mips_builtins): New for MIPS builtin functions.
984         (enum mips_function_type): New for the types of MIPS builtin functions.
985         (enum mips_cmp_choice): New for the MIPS comparison builtin functions.
986         * config/mips/mips.md: New constants for paired single and MIPS-3D
987         instructions.  Include the new mips-ps-3d.md file.
988         (addv2sf3, subv2sf3, mulv2sf3, absv2sf2, negv2sf2, movv2sf,
989         movv2sf_hardfloat_64bit): New named patterns.
990         (madd.ps, msub.ps, nmaddv2sf, nmaddv2sf_fastmath, nmsubv2sf,
991         nmsubv2sf_fastmath, ldxc1_v2sf_si, ldxc1_v2sf_di, sdxc1_v2sf_si,
992         sdxc1_v2sf_di): New unnamed patterns.
993         * config/mips/predicates.md (const_0_operand, const_1_operand): Add
994         const_vector support.
995         (const_0_or_1_operand): New predicate.
996         * doc/invoke.texi (MIPS Options): Add -mpaired-single and -mips3d.
997
998 2004-08-29  Diego Novillo  <dnovillo@redhat.com>
999
1000         * Makefile.in (OBJS-common): Add tree-ssa-propagate.o
1001         (tree-ssa-propagate.o): New rule.
1002         (GTFILES): Add tree-ssa-propagate.c.
1003         * tree-flow.h (struct stmt_ann_d): Remove field
1004         in_ccp_worklist.
1005         * tree-ssa-propagate.c: New file.
1006         * tree-ssa-propagate.h: New file.
1007         * tree-ssa-ccp.c: Re-write to use the routines from
1008         tree-ssa-propagate.c.
1009
1010 2004-08-28  Andrew Pinski  <apinski@apple.com>
1011
1012         * tree-ssa-loop.c: Remove extra include of basic-block.h.
1013
1014 2004-08-28  Ziemowit Laski  <zlaski@apple.com>
1015
1016         * c-common.h: Update comments about ObjC/ObjC++ entry points.
1017         (objc_is_reserved_word): New prototype.
1018         (get_current_scope, objc_mark_locals_volatile): Move prototypes to
1019         separate section; these are call-backs.
1020         * c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect
1021         ObjC/ObjC++ "@" keywords.
1022         * c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove
1023         prototypes; they already live in c-common.h.
1024         * stub-objc.c: Update copyright notice.
1025         (objc_is_reserved_word): New stub.
1026
1027 2004-08-28  Nathan Sidwell  <nathan@codesourcery.com>
1028
1029         * system.h (gcc_assert): Remove __builtin_expect.  Evaluate EXPR
1030         even when not checking.
1031
1032 2004-08-27  Jason Merrill  <jason@redhat.com>
1033
1034         PR c++/13684
1035         * gimplify.c (gimplify_cleanup_point_expr): Handle CLEANUP_EH_ONLY.
1036         (gimple_push_cleanup): Add eh_only parm.
1037         (gimplify_target_expr): Pass it.
1038         * c.opt (-fno-threadsafe-statics): New option.
1039         * c-opts.c (c_common_handle_option): Handle it.
1040         * c-common.h (flag_threadsafe_statics): Declare it.
1041         * c-common.c (flag_threadsafe_statics): Record it.
1042         * doc/invoke.texi: Document it.
1043         * tsystem.h (_GNU_SOURCE): Define.
1044         * gthr-posix.h (__gthread_recursive_mutex_t): New typedef.
1045         (__GTHREAD_RECURSIVE_MUTEX_INIT): New macro.
1046         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): New macro.
1047         (__gthread_recursive_mutex_init_function): New fn.
1048         (__gthread_recursive_mutex_lock): New fn.
1049         (__gthread_recursive_mutex_trylock): New fn.
1050         (__gthread_recursive_mutex_unlock): New fn.
1051         * gthr-solaris.h, gthr-single.h, gthr-dce.h: Likewise.
1052         * gthr-win32.h, gthr-vxworks.h: Likewise.
1053         * gthr.h: Document.
1054
1055 2004-08-27  David Edelsohn  <edelsohn@gnu.org>
1056
1057         * config/rs6000/rs6000.c (rs6000_override_options): Increase
1058         maximum skip to 15.  Set function alignment, jump alignment, and
1059         loop alignment to 16 for processors that form dispatch groups.
1060         (rs6000_rtx_costs): outer_code is used.
1061
1062 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
1063
1064         * stor-layout.c (sizetype_set): Remove.
1065         (set_sizetype): Don't test or set it.
1066
1067         * tree.h (size_int_type): Remove.
1068         * fold-const.c: Do not #include gt-fold-const.h.
1069         (size_htab_hash, size_htab_eq): Remove.
1070         (size_int_kind): Use build_int_cst.
1071         (new_const, size_htab): Remove.
1072         (size_int_type): Remove.
1073         (round_up): Use build_int_cst.
1074         (round_down): Likewise. Remove spurious constant build.
1075
1076 2004-08-27  Nathan Sidwell  <nathan@codesourcery.com>
1077
1078         * configure.ac: Add ENABLE_ASSERT_CHECKING control.
1079         Add is_release variable, use it for --enable-werror and
1080         --enable-checking defaults.
1081         * system.h (gcc_assert, gcc_unreachable): New.
1082         * doc/install.texi (--enable-checking): Update.
1083         * configure, config.in: Rebuilt.
1084
1085 2004-08-26  Richard Sandiford  <rsandifo@redhat.com>
1086
1087         * rtl.h (read_rtx): Change prototype.
1088         * read-rtl.c (read_rtx): Provide the caller with both an rtx and a
1089         line number.  Return true on success.
1090         * gensupport.c (process_include, init_md_reader_args_cb): Adjust
1091         callers accordingly.
1092
1093 2004-08-26  Richard Henderson  <rth@redhat.com>
1094
1095         * c-typeck.c (build_offsetof): Remove.
1096         * c-tree.h (build_offsetof): Remove.
1097         * c-common.c (fold_offsetof_1, fold_offsetof): New.
1098         * c-common.h (fold_offsetof): Declare.
1099         * c-parse.in (offsetof_base): New.
1100         (offsetof_member_designator): Use it.  Build references, not just
1101         a tree list.
1102         (primary): Use fold_offsetof, not build_offsetof.
1103
1104 2004-08-26  Richard Henderson  <rth@redhat.com>
1105
1106         * tree.c (staticp): Return the static object.
1107         * tree.h (staticp): Update decl.
1108         * langhooks.h (struct lang_hooks): Change staticp return type to tree.
1109         * langhooks.c (lhd_staticp): Return NULL_TREE.
1110         * langhooks-def.h (lhd_staticp): Update decl.
1111         * c-common.c (c_staticp): Return the static object.
1112         * c-common.h (c_staticp): Update decl.
1113
1114 2004-08-26  Richard Henderson  <rth@redhat.com>
1115
1116         * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float
1117         modes.
1118
1119 2004-08-26  Joseph S. Myers  <jsm@polyomino.org.uk>
1120
1121         PR c/13801
1122         * c-decl.c (struct c_binding): Add type and inner_comp fields.
1123         (bind): Set type and inner_comp fields.
1124         (pop_scope): Restore type of decl to the correct type from an
1125         outer scope.  Give error when popping file scope for incomplete
1126         arrays completed incompatibly with default initialization in an
1127         inner scope.
1128         (diagnose_mismatched_decls): Handle externs with initializers at
1129         block scope.
1130         (pushdecl): Set type of external declaration at block scope based
1131         only on the visible declarations.  Save type when changing the
1132         type of a declaration.  Merge an external declaration at block
1133         scope with a visible static declaration at file scope.
1134         (implicitly_declare): Give recycled old declaration the new type
1135         except for incompatible declarations of built-in functions, saving
1136         the old type.
1137
1138 2004-08-26  Ziemowit Laski  <zlaski@apple.com>
1139
1140         * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use.
1141
1142 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
1143
1144         * tree-alias-common.c (gate_pta): New function.
1145         (pass_build_pta): Use it.
1146         (pass_del_pta): Use it.
1147         (delete_alias_vars): Don't check flag_tree_points_to.
1148
1149 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
1150
1151         * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added
1152         TFmode as additional register mode cloberred by call.
1153
1154 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
1155
1156         * config/rs6000/rs6000.c (rs6000_libcall_value): Generate
1157         parallel pattern for library call returning DImode in
1158         mixed mode.
1159
1160 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
1161
1162         * config/rs6000/rs6000.c (function_arg): Generate parallel
1163         pattern for more split args.
1164
1165 2004-08-26  Fariborz Jahanian  <fjahanian@apple.com>
1166
1167         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Call
1168         either gen_movdi_di_update or gen_movdi_si_update depending on
1169         target mode.
1170         * config/rs6000/rs6000.md (movdi_update): Changed to movdi_<mode>_update,
1171         to generate two versions.
1172
1173 2004-08-26  Daniel Berlin  <dberlin@dberlin.org>
1174
1175         * Makefile.in (lambda-code.o): New.
1176         (lambda-trans.o): Ditto.
1177         (TREE_DATA_REF_H): Ditto.
1178         (LAMBDA_H): Ditto.
1179         (lambda-mat.o): Use LAMBDA_H.
1180         (tree-data-ref.o): Ditto.
1181         * lambda-code.c: New file.  Lambda code generation algorithm.
1182         * lambda-trans.c: Ditto. Lambda transformation matrix support.
1183         * lambda.h: Add lambda loop structures.
1184         Add lambda loopnest structures.
1185         Add lambda body vector structure.
1186         Add lambda linear expression structures.
1187         Add prototypes for functions in new files.
1188         * lambda-mat.c: Include tree.h
1189
1190 2004-08-26  Daniel Berlin <dberlin@dberlin.org>
1191             Sebastian Pop  <pop@cri.ensmp.fr>
1192
1193         * tree-data-ref.h: Include lambda.h
1194         (free_dependence_relation): Declared here.
1195         (free_dependence_relations): Ditto.
1196         (free_data_refs): Ditto.
1197         * tree-data-ref.c (free_dependence_relation): New function.
1198         (free_dependence_relations): Ditto.
1199         (free_data_refs): Ditot.
1200         (analyze_all_data_dependences): Free datarefs and dependence_relations.
1201         (build_classic_dist_vector): Store in the dependence_relations the
1202         information. Each arc in the dependence_relations graph is labelled
1203         with the distance and direction vectors.
1204         (build_classic_dir_vector): Ditto.
1205         (compute_rw_wr_ww_dependences): Renamed again compute_all_dependences.
1206         Now computes again the whole dependence graph including read-read
1207         relations.
1208         (compute_data_dependences_for_loop): Now dependence_relations contains
1209         all the data, and thus it doesn't need to initialize the classic_dir
1210         and classic_dist vectors.
1211         (analyze_all_data_dependences): Adjusted for using the new interface of
1212         compute_data_dependences_for_loop.  Remove the statistics dump.
1213
1214 2004-08-26  Bob Wilson  <bob.wilson@acm.org>
1215
1216         * config/xtensa/xtensa.c (xtensa_ld_opcodes, xtensa_st_opcodes): Delete.
1217         (xtensa_expand_block_move): Update comment.
1218         (override_options): Remove initialization of xtensa_{ld,st}_opcodes.
1219
1220 2004-08026  Richard Earnshaw  <rearnsha@arm.com>
1221
1222         PR target/13506
1223         * toplev.c (crash_signal): If we crashed while emitting
1224         a user asm, then die more gracefully.
1225
1226 2004-08-26  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
1227
1228         PR target/17119.
1229         * config/m32r.c (gen_compare): Use reg_or_int16_operand when
1230         checking for a valid constant, regardless of sign.
1231
1232 2004-08-25  Richard Henderson  <rth@redhat.com>
1233
1234         PR target/16974
1235         * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting
1236         if the constant satisfies add_operand.
1237
1238 2004-08-25  Richard Henderson  <rth@redhat.com>
1239
1240         PR debug/10695
1241         * config/alpha/alpha.c (emit_frame_store_1, emit_frame_store): New.
1242         (alpha_expand_prologue): Handle >32-bit frames.  Generate proper
1243         unwind info for >16-bit frames.
1244
1245 2004-08-25  Richard B. Kreckel  <richard.kreckel@framatome-anp.com>
1246
1247         PR target/17171
1248         * config/i386/gas.h (ASM_COMMENT_START): Define to "#".
1249
1250 2004-08-25  Richard Henderson  <rth@redhat.com>
1251
1252         * config/alpha/alpha.c (alpha_cannot_force_const_mem): New.
1253         (TARGET_CANNOT_FORCE_CONST_MEM): New.
1254
1255 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
1256
1257         * doc/tree-ssa.texi: Document new operand iterator.
1258
1259 2004-08-26  Alan Modra  <amodra@bigpond.net.au>
1260
1261         PR target/16480
1262         * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort
1263         on "(mem (symbol_ref ..))" rtl.  Look at LO_SUM base regs as well
1264         as PLUS base regs.
1265
1266 2005-08-28  Paul Brook  <paul@codesourcery.com>
1267
1268         * config/arm/symbian.h (SUBTARGET_ASM_FLOAT_SPEC): Default to
1269         -mfpu=vfp -march=armv5t
1270         * config/arm/t-symbian: Change multilib to mfloat-abi=softfp.
1271
1272 2004-08-25  Richard Henderson  <rth@redhat.com>
1273
1274         * target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New.
1275         * target.h (struct gcc_target): Add scalar_mode_supported_p.
1276         * targhooks.c (default_scalar_mode_supported_p): New.
1277         * targhooks.h (default_scalar_mode_supported_p): Declare.
1278         * doc/tm.texi (TARGET_SCALAR_MODE_SUPPORTED_P): Document.
1279
1280         * c-common.c (handle_mode_attribute): Query scalar_mode_supported_p
1281         before attempting to create types.  Tidy.
1282         * expr.c (vector_mode_valid_p): Use scalar_mode_supported_p.
1283
1284         * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New.
1285         (TARGET_SCALAR_MODE_SUPPORTED_P): New.
1286
1287 2004-08-25  Richard Henderson  <rth@redhat.com>
1288
1289         * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't
1290         set REAL_MODE_FORMAT for TFmode.
1291
1292 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
1293
1294         * c-decl.c (grokparm): New function.
1295         * c-tree.h (grokparm): New prototype.
1296
1297 2004-08-25  Andrew MacLeod  <amacleod@redhat.com>
1298
1299         * tree-ssa-operands.h (struct ssa_operand_iterator_d): New.  SSA operand
1300         iterator controlling structure.
1301         (SSA_OP_USE, SSA_OP_DEF, SSA_OP_VUSE, SSA_OP_VMAYUSE, SSA_OP_VMAYDEF,
1302         SSA_OP_VMUSTDEF, SSA_OP_VIRTUAL_USES, SSA_OP_VIRTUAL_DEFS,
1303         SSA_OP_ALL_USES, SSA_OP_ALL_DEFS, SSA_OP_ALL_OPERANDS): New.  Operand
1304         iterator flags.
1305         (FOR_EACH_SSA_TREE_OPERAND): New.  Iterate over operands as trees.
1306         (FOR_EACH_SSA_USE_OPERAND): New.  Iterate over operands as uses.
1307         (FOR_EACH_SSA_DEF_OPERAND): New.  Iterate over operands as defs.
1308         (FOR_EACH_SSA_MAYDEF_OPERAND): New.  Iterate over V_MAY_DEFs.
1309         * tree-ssa-operands.c (NULL_DEF_OPERAND_P, NULL_USE_OPERAND_P): New.
1310         Empty operand pointers.
1311         * tree-flow-inline.h (op_iter_done): New.  Return true if finished.
1312         (op_iter_next_use): New.  Return next use_operand_p.
1313         (op_iter_next_def): New.  Return next def_operand_p.
1314         (op_iter_next_tree): New.  Return next operands as a tree.
1315         (op_iter_init): New.  Initialize an iterator structure.
1316         (op_iter_init_use): New.  Initialize structure and get the first use.
1317         (op_iter_init_def): New.  Initialize structure and get the first def.
1318         (op_iter_init_tree): New.  Initialize structure and get the first tree.
1319         (op_iter_next_maydef): New.  Return next V_MAY_DEF operands.
1320         (op_iter_init_maydef): New.  Initialize structure and get the first
1321         V_MAY_DEF operands.
1322         * tree-cfg.c (tree_duplicate_bb): Use new operand iterator.
1323         * tree-dfa.c (compute_immediate_uses_for_stmt,
1324         redirect_immediate_uses): Use new operand iterator.
1325         (v_may_defs_disappeared_p, v_must_defs_disappeared_p): Delete.
1326         (mark_new_vars_to_rename): Use new operand iterator.  Count virtual
1327         operands instead of using *_disappeared_p routines.
1328         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites, rewrite_stmt,
1329         ssa_rewrite_stmt): Use new operand iterator.
1330         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
1331         rewrite_trees): Use new operand iterator.
1332         * tree-pretty-print.c (dump_vops): Use new operand iterator.
1333         * tree-sra.c (mark_all_v_defs): Use new operand iterator.
1334         * tree-ssa-alias.c (compute_points_to_and_addr_escape,
1335         dump_points_to_info): Use new operand iterator.
1336         * tree-ssa-ccp.c (cp_lattice_meet, visit_stmt, initialize,
1337         replace_uses_in, replace_vuse_in, likely_value, set_rhs): Use new
1338         operand iterator.
1339         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary,
1340         propagate_necessity): Use new operand iterator.
1341         * tree-ssa-dom.c (cprop_into_stmt, optimize_stmt): Use operand iterator.
1342         (register_definitions_for_stmt): Use new operand iterator.  Take stmt as
1343         a parameter instead of a stmt_ann_t.
1344         * tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry,
1345         build_tree_conflict_graph): Use new operand iterator.
1346         * tree-ssa-loop-im.c (determine_max_movement, single_reachable_address,
1347         rewrite_mem_refs): Use new operand iterator.
1348         * tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
1349         check_loop_closed_ssa_use): Use new operand iterator.
1350         * tree-ssa.c (verify_ssa, replace_immediate_uses): Use operand iterator.
1351         * tree-ssanames.c (release_defs): Use new operand iterator.
1352         * tree-vectorizer.c (vect_create_data_ref): Use new operand iterator.
1353
1354 2004-08-25  Adam Nemet  <anemet@lnxw.com>
1355
1356         * tlink.c (initial_cwd): New variable.
1357         (tlink_init): Initialize it.
1358         (recompile_files): Use tlink_execute() instead of system().  Don't
1359         duplicate verbose output of collect_execute.  Restore initial_cwd.
1360         Update comment before the function.
1361
1362 2004-08-25  Ziemowit Laski  <zlaski@apple.com>
1363
1364         * c-typeck.c (build_c_cast): In ObjC, always preserve (and silently
1365         accept) a cast from one Objective-C pointer type to another.
1366
1367 2004-08-25  Paolo Carlini  <pcarlini@suse.de>
1368
1369         * doc/install.texi: Document that libstdc++-v3 requires
1370         now automake 1.9.1.
1371
1372 2004-08-25  Caroline Tice  <ctice@apple.com>
1373
1374         * bb-reorder.c (partition_hot_cold_basic_blocks):  Add more details
1375         to comments at start of function.
1376         * cfgbuild.c (make_edges):  Add more details to hot/cold partitioning
1377         comment.
1378         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
1379         merge_blocks_move_predecessor_nojumps,
1380         merge_blocks_move_successor_nojumps, merge_blocks_move,
1381         try_crossjump_to_edge, try_crossjump_bb): Likewise.
1382         * cfglayout.c (fixup_reorder_chain): Likewise.
1383         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
1384         cfg_layout_can_merge_blocks_p):  Likewise.
1385         * ifcvt.c (find_if_case_1, find_if_case_2): Likewise.
1386         * passes.c (rest_of_compilation): Update comments for calling
1387         optimization that partitions hot/cold basic blocks.
1388         * doc/invoke.texi:  Update documentation of
1389         freorder-blocks-and-partition flag.
1390
1391 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
1392
1393         * config/mips/mips.md (reg): Renamed mode attribute from ccreg.
1394         (*mov*_on_*): Adjust accordingly.  Add an explicit MOVECC: prefix.
1395
1396 2004-08-25  Richard Sandiford  <rsandifo@redhat.com>
1397
1398         * config/mips/mips.md (any_shift): New code macro.
1399         (optab, insn): New code attributes.
1400         ({ashl,ashr,lshr}[sd]i3): Redefine using :GPR and any_shift.
1401         Use the standard rather than internal patterns for the MIPS16
1402         double-shift optimization.
1403         (*{ashl,ashr,lshr}[sd]i3): New names for the non-mips16 shift patterns.
1404         Redefine using :GPR and any_shift.
1405         (*{ashl,ashr,lshr}si3_extend): Generalize ashlsi3_internal1_extend
1406         to cover all three shifts.
1407         (*{ashl,ashr,lshr}si3_mips16): New names for the mips16 SImode shifts.
1408         Redefine using any_shift.  Use :GPR and any_shift to combine splitters.
1409         (*{ashl,ashr,lshr}di3_mips16): New names for the mips16 DImode shifts.
1410
1411 2004-08-24  Geoffrey Keating  <geoffk@apple.com>
1412
1413         * gimplify.c (lookup_tmp_var): Separate temporaries when not
1414         optimizing.
1415
1416 2004-08-25  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1417
1418         PR libstdc++/17005 (fix for HP-UX 11.11)
1419         * config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2.
1420         (hppa*-*-hpux*): Consolidate hppa1.0-*-* code.  Rework handling of
1421         tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate.
1422         * config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files.
1423         * config/pa/pa-hpux.h (TARGET_HPUX): Define.
1424         (LINK_SPEC): Handle march=1.0 option.
1425         * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
1426         and _XOPEN_SOURCE_EXTENDED for UNIX 95.
1427         (SUBTARGET_OPTIONS): New define.
1428         (LINK_SPEC): Handle march=1.0 option.
1429         (STARTFILE_SPEC): New define.
1430         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
1431         and _XOPEN_SOURCE_EXTENDED for UNIX 95.  Additionally, predefine
1432         _INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98.
1433         (SUBTARGET_OPTIONS): New define.
1434         (LINK_SPEC): Handle march=1.0 option.
1435         (STARTFILE_SPEC): New define.
1436         * config/pa/pa.c (override_options): Add code to process -munix= option.
1437         * config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare.
1438         (TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default
1439         defines.
1440         (TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list.
1441         (SUBTARGET_OPTIONS): Provide default define.
1442         * config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1,
1443         STANDARD_STARTFILE_PREFIX_2): New defines.
1444         (STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary.
1445         (ENDFILE_SPEC): Use %O.
1446         * doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas.
1447         Mention issue caused by changing namespace and runtime to UNIX 95/98.
1448         * doc/invoke.texi (HPPA options): Move misplaced text to FRV options.
1449         Document -munix=std option.
1450
1451 2004-08-25  Steven Bosscher  <stevenb@suse.de>
1452
1453         * cse.c (cse_around_loop, cse_check_loop_start,
1454         cse_set_around_loop): Remove.
1455         (cse_basic_block): Remove the around_loop argument.
1456         (cse_end_of_basic_block): Remove the after_loop argument.
1457         (cse_main): Likewise.
1458         * rtl.h (cse_main): Update prototype.
1459         * passes.c (rest_of_handle_cse, rest_of_handle_cse2,
1460         rest_of_handle_gcse): Update cse_main calls.
1461
1462 2004-08-25  Nathan Sidwell  <nathan@codesourcery.com>
1463
1464         * tree.h  (build_int_cst): New, sign extended constant.
1465         (build_int_cstu): New, zero extended constant.
1466         (build_int_cst_wide): Renamed from build_int_cst.
1467         * tree.c (build_int_cst, build_int_cstu): New.
1468         (build_int_cst_wide): Renamed from build_int_cst.
1469         (make_vector_type, build_common_tree_nodes,
1470         build_common_tree_nodes_2): Adjust build_int_cst calls.
1471         * builtins.c (expand_builtin_prefetch, expand_builtin_strstr,
1472         expand_builtin_strpbrk, expand_builtin_fputs,
1473         build_string_literal, expand_builtin_printf,
1474         expand_builtin_sprintf, fold_builtin_classify_type,
1475         fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii,
1476         fold_builtin_toascii, fold_builtin_isdigit,
1477         simplify_builtin_strstr, simplify_builtin_strpbrk,
1478         fold_builtin_fputs, simplify_builtin_sprintf): Likewise.
1479         * c-common.c (start_fname_decls, fix_string_type, shorten_compare,
1480         DEF_ATTR_INT): Likewise.
1481         * c-decl.c (complete_array_type, check_bitfield_type_and_width):
1482         Likewise.
1483         * c-lex.c (interpret_integer, lex_charconst): Likewise.
1484         * c-parse.in (primary) <TYPES_COMPATIBLE_P> Likewise.
1485         * c-pretty-print.c (pp_c_integer_constant): Likewise.
1486         * c-typeck.c (really_start_incremental_init, push_init_level,
1487         set_nonincremental_init_from_string): Likewise.
1488         * calls.c (load_register_parameters): Likewise.
1489         convert.c (convert_to_pointer): Likewise.
1490         coverage.c (coverage_counter_alloc, tree_coverage_counter_ref,
1491         build_fn_info_type, build_fn_info_value, build_ctr_info_value,
1492         build_gcov_info): Likewise.
1493         * except.c (init_eh, assign_filter_values): Likewise.
1494         * expmed.c (store_fixed_bit_field, extract_bit_field,
1495         extract_fixed_bit_field, extract_split_bit_field, expand_shift,
1496         expand_mult_const, expand_mult_highpart_adjust, extract_high_half,
1497         expand_sdiv_pow2, expand_divmod, make_tree): Likewise.
1498         * expr.c (convert_move, emit_group_load, emit_group_store,
1499         expand_assignment, store_constructor, store_field,
1500         expand_expr_real_1, reduce_to_bit_field_precision): Likewise.
1501         fold-const.c (force_fit_type, int_const_binop, fold_convert_const,
1502         invert_truthvalue, optimize_bit_field_compare,
1503         decode_field_reference, all_ones_mask_p, constant_boolean_node,
1504         fold_div_compare, fold, fold_read_from_constant_string,
1505         fold_negate_const, fold_abs_const, fold_not_const, round_up,
1506         round_down): Likewise.
1507         * function.c (assign_parm_setup_block): Likewise.
1508         * stmt.c (shift_return_value, expand_case, estimate_case_costs):
1509         Likewise.
1510         * stor-layout.c (layout_type, initialize_sizetypes,
1511         set_min_and_max_values_for_integral_type): Likewise.
1512         * tree-chrec.c (chrec_fold_multiply_poly_poly,
1513         reset_evolution_in_loop): Likewise.
1514         * tree-chrec.h (build_polynomial_chrec): Likewise.
1515         * tree-complex.c (build_replicated_const): Likewise.
1516         * tree-eh.c (honor_protect_cleanup_actions,
1517         lower_try_finally_onedest, lower_try_finally_copy,
1518         lower_try_finally_switch): Likewise.
1519         * tree-mudflap.c (mf_build_string, mx_register_decls,
1520         mudflap_register_call, mudflap_enqueue_constant): Likewise.
1521         * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise.
1522         * tree-pretty-print.c (dump_generic_node): Likewise.
1523         * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref):
1524         Likewise.
1525         * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise.
1526         * tree-ssa-loop-niter.c (number_of_iterations_cond,
1527         loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type):
1528         Likewise.
1529         * tree-ssa-loop-ivcanon.c (create_canonical_iv,
1530         canonicalize_loop_induction_variables): Likewise.
1531         * tree-vectorizer.c (vect_create_index_for_array_ref,
1532         vect_transform_loop_bound, vect_compute_data_ref_alignment):
1533         Likewise.
1534
1535         * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start,
1536         alpha_gimplify_va_arg_1): Likewise.
1537         * config/arm/arm.c (arm_get_cookie_size): Likewise.
1538         * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise.
1539         * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise.
1540         * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
1541         * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start,
1542         mips_gimplify_va_arg_expr): Likewise.
1543         * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
1544         * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg,
1545         add_compiler_branch_island): Likewise.
1546         * config/s390/s390.c (s390_va_start): Likewise.
1547         * config/sh/sh.c (sh_va_start): Likewise.
1548         * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
1549         Likewise.
1550         * config/xtensa/xtensa.c (xtensa_va_start,
1551         xtensa_gimplify_va_arg_expr): Likewise.
1552
1553         * objc/objc-act.c (build_objc_string_object,
1554         build_objc_symtab_template, init_def_list, init_objc_symtab,
1555         init_module_descriptor, generate_static_references,
1556         build_selector_translation_table, get_proto_encoding,
1557         build_typed_selector_reference, build_selector_reference,
1558         build_next_objc_exception_stuff,
1559         build_method_prototype_list_template, generate_descriptor_table,
1560         generate_protocols, build_protocol_initializer,
1561         build_ivar_list_template, build_method_list_template,
1562         build_ivar_list_initializer, generate_ivars_list,
1563         generate_dispatch_table, generate_protocol_list,
1564         build_category_initializer, build_shared_structure_initializer,
1565         generate_shared_structures, handle_impent,
1566         generate_objc_image_info): Likewise.
1567
1568 2004-04-25  Paolo Bonzini  <bonzini@gnu.org>
1569
1570         * cfglayout.c (duplicate_insn_chain): Remove references to
1571         NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT.
1572         * cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator.
1573         * cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT.
1574         * final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP
1575         and NOTE_INSN_LOOP_CONT.
1576         * insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove.
1577         * jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP
1578         and NOTE_INSN_LOOP_CONT.
1579         * loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop,
1580         check_dbra_loop, loop_dump_aux): Remove references to removed notes
1581         and fields.
1582         * reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs.
1583         * unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove
1584         references to removed notes and fields.
1585         (subtract_reg_term, ujump_to_loop_cont): Remove.
1586
1587 2004-08-25  Paolo Bonzini  <bonzini@gnu.org>
1588
1589         * doc/install.texi: Document that libcpp does not require
1590         Automake any longer.  Document that Automake 1.9.1 should
1591         work everywhere.
1592
1593 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
1594
1595         * flags.h (enum debug_info_type): Remove DWARF_DEBUG.
1596         * defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for
1597         DWARF_DEBUGGING_INFO from choice-of-definition chain;
1598         restructure using C89 features (#elif, #error).
1599         * c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c
1600         * config/sh/sh.h: Remove references to DWARF_DEBUG.
1601         * doc/invoke.texi: Remove references to DWARF version 1;
1602         clarify why -gdwarf-2<n> doesn't work.
1603
1604 2004-08-25  Zack Weinberg  <zack@codesourcery.com>
1605
1606         * basic-block.h (BB_SET_PARTITION): Clear old value first.
1607         * cfg.c (clear_bb_flags): Don't clear partition setting.
1608         * ifcvt.c (find_if_case_1): Remove ??? comment.
1609
1610 2004-08-25  Alan Modra  <amodra@bigpond.net.au>
1611
1612         PR target/17052
1613         * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p.
1614         * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use
1615         current_function_stdarg in place of sysv_varargs_p.
1616         * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set
1617         sysv_varargs_p.
1618
1619 2004-08-24  Richard Henderson  <rth@redhat.com>
1620
1621         PR target/16298
1622         * config/i386/i386.c (legitimate_constant_p): Rework to not accept
1623         random codes within CONST.
1624
1625 2004-08-24  James E Wilson  <wilson@specifixinc.com>
1626
1627         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove
1628         -freorder-blocks-and-partition.
1629
1630 2004-08-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1631
1632         PR middle-end/17044
1633         * tree-ssa-threadupdate.c (redirection_data): Make static.
1634         (thread_block): Use ggc_alloc_cleared to allocate struct
1635         redirection_data.  Don't free elements in redirection_data.
1636
1637 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
1638
1639         * config/mips/predicates.md (small_data_pattern): Match prefetches.
1640
1641 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1642
1643         PR tree-optimization/17016
1644         * tree-ssa-loop-niter.c (number_of_iterations_cond,
1645         number_of_iterations_exit): Use POINTER_TYPE_P instead
1646         of testing for POINTER_TYPE.
1647
1648 2004-08-24  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
1649
1650         * tree-ssa-loop-ivcanon.c: New file.
1651         * tree-ssa-loop-manip.c (create_iv): New function.
1652         * Makefile.in (tree-ssa-loop-ivcanon.o): Add.
1653         (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency.
1654         * cfgloop.c (mark_single_exit_loops): New function.
1655         (verify_loop_structure): Verify single-exit loops.
1656         * cfgloop.h (struct loop): Add single_exit field.
1657         (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant.
1658         (mark_single_exit_loops): Declare.
1659         (tree_num_loop_insns): Declare.
1660         * cfgloopmanip.c (update_single_exits_after_duplication): New function.
1661         (duplicate_loop_to_header_edge): Use it.
1662         * common.opt (fivcanon): New flag.
1663         * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars.
1664         * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block.
1665         (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc.
1666         (bsi_insert_on_edge_immediate): New function.
1667         * tree-flow.h (bsi_insert_on_edge_immediate,
1668         canonicalize_induction_variables, tree_unroll_loops_completely,
1669         create_iv): Declare.
1670         * tree-optimize.c (init_tree_optimization_passes): Add
1671         pass_iv_canon and pass_complete_unroll.
1672         * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare.
1673         * tree-scalar-evolution.c (get_loop_exit_condition,
1674         get_exit_conditions_rec, number_of_iterations_in_loop,
1675         scev_initialize): Use single_exit information.
1676         * tree-ssa-loop-niter.c (number_of_iterations_cond): Record
1677         missing assumptions.
1678         (loop_niter_by_eval):  Return number of iterations as unsigned
1679         int.
1680         * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops.
1681         (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon,
1682         tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll):
1683         New passes.
1684         (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates.
1685         * tree-ssanames.c (make_ssa_name): Allow creating ssa name before
1686         the defining statement is ready.
1687         * tree-vectorizer.c (vect_create_iv_simple): Removed.
1688         (vect_create_index_for_array_ref, vect_transform_loop_bound):
1689         Use create_iv.
1690         (vect_transform_loop_bound): Use single_exit information.
1691         (vect_analyze_loop_form): Cleanup bogus tests.
1692         (vectorize_loops): Do not call flow_loop_scan.
1693         * tree.h (may_negate_without_overflow_p): Declare.
1694         * fold-const.c (may_negate_without_overflow_p): Split out from ...
1695         (negate_expr_p): ... this function.
1696         (tree_expr_nonzero_p): Handle overflowed constants correctly.
1697         * doc/invoke.texi (-fivcanon): Document.
1698         * doc/passes.texi: Document canonical induction variable creation.
1699
1700 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
1701
1702         * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete.
1703         * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t,
1704         using the mode of the operand to decide between them.
1705         * config/mips/mips.md (MOVECC): New mode macro.
1706         (ccreg): New mode attribute.
1707         (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns.
1708         Redefine using :GPR and :MOVECC.  Use %T and %t for the condition.
1709         (mov[sd]icc): Redefine using :GPR.
1710
1711 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
1712
1713         * config/mips/mips-protos.h (mips_emit_prefetch): Delete.
1714         (mips_prefetch_cookie): New function.
1715         * config/mips/mips.c (print_operand_address): Fix handling of
1716         ADDRESS_CONST_INT.
1717         (mips_emit_prefetch): Delete.
1718         (mips_prefetch_cookie): New function.
1719         * config/mips/mips.md (prefetch): Turn into a define_insn.  Use a
1720         mode of QImode for the address_operand.  Use mips_prefetch_cookie
1721         to calculate the first "pref" operand.
1722         (prefetch_[sd]i, prefetch_[sd]i_address): Delete.
1723         (prefetch_indexed_[sd]i): Redefine using :P.  Use mips_prefetch_cookie.
1724
1725 2004-08-24  Richard Earnshaw  <rearnsha@arm.com>
1726
1727         * arm.md: Include predicates.md.
1728         * predicates.md: New file.
1729         * arm.c (s_register_operand, arm_hard_register_operand)
1730         (arm_general_register_operand, f_register_operand, reg_or_int_operand)
1731         (arm_immediate_operand, arm_neg_immediate_operand)
1732         (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand)
1733         (arm_add_operand, arm_addimm_operand, arm_not_operand)
1734         (offsettable_memory_operand, alignable_memory_operand)
1735         (arm_reload_memory_operand, arm_float_rhs_operand)
1736         (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand)
1737         (index_operand, shiftable_operator, logical_binary_operator)
1738         (shift_operator, equality_operator, arm_comparison_operator)
1739         (minmax_operator, cc_register, dominant_cc_register)
1740         (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand)
1741         (di_operand, nonimmediate_soft_df_operand, soft_df_operand)
1742         (const_shift_operand, load_multiple_operation)
1743         (store_multiple_operation, multi_register_push, thumb_cmp_operand)
1744         (thumb_cmpneg_operand, thumb_cbrch_target_operand)
1745         (cirrus_register_operand, cirrus_fp_register)
1746         (cirrus_shift_const): Delete, replaced with equivalents in
1747         predicates.md.
1748         (shift_op): Handle ROTATE.
1749         * arm-protos.h: Delete declarations for above.
1750         * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete.
1751         * t-arm (MD_INCLUDES): Add predicates.md.
1752         (s-preds): Depends on MD_INCLUDES.
1753
1754 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
1755
1756         * config/mips/mips.c (mips_gen_conditional_trap): Fix mode.
1757         * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed
1758         patterns.  Redefine using :GPR.  Give the match_operator a mode.
1759         Use '%2' rather than '%z2' for operand 2.
1760
1761 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
1762
1763         * config/mips/mips.md (load_call[sd]i): Redefine using :P.  Add mode
1764         attribute.
1765
1766 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
1767
1768         * config/mips/mips.md (indirect_jump): Use force_reg.  Adjust names
1769         of internal patterns.
1770         (indirect_jump[sd]i): Renamed from indirect_jump_internal[12].
1771         Redefine using :P.
1772         (tablejump): Use expand_binop to calculate address.  Adjust names
1773         of internal patterns.
1774         (tablejump[sd]i): Renamed from tablejump_internal[12].
1775         Redefine using :P.
1776         (tablejump_mips16[12]): Delete.
1777
1778 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
1779
1780         * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i)
1781         (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i)
1782         (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i)
1783         (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16)
1784         (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR.
1785
1786 2004-08-24  Richard Sandiford  <rsandifo@redhat.com>
1787
1788         * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR.
1789         (*branch_zero[sd]i): Renamed from branch_zero{,_di}.  Redefine
1790         using :GPR.
1791         (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted.
1792         (*branch_equality[sd]i): Likewise branch_equality{,_di}.
1793         (*branch_equality[sd]i_inverted): Likewise
1794         branch_equality{,_di}_inverted.
1795         (*branch_equality[sd]i_mips16): Name formerly unnamed patterns.
1796         Redefine using :GPR.
1797
1798 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
1799
1800         * rtl.def: Reorganize, placing all codes used only in machine
1801         descriptions at the end.
1802
1803         * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE.
1804         * gengtype.c: Don't include rtl.h.  Define enum rtx_code and
1805         rtx_name, rtx_format arrays by direct reference to rtl.def,
1806         first undefining GENERATOR_FILE.  Define enum insn_note and
1807         note_insn_name array by direct reference to insn-notes.def.
1808         (adjust_field_rtx_def): Remove local definition of rtx_name.
1809         Use symbolic names for insn notes.
1810         * Makefile.in (gengtype.o): Update dependencies.
1811
1812 2004-08-24  Zack Weinberg  <zack@codesourcery.com>
1813
1814         * basic-block.h (struct basic_block_def): Reorder fields to
1815         eliminate interior padding.  Remove 'partition' field.
1816         (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION)
1817         (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION)
1818         (BB_COPY_PARTITION): New macros.
1819         * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c
1820         Replace all references to the 'partition' field of a basic
1821         block with new macros.
1822
1823         * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
1824         * final.c (final_scan_insn): Don't handle it.
1825         * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb
1826         instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note.
1827         * sched-rgn.c (sched_is_disabled_for_current_region_p):
1828         Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note.
1829
1830 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
1831
1832         * c-decl.c (c_init_decl_processing): Adjust
1833         build_common_tree_nodes call.
1834         * expmed.c (const_mult_add_overflow_p): Use
1835         build_distinct_type_copy.
1836         * stor-layout.c (early_type_list): Remove.
1837         (layout_type): Don't append to early_type_list.
1838         (initialize_sizetypes): Add signed_p argument.
1839         (set_sizetype): Overwrite the stub type nodes directly.
1840         * tree.c (copy_node_stat): Clear a type's value cache here ...
1841         (build_distinct_type): ... not here.
1842         (build_common_tree_nodes): Add signed_sizetype argument. Adjust.
1843         * tree.h (initialize_sizetypes): Add signed_p argument.
1844         (build_common_tree_nodes): Likewise.
1845
1846         * objc/objc-act.c (get_static_reference): Use
1847         build_variant_type_copy.
1848         (get_protocol_reference): Likewise.
1849         * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE.
1850
1851 2004-08-24  Richard Henderson  <rth@redhat.com>
1852             Andrew Pinski  <apinski@apple.com>
1853
1854         * gimplify.c (gimplify_array_ref_to_plus): Delete.
1855         (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus
1856         for ARRAY_REF.
1857
1858         * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed
1859         ARRAY_REF also to get to the STRING_CST.
1860
1861 2004-08-24  Paul Brook  <paul@codesourcery.com>
1862
1863         * config/arm/arm.c (arm_override_options): Update error message.
1864         * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to
1865         TARGET_HARD_FLOAT_ABI.
1866         (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT.
1867         (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI.
1868
1869 2004-08-24  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
1870
1871         PR target/17093
1872         * config/m32r.md (movsi_sda): Add SI mode specification to
1873         UNSPEC.
1874
1875 2004-08-24  Nick Clifton  <nickc@redhat.com>
1876
1877         * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition
1878         of seth_add3_operand.
1879
1880 2004-08-24  Nathan Sidwell  <nathan@codesourcery.com>
1881
1882         * Makefile.in (PROTO_OBJS): Add errors.o.
1883         * protoize.c (fancy_abort): Remove.
1884         * mips-tfile.c (fancy_abort): Add parameters.
1885
1886 2004-08-24  Jonathan Wakely  <redi@gcc.gnu.org>
1887
1888         * doc/trouble.texi (C++ misunderstandings): Fix example code.
1889
1890 2004-08-24  Andreas Tobler  <a.tobler@schweiz.ch>
1891
1892         * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H.
1893         (host-default.o): Add dependency on HOOKS_H.
1894         * config/x-linux: Likewise.
1895         * config/x-solaris: Likewise.
1896         * config/i386/x-mingw32: Likewise.
1897         * config/rs6000/x-darwin: Likewise.
1898
1899 2004-08-23  James E Wilson  <wilson@specifixinc.com>
1900
1901         * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to
1902         DEF_REG_NOTE.
1903
1904 2004-08-23  Mark Mitchell  <mark@codesourcery.com>
1905
1906         PR c/14492
1907         * dwarf2out.c (loc_descriptor_from_tree): Robustify.
1908
1909 2004-08-23  Diego Novillo  <dnovillo@redhat.com>
1910
1911         * cfg.c (check_bb_profile): Fix typos.
1912         * function.c (assign_parm_is_stack_parm): Likewise.
1913         * tree-nested.c: Likewise.
1914
1915 2004-08-23  Daniel Jacobowitz  <dan@debian.org>
1916
1917         * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE.
1918         Remove TYPECODE.
1919         (ggc_alloc_zone_1): Mark TYPE as unused.  Don't save it in the chunk.
1920
1921 2004-08-23  Eric Christopher  <echristo@redhat.com>
1922
1923         * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro.
1924         * system.h (VECTOR_MODE_SUPPORTED_P): Poison.
1925         * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define.
1926         * target.h: Ditto.
1927         * hooks.h: Include machmode.h.
1928         (hook_bool_mode_false): Declare.
1929         * hooks.c (hook_bool_mode_false): Define.
1930         * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p.
1931         * stor-layout.c (layout_type): Ditto.
1932         * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function.
1933         Define to target macro.
1934         * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete.
1935         * config/arm/arm.c: Ditto. Use.
1936         * config/arm/arm.h: Ditto.
1937         * config/arm/arm-protos.h: Ditto.
1938         * config/i386/i386.c: Ditto.
1939         * config/i386/i386.h: Ditto.
1940         * config/rs6000/rs6000.c: Ditto.
1941         * config/rs6000/rs6000.h: Ditto.
1942         * config/sh/sh.c: Ditto.
1943         * config/sh/sh.h: Ditto.
1944         * config/sh/sh-protos.h: Ditto.
1945         * config/sh/sh.md: Use.
1946         * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P
1947         to TARGET_VECTOR_MODE_SUPPORTED_P.
1948
1949 2004-08-23  Nathan Sidwell  <nathan@codesourcery.com>
1950
1951         * Makefile.in (BUILD_ERRORS): Set to build-errors.
1952         (errors.o): New target for host.
1953         (build-errors.o): New target for build.
1954         (genobjs): Replace errors.o with build-errors.
1955         (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS).
1956         (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o.
1957         (fix-headers$(build_exeext)): Add $(BUILD_ERRORS).
1958         (fix-header.o): Add errors.h
1959         * collect2.c (fancy_abort): Add parameters.
1960         * collect2.h (fancy_abort): Don't declare.
1961         * errors.h (fancy_abort): Don't declare.
1962         * errors.c: Include either bconfig.h or config.h.
1963         (fancy_abort): Trim filename.
1964         * fix-header.c (v_fatal, fatal): Remove.
1965         (progname): Remove definition.
1966         (main): Set progname here.
1967         * gcc.c (fancy_abort): Add parameters.
1968         * gcc.h (fancy_abort): Remove declaration.
1969         * gcov.c (fancy_abort): Remove.
1970         * rtl.h (fancy_abort): Don't declare.
1971         (abort): Don't define.
1972         * tree.h (fancy_abort): Don't declare.
1973         (abort): Don't define.
1974         * system.h (fancy_abort): Declare.
1975         (abort): Define to fancy_abort.
1976         * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o
1977
1978         * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE.
1979         (usize_type, ubitsizetype): Remove.
1980         * stor-layout.c (set_sizetype): Don't initialize usizetype,
1981         ubitsizetype.
1982         * fold-const.c (size_diffop): TYPE can never be ubitsizetype.
1983
1984         * tree.h (build_distinct_type_copy): New.
1985         (build_type_copy): ... here.  Rename to ...
1986         (build_variant_type_copy): ... here.
1987         * tree.c (build_qualified_type): Rename build_type_copy call.
1988         (build_distinct_type_copy): New, broken out of ...
1989         (build_type_copy): ... here.  Rename to ...
1990         (build_variant_type_copy): ... here.  Use
1991         build_distinct_type_copy.
1992         (build_common_tree_nodes_2): Rename build_type_copy call.
1993         * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy
1994         call.
1995         (handle_packed_attribute, handle_unused_attribute,
1996         handle_transparanet_union_attribute, handle_aligned_attribute,
1997         handle_deprecated_attribute): Likewise.
1998         * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle):
1999         Likewise.
2000         * config/arm/arm.c (arm_handle_isr_attribyte): Likewise.
2001         * config/rs6000/rs6000.c (rs6000_init_builtins): Use
2002         build_distinct_type_copy.
2003
2004 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2005
2006         * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR.  Add mode
2007         attribute.
2008
2009 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2010
2011         * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed
2012         loads and stores.
2013         (*lwxc1_<mode>, *ldxc1_<mode>, *swxc1_<mode>, *sdxc1_<mode>): Name
2014         formerly unnamed patterns.  Redefine using :P for the address.  Remove
2015         explicit length attributes.
2016
2017 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2018
2019         * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref):
2020         New functions.
2021         (single_reachable_address): Use them.
2022         (schedule_sm): Add dump.
2023         (is_call_clobbered_ref): New function.
2024         (determine_lsm_reg): Check whether the reference is call clobbered.
2025         Only work for gimple_reg_type values.
2026
2027 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2028
2029         * config/mips/mips.md (*mov<mode>_ra): Name previously unnamed MIPS16
2030         $31 store insns.  Redefine using :GPR.
2031
2032 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2033
2034         * config/mips/mips.md (P): New mode macro.
2035         (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i)
2036         (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P.
2037         Add mode attributes.
2038
2039 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2040
2041         * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of...
2042         (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants.  Shuffle
2043         later constants to cover the gap.
2044         (load, store): New mode attributes.
2045         (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR.
2046         Use new unspec constants.
2047
2048 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2049
2050         * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR.
2051         (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise.  Change 32-bit patterns
2052         to use register_operand rather than uns_arith_operand as the predicate
2053         for operand 1.  Remove redundant MIPS16 force_reg() for operand 1.
2054         (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns.
2055         Redefine using :GPR.  Make same predicate change here.  Extend the
2056         commutativity of operands 1 and 2 from the SImode version to the
2057         DImode one.
2058         (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise,
2059         but with no predicate changes.
2060         (*nor[sd]i3): Redefine using :GPR.
2061
2062 2004-08-23  Zdenek Dvorak  <rakdver@atrey.karlin.mff.cuni.cz>
2063
2064         * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for
2065         noreturn functions.
2066
2067 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2068
2069         * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete.
2070         * config/mips/mips.md (abs[sd]i2): Redefine using :GPR.  Only use
2071         branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY.  Use "%."
2072         rather than "%z2" (with a fake const0_rtx for operand 2).
2073         (ffs[sd]i2): Redefine using :GPR.
2074         (clz[sd]i2): Likewise.  Use ISA_HAS_CLO_CLZ for the 64-bit case.
2075
2076 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2077
2078         * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR.
2079
2080 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2081
2082         * config/mips/mips.md (any_extend): New code macro.
2083         (u, su): New code attributes.
2084         ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000)
2085         ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal)
2086         ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart)
2087         (*{s,u}mul_acc_di): Redefine using any_extend.
2088         (*{,u}muls_di, *{s,u}msac_di): Likewise.  Change names of patterns
2089         to reflect real insn names.
2090         (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator
2091         with an any_extend template.
2092         ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend.
2093         Add '*' to name.
2094
2095 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2096
2097         * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD.
2098         * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal)
2099         (mul[sd]i3_r4000): Redefine using :GPR.
2100         (mulsi3_mult3): Don't check TARGET_MAD separately.
2101         (muldi3_mult3): Moved after mulsi_mult3.
2102
2103 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2104
2105         * config.gcc (mips-*-*): Remove definitions of MASK_GAS and
2106         OBJECT_FORMAT_ELF.  Set MASK_SPLIT_ADDR by default if using GNU ld.
2107         * config/mips/mips.h (MASK_GAS): Delete.  Shuffle later masks down.
2108         (TARGET_GAS, TARGET_MIPS_AS): Delete.
2109         (TARGET_GPWORD): Define to true for n32 on IRIX.
2110         (TARGET_SWITCHES): Remove -mmips-as.  Turn -mgas into a no-op.
2111         (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete.
2112         (GAS_ASM_SPEC): Delete, folding into ASM_SPEC.
2113         (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete.
2114         (MDEBUG_ASM_SPEC): Delete, folding into...
2115         (SUBTARGET_ASM_DEBUGGING_SPEC): ...here.
2116         (ASM_SPEC): Inline old GAS_ASM_SPEC.  Use GNU names for ABI switches.
2117         (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec,
2118         subtarget_mips_as_asm_spec, mdebug_asm_spec.  Use MULTILIB_ABI_DEFAULT
2119         to define asm_abi_default_spec.
2120         (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete.
2121         (TARGET_ASM_SELECT_SECTION): Delete.
2122         * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0
2123         for non-mips16 code, removing previous workaround for SGI assemblers.
2124         (TARGET_ASM_INTEGER, mips_assemble_integer): Delete.
2125         (TARGET_ASM_ALIGNED_DI_OP): Define this instead.
2126         (override_options): Remove !TARGET_GAS and !have_named_sections code.
2127         (print_operand): Fold TARGET_GAS conditionals into asm strings.
2128         (mips_output_filename): Remove !TARGET_GAS code.  Replace use of
2129         ASM_STABS_OP and ASM_STABN_OP.
2130         (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks.
2131         (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler.
2132         (mips_output_function_prologue): Remove !TARGET_GAS code.
2133         (mips_select_rtx_section): Remove !have_named_sections code.
2134         (mips_select_section): Delete.
2135         * config/mips/mips.md (trap): Remove !TARGET_GAS check.
2136         * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS.
2137         * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete.
2138         (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional.
2139         * config/mips/vxworks.h (ASM_SPEC): As for mips.h.
2140         * config/mips/windiss.h (ASM_SPEC): Likewise.
2141
2142 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2143
2144         * read-rtl.c (map_value, mapping, macro_group): New structures.
2145         (BELLWETHER_CODE): New macro.
2146         (modes, codes, bellwether_codes): New variables.
2147         (find_mode, uses_mode_macro_p, apply_mode_macro, find_code)
2148         (uses_code_macro_p, apply_code_macro, apply_macro_to_string)
2149         (apply_macro_to_rtx, uses_macro_p, add_condition_to_string)
2150         (add_condition_to_rtx, apply_macro_traverse, add_mapping)
2151         (add_map_value, initialize_macros): New functions.
2152         (def_hash, def_hash_eq_p): Generalize to anything that points to,
2153         or starts with, a char * field.
2154         (find_macro, read_mapping, check_code_macro): New functions.
2155         (read_rtx_1): New, split out from read_rtx.  Handle the new
2156         define_{mode,code}_{macro,attr} constructs.  Use find_macro
2157         to parse the name of a code or mode.  Use BELLWETHER_CODE to
2158         extract the format and to choose a suitable code for rtx_alloc.
2159         Modify recursive invocations to use read_rtx_1.
2160         (read_rtx): Call initialize_macros.  Apply code and mode macros
2161         to the rtx returned by read_rtx_1.  Cache everything after the
2162         first macro expansion for subsequent read_rtx calls.
2163         * doc/md.texi: Document new .md constructs.
2164         * config/mips/mips.md (GPR): New mode macro.
2165         (d, si8_di5): New mode attributes.
2166         (any_cond): New code macro.
2167         (add[sd]i3): Redefine using :GPR.
2168         (*add[sd]i3): Likewise, renaming from add[sd]i3_internal.
2169         (*add[sd]i3_sp[12], *add<mode>3_mips16): Redefine using :GPR, naming
2170         previously unnamed MIPS16 patterns.
2171         (*addsi3_extended): Renamed from addsi3_internal_2.  Fix overly long
2172         lines.  Don't match (plus (const_int 0) ...).
2173         (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern.
2174         Use a define_split to generate the addition.
2175         (sub[sd]i3): Redefine using :GPR.  Turn subsi3 into a define_insn.
2176         (subsi3_internal): Delete.
2177         (*subsi3_extended): Renamed from subsi3_internal_2.
2178         (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt)
2179         (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine
2180         using an any_cond template.
2181
2182 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2183
2184         * read-rtl.c (read_rtx): Tidy use of format_ptr.
2185
2186 2004-08-23  Richard Sandiford  <rsandifo@redhat.com>
2187
2188         * read-rtl.c (string_obstack): New file-scope variable.
2189         (read_string, read_quoted_string, read_braced_string)
2190         (read_escape): Remove obstack parameter and use string_obstack instead.
2191         (read_rtx): Remove function-local rtl_obstack and initialize
2192         string_obstack instead.  Update call to read_string.
2193
2194 2004-08-22  Andrew Pinski  <apinski@apple.com>
2195
2196         PR c/15262
2197         * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered
2198         expression is not constant.
2199         (c_finish_return): Do not go through INDIRECT_REF when looking
2200         for the inner expression of an ADDR_EXPR for warning about.
2201
2202 2004-08-22  Richard Henderson  <rth@redhat.com>
2203
2204         PR 17075
2205         * cfgexpand.c (expand_gimple_tailcall): Detect when we can both
2206         create new blocks and fall through.
2207         (expand_gimple_basic_block): Update to match.
2208
2209 2004-08-22  Ulrich Weigand  <uweigand@de.ibm.com>
2210
2211         * reload.c (find_reloads_address): Make return value tri-state.
2212         Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded.
2213         (find_reloads): Assume that reloaded addresses match 'o' or
2214         EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address
2215         returned 1 (not -1).  Omit optional reloads for address operands
2216         only if find_reloads_address returned 1 (not -1).
2217
2218         * config/s390/s390.c (legitimize_reload_address): New function.
2219         * config/s390/s390-protos.h (legitimize_reload_address): Declare.
2220         * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define.  Call
2221         legitimize_reload_address.
2222
2223 2004-08-22  Richard Hendersion  <rth@redhat.com>
2224
2225         * tree.h (SAVE_EXPR_RESOLVED_P): New.
2226         * gimplify.c (gimplify_save_expr): Use it.
2227         * expr.c (expand_expr_real_1): Likewise.  Also set DECL_IGNORED_P
2228         on the temporary variable.
2229
2230 2004-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
2231
2232         * fold-const.c (rtl_expr_nonnegative_p): Delete.
2233         * tree.h (rtl_expr_nonnegative_p): Remove.
2234
2235 2004-08-22  Steven Bosscher  <stevenb@suse.de>
2236
2237         * config/i386/ppro.md (ppro_complex_insn): Add missing check
2238         for cpu==pentiumpro.
2239
2240         * combine.c (struct reg_stat): Fix comment typo.
2241
2242 2004-08-22  Joseph S. Myers  <jsm@polyomino.org.uk>
2243
2244         * c-tree.h (c_sizeof_nowarn): Remove.
2245
2246 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
2247
2248         * c-decl.c (set_array_declarator_type): Rename to
2249         set_array_declarator_inner.
2250         (build_c_parm, build_attrs_declarator, build_function_declarator):
2251         New functions.
2252         (make_pointer_declarator): Call build_attrs_declarator.
2253         * c-tree.h (set_array_declarator_type): Rename to
2254         set_array_declarator_inner.
2255         (build_c_parm, build_attrs_declarator, build_function_declarator):
2256         New prototypes.
2257         * c-parse.in (after_type_declarator,
2258         parm_declarator_starttypename, parm_declarator_nostarttypename,
2259         notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm,
2260         firstparm): Use these functions
2261
2262 2004-08-21  Joseph S. Myers  <jsm@polyomino.org.uk>
2263
2264         * c-decl.c (build_array_declarator, set_array_declarator_type,
2265         start_decl, grokdeclarator, grokparms): Change boolean parameters
2266         to type bool.
2267         * c-tree.h (build_array_declarator, set_array_declarator_type,
2268         start_decl): Update prototypes.
2269         * c-decl.c, c-parse.in: All callers changed.
2270
2271 2004-08-21  Mike Stump  <mrs@apple.com>
2272
2273         * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to...
2274         (darwin_fix_and_continue): Likewise.
2275         (darwin_fix_and_continue_switch): Likewise.
2276         * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool.
2277         (darwin_fix_and_continue): Likewise.
2278         (darwin_fix_and_continue_switch): Likewise.
2279
2280 2004-08-21  Danny Smith  <dannysmith@users.sourceforge.net>
2281
2282         PR  c++/16030
2283         * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix):
2284         Remove, merging into ...
2285         (gen_stdcall_or_fastcall_suffix): New function, returning tree
2286         rather than const char*, and accepting additional parameter.
2287         Don't add suffix to '*'-prefixed symbols or variadic functions.
2288         (i386_pe_encode_section_info): Adjust for call to new function.
2289         Call change_decl_assembler_name.
2290
2291 2004-08-20  Mike Stump  <mrs@apple.com>
2292
2293         * config/darwin.c (machopic_indirect_data_reference): Mark
2294         stubs as defined.
2295         * config/386/386.c (darwin_local_data_pic): Add.
2296         (legitimate_constant_p): Reorder so that PLUS handling runs
2297         before darwin_local_data_pic to match the ordering in
2298         legitimate_pic_address_disp_p and so that MINUS runs after
2299         darwin_local_data_pic as otherwise the darwin_local_data_pic
2300         logic can be skipped, which would be very bad.
2301         (legitimate_pic_address_disp_p): Move from from here to
2302         darwin_local_data_pic so it can be reused.
2303
2304 2004-08-21  Alan Modra  <amodra@bigpond.net.au>
2305
2306         * config/rs6000/linux64.h (DOT_SYMBOLS): Define.
2307         (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version.
2308         (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS.
2309         (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise.
2310         (RS6000_ABI_NAME): Define as "linux".
2311         (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols.
2312         * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select
2313         ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT.
2314         * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl.
2315         * config/rs6000/rs6000.c (dot_symbols): New global var.
2316         (rs6000_output_function_entry): New function, modified for
2317         !DOT_SYMBOLS..
2318         (print_operand <case 'z'>): ..extracted from here.
2319         (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS.
2320         (rs6000_output_function_epilogue): Likewise.
2321         (rs6000_elf_declare_function_name): Likewise.
2322         * config/rs6000/rs6000.h (DOT_SYMBOLS): Define.
2323         (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS.
2324         * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE.
2325         * configure: Regenerate.
2326         * config.in: Regenerate.
2327
2328 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
2329
2330         * reload.c (find_reloads_address): Fix thinko in previous change.
2331
2332         * reload.c (find_reloads_address): Reload the sum of a LO_SUM and
2333         a CONST_INT.
2334
2335 2004-08-20  Jakub Jelinek  <jakub@redhat.com>
2336
2337         PR rtl-optimization/17099
2338         * combine.c (force_to_mode): Check if inner_mask has any bits set
2339         outside of GET_MODE (x) instead of op_mode.
2340
2341 2004-08-20  Mark Mitchell  <mark@codesourcery.com>
2342
2343         * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile
2344         fragment.
2345         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo.
2346         (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler.
2347         * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5
2348         architecture.
2349         (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float
2350         configurations.
2351         * config/arm/t-symbian: New file.
2352
2353 2004-08-20  Andrew Pinski  <apinski@apple.com>
2354
2355         * regrename.c (kill_value_regno): ANSIfy.
2356
2357 2004-08-20  Dale Johannesen  <dalej@apple.com>
2358
2359         * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD.
2360
2361 2004-08-20  Daniel Jacobowitz  <dan@debian.org>
2362
2363         * regrename.c (kill_value_one_regno): Renamed from kill_value_regno.
2364         (kill_value_regno): New function, derived from kill_value.
2365         (kill_value): Update.
2366         (copyprop_hardreg_forward_1): Update call to kill_value_regno.
2367
2368 2004-08-20  Daniel Berlin  <dberlin@dberlin.org>
2369
2370         Fix PR tree-optimization/17111
2371         * tree-ssa-pre.c (create_value_expr_from): Don't change the types
2372         of non-value_handles.
2373         (bitmap_set_contains): All constants are in every set.
2374
2375 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
2376
2377         * fold-const.c (round_up, round_down): Use build_int_cst.
2378         Optimize common case.
2379
2380 2004-08-20  Zack Weinberg  <zack@codesourcery.com>
2381             John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2382
2383         * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section,
2384         one_only_data_section): Rename to som_readonly_data_section,
2385         som_one_only_readonly_data_section and som_one_only_data_section.
2386         * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP,
2387         NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete
2388         conditional defines.
2389         (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP,
2390         NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual
2391         string values.
2392         (pa_select_section): Use renamed section functions.
2393         * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS,
2394         SOM_READONLY_DATA_SECTION_FUNCTION,
2395         SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION,
2396         SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION):
2397         Define here ...
2398         * config/pa/som.h: ... not here.
2399         (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP,
2400         ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP,
2401         ONE_ONLY_READONLY_DATA_SECTION_ASM_OP,
2402         ONE_ONLY_DATA_SECTION_ASM_OP): Delete.
2403         (READONLY_DATA_SECTION): Use som_readonly_data_section.
2404
2405 2004-08-20  Nathan Sidwell  <nathan@codesourcery.com>
2406
2407         * fold-const.c (int_const_binop): Don't generate non-overflowing
2408         size-types specially.
2409         (fold_convert_const): Likewise.
2410
2411         * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier,
2412         clear cache on copied sizetype.
2413
2414 2004-08-20  Ben Elliston  <bje@au.ibm.com>
2415
2416         * configure.ac: Don't escape apostrophe in --enable-coverage help.
2417         * configure: Regenerate.
2418
2419 2004-08-20  Danny Smith  <dannysmith@users.sourceforge.net>
2420
2421         PR 5620
2422         * gcc.c (struct stat input_stat): Don't define if
2423         HOST_LACKS_INODE_NUMBERS
2424         (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather
2425         than stat to determine if temp file is same as input file.
2426         * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS.
2427         * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS
2428
2429 2004-08-20  Richard Sandiford  <rsandifo@redhat.com>
2430
2431         * configure.ac (mips*-*-*): Print an error if not using GAS.
2432         * configure: Regenerated.
2433         * doc/install.texi: Remove irix5 bullet from --with-gnu-as.  Remove
2434         comments about buggy MIPSpro assemblers.
2435         * config.gcc (mips-sgi-irix[56]*): Combine stanzas.  Include elfos.h
2436         before mips.h and iris.h after it.  Use t-iris and t-slibgcc-irix.
2437         Use iris5.h only for IRIX 5 configs.  Use iris6.h and t-iris6 for
2438         IRIX 6 configs.  Define IRIX_USING_GNU_LD if using GNU ld.
2439         * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES)
2440         (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC)
2441         (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE)
2442         (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h.
2443         (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor
2444         of more general IRIX 6 definitions.
2445         (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL)
2446         (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions.
2447         (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION)
2448         (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC)
2449         (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
2450         (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER)
2451         (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL)
2452         (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS)
2453         (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS)
2454         (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs.
2455         (LINK_SPEC): Move most of definition to iris.h.
2456         (SUBTARGET_LINK_SPEC): New macro.
2457         (IRIX_STARTFILE_SPEC): Fold into...
2458         (STARTFILE_SPEC): ...here.
2459         (IRIX_ENDFILE_SPEC): Fold into...
2460         (ENDFILE_SPEC): ...here.
2461         * config/mips/iris6.h (TARGET_IRIX5): Remove override.
2462         (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE)
2463         (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP)
2464         (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME)
2465         (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h.
2466         (TARGET_OS_CPP_BUILTINS): Likewise.  Guard IRIX6-specific bits.
2467         (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL)
2468         (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO)
2469         (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX)
2470         (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE)
2471         (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY)
2472         (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC)
2473         (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC)
2474         (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*)
2475         (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP)
2476         (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME)
2477         (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL)
2478         (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs.
2479         (TARGET_IRIX6): Define to 1.
2480         (DRIVER_SELF_SPECS): Define.
2481         (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS.
2482         (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS.
2483         (SUBTARGET_LINK_SPEC): New macro.
2484         (IRIX_STARTFILE_SPEC): Fold into...
2485         (STARTFILE_SPEC): ...here.  Remove !mabi=* case.
2486         (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros.
2487         (LIB_SPEC, LIBGCC_SPEC): Use them.
2488         (LIB_SPEC): Remove !mabi=* case.
2489         (IRIX_ENDFILE_SPEC): Fold into...
2490         (ENDFILE_SPEC): ...here.  Remove !mabi=* case.
2491         * config/mips/mips-protos.h (irix_output_external_libcall): Delete.
2492         * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete.
2493         (TARGET_IRIX6): New macro.
2494         (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition.
2495         (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER)
2496         (LABEL_AFTER_LOC): Delete.
2497         * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END)
2498         (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions.
2499         (mips_build_builtin_va_list): Check TARGET_IRIX6.
2500         (override_options): Remove TARGET_SGI_O32_AS-related code.
2501         (irix_output_external_libcall): Make static.
2502         (mips_output_filename): Avoid use of SET_FILE_NUMBER and
2503         LABEL_AFTER_LOC.
2504         (mips_file_start): Tidy guard for ABI sections.  Remove use of
2505         ABICALLS_ASM_OP; use .abicalls instead.
2506         (mips_output_aligned_decl_common, mips_declare_object_name)
2507         (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS.
2508         (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting
2509         .globl foo .text directives.
2510         (irix_asm_named_section_1, irix_asm_named_section)
2511         (irix_section_align_entry, irix_section_align_htab)
2512         (irix_orig_asm_out_file, irix_section_align_entry_eq)
2513         (irix_section_align_entry_hash, irix_asm_output_align)
2514         (irix_file_start, irix_section_align_1, copy_file_data)
2515         (irix_file_end, irix_section_type_flags): Delete.
2516         * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section.
2517         Use standard section syntax.  Remove protective "jr $31".
2518         (__gcc_fini): Likewise .gcc_fini.
2519         * config/mips/irix-crtn.asm: Adjust sections accordingly.
2520         * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from
2521         iris5gas.h.
2522         * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved
2523         from t-irix-gld.
2524         (EXTRA_MULTILIB_PARTS): Define.
2525         * config/mips/t-iris6: Remove bogus comment.
2526         (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete.
2527         * config/mips/iris5gas.h, config/mips/iris5gld.h,
2528         config/mips/iris6gas.h, config/mips/iris6gld.h,
2529         config/mips/t-iris5-as, config/mips/t-iris5-gas
2530         config/mips/t-irix-gld: Delete.
2531         * config/mips/iris.h: New file.
2532         * config/mips/t-slibgcc-irix: Renamed from t-iris5-6.
2533
2534 2004-08-20  Richard Earnshaw  <rearnsha@arm.com>
2535
2536         * postreload.c (reload_cse_move2add): Allow any condjump, but check
2537         that the implicit set isn't clobbered in the jump insn.
2538
2539 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
2540
2541         * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove.
2542         * optabs.c (init_optabs): Don't check it.
2543         * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define.
2544         * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove.
2545
2546 2004-08-18  Andreas Krebbel  <krebbel1@de.ibm.com>
2547
2548         * config/s390/s390.md (s390_warn_framesize_string)
2549         (s390_warn_dynamic_string, s390_stack_size_string)
2550         (s390_stack_guard_string): New global string variables.
2551         (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size)
2552         (s390_stack_guard): New global variables.
2553         (override_options): Added checks for the new options.
2554         (s390_emit_prologue): Emit stack check and trap code and perform
2555         compile time stack size checking.
2556
2557         * config/s390/s390.h (TARGET_OPTIONS): Added new options
2558         "warn-framesize", "warn-dynamicstack", "stack-size" and
2559         "stack-guard".
2560
2561         * doc/invoke.texi: Added documentation for the new options.
2562
2563 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
2564
2565         * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen
2566         to eliminate warning.
2567         (linear_search_fdes): Declare p as unsigned.
2568         (binary_search_mixed_encoding_fdes): Likewise.
2569         * unwind-dw2.c (get_cie_encoding): Cast argument to strlen
2570         to eliminate warning.
2571         * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing
2572         type cast.
2573
2574 2004-08-19  Ulrich Weigand  <uweigand@de.ibm.com>
2575
2576         * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype.
2577         * config/s390/s390.c (preferred_la_operand_p): Accept two operands
2578         instead of one.  Check for strictly legitimate address.
2579         * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call
2580         to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate.
2581
2582 2004-08-19  Eric Christopher  <echristo@redhat.com>
2583
2584         * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove.
2585         * langhooks.h (unsave_expr_now): Ditto.
2586         * tree.h (unsave_expr_1): Remove prototype.
2587         (lhd_unsave_expr_now): Rename to unsave_expr_now.
2588         * tree-inline.c (unsave_expr_1): Move here
2589         from tree.c. Make static.
2590         (unsave_expr_now): Rename from lhd_unsave_expr_now.
2591         * tree-sra.c: Fix up for rename.
2592         * tree-ssa-copy.c: Ditto.
2593         * tree-eh.c: Ditto.
2594         * tree.c (unsave_expr_1): Move to tree-inline.c.
2595
2596 2004-08-19  Caroline Tice  <ctice@apple.com>
2597
2598         * config/i386/cygming.h (switch_to_section):  Fix typo (change
2599         in_unlikely_text_section to in_unlikely_executed_text).
2600
2601 2004-08-19  Daniel Berlin  <dberlin@dberlin.org>
2602
2603         * vec.h (VEC_lower_bound): New macro.
2604
2605 2004-08-19  Richard Sandiford  <rsandifo@redhat.com>
2606
2607         PR target/16446
2608         * config/mips/mips.c (struct mips_arg_info): Delete num_bytes.
2609         (mips_arg_info): Update accordingly.  Remove common treatment of fpr_p;
2610         treat each ABI separately.  Deal with n32/n64 complex float arguments.
2611         (function_arg): Add associated complex handling here.
2612
2613 2004-08-19  Richard Henderson  <rth@redhat.com>
2614
2615         * config/arm/arm.c (arm_gen_load_multiple): Use
2616         adjust_automodify_address.  Take base memory and offset instead
2617         of unchanging/struct/scalar bits.
2618         (arm_gen_store_multiple): Likewise.
2619         (arm_gen_movmemqi): Use adjust_automodify_address.
2620         * config/arm/arm-protos.h: Update decls.
2621         * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call.
2622         (store_multiple): Similarly.
2623
2624 2004-08-19  J"orn Rennecke <joern.rennecke@superh.com>
2625
2626         * regclass.c (globalize_reg): Update call_really_used_regs.
2627
2628 2004-08-19  Nathan Sidwell  <nathan@codesourcery.com>
2629
2630         * doc/invoke.texi (integer-share-limit): Document.
2631
2632         * tree.h (TYPE_CACHED_VALUES_P): New.
2633         (TYPE_CACHED_VALUES): New.
2634         (TYPE_ORIG_SIZE_TYPE): Adjust.
2635         * tree.def (INTEGER_CST): Update documentation.
2636         * tree.c: Inlcude params.h.
2637         (build_int_cst): Cache small values.
2638         (build_type_copy): Do not copy the value cache.
2639         * c-common.c (c_common_nodes_and_builtins): Add comment, remove
2640         unneeded zeroing.
2641         * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting.
2642         * expmed.c (const_mult_add_overflow_p): Clear type copy's value
2643         cache.
2644         * fold-const.c (force_fit_type): Copy value when setting
2645         overflows.
2646         (int_const_binop): Likewise.
2647         * stor-layout.c: Include params.h
2648         (set_sizetype): Create values cache.
2649         (fixup_unsigned_type): Set UNSIGNED_P before caching any values.
2650         * params.def (PARAM_INTEGER_SHARE_LIMIT): New.
2651         * params.h (INTEGER_SHARE_LIMIT): New.
2652         * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H.
2653
2654 2004-08-19  Paolo Bonzini  <bonzini@gnu.org>
2655
2656         * gimplify.c (gimplify_minimax_expr): Remove.
2657         (gimplify_expr) <MIN_EXPR, MAX_EXPR>: Remove special handling.
2658
2659 2004-08-19  Dorit Naishlos  <dorit@il.ibm.com>
2660
2661         * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace
2662         STACK_BOUDARY with PREFERRED_STACK_BOUNDARY.
2663
2664 2004-08-19  Mark Mitchell  <mark@codesourcery.com>
2665
2666         * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP.
2667
2668 2004-08-18  Andrew Pinski  <apinski@apple.com>
2669
2670         * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty.
2671
2672 2004-08-18  Mark Mitchell  <mark@codesourcery.com>
2673
2674         * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility.
2675         (__aeabi_ul2f): Likewise.
2676
2677 2004-08-18  Richard Henderson  <rth@redhat.com>
2678
2679         * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block
2680         move to rtl completely.
2681         (struct meminsnbuf, xtensa_emit_block_move): Remove.
2682         (xtensa_find_mode_for_size): Remove.
2683         * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove.
2684         * config/xtensa/xtensa.md (movmemsi_internal): Remove.
2685
2686 2004-08-18  Richard Henderson  <rth@redhat.com>
2687
2688         * config/mcore/mcore.c (mode_from_align): Remove DImode.
2689         (block_move_sequence): Rewrite to use adjust_address.
2690         (mcore_expand_block_move): Cleanup logic.  Accept only operands.
2691         Return boolean indicating success/failure.
2692         * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl.
2693         * config/mcore/mcore.md (movmemsi): Update to match.
2694
2695 2004-08-18  Mike Stump  <mrs@apple.com>
2696
2697         * doc/invoke.texi (-mfix-and-continue): Add support for
2698         fast turn around debugging.
2699         (-ffix-and-continue): Likewise.
2700         (-mindirect-data): Likewise.
2701         (-findirect-data): Likewise.
2702         * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise.
2703         (indirect_data): Likewise.
2704         (machopic_data_defined_p): Likewise.
2705         (machopic_output_indirection): Likewise.
2706         (darwin_encode_section_info): Likewise.
2707         (darwin_fix_and_continue): Likewise.
2708         (darwin_fix_and_continue_switch): Likewise.
2709         * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise.
2710         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise.
2711         (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise.
2712         (SUBTARGET_OPTIONS): Likewise.
2713         (darwin_fix_and_continue): Likewise.
2714         (darwin_fix_and_continue_switch): Likewise.
2715         (TARGET_FIX_AND_CONTINUE): Likewise.
2716         * config/rs6000.c (rs6000_emit_prologue): Likewise.
2717
2718 2004-08-19  Steven Bosscher  <stevenb@suse.de>
2719
2720         * basic-block.h (struct edge_def): Remove crossing_edge.
2721         (EDGE_CROSSING): New define.
2722         (EDGE_ALL_FLAGS): Update.
2723         * bb-reorder.c (find_traces_1_round, better_edge_p,
2724         find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges,
2725         find_jump_block, fix_crossing_conditional_branches,
2726         fix_crossing_unconditional_branches, add_reg_crossing_jump_notes):
2727         Replace all occurences of crossing_edge with an edge flag check
2728         or set/reset.
2729         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
2730         try_crossjump_bb): Likewise.
2731         * cfglayout.c (fixup_reorder_chain): Likewise.
2732         * cfgrtl.c (force_nonfallthru_and_redirect,
2733         commit_one_edge_insertion): Likewise.
2734
2735         * Makefile.in (cfganal.o): Depend on TIMEVAR_H.
2736         * tree-flow.h (compute_dominance_frontiers): Move prototype...
2737         * basic-block.h:  ...here.
2738         * tree-cfg.c (compute_dominance_frontiers_1,
2739         compute_dominance_frontiers): Move from here...
2740         * cfganal.c: ...to here.  Include timevar.h.
2741
2742 2004-08-18  James E Wilson  <wilson@specifixinc.com>
2743
2744         * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=.
2745         * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes.
2746
2747         * config/mips/mips.md (type): Add frdiv.
2748         (divsf3+1, divsf3+2): Change type to frdiv.
2749         * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe,
2750         ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New.
2751
2752         * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv.
2753         * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise.
2754         * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise.
2755         * config/mips/5000.md (r5k_fdiv_single): Likewise.
2756         * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise.
2757         * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise.
2758         * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise.
2759         * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise.
2760         * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise.
2761         * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double):
2762         Likewise.
2763         * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise.
2764
2765 2004-08-18  Robert Bowdidge <bowdidge@apple.com>
2766
2767         * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to
2768         get regression tester working again.
2769
2770 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
2771
2772         * insn-notes.def, reg-notes.def: New files.
2773         * rtl.h: Use them to define enum insn_note and enum reg_note.
2774         * rtl.c: Use them to define note_insn_name and reg_note_name.
2775         * Makefile.in (RTL_BASE_H): Update.
2776
2777         * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK
2778         renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK.
2779
2780 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
2781
2782         * arm.c (arm_size_rtx_costs): New function.
2783         (arm_override_options): Use it if optimizing for space.
2784
2785 2004-08-18  Richard Henderson  <rth@redhat.com>
2786
2787         * emit-rtl.c (gen_const_mem): New.
2788         * rtl.h (gen_const_mem): Declare.
2789         * expr.c (do_tablejump): Use it.
2790         * varasm.c (force_const_mem): Likewise.
2791         * config/darwin.c (machopic_indirect_data_reference): Likewise.
2792         (machopic_legitimize_pic_address): Likewise.
2793         * config/arm/arm.c (legitimize_pic_address): Likewise.
2794         * config/i386/i386.c (legitimize_pic_address): Likewise.
2795         (legitimize_tls_address): Likewise.
2796         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
2797         * config/ia64/ia64.md (load_fptr): Likewise.
2798         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
2799         * config/pa/pa.c (legitimize_pic_address): Likewise.
2800         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
2801         (rs6000_emit_move): Likewise.
2802         * config/s390/s390.c (legitimize_pic_address): Likewise.
2803         (legitimize_tls_address): Likewise.
2804         * config/s390/s390.md (casesi): Likewise.
2805         * config/sh/sh.c (sh_reorg): Likewise.
2806         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
2807         * config/v850/v850.md (casesi): Likewise.
2808
2809         * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P.
2810         * config/sh/sh.c (prepare_move_operands): Remove incorrect
2811         use of MEM_READONLY_P.
2812
2813 2004-08-18  Steven Bosscher  <stevenb@suse.de>
2814
2815         * Makefile.in (OBJS-common): Add postreload-gcse.c.
2816         Add new postreload-gcse.o.
2817         * cse.c (SAFE_HASH): Define as wrapper around safe_hash.
2818         (lookup_as_function, insert, rehash_using_reg, use_related_value,
2819         equiv_constant): Use SAFE_HASH instead of safe_hash.
2820         (exp_equiv_p): Export.  Add for_gcse argument when comparing
2821         for GCSE.
2822         (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr,
2823         find_comparison_args, fold_rtx, cse_insn): Update callers.
2824         (hash_rtx): New function derived from old canon_hash and bits
2825         from gcse.c hash_expr_1.
2826         (canon_hash_string): Rename to hash_rtx_string.
2827         (canon_hash, safe_hash): Make static inline.  Call hash_rtx.
2828         * cselib.c (hash_rtx): Rename to cselib_hash_rtx.
2829         (cselib_lookup): Update this caller.
2830         * gcse.c (modify_mem_list_set, canon_modify_mem_list_set):
2831         Make static.
2832         (hash_expr): Call hash_rtx.
2833         (ldst_entry): Likewise.
2834         (expr_equiv_p): Call exp_equiv_p.
2835         (struct unoccr, hash_expr_1, hash_string_1, lookup_expr,
2836         reg_used_on_edge, reg_set_between_after_reload_p,
2837         reg_used_between_after_reload_p, get_avail_load_store_reg,
2838         is_jump_table_basic_block, bb_has_well_behaved_predecessors,
2839         get_bb_avail_insn, hash_scan_set_after_reload,
2840         compute_hash_table_after_reload,
2841         eliminate_partially_redundant_loads, gcse_after_reload,
2842         get_bb_avail_insn, gcse_after_reload_main): Remove.
2843         * postreload-gcse.c: New file, reincarnating most of the above.
2844         * rtl.h (exp_equiv_p, hash_rtx): New prototypes.
2845         (gcse_after_reload_main): Update prototype.
2846         * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar.
2847         * passes.c (rest_of_handle_gcse2): Use it.
2848
2849 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
2850
2851         * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func.
2852         (pass_loop_done): Likewise.
2853
2854 2004-08-18  Andrew Pinski  <apinski@apple.com>
2855
2856         * config/rs6000/darwin.md: Delete the altivec patterns which are
2857         handled differently now.
2858         (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT
2859         (macho_correct_pic_di): Likewise.
2860         (call_indirect_nonlocal_darwin64): Likewise.
2861         Delete the save world/saveFP/saveVec patterns.
2862
2863         Revert the reversion of: 2004-08-16  Stan Shebs  <shebs@apple.com>
2864         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
2865         * config/rs6000/rs6000.md: Include darwin.md.
2866         (builtin_setjmp_receiver): Add DImode case.
2867         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
2868         Darwin bits.
2869
2870 2004-08-18  Matt Austern  <austern@apple.com>
2871
2872         Dead code stripping
2873         * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped.
2874         * darwin.c (darwin_file_end): Mark file as potentially strippable.
2875
2876 2004-08-18  Richard Henderson  <rth@redhat.com>
2877
2878         * alias.c (readonly_fields_p): Remove.
2879         (objects_must_conflict_p): Don't call it.
2880         * tree.h (readonly_fields_p): Remove.
2881         * langhooks.h (struct lang_hooks): Remove honor_readonly.
2882         * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove.
2883
2884 2004-08-18  Diego Novillo  <dnovillo@redhat.com>
2885
2886         * tree-dfa.c (add_referenced_var): Only global variables are
2887         call-clobbered.
2888         * tree-flow.h (struct ptr_info_def): Add field pt_global_mem.
2889         * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark
2890         all pointers dereferenced if the statement dereferences them.
2891         (create_name_tags): Do not create memory tags for pointers
2892         that have PT_ANYTHING set.
2893         Also check if PT_VARS is not empty before creating a name tag.
2894         (compute_flow_sensitive_aliasing): Don't mark call-clobbered
2895         variables that share the same alias set with a pointer that
2896         may point anywhere.
2897         (add_may_alias): Add FIXME comment to remove clobbering
2898         aliased variables and tags.
2899         (replace_may_alias): Likewise.
2900         (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED.
2901         (merge_pointed_to_info): If the original variable has not
2902         points-to information, call set_pt_anything.
2903         (add_pointed_to_var): Do not prevent adding a pointed-to
2904         variable if the pointers is PT_ANYTHING.
2905         If the variable is a global, set PT_GLOBAL_MEM.
2906         (collect_points_to_info_r): Don't assume that PLUS_EXPRs of
2907         pointer type only come in PTR+OFFSET flavours.
2908         Always call merge_pointed_to_info on PHI arguments that are
2909         SSA_NAMEs.
2910         (get_nmt_for): Mark call-clobbered tags whose pointer points
2911         to global memory.
2912         * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch
2913         values.
2914         (get_indirect_ref_operands): Always clear OPF_KILL_DEF from
2915         FLAGS.
2916         (add_stmt_operand): Abort if the caller tried to add a killing
2917         definition for a memory tag.
2918         * tree-ssa.c (verify_flow_sensitive_alias_info): Remove
2919         unnecessary checks.
2920
2921 2004-08-18  J"orn Rennecke <joern.rennecke@superh.com>
2922
2923         * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers
2924         from call_used_regs.  Update call_really_used_regs.
2925         (CALL_REALLY_USED_REGISTERS): Define.
2926         * sh.c (output_stack_adjust, shmedia_target_regs_stack_space):
2927         Replace call_used_regs with call_really_used_regs.
2928         (calc_live_regs, sh_media_register_for_return): Likewise.
2929         (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise.
2930         * sh.md (return_media): Likewise.
2931
2932 2004-08-18  Andrew Pinski  <apinski@apple.com>
2933
2934         * config/darwin.c (machopic_legitimize_pic_address): Only set
2935         MEM_READONLY_P in the non TARGET_TOC case.
2936
2937 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
2938
2939         * rtl.def (NIL): Delete.
2940         * read-rtl.c (read_rtx): Handle (nil) like (define_constants).
2941         Tighten the syntax a little.
2942
2943         * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c
2944         * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h
2945         * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c
2946         * config/i386/predicates.md, config/m32r/m32r.h
2947         * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c
2948         * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h
2949         * config/sparc/sparc.h, doc/tm.texi:
2950         Replace all occurrences of NIL with UNKNOWN.
2951
2952 2004-08-18  Zack Weinberg  <zack@codesourcery.com>
2953
2954         * dojump.c (do_jump <unordered_bcc>): Do not recursively call
2955         self with a TRUTH_ORIF_EXPR; generate the appropriate jump
2956         sequence inline.  Move drop_through_label code into this
2957         block, being the only place it is used.  Adjust comments.
2958
2959 2004-08-18  Fariborz Jahanian <fjahanian@apple.com>
2960
2961         * config/rs6000/altivec.md: Add new patterns for calls to
2962         save_world/rest_world functions.
2963
2964         * config/rs6000/rs6000-protos.h: (save_world_operation,
2965         restore_world_operation) new declarations.
2966
2967         * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p
2968         field added.
2969         (rs6000_stack_info): Set world_save_p field.
2970         (save_world_operation): New function.
2971         (restore_world_operation): New function.
2972         (compute_save_world_info): New function.
2973         (rs6000_stack_info): Call compute_save_world_info.
2974         (rs6000_emit_prologue): Check for world_save_p and generate
2975         pattern to call save_world for saving all non-volatile and
2976         special registers.
2977         (rs6000_emit_epilogue): Check for world_save_p and generate
2978         pattern to call rest_world to restore saved registers.
2979
2980         config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO,
2981         FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined.
2982         (rs6000_reg_names): New entries added for save_world_operation and
2983         restore_world_operation.
2984
2985 2004-08-18  Caroline Tice  <ctice@apple.com>
2986
2987         * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add
2988         "-freorder-blocks-and-partition" to the flags used in second
2989         stage of profiledbootstrap.
2990         * bb-reorder.c (push_to_next_round_p): Add new variable,
2991         next_round_is_last; set and use variable to make sure, when
2992         partitioning, that the last trace construction round consists
2993         of all (and only) cold basic blocks.
2994         (rotate_loop): Don't copy blocks that end in a section
2995         crossing jump.
2996         (copy_bb): Correctly initialize "partition" of duplicated bb.
2997         (add_unlikely_executed_notes): Add a comment.
2998         (find_rarely_executed_basic_blocks_and_crossing_edges): Modify
2999         to make sure, if function contains hot blocks, that the
3000         successors of ENTRY_BLOCK_PTR are hot; also, only look for
3001         crossing edges if the architecture supports named sections.
3002         (mark_bb_for_unlikely_executed_section): Modify to always
3003         insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after
3004         the basic block note insn.
3005         (fix_crossing_unconditional_branches): Remove extra space.
3006         (fix_edges_for_rarely_executed_code): Modify to only do
3007         partitioning work if the architecture supports named sections.
3008         (reorder_basic_blocks): Modify to only add
3009         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture
3010         supports named sections.
3011         * c-common.c (handle_section_attribute): Initialize new global
3012         variable, user_defined_section_attribute, to true if user has
3013         specified one.
3014         * cfgcleanup.c (try_forward_edges): Modify to not attempt to
3015         forward edges that cross section boundaries.
3016         * cfglayout.c (fixup_reorder_chain): Modify to only fix up
3017         partitioning information if the architecture supports named
3018         sections.
3019         * cfgrtl.c (target.h): Add statement to include this.
3020         (rtl_split_block): Make sure newly created bb gets correct
3021         partition.
3022         (try_redirect_by_replacing_jump): Make sure redirection isn't
3023         attempting to cross section boundaries.
3024         (force_nonfallthru_and_redirect): Only do partition fix up if
3025         architecture supports named sections.
3026         (rtl_split_edge): Make sure newly created bb ends up in
3027         correct partition.
3028         (commit_one_edge_insertion): Remove code that incorrectly
3029         updated basic block partition; Make sure partition fix up only
3030         happens if architecture supports named sections and it's not
3031         already done.
3032         (rtl_verify_flow_info_1): Fix if-condition on test/error
3033         condition that fallthru edges are not allowed to cross section
3034         boundaries.
3035         * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this.
3036         * final.c (final_scan_insn): Remove redundant test from if-statement;
3037         change calls to text_section into calls to function_section; add code
3038         to only to partitioning fix up if architecture supports named
3039         sections.
3040         * ifcvt.c (find_if_case_1): Make sure newly created bb has correct
3041         partition.
3042         (if_convert): Add targetm.have_named_sections to test.
3043         * output.h (unlikely_section_label): Extern declaration for new global
3044         variable.
3045         (unlikely_text_section_name): Likewise.
3046         * opts.c (decode_options): If both partitioning and DWARF debugging
3047         are turned on, issue a warning that this doesn't work, and change
3048         partitiong to basic block reordering (without hot/cold partitions).
3049         * passes.c (rest_of_handle_final): Re-set new global variable,
3050         user_defined_section_attribute, to false.
3051         (rest_of_compilation): Change options for calling partitioning
3052         function: Don't call if the user defined the section attribute, and
3053         don't call if DECL_ONE_ONLY is true for the current function.
3054         * predict.c (choose_function_section): Return immediately if we
3055         are doing hot/cold partitioning (i.e. let the basic block partitioning
3056         determine where the function belongs).
3057         * reg-stack.c (emit_swap_insn): Add condition to step over
3058         NOTE_INSN_UNLIKELY_EXECUTED_CODE notes.
3059         * toplev.c (user_defined_section_attribute): New global variable.
3060         * toplev.h (user_defined_section_attribute): Extern declaration
3061         for new global variable.
3062         * varasm.c (unlikely_section_label): New global variable.
3063         (unlikely_text_section_name): New global variable.
3064         (unlikely_text_section): Add code to initialize
3065         unlikely_text_section_name if necessary; modify to use
3066         unlikely_text_section_name and unlikely_section_label; also to use
3067         named_section properly.
3068         (in_unlikely_text_section):  Modify to work correctly with
3069         named_section and to use unlikely_text_section_name.
3070         (named_section):  Add code to work properly with cold section.
3071         (function_section): Clean up if-statement.
3072         * config/darwin.c (darwin_asm_named_section): Return to original
3073         code, removing use of SECTION_FORMAT_STRING.
3074         * config/arm/pe.h (switch_to_section):  Add case for
3075         in_unlikely_executed_text to switch statement.
3076         * config/i386/cygming.h (switch_to_section): Likewise.
3077         * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
3078         (SECTION_FORMAT_STRING): Likewise.
3079         * config/mcore/mcore.h (switch_to_section): Likewise.
3080         * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove.
3081         (SECTION_FORMAT_STRING): Remove.
3082
3083 2004-08-18  Roger Sayle  <roger@eyesopen.com>
3084
3085         * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be
3086         -ffixed-reg safe, by preserving the meanings of zero and one.
3087         (CALL_USED_REGISTERS): Likewise.
3088         (CONDITIONAL_REGISTER_USAGE): Update to process new encodings.
3089
3090 2004-08-18  Kaz Kojima  <kkojima@gcc.gnu.org>
3091
3092         * config/sh/sh.c (split_branches): Check the result of
3093         next_active_insn.
3094         (sh_output_mi_thunk): Call init_flow if basic_block_info is null.
3095         Call rtl_register_cfg_hooks.
3096
3097 2004-08-18  Richard Henderson  <rth@redhat.com>
3098
3099         * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
3100         * alias.c (true_dependence): Update to match new semantics.
3101         (canon_true_dependence, write_dependence_p): Likewise.
3102         (anti_dependence, output_dependence): Update write_dependence_p args.
3103         (unchanging_anti_dependence): Remove.
3104         * calls.c (purge_mem_unchanging_flag): Remove.
3105         (fixup_tail_calls): Don't call it.
3106         (expand_call): Don't add unchanging memory to function usage.
3107         * expr.c (emit_block_move_via_libcall): Likewise.
3108         (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems.
3109         (get_subtarget): Don't use RTX_UNCHANGING_P.
3110         (expand_assignment, store_constructor, expand_expr_real_1): Likewise.
3111         (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P.
3112         * combine.c (get_last_value_validate): Use MEM_READONLY_P.
3113         * cse.c (insert): Don't use RTX_UNCHANGING_P.
3114         (cse_insn, canon_hash): Use MEM_READONLY_P.
3115         * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P
3116         instead of RTX_UNCHANGING_P.
3117         * explow.c (maybe_set_unchanging): Remove.
3118         * expr.h (maybe_set_unchanging): Remove.
3119         * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence.
3120         * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P.
3121         (assign_parm_setup_reg, expand_function_start): Likewise.
3122         * integrate.c (copy_rtx_and_substitute): Likewise.
3123         * ra-rewrite.c (emit_colors): Likewise.
3124         * regmove.c (copy_src_to_dest, regmove_optimize): Likewise.
3125         (fixup_match_1): Likewise.
3126         * reload1.c (reload, alter_reg): Likewise.
3127         * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P,
3128         not RTX_UNCHANGING_P.
3129         (equiv_init_varies_p): Likewise.
3130         * loop-invariant.c (check_maybe_invariant): Likewise.
3131         * resource.c (mark_referenced_resources, mark_set_resources): Likewise.
3132         * loop.c (note_addr_stored): Likewise.
3133         (prescan_loop): Likewise. Don't check function usage for clobbered
3134         unchanging memory.
3135         * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P,
3136         not RTX_UNCHANGING_P.
3137         (rtx_varies_p, modified_between_p, modified_in_p): Likewise.
3138         * varasm.c (force_const_mem): Likewise.
3139         * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P.
3140         * web.c (entry_register): Likewise.
3141         * tree-gimple.h (get_base_address): Move decl ...
3142         * tree.h: ... here.
3143         * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P.
3144
3145         * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be
3146         called via for_each_rtx.  Copy MEM_SCALAR_P, MEM_NOTRAP_P too.
3147         (alpha_set_memflags): Update to match.
3148
3149         * config/darwin.c (machopic_indirect_data_reference): Set
3150         MEM_READONLY_P instead of RTX_UNCHANGING_P.
3151         (machopic_indirect_call_target): Likewise.
3152         (machopic_legitimize_pic_address): Likewise.
3153         * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple,
3154         arm_gen_store_multiple, arm_gen_movmemqi): Likewise.
3155         * config/arm/arm.md (load_multiple, store_multiple): Likewise.
3156         * config/frv/frv.md (symGOT2reg): Likewise.
3157         * config/i386/i386.c (legitimize_pic_address,
3158         legitimize_tls_address, ix86_split_to_parts): Likewise.
3159         * config/ia64/ia64.c (ia64_expand_tls_address): Likewise.
3160         * config/ia64/ia64.md (load_fptr): Likewise.
3161         * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise.
3162         * config/m68k/m68k.c (legitimize_pic_address): Likewise.
3163         * config/mcore/mcore.c (block_move_sequence): Likewise.
3164         * config/mn10300/mn10300.md (symGOT2reg): Likewise.
3165         * config/pa/pa.c (legitimize_pic_address): Likewise.
3166         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise.
3167         (rs6000_emit_move): Likewise.
3168         * config/s390/s390.c (legitimize_pic_address): Likewise.
3169         (legitimize_tls_address): Likewise.
3170         * config/s390/s390.md (casesi): Likewise.
3171         * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise.
3172         * config/sh/sh.md (symGOT2reg): Likewise.
3173         * config/sparc/sparc.c (legitimize_pic_address): Likewise.
3174         * config/v850/v850.md (casesi): Likewise.
3175
3176         * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P.
3177         * config/iq2000/iq2000.c (save_restore_insns): Likewise.
3178         * config/mips/mips.c (mips_restore_gp): Likewise.
3179         (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise.
3180         * config/sh/sh.c (sh_reorg): Likewise.
3181
3182 2004-08-18  Richard Henderson  <rth@redhat.com>
3183
3184         * tree.h (struct tree_decl): Add gimple_formal_temp.
3185         (DECL_GIMPLE_FORMAL_TEMP_P): New.
3186         * gimplify.c (pop_gimplify_context): Clear it.
3187         (lookup_tmp_var): Set it, if is_formal.
3188         (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX.
3189         Use is_gimple_val for VECTOR.  Simplify return value.
3190         (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P.
3191         (gimplify_expr): Likewise.
3192         * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from
3193         is_gimple_tmp_rhs for clarity.  Update all callers.
3194         (is_gimple_reg_rhs): Simplify logic.
3195         (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for
3196         clarity; use DECL_GIMPLE_FORMAL_TEMP_P.
3197         (is_gimple_formal_tmp_reg): Similarly.
3198         * tree-gimple.h: Update decls.
3199         * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use
3200         DECL_IGNORED_P, not DECL_ARTIFICIAL.  Tidy formatting.
3201         * tree-ssa-live.c (var_union, type_var_init): Likewise.
3202
3203 2004-08-18  Paolo Bonzini  <bonzini@gnu.org>
3204
3205         * c4x.c (legitimize_operands): Remove calls to
3206         preserve_subexpressions_p.
3207
3208 2004-08-18  David Edelsohn  <edelsohn@gnu.org>
3209
3210         * varasm.c (MAX_OFILE_ALIGNMENT): Move ...
3211         * defaults.h (MAX_OFILE_ALIGNMENT): ... here.
3212
3213 2004-08-18  Ziemowit Laski  <zlaski@apple.com>
3214
3215         * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii"
3216         Objective-C++ extensions.
3217         * gengtype.c (get_file_basename): Match entire subdirectory name
3218         ('cp', 'objc', 'objcp') rather than just its suffix.
3219         (get_base_file_bitmap): Allow for files to belong to more than one
3220         language.
3221         (get_output_file_with_visibility): Treat objc/objc-act.h as a header
3222         used by more than one front-end.
3223
3224 2004-08-18  Richard Earnshaw  <rearnsha@arm.com>
3225
3226         * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to
3227         avoid use of preserve_subexpressions_p.
3228
3229 2004-08-17  Richard Henderson  <rth@redhat.com>
3230
3231         PR 17051
3232         * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too.
3233
3234 2004-08-17  DJ Delorie  <dj@redhat.com>
3235
3236         * doc/extend.texi: Document new xstormy16 attribute.
3237
3238         * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New.
3239         (xstormy16_splittable_below100_or_register): New.
3240         (combine_bnp): New.
3241         (xstormy16_reorg): New.
3242         (TARGET_MACHINE_DEPENDENT_REORG): Define.
3243
3244         * config/stormy16/stormy16.md (movqi_internal): Make name public.
3245         (movhi_internal): Likewise.
3246         (cbhranchhi): Likewise.
3247         (cbhranchhi_neg): Likewise.
3248         (andhi3): Only allow splittable below100 operands.
3249         (iorhi3): Likewise.
3250         (peephole2): New and/zero_extend->and peephole.
3251         (peephole2): New load/ior/save->set1 peephole.
3252         (peephole2): New load/and/save->clr1 peephole.
3253         (bclrx, bclrx2, bclr7, bclr15): New.
3254         (bsetx, bsetx2, bset7, bset15): New.
3255
3256         * config/stormy16/stormy16.c (xstormy16_print_operand): Be more
3257         liberal about acceptable 'B' masks.
3258
3259         * config/stormy16/stormy16-protos.h
3260         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
3261         xstormy16_below100_operand, xstormy16_below100_or_register,
3262         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
3263         (PREDICATE_CODES): Add new predicates.
3264
3265         * config/stormy16/stormy16.c
3266         (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol,
3267         xstormy16_below100_operand, xstormy16_below100_or_register,
3268         xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New.
3269         (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New.
3270         (xstormy16_legitimate_address_p): Allow below100 symbols.
3271         (xstormy16_extra_constraint_p): Add 'W' for below100 operands.
3272         (xstormy16_expand_move): Leave below100 operands as-is.
3273         (xstormy16_encode_section_info): Encode below100 symbols.
3274         (xstormy16_strip_name_encoding): New.
3275         (xstormy16_print_operand): Print 'b' as shift mask.
3276         (xstormy16_attribute_table): Add below100 attributes.
3277         (xstormy16_handle_below100_attribute): New.
3278
3279         * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100.
3280         (XSTORMY16_SECTION_FUNCTION): New.
3281         (EXTRA_SECTION_FUNCTIONS): Define using the above.
3282         (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New.
3283         (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols.
3284         (ASM_OUTPUT_LABELREF): Define.
3285
3286         * config/stormy16/stormy16.md (movqi_internal): Add below100 support.
3287         (movhi_internal): Add below100 support.
3288         (andhi3): Add below100 support.
3289         (iorhi3): Add below100 support.
3290         (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New.
3291
3292 2004-08-17  James E Wilson  <wilson@specifixinc.com>
3293
3294         * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead
3295         of VOIDmode for comparison code mode.
3296         * config/mips/mips.md: For conditional move patterns, use mode of
3297         first compare operand for comparison mode, instead of VOIDmode.
3298
3299         * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both
3300         normal and -ffast-math code.
3301
3302 2004-08-17  Mark Mitchell  <mark@codesourcery.com>
3303
3304         PR c++/15871
3305         * doc/invoke.texi (-fkeep-inline-functions): Update documentation.
3306
3307 2004-08-17  Robert Bowdidge  <bowdidge@apple.com>
3308
3309         * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags.
3310
3311 2004-08-17  Andreas Tobler  <a.tobler@schweiz.ch>
3312
3313         * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause
3314         for non Darwin targets.
3315         (*call_value_nonlocal_darwin64): Likewise.
3316
3317 2004-08-17  Fariborz Jahanian <fjahanian@apple.com>
3318
3319         * config/rs6000/rs6000.c (rs6000_function_value): Check for
3320         altivec mode for altivec return register.
3321
3322 2004-08-17  David Edelsohn  <edelsohn@gnu.org>
3323
3324         Revert 2004-08-16  Stan Shebs  <shebs@apple.com>
3325         * config/darwin.c (macho_indirect_data_reference): Add DImode case.
3326         * config/rs6000/rs6000.md: Include darwin.md.
3327         (builtin_setjmp_receiver): Add DImode case.
3328         * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to
3329         Darwin bits.
3330
3331 2004-08-17  Dorit Naishlos  <dorit@il.ibm.com>
3332
3333         * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE
3334         trees.
3335         * tree-vectorizer.h: New File: Same.
3336         * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files.
3337         * common.opt (ftree-vectorize): New flag to enable vectorization.
3338         * timevar.def (TV_TREE_VECTORIZATION): New dump file for
3339         vectorization pass.
3340         * tree-data-ref.h (init_data_ref): Additional argument.
3341         (array_base_name_differ_p): Moved to tree-data-ref.c.
3342         * tree-data-ref.c (array_base_name_differ_p): Revised.
3343         (initialize_data_dependence_relation): Call array_base_name_differ_p
3344         with an extra argument.
3345         (analyze_all_data_dependences): Same.
3346         (init_data_ref): Additional argument is_read to set DR_IS_READ.
3347         * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this
3348         file.
3349         * tree-flow.h (vectorize_loops, empty_block_p): Add declaration.
3350         * tree-optimize.c (pass_vectorize): Schedule the vectorization pass.
3351         * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new
3352         vectorization pass.
3353         * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize.
3354         (tree_ssa_loop_done): Call scev_finalize.
3355         (tree_vectorize): Define the new vectorization pass.
3356         * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the
3357         size of the vector they support (until support for multiple vector
3358         sizes is added to the vectorizer).
3359         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define.
3360         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define.
3361         * invoke.texi (fdump-tree-vect, ftree-vectorize): Add
3362         documentation.
3363
3364 2004-08-17  Nathan Sidwell  <nathan@codesourcery.com>
3365
3366         * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst
3367         usage.
3368         (generate_protocol_list, handle_impent): Likewise.
3369
3370 2004-08-17  Roger Sayle  <roger@eyesopen.com>
3371
3372         * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to
3373         ensure that