OSDN Git Service

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