OSDN Git Service

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