OSDN Git Service

625c863b4adaf723e7f9bfcd077d8c0f1ef4e310
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-04-01  Ian Lance Taylor  <ian@airs.com>
2
3         * gcc.c: Don't include <sys/resource.h> or declare getrusage.
4         (rus, prus): Remove static variables.
5         (execute): Use pex_run/pex_get_status rather than pexecute/pwait.
6         (process_command): Permit report_times and use_pipes together.
7
8 2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
9
10         * c-decl.c (validate_proto_after_old_defn): Look at
11         TYPE_MAIN_VARIANT of argument types.
12
13 2005-04-01  Paul Brook  <paul@codesourcery.com>
14
15         * config/arm/arm.c (thumb_call_via_label): Include space for SP.
16         (arm_output_function_epilogue): Allow call_via_SP.
17         (thumb_call_via_reg, arm_file_end): Ditto.
18         * config/arm/arm.h (struct machine_function): Include space for SP.
19         (thumb_call_via_label): Update declaration.
20
21 2005-04-01  Ian Lance Taylor  <ian@airs.com>
22
23         * final.c (final_scan_insn): Revert part of 2005-03-30 patch: when
24         doing a peephole optimization, once again put any notes in the
25         proper position.
26
27 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
28
29         * bb-reorder.c, fold-const.c, varasm.c: Fix comment typos.
30
31 2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
32
33         * local-alloc.c (update_equiv_regs): Use gcc_assert, gcc_unreachable.
34         (block_alloc, find_free_reg): Likewise.
35         * loop-doloop.c (doloop_modify): Likewise.
36         * loop-invariant.c (record_use): Likewise.
37         * loop-iv.c (get_biv_step_1, get_biv_step, iv_analyze,
38         get_iv_value, canon_condition, eliminate_implied_condition,
39         eliminate_implied_condition, simplify_using_initial_values,
40         shorten_into_mode, canonicalize_iv_subregs,
41         iv_number_of_iterations): Likewise.
42         * loop-unroll.c (expand_var_during_unrolling): Likewise.
43         * loop-unswitch.c (compare_and_jump_seq, unswitch_single_loop,
44         unswitch_loop): Likewise.
45         * loop.c (INSN_LUID, loop_optimize, rtx_equal_for_loop_p,
46         move_movables, replace_call_address, find_and_verify_loops,
47         rtx_equal_for_prefetch_p, fold_rtx_mult_add, loop_iterations,
48         record_giv, final_giv_value, general_induction_var,
49         simplify_giv_expr, extension_within_bounds_p, try_copy_prop,
50         loop_giv_dump): Likewise.
51
52         * gcov-io.h (GCOV_CHECK, GCOV_CHECK_READING,
53         GCOV_CHECK_WRITING): Remove.
54         (gcov_position, gcov_rewrite): Use gcc_assert.
55         * gcov-io.c (gcov_open, gcov_write_words, gcov_write_length,
56         gcov_read_words, gcov_sync, gcov_seek): Use gcc_assert.
57         * libgcov.c (__gcov_merge_single, __gcov_merge_delta): Use
58         gcc_assert.
59
60 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
61
62         * tree-inline.c: Fix a typo.
63
64 2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
65
66         * configure.ac (enable-checking): Explicitly set all variables for
67         collective switch values.  Alphabetize variables. Rename
68         ac_checking_valgrind to ac_valgrind_checking.  Allow 'none' as
69         synonym for 'no'.
70         * doc/install.texi (enable-checking): Update documentation.
71         * configure: Rebuilt.
72
73 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
74
75         * tree-inline.c (copy_body_r): Use CONSTANT_CLASS_P where
76         possible.
77
78 2005-04-01  Richard Earnshaw  <richard.earnshaw@arm.com>
79
80         * arm.c (adjacent_mem_locations): Reject volatile memory refs.
81         Also reject cases where this pattern will cause load delay stalls
82         unless optimizing for size and it will produce a shorter sequence.
83         * arm.md (arith_adjacent_mem): Make better use of ldm addressing
84         variants to avoid pre-adjusting the base when possible.
85
86 2005-04-01  Richard Earnshaw  <richard.earnshaw@arm.com>
87
88         * arm.md (minmax_arithsi): Reject all eliminable registers, not just
89         the frame and argument pointers.
90         (strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec): Likewise.
91         (loadqisi_preinc, loadqisi_predec, strsi_preinc): Likewise.
92         (strsi_predec, loadsi_preinc, loadsi_predec): Likewise.
93         (strqi_shiftpreinc, strqi_shiftpredec, loadqi_shiftpreinc): Likewise.
94         (loadqi_shiftpredec, strsi_shiftpreinc, strsi_shiftpredec): Likewise.
95         (loadsi_shiftpreinc, loadsi_shiftpredec): Likewise.
96
97 2005-04-01  Danny Smith  <dannysmith@users.sourceforge.net>
98
99         * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Define,
100         with entry for selectany attribute.
101         * config/i386/i386-protos.h (ix86_handle_selectany_attribute):
102         Declare.
103         * config/i386/winnt.c (ix86_handle_selectany_attribute): Define.
104         (i386_pe_asm_named_section): Handle sections generated by
105         selectany attribute.
106         * doc/extend.texi (selectany): Document attribute.
107
108 2005-04-01  Paolo Bonzini  <bonzini@gnu.org>
109             Jan Hubicka  <jh@suse.cz>
110
111         * config/i386/i386.c (ix86_decompose_address): Look inside SUBREGs
112         to fix addresses involving EBP and ESP.
113         (aligned_operand, legitimate_address_p, ix86_address_cost): Be prepared
114         for SUBREGed registers.
115         (legitimate_address_p): Accept SUBREGed registers.
116
117 2005-04-01  Jakub Jelinek  <jakub@redhat.com>
118
119         PR c++/19406
120         * dwarf2out.c (gen_type_die_for_member): Handle FIELD_DECL.
121         (dwarf2out_imported_module_or_decl): Use gen_type_die_for_member
122         for FIELD_DECLs.
123
124 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
125
126         * doc/contrib.texi, doc/invoke.texi, doc/tm.texi: Fix typos.
127
128 2005-04-01  James E Wilson  <wilson@specifixinc.com>
129
130         PR c++/20505
131         * dwarf2out.c (rtl_for_decl_init): New function.
132         (rtl_for_decl_location): Extracted from here.
133         (tree_add_const_value_attribute): Call rtl_for_decl_init and
134         add_const_value_attribute.  Delete initializer_constant_valid_p call.
135
136 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
137
138         * cgraphunit.c, dbxout.c, flow.c, gcse.c, gimplify.c,
139         lambda-code.c, loop.c, machmode.def, mips-tfile.c,
140         modulo-sched.c, passes.c, postreload-gcse.c, tree-eh.c,
141         tree-ssa-ccp.c, varasm.c, config/frv/frv.c, config/frv/frv.h,
142         config/frv/frv.md, config/i386/i386.c, config/i386/i386.h,
143         config/i386/i386.md, config/rs6000/predicates.md,
144         config/rs6000/rs6000.c, config/s390/fixdfdi.h,
145         config/s390/s390.c, config/stormy16/stormy16.c,
146         config/stormy16/stormy16.md, config/vax/vax.md: Fix comment
147         typos.
148
149 2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
150
151         PR c/17855
152         * gimplify.c (gimplify_expr): Create a temporary for lvalue
153         COND_EXPR and CALL_EXPR.
154
155 2005-03-31  Vladimir Makarov  <vmakarov@redhat.com>
156
157         PR target/20632
158         * genautomata.c (first_cycle_unit_presence): Check all alternative
159         states for unit presence.
160
161         * doc/md.texi: Remove remark about impossibility to query unit
162         presence in non nondeterministic automaton state.
163         
164         * config/ia64/ia64.c (get_template): Change order of unit querying.
165
166 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
167
168         * tree-ssa-dom.c (cprop_into_successor_phis): Remove an
169         obsolete comment.
170
171 2005-03-31  Zdenek Dvorak  <dvorakz@suse.cz>
172
173         * cfgloopanal.c (mark_loop_exit_edges): Clean EDGE_LOOP_EXIT
174         flag for edges outside any loops.
175
176 2005-03-31  Janis Johnson  <janis187@us.ibm.com>
177
178         * doc/sourcebuild.texi (Test Directives): Describe cleanup-* procs.
179
180 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
181
182         * tree-ssa-alias.c: Follow spelling conventions.
183         * doc/tree-ssa.texi: Fix a typo.
184
185 2005-03-31  J"orn Rennecke <joern.rennecke@st.com>
186
187         * postreload-gcse.c: Include target.h.
188         (gcse_after_reload_main): Return early if we cannot modify jumps.
189         * Makefile.in (postreload-gcse.o): Depend on $(TARGET_H).
190
191 2005-03-31  David Edelsohn  <edelsohn@gnu.org>
192
193         * tree-ssa-loop-im.c (stmt_cost): Add RDIV_EXPR to list of
194         expensive operations.
195
196 2005-03-31  Ian Lance Taylor  <ian@airs.com>
197
198         * collect2.c (lderrout): New variable.
199         (collect_exit): Dump ldout to stdout.  Dump and unlink lderrout,
200         if it is set, to stderr.
201         (handler): Unlink lderrout if it is set.
202         (dump_file): Add "to" parameter.  Change all callers.
203         (main): Initialize lderrout.
204         (collect_execute): Add errname parameter.  Change all callers.
205         Rename redir parameter to outname.  Never pass
206         PEX_STDERR_TO_STDOUT to pex_run.
207         * collect2.h (collect_execute, dump_file): Update declarations.
208         * tlink.c (tlink_execute): Add errname parameter.  Change all
209         callers.
210         (do_tlink): Check lderrout as well as ldout.
211
212 2005-03-31  Caroline Tice  <ctice@apple.com>
213
214         * Makefile.in (varasm.o): Add basic-block.h to list of requirements.
215         (bb-reorder.o): Add errors.h to list of requirements.
216         (STAGEFEEDBACK_FLAGS_TO_PASS): Add -freorder-blocks-and-partition to
217         profiledbootstrap flags.
218         * bb-reorder.c (errors.h): Add new include.
219         (struct bbro_basic_block_data_def): Add new field, in_trace.
220         (add_unlikely_executed_notes):  Remove function.
221         (mark_bb_for_unlikely_executed_section): Remove function.
222         (insert_section_boundary_note): New function.
223         (verify_hot_cold_block_grouping): New function.
224         (push_to_next_round_p): Remove variables and tests that push all
225         cold blocks to last round.
226         (find_traces): Remove code that added extra round of trace finding
227         when doing partitioning.
228         (find_traces_1_round) :  Remove variable last_round;  add code to 
229         update new struct field, in_trace; correct trace_length where it was 
230         incorrect before (after call to copy_bb); change code that pushed all 
231         cold blocks to last round. Instead verify that all blocks going into 
232         a trace belong in the same partition.
233         (connect_traces): Modify to connect the traces in two passes, if the
234         function contains both hot and cold blocks.  The first pass connects 
235         all the traces for blocks in the partition that the first block in 
236         the function belongs to; the second pass connnects all the traces 
237         containing blocks that belong in the other partition.
238         (find_rarely_executed_basic_blocks_and_crossing_edges):  Remove
239         code that automatically put the first block in a function into the
240         hot partition if the function had any hot blocks.
241         (fix_crossing_unconditional_branches): Check number of succ edges 
242         before attempting to get one.
243         (fix_edges_for_rarely_executed_code):  Update comment describing
244         function.
245         (reorder_basic_blocks):  Add code to initialize new field (in_trace);
246         remove call to add_unlikely_executed_notes; add call to 
247         verify_hot_cold_block_grouping.
248         (duplicate_computed_gotos): Don't change computed goto if it's a 
249         crossing edge.
250         (partition_hot_cold_basic_blocks):  Update function comment.
251         * cfgcleanup.c (try_simplify_condjump): Remove redundacy from 
252         condition.
253         (try_forward_edges): Likewise.
254         (merge_blocks_move_predecessor_nojumps): Likewise.
255         (merge_blocks_move_successor_nojumps): Likewise.
256         (merge_blocks_move): Likewise.
257         (try_crossjump_bb): Likewise.
258         * cfglayout.c (update_unlikely_executed_notes): Remove function.
259         (fixup_reorder_chain): Remove code for adding UNLIKELY_EXECUTED_CODE
260         notes to cold bb's; remove call to update_unlikely_executed_notes.
261         (duplicate_insn_chain):  change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
262         NOTE_INSN_SWITCH_TEXT_SECTIONS.
263         * cfglayout.h (scan_ahead_for_unlikely_executed_note): Remove
264         function declaration.
265         * cfgrtl.c (can_delete_note_p): Remove UNLIKELY_EXECUTED_CODE note
266         from consideration.
267         (rtl_can_merge_blocks): Remove redundancy from condition.
268         (try_redirect_by_replacing_jump): Likewise.
269         (force_nonfallthru_and_redirect): Remove code for adding
270         UNLIKELY_EXECUTED_CODE notes to cold bb's.
271         (commit_one_edge_insertion): Likewise.
272         (cfg_layout_can_merge_blocks_p): Remove redundancy from condition.
273         * dbxout.c (FORCE_TEXT): Replace function_section with 
274         current_function_section.
275         (struct dbx_debug_h): Add do_nothing function for new debug_hooks
276         function, switch_text_section.
277         (struct xcoff_debug): Likewise.
278         (dbxout_function_end): Add code to put out label diffs for both
279         hot and cold sections.
280         * debug.c (struct do_nothing_debug_hooks): Add do_nothing function
281         for new debug_hooks funciton, switch_text_section..
282         * debug.h (struct gcc_debug_hooks):  Add new function to debug_hooks,
283         switch_text_section.
284         * dwarf2out.c (struct dw_fde_struct):  Add five new fields: 
285         dw_fde_hot_section_label, dw_fde_hot_section_end_label, 
286         dw_fde_unlikely_section_label, dw_fde_unlikely_section_end_label and 
287         dw_fde_switched_sections.
288         (output_call_frame_info):  Add test to see if function switches text
289         sections in the middle; if so, use appropriate extra hot and cold 
290         section labels to compute size deltas for the hot and cold sections.
291         (dwarf2out_begin_prologue): Add code to initialize new fields in 
292         dw_fde_struct.
293         (dwarf2out_switch_text_section): New function (invoked through 
294         debug_hook); updates new fields in dw_fde_struct appropriately and
295         increments separate_line_info_table_in_use.
296         (dwarf2_debug_hooks): Initialize switch_text_section function to be
297         dwarf2out_switch_text_section.
298         (struct var_loc_node): Add new field, section_label.
299         (output_aranges): Add code to check whether in hot or cold section and
300         use the appropriate label in calculating deltas.
301         (output_ranges): Likewise.
302         (output_line_info): Add code to check which section we're in and
303         use appropriate hot/cold label.
304         (add_location_or_constant_value_attribute): Likewise.
305         (gen_subprogam_die): Modify arange attributes to use correct labels.
306         (dwarf2out_begin_block): Change call to function_section into call to
307         current_function_section.
308         (dwarf2out_end_block): Likewise.
309         (dwarf2out_source_line): Likewise.
310         (dwarf2out_var_location): Add code to check whether in hot or cold 
311         section and use the appropriate label.
312         * except.c (output_function_exception_table): Change call to 
313         function_section into call to current_function_section.
314         * final.c (profile_function): Likewise.
315         (scan_ahead_for_unlikely_executed_note): Remove function.
316         (final_scan_insn):  Remove calls to 
317         scan_ahead_for_unlikely_executed_note, and related code for switching 
318         to cold section, except for the single time 
319         NOTE_INSN_SWITCH_TEXT_SECTIONS may be encountered;  add calls to 
320         debug_hooks->switch_text_sections; replace appropriate calls to 
321         function_section with calls to current_function_section.
322         * ifcvt.c (find_if_case_1): Remove redundancy from condition, add 
323         test_bb to condition.
324         (find_if_case_2): Likewise.
325         * insn-notes.def: Change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
326         NOTE_INSN_SWITCH_TEXT_SECTIONS.  Update comment appropriately.
327         * opts.c (decode_options): Change warning about hot/cold partitioning
328         with exceptionss to inform (so as not to cause bootstrap failures);
329         remove warning about partitioning with DWARF debug info.
330         * output.h (current_function_section): Add new function decl.
331         (insert_section_boundary_note): Likewise.
332         (enum in_section): Move this declaration here from varasm.c.
333         (unlikely_section_label): Likewise.
334         (unlikely_text_section_name): Likewise.
335         (last_text_section_name): New global variable.
336         (last_text_section): Likewise.
337         (hot_section_label): Likewise.
338         (hot_section_end_label): Likewise.
339         (cold_section_end_label): Likewise.
340         * passes.c (rest_of_handle_final): Free unlikely_text_section_name.
341         * print-rtl.c (print_rtx): Change NOTE_INSN_UNLIKELY_EXECUTED_CODE
342         to NOTE_INSN_SWITCH_TEXT_SECTIONS.
343         * reg-stack.c (emit_swap_insn): Remove UNLIKELY_EXECUTED_CODE note 
344         insn from consideration.
345         * sdbout.c (sdb_debug_hooks): Add do_nothing for new function, 
346         switch_text_section.
347         * varasm.c (basic-block.h): Add new include.
348         (unlikely_section_label_printed): Remove global variable.
349         (unlikely_section_label): Make global variable not be static any more.
350         (unlikely_text_section_name): Likewise.
351         (hot_section_end_label): New global variable (not static)
352         (first_function_block_is_cold): Likewise.
353         (hot_section_label): Likewise.
354         (cold_section_end_label): Likewise..
355         (last_text_section): New global variable, not static.
356         (last_text_section_name): New global variable, not static.
357         (initialize_cold_section_name): New function.
358         (enum in_section): Move declaration to output.h.
359         (text_section): Update last_text_section.
360         (unlikely_text_section): Replace code to determine cold section name 
361         with call to initialize_cold_section_name; Add code to update 
362         last_text_section; remove code for printing out label.
363         (named_section_real): Add code to update last_text_section and 
364         last_text_section_name as appropriate.
365         (function_section): Change test for 'unlikely' to depend on
366         first_function_block_is_cold (moved old test to 
367         current_function_section).
368         (current_function_section): New function.
369         (assemble_start_function): Move code that frees 
370         unlikely_text_section_name; initialize hot_section_end_label; 
371         print hot and cold section labels at the start of the function; 
372         set first_function_block_is_cold, if appropriate; initialize l
373         ast_text_section; add call to insert_section_boundary_note.
374         (assemble_end_function):  Add code to write out hot and cold section
375         end labels.
376         *vmsdbgout.c (vmsdbg_debug_hooks): Add do_nothing for new function,
377         switch_text_section.
378         * config/darwin.c (machopic_select_section): Replace incorrect 
379         function in base_funs; update reloc for cold sections if necessary.
380         * config/darwin.h (SECTION_FUNCTION):  Add code to update 
381         last_text_section if appropriate.
382         (text_unlikely_section): Remove.
383         * config/sparc/sparc.c (sparc_output_deferred_case_vectors): Likewise.
384         * config/stormy16/stormy16.c (stormy_16_output_addr_vec): Likewise.
385         * config/xtensa/xtensa.c (override_options): Turn off hot/cold
386         partitioning for this architecture.
387
388 2005-03-31  Olivier Hainque  <hainque@adacore.com>
389
390         * dwarf2out.c (dwarf2out_frame_finish): Honor DWARF2_FRAME_INFO
391         defined and non-zero.
392
393 2005-03-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
394
395         PR c++/18644
396         * doc/invoke.texi (-Wsynth): Don't document, as it now is void of
397         semantics. 
398
399 2005-03-31  Alan Modra  <amodra@bigpond.net.au>
400
401         PR target/20611
402         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Remove inline
403         label operand.  Remove (use (unspec..)).  Don't emit a label on
404         the offset word.
405         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Don't
406         generate inline label for load_toc_v4_PIC_1b.
407         (rs6000_emit_load_toc_table): Likewise.
408
409 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
410
411         * config.gcc: Obsolete i860-*-sysv4*, ip2k-*-elf,
412         ns32k-*-netbsdelf*, and ns32k-*-netbsd*.
413
414 2005-03-29  Devang Patel  <dpatel@apple.com>
415
416         * tree-sra.c (decide_block_copy): Disable scalarization of
417         sub-elements.
418         
419 2005-03-30  Stuart Hastings  <stuart@apple.com>
420             Dale Johannesen  <dalej@apple.com>
421
422         * Makefile.in (print-tree.o):  Depend on tree-iterator.h.
423         * print-tree.c (print_node):  Add case STATEMENT_LIST.
424
425 2005-03-31  Alan Modra  <amodra@bigpond.net.au>
426
427         * config.gcc (cpu_is_64bit): Set for 64-bit powerpc cpus.
428         (powerpc64-*-linux*): Use it.  Rearrange tm_file assignment.
429         (powerpc-*-linux*): Build a biarch compiler when --enable-targets
430         is given with "powerpc64*" or "all", or when --with-cpu chooses
431         a 64-bit cpu.
432
433 2005-03-30  James E. Wilson  <wilson@specifixinc.com>
434
435         PR debug/20268
436         * dwarf2out.c (add_high_low_attributes): New function, extracted from
437         gen_lexical_block_die.
438         (gen_lexical_block_die, gen_inlined_subroutine_die): Call it.
439
440 2005-03-31  Jan Hubicka  <jh@suse.cz>
441
442         2004-11-02  Jan Hubicka  <jh@suse.cz>
443
444         * cgraph.c (cgraph_varpool_node_name): New function.
445         (dump_cgraph_varpool_node): New function.
446         (dump_varpool): New function.
447         * cgraphunit.c (cgraph_optimize): Dump varpool.
448
449         2004-10-16  Jan Hubicka  <jh@suse.cz>
450
451         * cgraph.c (decide_is_variable_needed): New function.
452         (cgraph_varpool_finalize_decl): Use it.
453         * cgraphunit.c (cgraph_optimize): Assemble_pending_decls when not doing
454         unit-at-a-time.
455         * final.c (output_addr_const): Do not call mark_referenced.
456         * passes.c (rest_of_decl_compilation): ifdef out DECL_RTL_SET_P hack;
457         always go via cgraph.
458         * toplev.c (wrapup_global_declarations): Kill non-unit-at-a-time code.
459         (check_global_declarations): Ifdef out code clearing DECL_RTL.
460         * tree-optimize.c (execute_inline): Mark functions called.
461         * i386.c (output_pic_addr_const): Do not call mark_decl_referenced.
462
463         2004-10-11  Jan Hubicka  <jh@suse.cz>
464
465         * cgraph.c (cgraph_varpool_first_unanalyzed_node): New global voriable
466         (cgraph_varpool_last_needed_node): New static variable.
467         (enqueue_needed_varpool_node): Break out from ...; add items to the
468         end of queue; update first pointers.
469         (cgraph_varpool_mark_needed_node): ... here.
470         (cgraph_varpool_finalize_decl): Use enqueue_needed_varpool_node.
471         (cgraph_varpool_assemble_pending_decls): Move to cgraphunit.c
472         * cgraph.h (cgraph_varpool_node): Add analyzed field.
473         (cgraph_varpool_first_unanalyzed_node): Declare.
474         * cgraphunit.c: Include output.h.
475         (cgraph_varpool_analyze_pending_decls): New function.
476         (cgraph_varpool_assemble_pending_decls): Move from cgraph.c; bail out
477         for errors, analyze pending decls.
478         (cgraph_finalize_compilation_unit): Only analyze decls.
479         (cgraph_optimize): Assemble the decls after expanding.
480
481 2005-03-30  Daniel Berlin  <dberlin@dberlin.org>
482
483         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Make sure
484         subvars get marked properly in tags for grouping.
485         (add_pointed_to_var): Mark only actual pointed to
486         variables/subvars in addresses needed.
487         (create_overlap_variables_for): Clear call clobbered on original
488         variable.
489         * tree-ssa-operands.c (get_asm_expr_operands): Don't let regular
490         addresable vars with subvars into list.
491         * tree-ssa.c (verify_ssa_name): Verify original is not used where
492         subvar should be.
493
494 2005-03-30  Richard Henderson  <rth@redhat.com>
495
496         * cgraph.h (struct cgraph_node): Add alias.
497         * varasm.c (assemble_alias): Set it.
498         * cgraphunit.c (cgraph_assemble_pending_functions): Check it and
499         avoid calling cgraph_expand_function.
500
501 2005-03-30  Tom Tromey  <tromey@redhat.com>
502
503         * tree.def (FILE_TYPE): Removed.
504         * typeclass.h (enum type_class): Removed file_type_class.
505         * dwarf2out.c (is_base_type): Updated.
506         (gen_type_die): Likewise.
507         * dbxout.c (dbxout_type): Updated.
508         * builtins.c (type_to_class): Updated.
509         * tree.c (type_contains_placeholder_1): Updated.
510         * config/sparc/sparc.c (sparc_type_code): Updated.
511         * config/ia64/ia64.c (hfa_element_mode): Updated.
512         * expr.c (count_type_elements): Updated.
513         * stor-layout.c (layout_type): Updated.
514         * tree-inline.c (remap_type): Updated.
515         * tree-pretty-print.c (dump_generic_node): Updated.
516
517 2005-03-30 Fariborz Jahanian <fjahanian@apple.com>
518
519         * builtins.c (expand_builtin_powi): Fix mode of
520         2nd argument to match int.
521         * libgcc2.h (__powisf2, __powidf2, __powixf2, __powitf2): Change
522         2nd argument type to int.
523         * libgcc2.c: Change prototype of __powi* functions to use
524         int.
525
526 2005-03-30  Dale Johannesen  <dalej@apple.com>
527
528         PR middle-end/19225
529         * calls.c (expand_call):  Flush pending deferrals before
530         throwing call.
531
532 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
533
534         PR c/772
535         PR c/17913
536         * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR,
537         C_DECL_UNDEFINABLE_STMT_EXPR, struct c_label_list, struct
538         c_label_context, label_context_stack): New.
539         * c-decl.c (define_label): Check for jumps into statement
540         expressions.  Add label to list of defined labels.
541         (start_function): Push context on label_context_stack.
542         (finish_function): Pop context from label_context_stack.
543         * c-typeck.c (label_context_stack): New.
544         (c_finish_goto_label): Check for jumps into statement
545         expressions.  Add label to list of jumped to labels.
546         (struct c_switch): Add blocked_stmt_expr.
547         (c_start_case): Initialize it.
548         (do_case): Check it.
549         (c_finish_case): Verify !blocked_stmt_expr.
550         (c_begin_stmt_expr):  Push context on label_context_stack.
551         Increment blocked_stmt_expr.  Mark labels jumped to from outside
552         as undefinable.
553         (c_finish_stmt_expr): December blocked_stmt_expr.  Mark labels
554         defined in the statement expression and no longer jumpable to.
555         Mark labels jumped to from just outside the statement expression
556         as again definable.  Pop context from label_context_stack.
557         * doc/extend.texi (Statement Exprs): Update.
558
559 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
560
561         PR c/20368
562         * c-decl.c (start_function): Check for old_decl being
563         error_mark_node.
564
565 2005-03-30  Ian Lance Taylor  <ian@airs.com>
566
567         * final.c (final): Remove prescan parameter.  Change all callers.
568         (final_scan_insn): Remove prescan parameter.  Change all callers.
569
570 2005-03-30  Kazu Hirata  <kazu@cs.umass.edu>
571
572         * tree-vectorizer.c: Fix comment typos.
573
574 2005-03-30  Sebastian Pop  <pop@cri.ensmp.fr>
575
576         * tree-scalar-evolution.c (instantiate_parameters_1): Return
577         as soon as a chrec_dont_know is detected.
578
579 2005-03-31  Danny Smith  <dannysmith@users.sourceforge.net>
580
581         Merge from csl-arm-branch.
582         2004-02-12  Mark Mitchell  <mark@codesourcery.com>
583
584         * tlink.c (recompile_files): Do not assume that "rename" can
585         overwrite an existing file.
586
587 2005-03-31  Paolo Bonzini  <bonzini@gnu.org>
588
589         * gcc/configure.ac (TL_AC_GNU_MAKE_GCC_LIB_PATH): Remove.
590         * gcc/configure: Regenerate.
591
592 2005-03-30  Alan Modra  <amodra@bigpond.net.au>
593
594         * doc/install.texi: Update binutils requirement for powerpc*-linux.
595
596         * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Update comments.
597
598         * calls.c (struct arg_data): Update "partial" comment.
599         (load_register_parameters): Update "nregs" comment.
600
601 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
602
603         * config/iq2000/iq2000.h (target_flags, MASK_GPOPT, MASK_EMBEDDED_DATA)
604         (MASK_UNINIT_CONST_IN_RODATA, TARGET_EMBEDDED_DATA, TARGET_SWITCHES)
605         (TARGET_DEFAULT, TARGET_CPU_DEFAULT, SUBTARGET_TARGET_OPTIONS)
606         (TARGET_OPTIONS, iq2000_cpu_string, iq2000_arch_string): Delete.
607         (TARGET_DEBUG_MODE, TARGET_DEBUG_A_MODE, TARGET_DEBUG_B_MODE)
608         (TARGET_DEBUG_C_MODE, TARGET_DEBUG_D_MODE): Define to 0 rather
609         than target_flags & 0.
610         * config/iq2000/iq2000.c (iq2000_cpu_string, iq2000_arch_string)
611         (iq2000_arch, iq2000_parse_cpu): Delete.
612         (TARGET_HANDLE_OPTION): Override default.
613         (iq2000_handle_option): New function.
614         (override_options): Remove -march= and -mcpu= handling.
615         * config/iq2000/iq2000.opt: New file.
616
617 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
618
619         * config/c4x/c4x-protos.h (c4x_rpts_cycles, c4x_cpu_version): Delete.
620         * config/c4x/c4x.h (SMALL_MEMORY_FLAG, MPYI_FLAG, FAST_FIX_FLAG)
621         (RPTS_FLAG, C3X_FLAG, TI_FLAG, PARANOID_FLAG, MEMPARM_FLAG, DEVEL_FLAG)
622         (RPTB_FLAG, BK_FLAG, DB_FLAG, DEBUG_FLAG, HOIST_FLAG)
623         (LOOP_UNSIGNED_FLAG, FORCE_FLAG, PRESERVE_FLOAT_FLAG)
624         (PARALLEL_INSN_FLAG, PARALLEL_MPY_FLAG, ALIASES_FLAG, C30_FLAG)
625         (C31_FLAG, C32_FLAG, C33_FLAG, C40_FLAG, C44_FLAG, TARGET_SWITCHES)
626         (TARGET_DEFAULT, TARGET_SMALL, TARGET_MPYI, TARGET_FAST_FIX)
627         (TARGET_RPTS, TARGET_TI, TARGET_PARANOID, TARGET_MEMPARM, TARGET_DEVEL)
628         (TARGET_RPTB, TARGET_BK, TARGET_DB, TARGET_DEBUG, TARGET_HOIST)
629         (TARGET_LOOP_UNSIGNED, TARGET_FORCE, TARGET_PRESERVE_FLOAT)
630         (TARGET_PARALLEL, TARGET_PARALLEL_MPY, TARGET_ALIASES)
631         (c4x_rpts_cycles_string, c4x_cpu_version_string)
632         (TARGET_OPTIONS): Delete.
633         (c4x_rpts_cycles, c4x_cpu_version): Declare.
634         (TARGET_C3X, TARGET_C30, TARGET_C31, TARGET_C32, TARGET_C33)
635         (TARGET_C40, TARGET_C44): Redefine in terms of c4x_cpu_version.
636         * config/c4x/c4x.c (c4x_rpts_cycles_string): Delete.
637         (c4x_cpu_version_string): Delete.
638         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
639         (c4x_handle_option): New function.  Map -m3x and -m4x options to the
640         equivalent -mcpu= option.
641         (c4x_override_options): Remove -mrpts= and -mcpu= handling from here.
642         Deal with the extra conditions in the old TARGET_MPYI, TARGET_RPTB,
643         TARGET_DB, TARGET_PARALLEL and TARGET_PARALLEL_MPY macros by setting
644         or clearing the appropriate MASK_* bit.
645         (c4x_file_start): Use c4x_cpu_version.
646         * config/c4x/c4x.opt: New file.
647
648 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
649
650         * doc/options.texi: Document the new MaskExists flag.
651         * opth-gen.awk: Don't output MASK and TARGET macros for Mask(...)
652         if the option has the MaskExists flag.
653
654 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
655
656         * opt-functions.awk (flag_set_p, test_flag): New functions.
657         (switch_flags): Use them.
658         * opth-gen.awk: Use flag_set_p to check for flags.
659         * optc-gen.awk: Likewise.  Use opt_args to check for Init(...) flags.
660
661 2005-03-30  Ian Lance Taylor  <ian@airs.com>
662
663         * config.host (i[34567]86-*-mingw32*): Don't set
664         host_can_use_collect2 to no.
665
666 2005-03-30  Alan Modra  <amodra@bigpond.net.au>
667
668         PR target/20203
669         * builtins.c (get_memory_rtx): Expand address exp using EXPAND_NORMAL.
670         Remove convert_memory_address call duplicating that in memory_address.
671
672 2005-03-29  Richard Henderson  <rth@redhat.com>
673
674         PR c/20519
675         * c-decl.c (c_finish_incomplete_decl): Update complete_array_type call.
676         (build_compound_literal): Likewise.  Propagate decl type into the
677         initializer.
678         (finish_decl): Likewise.  Use new return value from complete_array_type
679         for zero sized arrays.
680         (complete_array_type): Move ...
681         * c-common.c (complete_array_type): ... here.  Change first argument
682         to pointer-to-type-node.  Consistently use sizetype for the index
683         except for zero sized arrays.  Detect zero sized arrays for pedantic
684         mode diagnostics.  Create a new type node instead of modifying the
685         old node in place.
686         * c-tree.h (complete_array_type): Move decl ...
687         * c-common.h (complete_array_type): ... here.
688
689 2005-03-29  Richard Henderson  <rth@redhat.com>
690
691         PR tree-opt/19108
692         * tree-sra.c (generate_element_init_1): Handle RANGE_EXPR.
693
694 2005-03-29  Kazu Hirata  <kazu@cs.umass.edu>
695
696         * builtin-types.def, c-convert.c, c-format.c, ddg.c, debug.c,
697         debug.h, et-forest.c, et-forest.h, gcov.c, rtl-profile.c,
698         rtlhooks-def.h, rtlhooks.c, sdbout.c, tree-inline.h,
699         tree-profile.c, tsystem.h, value-prof.h: Update copyright.
700
701 2005-03-29  Eric Christopher  <echristo@redhat.com>
702
703         * config/mips/mips.c (mips_gimplify_va_arg_expr): Update for
704         truthvalue conversion removal.
705
706 2005-03-29  Ian Lance Taylor  <ian@airs.com>
707
708         PR bootstrap/14316
709         * collect2.c: Never include <vfork.h>.
710         (VFORK_STRING, vfork): Don't define.
711         (pid): Remove global variable.
712         (handler): Call raise instead of kill (getpid(), ...).
713         (collect_wait): Add pex parameter.  Change all callers.  Use
714         pex_get_status rather than pwait.
715         (do_wait): Add pex parameter.  Change all callers.
716         (collect_execute): Return struct pex_obj * rather than void.  Use
717         pex routines rather than pexecute.
718         (fork_execute): Get pex_obj from collect_execute, and pass it to
719         do_wait.
720         (scan_prog_file): Use pex routines rather than pipe/vfork/exec.
721         Only declare quit_handler if SIGQUIT is defined.
722         (scan_libraries): Likewise.
723         * collect2.h (collect_execute): Update declaration.
724         (collect_wait): Update declaration.
725         * tlink.c (tlink_execute): Get pex_obj from collect_execute, and
726         pass it to collect_wait.
727
728 2005-03-29  Joseph S. Myers  <joseph@codesourcery.com>
729
730         PR c/20672
731         * c-parser.c (c_parser_compound_statement_nostart): Give error
732         message for EOF instead of just setting parser->error.
733
734 2005-03-29  Dorit Naishlos  <dorit@il.ibm.com>
735
736         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard): Removed.
737         (slpeel_update_phi_nodes_for_guard1): New function.
738         (slpeel_update_phi_nodes_for_guard2): New function.
739         (slpeel_tree_peel_loop_to_edge): Call above new functions instead
740         of slpeel_update_phi_nodes_for_guard.
741         (vectorize_loops): Remove call to loop_closed_rewrite.
742         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Remove
743         assertion.
744
745 2005-03-29  Richard Sandiford  <rsandifo@redhat.com>
746
747         * config/m32r/little.h (TARGET_ENDIAN_DEFAULT): Delete.
748         (TARGET_LITTLE_ENDIAN): New macro.
749         * config/m32r/m32r.h (SUBTARGET_SWITCHES, target_flags)
750         (TARGET_RELAX_MASK, TARGET_DEBUG_MASK, TARGET_DEBUG)
751         (TARGET_ALIGN_LOOPS_MASK, TARGET_ALIGN_LOOPS)
752         (TARGET_LOW_ISSUE_RATE_MASK, TARGET_LOW_ISSUE_RATE)
753         (TARGET_BRANCH_COST_MASK, TARGET_BRANCH_COST, TARGET_M32RX_MASK)
754         (TARGET_M32RX, TARGET_M32R2_MASK, TARGET_M32R2, LITTLE_ENDIAN_BIT)
755         (TARGET_ENDIAN_DEFAULT, SUBTARGET_SWITCHES, TARGET_DEFAULT)
756         (TARGET_SWITCHES, m32r_model_string, m32r_sdata_string)
757         (m32r_cache_flush_trap_string, SUBTARGET_OPTIONS)
758         (TARGET_OPTIONS): Delete.
759         (M32R_MODEL_DEFAULT, M32R_SDATA_DEFAULT): Turn into enums.
760         (CACHE_FLUSH_TRAP): Turn into an integer.
761         (TARGET_LITTLE_ENDIAN): Define to 0 by default.
762         (INITIALIZE_TRAMPOLINE): Check m32r_cache_trap >= 0 to see if
763         -mflush-trap is in use.
764         * config/m32r/m32r.c (m32r_model_string, m32r_sdata_string)
765         (m32r_cache_flush_trap_string): Delete.
766         (m32r_model) Initialize to M32R_MODEL_DEFAULT.
767         (m32r_sdata): Likewise M32R_SDATA_DEFAULT.
768         (m32r_cache_trap): Likewise CACHE_FLUSH_TRAP.
769         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
770         (m32r_handle_option): New function.  Move -mflush-trap=, -mflush-func=,
771         -mmodel= and -msdata= handling from...
772         (m32r_init): ...here.
773         * config/m32r/m32r.opt: New file.
774
775 2005-03-29  Keith Besaw  <kbesaw@us.ibm.com>
776
777         * tree-ssanames.c (duplicate_ssa_name_ptr_info): New function.
778         (duplicate_ssa_name): Call duplicate_ssa_name_ptr_info.
779         * tree-vect-analyze.c (vect_object_analysis): additional parm
780         pass back a "struct ptr_info_def *" with the points-to info.
781         (vect_analyze_data_refs): set the STMT_VINFO_PTR_INFO for the
782         statement using info returned from vect_object_analysis.
783         * tree-vect-transform.c (update_vuses_to_preheader): New function.
784         (vect_create_data_ref_ptr): Remove updates to vars_to_rename
785         for virtual uses and defs when creating a replacement vector
786         reference.  Call duplicate_ssa_name_ptr_info to define points-to
787         info for vector pointer replacement using STMT_VINFO_PTR_INFO.
788         (vectorizable_store): copy_virtual_operands and update
789         definition statements.
790         (vectorizable_load): copy_virtual_operands.  Remove call to
791         mark_call_clobbered_vars_to_rename for call to "const" builtin.
792         * tree-vectorizer.c (vectorize_loops): Remove calls to
793         rewrite_into_ssa and bitmap_clear (vars_to_rename).
794         (new_stmt_vec_info): initialize STMT_VINFO_PTR_INFO for stmt.
795         * tree-vectorizer.h (_stmt_vec_info): add field ptr_info and
796         define macro STMT_VINFO_PTR_INFO for use in accessing.
797         * tree.h add export of duplicate_ssa_name_ptr_info.
798         * rs6000.c (altivec_init_builtins): Declare builtin function
799         __builtin_altivec_mask_for_load to be "const".
800
801 2005-03-29  Jakub Jelinek  <jakub@redhat.com>
802
803         PR middle-end/20622
804         * cgraph.h (struct cgraph_varpool_node): Add alias field.
805         * cgraph.c (cgraph_varpool_assemble_pending_decls): Don't call
806         assemble_variable on aliases.
807         * varasm.c (assemble_alias): Set node->alias.
808         * toplev.c (wrapup_global_declarations): Don't call
809         rest_of_decl_compilation on aliases again.
810
811 2005-03-29  Paul Brook  <paul@codesourcery.com>
812
813         * config/arm/arm-protos.h (arm_dbx_register_number): Add prototype.
814         * config/arm/arm.c (arm_dbx_register_number): New function.
815         * config/arm/arm.h (IS_FPA_REGNUM, DBX_REGISTER_NUMBER): Define.
816
817 2005-03-29  Eric Botcazou  <ebotcazou@libertysurf.fr>
818
819         PR middle-end/20263
820         * varasm.c (make_decl_rtl) [ASM_DECLARE_REGISTER_GLOBAL]: Use
821         the DECL_NAME, not the DECL_ASSEMBLER_NAME.
822
823 2005-03-29  Dale Johannesen <dalej@apple.com>
824
825         * Makefile.in (value-prof.o): New dependencies on $(DIAGNOSTIC_H)
826         $(TREE_H) and $(COVERAGE_H).
827         * coverage.c (compute_checksum): Use DECL_NAME not DECL_ASSEMBLER_NAME.
828         * opts.c (common_handle_option): Enable tree-based value transforms.
829         * toplev.c (process_options): Ditto.
830         * value-prof.h (struct histogram_value_t): Redefine. "Adjust" below
831         refers to references to this type.
832         * tree-flow.h: (struct stmt_ann_d): Add histograms field.
833         * rtl-profile.c (rtl_gen_interval_profiler): Adjust. Remove checks
834         for may_be_more, may_be_less.
835         (rtl_gen_pow2_profiler): Adjust.
836         (rtl_gen_one_value_profiler_no_edge_manip): Adjust.
837         (rtl_gen_one_value_profiler): Adjust.
838         (rtl_gen_const_delta_profiler): Adjust.
839         * tree-profile.c (tree_gen_interval_profiler): Implement.
840         (tree_gen_pow2_profiler): Ditto.
841         (tree_gen_one_value_profiler): Ditto.
842         (tree_profiling): New.
843         (pass_tree_profile): Reference it.
844         * value-prof.c: Include tree-flow.h, tree-flow-inline.h, diagnostic.h,
845         tree.h, gcov-io.h.
846         (insn_divmod_values_to_profile): Rename to
847         rtl_divmod_values_to_profile. Adjust.
848         (insn_values_to_profile): Rename to rtl_values_to_profile. Adjust.
849         (insn_prefetch_values_to_profile): Adjust.
850         (rtl_value_profile_transformations): Adjust.
851         (gen_divmod_fixed_value): Rename to rtl_divmod_fixed_value.
852         (gen_mod_pow2): Rename to rtl_mod_pow2.
853         (gen_mod_subtract): Rename to rtl_mod_subtract.
854         (divmod_fixed_value_transform): Rename to
855         rtl_divmod_fixed_value_transform.
856         (mod_pow2_value_transform): Rename to rtl_mod_pow2_value_transform.
857         (mod_subtract_transform): Rename to rtl_mod_subtract_transform.
858         (rtl_find_values_to_profile): Adjust.
859         (tree_value_profile_transformations): Implement.
860         (tree_divmod_values_to_profile): New.
861         (tree_values_to_profile): New.
862         (tree_divmod_fixed_value): New.
863         (tree_mod_pow2): New.
864         (tree_mod_subtract): New.
865         (tree_divmod_fixed_value_transform): New.
866         (tree_mod_pow2_value_transform): New.
867         (tree_mod_subtract_transform): New.
868         (tree_find_values_to_profile): Implement.
869         * profile.c (instrument_values):  Free histograms.
870         (compute_value_histograms): Adjust. Implement tree version.
871
872 2005-03-29  Uros Bizjak  <uros@kss-loka.si>
873
874         * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST> case.
875         * config/i386/i386.c (output_fix_trunc): Add new round_mode
876         variable.  Output "fldcw" depending on round_mode.
877         * config/i386/i386.md (UNSPEC_FIST): New.
878         (fistdi2, fistdi2_with_temp, fist<mode>2, fist<mode>2_with_temp):
879         New isns patterns to implement lrint and llrint built-ins as x87
880         intrinsic function.
881         (fistdi2, fist<mode>2 splitters): New splitters.
882         (lrint<mode>2): New expanders.
883
884 2005-03-28  Ian Lance Taylor  <ian@airs.com>
885
886         * config/arc/arc.c (arc_output_function_epilogue): Pass prescan as
887         0 when calling final_scan_insn.
888
889 2005-03-28  Jan Hubicka  <jh@suse.cz>
890
891         PR middle-end/20635
892         * varasm.c (mark_decl_referenced): Do not mark extern inline functions
893         as needed.
894
895         * tree-inline.c (estimate_num_insns_1): Use declaration to discover argument
896         types where possible.
897
898 2005-03-26  Per Bothner  <per@bothner.com>
899
900         Make -f[no-]show-column also control non-cpp diagnostics.
901         * c.opt (fshow-column): Move option from here ...
902         * common.opt (fshow-column): ... to here.
903         * diagnostic.c (diagnostic_build_prefix): Only print column number
904         if flag_show_column.
905
906 2005-03-27  Steven Bosscher  <stevenb@suse.de>
907
908         * vax-protos.h (vax_output_int_move, vax_output_int_add,
909         vax_output_conditional_branch): New prototypes.
910         * vax.c (vax_output_int_move, vax_output_int_add): New functions,
911         extracted from vax.md mov and add patterns.
912         (vax_output_conditional_branch): New function to output conditional
913         branch instructions.
914         * vax.md: Use mode macros for arithmetic and mov patterns.
915         Use code macros for the jump patterns.
916
917 2005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>
918
919         * Makefile.in (libbackend.o): Depend on version files;
920         add custom generation command.
921
922 2005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>
923
924         PR target/20636
925         * config/rs6000/rs6000.md (extendsfdf2_fpr): Check to make
926         sure that we have a REG before getting its REGNO.
927
928 2005-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
929
930         * builtin-types.def (BT_FN_STRING_CONST_STRING_SIZE): New.
931         * builtins.def (BUILT_IN_STRNDUP): New.
932
933 2005-03-25  Pat Haugen  <pthaugen@us.ibm.com>
934
935         PR tree-optimization/20470
936         * fold-const.c (fold_cond_expr_with_comparison): Recognize/fold
937         ABS(x-y).
938
939 2005-03-25  Mike Stump  <mrs@apple.com>
940
941         * config/darwin.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Don't allow 0
942         sized objects.
943
944 2005-03-25  Geoffrey Keating  <geoffk@apple.com>
945
946         * config/rs6000/darwin-fallback.c: Don't include <ucontext.h>.
947         Use our own structure definitions.
948
949         * config/rs6000/rs6000.md (UNSPEC constants): Add UNSPEC_STFIWX.
950         (fix_truncdfsi2): Allow registers or memory as destination.
951         When TARGET_PPC_GFXOPT, generate simplified pattern.
952         (fix_truncdfsi2_internal): Use define_insn_and_split.
953         (fix_truncdfsi2_internal_gfxopt): New.
954         (fctiwz): Don't confuse register allocation by giving it no choices.
955         (stfiwx): New.
956         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'Z'.
957         (EXTRA_MEMORY_CONSTRAINT): Likewise.
958         * config/rs6000/rs6000.c (indexed_or_indirect_operand): New.
959         * config/rs6000/rs6000-protos.h (indexed_or_indirect_operand): New.
960
961 2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
962
963         * dominance.c (free_dominance_info): Speed up by freeing et
964         data structures without maintaining other nodes.
965         * et-forest.c (et_free_tree_force): New.
966         * et-forest.h: Add a prototype for et_free_tree_force.
967
968         * tree.c (get_set_constructor_bits,
969         get_set_constructor_bytes): Remove.
970         * tree.h: Remove the corresponding prototypes.
971
972 2005-03-25  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
973
974         PR target/15491
975         * vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs.
976         (vax_rtx_costs): Return false when passed unsupported rtx's.  Handle
977         FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE.  Fix costs for POST_INC,
978         PRE_DEC, NEG and NOT.
979
980 2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
981
982         * fold-const.c: Convert uses of fold (build (...)) to
983         fold_buildN.
984
985 2005-03-25  Zdenek Dvorak  <dvorakz@suse.cz>
986
987         PR rtl-optimization/20249
988         * cse.c (insert_regs): Do not record equivalence of registers in
989         different modes.
990
991 2005-03-24  Kazu Hirata  <kazu@cs.umass.edu>
992
993         * emit-rtl.c (reverse_comparison): Remove.
994         * rtl.h: Remove the corresponding prototype.
995
996 2005-03-24  James E Wilson  <wilson@specifixinc.com>
997
998         * doc/install.texi (--enable-altivec): Delete docs.
999
1000 2005-03-24  David Edelsohn  <edelsohn@gnu.org>
1001
1002         * config/rs6000/predicates.md (easy_fp_constant): Return 0 for
1003         SFmode and DFmode before reload when
1004         flag_unsafe_math_optimizations not enabled.
1005
1006 2005-03-24  Geoffrey Keating  <geoffk@apple.com>
1007
1008         * c.opt (fvisibility-inlines-hidden): Allow for ObjC++.
1009
1010         * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Add
1011         MASK_128BIT_LONG_DOUBLE, MASK_ALIGN_DOUBLE.
1012
1013 2005-03-24  Nathan Sidwell  <nathan@codesourcery.com>
1014
1015         * configure.ac (enable-checking): Add 'runtime' option.
1016         * doc/install.texi (enable-checking): Document 'runtime' checking.
1017         * tsystem.h (gcc_assert, gcc_unreachable): Define.
1018         * config.in: Regenerated.
1019         * configure: Regenerated.
1020
1021 2005-03-23  Uros Bizjak  <uros@kss-loka.si>
1022
1023         * optabs.h (enum optab_index): Remove OTI_llrint.
1024         (llrint_optab): Remove macro.
1025         * optabs.c (init_optabs): Remove llrint_optab initialization.
1026         * genopinit.c (optabs): Remove llrint_optab implementation.
1027         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LLRINT{,F,L}
1028         using lrint_optab.
1029
1030 2005-03-24  Alexandre Oliva  <aoliva@redhat.com>
1031
1032         PR rtl-optimization/20532
1033         * simplify-rtx.c (simplify_binary_operation_1): Protect from
1034         overflow when adding coefficients for PLUS or MINUS.
1035         (simplify_binary_operation_1): Handle CONST_DOUBLE exact power of
1036         two as multiplier.
1037
1038 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
1039
1040         * langhooks.h (truthvalue_conversion): Remove.
1041         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
1042         LANG_HOOKS_TRUTHVALUE_CONVERSION.
1043         * system.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Poison.
1044         * gimplify.c (gimple_boolify): Don't use truthvalue_conversion.
1045         * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
1046
1047 2005-03-23  Kazu Hirata  <kazu@cs.umass.edu>
1048
1049         * params.def: Fix a typo.
1050         * config/mips/mips.c: Follow the spelling convensions.
1051         * doc/invoke.texi: Fix typos.
1052
1053 2005-03-18  Dale Johannese  <dalej@apple.com>
1054
1055         * cp/tree.c (cp_tree_equal):  Handle SSA_NAME.
1056
1057 2005-03-23  Daniel Berlin  <dberlin@dberlin.org>
1058
1059         Fix PR tree-optimization/20601
1060
1061         * tree-ssa-pre.c (insert_aux): Add missing condition to
1062         constification.
1063
1064 2005-03-23  Ian Lance Taylor  <ian@airs.com>
1065
1066         * final.c (final_scan_insn): Don't remove no-op instructions.
1067         * reload1.c (reload): Remove simple no-op instructions even when
1068         not optimizing.
1069
1070 2005-03-23  Dorit Naishlos  <dorit@il.ib.com>
1071
1072         PR tree-optimization/20501
1073         * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Debug print
1074         reporting that peeling for alignment is applied moved to...
1075         * (vect_analyze_data_refs_alignment): Here.
1076
1077 2005-03-23  Ian Lance Taylor  <ian@airs.com>
1078
1079         * reorg.c (dbr_schedule): Remove #if 0 code to call final.
1080
1081 2005-03-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1082
1083         * config.gcc (alpha*-dec-osf[45]*): Remove target_cpu_default.
1084         Define TARGET_SUPPORT_ARCH except on Tru64 UNIX V4.0A.
1085
1086 2005-03-23  Hans-Peter Nilsson  <hp@axis.com>
1087
1088         * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Adjust wording to not
1089         imply that this is called once, independent of asms in code.
1090         Adjust to now being pased output and input lists.  Mention helper
1091         function decl_overlaps_hard_reg_set_p.
1092         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Rename from
1093         hook_tree_tree_identity and to take three trees, returning third.
1094         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Adjust the
1095         prototype.
1096         * stmt.c: include hard-reg-set.h before tree.h.
1097         (decl_overlaps_hard_reg_set_p): New function, broken out from...
1098         (decl_conflicts_with_clobbers_p): Call
1099         decl_overlaps_hard_reg_set_p.
1100         (expand_asm_operands): Pass output and input lists in call to
1101         targetm.md_asm_clobbers.
1102         * target-def.h (TARGET_MD_ASM_CLOBBERS): Define as
1103         hook_tree_tree_tree_tree_3rd_identity.
1104         * target.h (struct gcc_target.md_asm_clobbers): Take three tree
1105         parameters.
1106         * tree.h [HARD_CONST] (decl_overlaps_hard_reg_set_p): Prototype.
1107         * config/i386/i386.c (ix86_md_asm_clobbers): Adjust to three
1108         parameters, first two unused.
1109         * config/cris/cris.c (cris_md_asm_clobbers): Adjust to added
1110         parameters.  Only add MOF to clobbers if there's no 'h' mentioned
1111         in constraint letters and MOF is not mentioned as a asm-declared
1112         register in neither of the input and output lists.
1113
1114 2005-03-23  DJ Delorie  <dj@redhat.com>
1115
1116         * optabs.c (expand_binop): Make sure the first subword's result
1117         gets stored.
1118
1119 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
1120
1121         * c-common.c (c_common_truthvalue_conversion): Adjust comment.
1122         Call c_common_truthvalue_conversion rather than
1123         lang_hooks.truthvalue_conversion.
1124         * c-convert.c (convert): Call c_objc_common_truthvalue_conversion.
1125         * c-objc-common.c (c_objc_common_truthvalue_conversion): Move to
1126         c-typeck.c.
1127         * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Change to
1128         c_common_truthvalue_conversion.
1129         * c-parser.c (c_parser_paren_condition, c_parser_for_statement,
1130         c_parser_conditional_expression, c_parser_binary_expression): Call
1131         c_objc_common_truthvalue_conversion.
1132         * c-typeck.c (build_unary_op): Call
1133         c_objc_common_truthvalue_conversion.
1134         (build_conditional_expr): Do not call
1135         lang_hooks.truthvalue_conversion.
1136         (build_binary_op): Call c_common_truthvalue_conversion.
1137         (c_objc_common_truthvalue_conversion): Moved from
1138         c-objc-common.c.  Call default_function_array_conversion instead
1139         of default_conversion.
1140
1141 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
1142
1143         * c-common.h (default_conversion): Remove.
1144         (perform_integral_promotions): Add.
1145         * c-tree.h (default_conversion): Add.
1146         * c-typeck.c (perform_integral_promotions): New, split out from
1147         default_conversion.
1148         * c-common.c (check_case_value): Use perform_integral_promotions,
1149         not default_conversion.
1150         (c_add_case_label): Don't continue processing case label after
1151         found to be pointer.
1152
1153 2005-03-23  Mark Mitchell  <mark@codesourcery.com>
1154
1155         * gcc.c (do_spec_1): Do not add a -L path for a directory in
1156         the prefix list if we have already added a multilib directory
1157         based on that path.
1158         (main): Do not add MD_EXEC_PREFIX to the list of directories to
1159         search with -L.
1160
1161 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
1162
1163         * reload1.c (indirect_symref_ok, reload_obstack): Make them
1164         static.
1165         * reload.h: Remove the prototype for indirect_symref_ok.
1166
1167         * reload1.c (indirect_symref_ok): Make it global.
1168         * reload.h: Add a prototype for indirect_symref_ok.
1169
1170 2005-03-22  Kaz Kojima  <kkojima@gcc.gnu.org>
1171
1172         * config/sh/sh.md (ashlhi3): Rename to *ashlhi3_n and add a new
1173         ashlhi3 expander.
1174
1175 2005-03-22  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1176
1177         * tree.h (DECL_IGNORED_P, DECL_IN_SYSTEM_HEADER): Clarify comments.
1178
1179 2005-03-22  Daniel Berlin  <dberlin@dberlin.org>
1180
1181         * c-opts.c (c_common_parse_file): Only start/end main source file
1182         if debug hooks says the writer wants it.
1183         * dbxout.c (dbx_debug_hooks): Add start_end_main_source_file
1184         member.
1185         (xcoff_debug_hooks): Ditto.
1186         * debug.c (do_nothing_hooks): Ditto.
1187         * debug.h (gcc_debug_hooks): Ditto.
1188         * dwarf2out.c (dwarf2_debug_hooks): Ditto.
1189         * sdbout.c (sdb_debug_hooks): Ditto.
1190         * vmsdbgout.c (vmsdbg_debug_hooks): Ditto.
1191
1192 2005-03-22  Mark Mitchell  <mark@codesourcery.com>
1193
1194         * doc/extend.texi: Deprecate C++ min/max operators.
1195
1196 2005-03-22  Zdenek Dvorak  <dvorakz@suse.cz>
1197
1198         * tree-ssa-loop-ivopts.c (determine_iv_cost): Do not try to preserve
1199         artificial original candidates.
1200
1201 2005-03-22  Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
1202             Jan Hubicka  <jh@suse.cz>
1203             Steven Bosscher <stevenb@suse.de>
1204
1205         * cgraphunit.c (cgraph_estimate_size_after_inlining): Compute
1206         call cost based on argument sizes.
1207         (cgraph_mark_inline_edge): Avoid inline unit from shrinking by
1208         inlining.
1209         * params.def: (max-inline-inssn-single): Set to 450.
1210         (max-inline-insns-auto): Set to 90.
1211         (max-inline-insns-recursive): Set to 450
1212         (max-inline-insns-recursive-auto): Set to 450.
1213         (large-function-insns): Set to 2700.
1214         (inline-call-cost): New parameter.
1215         * tree-inline.c (estimate_move_cost): New function.
1216         (estimate_num_insns_1): Compute move sizes costs by estimate_move_cost
1217         for non-gimple-regs, set cost to 0 for gimple-regs.  Compute call size
1218         based on arguments.
1219         * tree-inline.h (estimate_move_cost): Declare.
1220         * invoke.texi: (max-inline-inssn-single): Change default to 450.
1221         (max-inline-insns-auto): Change default to 90.
1222         (max-inline-insns-recursive): Change default to 450
1223         (max-inline-insns-recursive-auto): Change default to 450.
1224         (large-function-insns): Change default to 2700.
1225         (inline-call-cost): Document new parameter.
1226
1227 2005-03-22  Richard Sandiford  <rsandifo@redhat.com>
1228
1229         * config/i860/i860.h (target_flags, TARGET_XP, TARGET_SWITCHES)
1230         (TARGET_DEFAULT): Delete.
1231         * config/i860/i860.opt: New file.
1232
1233 2005-03-22  Richard Sandiford  <rsandifo@redhat.com>
1234
1235         * config/frv/frv-protos.h (frv_branch_cost_string, frv_branch_cost_int)
1236         (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
1237         (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
1238         (frv_sched_lookahead): Delete.
1239         * config/frv/frv.h (MASK_DEFAULT_ALLOC_CC): Move to frv.c.
1240         (target_flags, MASK_GPR_32, MASK_FPR_32, MASK_SOFT_FLOAT)
1241         (MASK_ALLOC_CC, MASK_DWORD, MASK_DOUBLE, MASK_MEDIA, MASK_MULADD)
1242         (MASK_LIBPIC, MASK_ACC_4,  MASK_PACK, MASK_LONG_CALLS)
1243         (MASK_ALIGN_LABELS, MASK_LINKED_FP, MASK_BIG_TLS, MASK_DEBUG_ARG)
1244         (MASK_DEBUG_ADDR, MASK_DEBUG_STACK, MASK_DEBUG, MASK_DEBUG_LOC)
1245         (MASK_DEBUG_COND_EXEC, MASK_NO_COND_MOVE, MASK_NO_SCC)
1246         (MASK_NO_COND_EXEC, MASK_NO_VLIW_BRANCH, MASK_NO_MULTI_CE)
1247         (MASK_FDPIC, MASK_INLINE_PLT, MASK_GPREL_RO, MASK_DEFAULT)
1248         (TARGET_GPR_32, TARGET_FPR_32, TARGET_SOFT_FLOAT, TARGET_ALLOC_CC)
1249         (TARGET_DWORD, TARGET_DOUBLE, TARGET_MEDIA, TARGET_MULADD)
1250         (TARGET_LIBPIC, TARGET_ACC_4, TARGET_DEBUG_ARG, TARGET_DEBUG_ADDR)
1251         (TARGET_DEBUG_STACK, TARGET_DEBUG, TARGET_DEBUG_LOC)
1252         (TARGET_DEBUG_COND_EXEC, TARGET_NO_COND_MOVE, TARGET_NO_SCC)
1253         (TARGET_NO_COND_EXEC, TARGET_NO_VLIW_BRANCH, TARGET_NO_MULTI_CE)
1254         (TARGET_NO_NESTED_CE, TARGET_FDPIC, TARGET_INLINE_PLT, TARGET_BIG_TLS)
1255         (TARGET_GPREL_RO, TARGET_PACK, TARGET_LONG_CALLS, TARGET_ALIGN_LABELS)
1256         (TARGET_LINKED_FP, TARGET_GPR_64, TARGET_FPR_64, TARGET_HARD_FLOAT)
1257         (TARGET_FIXED_CC, TARGET_COND_MOVE, TARGET_SCC, TARGET_COND_EXEC)
1258         (TARGET_VLIW_BRANCH, TARGET_MULTI_CE, TARGET_NESTED_CE, TARGET_ACC_8)
1259         (TARGET_SWITCHES, TARGET_OPTIONS, DEFAULT_CONDEXEC_TEMPS)
1260         (DEFAULT_BRANCH_COST, DEFAULT_CONDEXEC_INSNS): Delete.
1261         * config/frv/frv.c (frv_branch_cost_string, frv_branch_cost_int)
1262         (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
1263         (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
1264         (frv_sched_lookahead): Delete.
1265         (MASK_DEFAULT_ALLOC_CC): Moved from frv.h.
1266         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1267         (frv_handle_option): New function.  Move -mcpu= handling from...
1268         (frv_override_options): ...here.  Remove handling of other
1269         TARGET_OPTIONS.
1270         (frv_ifcvt_modify_tests): Check !TARGET_COND_EXEC instead of
1271         TARGET_NO_COND_EXEC and !TARGET_NESTED_CE to TARGET_NO_NESTED_CE.
1272         (frv_ifcvt_modify_multiple_tests): Likewise !TARGET_MULTI_CE
1273         and TARGET_NO_MULTI_CE.
1274         (frv_for_each_packet): Likewise TARGET_NO_VLIW_BRANCH and
1275         !TARGET_VLIW_BRANCH.
1276         * config/frv/frv.opt: New file.
1277
1278 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
1279
1280         * fold-const.c (fold_ternary): Take decomposed arguments of
1281         CALL_EXPR.
1282         (fold): Update a call to fold_ternary.
1283
1284         * fold-const.c (fold_build1, fold_build2, fold_build3): New.
1285         * tree.h: Add corresponding prototypes.
1286
1287 2005-03-22  Jakub Jelinek  <jakub@redhat.com>
1288
1289         PR target/20561
1290         * cfglayout.c (reemit_insn_block_notes): Don't put block notes in
1291         between jump table and its label.
1292         * final.c (shorten_branches): Handle notes in between ADDR_VEC
1293         resp. ADDR_DIFF_VEC and the label preceeding it.
1294         (final_scan_insn): Likewise.  Ensure ADDR_VEC resp. ADDR_DIFF_VEC
1295         is emitted in the right section.
1296
1297 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
1298
1299         * fold-const.c (fold_unary, fold_binary): Update comments
1300         about arguments.
1301
1302 2005-03-22  Hans-Peter Nilsson  <hp@axis.com>
1303
1304         PR rtl-optimization/20527
1305         * combine.c (can_combine_p) [AUTO_INC_DEC]: When INSN has an
1306         REG_INC note, test that the register also isn't mentioned in PRED
1307         or SUCC.
1308
1309 2005-03-22  Ben Elliston  <bje@au.ibm.com>
1310
1311         * dwarf2out.c (dwarf_type_encoding_name): Remove unused prototype
1312         and definition.
1313
1314 2005-03-21  Mike Stump  <mrs@apple.com>
1315
1316         * varasm.c (default_assemble_visibility): Remove extra ().
1317
1318 2005-03-21  Roger Sayle  <roger@eyesopen.com>
1319
1320         PR middle-end/20557
1321         * bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
1322         to determine whether a block can be duplicated, rather than test
1323         whether the block contains noncopyable insns ourselves.
1324
1325 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
1326
1327         * config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
1328         predicates.
1329
1330 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
1331
1332         * config/ip2k/ip2k.h (target_flags, TARGET_SWITCHES): Delete.
1333
1334 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
1335
1336         * config/fr30/fr30.h (TARGET_SMALL_MODEL_MASK, TARGET_SMALL_MODEL)
1337         (TARGET_DEFAULT, target_flags, TARGET_SWITCHES): Delete.
1338         * config/fr30/fr30.opt: New file.
1339
1340 2005-03-18  Daniel Berlin  <dberlin@dberlin.org>
1341
1342         Fix PR tree-optimization/20542
1343
1344         * tree-flow-inline.h (overlap_subvar): Move to here.
1345         * tree-ssa-operands.c: From here.
1346         * tree-flow.h (overlap_subvar): Declare.
1347         * tree-ssa-alias.c (add_pointed_to_var): Use overlap_subvar here.
1348         * tree-ssa-loop-im.c (is_call_clobbered_ref): Return proper answer
1349         for variables with subvars.
1350
1351 2005-03-21 Mostafa Hagog <mustafa@il.ibm.com>
1352
1353         PR middle-end/20177
1354         * ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
1355         * modulo-sched.c (const_iteration_count): Return on NULL
1356         pre-header.
1357         (print_node_sched_params): Return on NULL dump_file.
1358         (generate_reg_moves): Handle reg-anti dependencies and disregard
1359         closing branch when generating register moves.
1360         (sms_schedule): Mark the SMSed block dirty.
1361         * passes.c (rest_of_handle_sms): Call update_life_info for all
1362         basic-blocks.
1363         * testsuite/gcc.dg/20050321-1.c: New test.
1364
1365 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
1366
1367         * config/xtensa/lib1funcs.asm (__mulsi3): Use symbolic name for ACCLO.
1368         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
1369         movqi_internal): Likewise.
1370
1371 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
1372
1373         * config/xtensa/xtensa-protos.h: (xtensa_simm7, xtensa_uimm8,
1374         xtensa_uimm8x2, xtensa_uimm8x4, xtensa_ai4const, xtensa_lsi4x4,
1375         xtensa_b4const): Delete prototypes.
1376         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b, xtensa_b4constu,
1377         xtensa_mask_immediate, xtensa_mem_offset): Update prototypes.
1378         (xtensa_b4const_or_zero, xtensa_const_ok_for_letter_p,
1379         xtensa_extra_constraint): New prototypes.
1380         (add_operand, arith_operand, nonimmed_operand, mem_operand,
1381         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
1382         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
1383         move_operand, const_float_1_operand, fpmem_offset_operand,
1384         branch_operator, ubranch_operator, boolean_operator): Delete prototypes.
1385         * config/xtensa/xtensa.c (b4const_or_zero): Rename to ...
1386         (xtensa_b4const_or_zero): ...this.  Change return type to bool and
1387         argument type to HOST_WIDE_INT.
1388         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b,
1389         xtensa_mask_immediate): Likewise.
1390         (xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4, xtensa_b4const):
1391         Likewise.  Also make these functions static.
1392         (xtensa_simm7, xtensa_ai4const, xtensa_lsi4x4): Delete.
1393         (xtensa_const_ok_for_letter_p): New.
1394         (add_operand, arith_operand, nonimmed_operand, mem_operand,
1395         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
1396         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
1397         move_operand, const_float_1_operand, fpmem_offset_operand,
1398         branch_operator, ubranch_operator, boolean_operator): Move to
1399         predicates.md.
1400         (smalloffset_mem_p): Inline code from xtensa_lsi4x4.
1401         (xtensa_mem_offset): Change return type to bool.
1402         (xtensa_extra_constraint): New.
1403         (gen_int_relational): Update type of const_range_p function pointer.
1404         Use xtensa_b4const_or_zero.
1405         * config/xtensa/xtensa.h (CONST_OK_FOR_LETTER_P): Define to
1406         xtensa_const_ok_for_letter_p.  Update comments.
1407         (EXTRA_CONSTRAINT): Define to xtensa_extra_constraint.
1408         (PREDICATE_CODES): Delete.
1409         * config/xtensa/xtensa.md: Include predicates.md.
1410         * config/xtensa/predicates.md: New file.
1411
1412 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
1413
1414         * config/v850/v850-protos.h: Remove the prototypes for
1415         reg_or_int9_operand, reg_or_const_operand,
1416         pattern_is_ok_for_prepare, pattern_is_ok_for_dispose,
1417         reg_or_0_operand, reg_or_int5_operand, call_address_operand,
1418         movsi_source_operand, power_of_two_operand,
1419         not_power_of_two_operand, special_symbolref_operand,
1420         pattern_is_ok_for_prologue, pattern_is_ok_for_epilogue, and
1421         register_is_ok_for_epilogue.
1422         * config/v850/v850.c (reg_or_0_operand, reg_or_int5_operand,
1423         reg_or_int9_operand, reg_or_const_operand,
1424         call_address_operand, special_symbolref_operand,
1425         movsi_source_operand, power_of_two_operand,
1426         not_power_of_two_operand, register_is_ok_for_epilogue,
1427         pattern_is_ok_for_epilogue, pattern_is_ok_for_prologue,
1428         pattern_is_ok_for_dispose, pattern_is_ok_for_prepare): Move to
1429         predicates.md.
1430         * config/v850/v850.h (PREDICATE_CODES): Remove.
1431         * config/v850/v850.md: Include predicates.md.
1432         * config/v850/predicates.md: New.
1433
1434 2005-03-21  Zack Weinberg  <zack@codesourcery.com>
1435
1436         * Makefile.in (BASEVER, DEVPHASE, DATESTAMP)
1437         (BASEVER_c, DEVPHASE_c, DATESTAMP_c)
1438         (BASEVER_s, DEVPHASE_s, DATESTAMP_s, version): Set with :=.
1439         (itoolsdir, itoolsdatadir): Move definition above new first use.
1440         (install-itoolsdirs): New rule.
1441         (install-mkheaders): Depend on install-itoolsdirs, not
1442         install-include-dir.
1443
1444 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
1445
1446         * tree-into-ssa.c: Remove obsolete comments.
1447
1448 2005-03-21  Richard Guenther  <rguenth@gcc.gnu.org>
1449
1450         * tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
1451         unrolling if -fpeel-loops is specified, too.
1452         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
1453         Remove superfluous check for flag_unroll_loops.
1454
1455 2005-03-21  Uros Bizjak  <uros@kss-loka.si>
1456
1457         * optabs.h (enum optab_index): Add new OTI_lrint and OTI_llrint.
1458         (lrint_optab, llrint_optab): Define corresponding macros.
1459         * optabs.c (init_optabs): Initialize lrint_optab and llrint_optab.
1460         * genopinit.c (optabs): Implement lrint_optab using lrintsi2
1461         pattern and llrint_optab using llrintdi2 patterns.
1462         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LRINT{,F,L}
1463         using lrint_optab and BUILT_IN_LLRINT{,F,L} using llrint_optab.
1464         (expand_builtin): Expand BUILT_IN_LRINT{,F,L} and
1465         BUILT_IN_LLRINT{,F,L} using expand_builtin_mathfn if
1466         flag_unsafe_math_optimizations is set.
1467
1468 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
1469
1470         * combine.c (combine_simplify_rtx, simplify_if_then_else,
1471         simplify_logical, if_then_else_cond, known_cond,
1472         simplify_comparison): Adjust calls to reverse_comparison.
1473         Don't use combine_reversed_comparison_code).
1474         (combine_reversed_comparison_code): Remove.
1475         (reversed_comparison): Using reversed_comparison_code, move it...
1476         * jump.c (reversed_comparison): ... here.
1477         * rtl.h (reversed_comparison): Add prototype.
1478
1479 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
1480
1481         * builtins.c (fold_builtin): Take decomposed arguments of
1482         CALL_EXPR.
1483         * fold-const.c (fold_ternary): Update a call to fold_builtin.
1484         * gimplify.c (gimplify_call_expr): Likewise.
1485         * tree-ssa-ccp.c (ccp_fold, ccp_fold_builtin): Likewise.
1486         * tree.h: Update the prototype of fold_builtin.
1487
1488 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
1489
1490         * rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit.
1491         * rtlhooks.c (gen_lowpart_no_emit_general): New.
1492         * rtlhooks-def.h (gen_lowpart_no_emit_general): Declare.
1493         (RTL_HOOKS_GEN_LOWPART_NO_EMIT): New.
1494         * simplify-rtx.c (simplify_binary_operation_1): Use it.
1495
1496 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
1497
1498         * builtins.c (fold_builtin_1): Take decomposed arguments of
1499         CALL_EXPR.
1500         (fold_builtin): Update a call to fold_builtin_1.
1501
1502 2005-03-21  Nathan Sidwell  <nathan@codesourcery.com>
1503
1504         PR other/20564
1505         * gcov.c (output_lines): Only output function block summary when
1506         outputting branch information.
1507         * doc/gcov.texi: Document format of preamble and additional block
1508         information lines.
1509
1510 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
1511
1512         * libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
1513         (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
1514         the defaults false if BITS_PER_UNIT != 8.
1515         (SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
1516         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
1517         than BITS_PER_UNIT != 8.
1518         (L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
1519         (L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
1520         (L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
1521         #undefs.
1522         * libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
1523         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
1524
1525 2005-03-20  Roger Sayle  <roger@eyesopen.com>
1526
1527         PR middle-end/20539
1528         * fold-const.c (fold_binary): Fix type mismatch between
1529         TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
1530         (fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
1531         for non-truth-valued expressions.
1532
1533         * c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
1534         and FUNCTION_DECL in the main switch.
1535         <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
1536         TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
1537         we also need to convert their operands to match.
1538         <TRUTH_NOT_EXPR>: Likewise.
1539
1540 2005-03-21  Joseph S. Myers  <joseph@codesourcery.com>
1541
1542         * c-common.c (lvalue_or_else): Replace by lvalue_error; only give
1543         diagnostic without checking whether an lvalue.
1544         * c-common.h (lvalue_p): Remove.
1545         (enum lvalue_use): Update comment.
1546         (lvalue_or_else): Replace by lvalue_error.
1547         * c-typeck.c (lvalue_p): Make static.
1548         (lvalue_or_else): New.  Call lvalue_error.
1549
1550 2005-03-21  Alan Modra  <amodra@bigpond.net.au>
1551
1552         * config/rs6000/rs6000.c (rs6000_parm_start): New function.
1553         (function_arg_advance): Use rs6000_parm_start.
1554         (function_arg, rs6000_arg_partial_bytes): Likewise.
1555
1556 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
1557
1558         * c-common.c (check_case_value): Adjust comment about stripping
1559         NOPs.
1560         (handle_vector_size_attribute): Don't strip NON_LVALUE_EXPR.
1561         * c-typeck.c (default_conversion, convert_arguments,
1562         build_modify_expr, convert_for_assignment, store_init_value,
1563         digest_init): Use STRIP_TYPE_NOPS instead of stripping nops
1564         manually.  Remove inaccurate comments.
1565
1566 2005-03-20  Roger Sayle  <roger@eyesopen.com>
1567             Joseph S. Myers  <joseph@codesourcery.com>
1568
1569         * varasm.c (do_assemble_alias): Restore comment describing function.
1570         Annotate the target parameter as potentially unused.
1571
1572 2005-03-20  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1573
1574         PR target/18551
1575         * config/avr/avr.c (avr_output_function_prologue): Do not use
1576         current_function_name() in a label, use a local label instead.
1577
1578 2005-03-20  David Edelsohn  <edelsohn@gnu.org>
1579
1580         * config/rs6000/rs6000.c (rs6000_generate_compare): Test
1581         flag_finite_math_only, not flag_unsafe_math_optimizations.
1582
1583 2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
1584
1585         * builtins.c (fold_builtin_1): Update a call to
1586         targetm.fold_builtin.
1587         * hooks.c (hook_tree_tree_bool_null): Rename to
1588         hook_tree_tree_tree_bool_null.  Take one more argument of type
1589         tree.
1590         * hooks.h: Update the prototype of hook_tree_tree_bool_null.
1591         * target-def.h (TARGET_FOLD_BUILTIN): Define it as
1592         hook_tree_tree_tree_bool_null.
1593         * target.h (gcc_target): Update the prototype of fold_builtin.
1594         * config/alpha/alpha.c (alpha_fold_builtin): Take decomposed
1595         arguments of CALL_EXPR.
1596         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update.  Mention the
1597         new prototype.
1598
1599 2005-03-20  Jan Hubicka  <jh@suse.cz>
1600
1601         * cgraph.h (cgraph_node): Add prev_clone pointer.
1602         * cgraph.c (cgraph_remove_node): Remove from doubly linked chain.
1603         (cgraph_clone_node): Produce doubly linked chain.
1604
1605 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
1606
1607         * c-common.c (handle_aligned_attribute, check_function_sentinel,
1608         get_nonnull_operand, handle_sentinel_attribute,
1609         check_function_arguments_recurse): Do not strip NOPS from
1610         INTEGER_CSTs.
1611         * c-decl.c (check_bitfield_type_and_width, build_enumerator):
1612         Likewise.
1613         * c-format.c (get_constant): Likewise.
1614         * c-parser.c (c_parser_postfix_expression): Likewise.
1615         * c-typeck.c (set_init_index): Likewise.
1616         (convert_arguments): Don't check for NOP_EXPR containing integer
1617         constant.
1618
1619 2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
1620
1621         * builtins.c (fold_fixed_mathfn, fold_builtin_trunc,
1622         fold_builtin_floor, fold_builtin_ceil, fold_builtin_lround):
1623         Take decomposed arguments of CALL_EXPR.
1624         (fold_builtin_1): Update calls to the functions mentioned
1625         above.
1626
1627 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
1628
1629         * c-decl.c (check_bitfield_type_and_width): Require bit-field
1630         width to have integer type.
1631         (build_enumerator): Require enumerator value to have integer type.
1632
1633 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
1634
1635         * doc/extend.texi (__builtin_inf): Move statement about INFINITY
1636         to __builtin_inff.
1637
1638 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
1639
1640         * c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
1641         std=iso9899:199x): Correct descriptions.
1642
1643 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
1644
1645         * config.gcc: Consistently use solaris2.1[0-9]* instead of
1646         solaris2.1[0-9].
1647
1648 2005-03-19  Kazu Hirata  <kazu@cs.umass.edu>
1649
1650         * builtins.c (fold_builtin_memcpy): Take decomposed arguments
1651         of CALL_EXPR.
1652         (expand_builtin_memcpy, fold_builtin_1): Update calls to
1653         fold_builtin_memcpy.
1654
1655         * builtins.c (fold_trunc_transparent_mathfn): Take decomposed
1656         arguments of CALL_EXPR.
1657         (fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil,
1658         fold_builtin_found, fold_builtin_1): Update calls to
1659         fold_trunc_transparent_mathfn.
1660
1661 2005-03-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1662
1663         PR middle-end/20493
1664         * fold-const.c (fold_widened_comparison): Don't optimize casts of
1665         function pointers on targets that require function pointer
1666         canonicalization.
1667         (fold_sign_changed_comparison): Likewise.
1668
1669 2005-03-19  Bernd Schmidt  <bernd.schmidt@analog.com>
1670
1671         * combine.c (try_combine): When changing the mode of a hard reg, make
1672         sure that doing so is valid.
1673
1674 2005-03-19  Richard Sandiford  <rsandifo@redhat.com>
1675
1676         * config/avr/avr.c (avr_init_stack, avr_mcu_name): Make static.
1677         (TARGET_HANDLE_OPTION): Override default.
1678         (avr_handle_option): New function.
1679         * config/avr/avr.h (MASK_ALL_DEBUG, MASK_ORDER_1, MASK_INSN_SIZE_DUMP)
1680         (MASK_ORDER_2, MASK_NO_TABLEJUMP, MASK_INT8, MASK_NO_INTERRUPTS)
1681         (MASK_CALL_PROLOGUES, MASK_TINY_STACK, MASK_SHORT_CALLS)
1682         (TARGET_ORDER_1, TARGET_ORDER_2, TARGET_INT8, TARGET_NO_INTERRUPTS)
1683         (TARGET_INSN_SIZE_DUMP, TARGET_CALL_PROLOGUES, TARGET_TINY_STACK)
1684         (TARGET_NO_TABLEJUMP, TARGET_SHORT_CALLS, TARGET_ALL_DEBUG)
1685         (TARGET_SWITCHES, avr_init_stack, avr_mcu_name)
1686         (TARGET_OPTIONS): Delete.
1687         * config/avr/avr.opt: New file.
1688
1689 2005-03-18  2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
1690
1691         * config/m32r/m32r-protos.h: Remove the prototypes for
1692         call_address_operand, symbolic_operand, seth_add3_operand,
1693         cmp_int16_operand, uint16_operand, reg_or_int16_operand,
1694         reg_or_uint16_operand, reg_or_cmp_int16_operand,
1695         two_insn_const_operand, move_src_operand,
1696         move_double_src_operand, move_dest_operand,
1697         eqne_comparison_operator, signed_comparison_operator,
1698         large_insn_p, conditional_move_operand, carry_compare_operand,
1699         m32r_block_immediate_operand, extend_operand,
1700         reg_or_eq_int16_operand, int8_operand, and
1701         reg_or_zero_operand.
1702         * config/m32r/m32r.c (call_address_operand, symbolic_operand,
1703         seth_add3_operand, int8_operand, cmp_int16_operand,
1704         uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
1705         reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
1706         reg_or_zero_operand, two_insn_const_operand, move_src_operand,
1707         move_double_src_operand, move_dest_operand,
1708         eqne_comparison_operator, signed_comparison_operator,
1709         extend_operand, small_insn_p, large_insn_p,
1710         conditional_move_operand, carry_compare_operand,
1711         m32r_block_immediate_operand): Move to predicates.md.
1712         (MAX_MOVE_BYTES): Move to m32r.h.
1713         * config/m32r/m32r.h (PREDICATE_CODES): Remove.
1714         * config/m32r/m32r.md: Include predicates.md.
1715         * config/m32r/predicates.md: New.
1716
1717 2005-03-18  James E Wilson  <wilson@specifixinc.com>
1718
1719         PR c++/19769
1720         * dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
1721         origin.
1722
1723 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
1724
1725         * config/mn10300/mn10300-protos.h: Remove the prototypes for
1726         call_address_operand, const_8bit_operand.
1727         * config/mn10300/mn10300.c (call_address_operand,
1728         const_8bit_operand, const_1f_operand): Move to predicates.md.
1729         * config/mn10300/mn10300.h (PREDICATE_CODES): Remove.
1730         * config/mn10300/mn10300.md: Include predicates.md.
1731         * config/mn10300/predicates.md: New.
1732
1733 2005-03-18  Joseph S. Myers  <joseph@codesourcery.com>
1734
1735         * c-common.c, c-decl.c, c-format.c, c-typeck.c: Use %D for
1736         declarations in diagnostics and %E for identifiers, not %s.
1737
1738 2005-03-18  Jan Hubicka  <jh@suse.cz>
1739             Dale Johannesen  <dalej@apple.com>
1740
1741         * basic-block.h (scale_bbs_frequencies_int,
1742         scale_bbs_frequencies_gcov_type): Declare.
1743         * cfg.c (RDIV): New macro.
1744         (update_bb_frequency_for_threading): Fix.
1745         * basic-block.h (scale_bbs_frequencies_int,
1746         scale_bbs_frequencies_gcov_type): New.
1747         * cfgloopmanip.c (scale_bbs_frequencies): Kill.
1748         (scale_loop_frequencies, duplicate_loop_to_header_edge): Use
1749         scale_bbs_frequencies_int.
1750         * tree-ssa-loop-ch.c (copy_loop_headers): Fix profiling info.
1751
1752 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
1753
1754         * config/m32r/m32r-protos.h: Remove the prototypes for
1755         call_address_operand, symbolic_operand, seth_add3_operand,
1756         cmp_int16_operand, uint16_operand, reg_or_int16_operand,
1757         reg_or_uint16_operand, reg_or_cmp_int16_operand,
1758         two_insn_const_operand, move_src_operand,
1759         move_double_src_operand, move_dest_operand,
1760         eqne_comparison_operator, signed_comparison_operator,
1761         large_insn_p, conditional_move_operand, carry_compare_operand,
1762         m32r_block_immediate_operand, extend_operand,
1763         reg_or_eq_int16_operand, int8_operand, and
1764         reg_or_zero_operand.
1765         * config/m32r/m32r.c (call_address_operand, symbolic_operand,
1766         seth_add3_operand, int8_operand, cmp_int16_operand,
1767         uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
1768         reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
1769         reg_or_zero_operand, two_insn_const_operand, move_src_operand,
1770         move_double_src_operand, move_dest_operand,
1771         eqne_comparison_operator, signed_comparison_operator,
1772         extend_operand, small_insn_p, large_insn_p,
1773         conditional_move_operand, carry_compare_operand,
1774         m32r_block_immediate_operand): Move to predicates.md.
1775         (MAX_MOVE_BYTES): Move to m32r.h.
1776         * config/m32r/m32r.h (PREDICATE_CODES): Remove.
1777         * config/m32r/m32r.md: Include predicates.md.
1778         * config/m32r/predicates.md: New.
1779
1780         * config/pa/pa-protos.h: Add prototypes for magic_milli and
1781         shadd_constant_p.
1782         * config/pa/pa.c (reg_or_0_operand, call_operand_address,
1783         symbolic_operand, symbolic_memory_operand,
1784         reg_or_0_or_nonsymb_mem_operand, reg_before_reload_operand,
1785         indexed_memory_operand, move_dest_operand, move_src_operand,
1786         prefetch_cc_operand, prefetch_nocc_operand,
1787         reg_or_cint_move_operand, pic_label_operand, fp_reg_operand,
1788         arith_operand, arith11_operand, pre_cint_operand,
1789         post_cint_operan, arith_double_operand, ireg_or_int5_operand,
1790         ireg_operand, int5_operand, uint5_operand, int11_operand,
1791         uint32_operand, arith5_operand, and_operand, ior_operand,
1792         lhs_lshift_operand, lhs_lshift_cint_operand, arith32_operand,
1793         pc_or_label_operand, div_operand, plus_xor_ior_operator,
1794         shadd_operand, movb_comparison_operator,
1795         cmpib_comparison_operator): Move to predicates.md.
1796         (magic_milli, shadd_constant_p): Make it extern.
1797         * config/pa/pa.h (PREDICATE_CODES): Remove.
1798         * config/pa/pa.md: Include predicates.md.
1799         * config/pa/predicates.md: New.
1800
1801         * config/v850/v850.h (PREDICATE_CODES): Remove a nonexistent
1802         predicate.
1803
1804 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
1805
1806         * hooks.c, hooks.h, intl.c, opts.h, prefix.c, tree-gimple.c,
1807         config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
1808         config/alpha/freebsd.h, config/alpha/linux.h,
1809         config/alpha/netbsd.h, config/alpha/osf5.h,
1810         config/alpha/vms.h, config/arc/arc.c, config/arc/arc.h,
1811         config/h8300/h8300-protos.h, config/h8300/h8300.c,
1812         config/h8300/h8300.h, config/ia64/unwind-ia64.c,
1813         doc/cppopts.texi: Update copyright.
1814
1815 2005-03-18  Jan Hubicka  <jh@suse.cz>
1816
1817         PR middle-end/20225
1818         * cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
1819         too late.
1820         * varasm.c (find_decl_and_mark_needed): Mark needed only when not
1821         called too late.
1822
1823 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
1824
1825         * tree-into-ssa.c (find_idf): Use VEC_quick_push instead of
1826         VEC_safe_push.
1827
1828 2005-03-18  Paolo Bonzini  <bonzini@gnu.org>
1829
1830         * combine.c (gen_binary): Remove.
1831         (known_cond, simplify_shift_const, find_split_point,
1832         combine_simplify_rtx, simplify_if_then_else, simplify_set,
1833         simplify_logical, expand_field_assignment, extract_left_shift,
1834         force_to_mode, if_then_else_cond, apply_distributive_law,
1835         simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
1836         simplify_comparison, reversed_comparison): Replace with
1837         simplify_gen_binary, simplify_gen_relational or
1838         distribute_and_simplify_rtx.
1839         (distribute_and_simplify_rtx): New function.
1840
1841 2005-03-18  Alexey Neyman  <alex.neyman@auriga.ru>
1842             Paolo Bonzini  <gcc.gnu.org>
1843
1844         * calls.c (setjmp_call_p, special_function_p): Update comments
1845         at the head of the functions.
1846
1847 2005-03-18  Jan Hubicka  <jh@suse.cz>
1848
1849         * tree-cfg.c (fold_cond_expr_cond): Use boolean types for condition.
1850
1851         * cgraph.c (cgraph_remove_node): Avoid loop in code deciding whether
1852         function body should be released; do not proactively release function
1853         bodies in non-unit-at-a-time mode.
1854
1855 2005-03-18  Ralf Corsepius  <ralf.corsepius@rtems.org>
1856
1857         * config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
1858         mno-fp-ret-in-387 multilib variants.
1859
1860 2005-03-18  Richard Sandiford  <rsandifo@redhat.com>
1861
1862         * common.opt (m): Remove.
1863         * opts.c (handle_option): Pass 'm' options to set_target_switch if
1864         table lookup fails.
1865         (common_handle_option): Remove OPT_m case.
1866
1867 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
1868
1869         * builtins.c (fold_builtin_bitop): Take decomposed arguments
1870         of CALL_EXPR.
1871         (fold_builtin_1): Update a call to fold_builtin_bitop.
1872
1873         * builtins.c (fold_builtin_signbit): Take decomposed arguments
1874         of CALL_EXPR.
1875         (fold_builtin_1): Update a call to fold_builtin_signbit.
1876
1877 2005-03-17  Dorit Naishlos  <dorit@il.ibm.com>
1878
1879         PR tree-optimization/20474
1880         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
1881         size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
1882
1883 2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
1884
1885         * config/h8300/h8300-protos.h: Remove prototypes for
1886         general_operand_src, general_operand_dst, single_one_operand,
1887         single_zero_operand, call_insn_operand,
1888         two_insn_adds_subs_operand, small_call_insn_operand,
1889         jump_address_operand, bit_operand, bit_memory_operand,
1890         stack_pointer_operand, const_int_gt_2_operand,
1891         const_int_ge_8_operand, const_int_qi_operand,
1892         const_int_hi_operand, incdec_operand, bit_operator,
1893         nshift_operator, eqne_operator, gtle_operator,
1894         gtuleu_operator, iorxor_operator.
1895         Add prototypes for h8sx_shift_type h8sx_classify_shift and
1896         h8300_ldm_stm_parallel.
1897         * config/h8300/h8300.c (h8sx_shift_type,): Move to
1898         h8300-protos.h.
1899         (SYMBOL_FLAG_FUNCVEC_FUNCTION, SYMBOL_FLAG_EIGHTBIT_DATA,
1900         SYMBOL_FLAG_TINY_DATA): Move to h8300.h.
1901         (h8300_ldm_stm_parallel): Make it extern.
1902         (h8300_ldm_parallel, h8300_stm_parallel,
1903         h8300_return_parallel, general_operand_src,
1904         general_operand_dst, h8300_dst_operand, h8300_src_operand,
1905         nibble_operand, reg_or_nibble_operand, single_one_operand,
1906         single_zero_operand, call_insn_operand,
1907         two_insn_adds_subs_operand, small_call_insn_operand,
1908         jump_address_operand, bit_operand, bit_memory_operand,
1909         stack_pointer_operand, const_int_gt_2_operand,
1910         const_int_ge_8_operand, const_int_qi_operand,
1911         const_int_hi_operand, incdec_operand, eqne_operator,
1912         gtle_operator, gtuleu_operator, iorxor_operator, bit_operator,
1913         h8sx_binary_memory_operator, h8sx_unary_memory_operator,
1914         h8sx_unary_shift_operator, h8sx_binary_shift_operator,
1915         nshift_operator): Move to predicates.md.
1916         * config/h8300/h8300.h (PREDICATE_CODES): Remove.
1917         * config/h8300/h8300.md: Include predicates.md.
1918         * config/h8300/predicates.md: New.
1919
1920 2005-03-17  Richard Henderson  <rth@redhat.com>
1921
1922         * config.gcc (ia64*-*-hpux*): Add extra_options.
1923         * config/ia64/hpux.h (SUBTARGET_SWITCHES): Remove.
1924         (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
1925         * config/ia64/ia64.c (ia64_fixed_range_string): Remove.
1926         (ia64_tls_size_string, ia64_tune_string): Remove.
1927         (ia64_tune): Init to PROCESSOR_ITANIUM2.
1928         (TARGET_DEFAULT_TARGET_FLAGS): New.
1929         (TARGET_HANDLE_OPTION): New.
1930         (ia64_override_options): Move options parsing ...
1931         (ia64_handle_option): ... here.  New.
1932         * config/ia64/ia64.h (target_flags, MASK_BIG_ENDIAN, MASK_GNU_AS,
1933         MASK_GNU_LD, MASK_NO_PIC, MASK_VOL_ASM_STOP, MASK_ILP32,
1934         MASK_REG_NAMES, MASK_NO_SDATA, MASK_CONST_GP, MASK_AUTO_PIC,
1935         MASK_INLINE_FLOAT_DIV_LAT, MASK_INLINE_FLOAT_DIV_THR,
1936         MASK_INLINE_INT_DIV_LAT, MASK_INLINE_INT_DIV_THR,
1937         MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, MASK_DWARF2_ASM,
1938         MASK_EARLY_STOP_BITS, TARGET_BIG_ENDIAN, TARGET_GNU_AS, TARGET_GNU_LD,
1939         TARGET_NO_PIC, TARGET_VOL_ASM_STOP, TARGET_ILP32, TARGET_REG_NAMES,
1940         TARGET_NO_SDATA, TARGET_CONST_GP, TARGET_AUTO_PIC,
1941         TARGET_INLINE_FLOAT_DIV_LAT, TARGET_INLINE_FLOAT_DIV_THR,
1942         TARGET_INLINE_INT_DIV_LAT, TARGET_INLINE_INT_DIV_THR,
1943         TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_INT_DIV, TARGET_INLINE_SQRT_LAT,
1944         TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT, TARGET_DWARF2_ASM,
1945         TARGET_EARLY_STOP_BITS): Remove.
1946         (TARGET_ILP32): Default false.
1947         (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS): Remove.
1948         (enum ia64_inline_type): New.
1949         (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
1950         * config/ia64/ia64.md: Update for new definitions of
1951         TARGET_INLINE_INT_DIV, TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_SQRT.
1952         * config/ia64/ia64.opt: New file.
1953         * config/ia64/ilp32.opt: New file.
1954
1955 2005-03-17  H.J. Lu  <hongjiu.lu@intel.com>
1956
1957         PR target/18380
1958         * config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.
1959
1960 2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
1961
1962         * config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1
1963         instead of MASK_H8300S.
1964         * config/h8300/h8300.h (target_flags, MASK_H8300S, MASK_MAC,
1965         MASK_INT32, MASK_ADDRESSES, MASK_QUICKCALL, MASK_SLOWBYTE,
1966         MASK_NORMAL_MODE, MASK_RELAX, MASK_H8300H, MASK_ALIGN_300,
1967         MASK_H8300SX, TARGET_INT32, TARGET_ADDRESSES,
1968         TARGET_QUICKCALL, TARGET_SLOWBYTE, TARGET_H8300H,
1969         TARGET_H8300XS, TARGET_NORMAL_MODE, TARGET_ALIGN_300,
1970         TARGET_SWITCHES): Remove.
1971         (TARGET_H8300S): Redefine interms of TARGET_H8300S_1 and
1972         TARGET_H8300SX.
1973         * config/h8300/h8300.opt: New.
1974
1975         * config/alpha/alpha.opt, config/arc/arc.opt,
1976         config/h8300/h8300.opt, config/mips/mips.opt: Add copyright
1977         notices.
1978
1979 2005-03-17  Ian Lance Taylor  <ian@airs.com>
1980
1981         * gmon.c: Remove.
1982
1983 2005-03-17  Richard Sandiford  <rsandifo@redhat.com>
1984
1985         * config/arc/arc.c (arc_cpu_string): Make static.  Default to "base"
1986         (arc_text_string, arc_data_string, arc_rodata_string): Make static.
1987         (TARGET_HANDLE_OPTION): Override default.
1988         (arc_handle_option): New function.
1989         (arc_init): Remove code to set arch_cpu_string.
1990         * config/arc/arc.h (target_flags, TARGET_MASK_MANGLE_CPU)
1991         (TARGET_MANGLE_CPU, TARGET_MASK_MANGLE_CPU_LIBGCC)
1992         (TARGET_MANGLE_CPU_LIBGCC, TARGET_MASK_ALIGN_LOOPS, TARGET_ALIGN_LOOPS)
1993         (TARGET_MASK_BIG_ENDIAN, TARGET_BIG_ENDIAN, TARGET_MASK_NO_COND_EXEC)
1994         (TARGET_NO_COND_EXEC, TARGET_SWITCHES, TARGET_DEFAULT)
1995         (SUBTARGET_SWITCHES, arc_cpu_string, arc_text_string, arc_data_string)
1996         (arc_rodata_string, TARGET_OPTIONS): Delete.
1997         * config/arc/arc.opt: New file.
1998
1999 2005-03-17  Richard Henderson  <rth@redhat.com>
2000
2001         * doc/extend.texi (Weak Pragmas): New section.
2002         (attribute alias): Clarify that target must be in the same
2003         translation unit.
2004
2005 2005-03-17  Richard Henderson  <rth@redhat.com>
2006
2007         * config/alpha/alpha.opt: New file.
2008         * config/alpha/alpha.c (alpha_tune): New.  Rename all existing uses
2009         of alpha_cpu.
2010         (alpha_cpu_string, alpha_tune_string, alpha_tp_string,
2011         alpha_fprm_string, alpha_fptm_string): Make static.
2012         (alpha_tls_size_string): Remove.
2013         (alpha_handle_option): New.
2014         (override_options): Update for alpha_cpu/alpha_tune split.
2015         (alpha_file_start): Likewise.
2016         (TARGET_DEFAULT_TARGET_FLAGS): New.
2017         (TARGET_HANDLE_OPTION): New.
2018         * config/alpha/alpha.h (alpha_tune): Declare.
2019         (MASK_FP, MASK_FPREGS, TARGET_FPREGS, MASK_GAS, TARGET_GAS,
2020         MASK_IEEE_CONFORMANT, TARGET_IEEE_CONFORMANT, MASK_IEEE, TARGET_IEEE,
2021         MASK_IEEE_WITH_INEXACT, TARGET_IEEE_WITH_INEXACT, MASK_BUILD_CONSTANTS,
2022         TARGET_BUILD_CONSTANTS, MASK_FLOAT_VAX, TARGET_FLOAT_VAX, MASK_BWX,
2023         TARGET_BWX, MASK_MAX, TARGET_MAX, MASK_FIX, TARGET_FIX, MASK_CIX,
2024         TARGET_CIX, MASK_EXPLICIT_RELOCS, TARGET_EXPLICIT_RELOCS,
2025         MASK_SMALL_DATA, TARGET_SMALL_DATA, MASK_TLS_KERNEL, TARGET_TLS_KERNEL,
2026         MASK_SMALL_TEXT, TARGET_SMALL_TEXT, MASK_LONG_DOUBLE_128,
2027         TARGET_LONG_DOUBLE_128, MASK_CPU_EV5, TARGET_CPU_EV5, MASK_CPU_EV6,
2028         TARGET_CPU_EV6, MASK_SUPPORT_ARCH): Remove.
2029         (TARGET_SWITCHES, TARGET_OPTIONS): Remove.
2030         (TARGET_DEFAULT): Remove MASK_FP.
2031         (TARGET_FP): Redefined based on TARGET_SOFT_FP.
2032         (TARGET_SUPPORT_ARCH): Default on if HAVE_AS_EXPLICIT_RELOCS.
2033         (alpha_cpu_string, alpha_tune_string, alpha_fprm_string,
2034         alpha_fptm_string, alpha_tp_string, alpha_mlat_string,
2035         alpha_tls_size_string): Remove.
2036         * config/alpha/alpha.md (prefetch): Use alpha_cpu.
2037         (attribute tune): Rename from attribute cpu.
2038         * config/alpha/ev4.md: Update to match.
2039         * config/alpha/ev5.md, config/alpha/ev6.md: Likewise.
2040         * config/alpha/freebsd.h (TARGET_DEFAULT): Remove MASK_FP.
2041         * config/alpha/linux.h (TARGET_DEFAULT): Likewise.
2042         * config/alpha/netbsd.h (TARGET_DEFAULT): Likewise.
2043         * config/alpha/osf5.h (TARGET_DEFAULT): Likewise.
2044         * config/alpha/vms.h (TARGET_DEFAULT): Likewise.
2045
2046 2005-03-16  James E. Wilson  <wilson@specifixinc.com>
2047
2048         * config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
2049         and return without creating new state if before_nops_num is nonzero.
2050         * config/ia64/ia64.md (first_insn): New attribute.
2051         (alloc): Set it to yes.
2052
2053 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
2054
2055         * tree-vectorizer.c (new_vec_stmt_info): Initialize
2056         STMT_VINFO_SUBVARS to NULL.
2057         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
2058
2059 2005-03-16 Dale Johannesen  <dalej@apple.com>
2060
2061         * rtlanal.c (find_first_parameter_load):  Rewrite to
2062         return actual first param load or the call if none,
2063         instead of first in block, when not all loads exist.
2064
2065 2005-03-16  Roger Sayle  <roger@eyesopen.com>
2066
2067         * optabs.c (expand_copysign_absneg): Make static.
2068         * optabs.h (expand_copysign_absneg): Delete prototype.
2069         * config/rs6000/rs6000.md (copysigntf3): Delete pattern.
2070
2071 2005-03-16  Richard Henderson  <rth@redhat.com>
2072
2073         PR middle-end/15700
2074         * varasm.c (struct alias_pair): Rename from struct output_def_pair.
2075         (alias_pairs): Rename from output_defs.
2076         (find_decl_and_mark_needed): Split out from assemble_alias.
2077         (do_assemble_alias): New.
2078         (assemble_output_def): Remove.
2079         (finish_aliases_1, finish_aliases_2): New.
2080         (process_pending_assemble_output_defs): Remove.
2081         (assemble_alias): Defer aliases for which we don't yet have a
2082         non-external decl for the target symbol.
2083         * passes.c (rest_of_decl_compilation): Register variables with cgraph.
2084         * cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1.
2085         * toplev.c (compile_file): Use finish_aliases_2 instead of
2086         process_pending_assemble_output_defs.
2087         * tree.h (finish_aliases_1, finish_aliases_2): Declare.
2088         (process_pending_assemble_output_defs): Remove.
2089
2090 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
2091
2092         Fix PR tree-optimization/20489
2093
2094         * tree-ssa-alias.c (push_fields_onto_fieldstack): DTRT
2095         for empty structures.
2096
2097 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
2098
2099         Fix PR tree-optimization/20490
2100
2101         * tree-ssa-pre.c (create_expression_by_pieces): Use
2102         force_gimple_operand on result of fold.
2103
2104 2005-03-16  Andrew Pinski  <pinskia@physics.uc.edu>
2105
2106         * config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
2107         of closing parenthesis.
2108
2109 2005-03-16  Kazu Hirata  <kazu@cs.umass.edu>
2110
2111         * builtins.c (expand_movstr): Update a call to
2112         fold_builtin_strcpy.
2113         (expand_builtin_strncpy): Update a call to
2114         fold_builtin_strncpy.
2115         (fold_builtin_strcpy, fold_builtin_strncpy): Take decomosed
2116         arguments of CALL_EXPR.
2117         (fold_builtin_1): Update calls to fold_builtin_strcpy and
2118         fold_builtin_strncpy.
2119         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
2120         * tree.h: Update the prototypes of fold_builtin_strcpy and
2121         fold_builtin_strncpy.
2122
2123 2005-03-16  Steven Bosscher  <stevenb@suse.de>
2124             Dorit Naishlos  <dorit@il.ibm.com>
2125
2126         * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Copy
2127         UNITS_PER_SIMD_WORD to a local variable to avoid a "division by zero"
2128         error.
2129
2130 2005-03-16  Steven Bosscher  <stevenb@suse.de>
2131
2132         * tree-inline.c (walk_type_fields, walk_tree,
2133         walk_tree_without_duplicates): Move from here...
2134         * tree.c: ...to here.
2135
2136 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
2137
2138         * BASE-VER, DATESTAMP, DEV-PHASE: New files.
2139         * Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
2140         (BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
2141         (BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
2142         (version): Define using $(BASEVER_c).
2143         (Makefile, config.status, build/gcov-iov.o): No longer depends on
2144         version.c.
2145         (version.o): Depend on version files; add custom generation command.
2146         (prefix.o): Define BASEVER on command line.
2147         (s-iov): Depend on version files; adjust command.
2148         (TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
2149         Add gcc-vers.texi.
2150         (gcc-vers.texi): New rule.
2151         (doc/%.info, doc/%.dvi): Add -I . to command line.
2152         (doc/gccinstall.dvi): Likewise.
2153         (PACKAGE): Delete.  All uses replaced with "gcc".
2154         * aclocal.m4: Do not include gcc-version.m4.
2155         * configure.ac: Do not invoke TL_AC_GCC_VERSION.
2156         Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
2157         Set is_release based on contents of DEV-PHASE.
2158         Set gcc_version based on contents of BASE-VER.
2159         Define WIN32_REGISTRY_KEY only if the user overrode the default.
2160         * config.in, configure: Regenerate.
2161         * gccbug.in: Determine version of GCC in use at runtime.
2162         * gcov-iov.c: Get version number and development phase from
2163         command line, not by including version.c.
2164         * intl.c: Replace all uses of PACKAGE with "gcc".
2165         * libada-mk.in: Delete unused "gcc_version" variable.
2166         * prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
2167         * version.c: (VERSUFFIX): New hook for redistributors; adjust
2168         commentary to match.
2169         (version_string): Put together from pieces.
2170         * config/alpha/x-vms: Do not use $(gcc_version).
2171         * config/i386/t-nwld: Likewise.
2172         * doc/include/gcc-common.texi: Include gcc-vers.texi for
2173         version-GCC and DEVELOPMENT.
2174
2175 2005-03-15  Roger Sayle  <roger@eyesopen.com>
2176
2177         PR tree-optimization/17454
2178         * tree.c (tree_size): Add case for TREE_BINFO.
2179         * fold-const.c (fold_checksum_tree): Only clear the overloaded
2180         field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.
2181
2182 2005-03-15  Roger Sayle  <roger@eyesopen.com>
2183
2184         * optabs.c (expand_doubleword_mult): Avoid clobbering op0 and
2185         op1 whilst expanding the signed widenening multiply variant.
2186
2187 2005-03-15  Richard Sandiford  <rsandifo@redhat.com>
2188
2189         * toplev.c (display_target_options): Avoid unused variable warning if
2190         TARGET_SWITCHES and TARGET_OPTIONS are both undefined.
2191         * config/mips/mips.c (mips_arch_string, mips_tune_string): Make static.
2192         (mips_isa_string, mips_abi_string, mips_fix_vr4130_string): Delete.
2193         (mips_isa): Initialize to MIPS_ABI_DEFAULT.
2194         (mips_isa_info): New variable.
2195         (mips_parse_cpu): Remove the first argument and leave the caller
2196         to report errors.
2197         (TARGET_HANDLE_OPTION): Override default.
2198         (mips_handle_option): New function.  Move option validation code from...
2199         (override_options): ...here.  Update calls to mips_parse_cpu.
2200         * config/mips/mips.h (mips_arch_string, mips_tune_string)
2201         (mips_isa_string, mips_abi_string, TARGET_OPTIONS)
2202         (SUBTARGET_TARGET_OPTIONS): Delete.
2203         * config/mips/mips.opt (mabi=, march=, mflush-func=, mips)
2204         (mno-flush-func, mtune=): New options.
2205
2206 2005-03-15  Roger Sayle  <roger@eyesopen.com>
2207             Richard Henderson  <rth@redhat.com>
2208
2209         * real.c (c4x_single_format, c4x_extended_format): Provide values
2210         for signbit_ro for c4x's single and extended floating point formats.
2211         * optabs.c (expand_copysign): Use the floating point format's
2212         signbit_ro for expanding via expand_copysign_absneg, and it's
2213         signbit_rw field for expanding via expand_copysign_bit.
2214
2215 2005-03-15  Dorit Naishlos  <dorit@il.ibm.com>
2216
2217         * tree-vectorizer.h (unknown_alignment_for_access_p): Replaced by
2218         known_alignment_for_access_p.
2219         (known_alignment_for_access_p): New.
2220         (do_peeling_for_alignment): Field made int instead of bool and renamed
2221         to peeling_for_alignment.
2222         (LOOP_DO_PEELING_FOR_ALIGNMENT): Renamed to LOOP_PEELING_FOR_ALIGNMENT.
2223         * tree-vect-analyze.c (vect_determine_vectorization_factor): New. This
2224         functionality used to be in vect_analyze_operations.
2225         (vect_analyze_operations): Code to determine vectorization factor was
2226         moved to vect_determine_vectorization_factor.
2227         (vect_enhance_data_refs_alignment): Update to correct alignment when it
2228         is known instead of -1.  Set LOOP_PEELING_FOR_ALIGNMENT to peeling
2229         factor.
2230         (vect_analyze_loop): Call vect_determine_vectorization_factor (used to
2231         be part of vect_analyze_operations).
2232         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Use fold when
2233         creating the guard condition, as the number of iterations may be
2234         constant.
2235         (slpeel_tree_peel_loop_to_edge): Use new name of
2236         LOOP_DO_PEELING_FOR_ALIGNMENT. Set it to 0 instead of false.
2237         * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Handle known
2238         alignment case more efficiently. Use LOOP_PEELING_FOR_ALIGNMENT.
2239         (vect_do_peeling_for_alignment): Use fold.
2240         (vect_transform_loop): Use new name of LOOP_DO_PEELING_FOR_ALIGNMENT.
2241
2242         (vect_update_inits_of_dr): Renamed to
2243         vect_update_init_of_dr.
2244         (vect_update_inits_of_drs): Use new name of vect_update_inits_of_dr.
2245         (vectorizable_store): Fix assertion to use == instead of =.
2246
2247 2005-03-15  Daniel Jacobowitz  <dan@codesourcery.com>
2248
2249         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
2250         call_used_regs for wCG registers.
2251
2252 2005-03-15  Ulrich Weigand  <uweigand@de.ibm.com>
2253
2254         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
2255         for non-offsettable memory references to cope with outstanding reload
2256         replacements, take 2.
2257
2258 2005-03-15  Uros Bizjak  <uros@kss-loka.si>
2259
2260         PR target/18668
2261         * config/i386/i386.h (x86_fisttp): New.
2262         (TARGET_FISTTP): New macro.
2263         * config/i386/i386.c (x86_fisttp): Set for NOCONA.
2264         (output_fix_trunc): Add fisttp parameter.  Generate fisttp x87
2265         instruction when fisttp flag is set.
2266         * config/i386/i386-protos.h (output_fix_trunc): Change declaration.
2267
2268         * config/i386/i386.md (type attribute): Add fisttp.
2269         (unit attribute): Set to i387 for fisttp type.
2270         (X87MODEF, X87MODEI, SSEMODEF, SSEMODEI24): New mode macros.
2271         (fix_truncxfdi2, fix_truncxfsi2): Generate fisttp patterns for
2272         TARGET_FISTTP.
2273         (fix_truncdfdi2, fix_truncsfdi2, fix_truncdfsi2, fix_truncsfsi2):
2274         Generate fisttp patterns for TARGET_FISTTP. Implement using mode
2275         macros.
2276         (fix_truncxfhi2, fix_truncdfhi2, fix_truncsfhi2): Generate fisttp
2277         patterns for TARGET_FISTTP.  Enable patterns for
2278         (TARGET_FISTTP && !TARGET_SSE_MATH). Implement using mode macros.
2279         (fix_trunc<mode>_i387_fisttp_1, fix_trunc<mode>_i387_fisttp,
2280         fix_trunc<mode>_i387_fisttp_with_temp): New instruction patterns to
2281         implement fisttp x87 insn.
2282         (fix_trunc*_i387_fisttp splitters): New patterns.
2283         (*fix_truncdi_i387, *fix_truncsi_i387, *fix_trunchi_i387):
2284         Rename to *fix_trunc<mode>_i387_1.  Implement using mode macros.
2285         Disable patterns for TARGET_FISTTP.  Add comment about FLAGS_REG
2286         clobber.
2287         (fix_truncdi_memory, fix_truncdi_nomemory, fix_trunchi_nomemory):
2288         Rename to fix_trunc<mode>_i387 and fix_trunc<mode>_i387_with_temp.
2289         Implement using mode macros. Disable patterns for TARGET_FISTTP.
2290         (fix_truncsi_memory, fix_truncsi_nomemory, fix_trunchi_memory,
2291         fix_trunchi_nomemory): Rename to fix_trunc<mode>_i387 and
2292         fix_trunc<mode>_i387_with_temp. Implement using mode macros.
2293         Disable patterns for TARGET_FISTTP.
2294         (fix_trunc*_i387 splitters): Implement usign mode macros.
2295         (fix_truncdfdi_sse, fix_truncsfdi_sse, fix_truncdfsi_sse,
2296         fix_truncsfsi_sse): Disable for (TARGET_FISTTP && !TARGET_SSE_MATH).
2297         (fix_trunx*_sse peephole2s): Implement using mode macros.
2298
2299 2005-03-15  J"orn Rennecke <joern.rennecke@st.com>
2300
2301         PR rtl-optimization/20291
2302         * combine.c (try_combine): If splitting fails, re-try with
2303         original combined pattern, i.e. before clobber stripping.
2304
2305 2005-03-14  Eric Christopher  <echristo@redhat.com>
2306
2307         * config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
2308         STACK_GROWS_DOWNWARD.
2309
2310 2005-03-14  Roger Sayle  <roger@eyesopen.com>
2311
2312         * real.h (struct real_format): Split the signbit field into two
2313         two fields, signbit_ro and signbit_rw.
2314         * real.c (ieee_single_format, mips_single_format, ieee_double_format,
2315         mips_double_format, ieee_extended_motorola_format,
2316         ieee_extended_intel_96_format, ieee_extended_intel_96_round_53_format,
2317         ieee_extended_intel_128_format, ibm_extended_format,
2318         mips_extended_format, ieee_quad_format, mips_quad_format,
2319         vax_f_format, vax_d_format, vax_g_format, i370_single_format,
2320         i370_double_format, c4x_single_format, c4x_extended_format,
2321         real_internal_format): Update initializers for new field.
2322         * builtins.c (expand_builtin_signbit): Use signbit_ro field of the
2323         real_format structure.
2324         * optabs.c (expand_absneg_bit, expand_copysign): Use signbit_rw
2325         field of the real_format structure.
2326
2327 2005-03-14  Daniel Berlin <dberlin@dberlin.org>
2328
2329         Fix PR tree-optimization/20458
2330
2331         * tree-flow-inline.h (mark_call_clobbered): Don't fiddle
2332         DECL_EXTERNAL on STRUCT_FIELD tags.
2333         (clear_call_clobbered): Ditto.
2334         * tree-ssa-operands.c (note_addressable): Make sure the original
2335         variable doesn't slip into the addressable list if we have
2336         subvars.
2337         * tree-tailcall.c (suitable_for_tail_opt_p): Look at STRUCT_FIELD
2338         tags too.
2339
2340 2005-03-14  Geoffrey Keating  <geoffk@apple.com>
2341
2342         * doc/cppopts.texi (-fexec-charset): Add concept index entry.
2343         (-fwide-exec-charset): Likewise.
2344         (-finput-charset): Likewise.
2345         * doc/invoke.texi (Warning Options): Document -Wnormalized=.
2346         * c-opts.c (c_common_handle_option): Handle -Wnormalized=.
2347         * c.opt (Wnormalized): New.
2348
2349 2005-03-14  Devang Patel  <dpatel@apple.com>
2350
2351         * doc/invoke.texi: Add reference to Visibility document.
2352
2353 2005-03-14  Richard Sandiford  <rsandifo@redhat.com>
2354
2355         * config.gcc (mips*-*-*): Rename MASK_SPLIT_ADDRS to
2356         MASK_SPLIT_ADDRESSES.
2357         * config/mips/mips.h (target_flags, mips_fix_vr4130_string): Delete.
2358         (MASK_INT64, MASK_LONG64, MASK_SPLIT_ADDR, MASK_NO_FUSED_MADD)
2359         (MASK_EXPLICIT_RELOCS, MASK_MEMCPY, MASK_SOFT_FLOAT)
2360         (MASK_FLOAT64, MASK_ABICALLS, MASK_XGOT, MASK_LONG_CALLS)
2361         (MASK_64BIT, MASK_EMBEDDED_DATA, MASK_BIG_ENDIAN)
2362         (MASK_SINGLE_FLOAT, MASK_MAD, MASK_4300_MUL_FIX, MASK_MIPS16)
2363         (MASK_NO_CHECK_ZERO_DIV, MASK_BRANCHLIKELY)
2364         (MASK_UNINIT_CONST_IN_RODATA, MASK_FIX_R4000, MASK_FIX_R4400)
2365         (MASK_FIX_SB1, MASK_FIX_VR4120, MASK_VR4130_ALIGN)
2366         (MASK_FP_EXCEPTIONS, MASK_DIVIDE_BREAKS, MASK_PAIRED_SINGLE)
2367         (MASK_MIPS3D, MASK_SYM32, MASK_DEBUG, MASK_DEBUG_D)
2368         (MASK_MIPS_TFILE, TARGET_INT64, TARGET_LONG64, TARGET_FLOAT64)
2369         (TARGET_64BIT, TARGET_SPLIT_ADDRESSES, TARGET_DEBUG_MODE)
2370         (TARGET_DEBUG_D_MODE, TARGET_MEMCPY, TARGET_ABICALLS)
2371         (TARGET_XGOT, TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT)
2372         (TARGET_LONG_CALLS, TARGET_EMBEDDED_DATA)
2373         (TARGET_UNINIT_CONST_IN_RODATA, TARGET_BIG_ENDIAN)
2374         (TARGET_SINGLE_FLOAT, TARGET_DOUBLE_FLOAT, TARGET_MAD)
2375         (TARGET_FUSED_MADD, TARGET_4300_MUL_FIX, TARGET_CHECK_ZERO_DIV)
2376         (TARGET_DIVIDE_TRAPS, TARGET_BRANCHLIKELY, TARGET_FIX_SB1)
2377         (TARGET_FIX_R4000, TARGET_FIX_R4400, TARGET_FIX_VR4120)
2378         (TARGET_FIX_VR4130, TARGET_VR4130_ALIGN, TARGET_FP_EXCEPTIONS)
2379         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D, TARGET_SYM32)
2380         (TARGET_EXPLICIT_RELOCS): Delete.
2381         (TARGET_SWITCHES, SUBTARGET_TARGET_SWITCHES): Delete.
2382         (TARGET_OPTIONS): Remove entry for -mfix-vr4130.
2383         * config/mips/mips.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
2384         (override_options): Set MASK_LONG64 if -mint64 is given and no
2385         -mlongXX option is.  Complain about -mint64 -mlong32.
2386         (override_options, CMP_BUILTINS, mips_bdesc, sb1_desc): Rename
2387         MASK_PAIRED_SINGLE to MASK_PAIRED_SINGLE_FLOAT.
2388         * config/mips/mips.opt: New file.
2389
2390 2005-03-14  Richard Sandiford  <rsandifo@redhat.com>
2391
2392         * config.gcc (extra_options): New variable for listing option files.
2393         Add ${cpu_type}/${cpu_type}.opt to it if that file exists.
2394         * configure.ac (extra_opt_files): New AC_SUBST variable.
2395         (tm_file_list, tm_include_list): Include options.h first.
2396         * configure: Regenerate.
2397         * Makefile.in (extra_opt_files, ALL_OPT_FILES): New variables.
2398         (s-options): Use $(ALL_OPT_FILES) instead of $(lang_opt_files)
2399         (s-options-h): New rule.
2400         (options.h): Depend on it.
2401         (TEXI_GCCINT_FILES): Add options.texi.
2402         * hooks.h (hook_bool_size_t_constcharptr_int_true): Declare.
2403         * hooks.c (hook_bool_size_t_constcharptr_int_true): New function.
2404         * target.h (gcc_target): Add default_target_flags and handle_option.
2405         * target-def.h (TARGET_DEFAULT_TARGET_FLAGS)
2406         (TARGET_HANDLE_OPTION): New macros.
2407         (TARGET_INITIALIZER): Include them.
2408         * opt-functions.awk (opt_args, nth_arg): New functions.
2409         (switch_flags): Handle the "Target" flag.
2410         (var_args): Delete.
2411         (var_name): Use opt_args and nth_arg.
2412         (var_set, var_ref): Likewise.  Handle "Mask" and "InverseMask".
2413         * opth-gen.awk: Declare target_flags.  Declare MASK_* and TARGET_*
2414         macros for the "Mask" and "InverseMask" options.
2415         * opts.h (cl_var_cond): New enum.
2416         (cl_option): Replace the "has_set_value" and "set_value" fields with
2417         "var_cond" and "var_value".
2418         (CL_TARGET): New macro.
2419         (option_enabled, print_filtered_help): Declare.
2420         (decode_options): Move definition.
2421         * opts.c (handle_option): Search for the original option before
2422         removing any "no-" prefix.  Handle CL_TARGET.  Adjust for the new
2423         var_cond and var_value fields.  Use targetm.handle_option to handle
2424         target options.
2425         (decode_options): Set target_flags to targetm.default_target_flags.
2426         (print_filtered_help): Make global.  Handle CL_TARGET.
2427         (option_enabled): New function.
2428         * toplev.c (target_switches): Guard with #ifdef TARGET_SWITCHES.
2429         (display_target_options, set_target_switch, print_switch_values)
2430         (default_pch_valid_p): Guard uses of target_switches with
2431         #ifdef TARGET_SWITCHES.  Also...
2432         (display_target_options): Display the CL_TARGET entries in cl_options.
2433         (set_target_option): Don't complain about the "" option when
2434         TARGET_SWITCHES is undefined.
2435         (print_switch_values): Use option_enabled.
2436         (default_pch_valid_p): Check cl_options[] when looking for something
2437         that has changed the value of target_flags.
2438         * c.opt: Remove documentation from top of file.
2439         * doc/gccint.texi: Add an "Options" chapter.  Include options.texi.
2440         * doc/sourecebuild.texi: Refer to the new options documentation
2441         instead of c.opt.  Document machine-specific .opt files.
2442         * doc/tm.texi (target_flags): Say that this variable is declared
2443         by options.h.
2444         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Document.
2445         (TARGET_SWITCHES, TARGET_OPTIONS): Refer to the option files as
2446         an alternative.
2447         * doc/options.texi: New file.
2448
2449 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
2450
2451         PR middle-end/18628
2452         * cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
2453         register.
2454
2455 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
2456
2457         PR c++/20280
2458         * gimplify.c (gimplify_cond_expr): Add fallback argument.  Use a
2459         temporary variable of pointer type if an lvalues is required.
2460         (gimplify_modify_expr_rhs): Request an rvalue from it.
2461         (gimplify_expr): Pass fallback on.
2462
2463 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
2464
2465         * cfgbuild.c: Update comments.
2466
2467 2005-03-14  Roger Sayle  <roger@eyesopen.com>
2468
2469         PR rtl-optimization/17236
2470         * optabs.c (expand_doubleword_mult): New helper function split out
2471         from expand_binop.  Permute the order in which instructions are
2472         emitted to minimize the number of simultaneously live registers.
2473         (expand_binop): Call expand_doubleword_mult to synthesize a double
2474         word multiplication.
2475
2476 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
2477
2478         * basic-block.h: Update the prototypes of cached_make_edge and
2479         rtl_make_eh_edge.
2480         * cfg.c (cached_make_edge): Take edge_cache representing one
2481         row of the adjacency matrix of edges.
2482         * cfgbuild.c (make_label_edge, rtl_make_eh_edge): Likewise.
2483         (make_edges): Initialize edge_cache to represent one row of
2484         the adjacency matrix of edges.
2485
2486 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
2487
2488         * tree-ssa-phiopt.c (minmax_replacement, blocks_in_phiopt_order):
2489         New functions.
2490         (tree_ssa_phiopt): Use blocks_in_phiopt_order and minmax_replacement.
2491         Remove unused removed_phis variable.
2492         (conditional_replacement): Use build1/build2.
2493         (abs_replacement): Use last_and_only_stmt and build1/build2.
2494
2495 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
2496
2497         * builtin-attrs.def (ATTR_NOVOPS, ATTR_NOVOPS_LIST,
2498         ATTR_PURE_NOTHROW_NOVOPS_LIST): New.
2499         * builtins.def (ATTR_MATHFN_FPROUNDING): Use NOVOPS.
2500         (BUILT_IN_PREFETCH): Set the NOVOPS attribute.
2501         * c-common.c (handle_novops_attribute): New function.
2502         (c_common_attribute_table): Add "no vops" entry.
2503         * c-decl.c (merge_decls): Copy DECL_IS_NOVOPS.
2504         * calls.c (flags_from_decl_or_type): Set ECF_NOVOPS.
2505         * tree-ssa-operands.c (get_call_expr_operands): Do not
2506         create virtual operands for calls with ECF_NOVOPS flag.
2507         * tree.h (DECL_IS_NOVOPS): New macro.
2508         (struct tree_decl): Add novops_flag.
2509         (ECF_NOVOPS): New constant.
2510
2511 2005-03-14  Uros Bizjak  <uros@kss-loka.si>
2512
2513         PR target/17688
2514         * config/i386/i386.c (x86_use_himode_fiop): New.
2515         (x86_use_simode_fiop): Rename from x86_use_fiop.
2516         * config/i386/i386.h (x86_use_himode_fiop): Declare.
2517         (TARGET_USE_HIMODE_FIOP): New.
2518         (x86_use_simode_fiop): Rename from x86_use_fiop.
2519         (TARGET_USE_SIMODE_FIOP): Rename from TARGET_USE_FIOP.
2520
2521         * config/i386/i386.md (X87MODEI12): New mode macro define.
2522         (*cmpfp_<mode>): Rename from *cmpfp_si.  Use X87MODEI12 mode macro
2523         to implement x87 FP compare with HImode input operands.
2524         (*fp_jcc_8<mode>_387, splitter): Rename from *fp_jcc_8_387.
2525         Use X87MODEI12 mode macro to handle HImode input operands.
2526         (*fop_sf_2<mode>_i387, *fop_sf_3<mode>_i387, *fop_df_2<mode>_i387,
2527         *fop_df_3<mode>_i387, *fop_xf_2<mode>_i387, *fop_xf_3<mode>_i387):
2528         Renamed from *fop_sf_2_i387, *fop_sf_3_i387, *fop_df_2_i387,
2529         *fop_df_3_i387, *fop_xf_2_i387, *fop_xf_3_i387. Use X87MODEI12 mode
2530         macro to implement x87 operators with HImode input operands.
2531         (fop splitters): Use X87MODEI12 mode macro to handle HImode
2532         input operands.
2533
2534 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
2535
2536         * tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
2537         integer_zerop.
2538         * tree-gimple.c (is_gimple_min_invariant): Consider overflowed
2539         constants invariant.
2540
2541 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
2542
2543         * basic-block.h (BB_VISITED): Removed.
2544         * cfganal.c (dfs_enumerate_from): Do not use BB_VISITED flag.
2545
2546 2005-03-14  Falk Hueffner  <falk@debian.org>
2547
2548         PR bootstrap/20424
2549         * config/alpha/alpha.c (alpha_fold_builtin_cmpbge): Fix typo.
2550
2551 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
2552
2553         * ggc-zone.c: Fix comment typos.
2554
2555         * alloc-pool.c, except.h, ggc-common.c, ggc-zone.c, ggc.h,
2556         stringpool.c, config/mips/mips-protos.h: Update copyright.
2557
2558 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
2559
2560         * config/rs6000/rs6000-protos.h: Replace "struct rtx_def *"
2561         throughout with its typedef, "rtx".
2562         * config/rs6000/rs6000.c: Likewise.  Formatting fixes.
2563         (rs6000_tls_symbol_ref_1): Remove inline keyword.
2564         * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Formatting.  Reorder
2565         regs in comment to match code.
2566
2567 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
2568
2569         * except.c (check_handled): Make it static.
2570         * except.h: Remove the corresponding prototype.
2571
2572         * function.c (get_func_frame_size): Make it static.
2573         * function.h: Remove the corresponding type.
2574
2575         * regclass.c (reg_class_superclasses, reg_class_subclasses):
2576         Make them static.
2577         * hard-reg-set.h: Remove the corresponding declarations.
2578
2579         * tree-cfg.c (verify_stmts): Check that
2580         bb_for_stmt (stmt) == bb for every PHI node and statement.
2581
2582 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
2583
2584         * config.gcc: Remove excess indentation.
2585         (powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.
2586
2587 2005-03-13  Roger Sayle  <roger@eyesopen.com>
2588
2589         PR middle-end/19331
2590         * tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
2591         * fold-const.c (fold_sign_changed_comparison): Likewise.
2592         (fold_binary): Optimize comparisons against widened operands if
2593         the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.
2594
2595 2005-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
2596
2597         * config/sparc/sparc.c (struct_value_alias_set): New global variable.
2598         (sparc_override_options): Initialize it.
2599         (sparc_struct_value_rtx): Set it on the MEM to be returned.
2600
2601 2005-03-13  David Edelsohn  <edelsohn@gnu.org>
2602
2603         * config/rs6000/predicates.md (mem_or_easy_const_operand): Delete.
2604         (reg_or_none500mem_operand): New predicate.
2605         (zero_reg_mem_operand): New predicate.
2606         * config/rs6000/rs6000.md (extendsfdf2): Change operand1 predicate
2607         to reg_or_none500mem_operand.
2608         (extendsfdf2_fpr): Add MEM alternative.
2609         (extenddftf2_internal): Change operand2 predicate to
2610         zero_reg_mem_operand.
2611
2612 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
2613
2614         * ggc-zone.c: Rewritten.
2615
2616         * alloc-pool.c (dump_alloc_pool_statistics): Don't print statistics
2617         if there are none.
2618         * configure.ac: Define GGC_ZONE for --with-gc=zone.
2619         * config.in: Regenerated.
2620         * configure: Regenerated.
2621         * gengtype.c (write_types_process_field, write_func_for_structure):
2622         Pass new argument to gt_pch_note_object.
2623         * ggc-common.c (struct ptr_data): Add TYPE.
2624         (gt_pch_note_object): Take TYPE argument and save it.
2625         (call_count): Update call to ggc_pch_count_object.
2626         (call_alloc): Update call to ggc_pch_alloc_object.
2627         (gt_pch_save): Call ggc_pch_prepare_write after paddng the PCH
2628         file.
2629         * ggc-none.c (rtl_zone, garbage_zone, ggc_alloc_zone_stat): Delete.
2630         * ggc-page.c (rtl_zone, tree_zone, garbage_zone)
2631         (ggc_alloc_zone_stat): Delete.
2632         (ggc_pch_count_object, ggc_pch_alloc_object): Add TYPE argument.
2633         * ggc.h (gt_pch_note_object, ggc_pch_count_object)
2634         (ggc_pch_alloc_object): Update prototypes.
2635         (garbage_zone): Delete.
2636         (tree_zone, rtl_zone, ggc_alloc_zone_stat, ggc_alloc_zone): Move to
2637         GGC_ZONE conditional.  Update.  Change tree_zone and rtl_zone into
2638         pointers.
2639         (tree_id_zone): New variable.
2640         (ggc_alloc_cleared_zone): Remove unused.
2641         (ggc_alloc_zone): Define.
2642         (ggc_alloc_rtvec, ggc_alloc_tree): Update to use ggc_alloc_zone.
2643         * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Use
2644         ggc_alloc_zone_stat.
2645         * stringpool.c (gt_pch_n_S): Update call to gt_pch_note_object.
2646         * tree.c (copy_node_stat, make_tree_binfo_stat, make_tree_vec_stat)
2647         (tree_cons_stat, build1_stat): Update call to ggc_alloc_zone_stat.
2648         (make_node_stat): Likewise.  Use tree_id_zone.
2649
2650 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
2651             Joseph S. Myers  <joseph@codesourcery.com>
2652
2653         * configure.ac: Check for MIPS TLS.
2654         * configure: Regenerated.
2655         * config/mips/mips-protos.h (enum mips_symbol_type): Add
2656         SYMBOL_TLS, SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL,
2657         SYMBOL_GOTTPREL, and SYMBOL_TPREL.
2658         * config/mips/mips.c (mips_regno_to_class): Handle V1_REG.
2659         (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
2660         (mips_classify_symbol, mips_symbolic_constant_p)
2661         (mips_symbolic_address_p, mips_symbol_insns): Handle TLS symbols.
2662         (mips_tls_operand_p, mips_call_tls_get_addr)
2663         (mips_legitimize_tls_address, mips_cannot_force_const_mem)
2664         (mips_tls_symbol_ref_1): New functions.
2665         (mips_legitimize_address, mips_legitimize_const_move): Call
2666         mips_legitimize_tls_address.
2667         (override_options): Handle V1_REG and TLS symbols.  Disable TLS
2668         for MIPS16.
2669         * config/mips/mips.h (enum reg_class, REG_CLASS_NAMES)
2670         (REG_CLASS_CONTENTS, GR_REG_CLASS_P): Include V1_REG.
2671         (mips_char_to_class): Document V1_REG.
2672         (HAVE_AS_TLS): Provide default.
2673         * config/mips/mips.md (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): New
2674         constants.
2675         (load_got<mode>): Renamed from *load_got<mode>.  Allow when
2676         !TARGET_ABICALLS.
2677         (tls_get_tp_<mode>): New instruction.
2678
2679 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
2680
2681         * configure.ac: Update checks for target tools.
2682         * configure: Regenerated.
2683
2684 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
2685
2686         * varasm.c (decl_tls_model): Check flag_shlib instead of flag_pic.
2687
2688 2005-03-13  Roger Sayle  <roger@eyesopen.com>
2689
2690         * expmed.c (expand_mult): Use synthetic multiplication sequences for
2691         more classes of DImode multiplication by constant.  Allow both
2692         multiplication by small negative constants (by performing a
2693         multiplication by a positive constant and negating the result) and
2694         multiplications by large powers of two, by using a left shift.
2695
2696 2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
2697
2698         * tree-into-ssa.c (find_idf): Speed up by putting the indexes
2699         of basic blocks into work_stack.
2700
2701         * builtin-attrs.def, c-lex.c, c-pragma.h, reg-stack.c,
2702         config/mips/vr.h: Update copyright.
2703
2704         * c-decl.c (c_init_decl_processing): Remove useless calls to
2705         build_function_type.
2706
2707         * builtins.c (fold_trunc_transparent_mathfn,
2708         fold_fixed_mathfn, fold_builtin_atan, fold_builtin_trunc,
2709         fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
2710         fold_builtin_lround, fold_builtin_bitop, fold_builtin_memcpy,
2711         fold_builtin_strcpy, fold_builtin_strncpy,
2712         fold_builtin_signbit): Use TYPE (TYPE (fndecl)) instead of
2713         TREE_TYPE (exp).
2714
2715         * builtins.c (expand_builtin_mathfn_3): Remove local variable
2716         before_call.
2717
2718         * lambda-code.c (lambda_compute_auxillary_space): Remove local
2719         variable determinant.
2720
2721         * tree-cfg.c (group_case_labels): Remove local variable type.
2722
2723         * tree-ssa-live.c (build_tree_conflict_graph): Remove local
2724         variable ann.
2725
2726         * tree-ssa-phiopt.c (value_replacement): Remove local variable
2727         result.
2728
2729 2005-03-13  Andy Hutchinson  <HutchinsonAndy@netscape.net>
2730
2731         PR target/18251
2732         * config/avr/avr.md (movmemhi): Rewrite as RTL loop.
2733         (*movmemqi_insn): Delete.
2734         (*movmemhi): Delete.
2735
2736 2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
2737
2738         * builtins.c (fold_builtin_classify): Take decomposed
2739         arguments of CALL_EXPR.
2740         (fold_builtin_1): Update a call to fold_builtin_classify.
2741
2742 2005-03-13  Joseph S. Myers  <joseph@codesourcery.com>
2743
2744         PR c/20402
2745         * c-parser.c (c_parser_struct_or_union_specifier): Don't fall
2746         through into call to parser_xref_tag after parse error.
2747         (c_parser_struct_declaration): Consistently return NULL_TREE on
2748         error.
2749
2750 2005-03-12  Daniel Berlin  <dberlin@dberlin.org>
2751
2752         * tree-flow-inline.h (ref_contains_array_ref): New function.
2753         (lookup_subvars_for_var): Ditto.
2754         (get_subvars_for_var): Ditto.
2755         (var_can_have_subvars): Ditto.
2756
2757         * tree-flow.h (mem_tag_kind): Add STRUCT_FIELD.
2758         (struct subvar): New type.
2759
2760         * tree-dfa.c (okay_component_ref_for_subvars): New function.
2761
2762         * tree-optimize.c (init_tree_optimization_passes): Call
2763         pass_create_structure_vars.
2764
2765         * tree-ssa-alias.c: Include vec.h.
2766         (init_alias_info): Don't auto-clear call clobbered on struct-field
2767         tags.
2768         (compute_flow_insensitive_aliasing): Handle subvars.
2769         (group_aliases): Handle STRUCT_FIELD aliases.
2770         (setup_pointers_and_addressables): Ditto.
2771         Don't mark variables non-addressable if they still have
2772         addressable subvars.
2773         Also mark subvars addressable when the real variable is marked
2774         addressable.
2775         (add_pointed_to_var): Try to prune the pointed-to set by only
2776         pointing to subvars when possible.
2777         Otherwise, make sure we set addresses_needed and pt_vars to
2778         properly include subvars.
2779         (bitpos_of_field): New function.
2780         (push_fields_onto_fieldstack): Ditto.
2781         (get_or_create_used_part_for): Ditto.
2782         (create_overlap_variables_for): Ditto.
2783         (find_used_portions): Ditto.
2784         (create_structure_vars): Ditto.
2785         (pass_create_structure_vars): New structure.
2786
2787         * tree-ssa-operands.c (finalize_ssa_v_must_defs): Remove assert.
2788         (get_expr_operands): Handle subvars.  Also try to turn
2789         COMPONENT_REF accesses into must-defs now that we can accurately
2790         portray it.
2791         (note_addressable): Try to only mark as addressable those subvars
2792         we know a COMPONENT_REF touches.
2793         (overlap_subvar): New function.
2794
2795         * tree-vect-analyze.c (vect_object_analysis): Add new parameter.
2796         Handle subvar storing.
2797         (vect_address_analysis): Update caller of vect_object_analysis.
2798
2799         * tree-vect-transform.c (vect_create_data_ref_ptr): Copy subvars.
2800
2801         * tree-vectorizer.h (struct _stmt_vec_info): Add subvars member.
2802         (STMT_VINFO_SUBVARS): New macro.
2803
2804         * common.opts: add flag_tree_salias.
2805
2806         * opts.c (decode_options): flag_tree_salias defaults to on.
2807
2808         * doc/invoke.texi: Document fdump-tree-svars and -ftree-salias.
2809
2810         * doc/tree-ssa.texi: Document structural alias analysis.
2811
2812 2005-03-12  Steven Bosscher  <stevenb@suse.de>
2813
2814         * tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node.
2815         * tree-ssa-dce.c (mark_stmt_necessary): Don't check for it.
2816         * tree-ssa-operands.c (get_expr_operands): Likewise.
2817         (get_expr_operands): Likewise for ERROR_MARK.
2818
2819 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
2820
2821         * tree-ssa.c (kill_redundant_phi_nodes): Remove local variable
2822         var.
2823
2824         * tree-ssa-phiopt.c (tree_ssa_phiopt): Remove local variable
2825         removed_phis.
2826
2827         * tree-ssa-pre.c (compute_avail): Remove local variable val.
2828         (mark_operand_necessary): Remove local variable ver.
2829
2830         * tree-vect-transform.c (vect_get_new_vect_var): Remove local
2831         variable prefix_len.
2832
2833         * value-prof.c (mod_subtract_transform): Remove local variable
2834         value.
2835
2836         * builtins.c (fold_builtin_exponent): Take decomposed
2837         arguments of CALL_EXPR.
2838         (fold_builtin_1): Update a call to fold_builtin_exponent.
2839
2840         * builtins.c (fold_builtin_logarithm): Take decomposed
2841         arguments of CALL_EXPR.
2842         (fold_builtin_1): Update a call to fold_builtin_logarithm.
2843
2844         * c-decl.c (c_init_decl_processing): Remove local variables
2845         ptr_ftype_void and ptr_ftype_ptr.
2846
2847         * gimplify.c (gimplify_expr): Remove local variables r0 and
2848         r1.
2849
2850         * reg-stack.c (move_for_stack_reg): Remove local variable
2851         push_insn.
2852         (compare_for_stack_reg): Remove local variable flags_user.
2853         (convert_regs_1): Remove local variable deleted.
2854
2855         * tree-if-conv.c (tree_if_convert_cond_expr): Remove local
2856         variable new_cond.
2857         (combine_blocks): Remove local variables exits and new_e.
2858
2859         * tree-inline.c (expand_call_inline): Remove local variable
2860         decl.
2861
2862         * tree-ssa-live.c (create_ssa_var_map,
2863         calculate_live_on_entry): Remove local variable snn.
2864
2865 2005-03-12  Geoffrey Keating  <geoffk@apple.com>
2866
2867         * c-lex.c (c_lex_with_flags): Add parameter to call to
2868         cpp_spell_token.
2869
2870 2005-03-11  Per Bothner  <per@bothner.com>
2871
2872         * c-tree.h (struct c_declarator): New id_loc field.
2873         * c-pragma.h (c_lex_with_flags): Take position reference.
2874         * c-lex.c (c_lex_with_flags): Set passed-in location from cpp token,
2875         iff USE_MAPPED_LOCATION. (Type doesn't match otherwise.)
2876         (c_lex): Pass dummy location to c_lex_with_flags.
2877         * c-parser.c (c_lex_one_token): Set c_token's location using
2878         c_lex_with_flags, instead of input_location, which might be "ahead".
2879         (c_parser_direct_declarator): Set declarator's id_loc from
2880         c_token's id_loc.
2881         * c-decl.c (grokdeclarator): Set DECL_SOURCE_LOCATION from
2882         declarator's id_loc, rather than probably-imprecise input_location.
2883         (build_id_declarator): Initialize c_declarator's id_loc field.
2884
2885 2005-03-11  Roger Sayle  <roger@eyesopen.com>
2886
2887         PR middle-end/20419
2888         * builtins.c (expand_builtin_signbit): Force the signbit's word
2889         into an integer register to avoid SUBREGs of floating point modes.
2890
2891 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
2892
2893         * cfglayout.c, loop-doloop.c, profile.c, target-def.h,
2894         target.h, targhooks.c, tracer.c, tree-ssa-loop-ch.c,
2895         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, vec.c, vmsdbgout.c,
2896         config/m32r/m32r.md, config/xtensa/xtensa.h: Update copyright.
2897
2898 2005-03-11  David Edelsohn  <edelsohn@gnu.org>
2899
2900         PR rtl-optimization/20306
2901         * expr.c (emit_move_complex): Set try_int false if mode is
2902         MODE_COMPLEX_FLOAT and mov_optab exists for inner mode.  Only try
2903         emit_block_move if try_int is true.
2904
2905 2005-03-11  Richard Henderson  <rth@redhat.com>
2906
2907         PR target/20415
2908         * config/i386/mmx.md (vec_dupv4hi): Fix predicate.
2909         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
2910         to match.
2911
2912 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
2913
2914         * config/mips/mips.h (mips_fix_vr4130_string): Declare.
2915         (TARGET_FIX_VR4130): New macro.
2916         (TARGET_OPTIONS): Add -mfix-vr4130.
2917         (ISA_HAS_MACCHI): New macro.
2918         (ASM_SPEC): Add -mfix-vr4130.
2919         * config/mips/mips.c (mips_fix_vr4130_string): New variable.
2920         (override_options): Handle mips_fix_vr4130_string.
2921         (mips_avoid_hazards): Clear all_noreorder_p
2922         if we're working around VR4130 errata and the macc alternatives
2923         are not available.
2924         * config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
2925         (*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
2926         * config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
2927         (MULTILIB_DEFAULTS): Remove leading "march=".
2928         (DRIVER_SELF_SPECS): Likewise.  Make -mfix-vr4130 imply -march=vr4130
2929         if no architecture option is given.
2930         * config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
2931         VR4130 multilibs.
2932         (MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
2933         * doc/invoke.texi: Document -mfix-vr4130.
2934
2935 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
2936
2937         * config/mips/mips.c (override_options): Only warn about -mint64
2938         deprecation if TARGET_INT64.
2939
2940 2005-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2941
2942         * builtin-attrs.def (ATTR_NONNULL_LIST, ATTR_NOTHROW_NONNULL,
2943         ATTR_CONST_NOTHROW_NONNULL, ATTR_PURE_NOTHROW_NONNULL,
2944         ATTR_MALLOC_NOTHROW_NONNULL): New "nonnull" attribute lists which
2945         are non-specific regarding the nonnull parameter positions.
2946         (ATTR_NONNULL_1_2, ATTR_NONNULL_1_4, ATTR_NOTHROW_NONNULL_1_2,
2947         ATTR_NOTHROW_NONNULL_1_4, ATTR_CONST_NOTHROW_NONNULL_1,
2948         ATTR_PURE_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1_2,
2949         ATTR_MALLOC_NOTHROW_NONNULL_1): Delete.
2950
2951         * builtins.def: Use the non-specific "nonnull" attibute lists.
2952
2953 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
2954
2955         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
2956         single_pred_edge, single_succ, single_pred): Improve comments.
2957
2958 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
2959
2960         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
2961         single_pred_edge, single_succ, single_pred): New inline functions.
2962         * bb-reorder.c (rotate_loop, find_traces_1_round,
2963         add_labels_and_missing_jumps, fix_up_fall_thru_edges,
2964         duplicate_computed_gotos): Use the single_succ/pred functions.
2965         * cfganal.c (forwarder_block_p): Ditto.
2966         * cfgbuild.c (compute_outgoing_frequencies): Ditto.
2967         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
2968         outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg,
2969         merge_seq_blocks): Ditto.
2970         * cfghooks.c (split_edge, tidy_fallthru_edges): Ditto.
2971         * cfglayout.c (fixup_reorder_chain): Ditto.
2972         * cfgloop.c (mark_single_exit_loops, update_latch_info,
2973         canonicalize_loop_headers, verify_loop_structure): Ditto.
2974         * cfgloopmanip.c (remove_path, unloop, loop_delete_branch_edge,
2975         mfb_update_loops, create_preheader, force_single_succ_latches,
2976         create_loop_notes): Ditto.
2977         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
2978         force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge,
2979         commit_one_edge_insertion, purge_dead_edges,
2980         cfg_layout_can_merge_blocks_p): Ditto.
2981         * except.c (sjlj_emit_function_enter): Ditto.
2982         * flow.c (init_propagate_block_info): Ditto.
2983         * function.c (thread_prologue_and_epilogue_insns): Ditto.
2984         * gcse.c (find_implicit_sets, bypass_conditional_jumps,
2985         insert_insn_end_bb): Ditto.
2986         * ifcvt.c (merge_if_block, find_if_block, find_if_case_1,
2987         find_if_case_2): Ditto.
2988         * lambda-code.c (perfect_nestify): Ditto.
2989         * lcm.c (optimize_mode_switching): Ditto.
2990         * loop-doloop.c (doloop_modify): Ditto.
2991         * loop-init.c (loop_optimizer_init): Ditto.
2992         * loop-iv.c (simplify_using_initial_values): Ditto.
2993         * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
2994         * loop-unswitch.c (unswitch_loop): Ditto.
2995         * modulo-sched.c (generate_prolog_epilog): Ditto.
2996         * predict.c (combine_predictions_for_insn, estimate_probability,
2997         tree_estimate_probability, last_basic_block_p,
2998         estimate_bb_frequencies): Ditto.
2999         * profile.c (branch_prob): Ditto.
3000         * regrename.c (copyprop_hardreg_forward): Ditto.
3001         * sched-rgn.c (is_cfg_nonregular, find_rgns, update_live): Ditto.
3002         * tracer.c (layout_superblocks): Ditto.
3003         * tree-cfg.c (tree_can_merge_blocks_p, tree_merge_blocks,
3004         cfg_remove_useless_stmts_bb, cleanup_control_flow,
3005         cleanup_control_expr_graph, disband_implicit_edges,
3006         tree_find_edge_insert_loc, bsi_commit_edge_inserts,
3007         tree_verify_flow_info, tree_make_forwarder_block,
3008         tree_forwarder_block_p, remove_forwarder_block,
3009         remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
3010         * tree-if-conv.c (tree_if_conversion): Ditto.
3011         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
3012         * tree-ssa-dce.c (remove_dead_stmt): Ditto.
3013         * tree-ssa-dom.c (dom_opt_finalize_block): Ditto.
3014         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
3015         copy_loop_headers): Ditto.
3016         * tree-ssa-loop-im.c (loop_commit_inserts): Ditto.
3017         * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Ditto.
3018         * tree-ssa-loop-manip.c (split_loop_exit_edge, ip_normal_pos,
3019         lv_adjust_loop_entry_edge, tree_ssa_loop_version): Ditto.
3020         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Ditto.
3021         * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Ditto.
3022         * tree-ssa-phiopt.c (tree_ssa_phiopt, value_replacement): Ditto.
3023         * tree-ssa-pre.c (compute_antic_aux, insert_aux, init_pre): Ditto.
3024         * tree-ssa-threadupdate.c (redirect_edges): Ditto.
3025         * tree-tailcall.c (independent_of_stmt_p, find_tail_calls,
3026         eliminate_tail_call, tree_optimize_tail_calls_1): Ditto.
3027         * tree-vect-analyze.c (vect_analyze_loop_form): Ditto.
3028         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
3029         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard,
3030         slpeel_add_loop_guard): Ditto.
3031
3032 2005-03-11  James A. Morrison  <phython@gcc.gnu.org>
3033
3034         PR tree-optimization/15784
3035         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
3036         and -1 - A to ~A.
3037
3038         * stmt.c (expand_case): Don't change index_type.  Convert minval
3039         to the proper type.
3040
3041         PR tree-optimization/20130
3042         * fold-const.c (fold): Fold x * -1 into -x.
3043
3044 2005-03-11  Kaz Kojima  <kkojima@gcc.gnu.org>
3045
3046         PR rtl-optimization/20331
3047         * rtlanal.c (modified_between_p): Check its address first for MEM.
3048         (modified_in_p): Likewise.
3049
3050 2005-03-11  Joseph S. Myers  <joseph@codesourcery.com>
3051
3052         * config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.
3053
3054 2005-03-10  Steven Bosscher  <stevenb@suse.de>
3055
3056         * expr.c (expand_expr_real_1): If possible, use a conditional
3057         move for expanding MIN_EXPR and MAX_EXPR.
3058         Use temp for moving around rtx-en.
3059
3060 2005-03-10  Andrew Pinski  <pinskia@physics.uc.edu>
3061
3062         PR rtl-opt/20412
3063         * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
3064         correct mode.
3065
3066 2005-03-10  Roger Sayle  <roger@eyesopen.com>
3067
3068         * builtins.c (expand_builtin_signbit): Extend to handle floating
3069         point modes wider than the largest integer type, using the
3070         operand_subword_force function to obtain the signbit's word.
3071
3072 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
3073
3074         PR target/20322
3075         * combine.c (try_combine): If recog_for_combine added CLOBBERs
3076         to NEWI2PAT, fail to combine if they are used by NEWPAT.
3077
3078 2005-03-10  Aldy Hernandez  <aldyh@redhat.com>
3079
3080         * doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.
3081
3082 2005-03-10  Kazu Hirata  <kazu@cs.umass.edu>
3083
3084         * tree-outof-ssa.c (analyze_edges_for_bb): Make the return
3085         type void.
3086         (perform_edge_inserts): Unconditionally call
3087         free_dominator_info.
3088
3089         * tree-outof-ssa.c (analyze_edges_for_bb): Update a comment.
3090
3091 2005-03-10  Bob Wilson  <bob.wilson@acm.org>
3092
3093         * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.
3094
3095 2005-03-10  Nathan Sidwell  <nathan@codesourcery.com>
3096
3097         * bitmap.c (bitmap_copy): Remove manual loop unrolling.
3098
3099         * value-prof.c (rtl_find_values_to_profile): Use gcc_assert and
3100         gcc_unreachable.
3101         (rtl_register_value_prof_hooks,
3102         tree_value_profile_transformations,
3103         tree_register_value_prof_hooks): Likewise.
3104         * var-tracking.c (stack_adjust_offset_pre_post,
3105         variable_htab_free, variable_union, dataflow_set_different_2,
3106         count_uses, variable_was_changed, set_frame_base_location,
3107         set_variable_part, emit_note_insn_var_location, vt_emit_notes,
3108         vt_add_function_parameters): Likewise.
3109         * varasm.c (named_section_real, named_section, make_decl_rtl,
3110         asm_emit_uninitialised, assemble_integer, decode_addr_const,
3111         const_hash_1, compare_constant, copy_constant, force_const_mem,
3112         output_constant_pool_2, output_constant_pool_1, output_constant,
3113         output_constructor, make_decl_one_only, decl_tls_model,
3114         default_no_named_section, default_elf_select_section_1,
3115         default_unique_section_1): Likewise.
3116         * vec.c (vec_gc_o_reserve, vec_heap_o_reserve): Likewise.
3117         * vmsdbgout.c (addr_const_to_string): Likewise.
3118
3119         PR c++/20375
3120         * function.c (struct assign_parm_data_one): Remove last_named
3121         field.
3122         (assign_parm_find_data_types): Don't determine last_named.
3123         Reorder named_parm determination.
3124         (assign_parms): Only setup varargs on the last non-varadic
3125         parameter.
3126
3127 2005-03-10  Kazuhiro Inaoka  <inaoka.lazuhiro@renesas.com>
3128
3129         * config/m32r/m32r.md (load_sda_base_32): New pattern.  Loads
3130         sda base address on medium model.
3131
3132 2005-03-10  Zdenek Dvorak  <dvorakz@suse.cz>
3133
3134         * Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.
3135         * cfgloop.c (flow_loop_nodes_find): Export.
3136         * cfgloop.h (flow_loop_nodes_find, fix_loop_structure):
3137         Declare.
3138         * cfgloopmanip.c (fix_loop_structure): New function.
3139         * predict.c (predict_loops): Clean up the loops information.
3140         * tree-cfg.c (cleanup_tree_cfg_loop): New function.
3141         (tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect
3142         loop structure.
3143         * tree-flow.h (cleanup_tree_cfg_loop): Declare.
3144         (rewrite_into_loop_closed_ssa): Declaration changed.
3145         * tree-loop-linear.c (linear_transform_loops): Add argument to
3146         rewrite_into_loop_closed_ssa call.
3147         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
3148         * tree-ssa-loop-im.c (move_computations): Ditto.
3149         * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
3150         * tree-vectorizer.c (vectorize_loops): Ditto.
3151         * tree-optimize.c: Include cfgloop.h.
3152         (execute_todo): Choose whether to call cleanup_tree_cfg or
3153         cleanup_tree_cfg_loop.
3154         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables,
3155         (tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call.
3156         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable
3157         cleanup_tree_cfg_loop call.
3158         * tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function.
3159         (find_uses_to_rename, rewrite_into_loop_closed_ssa): Support
3160         work on part of cfg.
3161
3162 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
3163
3164         PR inline-asm/20314
3165         * gimplify.c (gimplify_asm_expr): Handle input/output constraints
3166         with multiple alternatives.
3167
3168         * stmt.c (parse_output_constraint): Fix a typo.
3169
3170 2005-03-09  Bob Wilson  <bob.wilson@acm.org>
3171
3172         * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Use "no-transform"
3173         assembly directive instead of deprecated "no-generics".
3174
3175 2005-03-09  Ulrich Weigand  <uweigand@de.ibm.com>
3176
3177         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
3178         for non-offsettable memory references to cope with outstanding reload
3179         replacements.
3180         * config/s390/s390.md ("reload_outti"): Call find_replacement to
3181         avoid losing outstanding address reloads.
3182         ("reload_outdi", "reload_outdf"): Likewise.
3183
3184 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3185
3186         * builtins.c (fold_builtin_cbrt, fold_builtin_pow): Rearrange
3187         code.  Add more cbrt transformations.
3188
3189 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3190
3191         * fold-const.c (fold_unary_to_constant): Add FIX_ROUND_EXPR case.
3192
3193 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
3194
3195         * fold-const.c (fold_unary, fold_binary, fold_ternary): Return
3196         NULL_TREE when a given tree is not simplified.
3197         (fold): Return the original tree when any of the functions
3198         mentioned above NULL_TREE.
3199
3200         * fold-const.c (fold_unary, fold_binary): Take decomposed
3201         arguments, code, type, op0, and op1 in case of fold_binary.
3202         (fold): Update calls to fold_unary and fold_binary.
3203
3204 2005-03-09  Roger Sayle  <roger@eyesopen.com>
3205
3206         * builtins.c (fold_builtin_unordered_cmp): Change prototype to take
3207         a fndecl and an arglist instead of a CALL_EXPR, exp.
3208
3209 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
3210
3211         * cfglayout.c (fixup_reorder_chain): Remove old_bb.
3212
3213         * cfgrtl.c (cfg_layout_merge_blocks): Remove new_e.
3214
3215         * expr.c (expand_assignment): Remove orig_to_rtx.
3216
3217         * fold-const.c (int_const_binop): Remove no_overflow.
3218
3219         * ifcvt.c (noce_emit_move_insn): Remove inmode.
3220
3221         * loop-iv.c (get_biv_step_1): Remove lhs.
3222
3223         * loop-unroll.c (analyze_insns_in_loop): Remove preheader.
3224
3225         * real.c (real_nan): Remove neg.
3226
3227         * function.c (thread_prologue_and_epilogue_insns): Remove i
3228         and newinsn.
3229
3230         * tree-data-ref.c (array_base_name_differ_p): Remove ta and
3231         tb.
3232
3233         * tree-eh.c (tree_could_trap_p): Remove idx.
3234
3235         * tree-into-ssa.c (ann): Remove ann.
3236
3237         * tree-outof-ssa.c (num_nodes): Remove num_nodes.
3238
3239         * tree-sra.c (decide_block_copy): Remove inst_count.
3240
3241         * tree-ssa-alias.c (may_alias_p): Remove v_ann.
3242
3243         * tree-ssa-loop-im.c (lhs): Remove.
3244
3245         * cfgbuild.c (state, STATE, SET_STATE,
3246         BLOCK_USED_BY_TABLEJUMP, FULL_STATE): Move just before
3247         make_edges.
3248         (make_edges): Speed up by skipping blocks with BLOCK_ORIGINAL.
3249         (find_basic_blocks): Set the state of each basic block to
3250         BLOCK_NEW.
3251
3252 2005-03-08  Jeff Law  <law@redhat.com>
3253
3254         * tree-cfg.c (cleanup_control_flow): If removal of a computed
3255         goto results in the removal of edges in the CFG, then we need
3256         to recompute dominators.
3257
3258 2005-03-09  Ben Elliston  <bje@au.ibm.com>
3259
3260         * c-common.c (c_do_switch_warnings): Comment fix.
3261
3262 2005-03-08  Julian Brown  <julian@codesourcery.com>
3263
3264         * Patch from 2005-03-08 reverted for causing regressions and
3265         ppc-darwin bootstrap failure.
3266
3267 2005-03-08  Fariborz Jahanian <fjahanian@apple.com>
3268
3269         * config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn):
3270         Define the real function for ppc-darwin.
3271         * c-typeck.c (convert_arguments): Check for target-specific
3272         invalid argument call to unprototyped function.
3273         * target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
3274         New Macro.
3275         * target.h (invalid_arg_for_unprototyped_fn): New field
3276         in struct calls.
3277         * targhooks.c (hook_invalid_arg_for_unprototyped_fn): New
3278         default target hook.
3279         * targhooks.h (hook_invalid_arg_for_unprototyped_fn):
3280         Declare.
3281
3282 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
3283
3284         * c-typeck.c (constructor_stack, constructor_range_stack,
3285         initializer_stack): Make them static.
3286
3287         * cfg.c (rbi_pool): Make it static.
3288
3289         * gimple-low.c (lower_stmt_body): Make it static.
3290         * tree-flow.h: Remove the corresponding prototype.  Don't
3291         declare lower_data.
3292
3293         * sched-deps.c (cache_size): Make it static.
3294
3295         * stor-layout.c (lang_adjust_rli): Make it static.
3296
3297 2005-03-08  Julian Brown  <julian@codesourcery.com>
3298
3299         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
3300         from being used for symbols with vague linkage when
3301         HAVE_GAS_COMDAT_GROUP is true.
3302
3303 2005-03-08  J"orn Rennecke <joern.rennecke@st.com>
3304
3305         * jump.c (invert_jump_1): Don't call redirect_jump_1 with
3306         nlabel == JUMP_LABEL (jump).
3307
3308 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
3309
3310         * c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
3311         gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
3312         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
3313         tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.
3314
3315 2005-03-08  Alexey Neyman  <alex.neyman@auriga.ru>
3316
3317         PR c/14411
3318         * calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
3319         * c-common.c (handle_returns_twice): New function.
3320         (c_common_attribute_table): Declare eturns_twice' attribute.
3321         * doc/extend.texi: Document eturns_twice' attribute.
3322         * tree.h (DECL_IS_RETURNS_TWICE): New macro.
3323         (struct tree_decl): Add returns_twice_flag.
3324
3325 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
3326
3327         * tree-ssa-phiopt.c: Fix a comment typo.
3328
3329         * c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
3330         loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
3331         config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
3332         copyright.
3333
3334 2005-03-08  Richard Henderson  <rth@redhat.com>
3335
3336         * config/alpha/alpha.c (code_for_builtin): Replace special-case
3337         builtin codes with ctzdi2, clzdi2, popcountdi2.
3338         (struct alpha_builtin_def): Add is_const.
3339         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
3340         (alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
3341         (alpha_init_builtins): Init them.  Set nothrow and const attributes
3342         on builtins.
3343         (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot,
3344         alpha_fold_builtin_extxx, alpha_fold_builtin_insxx,
3345         alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh,
3346         alpha_fold_vector_minmax, alpha_fold_builtin_perr,
3347         alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
3348         alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
3349         alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
3350         alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
3351         (TARGET_FOLD_BUILTIN): New.
3352         * config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
3353         (UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
3354         (ffsdi2): Use ctz.
3355         (cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.
3356
3357 2005-03-08  Ira Rosen  <irar@il.ibm.com>
3358
3359         PR tree-optimization/20122
3360         * tree-vect-analyze.c (vect_object_analysis): Analyze initial
3361         condition of access function instead of base.
3362
3363 2005-03-07  Jeff Law  <law@redhat.com>
3364             Steven Bosscher  <stevenb@suse.de>
3365
3366         * tree-cfg.c (find_taken_edge_computed_goto): New function.
3367         (find_taken_edge): Call find_taken_edge_computed_goto as
3368         appropriate.  Allow any gimple invariant rather than just
3369         INTEGER_CST for VAL.
3370         (cleanup_control_flow): Cleanup a computed goto which has turned
3371         into a simple goto.
3372         (tree_merge_blocks): If block B has any forced labels, move
3373         them to the start of block A.
3374         * tree-ssa-dom.c (thread_across_edge): Allow threading across
3375         computed gotos as well.
3376         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
3377         removal of unnecessary computed gotos too.
3378         (lookup_redirection_data): Fix type of INSERT argument.  Callers
3379         updated.
3380
3381 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
3382
3383         * tree-ssa-phiopt.c: Update copyright.  Fix indentations.
3384         Remove trailing spaces.
3385
3386         * gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
3387         unshare_all_trees): Make them static.
3388         * tree-gimple.h: Remove the corresponding prototypes.
3389
3390         * diagnostic.h: Remove unused prototype
3391         debug_output_buffer.
3392         * modulo-sched.c: Remove unused prototype
3393         set_row_column_for_ps.
3394
3395         * tree-ssa-phiopt.c (tree_ssa_phiopt,
3396         replace_phi_edge_with_variable): Remove unused variable i.
3397
3398 2005-03-07  Per Bothner  <per@bothner.com>
3399
3400         * tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
3401
3402 2005-03-06  Andrew Pinski  <pinskia@physics.uc.edu>
3403
3404         PR tree-opt/17671
3405         * tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
3406         bbs on the COND_EXPR instead of the PHI_NODEs.
3407         (candidate_bb_for_phi_optimization): Remove.
3408         (replace_phi_with_stmt): Rename to ...
3409         (replace_phi_edge_with_variable): this and change so that we
3410         replace the phi argument instead of removing the PHI.
3411         (conditional_replacement): Change so we deal with PHI with more
3412         than two arguments.
3413         (value_replacement): Likewise.
3414         (abs_replacement): Likewise.
3415
3416 2005-03-07  Aldy Hernandez  <aldyh@redhat.com>
3417
3418         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
3419         output_e500_flip_gt_bit.
3420
3421         * config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
3422         as bit 31.
3423         (rs6000_generate_compare): Fix logic to look at the correct bits.
3424         (output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
3425         Look at GT bit.
3426         (rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
3427         gen_e500_flip_gt_bit.  Rename gen_move_from_CR_eq_bit to
3428         gen_move_from_CR_gt_bit.
3429
3430         * config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
3431         ("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
3432         (UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
3433
3434         * config/rs6000/spe.md ("e500_cr_ior_compare"): New.
3435         (E500_CR_IOR_COMPARE): New constant.
3436
3437 2005-03-08  Earl Chew <earl_chew@agilent.com>
3438             David Billinghurst <David.Billinghurst@riotinto.com>
3439
3440         * config/i386/host-cygwin.c: New file to support precompiled
3441         headers on cygwin
3442         * config/i386/x-cygwin: Use host-cygwin.c on cygwin host
3443         * config.host: Use above files for cygwin host.
3444
3445 2005-03-07  David Edelsohn  <edelsohn@gnu.org>
3446
3447         * fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
3448         ordering ops from earlier change.
3449
3450 2005-03-07  Per Bothner  <per@bothner.com>
3451
3452         Various fixes to allow us to again build if --enable-mapped-location:
3453         * c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
3454         unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
3455         * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
3456         local variable loc. Change logic appropriately.
3457         * tree-vect-transform.c (vect_finish_stmt_generation): Use
3458         EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.
3459         * c-parser.c (c_parser_for_statement): Initialize loc variable.
3460         * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
3461         DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
3462
3463 2005-03-07  Richard Sandiford  <rsandifo@redhat.com>
3464
3465         PR rtl-optimization/19683
3466         * reload1.c (choose_reload_regs): Pass the number of bits, not the
3467         number of bytes, to smallest_int_for_mode.  Fix arguments to
3468         REG_CANNOT_CHANGE_MODE_P.
3469
3470 2005-03-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
3471
3472         * reorg.c (relax_delay_slots): Check that the jump is
3473         conditional before trying to invert it.
3474
3475 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
3476
3477         * bb-reorder.c (max_entry_frequency, max_entry_frequency):
3478         Make them static.
3479
3480         * calls (stack_arg_under_construction): Make it static.
3481
3482         * flow.c (regs_live_at_setjmp): Make it static.
3483         * flow.h: Remove the corresponding prototype.
3484
3485         * reload1.c (reload_startobj, reload_firstobj,
3486         something_needs_operands_changed, reload_inherited,
3487         reload_inheritance_insn, reload_override_in,
3488         reload_spill_index): Make them static.
3489
3490         * recog.c (verify_changes): Make it static.
3491         * recog.h: Remove the corresponding prototype.
3492
3493         * cfgbuild.c (find_sub_basic_blocks): Remove.
3494         * basic-block.h: Remove the corresponding prototype.
3495         * cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
3496         in comments.
3497         * doc/cfg.texi: Don't mention find_sub_basic_blocks.
3498
3499         * tree-ssa-operands.c (check_build_stmt): Remove.
3500
3501         * stor-layout.c (set_alignment): Remove.
3502         * tree.h: Remove the corresponding prototype.
3503
3504         * tree-ssa-pre.c (has_abnormal_preds): Make it static.
3505
3506         * tree-ssa-dce.c (control_dependence_map,
3507         visited_control_parents): Make them static.
3508
3509         * cfghooks.c (verify_flow_info): Remove local variable
3510         num_bb_notes.
3511
3512         * cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
3513         last_bb_seen.
3514
3515         * loop-unswitch.c (unswitch_loop): Remove local variable src.
3516
3517 2005-03-07  David Billinghurst <David.Billinghurst@riotinto.com>
3518
3519         * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
3520
3521 2005-03-07  Joseph S. Myers  <joseph@codesourcery.com>
3522
3523         * config/ia64/hpux.h (LINK_SPEC): Add -z.
3524         * config/ia64/ia64.c (ia64_function_value): Return a REG not a
3525         PARALLEL for an empty structure.
3526
3527 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
3528
3529         * fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
3530
3531         * fold-const.c (fold_binary): Unroll the very first "for"
3532         loop.
3533
3534 2005-03-06  David Edelsohn  <edelsohn@gnu.org>
3535
3536         * config/rs6000/predicates.md (branch_comparison_operator): Remove
3537         redundant match_code test.
3538         (scc_comparison_operator): Swap match_operand and match_code
3539         tests.
3540         (branch_positive_comparison_operator): Same.
3541         (trap_comparison_operator): Use comparison_operator and swap with
3542         match_code test.
3543
3544 2005-03-06  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3545
3546         PR target/20288
3547         * config/avr/avr.c (print_operand): Add 'p' and 'r'.
3548         (out_movhi_r_mr): Read low byte of volatile MEM first.
3549         (out_movhi_mr_r): Write high byte of volatile MEM first.
3550
3551 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
3552
3553         * cselib.c (reg_values, reg_values_size): Make them static.
3554
3555         * cse.c (cse_reg_info_table): Make it static.
3556
3557         * fold-const.c (fold_unary): Use build1 instead of copy_node.
3558
3559 2005-03-06  Zdenek Dvorak  <dvorakz@suse.cz>
3560
3561         * cse.c (find_best_addr): Use canon_for_address.
3562
3563 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
3564
3565         * cse.c (fold_rtx_subreg, fold_rtx_mem): New.
3566         (fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
3567         SUBREG and MEM, respectively.
3568
3569         * fold-const.c (fold_binary): Use code instead of t.
3570
3571         * fold-const.c (optimize_minmax_comparison): Take decomposed
3572         arguments code, type, op0, and op1 instead of t.
3573         (fold_binary): Update a call to optimize_minmax_comparison.
3574
3575         * fold-const.c (fold_range_test): Take decomposed arguments
3576         code, type, op0, and op1 instead of t.
3577         (fold_binary): Update a call to fold_range_test.
3578
3579         * fold-const.c (fold_binary_op_with_conditional_arg): Take
3580         decomposed arguments code, type, op0, and op1 instead of t.
3581         (fold_binary): Update a call to fold_range_test.
3582
3583 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
3584
3585         * fold-const.c (fold_binary): Avoid directly using the original
3586         expression t as much as possible.
3587
3588 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
3589
3590         * c-semantics.c (build_stmt): Use TYPE_P instead of
3591         IS_NON_TYPE_CODE_CLASS.
3592         * tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
3593         (NON_TYPE_CHECK): Use TYPE_P instead of
3594         IS_NON_TYPE_CODE_CLASS.
3595
3596         * fold-const.c (fold): Remove handling of binary expressions.
3597
3598 2005-03-05  James A. Morrison  <phython@gcc.gnu.org>
3599
3600         * doc/c-tree.texi: Wrap comments in @r{}.
3601         * doc/cpp.texi: Likewise.
3602         * doc/cppinternals.texi: Likewise.
3603         * doc/extend.texi: Likewise.
3604         * doc/md.texi: Likewise.
3605         * doc/objc.texi: Likewise.
3606         * doc/sourcebuild.texi: Likewise.
3607         * doc/tm.texi: Likewise.
3608         * doc/tree-ssa.texi
3609
3610 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
3611
3612         * predict.c (apply_return_prediction): Standardize PHI chain
3613         walking.
3614         * tree-ssa.c (ssa_redirect_edge): Likewise.
3615
3616         * genattrtab.c, genemit.c, genoutput.c, genrecog.c,
3617         gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
3618         Update copyright.
3619
3620         * tree-phinodes.c (remove_phi_node): Drop the last argument.
3621         * tree-flow.h: Adjust the prototype for remove_phi_node.
3622         * lambda-code.c (perfect_nestify): Adjust a call to
3623         remove_phi_node.
3624         * tree-cfg.c
3625         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
3626         * tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
3627         Likewise.
3628         * tree-ssa-dce.c (remove_dead_phis): Likewise.
3629         * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
3630         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
3631         * tree-ssa.c (kill_redundant_phi_nodes): Likewise.
3632
3633         * combine.c (simplify_and_const_int): Use gen_int_mode instead
3634         of GEN_INT (trunc_int_for_mode (...)).
3635         * loop-iv.c (iv_number_of_iterations): Likewise.
3636         * postreload.c (reload_cse_move2add): Likewise.
3637         * simplify-rtx.c (simplify_const_unary_operation,
3638         simplify_const_binary_operation): Likewise.
3639         * stor-layout.c (get_mode_bounds): Likewise.
3640
3641         * fold-const.c (fold_binary): New.
3642         (fold): Call fold_binary on binary expressions.
3643
3644 2005-03-05  Richard Sandiford  <rsandifo@redhat.com>
3645
3646         * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
3647         * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
3648         (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
3649         (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
3650         (ASM_SPEC): Pass down -msym32 and -mno-sym32.
3651
3652 2005-03-04  Devang Patel  <dpatel@apple.com>
3653
3654         PR tree-optimization/18815
3655         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
3656         loops with zero exit edges.
3657
3658 2005-03-04  Devang Patel  <dpatel@apple.com>
3659
3660         * doc/invoke.texi: Remove reference to webpage that does not exist.
3661
3662 2005-03-04  John David Anglin  <dave.danglin@nrc-cnrc.gc.ca>
3663             Joseph S. Myers  <joseph@codesourcery.com>
3664
3665         PR c++/19797
3666         * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
3667         (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
3668         * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
3669         * pa.c (get_plabel): Change argument to symbol_ref.  Call
3670         maybe_get_identifier instead of get_identifier.
3671         (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
3672         (struct deferred_plabel): Replace name field with symbol field.
3673         (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
3674         ASM_OUTPUT_EXTERNAL_REAL is defined.
3675         (output_global_address): Use output_addr_const for output of all
3676         symbol_refs.
3677         (output_deferred_plabels): Use symbol_ref instead of name for address
3678         output.
3679         * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
3680         ASM_OUTPUT_SYMBOL_REF): New macros.
3681         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw.  Update
3682         comment.
3683         (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
3684         label.
3685
3686 2005-03-05  Joseph S. Myers  <joseph@codesourcery.com>
3687
3688         * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
3689         *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
3690
3691 2005-03-04  Jeff Law  <law@redhat.com>
3692
3693         * basic-block.h (rediscover_loops_after_threading): Declare.
3694         * tree-ssa-dom.c: Include cfgloop.h.
3695         (tree_ssa_dominator_optimize): Discover loops and some basic
3696         properties.  Remove forwarder blocks recreated by loop header
3697         canonicalization.  Also mark backedges in the CFG.
3698         * tree-ssa-threadupdate.c: Include cfgloop.h
3699         (rediscover_loops_after_threading): Define.
3700         (struct local_info): New field, JUMP_THREADED.
3701         (prune_undesirable_thread_requests): New function.
3702         (redirect_edges): Clear EDGE_ABNORMAL.  If edges were threaded
3703         then record that fact for the callers of redirct_edges.
3704         (thread_block): If BB has incoming backedges, then call
3705         prune_undesirable_thraed_requests.    Note when we are
3706         going to have to rediscover loop information.  Return a
3707         boolean indicating if any jumps were threaded.
3708         (thread_through_all_blocks): Bubble up boolean indicating
3709         if any jumps were threaded.
3710         * Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
3711         (tree-ssa-threadupdate.o): Similarly.
3712
3713 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
3714
3715         * fold-const.c (fold_ternary): Unroll the "for" loop to
3716         extract operands.
3717
3718 2005-03-04  Andrew Haley  <aph@redhat.com>
3719
3720         * unwind-dw2-fde-glibc.c (struct
3721         unw_eh_callback_data.check_cache): New field.
3722         (frame_hdr_cache): New.
3723         (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
3724         Cache frame header info.
3725
3726 2005-03-04  Richard Sandiford  <rsandifo@redhat.com>
3727
3728         * rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
3729         (print_c_condition): Declare.
3730         * read-rtl.c (ptr_loc): New structure.
3731         (ptr_locs, ptr_loc_obstack, joined_conditions)
3732         (joined_conditions_obstack): New variables.
3733         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
3734         (get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
3735         (join_c_conditions, print_c_condition): New functions.
3736         (apply_macro_to_string): Associate the new string with the same
3737         source location as the old one.
3738         (add_condition_to_string): Use join_c_conditions.
3739         (read_string): Use set_rtx_ptr_loc to record a filename and line
3740         number for the string.
3741         (read_rtx): Initialize the new variables above.
3742         * genattrtab.c (write_test_expr, write_attr_value): Use
3743         print_c_condition.
3744         * genconditions.c (write_header): Don't define MAYBE_EVAL.  Move its
3745         comment above the GCC_VERSION check.
3746         (write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
3747         Inline the definition of MAYBE_EVAL.
3748         * genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
3749         * genoutput.c (process_template): Likewise.
3750         * genpreds.c (write_predicate_subfunction): Likewise.
3751         (write_predicate_expr): Use print_c_condition.
3752         * genrecog.c (write_cond): Likewise.
3753         * gensupport.c (process_rtx): Use join_c_conditions to join the
3754         conditions of a define_insn_and_split.  Record a source location
3755         for the string after the "&&".
3756         (alter_test_for_insn): Use join_c_conditions.
3757
3758 2005-03-04  Andrew Pinski  <pinskia@physics.uc.edu>
3759
3760         Revert for now:
3761         2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
3762         PR tree-optimization/15784
3763         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
3764         and -1 - A to ~A.
3765
3766 2005-03-04  Ben Elliston  <bje@au.ibm.com>
3767
3768         * gcc.c (option_map): Add --coverage.
3769         (LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
3770         (cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
3771         * config/darwin.h: Pass -lgcov for `coverage'.
3772         * doc/invoke.texi (Debugging Options): Document --coverage.
3773
3774 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
3775
3776         * gcse.c (bypass_block): Use find_edge wherever possible.
3777
3778 2005-03-03  Daniel Berlin <dberlin@dbrelin.org>
3779
3780         Fix PR debug/20253
3781
3782         * c-opts.c (c_common_parse_file): Call start_source_file
3783         and end_source_file at the approriate times.
3784
3785         * dwarf2out.c (dwarf2out_finish): Don't auto-end
3786         the main file, it will be done for us now.
3787
3788 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
3789
3790         * fold-const.c (fold_ternary): New.
3791         (fold): Call fold_ternary on ternary expressions.  Remove
3792         handling of ternary expressions.
3793
3794 2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
3795
3796         PR tree-optimization/15784
3797         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
3798         and -1 - A to ~A.
3799
3800 2005-03-03  David Edelsohn  <edelsohn@gnu.org>
3801
3802         * config/rs6000/predicates.md (branch_comparison_operator):
3803         Convert from C block to conditional format.
3804
3805 2005-03-03  Jan Hubicka  <jh@suse.cz>
3806
3807         * tree-dfa.c (add_referenced_var): Don't walk initializer of external
3808         and non-constant public variables.
3809
3810 2005-03-03  Kazu Hirata  <kazu@cs.umass.edu>
3811
3812         * tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
3813         with LABEL_EXPR.
3814
3815         * cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
3816         EDGE_I.
3817
3818         * tree-phinodes.c (remove_phi_node): Clean up by factoring out
3819         calls to release_ssa_name and release_phi_node.
3820
3821         * fold-const.c (fold): Remove handling of unary expressions.
3822
3823         * fold-const.c (fold_unary): Avoid directly using the original
3824         expression t as much as possible.
3825
3826 2005-03-03  Roger Sayle  <roger@eyesopen.com>
3827             Andrew Pinski  <pinskia@physics.uc.edu>
3828
3829         * jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
3830         RETURN rtx, and not a LABEL_REF containing a NULL pointer.
3831
3832 2005-03-03  Hans-Peter Nilsson  <hp@axis.com>
3833
3834         Describe special registers SRP and MOF as allocatable registers.
3835         * config/cris/cris.c (cris_md_asm_clobbers): New function.
3836         (TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
3837         (cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
3838         TARGET_HAS_MUL_INSNS.
3839         (cris_print_operand) <case 'd'>: New case.
3840         <case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
3841         * config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
3842         define.
3843         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
3844         (REG_ALLOC_ORDER): Update for MOF.
3845         (enum reg_class): New members MOF_REGS, GENERAL_REGS and
3846         SPECIAL_REGS.
3847         (GENERAL_REGS): No longer a define of ALL_REGS.
3848         (REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
3849         (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
3850         Adjust accordingly.
3851         (CRIS_SPECIAL_REGS_CONTENTS): New macro.
3852         (REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
3853         (SECONDARY_RELOAD_CLASS): Define.
3854         (STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
3855         (FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
3856         (ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
3857         (STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
3858         (REGISTER_MOVE_COST): Define.
3859         (PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
3860         * config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
3861         (CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
3862         (CRIS_MOF_REGNUM): New define_constants.
3863         ("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
3864         special registers.
3865         ("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
3866         New patterns.
3867         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
3868         ("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
3869         Adjust for MOF being properly described as a register.
3870         (indir_to_reg_split): Name this split.  Conditionalize on the
3871         destination register being a general register.
3872         (movei): Conditionalize on on operands 0 and 1 having the same
3873         register class.
3874
3875 2005-03-03  Alan Modra  <amodra@bigpond.net.au>
3876
3877         PR target/20277
3878         * config/rs6000/rs6000.c (rs6000_override_options): Don't allow
3879         -mcpu to override any other explicitly given flags.
3880
3881 2005-03-02  J"orn Rennecke <joern.rennecke@st.com>
3882
3883         * recog.c (verify_changes, confirm_change_group): New functions,
3884         broken out of apply_change_group.
3885         (apply_change_group): Use them.
3886         * recog.h (verify_change, confirm_change_group): Declare.
3887         * rtl.h (redirect_jump_2): Declare.
3888         * jump.c (redirect_exp, invert_exp): Delete.
3889         (invert_exp_1): Take second parameter.  Return value.  Changed caller.
3890         (redirect_jump_2): New function, broken out of redirect_jump.
3891         (redirect_jump): Use redirect_jump_1 and redirect_jump_2.
3892         (invert_jump): Use invert_jump_1 and redirect_jump_2.
3893         * ifcvt.c (dead_or_predicable): Use redirect_jump_2.
3894
3895 2005-03-02  Geoffrey Keating  <geoffk@apple.com>
3896
3897         * varasm.c (named_section): Use xstrdup rather than doing it by
3898         hand.
3899
3900         * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
3901
3902 2005-03-02  Devang Patel  <dpatel@apple.com>
3903
3904         Undo PR tree-optimization/18815 fix.
3905
3906 2005-03-02  Devang Patel  <dpatel@apple.com>
3907
3908         PR tree-optimization/18815
3909         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
3910         loops with zero exit edges.
3911
3912 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
3913
3914         * cfg.c (connect_src, connect_dest, disconnect_src,
3915         disconnct_dest): New.
3916         (unchecked_make_edge, remove_edge, redirect_edge_succ,
3917         redirect_edge_pred): Use the new functions.
3918
3919         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
3920         free_dominance_info only when needed.
3921
3922 2005-03-02  David Edelsohn  <edelsohn@gnu.org>
3923
3924         PR target/20276
3925         * config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
3926         (reg_or_sub_cint64_operand): Same.
3927
3928 2005-03-02  Jeff Law  <law@redhat.com>
3929
3930         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
3931         CFG_ALTERED in the main DOM iteration loop.
3932
3933 2005-03-02  Mark Mitchell  <mark@codesourcery.com>
3934
3935         PR c++/19916
3936         * varasm.c (initializer_constant_valid_p): Allow conversions
3937         between OFFSET_TYPEs.  Tidy.
3938
3939 2005-03-02  Hans-Peter Nilsson  <hp@axis.com>
3940
3941         * config/cris/cris.md ("return"): Remove epilogue delay list
3942         sanity check.
3943
3944 2005-03-02  Daniel Jacobowitz  <dan@codesourcery.com>
3945
3946         * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
3947         for Thumb.
3948         * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
3949
3950 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
3951
3952         * cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
3953         loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
3954         config/m68k/m68k.c, config/mips/mips.h,
3955         config/rs6000/rs6000-protos.h, doc/contrib.texi,
3956         doc/include/gcc-common.texi: Update copyright.
3957
3958         PR middle-end/18029 and PR middle-end/18030
3959         * expr.c (optimize_bitfield_assignment_op): Add a special case
3960         to handle BIT_IOR_EXPR and BIT_XOR_EXPR.
3961
3962         * fold-const.c (fold_unary): New.
3963         (fold): Call fold_unary on unary expressions.
3964
3965 2005-03-02  Richard Guenther  <rguenth@gcc.gnu.org>
3966
3967         * cgraph.h (struct cgraph_edge): Add prev_caller and
3968         prev_callee fields.
3969         (cgraph_node_remove_callees): Export.
3970         * cgraph.c (cgraph_create_edge): Initialize prev_caller
3971         and prev_callee.
3972         (cgraph_edge_remove_callee): New function.
3973         (cgraph_edge_remove_caller): Likewise.
3974         (cgraph_remove_edge): Use.
3975         (cgraph_redirect_edge_callee): Likewise.
3976         (cgraph_node_remove_callees): New function.
3977         (cgraph_node_remove_callers): Likewise.
3978         (cgraph_remove_node): Use.
3979         * tree-optimize.c (tree_rest_of_compilation): Use
3980         cgraph_node_remove_callees instead of manual loop.
3981         * cgraphunit.c (cgraph_finalize_function): Likewise.
3982         (cgraph_expand_function): Likewise.
3983         (cgraph_remove_unreachable_nodes): Likewise.
3984
3985 2005-03-02  Joseph S. Myers &nbs