OSDN Git Service

* config/cris/cris.c (cris_print_operand) <case 'H'; case
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-05-13  Hans-Peter Nilsson  <hp@axis.com>
2
3         * config/cris/cris.c (cris_print_operand) <case 'H'; case
4         CONST_INT>: Use operand_subword and HOST_WIDE_INT_PRINT_DEC for
5         output; don't have special case for HOST_BITS_PER_WIDE_INT == 32.
6
7 2005-05-13  Jan Hubicka  <jh@suse.cz>
8
9         * basic-block.h (FOR_ALL_BB_FN): New macro.
10         (init_flow): Initialize cfg structure.
11         * function.c (allocate_struct_function): Do not initialize cfg structure.
12         * tree-cfg.c (init_empty_tree_cfg): Break out from ...
13         (build_tree_cfg): ... here.
14         * tree-flow.h (init_empty_tree_cfg): Declare.
15
16 2005-05-12  Steven Bosscher <stevenb@suse.de>
17
18         Fix PR tree-optimization/21520
19         * tree-ssa-pre.c (phi_translate): Use fully_constant_expression
20         to attempt to fold constants.
21
22 2005-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
23
24         * config/sh/sh.c: Declare the prototype of sh_adjust_unroll_max
25         only when TARGET_ADJUST_UNROLL_MAX is defined.
26         (general_movsrc_operand): Use the C style comment.
27         (ua_offset): Use prototype.
28
29 2005-05-12  Zdenek Dvorak  <dvorakz@suse.cz>
30
31         * tree-ssa-loop-im.c (struct mem_ref): Add field "next".
32         (struct hmr_data, hoist_memory_reference, memref_del,
33         struct fmrv_data): Removed.
34         (hoist_memory_references, free_mem_ref, free_mem_refs): New functions.
35         (gather_mem_refs, gather_mem_refs_stmt): Add new references to the
36         list.
37         (find_more_ref_vops): Traverse the list of memory references.
38         (determine_lsm_loop): Work with the list of memory references instead
39         of traversing the hashtable.
40
41 2005-05-12  Steven Bosscher  <stevenb@suse.de>
42             Stuart Hastings <stuart@apple.com>
43             Jan Hubicka  <jh@suse.cz>
44             
45         * except.c  (duplicate_eh_region_1, duplicate_eh_region_2,
46         duplicate_eh_regions): New functions, based on old
47         implementation removed with RTL inliner.
48         (reachable_next_level): Modify behaviour pre-inline.
49         * except.h (duplicate_eh_regions_map, duplicate_eh_regions):
50         Declare.
51         * function.h (struct function): Add after_inlining flag.
52         * tree-optimize.c (tree_rest_of_compilation): Set it.
53         * tree-eh.c (add_stmt_to_eh_region_fn): Initialize hashtable
54         when needed.
55         * tree-cfg.c (label_to_block_fn): Deal with cases where
56         label was never insterted into code.
57
58 2005-05-12  Zack Weinberg  <zack@codesourcery.com>
59
60         * doc/cpp.texi: Document that #sccs is a synonym for #ident.
61
62 2005-05-12  Daniel Berlin  <dberlin@dberlin.org>
63
64         Fix PR tree-optimization/21532
65         * tree-ssa-pre.c (create_expression_by_pieces): stmt
66         needs to go onto the inserted_exprs list.
67
68 2005-05-12  Ian Lance Taylor  <ian@airs.com>
69
70         * c-common.h (statement_code_p): Don't declare.
71         (STATEMENT_CODE_P): Don't define.
72         (INIT_STATEMENT_CODES): Don't define.
73         * c-common.c (statement_code_p): Don't define.
74
75 2005-05-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
76
77         * config/sparc/sparc.h: Remove dead code.
78         * config/sparc/sparc.c (sparc_compute_frame_size): Use
79         FIRST_PARM_OFFSET for the size of the register window area.
80         (emit_save_regs): Rename into emit_save_or_restore_regs.
81         Add 'action' parameter.  Use 4095 as upper bound for the offset.
82         Pass 'action' to save_or_restore_regs.
83         (emit_restore_regs): Delete.
84         (sparc_expand_prologue): Call emit_save_or_restore_regs.
85         (sparc_expand_epilogue): Likewise.
86         * config/sparc/sparc.md (mode macro P): Move.
87         (movdi_insn_sp32_v9, movdi_insn_sp32): Swap.
88         (mov<V32:mode> expander): Move to the top of the V32 section.
89         (movdf_insn_sp32_v9_no_fpu, movdf_insn_sp32_v9): Swap.
90         (movtf_insn_sp64_hq, movtf_insn_sp64): Swap.
91         (sibcall_epilogue): Move.
92
93 2005-05-12  Richard Earnshaw  <richard.earnshaw@arm.com>
94
95         PR target/21501
96         * arm.c (arm_gen_constant): Sign-extend intermediate values when
97         synthesizing a constant of the difference of two immediates.
98
99 2005-05-12  Richard Earnshaw  <richard.earnshaw@arm.com>
100
101         * arm/vfp.md (negsf2_vfp): Add alternative using integer registers.
102         (negdf2_vfp): Likewise.  Convert to define_insn_and_split and split
103         the alternatives using integer registers into the appropriate
104         primitives.
105
106 2005-05-11 Kenneth Zadeck <zadeck@naturalbridge.com>
107
108         * bitmap.c (bitmap_elmt_to_freelist, bitmap_element_allocate,
109         bitmap_elt_clear_from, bitmap_clear): Changed freelist structure.
110         * bitmap.h: Fixed comments.
111
112 2005-05-11  Richard Henderson  <rth@redhat.com>
113
114         PR target/21412
115         * config/ia64/ia64.c (TARGET_CANNOT_FORCE_CONST_MEM): New.
116         (ia64_cannot_force_const_mem): New.
117         (tls_symbolic_operand_type): New.
118         (ia64_legitimate_constant_p): New.
119         (ia64_expand_load_address): Return true on success.  Improve
120         checks for when we should not split.
121         (ia64_expand_tls_address): New addend operand.  Distribute it
122         as appropriate to the tls_kind.  Delay referencing gp.
123         (ia64_expand_move): Split symbolic addend as necessary.  Handle
124         tls symbols with addends.
125         * config/ia64/ia64-protos.h: Update.
126         * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): False for r0,
127         p0, f0, f1, and r13.
128         (LEGITIMATE_CONSTANT_P): Move to ia64_legitimate_constant_p.
129         * config/ia64/ia64.md (UNSPEC_DTPMOD): New.
130         (symbolic_operand splitter): Pass everything through
131         ia64_expand_load_address and FAIL or DONE as appropriate.
132         (load_fptr): Only accept after reload.
133         (load_fptr_internal1, gprel64_offset, load_gprel64, load_symptr_high,
134         load_symptr_low, load_ltoff_dtpmod,
135         (load_dtpmod): New.
136         (load_dtprel): Only accept tls symbols.
137         (load_dtprel64, load_dtprel22): Likewise.
138         (load_tprel, load_tprel64, load_tprel22): Likewise.
139         (load_dtprel_gd, load_ltoff_dtprel, load_tprel_ie): New.
140         (add_dtprel): Only accept tls symbols.  Canonicalize PLUS.
141         (add_dtprel14, add_dtprel22): Likewise.
142         (add_tprel, add_tprel14, add_tprel22): Likewise.
143         * config/ia64/predicates.md (small_addr_symbolic_operand): New.
144         (any_offset_symbol_operand, aligned_offset_symbol_operand): New.
145         (got_symbolic_operand): Check CONST offsets.
146         (tls_symbolic_operand, ld_tls_symbolic_operand): New.
147         (ie_tls_symbolic_operand, le_tls_symbolic_operand): New.
148         (move_operand): Don't handle tls here.  Check CONST offsets.
149
150 2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
151
152         * config/mips/7000.md (rm7_impy_si_mult): Just match imul and imadd.
153         Remove hilo_operand check.
154         (rm7_impy_si_mul): Just match imul3.  Remove hilo_operand check.
155         * config/mips/predicates.md (hilo_operand): Delete.
156
157 2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
158
159         * config/mips/sr71k.md, config/mips/7000.md: Reformat.
160
161 2005-05-11  Kazu Hirata  <kazu@cs.umass.edu>
162
163         PR tree-optimizer/18472
164         * tree-if-conv.c (tree_if_convert_stmt,
165         if_convertible_modify_expr_p): Don't handle GOTO_EXPR.
166
167 2005-05-11  Jan Hubicka  <jh@suse.cz>
168
169         * Makefile.in (tree-eh.o: Kill gt-tree-eh.h dependency.
170         (GTFILES): add except.h.
171         * except.c (eh_status): Add throw_stmt_table.
172         (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New functions.
173         * except.h (add_stmt_to_eh_region_fn, remove_stmt_from_eh_region_fn,
174         lookup_stmt_eh_region_fn): Declare.
175         (throw_stmt_node): New structure.
176         (set_eh_throw_stmt_table, get_eh_throw_stmt_table): New.
177         * gengtype.c (open_base_files): Add except.h to inlines.
178         * tree-eh.c (throw_stmt_node): Kill.
179         (record_stmt_eh_region): Update.
180         (add_stmt_to_eh_region_fn): Break out from ...
181         (add_stmt_to_eh_region): ... here.
182         (remove_stmt_from_eh_region_fn): Break out from ...
183         (remove_stmt_from_eh_region): ... here.
184         (lookup_stmt_eh_region_fn): Break out from ...
185         (lookup_stmt_eh_region): ... here.
186         (honor_protect_cleanup_actions): Use build_resx.
187         (lower_try_finally_onedest): Likewise.
188         (lower_try_finally_copy): Likewise.
189         (lower_try_finally_switch): Likewise.
190         (lower_eh_constructs): Update eh table construction.
191         * tree.c (build_resx): New.
192         * tree.h (build_resx): Declare.
193
194 2005-05-11  H.J. Lu  <hongjiu.lu@intel.com>
195
196         * libgcov.c (gcov_exit): Set prefix_length to 0 if no relocation
197         is needed.
198
199 2005-05-11  Kazu Hirata  <kazu@cs.umass.edu>
200
201         * fold-const.c, libgcov.c: Fix comment typos.
202
203         * tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove
204         redundant code.
205
206 2005-05-11  Daniel Jacobowitz  <dan@codesourcery.com>
207
208         * config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
209         * config/arm/arm.h (SUBTARGET_FRAME_POINTER_REQUIRED): Provide
210         default definition.
211         (FRAME_POINTER_REQUIRED): Use SUBTARGET_FRAME_POINTER_REQUIRED.
212
213 2005-05-11  Nathan Sidwell  <nathan@codesourcery.com>
214
215         PR bootstrap/21481
216         * crtstuff.c: Include auto-host.h again, for now.
217
218 2005-05-11  Richard Sandiford  <rsandifo@redhat.com>
219
220         * config/mips/24k.md: Remove trailing whitespace.
221
222 2005-05-11  David Ung  <davidu@mips.com>
223
224         * config/mips/mips.md (type): Add imul3.
225         (length, hazard, may_clobber_hilo): Check for imul3.
226         (mulsi3_mult3, muldi3_mult3, *muls, <su>mulsi3_highpart_mulhi_internal)
227         (*<su>mulsi3_highpart_neg_mulhi_internal): Set attr to imul3.
228         * config/mips/24k.md (r24k_int_mul3): Enable this reservation
229         for a 3 operand mul and its bypasses.
230         * config/mips/3000.md (r3k_imul): Add imul3 to reservations.
231         * config/mips/4000.md (r4k_imul): Likewise.
232         * config/mips/4100.md (r4100_imul_si, r4100_imul_di):  Likewise.
233         * config/mips/4130.md (vr4130_class, vr4130_mulsi)
234         (vr4130_muldi): Likewise.
235         * config/mips/4300.md (r4300_imul_si, r4300_imul_di): Likewise.
236         * config/mips/4600.md (r4600_imul, r4650_imul): Likewise.
237         * config/mips/5000.md (r5k_imul_si, r5k_imul_di): Likewise.
238         * config/mips/5400.md (ir_vr54_imul_si, ir_vr54_imul_di)
239         (ir_vr54_imadd_si): Likewise.
240         * config/mips/5500.md (ir_vr55_imul_si, ir_vr55_imul_di):  Likewise.
241         * config/mips/7000.md (rm7_impy_si_mult, rm7_impy_si_mul)
242         (rm7_impy_di): Likewise.
243         * config/mips/9000.md (rm9k_mulsi, rm9k_muldi):  Likewise.
244         * config/mips/generic.md (generic_imul): Likewise.
245         * config/mips/sb1.md (ir_sb1_mulsi, ir_sb1_muldi): Likewise.
246         * config/mips/sr71k.md (ir_sr70_imul_si, ir_sr70_imul_di):  Likewise.
247
248 2005-05-11  J"orn Rennecke <joern.rennecke@st.com>
249
250         PR middle-end/20371:
251         * tree.h (record_layout_info_s): New member prev_packed.
252         * stor-layout.c (update_alignment_for_field): Fix comment about
253         KNOWN_ALIGN.  For MS bitfields, if we start a new run, make sure
254         we start it properly aligned.
255         (place_field): At the beginning of a record, pass 0 as KNOWN_ALIGN
256         to update_alignment_for_field, and recompute it afterwards using
257         the alignment of the record.
258         When a packed bitfield precedes an MS bitfield, don't add padding
259         at the end of the packed bitfield on behalf of the base type of
260         the packed bit field.
261         Don't adjust rli->bitpos at the end
262         of an MS bitfield run if we already adjusted bitpos/offset for an
263         alignment as large or larger than the bitfield type size.
264         Take possible record alignment > BIGGEST_ALIGNMENT into account
265         when calculating actual_align.
266         Only put packed buit fields into rli->prev_field if they end up
267         suitably aligned.
268         Also set rli->remaining_in_alignment when we re-set rli->prev_field.
269         Update rli->remaining_in_alignment when we have already started a
270         run of bit fields and we process a packed bit field.
271
272 2005-05-11  Sebastian Pop  <pop@cri.ensmp.fr>
273
274         * tree-data-ref.c (find_data_references_in_loop): Give up when
275         the body of the loop contains a CALL_EXPR or an ASM_EXPR: they
276         may embed arbitrary side effects.
277         Remove the assumption that GIMPLE form contains a single array
278         access per statement.
279         When the statement contains virtual operands, fail if it is not
280         a MODIFY_EXPR or a CALL_EXPR.
281         Return after the dont know node is inserted.
282
283 2005-05-11  Richard Earnshaw  <richard.earnshaw@arm.com>
284
285         * arm.md (negsf2, negdf2): Permit these expands when compiling for VFP.
286
287 2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
288
289         PR middle-end/19807
290         PR tree-optimization/19639
291         * fold-const.c (try_move_mult_to_index): Handle INTEGER_CST
292         and generic summands for char* as s * delta, too, folding &a[i]
293         CODE x to &a[i CODE x/s].  Use tree_int_cst_equal
294         for comparison of steps.  Convert types for index addition.
295         (fold_binary): Adjust the callers to always dispatch to
296         try_move_mult_to_index.
297         * tree-ssa-propagate.c (set_rhs): Avoid setting rhs to
298         expr with non-gimple ARRAY_REF offset.
299
300 2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
301
302         * fold-const.c (fold_indirect_ref_1): Avoid removing
303         NOP_EXPRs with type qualifiers like const.
304
305 2005-05-11  Richard Henderson  <rth@redhat.com>
306
307         PR c/21502
308         * c-decl.c (finish_decl): Propagate the completed array type of
309         a global variable into the binding.
310
311 2005-05-10  Matt Kraai  <kraai@ftbfs.org>
312
313         * Makefile.in (gtype-desc.o, build/genautomata.o)
314         (build/varray.o): Depend on $(VARRAY_H).
315
316 2005-05-10  Diego Novillo  <dnovillo@redhat.com>
317
318         * tree-optimize.c (init_tree_optimization_passes): Re-organize
319         optimization passes to do an initial batch of scalar cleanups.
320
321 2005-05-10  Ian Lance Taylor  <ian@airs.com>
322
323         * read-rtl.c (struct macro_traverse_data): Define.
324         (map_attr_string): New static function, broken out of
325         apply_macro_to_string.
326         (mode_attr_index, apply_mode_maps): New static functions.
327         (apply_macro_to_string): Call map_attr_string.
328         (apply_macro_to_rtx): Add mode_maps and infile parameters.  Change
329         all callers.
330         (apply_macro_traverse): Expect data to point to a struct
331         macro_traverse_data.
332         (read_rtx): Add mode_maps local variable.  Use mode_traverse_data
333         to pass data through htab_traverse.
334         (read_rtx_1): Add mode_maps parameter.  Change all callers.
335         Handle mode names which are attribute strings.
336         * doc/md.texi (Substitutions): Rename from String Substitutions.
337         Change references.  Document using attributes as modes.
338
339 2005-05-10  Zdenek Dvorak  <dvorakz@suse.cz>
340
341         * tree-cfg.c (tree_duplicate_sese_region): Update profile.
342         * tree-optimize.c (init_tree_optimization_passes) Swap
343         pass_ch and pass_profile.
344         * tree-ssa-loop-ch.c (copy_loop_headers): Do not update profile
345         here.  Remove rewrite_into_loop_closed_ssa call.
346
347 2005-05-10  Adrian Straetling  <straetling@de.ibm.com>
348
349         * config/s390/s390.c: (s390_const_double_ok_for_constraint_p): New
350         function.
351         (legitimate_reload_constant_p): Add check for const double zero.
352         * config/s390/s390.md: Add comment for constraint letter 'G'.
353         ("*movdf_64", "*movdf_31", "movsf"): Add constraint and proper
354         attributes for new case.
355         * config/s390/s390.h: (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Define it as
356         s390_const_double_ok_for_constraint_p.
357         * config/s390/s390-protos.h (s390_const_double_ok_for_constraint_p):
358         Add prototype.
359
360 2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
361
362         PR tree-optimization/21170
363         * tree-ssa-dom.c, tree-ssa-threadupdate.c: Replace
364         rewrite_ssa_into_ssa in comments with update_ssa.
365
366 2005-05-10  Zdenek Dvorak  <dvorakz@suse.cz>
367
368         * tree-ssa-loop-im.c: Include hashtab.h.
369         (struct mem_ref_loc): New.
370         (struct mem_ref): Describe the set of references with the same
371         shape.
372         (max_stmt_uid, get_stmt_uid, record_mem_ref, free_mem_refs,
373         maybe_queue_var, fem_single_reachable_address,
374         for_each_memref, single_reachable_address,
375         is_call_clobbered_ref, determine_lsm_reg): Removed.
376         (record_mem_ref_loc, free_mem_ref_locs, determine_lsm_ref,
377         hoist_memory_reference, memref_hash, memref_eq, memref_del,
378         gather_mem_refs_stmt, gather_mem_refs, find_more_ref_vops):
379         New functions.
380         (rewrite_mem_refs, schedule_sm): Use mem_ref_loc list.
381         (determine_lsm_loop): Rewritten.
382         (determine_lsm): Do not set stmt uids.
383
384 2005-05-10  Adrian Straetling  <straetling@de.ibm.com>
385
386         * config/s390/s390.md: Add comment lines for 'f' and 't' constraint
387         letters.
388
389 2005-05-10  Adrian Straetling  <straetling@de.ibm.com>
390
391         * config/s390/s390.md: ("anddi3","andsi3","andhi3","andqi3"): Merge.
392         ("iordi3", "iorsi3", "iorhi3", "iorqi3"): Merge.
393         ("xordi3", "xorsi3", "xorhi3", "xorqi3"): Merge.
394
395 2005-05-10  Jeff Law  <law@redhat.com>
396
397         * tree-ssa-dom.c (dom_opt_finalize_block): Do not call
398         thread_across_edge for any abnormal edges.
399
400 2005-05-10  Richard Henderson  <rth@redhat.com>
401
402         * config/ia64/ia64.c (ia64_expand_atomic_op): New.
403         * config/ia64/ia64-protos.h: Declare it.
404         * config/ia64/sync.md (I124MODE, FETCHOP, fetchop_name): New.
405         (sync_add<I48MODE>, sync_old_add<I48MODE>): Remove.
406         (sync_<FETCHOP><IMODE>, sync_nand<IMODE>): New.
407         (sync_old_<FETCHOP><IMODE>, sync_old_nand<IMODE>): New.
408         (sync_new_<FETCHOP><IMODE>, sync_new_nand<IMODE>): New.
409         (cmpxchg_rel_<I124MODE>): Split from cmpxchg_acq_<IMODE>.  Zero
410         extend result; use release semantics.
411         (cmpxchg_rel_di): Rename from cmpxchg_acq_<IMODE>; use release.
412         (sync_val_compare_and_swap_<IMODE>): Update to match.
413
414 2005-05-10  Richard Henderson  <rth@redhat.com>
415
416         * optabs.c (expand_compare_and_swap_loop): Don't clobber old value
417         before comparing it for success.
418
419 2005-05-10  Richard Henderson  <rth@redhat.com>
420
421         * config/ia64/sync.md (sync_add<I48MODE>): Fix arguments for
422         no return value pattern.
423
424 2005-05-10  Grigory Zagorodnev  <grigory.zagorodnev@intel.com>
425             H.J. Lu  <hongjiu.lu@intel.com>
426
427         * libgcov.c (create_file_directory): New function. Create
428         directory for the given file name.
429         (gcov_max_filename): New static var. Keeps size of the longest
430         file name.
431         (gcov_exit): Always try to create directory for output
432         file. Relocate each filename basing on environment vars.
433         (__gcov_init): Remember the longest file name.
434         * tsystem.h: include filenames.h to get IS_DIR_SEPARATOR
435         * doc/gcov.texi (Cross-profiling): New node documenting
436         cross-profiling management.
437         * doc/invoke.texi (-fprofile-arcs): Add xref to cross-profiling.
438
439 2005-05-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
440
441         * config/sparc/sparc.c (mem_min_alignment): Do not rely
442         on MEM_ALIGN if TARGET_UNALIGNED_DOUBLES.
443
444 2005-05-10  Bob Wilson  <bob.wilson@acm.org>
445
446         * config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Rearrange special
447         case code to avoid one move instruction.
448         (__umodsi3, __modsi3): Merge duplicated code sequences.
449
450 2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
451
452         * config/mips/24k.md, config/sh/divtab.c, config/sh/sh.c,
453         config/sh/sh.md, config/sh/superh.h: Fix comment typos.
454         * doc/invoke.texi: Fix typos.
455
456         * tree-data-ref.c (analyze_array_indexes, analyze_array,
457         init_data_ref, access_functions_are_affine_or_constant_p,
458         free_data_refs): Use VEC instead of VARRAY.
459         * tree-data-ref.h (data_reference): Change the type of
460         access_fns to VEC(tree,gc)*.
461         (DR_ACCESS_FN, DR_NUM_DIMENSIONS): Use VEC instead of VARRAY.
462
463 2005-05-10  Gabor Loki <loki@gcc.gnu.org>
464
465         PR c/17913
466         * c-typeck.c (build_conditional_expr): Remove reducing cond_expr.
467         * fold-const.c (fold): Expand the condition of reducing cond_expr.
468         (contains_label_1, contains_label_p): New functions for checking
469         labels in a sub-tree.
470
471 2005-05-10  Joseph S. Myers  <joseph@codesourcery.com>
472
473         PR c/21342
474         * c-decl.c (pushdecl): When there is a declaration in the current
475         scope and the declarations are external linkage, check for
476         compatibility with the type in the external scope and update the
477         type in the external scope with the composite type information.
478         Do not form a composite type of the new type and the visible type
479         if they are incompatible.
480
481 2005-05-10  Nathan Sidwell  <nathan@codesourcery.com>
482
483         * crtstuff.c: Revert part of 2005-05-08 Change.
484         (IN_LIBGCC2): Define.
485
486 2005-05-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
487
488         * config/sparc/sparc.c (fp_sethi_p): Test !SPARC_SIMM13_P and
489         remove redundant test.
490         (fp_mov_p): Accept 0.
491         (fp_high_losum_p): Remove redundant test.
492         * config/sparc/predicates.md (const_high_operand): Explicitly test
493         (not small_int_operand).
494         (fp_const_high_losum_operand): New.
495         * config/sparc/sparc.md (movsi_insn): Do not emit 'clr'.  Reorder.
496         (movdi_insn_sp32_v9): Use canonical predicates.
497         (movdi_insn_sp32): Test !TARGET_V9 instead of !TARGET_ARCH64.
498         (movdi_insn_sp64_novis): Delete.
499         (movdi_insn_sp64_vis): Rename into movdi_insn_sp64.
500         (movsf_insn_novis): Delete.
501         (movsf_insn_vis): Rename into movsf_insn.
502         (movsf_no_f_insn): Rename into movsf_insn_no_fpu.
503         (movsf_lo_sum): Use fp_const_high_losum_operand.
504         (movsf_high): Likewise.
505         (movsf_high_losum splitter): Likewise.
506         (mov<V32:mode> expander): Use register_or_zero_operand.
507         (mov<V64:mode> expander): Likewise.
508         (movdf_insn_sp32): Use register_or_zero_operand.
509         (movdf_no_e_insn_sp32): Use register_or_zero_operand.
510         Rename into movdf_insn_sp32_no_fpu.
511         (movdf_no_e_insn_v9_sp32): Use register_or_zero_operand.
512         Rename into movdf_insn_sp32_v9_no_fpu.
513         (movdf_insn_v9only_novis): Delete.
514         (movdf_insn_v9only_vis): Rename into movdf_insn_sp32_v9.
515         (movdf_insn_sp64_novis): Delete.
516         (movdf_insn_sp64_vis): Rename into movdf_insn_sp64.
517         (movdf_no_e_insn_sp64): Use register_or_zero_operand.
518         Rename into movdf_insn_sp64_no_fpu.
519         (movtf expander): Use register_or_zero_operand.
520         (movtf_insn_sp32): Delete.
521         (movtf_insn_vis_sp32): Use register_or_zero_operand.
522         Rename into movtf_insn_sp32.
523         (movtf_no_e_insn_sp32): Use register_or_zero_operand.
524         Rename into movtf_insn_sp32_no_fpu.
525         (movtf_insn_hq_sp64): Delete.
526         (movtf_insn_hq_vis_sp64): Use register_or_zero_operand.
527         Rename into movtf_insn_sp64_hq.
528         (movtf_insn_sp64): Delete.
529         (movtf_insn_vis_sp64): Use register_or_zero_operand.
530         Rename into movtf_insn_sp64.
531         (movtf_no_e_insn_sp64): Use register_or_zero_operand.
532         Rename into movtf_insn_sp64_no_fpu.
533
534 2005-05-10  Nathan Sidwell  <nathan@codesourcery.com>
535
536         * config/stormy16/stormy16.c (xstormy16_emit_cbranch): Use
537         gcc_assert and gcc_unreachable as appropriate.
538         (xstormy16_split_cbranch, xstormy16_output_cbranch_hi,
539         xstormy16_output_cbranch_si, xstormy16_split_move,
540         xstormy16_initial_elimination_offset,
541         xstormy16_encode_section_info, xstormy16_print_operand_address,
542         xstormy16_expand_call, xstormy16_expand_arith,
543         xstormy16_output_shift, xstormy16_init_builtins): Likewise.
544
545 2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
546
547         * tree-outof-ssa.c (_elim_graph): Change the type of nodes and
548         const_copies to VEC(tree,heap)*.
549         (new_elim_graph, delete_elim_graph, elim_graph_size,
550         elim_graph_add_node, eliminate_build, eliminate_phi): Use VEC
551         instead of VARRAY.
552
553 2005-05-10  Joseph S. Myers  <joseph@codesourcery.com>
554
555         PR other/21052
556         * doc/extend.texi (Type Attributes): Correct example syntax.
557
558 2005-05-09  Joseph S. Myers  <joseph@codesourcery.com>
559
560         PR c/21160
561         * doc/invoke.texi (-Wuninitialized): Update documentation.
562
563 2005-05-09  Richard Earnshaw  <richard.earnshaw@arm.com>
564
565         * arm.c (const_ok_for_arm): Use a faster algorithm.
566
567 2005-05-09  David Edelsohn  <edelsohn@gnu.org>
568
569         PR target/21477
570         * config/rs6000/rs6000.md (add_op2): New.
571         (add<mode>3): Use it.
572
573 2005-05-09  Richard Earnshaw  <richard.earnshaw@arm.com>
574
575         * arm.c (arm_gen_constant): Add new heuristic for generating
576         constant integers that can be expressed as the difference of two
577         valid immediates.
578
579 2005-05-09  Roger Sayle  <roger@eyesopen.com>
580
581         * c-tree.h (parser_build_unary_op): New prototype.
582         * c-typeck.c (parser_build_unary_op): New function to construct
583         a unary operation in the C parser.
584         * c-parser.c (c_parser_unary_expression):  Use the new function
585         parser_build_unary_op when appropriate.
586
587 2005-05-09  Mark Mitchell  <mark@codesourcery.com>
588
589         PR 18655
590         * dwarf2out.c (output_call_frame_info): Use DWARF2_FRAME_REG_OUT
591         before outputting DWARF_FRAME_RETURN_COLUMN.
592
593 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
594
595         * config/s390/s390.c: (s390_branch_condition_mask,
596         s390_branch_condition_mnemonic, s390_extra_constraint_str,
597         s390_const_ok_for_constraint_p, s390_expand_plus_operand,
598         legitimize_pic_address, s390_emit_tls_call_insn,
599         legitimize_tls_address, legitimize_tls_address,
600         s390_expand_addcc, print_shift_count_operand, print_operand,
601         addr_generation_dependency_p, annotate_constant_pool_refs,
602         s390_split_branches, find_constant_pool_ref,
603         replace_constant_pool_ref, s390_add_constant, s390_find_constant,
604         s390_find_execute, s390_mainpool_start, s390_chunkify_start,
605         s390_output_pool_entry, s390_function_value,
606         s390_call_saved_register_used, s390_emit_call): Replace
607         conditional aborts by gcc_assert and unconditional by gcc_unreachable.
608         (s390_select_ccmode, s390_match_ccmode_set, s390_extract_part,
609         s390_cannot_force_const_mem, s390_output_dwarf_dtprel,
610         get_some_local_dynamic_name, s390_function_arg_size,
611         s390_function_arg_advance, s390_function_arg,
612         s390_expand_builtin, s390_gen_rtx_const_DI): Replace abort in
613         default case by gcc_unreachable.
614         * config/s390/s390.md: ("*cjump_31", "*icjump_31", "*jump31"): Replace
615         conditional abort by gcc_assert.
616         ("doloop_si31"): Replace abort in last else by gcc_unreachable.
617         ("main_pool", "pool"): Replace unconditional abort by gcc_unreachable.
618
619 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
620
621         * config/s390/s390.c: (s390_decompose_address,
622         tls_symbolic_operand, legitimate_pic_operand_p,
623         legitimate_constant_p, legitimate_reload_constant_p,
624         s390_expand_plus_operand, legitimate_address_p,
625         legitimate_la_operand_p, ): Remove 'register' from signature.
626         (symbolic_reference_mentioned_p,
627         tls_symbolic_reference_mentioned_p): Remove 'register' from local
628         variable declarations.
629         (legitimize_address): Remove 'register' from
630         signature and local variable declarations.
631
632 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
633
634         * config/s390/s390-protos.h: (s390_match_ccmode,
635         s390_match_ccmode_set, reg_used_in_mem_p,
636         symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
637         legitimate_la_operand_p, preferred_la_operand_p,
638         s390_short_displacement, addr_generation_dependency_p,
639         legitimate_reload_constant_p, legitimate_address_p): Change return type
640         into 'bool'.
641         (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
642         * config/s390/s390.c: (s390_match_ccmode,
643         symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
644         legitimate_reload_constant_p): Change return type into 'bool'.
645         (preferred_la_operand_p,legitimate_la_operand_p, legitimate_address_p):
646         Likewise.  Additionally adapted comment.
647         (s390_extra_constraint_p): Change Comment to reflect 'int' return type.
648         (s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
649         (s390_decompose_address): Change the type of the internal flags
650         "pointer", "base_ptr", "indx_ptr", and the return value into 'bool'.
651         (struct s390_address): Change type of "pointer" into bool.
652         * config/s390/s390.md: ("*tmdi_reg", "*tmsi_reg", "tm<mode>_full"):
653         Adapt calls for 's390_tm_ccmode' to the new signature.
654
655 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
656
657         * config/s390/s390.c: (s390_match_ccmode_set,
658         s390_branch_condition_mnemonic, s390_short_displacement,
659         s390_decompose_address, get_thread_pointer, legitimize_tls_address,
660         print_shift_count_operand, get_some_local_dynamic_name,
661         get_some_local_dynamic_name_1, reg_used_in_mem_p,
662         addr_generation_dependency_p, s390_split_branches,
663         annotate_constant_pool_refs, find_constant_pool_ref,
664         replace_constant_pool_ref, find_ltrel_base, replace_ltrel_base,
665         s390_optimize_prologue, find_unused_clobbered_reg, s390_frame_area,
666         s390_register_info, s390_frame_info, s390_init_frame_layout,
667         s390_update_frame_layout, save_fpr, restore_fpr, save_gprs,
668         restore_gprs, s390_function_arg_size, s390_function_arg_float,
669         s390_init_machine_status, s390_assemble_integer, s390_handle_option,
670         s390_encode_section_info, s390_cannot_force_const_mem,
671         s390_delegitimize_address, s390_return_in_memory, s390_init_builtins,
672         s390_expand_builtin, s390_output_mi_thunk, s390_safe_attr_type,
673         s390_adjust_priority, s390_issue_rate,
674         s390_first_cycle_multipass_dfa_lookahead, s390_cannot_copy_insn_p,
675         s390_rtx_costs, s390_address_cost, s390_reorg, s390_valid_pointer_mode,
676         s390_build_builtin_va_list, s390_gimplify_va_arg,
677         s390_function_ok_for_sibcall, s390_call_saved_register_used,
678         s390_pass_by_reference, s390_fixed_condition_code_regs,
679         s390_cc_modes_compatible s390_mainpool_start,, s390_mainpool_finish,
680         s390_mainpool_cancel, s390_chunkify_start, s390_chunkify_finish,
681         s390_chunkify_cancel, s390_start_pool, s390_end_pool,
682         s390_add_pool_insn, s390_find_pool, s390_add_constant,
683         s390_find_constant, s390_add_execute, s390_find_execute,
684         s390_execute_label, s390_execute_target, s390_dump_pool,
685         s390_dump_execute, s390_alloc_pool, s390_free_pool): Remove prototypes.
686         Move target macro definitions to the end of the file.  Move several
687         functions within the file to assure correct compiling.
688
689 2005-05-09  Steven Bosscher  <stevenb@suse.de>
690
691         * calls.c (purge_reg_equiv_notes): Remove, fold into...
692         (fixup_tail_calls): ...here.  Only look at insns between the
693         start of the function and the FUNCTION_BEG insn note.
694
695         * gcse.c (one_cprop_pass): Fix typos in dumps.
696
697         * tree-ssa-operands.h (FOR_EACH_PHI_ARG): Fix typos.
698
699 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
700
701         * config/s390/s390.h: Move xxx_REGNUM definitions to s390.md.
702         * config/s390/s390.md: ("SIBCALL_REGNUM", "BASE_REGNUM",
703         "RETURN_REGNUM", "CC_REGNUM", "TP_REGNUM"): New constants.
704         Replace every occurrence of '(reg:<MODE> 33)' by '(reg:<MODE>
705         CC_REGNUM)'.
706         ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Replace
707         '(reg:<MODE> 36)' by '(reg:<MODE> TP_REGNUM)'.
708         ("*sibcall_br", "*sibcall_value_br"): Replace '(reg:DI 1)' by '(reg:DI
709         REG_SC)'.
710
711 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
712
713         * config/s390/s390.md: ("gf") New mode attribute.
714         ("fixuns_truncdfdi2", "fixuns_truncdfsi2", "fixuns_truncsfdi2",
715         "fixuns_truncsfsi2"): Merge.
716         ("fix_truncdfdi2", "fix_truncsfdi2"): Merge.
717         ("fix_truncdfdi2_ieee", "fix_truncdfsi2_ieee", "fix_truncsfdi2_ieee",
718         "fix_truncsfsi2_ieee"): Merge.
719
720 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
721
722         * config/s390/s390.md: ("FPR") New mode macro.
723         ("de", "dee"): New mode attributes.
724         ("cmpdf", "cmpsf"): Merge.
725         ("*cmpdf_ccs_0", "*cmpsf_ccs_0"): Merge.
726         ("*cmpdf_ccs_0_ibm", "*cmpdf_ccs_0_ibm"): Merge.
727         ("*cmpdf_ccs", "*cmpsf_ccs"): Merge.
728         ("*cmpdf_ccs_ibm", "*cmpsf_ccs_ibm"): Merge.
729         ("floatdidf2", "floatdisf2"): Merge.
730         ("adddf3", "addsf3"): Merge.
731         ("*adddf3", "*addsf3"): Merge.
732         ("*adddf3_cc", "*addsf3_cc"): Merge.
733         ("*adddf3_cconly", "*addsf3_cconly"): Merge.
734         ("*adddf3_ibm", "*addsf3_ibm"): Merge.
735         ("subdf3", "subsf3"): Merge.
736         ("*subdf3", "*subsf3"): Merge.
737         ("*subdf3_cc", "*subsf3_cc"): Merge.
738         ("*subdf3_cconly", "*subsf3_cconly"): Merge.
739         ("*subdf3_ibm", "*subsf3_ibm"): Merge.
740         ("muldf3", "mulsf3"): Merge.
741         ("*muldf3", "*mulsf3" "): Merge.
742         ("*muldf3_ibm", "*mulsf3_ibm"): Merge.
743         ("*fmadddf", "*fmaddsf"): Merge.
744         ("*fmsubdf", "*fmsubsf"): Merge.
745         ("divdf3", "divsf3"): Merge.
746         ("*divdf3", "*divsf3"): Merge.
747         ("*divdf3_ibm", "*divsf3_ibm"): Merge.
748         ("negdf2", "negsf2"): Merge.
749         ("*negdf2_cc", "*negsf2_cc"): Merge.
750         ("*negdf2_cconly", "*negsf2_cconly"): Merge.
751         ("*negdf2", "*negsf2"): Merge.
752         ("*negdf2_ibm", "*negsf2_ibm"): Merge.
753         ("absdf2", "abssf2"): Merge.
754         ("*absdf2_cc", "*abssf2_cc"): Merge.
755         ("*absdf2_cconly", "*abssf2_cconly"): Merge.
756         ("*absdf2", "*abssf2"): Merge.
757         ("*absdf2_ibm", "*abssf2_ibm"): Merge.
758         ("*negabsdf2_cc", "*negabssf2_cc"): Merge.
759         ("*negabsdf2_cconly", "*negabssf2_cconly"): Merge.
760         ("*negabsdf2", "*negabssf2"): Merge.
761         ("sqrtdf2", "sqrtsf2"): Merge.
762
763 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
764
765         * config/s390/s390.c: (s390_adjust_priority): Adapt to changed
766         attribute names.
767         * config/s390/2084.md: ("x_fsimpd", "x_fsimps", "x_fdivd", "x_fdivs",
768         "x_floadd", "x_floads", "x_fstored", "x_fstores"): Rename to
769         ("x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
770         "x_floadsf", "x_fstoredf", "x_fstoresf") and replace 'type'
771         attribute names.
772         * config/s390/s390.md: ("type"): Rename "fsimpd, fsimps, floadd, floads,
773         fstored, fstores, fmuld, fmuls, fdivd, fdivs, fsqrtd, fsqrts" to
774         "fsimpdf, fsimpsf, floaddf, floadsf, fstoredf, fstoresf, fmuldf,
775         fmulsf, fdivdf, fdivsf, fsqrtdf, fsqrtsf".
776         ("*cmpdf_ccs_0", "*cmpdf_css_0_ibm", "*cmpdf_ccs",
777         "*cmpdf_ccs_ibm", "*cmpsf_ccs_0", "*cmpsf_css_0_ibm",
778         "*cmpsf_ccs", "*cmpsf_ccs_ibm", "*movdi_64", "*movdi_31",
779         "*movsi_zarch", "*movsi_esa", "*movdf_64", "*movdf_31", "movsf",
780         "*muldf3", "*muldf3_ibm", "*fmadddf", "*fmsubdf", "*mulsf3",
781         "mulsf3_ibm", "*fmaddsf", "fmsubsf", "*divdf3", "*divdf3_ibm",
782         "*negdf2_cc", "*negdf2_cconly", "*negdf2", "*negdf2_ibm",
783         "*negsf2_cc", "*negsf2_cconly", "*negsf2", "*absdf2_cc",
784         "*absdf2_cconly", "*absdf2", "*absdf2_ibm", "*abssf2_cc",
785         "*abssf2_cconly", "*abssf2", "*abssf2_ibm", "*negabsdf2_cc",
786         "*negabsdf2_cconly", "*negabsdf2", "*negabssf2_cc",
787         "*negabssf2_cconly", "*negabssf2", "sqrtdf2", "sqrtsf2"): Rename
788         'type' value.
789         ("*divsf3"): Additionally rename second pattern to
790         "*divsf3_ibm".
791         ("truncdfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
792         "*adddf3", "*adddf3_cc", "*adddf3_cconly", "*adddf3_ibm",
793         "*addsf3", "*addsf3_cc", "*addsf3_cconly", "*subdf3",
794         "subdf3_cc", "*subdf3_cconly", "*subdf3_ibm", "*subsf3",
795         "subsf3_cc", "*subsf3_cconly", "*subsf3_ibm"): Merge identical
796         'type values' and rename 'type' value.
797         ("*addsf3"): Additionally rename second pattern to
798         "*addsf3_ibm".
799
800 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
801
802         * config/s390/s390.md: ("SHIFT"): New mode macro.
803         ("lr", "shift"): New mode attributes.
804         ("ashldi3", "lshrdi3"): Merge.
805         ("*ashldi3_31", "*lshrdi3"_31): Merge.
806         ("*ashldi3_64", "*lshrdi3"_64): Merge.
807         ("ashlsi3", "lshrsi3"): Merge.
808
809 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
810
811         * config/s390/s390.md: ("DSI", "SCOND"): New mode
812         macros.
813         ("E", "g"): New mode attributes.
814         ("*adddi3_alc_cc", "*addsi3_alc_cc"): Merge.
815         ("*adddi3_alc", "*addsi3_alc"): Merge.
816         ("*subdi3_slb_cc", "*subsi3_slb_cc"): Merge.
817         ("*subdi3_slb", "*subsi3_slb"): Merge.
818         ("adddicc", "addsicc"): Merge.
819         ("*sconddi", "*scondsi"): Merge.
820         ("*sconddi_neg", "*scondsi_neg"): Merge.
821         ("sltu", "sgtu", "sleu", "sgeu"): Merge.
822         ("negdi2", "negsi2"): Extract expander pattern from
823         "negsi2" and merge with "negdi2".
824         ("*negdi2"): Merge with instruction pattern of "negsi2".
825         ("*negdi2_cc", "*negsi2_cc"): Merge.
826         ("*negdi2_cconly", "*negsi2_cconly"): Merge.
827         ("rotldi3", "rotlsi3"): Merge.
828
829 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
830
831         * config/s390/s390.md: ("hc"): New mode attribute.
832         ("extendhidi2", "extendqidi2"): Merge.
833         ("*extendhidi2", "*extendqidi2"): Merge.
834         ("extendhisi2", "extendqisi2"): Merge.
835         ("zero_extendhidi2", "zero_extendqidi2"): Merge.
836         ("*zero_extendhidi2", "*zero_extendqidi2"): Merge.
837         Merged 2 define_split.
838         ("*zero_extendhisi2", "*zero_extendqisi2"): Merge.
839         ("*zero_extendhisi2_64", "*zero_extendqisi2_64"): Merge.
840
841 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
842
843         * config/s390/s390.md: ("COMPARE"): New mode macro.
844         ("beq", "bne", "bgt", "bgtu", "blt", "bltu", "bge", "bgeu",
845         "ble", "bleu", "bunordered", "bordered", "buneq", "bunlt",
846         "bungt", "bunle", "bunge", "bltgt"): Merge.
847
848 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
849
850         * config/s390/s390.md: ("INT"): New mode macro.
851         ("one_cmpldi2", "one_cmplsi2", "one_cmplhi2", "one_cmplqi2"):
852         Merge.
853
854 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
855
856         * config/s390/s390.md: ("GPR", "P"): New mode macros.
857         ("cmpdi", "cmpsi"): Merge.
858         ("strlendi", "strlensi"): Merge.
859         ("*strlendi", "*strlensi"): Merge.
860         ("movmemdi", "movmemsi"): Merge.
861         ("clrmemdi", "clrmemsi"): Merge.
862
863 2005-05-09  Adrian Straetling  <straetling@de.ibm.com>
864
865         * config/s390/s390.md: ("HQI"): New mode macro.
866         ("icm_lo", "icm_hi", "max_uint"): New mode attributes.
867         ("*tmhi_full", "*tmqi_full"): Merge.
868         ("*tsthiCCT", "*tstqiCCT"): Merge.
869         ("*tsthi", "*tstqi"): Merge.
870         ("*tsthi_cconly", "tstqi_cconly"): Merge.
871         ("*sethighhisi", "*sethighqisi"): Merge.
872
873 2005-05-09  Kazu Hirata  <kazu@cs.umass.edu>
874
875         * crtstuff.c, integrate.h, tree-scalar-evolution.h,
876         config/alpha/unicosmk.h, config/arc/arc.md,
877         config/arm/bpabi.h, config/arm/coff.h, config/arm/elf.h,
878         config/arm/ieee754-df.S, config/arm/ieee754-sf.S,
879         config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h,
880         config/arm/semi.h, config/arm/uclinux-elf.h,
881         config/arm/wince-pe.h, config/fr30/fr30.c,
882         config/rs6000/altivec.h: Update copyright.
883
884 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
885
886         * config/pdp11/pdp11.c (pdp11_output_function_prologue): Use
887         gcc_assert and gcc_unreachable as appropriate.
888         (pdp11_output_function_epilogue, output_move_double,
889         output_move_quad, print_operand_address, output_jump,
890         output_addr_const_pdp11): Likewise.
891         * config/pdp11/pdp11.h (FUNCTION_PROFILER,
892         ASM_OUTPUT_ALIGN): Likewise.
893         * config/pdp11/pdp11.md: Likewise.
894         (extendhisi2, subhi3, subqi3): Likewise.
895
896 2005-05-09  David Edelsohn  <edelsohn@gnu.org>
897
898         PR middle-end/21237
899         * dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through
900         to NE_EXPR case.
901
902 2005-05-09  Kazu Hirata  <kazu@cs.umass.edu>
903
904         * config/ia64/ia64.c: Fix a comment typo.
905
906 2005-05-09  Richard Earnshaw  <rearnsha@arm.com>
907
908         PR target/21397
909         * arm.c (ARM_OPT_SET_CPU, ARM_OPT_SET_ARCH, ARM_OPT_SET_TUNE): Define.
910         (arm_override_options): Use them instead of manifest constants.  Don't
911         allow -march to override the -mtune setting.
912
913 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
914
915         * config/iq2000/iq2000.c (abort_with_insn): Use fancy_abort.
916         (gen_int_relational): Use gcc_unreachable and gcc_assert as necessary.
917         (function_arg_advance, function_arg, save_restore_insns,
918         iq2000_expand_prologue, iq2000_output_conditional_branch,
919         expand_one_builtin, print_operand):
920         * config/iq2000/iq2000.md (tablejump): Likewise.
921
922 2005-05-09  David Ung  <davidu@mips.com>
923
924         * config/mips/mips.h (processor_type): Add names for the 24K.
925         * config/mips/mips.c (mips_cpu_info_table): Add names for the 24K
926         processor family.
927         * config/mips/mips.md (cnv_mode): New attribute for recording the
928         conversion types of float convert insns.
929         (cpu): Add 24k and 24kx.
930         (include): Include 24k.md file.
931         (truncdfsf2, extendsfdf2, fix_truncdfsi2_insn, fix_truncdfsi2_macro)
932         (fix_truncdfdi2, fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2)
933         (floatdisf2): Setup cnv_mode.
934         (fix_truncsfsi2_insn, fix_truncsfsi2_macro): Changed mode to SF and
935         setup cnv_mode.
936         * config/mips/24k.md: New file, contains 24k DFA pipeline
937         description.
938
939 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
940
941         * config/sh/sh.c (print_operand_address): Use gcc_assert and
942         gcc_unreachable as appropriate.
943         (print_operand, prepare_move_operands, prepare_scc_operands,
944         output_movedouble, output_branch, shift_insns_rtx, gen_shifty_op,
945         gen_shl_and, shl_sext_kind, gen_datalabel_ref, dump_table,
946         fixup_mova, gen_far_branch, sh_reorg, split_branches,
947         final_prescan_insn, output_stack_adjust, sh_expand_epilogue,
948         sh_set_return_address, sh_setup_incoming_varargs,
949         initial_elimination_offset, sh_pch_valid_p, get_free_reg,
950         sh_expand_builtin, sh_output_mi_thunk, extract_sfunc_addr,
951         check_use_sfunc_addr): Likewise.
952         * config/sh/netbsd-elf.h (FUNCTION_PROFILER): Likewise.
953         * config/sh/sh.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
954         * config/sh/symbian.c (sh_symbian_mark_dllexport,
955         sh_symbian_mark_dllimport): Likewise.
956         * config/sh/sh.md: Likewise.
957         (movdicc, call_pop, call_value_pop, casesi_worker_1,
958         casesi_worker_2, casesi_shift_media, casesi_load_media,
959         return_media): Likewise.
960
961 2005-05-08  Roger Sayle  <roger@eyesopen.com>
962
963         PR inline-asm/8788
964         * stmt.c (expand_asm_operands): Avoid calling force_reg on BLKmode
965         operands.
966
967 2005-05-08  Richard Henderson  <rth@redhat.com>
968
969         * config/alpha/alpha.c (adjust_address): Fix typo last change.
970
971 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
972
973         * config/m68hc11/m68hc11.h (REG_VALID_P): A regno must be >= 0
974         and -1 can happen in reg_renumber when no hard register is assigned.
975
976 2005-05-08  Steven Bosscher  <stevenb@suse.de>
977             Kazu Hirata  <kazu@cs.umass.edu>
978
979         PR tree-optimization/14841, tree-optimization/15838
980         * tree-ssa-ccp.c (fold_const_aggregate_ref): New.
981         (evaluate_stmt): Call it.
982
983 2005-05-08  Jakub Jelinek  <jakub@redhat.com>
984
985         * config/ia64/ia64.c (ia64_override_options): Don't set
986         ia64_flag_var_tracking and clear flag_var_tracking here...
987         (ia64_file_start): ... but here.
988
989 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
990
991         * config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use gcc_assert
992         and gcc_unreachable as appropriate.
993         (expand_prologue, expand_epilogue, m68hc11_gen_lowpart,
994         m68hc11_gen_highpart, print_operand, print_operand_address,
995         m68hc11_expand_compare, m68hc11_expand_compare_and_branch,
996         m68hc11_gen_movhi): Likewise.
997         * config/m68hc11/m68hc11.h (HARD_X_REGNUM): Reword comment.
998         * config/m68hc11/m68hc11.md: Reword comment.
999
1000 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
1001
1002         PR target/21281
1003         * config/m68hc11/predicates.md (splitable_operand): An immediate is
1004         allowed.
1005
1006 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
1007
1008         * config/m68hc11/predicates.md (reg_or_some_mem_operand): Do not allow
1009         the 68HC12 address indirect addressing mode as it is not supported by
1010         bset and bclr.
1011         * config/m68hc11/m68hc11-protos.h
1012         (m68hc11_valid_addressing_p): Declare.
1013         (m68hc11_add_mode): Declare.
1014         * config/m68hc11/m68hc11.c (m68hc11_valid_addressing_p): Rename from
1015         register_indirect_p and export it.
1016         (m68hc11_z_replacement): Use emit_insn_after when adding the save Z
1017         instruction so that it is part of the good BB.
1018         (m68hc11_gen_movhi): Fix invalid generation of indexed indirect
1019         addressing with movw.
1020         (m68hc11_gen_movqi): Use pula and pulb instead of lda and ldb for
1021         68HC12.
1022         * config/m68hc11/m68hc11.h (ADDR_STRICT, ADDR_INCDEC, ADDR_INDEXED,
1023         ADDR_OFFSET, ADDR_INDIRECT, ADDR__CONST): Moved from m68hc11.c.
1024         * config/m68hc11/m68hc11.md ("movhi_const0"): Use this pattern only
1025         for 68HC11.
1026         ("*movhi_68hc12"): Handle movhi_const0.
1027         ("*subhi3", "subqi3"): Use general_operand for operand 1.
1028         ("*subhi3_zext"): Likewise.
1029
1030 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
1031
1032         PR target/19051
1033         * config/m68hc11/m68hc11.md ("mulqi3"): Use general_operand for
1034         operand 1 and fix constraints.
1035         ("mulqihi3"): Use general_operand for operand 2.
1036
1037 2005-05-08  Julian Brown  <julian@codesourcery.com>
1038             H.J. Lu  <hongjiu.lu@intel.com>
1039             Paul Brook  <paul@codesourcery.com>
1040
1041         * configure.ac: Set ld_vers_major, ld_vers_minor and ld_vers_patch for
1042         GNU linker. Support linker version x.x.x.x.x. Require GNU linker
1043         20050308/2.16.0 or newer for comdat group.
1044         * configure: Regenerated.
1045         * config.in: Regenerated.
1046         * varasm.c (default_function_rodata_section): Put .rodata section in
1047         COMDAT group when necessary.
1048         (default_elf_asm_named_section): Rename HAVE_GAS_COMDAT_GROUP to
1049         HAVE_COMDAT_GROUP.
1050         (default_unique_section_1): Don't use .gnu.linkonce when COMDAT is
1051         available.
1052
1053 2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
1054
1055         * tree-dfa.c (referenced_vars, add_referenced_var): Use VEC
1056         instead of VARRAY.
1057         * tree-flow.h (num_referenced_var, referenced_var): Likewise.
1058         * tree-into-ssa.c (mark_def_site_blocks): Likewise.
1059         * tree-ssa.c (init_tree_ssa, delete_tree_ssa): Likewise.
1060         * tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
1061
1062 2005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
1063
1064         PR target/16925
1065         * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Handle split of
1066         64-bit constants on 64-bit hosts.
1067         (m68hc11_split_logical): Simplify.
1068         (m68hc11_split_move): Likewise.
1069
1070 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
1071             Paolo Bonzini  <bonzini@gnu.org>
1072
1073         * Makefile.in (cs-tconfig.h): Pass USED_FOR_TARGET to mkconfig.sh
1074         * aclocal.m4 (GCC_TARGET_TEMPLATE, AH_TEMPLATE): New.
1075         * configure.ac (enable_checking): Fix typos in runtime_checking.
1076         (ENABLE_RUNTIME_CHECKING): Mark as target template.
1077         (xm_file): Prepend auto-host.h
1078         (HAVE_GAS_HIDDEN, HAVE_LD_EH_FRAME_HDR): Mark as target template.
1079         * mkconfig.sh: Do not automatically define USED_FOR_TARGET in
1080         tconfig.h.
1081         * crtstuff.c: Do not include auto-host.h.
1082         (IN_LIBGCC2): Do not define.
1083         * gcov-io.h: Include tconfig.h, not auto-host.h.
1084         * libgcc2.c: Do not include auto-host.h.
1085         (abort): Do not undefine.
1086         * libgcov.c: Remove unneeded comment about config.h.
1087         * unwind-dw2-fde-glibc.c: Do not inlude auto-host.h.
1088         * config.in, configure: Regenerated.
1089
1090 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
1091             Falk Hueffner  <falk@debian.org>
1092
1093         * config/alpha/alpha.c (tls_symbolic_operand_1): Use gcc_assert
1094         and gcc_unreachable as appropriate.
1095         (get_aligned_mem, get_unaligned_address,
1096         alpha_emit_set_long_const, alpha_emit_conditional_branch,
1097         alpha_emit_setcc, alpha_emit_conditional_move,
1098         alpha_lookup_xfloating_lib_func, alpha_compute_xfloating_mode_arg,
1099         alpha_emit_xfloating_libcall, alpha_split_tfmode_pair,
1100         alpha_expand_unaligned_load, alpha_expand_block_move,
1101         alpha_expand_zap_mask, get_trap_mode_suffix,
1102         get_round_mode_suffix, get_some_local_dynamic_name,
1103         print_operand_address, function_arg, alpha_return_in_memory,
1104         function_value, alpha_expand_builtin,
1105         alpha_initial_elimination_offset, alpha_expand_epilogue,
1106         summarize_insn, alpha_handle_trap_shadows, alphaev5_insn_pipe,
1107         alphaev5_next_group, alpha_align_insns,
1108         unicosmk_initial_elimination_offset, unicosmk_unique_section,
1109         unicosmk_ssib_name): Likewise.
1110         * config/alpha/alpha.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
1111         * config/alpha/unicosmk.h (TRAMPOLINE_TEMPLATE,
1112         ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_DIFF_VEC): Likewise.
1113         * config/alpha/vms.h (INITIAL_ELIMINATION_OFFSET,
1114         ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
1115         * config/alpha/alpha.md (*divmodsi_internal_er,
1116         *divmoddi_internal_er, ashldi3, *insxl, sibcall, call_osf,
1117         call_nt, call_umk, call_vms, call_value, sibcall_value,
1118         call_value_osf, call_value_nt, call_value_vms, call_value_umk,
1119         *call_vms_1, *movmemdi_1, *clrmemdi_1, *call_value_vms_1): Likewise.
1120         * config/alpha/predicates.md (input_operand): Likewise.
1121
1122 2005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
1123
1124         * config/frv/frv.c (frv_default_flags_for_cpu): Use gcc_assert and
1125         gcc_unreachable, as appropriate.
1126         (frv_function_prologue, frv_alloc_temp_reg,
1127         frv_initial_elimination_offset, frv_expand_block_move,
1128         frv_expand_block_clear, frv_print_operand_jump_hint,
1129         frv_legitimize_tls_address, unspec_got_name, frv_emit_move,
1130         frv_emit_movsi, frv_split_cond_move, frv_split_minmax,
1131         frv_ifcvt_modify_insn, frv_ifcvt_modify_final,
1132         frv_adjust_field_align, frv_insn_unit, frv_cond_flags,
1133         frv_sort_insn_group, frv_reorder_packet, frv_matching_accg_mode,
1134         frv_in_small_data_p, frv_asm_out_constructor,
1135         frv_asm_out_destructor, frv_output_dwarf_dtprel): Likewise.
1136         * config/frv/frv.md (reload_incc_fp, *cond_exec_si_binary1,
1137         *cond_exec_si_binary2, *cond_exec_si_divide, *cond_exec_si_unary1,
1138         *cond_exec_sf_conv, *cond_exec_sf_add, call, sibcall, call_value,
1139         sibcall_value, casesi): Likewise.
1140
1141         * config/mn10300/mn10300.c (print_operand): Use gcc_assert and
1142         gcc_unreachable as appropriate.
1143         (print_operand_address, mn10300_print_reg_list, expand_prologue,
1144         expand_epilogue, notice_update_cc, initial_offset,
1145         mn10300_address_cost_1): Likewise.
1146         * config/mn10300/mn10300.md: Likewise.
1147         (absdf2, abssf2, negdf2, negsf2): Likewise.
1148
1149 2005-05-08  Richard Sandiford  <rsandifo@redhat.com>
1150
1151         PR target/21416
1152         * config/mips/mips.c (mips_emit_compare): Don't reverse UNGE and UNGT
1153         comparisons.
1154         * config/mips/mips.md (swapped_fcond): New code macro and attribute.
1155         (sgt_<mode>, sge_<mode>): Generalize to all members of swapped_fcond,
1156         including sunge_<mode> and sungt_<mode>.
1157
1158 2005-05-08  Richard Sandiford  <rsandifo@redhat.com>
1159
1160         * integrate.h (get_hard_reg_initial_val): Change type of register
1161         parameter from int to unsigned int.
1162         (has_hard_reg_initial_val): Likewise.
1163         * integrate.c (get_hard_reg_initial_val): Likewise.
1164         (has_hard_reg_initial_val): Likewise.  Remove cast to unsigned int.
1165
1166 2005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
1167
1168         * except.c (eh_status): Change the type of ttype_data to
1169         VEC(tree,gc)*.
1170         (add_ttypes_entry, assign_filter_values,
1171         output_function_exception_table): Use VEC instead of VARRAY.
1172
1173 2005-05-07  David Edelsohn  <edelsohn@gnu.org>
1174
1175         * config/rs6000/rs6000.md (popcount<mode>2): Fix non-C90 constant.
1176
1177 2005-05-07  Paul Brook  <paul@codesourcery.com>
1178
1179         * Makefile.in: Fix dependencies.
1180         (GCOV_IO_H, VARRAY_H): Set.
1181
1182 2005-05-07  Anthony Green  <green@redhat.com>
1183
1184         PR bootstrap/21403
1185         * configure.ac (STMP_FIXPROTO): Fix [ ] consumption problem in
1186         x$STMP_FIXPROTO test.
1187         * configure: Rebuilt.
1188
1189 2005-05-07  Joseph S. Myers  <joseph@codesourcery.com>
1190
1191         * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Do not define
1192         inappropriate feature test macros if flag_iso.
1193
1194 2005-05-07  Joseph S. Myers  <joseph@codesourcery.com>
1195
1196         * config/ia64/hpux.h (NO_IMPLICIT_EXTERN_C): Define.
1197
1198 2005-05-07  Hans-Peter Nilsson  <hp@axis.com>
1199
1200         PR target/21441
1201         * config/cris/cris.md ("*movdi_insn", "*mov_sidesisf_biap")
1202         ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
1203         Handle moved operand being in special register.
1204         ("smulsi3_highpart", "umulsi3_highpart"): Change .error into
1205         presumed working insn.
1206         (mover2side): Add FIXME.
1207
1208 2005-05-07  Richard Sandiford  <rsandifo@redhat.com>
1209
1210         * integrate.c (get_func_hard_reg_initial_val): Delete.
1211         (has_func_hard_reg_initial_val): Delete.
1212         (get_hard_reg_initial_val): Inline the old implementation of
1213         get_func_hard_reg_initial_val.  Use has_hard_reg_initial_val
1214         instead of has_func_hard_reg_initial_val to test for an existing
1215         pseudo.  Only create an rtx if a new initial value entry is needed.
1216         (has_hard_reg_initial_val): Scan the initial value list directly.
1217         Don't create an rtx.
1218
1219 2005-05-07  David Edelsohn  <edelsohn@gnu.org>
1220
1221         * config.gcc ({powerpc,rs6000}-ibm-aix*): Remove rs6000/aix.opt
1222         from extra_options.
1223         * config.in (HAVE_AS_POPCNTB): New.
1224         * configure.ac (HAVE_AS_MFCRF): Add .machine "pwr5" to AIX test.
1225         (HAVE_AS_POPCNTB): New.
1226         * configure: Regenerated.
1227         * config/rs6000/aix.h (TARGET_XL_COMPAT): Delete.
1228         * config/rs6000/rs6000.c (rs6000_override_options, power5): Add
1229         MASK_POPCNTB.  Uncomment rs6000_sched_restricted_insns_priority
1230         and rs6000_sched_costly_dep.
1231         * config/rs6000/rs6000.h (TARGET_POPCNTB): New.
1232         (TARGET_XL_COMPAT): Delete.
1233         * config/rs6000/rs6000.md (UNSPEC_POPCNTB): New.
1234         (popcount<mode>2): New.
1235         (popcntb<mode>2): New.
1236         * config/rs6000/rs6000.opt (mpopcntb): New.
1237
1238         * opt-functions.awk (var_set): Emit OPTION_MASK_ for InverseMask
1239         if variable name exists.
1240
1241 2005-05-07  Matt Kraai  <kraai@ftbfs.org>
1242
1243         * Makefile.in (c-gimplify.o): Depend on $(RTL_H) instead of rtl.h.
1244
1245 2005-05-07  Richard Henderson  <rth@redhat.com>
1246
1247         PR target/21412
1248         * config/rs6000/rs6000.c (rs6000_emit_move): Look for tls addresses
1249         with constant offsets.
1250
1251 2005-05-07  Nathan Sidwell  <nathan@codesourcery.com>
1252
1253         * config/v850/v850.c (print_operand): Use gcc_assert and
1254         gcc_unreachable, as appropriate.
1255         (print_operand_address, v850_handle_data_area_attribute,
1256         v850_encode_data_area, construct_restore_jr, construct_save_jarl,
1257         v850_insert_attributes, construct_prepare_instruction): Likewise.
1258         * config/v850/v850.h (INITIAL_ELIMINATION_OFFSET): Likewise.
1259         * config/v850/v850.md (movsicc, *sasf_1): Likewise.
1260
1261 2005-05-07  Kazu Hirata  <kazu@cs.umass.edu>
1262
1263         * tree-ssa-loop-ivcanon.c, config/i386/i386.c,
1264         config/rs6000/rs6000.h: Fix comment typos.
1265
1266 2005-05-07  Richard Sandiford  <rsandifo@redhat.com>
1267
1268         * doc/invoke.texi: Remove documentation for MIPS' -mint64 option.
1269         * config/mips/mips.c (TARGET_SCALAR_MODE_SUPPORTED_P): Delete.
1270         (mips_scalar_mode_supported_p): Delete.
1271
1272 2005-05-06  Eric Christopher  <echristo@redhat.com>
1273
1274         * config/mips/mips.opt: Remove -mint64 option.
1275         * config/mips/mips.c (override_options): Remove -mint64
1276         handling.
1277         * config/mips/mips.h (INT_TYPE_SIZE): Define to 32.
1278         * config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove
1279         64-bit integer handling.
1280         * doc/invoke.texi (Option Summary): Remove -mint64 for
1281         mips.
1282
1283 2005-05-06  Zdenek Dvorak  <dvorakz@suse.cz>
1284
1285         PR tree-optimization/19401
1286         * tree-flow.h (tree_unroll_loops_completely): Declaration changed.
1287         * tree-ssa-loop-ivcanon.c (enum unroll_level): New.
1288         (estimated_unrolled_size): New function.
1289         (try_unroll_loop_completely, canonicalize_loop_induction_variables,
1290         tree_unroll_loops_completely): Always unroll loops if the code size
1291         does not increase.
1292         * tree-ssa-loop.c (tree_complete_unroll): Indicate whether all
1293         loops should be unrolled completely.
1294         (gate_tree_complete_unroll): Run complete unrolling unconditionally.
1295
1296 2005-05-06  Zdenek Dvorak  <dvorakz@suse.cz>
1297
1298         PR rtl-optimization/21254
1299         * loop-iv.c (iv_number_of_iterations): Simplify infiniteness
1300         assumptions for loops that otherwise do not roll.
1301         (find_simple_exit): Prefer # of iterations that is guaranteed
1302         not to be infinite.
1303         * loop-unroll.c (decide_peel_once_rolling,
1304         decide_peel_completely): Check whether the loop is infinite.
1305
1306 2005-05-06  Pat Haugen  <pthaugen@us.ibm.com>
1307
1308         * config/rs6000/sysv4.opt: Fix typo.
1309
1310 2005-05-06  Denis Vlasenko  <vda@port.imtp.ilyichevsk.odessa.ua>
1311             Jakub Jelinek  <jakub@redhat.com>
1312
1313         PR target/21329
1314         * config/i386/i386.c (ix86_expand_movmem): Don't use rep; movsb
1315         for -Os if (movsl;)*(movsw;)?(movsb;)? sequence is shorter.
1316         Don't use rep; movs{l,q} if the repetition count is really small,
1317         instead use a sequence of movs{l,q} instructions.
1318
1319 2005-05-06  Jeff Law  <law@redhat.com>
1320
1321         PR tree-optimization/21380
1322         * tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
1323         thread through a block with no preds.
1324
1325 2005-05-06  Kazu Hirata  <kazu@cs.umass.edu>
1326
1327         * tree-ssa-operands.c (clobbered_v_may_defs, clobbered_vuses,
1328         ro_call_vuse, fini_ssa_operands, add_call_clobber_ops,
1329         add_call_read_ops): Use VEC instead of VARRAY.
1330
1331 2005-05-06  Nathan Sidwell  <nathan@codesourcery.com>
1332
1333         * config/mcore/mcore.c (mcore_print_operand_address): Use
1334         gcc_assert and gcc_unreachable as appropriate.
1335         (mcore_print_operand, mcore_gen_compare_reg, mcore_output_call,
1336         mcore_output_andn, output_inline_const, mcore_output_move,
1337         mcore_output_movedouble, mcore_expand_block_move,
1338         layout_mcore_frame, mcore_initial_elimination_offset,
1339         mcore_expand_prolog, mcore_mark_dllexport,
1340         mcore_mark_dllimport): Likewise.
1341         * config/mcore/mcore.h (switch_to_section): Likewise.
1342         * config/mcore/mcore.md: Likewise.
1343
1344 2005-05-06  Aldy Hernandez  <aldyh@redhat.com>
1345
1346         * config/rs6000/linux64.h: Remove MASK_PROFILE_KERNEL, and
1347         TARGET_PROFILE_KERNEL.
1348
1349         * config/rs6000/rs6000.c (output_profile_hook): Add comment to
1350         TARGET_PROFILE_KERNEL use.
1351
1352 2005-05-06  Nathan Sidwell  <nathan@codesourcery.com>
1353
1354         * config/m32r/m32r.c (m32r_encode_section_info): Use gcc_assert
1355         and gcc_unreachable, as appropriate.
1356         (gen_compare, gen_split_move_double, m32r_setup_incoming_varargs,
1357         m32r_expand_prologue, m32r_output_function_epilogue,
1358         m32r_legitimize_pic_address, m32r_print_operand_address,
1359         emit_cond_move, m32r_function_symbol,
1360         m32r_output_block_move): Likewise.
1361         * config/m32r/m32r.h (INITIAL_ELIMINATION_OFFSET): Likewise.
1362         * config/m32r/m32r.md ( *movsi_insn, *zero_branch_insn,
1363         *rev_zero_branch_insn): Likewise.
1364
1365 2005-05-06  Jakub Jelinek  <jakub@redhat.com>
1366
1367         PR c++/20961
1368         * varasm.c (merge_weak): Remove NEWDECL from WEAK_DECLS chain
1369         if both NEWDECL and OLDDECL are already weak.
1370
1371 2005-05-06  Richard Sandiford  <rsandifo@redhat.com>
1372
1373         * config/rs6000/sysv4.h (EXTRA_SUBTARGET_SWITCHES): Delete.
1374
1375 2005-05-05  J"orn Rennecke  <joern.rennecke@st.com>
1376             Kaz Kojima  <kkojima@gcc.gnu.org>
1377
1378         * config/sh/sh.c (sh_builtin_saveregs): Use copy_to_mode_reg
1379         and plus_constant.
1380
1381 2005-05-05  Aldy Hernandez  <aldyh@redhat.com>
1382             David Edelsohn  <edelsohn@gnu.org>
1383
1384         * config.gcc: Add .opt magic for the rs6000 ports.
1385
1386         * doc/invoke.texi: Document -mabi= option properly.  Document
1387         -misel and -mno-sel.  Document -mspe and -mno-spe.  Document
1388         -mvrsave and -mno-vrsave.  Document deprecation of -mspe= and
1389         -misel=.
1390
1391         * config/rs6000/aix.h: Remove XL_COMPAT stuff.  Remove
1392         SUBTARGET_SWITCHES and SUBSUBTARGET_SWITCHES.  Define
1393         TARGET_XL_COMPAT.
1394
1395         * config/rs6000/aix.opt: New.
1396         * config/rs6000/aix41.opt: New.
1397         * config/rs6000/aix64.opt: New.
1398         * config/rs6000/darwin.opt: New.
1399         * config/rs6000/linux64.opt: New.
1400         * config/rs6000/rs6000.opt: New.
1401         * config/rs6000/sysv4.opt: New.
1402
1403         * config/rs6000/sysv4.h: Delete definitions of MASK_* and
1404         associated TARGET_*.  Remove SUBTARGET_OPTIONS,
1405         SUBTARGET_SWITCHES.
1406         Define TARGET_USES_SYSV4_OPT.
1407         * config/rs6000/aix41.h: Remove SUBSUBTARGET_SWITCHES.
1408         * config/rs6000/aix43.h: Remove SUBSUBTARGET_SWITCHES.  Define
1409         TARGET_USES_AIX64_OPT.
1410         * config/rs6000/aix51.h: Same.
1411         * config/rs6000/aix52.h: Same.
1412         * config/rs6000/darwin.h: Remove SUBTARGET_SWITCHES,
1413         MASK_MACHO_DYNAMIC_NO_PIC, TARGET_MACHO_DYNAMIC_NO_PIC.
1414         Use TARGET_ALTIVEC_VRSAVE instead of rs6000_altivec_vrsave.
1415         Define TARGET_DYNAMIC_NO_PIC as TARGET_MACHO_DYNAMIC_NO_PIC.
1416         * config/rs6000/linux64.h: Use
1417         rs6000_explicit_options.  Remove EXTRA_SUBTARGET_SWITCHES.
1418
1419         * config/rs6000/rs6000.c: Remove definitions of
1420         rs6000_sched_restricted_insns_priority,
1421         rs6000_long_double_size_string, rs6000_altivec_vrsave,
1422         rs6000_altivec_vrsave_string, rs6000_isel, rs6000_spe,
1423         rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
1424         rs6000_abi_string, rs6000_warn_altivec_long, rs6000_longcall,
1425         rs6000_alignment_string.  Define rs6000_explicit_options.
1426         (rs6000_parse_abi_options): Remove.
1427         (rs6000_parse_alignment_option): Remove.
1428         (rs6000_parse_float_gprs_option): Remove.
1429         (rs6000_handle_option): New.  Define TARGET_HANDLE_OPTION.  Define
1430         TARGET_DEFAULT_TARGET_FLAGS.
1431         (rs6000_override_options): Revamp to use new .opt machinery.
1432
1433         * config/rs6000/rs6000.h: Remove old MASK_* and TARGET_* in favor
1434         of new .opt machinery.  Remove target_flags.  Redefine
1435         TARGET_MFCRF and TARGET_POWERPC64.  Remove TARGET_SWITCHES,
1436         SUBTARGET_SWITCHES, TARGET_OPTIONS, SUBTARGET_OPTIONS,
1437         rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
1438         rs6000_altivec_vrsave_string, rs6000_altivec_vrsave,
1439         rs6000_longcall_switch, rs6000_default_long_calls,
1440         rs6000_sched_costly_dep_str, rs6000_sched_costly_dep,
1441         rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch, and
1442         TARGET_ALTIVEC_VRSAVE.
1443
1444 2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
1445
1446         * config.gcc (hppa1.1-*-rtems*): Remove.
1447         * config/pa/rtems.h: Remove.
1448
1449 2005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
1450
1451         * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
1452         Exclude roe/603e multilib variants.
1453
1454 2005-05-04  Denis Chertykov  <denisc@overta.ru>
1455
1456         PR target/21284
1457         * config/avr/avr.c (avr_output_addr_vec_elt): Use special section
1458         for output.
1459
1460 2005-05-05  Richard Sandiford  <rsandifo@redhat.com>
1461
1462         * config.gcc (arm*-wince-pe*, arm-*-pe*, strongarm-*-pe): Add
1463         arm/pe.opt to $extra_options.
1464         * config/arm/arm.h (target_flags, target_fpu_name, target_fpe_name)
1465         (target_float_abi_name, target_float_switch, target_abi_name)
1466         (ARM_FLAG_APCS_FRAME, ARM_FLAG_POKE, ARM_FLAG_FPE, ARM_FLAG_APCS_STACK)
1467         (ARM_FLAG_APCS_FLOAT, ARM_FLAG_APCS_REENT, ARM_FLAG_BIG_END)
1468         (ARM_FLAG_INTERWORK, ARM_FLAG_LITTLE_WORDS, ARM_FLAG_NO_SCHED_PRO)
1469         (ARM_FLAG_ABORT_NORETURN, ARM_FLAG_SINGLE_PIC_BASE)
1470         (ARM_FLAG_LONG_CALLS, ARM_FLAG_THUMB, THUMB_FLAG_BACKTRACE)
1471         (THUMB_FLAG_LEAF_BACKTRACE, THUMB_FLAG_CALLEE_SUPER_INTERWORKING)
1472         (THUMB_FLAG_CALLER_SUPER_INTERWORKING, CIRRUS_FIX_INVALID_INSNS)
1473         (TARGET_APCS_FRAME, TARGET_POKE_FUNCTION_NAME, TARGET_FPE)
1474         (TARGET_APCS_STACK, TARGET_APCS_FLOAT, TARGET_APCS_REENT)
1475         (TARGET_BIG_END, TARGET_INTERWORK, TARGET_LITTLE_WORDS)
1476         (TARGET_NO_SCHED_PRO, TARGET_ABORT_NORETURN, TARGET_SINGLE_PIC_BASE)
1477         (TARGET_LONG_CALLS, TARGET_THUMB, TARGET_CALLER_INTERWORKING)
1478         (TARGET_CIRRUS_FIX_INVALID_INSNS, SUBTARGET_SWITCHES, TARGET_SWITCHES)
1479         (TARGET_OPTIONS, arm_cpu_select, arm_select,  structure_size_string)
1480         (arm_pic_register_string): Delete.
1481         (TARGET_BACKTRACE): Redefine using TARGET_TPCS_LEAF_FRAME and
1482         TARGET_TPCS_FRAME.
1483         (TARGET_DEFAULT, CONDITIONAL_REGISTER_USAGE): Update mask names.
1484         * config/arm/coff.h (TARGET_DEFAULT): Likewise.
1485         * config/arm/elf.h (TARGET_DEFAULT): Likewise.
1486         * config/arm/netbsd-elf.h (TARGET_DEFAULT): Likewise.
1487         * config/arm/netbsd.h (TARGET_DEFAULT): Likewise.
1488         * config/arm/semi.h (TARGET_DEFAULT): Likewise.
1489         * config/arm/uclinux-elf.h (TARGET_DEFAULT): Likewise.
1490         * config/arm/wince-pe.h (TARGET_DEFAULT): Likewise.
1491         * config/arm/pe.h (TARGET_DEFAULT): Likewise.
1492         (TARGET_FLAG_NOP_FUN, TARGET_NOP_FUN_DLLIMPORT): Delete.
1493         (SUBTARGET_SWITCHES): Delete.
1494         * config/arm/arm.c (target_float_switch): Delete.
1495         (arm_cpu_select): Moved from config/arm/arm.h.
1496         (target_fpu_name, target_fpe_name, target_float_abi_name)
1497         (target_abi_name, structure_size_string, arm_pic_register_string)
1498         (arm_select): Make static.
1499         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1500         (arm_handle_option): New function.
1501         (arm_override_options): Update target_flags checks for new mask names.
1502         Remove target_float_switch code.
1503         (arm_expand_prologue, thumb_expand_prologue): Check
1504         !TARGET_SCHED_PROLOG instead of TARGET_NO_SCHED_PRO.
1505         * config/arm/arm.opt, config/arm/pe.opt: New files.
1506
1507 2005-05-05  Nathan Sidwell  <nathan@codesourcery.com>
1508
1509         * config/arc/arc.c (get_arc_condition_code): Use gcc_assert &
1510         gcc_unreachable as appropriate.
1511         (arc_double_limm_p, arc_setup_incoming_varargs,
1512         arc_compute_function_type, arc_output_function_prologue,
1513         arc_output_function_epilogue, arc_eligible_for_epilogue_delay,
1514         output_shift, arc_print_operand, arc_print_operand_address,
1515         arc_final_prescan_insn): Likewise.
1516         * config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
1517
1518 2005-05-04  Geoffrey Keating  <geoffk@apple.com>
1519
1520         * config/rs6000/rs6000.md (P): Use TARGET_*BIT rather than
1521         comparing Pmode.
1522         (SDI): New.
1523         (cmp): Delete.
1524         (wd): New.
1525         (add<mode>3, add<mode>3_internal1, add<mode>3_internal2,
1526         add<mode>3_internal3, one_cmpl<mode>2, sub<mode>3, neg<mode>2,
1527         clz<mode>2, ctz<mode>2, ffs<mode>2): New.
1528         (addsi3, addsi3_internal1, addsi3_internal2, addsi3_internal3,
1529         (one_cmplsi2, subsi3, negsi2, clzsi2, ctzsi2, ffssi2): Remove.
1530         (adddi3, adddi3_internal1, adddi3_internal2, adddi3_internal3,
1531         (one_cmpldi2, subdi3, negdi2, clzdi2, ctzdi2, ffsdi2): Remove.
1532         (sync_compare_and_swap<mode>): Use <wd> rather than <cmp>.
1533
1534 2005-05-05  Paul Brook  <paul@codesourcery.com>
1535
1536         * Makefile.in: Replace dependencies on basic-block.h, c-pragma.h,
1537         cfgloop.h, diagnostic.h, insn-attr.h, langhooks-def.h, params.h,
1538         regs.h, system.h, tree-dump.h, tree-gimple.h, tree-scalar-evolution.h
1539         and tree-data-ref.h with *_H variables.
1540
1541 2005-05-05  Kelley Cook  <kcook@gcc.gnu.org>
1542
1543         * config/m32r/xm-m32r.h, config/m32r/xm-linux.h: Delete files.
1544
1545 2005-05-05  Kelley Cook  <kcook@gcc.gnu.org>
1546
1547         * system.h: Poison BYTEORDER and HOST_WORDS_BIG_ENDIAN.
1548
1549 2005-05-04  Gerald Pfeifer  <gerald@pfeifer.com>
1550
1551         * doc/contrib.texi (Contributors): Add Mostafa Hagog and Ayal Zaks.
1552
1553 2005-05-04 Fariborz Jahanian <fjahanian@apple.com>
1554
1555         * config/rs6000/rs6000.c (rs6000_emit_prologue): Emit
1556         setting of vrsave register for current function after
1557         call to save_world is emitted.
1558
1559 2005-05-05  Hans-Peter Nilsson  <hp@bitrange.com>
1560
1561         * config/mmix/predicates.md: New file.
1562         * config/mmix/mmix.c (mmix_symbolic_or_address_operand)
1563         (mmix_reg_or_constant_operand, mmix_reg_cc_operand)
1564         (mmix_foldable_comparison_operator, mmix_comparison_operator)
1565         (mmix_reg_or_0_operand, mmix_reg_or_8bit_operand): Remove.
1566         * config/mmix/mmix.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
1567         Don't define.
1568         * config/mmix/mmix.md: Include predicates.md.
1569         ("call", "call_value"): Force address to register if it isn't a
1570         mmix_symbolic_or_address_operand.
1571
1572 2005-05-04  Andrew MacLeod  <amacleod@redhat.com>
1573
1574         * tree-flow-inline.h (op_iter_init_use, op_iter_init_def): Assert that
1575         the flags are of appropriate types.
1576         (num_ssa_operands): Generalize using the generic interface.
1577         * tree-ssa-dce.c (remove_dead_stmt): Don't ask for kills on a DEF
1578         iterator.
1579
1580 2005-05-04  Richard Sandiford  <rsandifo@redhat.com>
1581
1582         * protoize.c (version_flag, quiet_flag, nochange_flag, nosave_flag)
1583         (keep_flag, local_flag, global_flag, cplusplus_flag): Make extern.
1584
1585 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
1586
1587         * tree-outof-ssa.c (edge_leader, stmt_list,
1588         analyze_edges_for_bb): Use VEC instead of VARRAY.
1589         (init_analayze_edges_for_bb, fini_analayze_edges_for_bb): New.
1590         (perform_edge_inserts): Call init_analayze_edges_for_bb and
1591         fini_analayze_edges_for_bb.
1592
1593 2005-05-04  James E Wilson  <wilson@specifixinc.com>
1594
1595         PR driver/21112
1596         * gcc.c (process_command): In the second argv scan loop, ignore
1597         Xassembler and Xpreprocessor, along with their argument.
1598
1599 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
1600
1601         * tree-flow-inline.h, tree-ssa-operands.c,
1602         tree-ssa-operands.h, tree-ssa-opfinalize.h:
1603         Likewise. tree-vn.c: Fix comment typos.
1604         * doc/passes.texi, doc/tree-ssa.texi: Fix typos.
1605
1606 2005-05-04  Paolo Bonzini  <bonzini@gnu.org>
1607
1608         * doc/tm.texi (Target Hooks): Document
1609         TARGET_RESOLVE_OVERLOADED_BUILTIN.
1610
1611 2005-05-04  Paul Brook  <paul@codesourcery.com>
1612
1613         * Makefile.in: Change dependencies on target.h to $(TARGET_H).
1614
1615 2005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
1616
1617         * dwarf2out.c (incomplete_types, retry_incomplete_types,
1618         gen_struct_or_union_type_die, dwarf2out_init): Use VEC instead
1619         of VARRAY.
1620
1621         * loop-unroll.c (var_to_expand, analyze_insn_to_expand_var,
1622         get_expansion, expand_var_during_unrolling,
1623         insert_var_expansion_initialization,
1624         combine_var_copies_in_loop_exit, release_var_copies): Use VEC
1625         instead of VARRAY.
1626
1627         * tree-ssa-loop-ivopts.c (rewrite_address_base): Don't call
1628         update_stmt.
1629
1630 2004-05-03  Andrew Pinski  <pinskia@physics.uc.edu>
1631
1632         PR middle-end/15618
1633         * fold-const.c (fold_widened_comparison): Treat BOOLEAN_TYPE
1634         the same as INTEGER_TYPE.
1635         (fold_binary): Fold "bool_var != 0" to bool_var.
1636         Fold "bool_var == 1" to bool_var.
1637
1638 2004-05-03  Richard Henderson  <rth@redhat.com>
1639
1640         PR middle-end/21318
1641         * function.c (instantiate_virtual_regs_in_insn): Use the mode
1642         from recog_data instead of insn_data.
1643
1644 2005-05-03  DJ Delorie  <dj@redhat.com>
1645
1646         * common.opt (fdiagnostics-show-option): No variable is needed.
1647         * diagnostic.h (diagnostic_context): Add show_option_requested flag.
1648         * diagnostic.c (diagnostic_initialize): Initialize show_option_requested.
1649         (diagnostic_report_diagnostic): Test for enabled diagnostics here.
1650         Save and restore original message format.  Use flag in context
1651         instead of global.
1652         (warning): Don't test for enabled warnings here.
1653         * opts.c (common_handle_option): Handle -fdiagnostics-show-option
1654         here.
1655
1656 2005-05-04  Kelley Cook  <kcook@gcc.gnu.org>
1657
1658         * config/m32r/xm-m32r.h: Don't define HOST_WORDS_BIG_ENDIAN.
1659         * config/m32r/xm-linux.h: Don't undefine HOST_WORDS_BIG_ENDIAN.
1660         * mips-tfile.c: Use WORDS_BIG_ENDIAN instead of HOST_WORDS_BIG_ENDIAN.
1661         * aclocal.m4: Don't include accross.m4.
1662         * configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
1663         Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
1664         * configure, config.in: Regenerate.
1665
1666 2005-05-04  Jakub Jelinek  <jakub@redhat.com>
1667
1668         PR middle-end/21265
1669         * expr.h (enum block_op_methods): Add BLOCK_OP_TAILCALL.
1670         (clear_storage): Add argument.
1671         * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall):
1672         Add tailcall argument, set CALL_EXPR_TAILCALL of the CALL_EXPR to
1673         tailcall.
1674         (emit_block_move): Handle BLOCK_OP_TAILCALL method.
1675         (clear_storage): Add method argument, handle BLOCK_OP_TAILCALL.
1676         (store_expr, store_constructor): Adjust callers.
1677         * builtins.c (expand_builtin_memcpy): Pass BLOCK_OP_TAILCALL
1678         to emit_block_move if CALL_EXPR_TAILCALL (exp).
1679         (expand_builtin_memmove): Add ORIG_EXP argument, copy
1680         CALL_EXPR_TAILCALL from ORIG_EXP to the new CALL_EXPR.
1681         (expand_builtin_bcopy): Replace ARGLIST and TYPE arguments
1682         with EXP.  Pass EXP to expand_builtin_memmove.
1683         (expand_builtin_memset): Add ORIG_EXP argument, pass
1684         BLOCK_OP_TAILCALL to clear_storage if CALL_EXPR_TAILCALL (orig_exp).
1685         (expand_builtin_bzero): Replace ARGLIST argument with EXP.
1686         Pass EXP to expand_builtin_memset.
1687         (expand_builtin_strcmp): Copy CALL_EXPR_TAILCALL from EXP to
1688         the new CALL_EXPR.
1689         (expand_builtin_strncmp): Likewise.
1690         (expand_builtin_printf): Replace ARGLIST argument with EXP.
1691         Copy CALL_EXPR_TAILCALL from EXP to the new CALL_EXPR.
1692         (expand_builtin_fprintf): Likewise.
1693         (expand_builtin): Adjust calls to
1694         expand_builtin_{memmove,bcopy,memset,bzero,{,f}printf}.
1695
1696         * config/i386/i386.c (ix86_expand_vector_set): Fix setting 3rd and 4th
1697         item in V4SF mode.
1698
1699         PR rtl-optimization/21239
1700         * combine.c (combine_simplify_rtx) <case VEC_SELECT>: Fix a typo.
1701
1702 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
1703
1704         * tree-flow.h (tree_ann_common_d): Move aux to ...
1705         (stmt_ann_d): ... here.
1706         * tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
1707         move_computations_stmt, schedule_sm): Update references to
1708         aux.
1709         * tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
1710
1711         * tree-cfg.c (remove_bb): Remove a redundant call to
1712         set_bb_for_stmt.
1713         * tree-if-conv.c (replace_phi_with_cond_modify_expr):
1714         Likewise.
1715
1716 2005-05-03  Richard Henderson  <rth@redhat.com>
1717
1718         * config/rs6000/rs6000.c: Remove conflict markers.
1719
1720         * cfg.c (dump_flow_info): Use max_reg_num, not max_regno.
1721
1722 2005-05-03  James E Wilson  <wilson@specifixinc.com>
1723
1724         * dwarf2out.c (lookup_filename): Call maybe_emit_file.
1725
1726 2005-05-03  DJ Delorie  <dj@redhat.com>
1727
1728         * c-decl.c (store_parm_decls_oldstyle): Let diagnostic machinery
1729         decide if the warning will be printed.
1730         * calls.c (expand_call): Likewise.
1731         * function.c (init-function_start): Likewise.
1732
1733         * common.opt (-fdiagnostics-show-option): New.
1734         * opts.c (option_enabled): Accept the option index instead of a
1735         pointer to the option descriptor.
1736         * opts.h (option_enabled): Likewise.
1737         * toplev.c (print_switch_values): Pass option index, not option
1738         descriptor.
1739         * diagnostic.h (diagnostic_info): Add option_index.
1740         * diagnostic.c: Include opts.h.
1741         (diagnostic_set_info): Initialize option_index.
1742         (diagnostic_report_diagnostic): Amend option name if appropriate.
1743         (warning): Check to see if the specified warning is enabled.
1744         Store option index.
1745         * doc/invoke.texi (-fdiagnostics-show-options): Document.
1746
1747 2005-05-03  Richard Henderson  <rth@redhat.com>
1748
1749         * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Fix ALL_REGS and
1750         SPEC_OR_GEN_REGS definitions.
1751
1752 2005-05-03  Alexandre Oliva  <aoliva@redhat.com>
1753
1754         PR target/16888
1755         * config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Clear reg names
1756         for unavailable registers.
1757
1758 2005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
1759
1760         * tree-cfg.c (tree_forwarder_block_p): Fix a typo.
1761
1762         * cfglayout.c (block_locators_blocks,
1763         insn_locators_initialize, insn_scope): Use VEC instead of
1764         VARRAY.
1765
1766         * tree-mudflap.c (deferred_static_decls, mudflap_enqueue_decl,
1767         mudflap_finish_file, mudflap_finish_file): Use VEC instead of
1768         VARRAY.
1769
1770 2005-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
1771
1772         * config/sparc/predicates.md (const_compl_high_operand): New.
1773         * config/sparc/sparc.c (sparc_emit_set_safe_HIGH64): Rename into
1774         gen_safe_HIGH64.
1775         (sparc_emit_set_const64_quick1): Adjust for above change.
1776         (sparc_emit_set_const64_quick2): Likewise.
1777         (sparc_emit_set_const64_longway): Likewise.
1778         (sparc_emit_set_const64): Likewise.
1779         * config/sparc/sparc.md (movhi_const64_special, movsi_const64_special,
1780         movdi_const64_special): Delete.
1781         (logical constant splitters): Use const_compl_high_operand.
1782
1783 2005-05-03  Richard Guenther  <rguenth@gcc.gnu.org>
1784
1785         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Use STRIP_TYPE_NOPS
1786         rather than STRIP_NOPS.
1787
1788 2005-05-03  Jakub Jelinek  <jakub@redhat.com>
1789
1790         PR rtl-optimization/21330
1791         * loop-unswitch.c (may_unswitch_on): Set *cinsn only when
1792         returning non-NULL.
1793         (unswitch_single_loop): Clear cinsn when retrying.
1794
1795         PR target/21297
1796         * config/i386/i386.c (legitimize_address): When canonicalizing
1797         ASHIFT into MULT, multiply by 1 << shift_count instead of
1798         1 << log2 (shift_count).
1799
1800 2005-05-03  Andrew MacLeod  <amacleod@redhat.com>
1801
1802         * lambda-code.c (gcc_loop_to_lambda_loop,
1803         lambda_loopnest_to_gcc_loopnest, phi_loop_edge_uses_def,
1804         stmt_is_bumper_for_loop, perfect_nest_p, replace_uses_of_x_with_y): Use
1805         generic operand interface.
1806         * tree-data-ref.c (find_data_references_in_loop): Use generic interface.
1807         * tree-dfa.c (collect_dfa_stats_r, mark_new_vars_to_rename): Use
1808         generic operand interface.
1809         * tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
1810         link_imm_use, link_imm_use_stmt, relink_imm_use, relink_imm_use_stmt,
1811         next_safe_imm_use, has_zero_uses, has_single_use, single_imm_use,
1812         num_imm_uses): Use ssa_use_operand_t.
1813         (get_def_ops, get_use_ops, get_v_may_def_ops, get_vuse_ops,
1814         get_v_must_def_ops): Delete.
1815         (get_def_from_ptr, get_phi_result_ptr): Get def directly now.
1816         (get_use_op_ptr, get_def_op_ptr, get_v_may_def_result_ptr,
1817         get_v_may_def_op_ptr, get_vuse_op_ptr, get_v_must_def_result_ptr,
1818         get_v_must_def_kill_ptr): Delete.
1819         (delink_stmt_imm_use): Move and use new operand interface.
1820         (op_iter_next_use, op_iter_next_def, op_iter_next_tree, op_iter_init,
1821         op_iter_next_tree): Use new operand implementation.
1822         (clear_and_done_ssa_iter): New.  Initialize a blank operand iterator.
1823         (op_iter_init_use, op_iter_init_def, op_iter_init_tree): Add iterator
1824         type check.
1825         (op_iter_next_mustdef, op_iter_next_maydef,
1826         op_iter_next_must_and_may_def): Delete. Replace with...
1827         (op_iter_next_maymustdef): New.  Combine must and may next operations.
1828         (op_iter_init_maydef, op_iter_init_mustdef,
1829         op_iter_init_must_and_may_def): Use new interface.
1830         (single_ssa_tree_operand ): New.  Process single operands only as trees.
1831         (single_ssa_use_operand): New.  Process single operands only as uses.
1832         (single_ssa_def_operand): New.  Process single operands only as defs.
1833         (zero_ssa_operands): New.  Return TRUE if there are zero operands of the
1834         specified types.
1835         (num_ssa_operands): New.  Count the number of specified operands.
1836         (compare_ssa_operands_equal): New.  Compare two statements' operands.
1837         (single_phi_def): New.  Return true if PHI has one def of the specified
1838         operand type.
1839         (op_iter_init_phiuse): New.  Initialize the iterator for PHI arguments.
1840         (op_iter_init_phidef): New.  Initialize the iterator for the PHI def.
1841         * tree-flow.h (struct immediate_use_iterator_d): Use ssa_use_operand_t.
1842         (struct stmt_ann_d): Operands field no longer require GTY().
1843         (vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Change prototype.
1844         * tree-into-ssa.c (mark_def_sites): Use SSA_OP_VMUSTKILL.
1845         * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
1846         dump_replaceable_exprs, rewrite_trees): Use generic interface.
1847         * tree-phinodes.c (make_phi_node, release_phi_node, resize_phi_node):
1848         Use use_operand_p instead of ssa_imm_use_t *.
1849         * tree-pretty-print.c (dump_vops): check if operands are active before
1850         dumping virtual operands.
1851         * tree-sra.c (sra_walk_function): Use ZERO_SSA_OPERANDS.
1852         * tree-ssa-ccp.c (likely_value): Use ZERO_SSA_OPERANDS.
1853         (ccp_fold): Use new interface.
1854         (ccp_visit_stmt): Remove unused variables and code.
1855         (convert_to_gimple_builtin): Insert statements before calling
1856         mark_new_vars_to_rename.
1857         * tree-ssa-copy.c (stmt_may_generate_copy): Use ZERO_SSA_OPERANDS.
1858         (copy_prop_visit_cond_stmt): Use generic interface.
1859         * tree-ssa-dom.c (struct expr_hash_elt): Use stmt pointer, not the
1860         annotation in table.
1861         (thread_across_edge): Use generic interface.
1862         (initialize_hash_element): Initialzie with stmt, not annotation.
1863         (eliminate_redundant_computations): Use generic interface.
1864         (record_equivalences_from_stmt): Pass stmt, not annotation.
1865         (avail_expr_hash, real_avail_expr_hash, avail_expr_eq): Use generic
1866         interface.
1867         * tree-ssa-dse.c (dse_optimize_stmt): Use ZERO_SSA_OPERANDS.
1868         * tree-ssa-loop-ivopts.c (find_invariants_stmt,
1869         find_interesting_uses_stmt, protect_loop_closed_ssa_form_use): Use
1870         generic operand interface.
1871         * tree-ssa-loop-niter.c (chain_of_csts_start, get_val_for): Use generic
1872         interface.
1873         * tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Use Generic operand
1874         Interface.
1875         * tree-ssa-operands.c (struct opbuild_list_d): New.  Operand build type.
1876         (build_defs, build_uses, build_v_may_defs, build_vuses,
1877         build_v_must_defs): Change type to struct opbuild_list_d.
1878         (ops_active): New.  Operands active boolean.
1879         (operand_memory, operand_memory_index): New.  Operand memory managers.
1880         (allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
1881         allocate_vuse_optype, allocate_v_must_def_optype): Delete.
1882         (free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
1883         Change from functions to static variable list heads.
1884         (opbuild_initialize_virtual): New.  Initialize a virtual build list.
1885         (opbuild_initialize_real): New.  Initialize a virtual build list.
1886         (opbuild_free): New.  Free a build list.
1887         (opbuild_num_elems): New.  Number of items in a list.
1888         (opbuild_append_real): New.  Add a real (tree *) operand.
1889         (opbuild_append_virtual): New.  Add and sort a virtual (tree) operand.
1890         (opbuild_first): New.  Return first element index in a list.
1891         (opbuild_next): New.  Return next element in a list.
1892         (opbuild_elem_real): New.  Return real element.
1893         (opbuild_elem_virtual): New.  Return virtual element.
1894         (opbuild_elem_uid): New.  Return UID of virtual element.
1895         (opbuild_clear): New.  Reset an operand list.
1896         (opbuild_remove_elem): New.  Remove an element form a list.
1897         (ssa_operands_active): New.  Return true if operand cache is active.
1898         (init_ssa_operands, fini_ssa_operands): Initialize new implementation.
1899         (ssa_operand_alloc): New.  Allocate memory from an operand chunk.
1900         (correct_use_link): Use use_operand_p.
1901         (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_defs,
1902         finalize_ssa_vuses, finalize_ssa_v_must_defs): New implmentation.
1903         (cleanup_v_may_defs): Use new implmentation.
1904         (finalize_ssa_stmt_operands, start_ssa_stmt_operands): New
1905         implementation.
1906         (append_def, append_use, append_v_may_def, append_vuse,
1907         append_v_must_def): Call opbuild_append routine instead of using varray.
1908         (build_ssa_operands): Simplify to simply use stmt, don't maintain a
1909         global parse_old_ops variable.
1910         (free_ssa_operands): New implementation.
1911         (update_stmt_operands): Move.  Change argument to build_ssa_operands.
1912         (copy_virtual_operands): Move. New generic implementation.
1913         (create_ssa_artficial_load_stmt): Move. New implementation.
1914         (swap_tree_operands): Update for new implementation.
1915         (get_expr_operands): Add stmt parameter to calls to swap_tree_operands.
1916         (add_call_clobber_ops, add_call_read_ops): Initialize opbuild list
1917         rather than a varray.
1918         (verify_imm_links): Use use_operand_p.
1919         (dump_immediate_uses_for): If the immediate use variable is a virtual
1920         variable, show the virtual ops in the stmt.
1921         * tree-ssa-operands.h (def_operand_p): No longer a structure.
1922         (NULL_DEF_OPERAND_P): Now a #define.
1923         (def_optype_d, use_optype_d, v_def_use_operand_type, v_may_def_optype_d,
1924         vuse_operand_type, vuse_optype_d, v_must_def_optype_d): Delete.
1925         (def_optype_d, use_optype_d, maydef_optype_d, vuse_optype_d,
1926         mustdef_optype_d): New.  Use Linked list representation.
1927         (SSA_OPERAND_MEMORY_SIZE): New.  Size of operand memory chunk.
1928         (struct ssa_operand_memory_d): New.  Allocated Chunk node.
1929         (struct stmt_operands_d): Change to new pointers that are not GTY.
1930         (STMT_USE_OPS, NUM_USES, SET_USE_OP, STMT_DEF_OPS, NUM_DEFS, SET_DEF_OP,
1931         STMT_V_MAY_DEF_OPS, NUM_V_MAY_DEFS, SET_V_MAY_DEF_RESULT,
1932         SET_V_MAY_DEF_OP, STMT_VUSE_OPS, NUM_VUSES, SET_VUSE_OP,
1933         STMT_V_MUST_DEF_OPS, NUM_V_MUST_DEFS, SET_V_MUST_DEF_RESULT,
1934         SET_V_MUST_DEF_KILL): Delete.
1935         (V_MAY_DEF_OPS, V_MAY_DEF_RESULT_PTR, V_MAY_DEF_RESULT,
1936         V_MAY_DEF_OP_PTR, V_MAY_DEF_OP): Rename to MAYDEF_*.
1937         (V_MUST_DEF_OPS, V_MUST_DEF_RESULT_PTR, V_MUST_DEF_RESULT,
1938         V_MUST_DEF_KILL_PTR, V_MUST_DEF_KILL): Rename to MUSTDEF_*.
1939         (enum ssa_op_iter_type): Operand iterator typechecking values.
1940         (struct ssa_operand_iterator_d): Use linked lists of operands.
1941         (SSA_OP_VMUSTDEFKILL): Rename to SSA_OP_VMUSTKILL.
1942         (FOR_EACH_SSA_MAYDEF_OPERAND, FOR_EACH_SSA_MUSTDEF_OPERAND,
1943         FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): Use op_iter_next_maymustdef.
1944         (FOR_EACH_PHI_ARG): New.  Iterate over PHI arguments.
1945         (FOR_EACH_PHI_OR_STMT_USE): New.  Iterate over PHI or stmt uses.
1946         (FOR_EACH_PHI_OR_STMT_DEF): New.  Iterate over PHI or stmt defs.
1947         (SINGLE_SSA_TREE_OPERAND, SINGLE_SSA_USE_OPERAND,
1948         SINGLE_SSA_DEF_OPERAND, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): New.
1949         * tree-ssa-opfinalize.h: New.  Function templates for expansion.
1950         (FINALIZE_ALLOC): Expands into alloc_def, alloc_use, alloc_maydef,
1951         alloc_vuse, and alloc_mustdef.
1952         (FINALIZE_FUNC): Expands into finalize_ssa_def_ops,
1953         finalize_ssa_use_ops, finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
1954         and finalize_ssa_v_must_def_ops.
1955         * tree-ssa-pre.c (add_to_sets): Pass tree to vn_add.
1956         (create_value_expr_from): Use stmt not vuse_optype as a parameter. Pass
1957         stmt around.
1958         (compute_avail): Use generic iterator interface.
1959         * tree-ssa-propagate.c (first_vdef): Use generic operand interface.
1960         (stmt_makes_single_load, stmt_makes_single_store): Use
1961         ZERO_SSA_OPERANDS.
1962         * tree-ssa-sink.c (is_hidden_global_store): Use ZERO_SSA_OPERANDS.
1963         (statement_sink_location): Use generic interface.
1964         * tree-ssa.c (verify_ssa):  Use %p in fprintf.  Use generic interface.
1965         (delete_tree_ssa): Don't call release_defs.  Call release_ssa_name and
1966         reset the immediate use link nodes.
1967         (stmt_references_memory_p): Use ZERO_SSA_OPERANDS.
1968         * tree-ssanames.c (make_ssa_name): Use use_operand_p.
1969         * tree-tailcall.c (find_tail_calls): Use ZERO_SSA_OPERANDS.
1970         (eliminate_tail_call): Use generic operand interface.
1971         * tree-vect-analyze.c (vect_analyze_data_refs): Use ZERO_SSA_OPERANDS.
1972         (vect_mark_relevant, vect_mark_stmts_to_be_vectorized): Use generic
1973         interface.
1974         * tree-vect-transform.c (update_vuses_to_preheader): Use generic
1975         interface.
1976         * tree-vectorizer.c (rename_variables_in_bb): Use generic interface.
1977         * tree-vn.c (struct val_expr_pair_d): Cache statment pointer instead of
1978         vuse_optype.
1979         (vn_compute, val_expr_pair_hash, vn_add, vn_lookup, vn_lookup_or_add):
1980         Use statement pointer instead of vuse_optype.  Use generic interface.
1981         * tree-vrp.c (maybe_add_assert_expr): Use generic interface.
1982         (stmt_interesting_for_vrp, vrp_visit_stmt): Use ZERO_SSA_OPERANDS.
1983         * tree.h (struct ssa_imm_use_d): Renamed to ssa_use_operand_d.
1984         (tree_ssa_name, phi_arg_d): Use ssa_use_operand_d.
1985         * doc/tree-ssa.texi: Update documentation for operand interface.
1986
1987 2005-05-03  Nathan Sidwell  <nathan@codesourcery.com>
1988
1989         * config/darwin.c (machopic_define_symbol): Use gcc_assert or
1990         gcc_unreachable as appropriate.
1991         (machopic_function_base_name, machopic_indirect_data_reference,
1992         machopic_legitimize_pic_address, darwin_non_lazy_pcrel): Likewise.
1993         * config/host-darwin.c (darwin_gt_pch_use_address): Likewise
1994         * config/rs6000/altivec.md (*mov<mode>_internal,
1995         build_vector_mask_for_load): Likewise.
1996         * config/rs6000/darwin.md (movdf_low_si, movdf_low_di,
1997         *call_nonlocal_darwin64, *call_value_nonlocal_darwin64,
1998         *sibcall_symbolic_64, *sibcall_value_symbolic_64): Likewise.
1999         * config/rs6000/predicates.md (easy_fp_constant,
2000         logical_operand): Likewise.
2001         * config/rs6000/rs6000.c (spe_expand_predicate_builtin,
2002         compute_save_world_info, rs6000_emit_prologue,
2003         rs6000_output_mi_thunk): Reword comments to avoid 'abort'.
2004         * config/rs6000/host-darwin.c (segv_handler): Use fancy_abort
2005         directly.
2006
2007 2005-05-03  Uros Bizjak  <uros@kss-loka.si>
2008
2009         PR middle-end/21282
2010         * convert.c (convert_to_integer): Convert ceil and floor in
2011         c99 mode only.
2012
2013 2005-04-29  Geoffrey Keating  <geoffk@apple.com>
2014
2015         PR target/20813
2016         * config/rs6000/rs6000.md (floatsidf2_internal): Merge to create
2017         define_insn_and_split.  Split only when memory operand is
2018         offsettable.  Use adjust_address rather than plus_constant.
2019         (floatunssidf2_internal): Likewise.
2020         (fix_truncdfsi2_internal): Split only when memory operand is
2021         offsettable.  Use adjust_address rather than plus_constant.
2022         (fix_trunctfsi2_internal): Likewise.
2023         (floatsidf2_internal): Likewise.
2024
2025 2005-05-02  Diego Novillo  <dnovillo@redhat.com>
2026
2027         * tree-vrp.c (set_value_range_to_nonnull): Declare inline.
2028         (set_value_range_to_null): Likewise.
2029         (set_value_range_to_varying): New function.  Use it in all
2030         call sites that used to call set_value_range (vr, VR_VARYING, ...).
2031         (extract_range_from_assert): If the integral type has a
2032         super-type, and LIMIT is not within MIN and MAX values of that
2033         type, set the resulting range to VR_VARYING.
2034
2035 2005-05-02  Hans-Peter Nilsson  <hp@bitrange.com>
2036
2037         * config/mmix/mmix.opt: New file.
2038         * config/mmix/mmix.h: Move options-related comments to mmix.opt.
2039         (mmix_cc1_ignored_option): Don't declare.
2040         (TARGET_OPTIONS, TARGET_MASK_LIBFUNCS, TARGET_MASK_ABI_GNU)
2041         (TARGET_MASK_FCMP_EPSILON, TARGET_MASK_ZERO_EXTEND)
2042         (TARGET_MASK_KNUTH_DIVISION, TARGET_MASK_TOPLEVEL_SYMBOLS)
2043         (TARGET_MASK_BRANCH_PREDICT, TARGET_MASK_USE_RETURN_INSN)
2044         (TARGET_MASK_BASE_ADDRESSES, TARGET_LIBFUNC, TARGET_ABI_GNU,
2045         (TARGET_FCMP_EPSILON, TARGET_ZERO_EXTEND, TARGET_KNUTH_DIVISION)
2046         (TARGET_TOPLEVEL_SYMBOLS, TARGET_BRANCH_PREDICT)
2047         (TARGET_BASE_ADDRESSES, TARGET_USE_RETURN_INSN, TARGET_SWITCHES):
2048         Don't define.
2049         (TARGET_DEFAULT): Change TARGET_MASK_... to MASK_...
2050         * config/mmix/mmix.c (mmix_cc1_ignored_option): Remove.
2051         (TARGET_DEFAULT_TARGET_FLAGS): Override default.
2052
2053 2005-05-02  Joseph S. Myers  <joseph@codesourcery.com>
2054
2055         PR c/15698
2056         * c-tree.h (C_DECL_BUILTIN_PROTOTYPE): New.
2057         * c-decl.c (current_function_prototype_built_in,
2058         current_function_prototype_arg_types): New.
2059         (merge_decls): Keep source location of prototype followed by
2060         nonprototype declaration.  Update C_DECL_BUILTIN_PROTOTYPE.
2061         (builtin_function): Set C_DECL_BUILTIN_PROTOTYPE.
2062         (start_function): Always set current_function_prototype_locus,
2063         current_function_prototype_built_in and
2064         current_function_prototype_arg_types.  Check for external
2065         prototype whether or not visible for external function and set
2066         current_function_prototype_arg_types accordingly.
2067         (store_parm_decls_oldstyle): Use
2068         current_function_prototype_arg_types for checking old-style
2069         definition against prototype.  Give warnings only if
2070         current_function_prototype_built_in).
2071
2072 2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
2073
2074         * ggc.h (ggc_alloc_zone_pass_stat): New macro.
2075         (ggc_alloc_zone_stat): Don't define.
2076         * ggc-zone.c (ggc_alloc_typed_stat, ggc_alloc_stat): Use
2077         ggc_alloc_zone_pass_stat.
2078         * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Likewise.
2079         * tree.c (make_node_stat, copy_node_stat, make_tree_binfo_stat)
2080         (make_tree_vec_stat, tree_cons_stat, build1_stat): Likewise.
2081
2082 2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
2083
2084         * calls.c (expand_call): Handle current_function_pretend_args_size
2085         when checking for sibcalls.
2086
2087 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
2088
2089         PR tree-optimization/21294
2090         * tree-vrp.c (vrp_expr_computes_nonzero): New.
2091         (extract_range_from_expr): Call vrp_expr_computes_nonzero.
2092
2093 2005-05-02  Janis Johnson  <janis187@us.ibm.com>
2094
2095         PR 19985
2096         * gcov-io.h: Declare gcov external functions hidden.
2097
2098 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
2099
2100         * tree-ssa-uncprop.c (equiv_hash_elt, remove_equivalence,
2101         record_equiv, tree_ssa_uncprop, uncprop_into_successor_phis):
2102         Use VEC instead of VARRAY.
2103         (equiv_free): New.
2104
2105         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Factor
2106         out common code.
2107
2108 2005-05-02  Paolo Bonzini  <bonzini@gnu.org>
2109
2110         * c-common.c (resolve_overloaded_builtin): Forward to target
2111         hook for BUILT_IN_MD built-ins.
2112         * c-typeck.c (finish_call_expr): Call resolve_overloaded_builtin
2113         for all types of built-in.
2114         * target-def.h (TARGET_RESOLVE_OVERLOADED_BUILTIN): New.  Use it
2115         in the definition of the target hooks struct.
2116         * target.h (struct gcc_target): Add resolve_overloaded_builtin.
2117         * config/rs6000/altivec.h: Rewritten.
2118         * config/rs6000/rs6000-c.c (struct altivec_builtin_types,
2119         altivec_resolve_overloaded_builtin, altivec_build_resolved_builtin,
2120         rs6000_builtin_type, rs6000_builtin_type_compatible,
2121         altivec_overloaded_builtins, rs6000_builtin_type,
2122         rs6000_builtin_type_compatible): New.
2123         * config/rs6000/rs6000.c (rs6000_builtin_types, rs6000_builtin_decls):
2124         New.
2125         (def_builtin): Turn into a function.  Check for duplicates and store
2126         the builtin into rs6000_builtin_decls.
2127         (bdesc_3arg, bdesc_dst, bdesc_altivec_preds, bdesc_2arg,
2128         bdesc_1arg): Add overloaded builtins.
2129         (altivec_expand_builtin): Check for unresolved overloaded builtins,
2130         do not support ALTIVEC_COMPILETIME_ERROR.
2131         (rs6000_init_builtins): Add opaque 128-bit vector, and internal
2132         nodes to represent front-end types.
2133         (altivec_init_builtins, rs6000_common_init_builtins): Create builtins
2134         with opaque arguments and/or return values.
2135         * config/rs6000/rs6000.h (enum rs6000_builtins): Remove
2136         ALTIVEC_COMPILETIME_ERROR and add Altivec overloaded builtins.
2137         (rs6000_builtin_type_index): New.
2138         (is_ev64_opaque_type): Rename to...
2139         (rs6000_is_opaque_type): ... this.
2140         (rs6000_cpu_cpp_builtins): Install the resolve_overloaded_builtin
2141         target hook.
2142
2143 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
2144
2145         * function.c (reorder_blocks, reorder_blocks_1): Use VEC
2146         instead of VARRAY.
2147
2148 2005-05-02  Nathan Sidwell  <nathan@codesourcery.com>
2149             Bernd Schmidt  <bernd.schmidt@analog.com>
2150
2151         * config/bfin/bfin.c (emit_link_insn, effective_address_32bit_p,
2152         print_address_operand, print_operand, legitimize_pic_address,
2153         asm_conditional_branch, bfin_gen_compare, output_push_multiple,
2154         output_pop_multiple): Use gcc_assert or gcc_unreachable as
2155         appropriate.
2156         * config/bfin/bfin.md (movsf splitter, beq, bne): Likewise.
2157
2158 2005-05-02  Dorit Naishlos  <dorit@il.ibm.com>
2159
2160         * doc/passes.texi: Document vectorization pass.
2161
2162 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
2163
2164         * tree-scalar-evolution.c (get_exit_conditions_rec,
2165         select_loops_exit_conditions,
2166         number_of_iterations_for_all_loops,
2167         analyze_scalar_evolution_for_all_loop_phi_nodes,
2168         scev_analysis): Use VEC instead of VARRAY.
2169
2170 2005-05-02  Michael Matz  <matz@suse.de>
2171
2172         PR c++/19542
2173         * c-common.c (c_common_nodes_and_builtins): Create global null_node.
2174         (warn_strict_null_sentinel): Define.
2175         (check_function_sentinel): Check for null_node as valid sentinel too.
2176         * c-common.h (c_tree_index): Added CTI_NULL.
2177         (null_node) Define global_tree[CTI_NULL].
2178         (warn_strict_null_sentinel): Declare.
2179         * c-opts.c: (c_common_handle_option): Handle -Wstrict-null-sentinel.
2180         * c.opt: (Wstrict-null-sentinel): New C++ option.
2181         * doc/invoke.texi (C++ Options): Document -Wstrict-null-sentinel.
2182
2183 2005-05-01  Kazu Hirata  <kazu@cs.umass.edu>
2184
2185         * gimplify.c (gimplify_compound_lval): Use VEC instead of
2186         VARRAY.
2187
2188         * global.c (calculate_reg_pav): Use VEC instead of VARRAY.
2189
2190         * dwarf2out.c (decl_scope_table, push_decl_scope,
2191         pop_decl_scope, scope_die_for, dwarf2out_init): Use VEC
2192         instead of VARRAY.
2193
2194 2005-05-01  Mark Mitchell  <mark@codesourcery.com>
2195
2196         PR C++/14391
2197         * c-cppbuiltin.c (c_cpp_builtins): Do not define __GXX_WEAK__ to 1
2198         if !flag_weak.
2199         * doc/cpp.texi (__DEPRECATED): Document.
2200         (__EXCEPTIONS): Likewise.
2201         (__GXX_WEAK__): Likewise.
2202
2203         * function.c (INVOKE__main): Do not define.
2204         (expand_main_function): Check HAS_INIT_SECTION when determining
2205         whether or not to call __main.
2206
2207 2005-05-01  Kazu Hirata  <kazu@cs.umass.edu>
2208
2209         * tree-ssa-loop-ivopts.c: Fix a comment typo.
2210
2211 2005-01-05  Paul Brook  <paul@codesourcery.com>
2212
2213         * config/arm/arm.h (ARM_EMIT_TRAMPOLINE_CACHE_CLEAR): Define.
2214         (INITIALIZE_TRAMPOLINE): Use it.
2215         * config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Remove.
2216         * config/arm/netbsd.h (INITIALIZE_TRAMPOLINE): Remove.
2217         * config/arm/netbsd-elf.h (INITIALIZE_TRAMPOLINE): Remove.
2218
2219 2005-05-01  Gerald Pfeifer  <gerald@pfeifer.com>
2220
2221         * doc/install.texi (Specific): Omit dots in the @anchors names
2222         for i?86-*-sco3.2v5*, i?86-*-solaris2.10, and sparc-sun-solaris2.7.
2223         Omit underscores for x86_64-*-* and the "all ELF targets" entry.
2224
2225 2005-05-01  Zdenek Dvorak  <dvorakz@suse.cz>
2226
2227         PR tree-optimization/18316
2228         PR tree-optimization/19126
2229         * tree.c (build_int_cst_type): Avoid shift by size of type.
2230         * tree-scalar-evolution.c (simple_iv): Add allow_nonconstant_step
2231         argument.
2232         * tree-scalar-evolution.h (simple_iv): Declaration changed.
2233         * tree-ssa-loop-ivopts.c (struct iv_cand): Add depends_on
2234         field.
2235         (dump_cand): Dump depends_on information.
2236         (determine_biv_step): Add argument to simple_iv call.
2237         (contains_abnormal_ssa_name_p): Handle case expr == NULL.
2238         (find_bivs, find_givs_in_stmt_scev): Do not require step to be a
2239         constant.
2240         (add_candidate_1): Record depends_on for candidates.
2241         (tree_int_cst_sign_bit, constant_multiple_of): New functions.
2242         (get_computation_at, get_computation_cost_at, may_eliminate_iv):
2243         Handle ivs with nonconstant step.
2244         (iv_ca_set_remove_invariants, iv_ca_set_add_invariants): New functions.
2245         (iv_ca_set_no_cp, iv_ca_set_cp): Handle cand->depends_on.
2246         (create_new_iv): Unshare the step before passing it to create_iv.
2247         (free_loop_data): Free cand->depends_on.
2248         (build_addr_strip_iref): New function.
2249         (find_interesting_uses_address): Use build_addr_strip_iref.
2250         (strip_offset_1): Split the recursive part from strip_offset.
2251         Strip constant offset component_refs and array_refs.
2252         (strip_offset): Split the recursive part to strip_offset_1.
2253         (add_address_candidates): Removed.
2254         (add_derived_ivs_candidates): Do not use add_address_candidates.
2255         (add_iv_value_candidates): Add candidates with stripped constant
2256         offset.  Consider all candidates with initial value 0 important.
2257         (struct affine_tree_combination): New.
2258         (aff_combination_const, aff_combination_elt, aff_combination_scale,
2259         aff_combination_add_elt, aff_combination_add,
2260         tree_to_aff_combination, add_elt_to_tree, aff_combination_to_tree,
2261         fold_affine_sum): New functions.
2262         (get_computation_at): Use fold_affine_sum.
2263         * tree-ssa-loop-manip.c (create_iv): Handle ivs with nonconstant step.
2264         * tree-ssa-loop-niter.c (number_of_iterations_exit): Add argument
2265         to simple_iv call.
2266
2267 2005-04-30  Michael Matz  <matz@suse.de>
2268
2269         * config/i386/i386.md (movmemsi): Also active when
2270         TARGET_INLINE_ALL_STRINGOPS.
2271
2272 2005-04-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
2273
2274         PR bootstrap/20633
2275         * config/freebsd-spec.h (FBSD_CPP_SPEC): Add %(cpp_arch).
2276
2277 2005-04-30  Paul Brook  <paul@codesourcery.com>
2278
2279         * config/arm/bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in
2280         thumb mode.
2281         * config/arm/ieee754-df.S: Use __INTERWORKING_STUBS__.
2282         * config/arm/ieee754-sf.S: Ditto.
2283         * config/arm/lib1funcs.asm: Define and use __INTERWORKING_STUBS__.
2284         (FUNC_ALIAS): Use .thumb_set for thumb routines.
2285
2286 2005-04-30  Kazu Hirata  <kazu@cs.umass.edu>
2287
2288         * tree-ssanames.c: Fix a comment typo.
2289         * doc/options.texi: Fix a typo.
2290
2291 2005-04-30  Nathan Sidwell  <nathan@codesourcery.com>
2292
2293         * config/h8300/h8300.c (byte_reg): Use gcc_assert and
2294         gcc_unreachable as appropriate.
2295         (split_adds_subs, cond_string, print_operand,
2296         h8300_initial_elimination_offset, h8300_classify_operand,
2297         h8300_unary_length, h8300_short_immediate_length,
2298         h8300_bitfield_length, h8300_binary_length,
2299         h8300_insn_length_from_table, compute_mov_length, output_plussi,
2300         compute_plussi_length, compute_plussi_cc, output_logical_op,
2301         compute_logical_op_length, compute_logical_op_cc,
2302         output_h8sx_shift, get_shift_alg, h8300_shift_needs_scratch_p,
2303         output_a_shift, compute_a_shift_length, compute_a_shift_cc,
2304         output_a_rotate, compute_a_rotate_length, fix_bit_operand,
2305         h8300_regs_ok_for_stm): Likewise.
2306         * config/h8300/h8300.md (*movsi_h8300, *movsf_h8300,
2307         monitor_prologue): Likewise.
2308
2309 2005-04-30  Kazu Hirata  <kazu@cs.umass.edu>
2310
2311         * loop-invariant.c (invariants, create_new_invariant,
2312         get_inv_cost, best_gain_for_invariant,
2313         find_invariants_to_move, move_invariants,
2314         init_inv_motion_data, free_inv_motion_data): Use VEC instead
2315         of VARRAY.
2316
2317 2005-04-29  Richard Henderson  <rth@redhat.com>
2318
2319         * function.c (instantiate_decls): Remove valid_only argument.
2320         (instantiate_decls_1, instantiate_decl): Likewise.
2321         (instantiate_virtual_regs_1): Delete.
2322         (instantiate_virtual_regs_lossage): Delete.
2323         (instantiate_virtual_regs_in_rtx): New.
2324         (safe_insn_predicate): New.
2325         (instantiate_virtual_regs_in_insn): New.
2326         (instantiate_virtual_regs): Update to match all that.  Only run
2327         instantiate_decls once.
2328
2329 2005-04-29  Richard Henderson  <rth@redhat.com>
2330             Daniel Jacobowitz  <dan@codesourcery.com>
2331
2332         * gengtype.c (write_func_for_structure): Split out ...
2333         (output_type_enum): ... new function.  Fix thinko accessing
2334         TYPE_PARAM_STRUCT data.
2335
2336 2005-04-29  Tom Tromey  <tromey@redhat.com>
2337
2338         * tree.c (build_block): Removed unused 'tags' argument.
2339         * tree.h (build_block): Removed argument.
2340
2341 2005-04-29  Michael Matz  <matz@suse.de>
2342
2343         PR rtl-optimization/21144
2344         * postreload.c (reload_cse_move2add): Check for VOIDmode.
2345
2346 2005-04-29  Bob Wilson  <bob.wilson@acm.org>
2347
2348         * config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Define to disable
2349         flag_reorder_blocks.
2350
2351 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
2352
2353         PR tree-optimization/21030
2354         * tree-vrp.c (adjust_range_with_scev): Do not create invalid
2355         ranges where VR->MAX is smaller than VR->MIN.
2356
2357 2005-04-29  Devang Patel  <dpatel@apple.com>
2358
2359         PR tree-optimization/21272
2360         PR tree-optimization/21266
2361         * tree-if-conv.c (find_phi_replacement_condition): Fix think-o.
2362
2363 2005-04-29  Kazu Hirata  <kazu@cs.umass.edu>
2364
2365         * tree-flow-inline.h: Fix a comment typo.
2366         * doc/tree-ssa.texi: Fix a typo.
2367
2368         * tree-flow-inline.h, tree-ssa-operands.c: Fix comment typos.
2369
2370 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
2371
2372         * config/fr30/fr30.c (fr30_expand_prologue): Use gcc_assert and
2373         gcc_unreachable as appropriate.
2374         (fr30_expand_epilogue, fr30_setup_incoming_varargs,
2375         fr30_print_operand, fr30_move_double): Likewise.
2376         * config/fr30/fr30.md (*movsi_internal, *movsf_internal): Likewise.
2377
2378 2005-04-29  Mark Mitchell  <mark@codesourcery.com>
2379
2380         * config/arm/arm.h (ARM_EABI_CTORS_SECTION_OP): Do not define if a
2381         definition has already been provided.
2382         (ARM_EABI_DTORS_SECTION_OP): Likewise.
2383         * config/arm/symbian.h (ARM_EABI_CTORS_SECTION_OP): Define.
2384         (ARM_EABI_DTORS_SECTION_OP): Likewise.
2385
2386 2005-04-29  Jim Tison  <jtison@us.ibm.com>
2387
2388         * config/s390/s390.md ("prologue_tpf", "epilogue_tpf"): Alter
2389         trace hooks calls to improve performance.
2390
2391 2005-04-29  Julian Brown  <julian@codesourcery.com>
2392             Mark Mitchell  <mark@codesourcery.com>
2393             Paul Brook  <paul@codesourcery.com>
2394
2395         * crtstuff.c: Handle targets that use .init_array.
2396         * function.c (HAS_INIT_SECTION): Do not define. Instead, make sure
2397         that INVOKE__main is set correctly.
2398         (expand_main_function): Test INVOKE__main.
2399         * libgcc2.c: Do not define __main when using .init_array.
2400         * config/arm/arm.c (arm_elf_asm_constructor): New function.
2401         * config/arm/arm.h (CTORS_SECTION_ASM_OP): Define, with specialized
2402         libgcc version.
2403         (DTORS_SECTION_ASM_OP): Likewise.
2404         (CTOR_LIST_BEGIN): Define specially when in libgcc.
2405         (CTOR_LIST_END): Likewise.
2406         (DTOR_LIST_BEGIN): Likewise.
2407         (DTOR_LIST_END): Likewise.
2408         * config/arm/bpapi.h (INIT_SECTION_ASM_OP): Do not define it.
2409         (FINI_SECTION_ASM_OP): Likewise.
2410         (INIT_ARRAY_SECTION_ASM_OP): Define.
2411         (FINI_ARRAY_SECTION_ASM_OP): Likewise.
2412         * config/arm/elf.h (TARGET_ASM_CONSTRUCTOR): Define.
2413         (SUPPORTS_INIT_PRIORITY): Evaluate to false for EABI based targets.
2414         * doc/tm.texi (INIT_ARRAY_SECTION_ASM_OP): Document.
2415         (FINI_ARRAY_SECTION_ASM_OP): Likewise.
2416
2417 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
2418
2419         * config/m68k/m68k.c (m68k_initial_elimination_offset): Use
2420         gcc_assert and gcc_unreachable as appropriate.
2421         (output_dbcc_and_branch, output_scc_di, legitimize_pic_address,
2422         const_int_cost, output_move_const_into_data_reg,
2423         output_move_qimode, output_move_double, find_addr_reg,
2424         print_operand, print_operand_address): Likewise.
2425         * config/m68k/m68k.md (adddi3, subdi3, negsf2, negdf2, abssf2,
2426         absdf2, sordered, sunordered, suneq, sunge, sungt, sunle, sunlt,
2427         sltgt, bordered, bunordered, buneq, bunge, bungt, bunle, bunlt,
2428         bltgt, *bordered_rev, *bunordered_rev, *buneq_rev, *bunge_rev,
2429         *bunle_rev, *bunlt_rev, *bltgt_rev, negxf2, absxf2,
2430         conditional_trap): Likewise.
2431         * config/m68k/m68kelf.h (ASM_OUTPUT_ALIGN): Remove unreachable code.
2432
2433 2005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
2434
2435         * config/xtensa/xtensa.c (gen_int_relational): Use gcc_assert and
2436         gcc_unreachable as appropriate.
2437         (gen_conditional_move, xtensa_split_operand_pair,
2438         xtensa_split_operand_pair, xtensa_copy_incoming_a7,
2439         xtensa_copy_incoming_a7, xtensa_copy_incoming_a7,
2440         xtensa_copy_incoming_a7, xtensa_output_literal,
2441         xtensa_output_literal, xtensa_output_literal): Likewise.
2442         * config/xtensa/xtensa.h (INITIAL_ELIMINATION_OFFSET): Likewise.
2443         * config/xtensa/xtensa.md (*btrue, *bfalse, *ubtrue, *ubfalse,
2444         *bittrue, *bitfalse, *masktrue, *maskfalse, movsicc_internal0,
2445         movsicc_internal1, movsfcc_internal0,
2446         movsfcc_internal1): Likewise.
2447
2448 2005-04-28  James E Wilson  <wilson@specifixinc.com>
2449
2450         * config/i386/i386.h (HI_REGISTER_NAMES): Fix typos in comment.
2451         (ADDITIONAL_REGISTER_NAMES): Delete obsolete mmx register entries.
2452
2453 2005-04-28  DJ Delorie  <dj@redhat.com>
2454
2455         * opt-functions.awk (var_set): Emit proper initializer for
2456         non-target bitfields.
2457
2458 2005-04-28  Devang Patel  <dpatel@apple.com>
2459
2460         * dbxout.c (have_used_extensions): Remove.
2461         (dbxout_type_fileds, dbxout_type, dbxout_symbol): Remove use of
2462         have_used_extensions.
2463
2464 2005-04-28  James E Wilson  <wilson@specifixinc.com>
2465
2466         * doc/install.texi: Update -enable-languages info.  Correct path to
2467         html docs.
2468
2469 2005-04-28  DJ Delorie  <dj@redhat.com>
2470
2471         * optc-gen.awk (END): Make sure no variable is defined more
2472         than once.
2473         * opth-gen.awk (END): Allocate bits on a per-variable basis.
2474         Allow for bitfield variables other than target_flags.
2475         * doc/options.text (Mask): Document that you may specify a
2476         variable other than target_flags.
2477
2478 2005-04-28  Martin Koegler <mkoegler@auto.tuwien.ac.at>
2479
2480         PR rtl-optimization/18877
2481         * reload.c (decompose) <case REG, case SUBREG>: Handle pseudo reg
2482         number in val.start.
2483
2484 2005-04-28  David Edelsohn  <edelsohn@gnu.org>
2485
2486         PR target/20813
2487         * config/rs6000/aix43.h (SUBSUBTARGET_SWITCHES, aix64): Add
2488         MASK_PPC_GFXOPT.
2489         * config/rs6000/aix51.h (SUBSUBTARGET_SWITCHES, aix64): Same.
2490         * config/rs6000/aix52.h (SUBSUBTARGET_SWITCHES, aix64): Same.
2491         * config/rs6000/sysv4.h (SUBTARGET_SWITCHES, 64): Same.
2492
2493 2005-04-28  Richard Earnshaw  <richard.earnshaw@arm.com>
2494
2495         * arm.c (legitimize_pic_address): Fix sense of assertion test for
2496         creating pseudos when the base offset is too large.
2497
2498 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
2499
2500         * global.c (earlyclobber_regclass): Change the type to
2501         VEC(int,heap).
2502         (check_earlyclobber): Update uses of earlyclobber_regclass.
2503         (mark_reg_use_for_earlyclobber): Likewise.
2504         (calculate_local_reg_bb_info): Allocate and free
2505         earlyclobber_regclass using the VEC API.
2506
2507 2005-04-28  Nathan Sidwell  <nathan@codesourcery.com>
2508
2509         * tree-ssa-alias.c (push_fields_onto_fieldstack): Remove bogus
2510         assert.
2511
2512 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
2513
2514         * modulo-sched.c, tree-stdarg.c: Use targetm.foo instead of
2515         (*targetm.foo).
2516
2517         * config.gcc: Obsolete c4x-* and tic4x-*.
2518
2519         * tree.h (edge_def): Remove.
2520
2521         * bt-load.c, cfgexpand.c, dwarf2out.c, emit-rtl.c, expr.c,
2522         function.c, global.c, lcm.c, loop-invariant.c, optabs.c,
2523         reorg.c, resource.c, tree-ssa-loop-ivopts.c, value-prof.c: Use
2524         JUMP_P, LABEL_P, REG_P, MEM_P, NONJUMP_INSN_P, and INSN_P
2525         where appropriate.
2526
2527         * attribs.c, c-pragma.c, caller-save.c, cfghooks.h,
2528         coverage.c, cselib.h, domwalk.c, domwalk.h, errors.c,
2529         errors.h, gcov-dump.c, gcov-io.c, gcov-io.h, gen-protos.c,
2530         genattrtab.h, genextract.c, gthr-win32.h, insn-notes.def,
2531         integrate.c, lambda-mat.c, lambda.h, libgcov.c, local-alloc.c,
2532         machmode.def, mips-tfile.c, params.c, pretty-print.c,
2533         print-rtl.c, protoize.c, regmove.c, sched-vis.c, tree-chrec.h,
2534         tree-data-ref.h, vec.h, config/darwin-c.c, config/sol2-c.c,
2535         config/sol2.c, config/arm/arm-cores.def, config/arm/cirrus.md,
2536         config/arm/symbian.h, config/c4x/c4x.c, config/c4x/c4x.h,
2537         config/i386/cygming.h, config/i386/djgpp.h,
2538         config/i386/lynx.h, config/i386/netware.c,
2539         config/i386/winnt.c, config/ia64/ia64-c.c,
2540         config/iq2000/iq2000.c, config/m32r/little.h,
2541         config/m68k/m68k-protos.h, config/m68k/m68k.h,
2542         config/m68k/m68k.md, config/mcore/mcore.c,
2543         config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.md,
2544         config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
2545         config/mn10300/mn10300.h, config/ns32k/netbsd.h,
2546         config/ns32k/ns32k.c, config/ns32k/ns32k.h,
2547         config/pa/pa-hpux11.h, config/pdp11/pdp11.c,
2548         config/pdp11/pdp11.h, config/rs6000/darwin.h,
2549         config/rs6000/default64.h, config/rs6000/rs6000-c.c,
2550         config/s390/2064.md, config/s390/2084.md,
2551         config/s390/s390-modes.def, config/s390/s390-protos.h,
2552         config/s390/tpf.h, config/sh/sh.h, config/sh/symbian.c,
2553         config/stormy16/stormy16.c, config/vax/vax-protos.h,
2554         config/vax/vax.c, config/vax/vax.h,
2555         config/xtensa/lib1funcs.asm, config/xtensa/xtensa.md: Update
2556         copyright.
2557
2558 2005-04-28  Joseph S. Myers  <joseph@codesourcery.com>
2559
2560         * c-typeck.c (build_compound_expr): Correct logic in last change.
2561
2562 2005-04-27  James E. Wilson  <wilson@specifixinc.com>
2563
2564         * config/ia64/ia64.c (update_set_flags): Delete ppred and pcond
2565         parameters.  Replace conditional move code with assert checking for
2566         ar.lc.  Delete obsolete comments.
2567         (set_src_needs_barrier): Delete cond parameter, and code using it.
2568         (rtx_needs_barrier): Delete initialization of cond.  Fix typo in
2569         assert checking for PR_REGS.  Fix calls to update_set_flags and
2570         set_src_needs_barrier.
2571         (group_barrier_needed): Renamed from group_barrier_needed_p.  Fix all
2572         callers.  Rewrite explanatory comment before the function.
2573         (safe_group_barrier_needed): Renamed from safe_group_barrier_needed_p.
2574         Fix all callers.
2575
2576 2005-04-27  Mike Stump  <mrs@apple.com>
2577
2578         * doc/cpp.texi: gcc now implements universal character names.
2579
2580 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
2581
2582         PR c/21159
2583         * c-typeck.c (build_compound_expr): Don't warn for left-hand side
2584         being a compound expression whose right-hand side is cast to void.
2585
2586 2005-04-27  Caroline Tice  <ctice@apple.com>
2587
2588         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2589         Remove targetm.have_named_sections test.
2590         (fix_edges_for_rarely_executed_code): Likewise.
2591         (insert_section_boundary_note): Likewise.
2592         (reorder_basic_blocks): Check partitioning flag before calling
2593         verify_hot_cold_block_grouping.
2594         * dbxout.c (dbxout_function_end): Get hot/cold section labels from
2595         the function struct rather than global variables.
2596         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
2597         (COLD_END_LABEL): Likewise
2598         (cold_text_section_label): New static global variable.
2599         (cold_end_label): Likewise.
2600         (dwarf2out_switch_text_section): Get hot/cold section labels from
2601         the function struct rather than global variables; test to make sure
2602         cfun is defined.
2603         (output_aranges): Use cold_text_section_label and cold_end_label;
2604         check partitioning flag before putting out delta.
2605         (output_ranges): Remove incorrect code attempting to use
2606         hot/cold labels.
2607         (output_line_info): Get cold section label from function struct; test
2608         to make sure cfun is defined.
2609         (add_location_or_const_value_attribute): Likewise.
2610         (dwarf2out_var_location): Likewise.
2611         (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
2612         write out cold_text_section_label if partition flag is set.
2613         (dwarf2out_finish): Write out cold_end_label if partition flag is set;
2614         * function.h (struct function): Add new fields to point to hot/cold
2615         section labels: hot_section_label, cold_section_label,
2616         hot_section_end_label and cold_section_end_label; also add new field
2617         for cold text section name, unlikely_text_section_name.
2618         * opts.c (decode_options): Turn off partitioning flag if
2619         !targetm.have_named_sections.
2620         * output.h (hot_section_label): Remove.
2621         (hot_section_end_label): Remove.
2622         (cold_section_end_label): Remove.
2623         (unlikely_section_label): Remove.
2624         (unlikely_text_section_name): Remove.
2625         * passes.c (rest_of_handle_final):  Remove extra blank line.
2626         * varasm.c (unlikely_section_label): Remove.
2627         (hot_section_label): Remove.
2628         (hot_section_end_label): Remove.
2629         (cold_section_end_label): Remove.
2630         (unlikely_text_section_name):  Remove.
2631         (initialize_cold_section_name): Modify to call
2632         targetm.strip_name_encoding; to store cold section name in current
2633         function struct, if it exists; and to only use the decl_section_name
2634         if flag_named_sections is true.
2635         (unlikely_text_section): Modify to get section name out of current
2636         function struct, if there is one; otherwise build it from
2637         UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
2638         (in_unlikely_text_section): Likewise.
2639         (named_section): Modify to get/put cold section name in current function
2640         struct, if there is one.
2641         (function_section):  Change 'bool unlikely' to 'int reloc'; check
2642         targetm.have_named_sections before calling named_section.
2643         (current_function_section): Likewise.
2644         (assemble_start_function): Modify to get/put unlikely_text_section_name
2645         in current function struct; modify to get hot/cold section labels
2646         from function struct; initialize labels using
2647         ASM_GENERATE_INTERNAL_LABEL;
2648         test partitioning flag before writing out hot section label.
2649         (assemble_end_function): Test partitioning flag before writing out
2650         hot/cold section labels.
2651         (default_section_type_flags_1):  Get cold text section name from
2652         function struct if there is one; Set flags correctly for
2653         cold text section if there is not a current function struct.
2654
2655 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
2656
2657         * tree-ssa-propagate.c (set_rhs): Revert last change.
2658
2659 2005-04-27  Steve Ellcey  <sje@cup.hp.com>
2660
2661         * explow.c (convert_memory_address): Add gcc_assert.
2662
2663 2005-04-27  Mark Mitchell  <mark@codesourcery.com>
2664
2665         * configure.ac: Check for ld --sysroot support.
2666         * gcc.c: Document %R specifier for specs.
2667         (SYSROOT_SPEC): New macro.
2668         (sysroot_spec): New variable.
2669         (static_specs): Add sysroot_spec.
2670         (main): Pass the sysroot spec to the linker if appropriate.
2671         * configure: Regenerated.
2672         * config.in: Likewise.
2673
2674 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
2675
2676         * fold-const.c (fold_binary): Use build_fold_addr_expr
2677         for address calculation and INDIRECT_REF handling.
2678
2679 2005-04-27  Andrew Haley  <aph@redhat.com>
2680
2681         * postreload-gcse.c (hash_scan_set): Remove bogus assertion.
2682
2683 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
2684
2685         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Reserve arm frame
2686         pointer when thumb backtracing is on.
2687
2688         * config/fp-bit.c (abort): Revert change.
2689
2690 2005-04-27  Ian Lance Taylor  <ian@airs.com>
2691
2692         * c-semantics.c (add_stmt): Don't test STATEMENT_CODE_P.
2693
2694 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
2695
2696         * tree-ssa-dce.c: Fix a comment typo.
2697
2698 2005-04-27  David S. Miller  <davem@davemloft.net>
2699
2700         * explow.c (allocate_dynamic_stack_space SETJMP_VIA_SAVE_AREA):
2701         Kill setjmpless_size.  current_function_calls_setjmp is completely
2702         computed when we are called, so just use the optimized size value
2703         instead of using REG_SAVE_AREA notes.
2704         (optimize_save_area_alloca): Delete....
2705         * rtl.h (optimize_save_area_alloca): Likewise...
2706         * passes.c (rest_of_compilation): and don't call it any more.
2707         * reg-notes.def (SAVE_AREA): Delete.
2708
2709 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
2710
2711         * config/fp-bit.c (abort): Add noreturn attribute.
2712
2713         * config/avr/avr.c (avr_naked_function_p): Use gcc_assert and
2714         gcc_unreachable as appropriate.
2715         (ptrreg_to_str, cond_string, avr_normalize_condition): Likewise.
2716         * config/avr/avr.h (ASM_OUTPUT_REG_PUSH,
2717         ASM_OUTPUT_REG_POP): Likewise.
2718
2719 2005-04-27  Paolo Bonzini  <bonzini@gnu.org>
2720
2721         * tree-complex.c (expand_vector_operations_1): Do not build
2722         VIEW_CONVERT_EXPR's for the lhs.
2723
2724 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
2725
2726         * config/pa/pa.h (PRINT_OPERAND_ADDRESS): Use gcc_assert, remove
2727         unnecessary noncanonical RTL handling.
2728         * config/pa/pa64-linux.h (INITIAL_ELIMINATION_OFFSET): Use
2729         gcc_assert and gcc_unreachable.
2730
2731         * config/arm/arm.h (ARM_PRINT_OPERAND_ADDRESS): Use gcc_assert and
2732         gcc_unreachable as appropriate.
2733         (THUMB_PRINT_OPERAND_ADDRESS): Likewise.
2734         * config/arm/arm.c (arm_override_options, arm_compute_func_type,
2735         use_return_insn, const_ok_for_op, arm_gen_constant,
2736         arm_canonicalize_comparison, legitimize_pic_address,
2737         thumb_find_work_register, arm_load_pic_register, arm_rtx_costs_1,
2738         arm_cirrus_insn_p, cirrus_reorg, minmax_code,
2739         load_multiple_sequence, emit_ldm_seq, store_multiple_sequence,
2740         emit_stm_seq, arm_gen_movmemqi, arm_select_dominance_cc_mode,
2741         arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi,
2742         move_minipool_fix_forward_ref, move_minipool_fix_backward_ref,
2743         dump_minipool, create_fix_barrier, push_minipool_fix, arm_reorg,
2744         fp_immediate_constant, fp_const_from_val, vfp_output_fstmx,
2745         output_call, output_mov_long_double_fpa_from_arm,
2746         output_mov_long_double_arm_from_fpa,
2747         output_mov_double_fpa_from_arm, output_mov_double_arm_from_fpa,
2748         output_move_double, arithmetic_instr, shift_op, int_log2,
2749         output_return_instruction, arm_output_function_prologue,
2750         arm_output_epilogue, arm_output_function_epilogue,
2751         emit_multi_reg_push, arm_get_frame_offsets,
2752         arm_compute_initial_elimination_offset, arm_expand_prologue,
2753         arm_print_operand, arm_assemble_integer, get_arm_condition_code,
2754         arm_final_prescan_insn, arm_init_iwmmxt_builtins,
2755         arm_expand_binop_builtin, thumb_pushpop, thumb_far_jump_used_p,
2756         thumb_compute_initial_elimination_offset,
2757         thumb_output_function_prologue, thumb_load_double_from_address,
2758         thumb_output_move_mem_multiple, thumb_reload_out_hi,
2759         arm_emit_vector_const, arm_dbx_register_number): Likewise.
2760         * config/arm/pe.c (arm_mark_dllexport, arm_mark_dllimport): Likewise.
2761         * config/arm/arm.md (thumb_extendhisi2,
2762         *thumb_extendhisi2_insn_v6, *thumb_extendqisi2,
2763         *thumb_extendqisi2_v6, movhi, *thumb_movhi_insn,
2764         thumb_movhi_clobber, movqi, *arm_buneq, *arm_bltgt,
2765         *arm_buneq_reversed, *arm_bltgt_reversed, suneq, sltgt): Likewise.
2766         * config/arm/cirrus.md (*cirrus_arm_movdi,
2767         *cirrus_movdf_hard_insn): Likewise.
2768         * config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
2769
2770 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
2771
2772         * tree-flow.h (ssa_names): Change the type to VEC(tree,gc).
2773         (num_ssa_names): Use VEC_length.
2774         (ssa_names): Use VEC_index.
2775         * tree-ssanames.c (ssa_names): Change the type to
2776         VEC(tree,gc).
2777         (init_ssanames, fini_ssa_names, make_ssanames,
2778         release_ssa_name): Update uses of ssa_names.
2779
2780         * dojump.c, emit-rtl.c, expmed.c, expr.c, stmt.c, stor-layout.c:
2781         Use fold_buildN instead of fold (buildN (...)).
2782
2783 2005-04-27  Devang Patel <dpatel@apple.com>
2784
2785         * dbxout.c (dbxout_type): Check use_gnu_debug_info_extensions.
2786
2787 2005-04-27  Matt Thomas <matt@3am-software.com>
2788             Jan-Benedict Glaw <jbglaw@microdata-pos.de>
2789
2790         * config/vax/vax.c (vax_rtx_costs): Whitespace cleanup.
2791         (vax_output_mi_thunk): Ditto.
2792         (vax_notice_cc_update): Ditto.
2793         (INDEX_REGISTER_P): Add trailing \.
2794         (BASE_REGISTER_P): Add trailing \.
2795         (legitimate_address_p): Whitespace cleanup.  Remove trailing \.
2796
2797 2005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
2798
2799         * tree-ssa-propagate.c (set_rhs): Check operand of
2800         ADDR_EXPR for gimpliness, too.
2801
2802 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
2803
2804         * tree-ssa-pre.c: Fix a comment typo.
2805
2806 2005-04-27  Zdenek Dvorak  <dvorakz@suse.cz>
2807
2808         PR tree-optimization/21171
2809         * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not
2810         record address uses if the reference is volatile.
2811
2812 2004-04-27  Paolo Bonzini  <bonzini@gnu.org>
2813
2814         * tree-complex.c (expand_vector_operation): New, extracted from
2815         expand_vector_operations_1.
2816         (tree_vec_extract): Build a NOP_EXPR.
2817         (expand_vec_parallel): Do not care about returning the correct type.
2818         (expand_vector_operations_1): Call expand_vector_operation.
2819         Build the VIEW_CONVERT_EXPR on the left side of MODIFY_EXPRs.
2820
2821         * tree-complex.c (gate_expand_vector_operations): New.
2822         (pass_lower_vector_ssa): Use it.
2823         * tree-optimize.c (init_tree_optimization_passes): Include
2824         pass_lower_vector_ssa.
2825         * tree-vect-transform.c (vect_min_worthwhile_factor): New.
2826         (vectorizable_operation): Use it.
2827         * tree-vectorizer.c (get_vectype_for_scalar_type): Accept
2828         integer modes for the vector type.
2829
2830         * defaults.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
2831         * tree-vect-analyze.c (vect_enhance_data_refs_alignment):
2832         Do not cope with UNITS_PER_SIMD_WORD == 0.
2833         * tree-vectorizer.c (get_vectype_for_scalar_type): Check
2834         if the scalar type is not bigger than UNITS_PER_SIMD_WORD.
2835         (vectorize_loops): Do not check that UNITS_PER_SIMD_WORD > 0.
2836         * config/i386/i386.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
2837         * config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
2838         * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
2839         * config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
2840
2841         * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): Remove.
2842         * config/bfin/bfin.h (UNITS_PER_SIMD_WORD): Remove.
2843         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): Remove.
2844
2845         * doc/tm.texi (UNITS_PER_WORD): Rephrase more accurately.
2846         (UNITS_PER_SIMD_WORD): New.
2847
2848 2005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
2849
2850         * config/ia64/ia64.c (ia64_encode_addr_area): Use gcc_assert and
2851         gcc_unreachable as appropriate.
2852         (ia64_expand_load_address, ia64_expand_tls_address,
2853         ia64_split_tmode, ia64_split_tmode_move, ia64_expand_compare,
2854         ia64_expand_vecint_compare, ia64_expand_vecint_minmax,
2855         next_scratch_gr_reg, ia64_initial_elimination_offset,
2856         ia64_expand_prologue, ia64_expand_epilogue,
2857         ia64_output_dwarf_dtprel, ia64_print_operand,
2858         ia64_register_move_cost, first_instruction, rws_access_regno,
2859         update_set_flags, rtx_needs_barrier, group_barrier_needed_p,
2860         ia64_sched_init, ia64_variable_issue,
2861         ia64_first_cycle_multipass_dfs_lookahead_guard,
2862         ia64_dfa_new_cycle, issue_nops_and_insn, get_template, bundling,
2863         ia64_st_address_bypass_p, ia64_ld_address_bypass_p, process_set,
2864         process_for_unwind_directive, ia64_hpux_file_end): Likewise.
2865         * config/ia64/ia64.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
2866         * config/ia64/ia64.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
2867         * config/ia64/predicates.md (got_symbolic_operand,
2868         sdata_symbolic_operand): Likewise.
2869         * config/ia64/vect.md (vcondv2sf): Likewise.
2870
2871 2005-04-27  Matt Thomas <matt@3am-software.com>
2872
2873         * config/vax/vax.c (legitimate_constant_address_p): New.  Formerly
2874         CONSTANT_ADDRESS_P in config/vax/vax.h
2875         (legitimate_constant_p): Added.  Formerly CONSTANT_P in vax.h.
2876         (INDEX_REGISTER_P): New.
2877         (BASE_REGISTER_P): New.
2878         (indirectable_constant_address_p): New.  Adapted from
2879         INDIRECTABLE_CONSTANT_ADDRESS_P in vax.h. Use SYMBOL_REF_LOCAL_P.
2880         (indirectable_address_p): New.  Adapted from
2881         INDIRECTABLE_ADDRESS_P in vax.h.
2882         (nonindexed_address_p): New.  Adapted from
2883         GO_IF_NONINDEXED_ADDRESS in vax.h.
2884         (index_temp_p): New.  Adapted from INDEX_TERM_P in vax.h.
2885         (reg_plus_index_p): New.  Adapted from GO_IF_REG_PLUS_INDEX in vax.h.
2886         (legitimate_address_p): New.  Adapted from
2887         GO_IF_LEGITIMATE_ADDRESS in vax.h.
2888         (vax_mode_dependent_address_p): New.  Adapted from
2889         GO_IF_MODE_DEPENDENT_ADDRESS in vax.h.
2890         * config/vax/vax.h (CONSTANT_ADDRESS_P): Use
2891         legitimate_constant_address_p.
2892         (CONSTANT_P): Use legitimate_constant_p.
2893         (INDIRECTABLE_CONSTANT_ADDRESS_P): Removed.
2894         (INDIRECTABLE_ADDRESS_P): Removed.
2895         (GO_IF_NONINDEXED_ADDRESS): Removed.
2896         (INDEX_TEMP_P): Removed.
2897         (GO_IF_REG_PLUS_INDEX): Removed.
2898         (GO_IF_LEGITIMATE_ADDRESS): Use legitimate_address_p. Two
2899         definitions, depending on whether REG_OK_STRICT is defined.
2900         (GO_IF_MODE_DEPENDENT_ADDRESS): Use vax_mode_dependent_address_p.
2901         Two definitions, depending on whether REG_OK_STRICT is defined.
2902         * config/vax/vax-protos.h (legitimate_constant_address_p): Prototype
2903         added.
2904         (legitimate_constant_p): Prototype added.
2905         (legitimate_address_p): Prototype added.
2906         (vax_mode_dependent_address_p): Prototype added.
2907
2908 2005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
2909
2910         * tree.h (phi_arg_d): Expand a comment in phi_arg_d.
2911
2912 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
2913
2914         PR c/21213
2915         * c-decl.c (finish_struct): Don't dereference NULL TYPE_FIELDS of
2916         transparent union.
2917
2918 2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
2919
2920         PR c/20740
2921         * c-format.c (init_dynamic_asm_fprintf_info): Give errors, not
2922         assertion failures, if __gcc_host_wide_int__ is not properly
2923         defined.
2924         (init_dynamic_diag_info): Give errors, not assertion failures, if
2925         location_t, tree or __gcc_host_wide_int__ are not properly
2926         defined.
2927
2928 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
2929
2930         * tree-ssa-loop-ivopts.c (ivopts_data, decl_rtl_to_reset,
2931         n_iv_uses, iv_use, n_iv_cands, iv_cand,
2932         tree_ssa_iv_optimize_init, record_use, add_candidate_1,
2933         prepare_decl_rtl, free_loop_data,
2934         tree_ssa_iv_optimize_finalize): Use the VEC API instead of
2935         VARRAY.
2936
2937         * tree.h (tree_phi_node): Add a comment about the order of PHI
2938         arguments.
2939
2940 2005-04-26  Paul Brook  <paul@codesourcery.com>
2941
2942         * config/arm/arm.md (thumb_mulsi3): Use two-operand assembly form.
2943
2944 2005-04-26  Nathan Sidwell  <nathan@codesourcery.com>
2945
2946         * config/mips.mips.c (mips_legitimize_tls_address): Use
2947         gcc_unreachable.
2948
2949         * config/mmix/mmix.c (mmix_assemble_integer): Use gcc_assert.
2950         * config/mmix/crti.asm (_init): Reword comment to avoid 'abort'.
2951         * config/mmix/mmix.md (nonlocal_goto_receiver): Likewise.
2952
2953         * config/sparc/sparc.h (enum reg_class): Reword comment to avoid
2954         'abort'.
2955
2956 2005-04-26  Jeff Law  <law@redhat.com>
2957
2958         * tree-flow-inline.h (op_iter_next_must_and_may_def): New.
2959         (op_iter_init_must_and_may_def): Likewise.
2960         (unmodifiable_var_p): Move to a later point in the file.
2961         * tree-ssa-operands.h (FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): New.
2962         * tree-ssa-dse.c (need_imm_uses_for): Remove, no longer needed.
2963         (dse_record_phis): Directly check for virtual operands rather than
2964         using need_imm_uses_for.
2965         (dse_optimize_stmt): Handle V_MUST_DEF operands.  Handle case where
2966         store has multiple V_{MAY,MUST}_DEF operands.
2967
2968 2005-04-26  Andrew MacLeod  <amacleod@redhat.com>
2969
2970         * tree-cfg.c (bsi_replace): Delink immediate uses for the original
2971         stmt.
2972
2973 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
2974
2975         * tree-cfg.c (lv_adjust_loop_header_phi): Speed up moving a
2976         call to find_edge outside a loop to go through a PHI chain.
2977
2978 2004-04-26  Richard Guenther  <rguenth@gcc.gnu.org>
2979
2980         PR tree-optimization/17598
2981         * fold-const.c (fold_binary): Fold comparisons of addresses
2982         of COMPONENT_REFs which reference the same field to
2983         comparisons of the addresses of the base objects.
2984
2985 2005-04-26  Julian Brown  <julian@codesourcery.com>
2986
2987         * config/arm/arm.c (arm_return_in_msb): New function.
2988         (arm_must_pass_in_stack): New function.
2989         (TARGET_RETURN_IN_MSB): Define target hook.
2990         (TARGET_MUST_PASS_IN_STACK): Define target hook.
2991         (arm_function_value): Pad small aggregate return.
2992         (arm_pad_arg_upward): New function.
2993         (arm_pad_reg_upward): New function.
2994         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Include complex values.
2995         (FUNCTION_ARG_PADDING): Define macro.
2996         (BLOCK_REG_PADDING): Define macro.
2997         (PAD_VARARGS_DOWN): Correct padding for AAPCS.
2998         * config/arm/arm-protos.h (arm_pad_arg_upward): Declare function.
2999         (arm_pad_reg_upward): Declare function.
3000
3001 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
3002
3003         * basic-block.h (ei_cond): New.
3004         (FOR_EACH_EDGE): Call ei_cond.
3005
3006         PR tree-optimization/21047
3007         * fold-const.c (fold_binary): Abort on ASSERT_EXPR.
3008         (fold): Don't handle ASSERT_EXPR.
3009
3010 2005-04-25  Roger Sayle  <roger@eyesopen.com>
3011
3012         * sched-deps.c (sched_analyze_1): On STACK_REGS targets, x87, treat
3013         all writes to any stack register as a read/write dependency on
3014         FIRST_STACK_REG.
3015         (sched_analyze_2): Likewise, for reads from any stack register.
3016
3017 2005-04-25  Richard Henderson  <rth@redhat.com>
3018
3019         * final.c (output_addr_const): Revert 2005-04-09 change.
3020
3021 2005-04-25  Mike Stump  <mrs@apple.com>
3022
3023         * config/darwin.c (darwin_encode_section_info): Always set
3024         MACHO_SYMBOL_STATIC for all ! TREE_PUBLIC symbols.
3025
3026 2005-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3027
3028         * collect2.c, gcc.c, gcov-dump.c, gcov.c, gen-protos.c,
3029         gensupport.c, protoize.c, toplev.c: Replace calls to
3030         `unlock_stream' with `unlock_std_streams'.
3031
3032 2005-04-25  Devang Patel <dpatel@apple.com>
3033
3034         * dbxout.c (dbxout_type): Emit attribute vector.
3035
3036 2005-04-05  Paul Brook  <paul@codesourcery.com>
3037
3038         * target-def.h (TARGET_CXX_USE_AEABI_ATEXIT): Define.
3039         * target.h (struct gcc_target): Add cxx.use_aeabi_atexit.
3040         * config/arm/arm.c (arm_cxx_atexit_name): New function.
3041         (TARGET_CXX_USE_AEABI_ATEXIT): New macro.
3042         * cp/decl.c (get_atexit_node): Reorder arguments for __aeabi_atexit.
3043         (register_dtor_fn): Likewise.
3044         * doc/tm.texi: Document TARGET_CXX_USE_AEABI_ATEXIT.
3045
3046 2005-04-25  Ian Lance Taylor  <ian@airs.com>
3047
3048         * c-common.def (EXPR_STMT): Remove, moved to C++ frontend.
3049         * c-common.h (EXPR_STMT_EXPR): Don't define.
3050         (c_common_stmt_codes): Don't define.
3051         * c-dump.c (c_dump_tree): Remove EXPR_STMT case.
3052         * c-gimplify.c (gimplify_expr_stmt): Remove.
3053         (c_gimplify_expr): Remove EXPR_STMT case.
3054         * c-objc-common.c (c_objc_common_init): Remove stmt_codes and call
3055         to INIT_STATEMENT_CODES.
3056         * c-pretty-print.c (pp_c_statement): Just call dump_generic_node.
3057
3058 2005-04-25  Jan Hubicka  <jh@suse.cz>
3059
3060         * tree-cfg.c (tree_duplicate_bb): Duplicate EH region too.
3061
3062         * except.c: Include diagnostic.h
3063         (dump_eh_tree, verify_eh_tree): New functions.
3064         * except.h (verify_eh_tree, dump_eh_tree, verify_eh_edges): Declare.
3065         * tree-cfg.c (tree_verify_flow_info): verify eh edges.
3066         (dump_function_to_file): dump eh tree.
3067         * tree-eh.c (mark_eh_edge): New function.
3068         (mark_eh_edge_found_error): New static variable.
3069         (verify_eh_edges): New function.
3070
3071 2005-04-25  Nathan Sidwell  <nathan@codesourcery.com>
3072
3073         * tree-ssa-alias.c (fieldoff_t): Remove.
3074         (fieldoff_s): typedef the structure itself.  Create a vector of
3075         objects.
3076         (push_fields_onto_fieldstack): Return count of fields pushed.
3077         Remove peeling of first field.  Adjust.
3078         (fieldoff_compare): Adjust.
3079         (create_overlap_variables_for): Adjust.
3080
3081 2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
3082
3083         * doc/invoke.texi (Blackfin Options): Avoid empty @opindex line.
3084
3085 2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
3086
3087         PR bootstrap/21215
3088         * doc/install.texi: Document correct assembler and linker to use
3089         on i?86-*-solaris2.10.
3090
3091 2005-04-25  Steven Bosscher  <stevenb@suse.de>
3092
3093         Fix PR tree-optimization/21173
3094
3095         * tree-ssa-pre.c (create_expression_by_pieces): Simplify code.
3096         Unshare expression we pass to force_gimple_operand.
3097
3098 2005-04-25  J"orn Rennecke <joern.rennecke@st.com>
3099             Stephen Clarke <stevec@superh.com>
3100             Roger Sayle <roger@eyesopen.com>
3101
3102         PR rtl-optimization/20413
3103         * cfgrtl.c (redirect_edge_and_branch): Use Pmode instead of
3104         VOIDmode for LABEL_REF.
3105         * final.c (shorten_branches): Likewise.
3106         * jump.c (mark_all_labels, redirect_exp_1): Likewise.
3107         * loop.c (reg_dead_after_loop): Likewise.
3108         * varasm.c (decode_addr_const): Likewise.
3109         * doc/rtl.texi: Document mode requirement for LABEL_REF.
3110
3111 2005-04-25  Ralf Corsepius  <ralf.corsepius@rtems.org>
3112
3113         * config.gcc (avr-*-*): Remove redundant "case".
3114
3115 2005-04-25  Kazu Hirata  <kazu@cs.umass.edu>
3116
3117         * tree-vect-analyze.c (vect_mark_relevant): Take
3118         VEC(tree,heap) instead of varray_type as an argument.
3119         (vect_mark_stmts_to_be_vectorized): Change the type of
3120         worklist to VEC(tree,heap).  Adjust uses of worklist.
3121
3122 2005-04-24  Devang Patel  <dpatel@apple.com>
3123
3124         *  config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
3125
3126 2005-04-24  Ian Lance Taylor  <ian@airs.com>
3127
3128         * c-semantics.c (build_stmt): Remove test of specific tree codes
3129         for TREE_SIDE_EFFECTS handling.
3130
3131 2005-04-24  Per Bothner  <per@bothner.com>
3132
3133         * c-opts.c (finish_options):  Make the line-number of the <built-in>
3134         location 0, as assumed elsewhere, rather than 1.
3135
3136 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
3137
3138         * tree-ssa-uncprop.c (equiv_stack): Change the type o
3139         VEC(tree,heap).
3140         (tree_ssa_uncprop, uncprop_finalize_block,
3141         uncprop_initialize_block): Update uses of equiv_stack.
3142
3143 2005-04-24  Richard Henderson  <rth@redhat.com>
3144
3145         PR rtl-opt/21163
3146         * simplify-rtx.c (simplify_binary_operation) <IOR>: Check
3147         for SCALAR_INT_MODE_P instead of not MODE_CC before returning
3148         constm1_rtx.
3149         <AND, LSHIFTRT, UMIN>: Use CONST0_RTX.
3150         <UDIV, UMOD>: Use CONST0_RTX and CONST1_RTX.
3151         <DIV, MOD>: Likewise.
3152
3153 2005-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3154
3155         * collect2.c (main): Unlock the stdio streams.
3156         * gcc.c (main): Likewise.
3157         * gcov-dump.c (main): Likewise.
3158         * gcov.c (main): Likewise.
3159         * gen-protos.c (main): Likewise.
3160         * gensupport.c (init_md_reader_args_cb): Likewise.
3161         * protoize.c (main): Likewise.
3162         * toplev.c (general_init): Likewise.
3163
3164 2005-04-24  Jakub Jelinek  <jakub@redhat.com>
3165
3166         PR middle-end/20991
3167         * cgraph.h (cgraph_local_info): Add vtable_method field.
3168         * varasm.c (mark_decl_referenced): If cgraph_global_info_ready
3169         and node is vtable_method, finalized and not reachable, don't do
3170         anything.
3171
3172 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
3173
3174         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Use
3175         COMPARISON_CLASS_P.
3176         * tree-ssa-pre.c (create_value_expr_from): Use
3177         CONSTANT_CLASS_P and REFERENCE_CLASS_P.
3178         * tree-ssa-propagate.c (stmt_makes_single_load,
3179         stmt_makes_single_store): Use REFERENCE_CLASS_P.
3180         * tree-vect-transform.c (vect_is_simple_cond): Use
3181         COMPARISON_CLASS_P.
3182         * tree-vrp.c (extract_range_from_assert,
3183         build_assert_expr_for, fp_predicate, has_assert_expr): Use
3184         COMPARISON_CLASS_P.
3185
3186         * tree-ssa-live.c (build_tree_conflict_graph): Change the type
3187         of tpa_to_clear to VEC(int,heap).  Update uses of
3188         tpa_to_clear.  Free tpa_to_clear at the end.
3189
3190 2005-04-24  Andrew Pinski  <pinskia@physics.uc.edu>
3191
3192         * tree.h (TREE_THIS_VOLATILE): Document the effect on a
3193         function decl.
3194
3195 2005-04-24  Nathan Sidwell  <nathan@codesourcery.com>
3196
3197         * config/rs6000/rs6000.c (rs6000_override_options): Use gcc_assert
3198         and gcc_unreachable as appropriate.
3199         (num_insns_constant, output_vec_const_move,
3200         build_mask64_2_operands, rs6000_output_dwarf_dtprel,
3201         rs6000_emit_set_const, rs6000_emit_move,
3202         spe_build_register_parallel, function_arg,
3203         rs6000_move_block_from_reg, altivec_expand_predicate_builtin,
3204         spe_expand_predicate_builtin, spe_expand_evsel_builtin,
3205         rs6000_expand_builtin, spe_init_builtins, altivec_init_builtins,
3206         rs6000_common_init_builtins, expand_block_clear,
3207         expand_block_move, validate_condition_mode, ccr_bit, extract_MB,
3208         extract_ME, rs6000_get_some_local_dynamic_name,
3209         rs6000_output_function_entry, print_operand,
3210         print_operand_address, rs6000_generate_compare, rs6000_emit_sCOND,
3211         output_cbranch, output_e500_flip_gt_bit,
3212         rs6000_emit_vector_compare, rs6000_emit_vector_compare,
3213         rs6000_emit_cmove, rs6000_emit_minmax, rs6000_split_multireg_move,
3214         compute_save_world_info, rs6000_stack_info,
3215         rs6000_emit_load_toc_table, rs6000_frame_related,
3216         spe_synthesize_frame_save, rs6000_emit_epilogue,
3217         rs6000_output_function_epilogue, rs6000_hash_constant, output_toc,
3218         output_function_profiler, rs6000_trampoline_size,
3219         rs6000_initialize_trampoline, find_addr_reg,
3220         rs6000_machopic_legitimize_pic_address,
3221         rs6000_initial_elimination_offset,
3222         rs6000_dbx_register_number): Likewise.
3223         * config/rs6000/rs6000.md (*fix_truncdfsi2_internal,
3224         *movdf_hardfloat32, *movdf_softfloat32, *fix_trunctfsi2_internal,
3225         *movti_power, *movti_string, call, call_value, sibcall,
3226         sibcall_value): Likewise.
3227         * config/rs6000/spe.md (*movdf_e500_double,
3228         *movv2si_internal): Likewise.
3229         * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Remove 'abort'
3230         from comment.
3231
3232 2005-04-24  Richard Henderson  <rth@redhat.com>
3233
3234         PR target/21101
3235         * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Move guts to ...
3236         * config/i386/i386.c (ix86_cannot_change_mode_class): ... here.
3237         Deny modes smaller than 4 bytes.
3238         * config/i386/i386-protos.h: Update.
3239
3240 2005-04-24  Ralf Corsepius  <ralf.corsepius@rtems.org>
3241
3242         * config.gcc (h8300-*-rtems*): Add h8300-*-rtemscoff*.
3243         Switch h8300-*-rtems* to ELF.
3244
3245 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
3246
3247         * vec.h (VEC_safe_grow): Replace grow with safe_grow.
3248
3249 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
3250
3251         * ipa-inline.c, tree-ssa-operands.h: Fix comment typos.
3252
3253 2005-04-23  Richard Guenther  <rguenth@gcc.gnu.org>
3254
3255         PR middle-end/21082
3256         * fold-const.c: Fold &a[i]-&a[j] to i-j.
3257
3258 2005-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
3259
3260         * tree-ssa-loop-niter.c (tree_simplify_using_condition): Expand simple
3261         definitions of ssa names in condition.  Split recusive part to ...
3262         (tree_simplify_using_condition_1): New function.
3263         (expand_simple_operations): New function.
3264
3265 2005-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
3266
3267         * tree-ssa-loop-ivopts.c (struct cost_pair): Add value field.
3268         (find_interesting_uses_cond): Do not use integer_zerop and
3269         integer_nonzerop to check for integer constants.
3270         (set_use_iv_cost): Record the value field.
3271         (determine_use_iv_cost_generic, determine_use_iv_cost_address,
3272         determine_use_iv_cost_outer): Set the value field of the cost pair.
3273         (may_eliminate_iv): Do not return the comparison code.
3274         (iv_elimination_compare): New function.
3275         (determine_use_iv_cost_condition): Set the value field.  Record
3276         noneliminable invariants correctly.
3277         (rewrite_use_compare, rewrite_use_outer): Use the value field.
3278
3279 2005-04-23  DJ Delorie  <dj@redhat.com>
3280
3281         * diagnostic.c (warning): Accept parameter to classify warning option.
3282         (warning0): New, for when a pointer to an error() like function is needed.
3283         * errors.c (warning): Likewise.
3284         * errors.h (warning, warning0): Adjust prototypes.
3285         * toplev.h (warning, warning0): Likewise.
3286
3287         * attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
3288         c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
3289         c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
3290         fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
3291         genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
3292         reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
3293         tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
3294         tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.
3295
3296         * config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
3297         config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
3298         config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
3299         config/darwin.c, config/darwin.h, config/h8300/h8300.c,
3300         config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
3301         config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
3302         config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
3303         config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
3304         config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
3305         config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
3306         config/rs6000/aix52.h, config/rs6000/darwin.h,
3307         config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
3308         config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
3309         config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
3310         config/stormy16/stormy16.c, config/v850/v850-c.c,
3311         config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
3312         callers.
3313
3314 2005-04-23  Richard Henderson  <rth@redhat.com>
3315
3316         PR rtl-opt/21102
3317         * simplify-rtx.c (simplify_binary_operation): Fix mode check before
3318         performing some integral scalar simplifications.
3319
3320 2005-04-23  Richard Henderson  <rth@redhat.com>
3321
3322         PR target/21099
3323         * config/i386/i386.c (ix86_split_to_parts): Use proper mode when
3324         simplifying CONST_VECTOR.
3325
3326 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
3327
3328         * tree-ssa-live.c (live_worklist): Take a stack allocated on
3329         heap as an argument.  Update uses of stack.
3330         (calculate_live_on_entry): Allocate stack on heap.
3331
3332         * tree-ssa-live.c (build_tree_conflict_graph): Allocate
3333         partition_link and tpa_nodes on heap.
3334
3335         * tree-ssa-dce.c (worklist): Change to VEC(tree,heap).
3336         (mark_stmt_necessary, propagate_necessity,
3337         mark_really_necessary_kill_operand_phis): Update uses of
3338         worklist.
3339         (tree_dce_init): Allocate worklist using VEC_alloc.
3340         (tree_dce_done): Free worklist using VEC_free.
3341
3342 2005-04-23  Mike Stump  <mrs@apple.com>
3343
3344         * config/darwin.c (machopic_indirection_name): Don't use
3345         quotes needlessly.
3346         (darwin_emit_unwind_label): Use user_label_prefix instead of
3347         "_".
3348
3349 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
3350
3351         * final.c, ipa-inline.c, varasm.c: Fix comment typos.
3352
3353 2005-04-23  Hans-Peter Nilsson  <hp@axis.com>
3354
3355         * config.gcc <cris-*>: Specify .opt files.
3356         * config/cris/cris.opt, config/cris/elf.opt, config/cris/aout.opt,
3357         config/cris/linux.opt: New files.
3358         * config/cris/aout.h (CRIS_SUBTARGET_SWITCHES)
3359         (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
3360         (TARGET_ELF): Override to 0.
3361         (CRIS_SUBTARGET_HANDLE_OPTION): Override to handle -melinux and
3362         -melinux-stacksize=N.
3363         * config/cris/cris.c: (cris_handle_option): New function.
3364         (TARGET_DEFAULT_TARGET_FLAGS): Override.
3365         (TARGET_HANDLE_OPTION): Override to cris_handle_option.
3366         (cris_override_options): Use MASK_*, not TARGET_MASK_*.
3367         * config/cris/cris.h (TARGET_MASK_SVINTO, TARGET_SVINTO,
3368         (TARGET_MASK_CCINIT, TARGET_CCINIT, TARGET_MASK_PDEBUG)
3369         (TARGET_PDEBUG, TARGET_MASK_SIDE_EFFECT_PREFIXES)
3370         (TARGET_SIDE_EFFECT_PREFIXES, TARGET_MASK_EXPAND_MUL)
3371         (TARGET_EXPAND_MUL, TARGET_MASK_STACK_ALIGN, TARGET_STACK_ALIGN)
3372         (TARGET_MASK_CONST_ALIGN, TARGET_CONST_ALIGN)
3373         (TARGET_MASK_DATA_ALIGN, TARGET_DATA_ALIGN)
3374         (TARGET_MASK_PROLOGUE_EPILOGUE, TARGET_PROLOGUE_EPILOGUE)
3375         (TARGET_MASK_ETRAX4_ADD, TARGET_ETRAX4_ADD)
3376         (TARGET_MASK_ALIGN_BY_32, TARGET_ALIGN_BY_32, TARGET_MASK_ELF)
3377         (TARGET_ELF, TARGET_MASK_LINUX, TARGET_LINUX)
3378         (TARGET_MASK_AVOID_GOTPLT, TARGET_AVOID_GOTPLT)
3379         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG, TARGET_SWITCHES)
3380         (CRIS_SUBTARGET_SWITCHES, TARGET_OPTIONS)
3381         (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
3382         (TARGET_LINUX): Define 0.
3383         (TARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
3384         (CRIS_SUBTARGET_DEFAULT): Define to 0, not TARGET_MASK_ELF.
3385         (CRIS_SUBTARGET_DEFAULT): New empty default macro.
3386         * config/cris/linux.h (CRIS_SUBTARGET_SWITCHES): Don't define.
3387         (TARGET_LINUX): Override to 1.