OSDN Git Service

* config/iq2000/iq2000.c (uns_arith_operand, arith_operand,
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-04-02  Kazu Hirata  <kazu@cs.umass.edu>
2
3         * config/iq2000/iq2000.c (uns_arith_operand, arith_operand,
4         small_int, large_int, reg_or_0_operand, simple_memory_operand,
5         equality_op, cmp_op, pc_or_label_operand, call_insn_operand,
6         move_operand, power_of_2_operand): Move to predicates.md.
7         * config/iq2000/iq2000.h (SPECIAL_MODE_PREDICATES,
8         PREDICATE_CODE): Remove.
9         * config/iq2000/iq2000.md: Include predicates.md.
10         * config/iq2000/predicates.md: New.
11
12 2005-04-02  Richard Sandiford  <rsandifo@redhat.com>
13
14         * config/m68hc11/m68hc11.h (target_flags, MASK_SHORT)
15         (MASK_AUTO_INC_DEC, MASK_M6811, MASK_M6812, MASK_M68S12)
16         (MASK_NO_DIRECT_MODE, MASK_MIN_MAX, MASK_LONG_CALLS)
17         (TARGET_SHORT, TARGET_M6811, TARGET_M6812, TARGET_M68S12)
18         (TARGET_AUTO_INC_DEC, TARGET_MIN_MAX, TARGET_NO_DIRECT_MODE)
19         (TARGET_LONG_CALLS, TARGET_SWITCHES, TARGET_OPTIONS)
20         (SUBTARGET_SWITCHES, SUBTARGET_OPTIONS, m68hc11_regparm_string)
21         (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
22         (TARGET_M68HC11): Delete.
23         (TARGET_DEFAULT): Change the default setting from MASK_M6811 to 0.
24         * config/m68hc11/m68hc12.h (TARGET_M68HC12): Delete.
25         * config/m68hc11/m68hc11.c (m68hc11_regparm_string)
26         (m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
27         (nb_soft_regs): Delete.
28         (TARGET_DEFAULT_TARGET_FLAGS): Override default with TARGET_DEFAULT.
29         (m68hc11_override_options): Remove the code that caters for MASK_M6811
30         and MASK_M6812 being set simultaneously.  Change the code that sets
31         the default m68hc11_soft_reg_count to use integers instead of strings.
32         (m68hc11_conditional_register_usage, hard_regno_mode_ok): Use
33         m68hc11_soft_reg_count (which now has an int type) as the number
34         of soft registers.
35         * config/m68hc11/m68hc11.opt: New file.
36
37 2005-04-02  Kazu Hirata  <kazu@cs.umass.edu>
38
39         * config/fr30/fr30.h (PREDICATE_CODES): Remove
40         fp_displacement_operand, sp_displacement_operand.
41
42         * config/m68hc11/m68hc11-protos.h: Add a prototype for
43         m68hcc_auto_inc_p.
44         Remove the prototypes for tst_operand, cmp_operand,
45         stack_register_operand, d_register_operand,
46         hard_addr_reg_operand, splitable_operand,
47         m68hc11_logical_operator, m68hc11_arith_operator,
48         m68hc11_non_shift_operator, m68hc11_shift_operator,
49         m68hc11_unary_operator, m68hc11_eq_compare_operator,
50         non_push_operand, hard_reg_operand, and
51         reg_or_some_mem_operand.
52         * config/m68hc11/m68hc11.c (m68hcc_auto_inc_p): Make it
53         extern.
54         (tst_operand, cmp_operand, non_push_operand,
55         splitable_operand, reg_or_some_mem_operand,
56         stack_register_operand, d_register_operand,
57         hard_addr_reg_operand, hard_reg_operand,
58         m68hc11_eq_compare_operator, m68hc11_logical_operator,
59         m68hc11_arith_operator, m68hc11_non_shift_operator,
60         m68hc11_shift_operator, m68hc11_unary_operator): Move to
61         predicates.md.
62         * config/m68hc11/m68hc11.h (PREDICATE_CODES): Remove.
63         * config/m68hc11/m68hc11.md: Include predicates.md.
64         * config/m68hc11/predicates.md: New.
65
66 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
67
68         PR debug/19345
69         * dwarf2out.c (add_abstract_origin_attribute): Revert accidental
70         change checked in along with 2005-03-03's patch for debug/20253.
71         * tree-inline.c (remap_type): Remap TYPE_STUB_DECL.
72         (remap_decl): Insert type decl in map earlier.
73
74 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
75
76         PR tree-optimization/20640
77         * tree-ssa-dce.c (remove_dead_stmt): Don't redirect edge to
78         post-dominator if it has phi nodes.
79         (eliminate_unnecessary_stmts): Remove dead phis in all blocks
80         before dead statements.
81
82 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
83
84         PR middle-end/20491
85         * final.c (alter_subreg): Don't call subreg_regno for a non-REG.
86
87 2005-04-02  Alexandre Oliva  <aoliva@redhat.com>
88
89         PR rtl-optimization/20290
90         * loop.c (for_each_insn_in_loop): Don't assume the loop body runs
91         in every iteration if the entry point is the exit test.
92
93 2005-04-02  Hans-Peter Nilsson  <hp@axis.com>
94
95         * config/cris/cris.md (attribute "length"): Define.
96
97 2005-04-02  Geoffrey Keating  <geoffk@apple.com>
98
99         * config/rs6000/predicates.md (indexed_or_indirect_operand): New.
100         (word_offset_memref_operand): New.
101         * config/rs6000/rs6000-protos.h (word_offset_memref_operand): Delete.
102         (indexed_or_indirect_operand): Delete.
103         * config/rs6000/rs6000.c (word_offset_memref_operand): Delete.
104         (indexed_or_indirect_operand): Delete.
105
106         * config/rs6000/t-darwin8: Comment out ppc64 multilib.
107
108         PR 20650
109         * config/rs6000/rs6000.md (fix_truncdfsi2): Make destination
110         a register.
111
112         * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Add -pipe.
113         * config/t-darwin (TARGET_LIBGCC2_CFLAGS): Likewise.
114
115 2005-04-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
116
117         * gcc/config/vax/vax.md: Spellcheck, fix whitespace.
118
119 2005-04-01  Ian Lance Taylor  <ian@airs.com>
120
121         * gcc.c: Don't include <sys/resource.h> or declare getrusage.
122         (rus, prus): Remove static variables.
123         (execute): Use pex_run/pex_get_status rather than pexecute/pwait.
124         (process_command): Permit report_times and use_pipes together.
125
126 2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
127
128         * c-decl.c (validate_proto_after_old_defn): Look at
129         TYPE_MAIN_VARIANT of argument types.
130
131 2005-04-01  Paul Brook  <paul@codesourcery.com>
132
133         * config/arm/arm.c (thumb_call_via_label): Include space for SP.
134         (arm_output_function_epilogue): Allow call_via_SP.
135         (thumb_call_via_reg, arm_file_end): Ditto.
136         * config/arm/arm.h (struct machine_function): Include space for SP.
137         (thumb_call_via_label): Update declaration.
138
139 2005-04-01  Ian Lance Taylor  <ian@airs.com>
140
141         * final.c (final_scan_insn): Revert part of 2005-03-30 patch: when
142         doing a peephole optimization, once again put any notes in the
143         proper position.
144
145 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
146
147         * bb-reorder.c, fold-const.c, varasm.c: Fix comment typos.
148
149 2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
150
151         * local-alloc.c (update_equiv_regs): Use gcc_assert, gcc_unreachable.
152         (block_alloc, find_free_reg): Likewise.
153         * loop-doloop.c (doloop_modify): Likewise.
154         * loop-invariant.c (record_use): Likewise.
155         * loop-iv.c (get_biv_step_1, get_biv_step, iv_analyze,
156         get_iv_value, canon_condition, eliminate_implied_condition,
157         eliminate_implied_condition, simplify_using_initial_values,
158         shorten_into_mode, canonicalize_iv_subregs,
159         iv_number_of_iterations): Likewise.
160         * loop-unroll.c (expand_var_during_unrolling): Likewise.
161         * loop-unswitch.c (compare_and_jump_seq, unswitch_single_loop,
162         unswitch_loop): Likewise.
163         * loop.c (INSN_LUID, loop_optimize, rtx_equal_for_loop_p,
164         move_movables, replace_call_address, find_and_verify_loops,
165         rtx_equal_for_prefetch_p, fold_rtx_mult_add, loop_iterations,
166         record_giv, final_giv_value, general_induction_var,
167         simplify_giv_expr, extension_within_bounds_p, try_copy_prop,
168         loop_giv_dump): Likewise.
169
170         * gcov-io.h (GCOV_CHECK, GCOV_CHECK_READING,
171         GCOV_CHECK_WRITING): Remove.
172         (gcov_position, gcov_rewrite): Use gcc_assert.
173         * gcov-io.c (gcov_open, gcov_write_words, gcov_write_length,
174         gcov_read_words, gcov_sync, gcov_seek): Use gcc_assert.
175         * libgcov.c (__gcov_merge_single, __gcov_merge_delta): Use
176         gcc_assert.
177
178 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
179
180         * tree-inline.c: Fix a typo.
181
182 2005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
183
184         * configure.ac (enable-checking): Explicitly set all variables for
185         collective switch values.  Alphabetize variables. Rename
186         ac_checking_valgrind to ac_valgrind_checking.  Allow 'none' as
187         synonym for 'no'.
188         * doc/install.texi (enable-checking): Update documentation.
189         * configure: Rebuilt.
190
191 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
192
193         * tree-inline.c (copy_body_r): Use CONSTANT_CLASS_P where
194         possible.
195
196 2005-04-01  Richard Earnshaw  <richard.earnshaw@arm.com>
197
198         * arm.c (adjacent_mem_locations): Reject volatile memory refs.
199         Also reject cases where this pattern will cause load delay stalls
200         unless optimizing for size and it will produce a shorter sequence.
201         * arm.md (arith_adjacent_mem): Make better use of ldm addressing
202         variants to avoid pre-adjusting the base when possible.
203
204 2005-04-01  Richard Earnshaw  <richard.earnshaw@arm.com>
205
206         * arm.md (minmax_arithsi): Reject all eliminable registers, not just
207         the frame and argument pointers.
208         (strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec): Likewise.
209         (loadqisi_preinc, loadqisi_predec, strsi_preinc): Likewise.
210         (strsi_predec, loadsi_preinc, loadsi_predec): Likewise.
211         (strqi_shiftpreinc, strqi_shiftpredec, loadqi_shiftpreinc): Likewise.
212         (loadqi_shiftpredec, strsi_shiftpreinc, strsi_shiftpredec): Likewise.
213         (loadsi_shiftpreinc, loadsi_shiftpredec): Likewise.
214
215 2005-04-01  Danny Smith  <dannysmith@users.sourceforge.net>
216
217         * config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Define,
218         with entry for selectany attribute.
219         * config/i386/i386-protos.h (ix86_handle_selectany_attribute):
220         Declare.
221         * config/i386/winnt.c (ix86_handle_selectany_attribute): Define.
222         (i386_pe_asm_named_section): Handle sections generated by
223         selectany attribute.
224         * doc/extend.texi (selectany): Document attribute.
225
226 2005-04-01  Paolo Bonzini  <bonzini@gnu.org>
227             Jan Hubicka  <jh@suse.cz>
228
229         * config/i386/i386.c (ix86_decompose_address): Look inside SUBREGs
230         to fix addresses involving EBP and ESP.
231         (aligned_operand, legitimate_address_p, ix86_address_cost): Be prepared
232         for SUBREGed registers.
233         (legitimate_address_p): Accept SUBREGed registers.
234
235 2005-04-01  Jakub Jelinek  <jakub@redhat.com>
236
237         PR c++/19406
238         * dwarf2out.c (gen_type_die_for_member): Handle FIELD_DECL.
239         (dwarf2out_imported_module_or_decl): Use gen_type_die_for_member
240         for FIELD_DECLs.
241
242 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
243
244         * doc/contrib.texi, doc/invoke.texi, doc/tm.texi: Fix typos.
245
246 2005-04-01  James E Wilson  <wilson@specifixinc.com>
247
248         PR c++/20505
249         * dwarf2out.c (rtl_for_decl_init): New function.
250         (rtl_for_decl_location): Extracted from here.
251         (tree_add_const_value_attribute): Call rtl_for_decl_init and
252         add_const_value_attribute.  Delete initializer_constant_valid_p call.
253
254 2005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
255
256         * cgraphunit.c, dbxout.c, flow.c, gcse.c, gimplify.c,
257         lambda-code.c, loop.c, machmode.def, mips-tfile.c,
258         modulo-sched.c, passes.c, postreload-gcse.c, tree-eh.c,
259         tree-ssa-ccp.c, varasm.c, config/frv/frv.c, config/frv/frv.h,
260         config/frv/frv.md, config/i386/i386.c, config/i386/i386.h,
261         config/i386/i386.md, config/rs6000/predicates.md,
262         config/rs6000/rs6000.c, config/s390/fixdfdi.h,
263         config/s390/s390.c, config/stormy16/stormy16.c,
264         config/stormy16/stormy16.md, config/vax/vax.md: Fix comment
265         typos.
266
267 2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
268
269         PR c/17855
270         * gimplify.c (gimplify_expr): Create a temporary for lvalue
271         COND_EXPR and CALL_EXPR.
272
273 2005-03-31  Vladimir Makarov  <vmakarov@redhat.com>
274
275         PR target/20632
276         * genautomata.c (first_cycle_unit_presence): Check all alternative
277         states for unit presence.
278
279         * doc/md.texi: Remove remark about impossibility to query unit
280         presence in non nondeterministic automaton state.
281         
282         * config/ia64/ia64.c (get_template): Change order of unit querying.
283
284 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
285
286         * tree-ssa-dom.c (cprop_into_successor_phis): Remove an
287         obsolete comment.
288
289 2005-03-31  Zdenek Dvorak  <dvorakz@suse.cz>
290
291         * cfgloopanal.c (mark_loop_exit_edges): Clean EDGE_LOOP_EXIT
292         flag for edges outside any loops.
293
294 2005-03-31  Janis Johnson  <janis187@us.ibm.com>
295
296         * doc/sourcebuild.texi (Test Directives): Describe cleanup-* procs.
297
298 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
299
300         * tree-ssa-alias.c: Follow spelling conventions.
301         * doc/tree-ssa.texi: Fix a typo.
302
303 2005-03-31  J"orn Rennecke <joern.rennecke@st.com>
304
305         * postreload-gcse.c: Include target.h.
306         (gcse_after_reload_main): Return early if we cannot modify jumps.
307         * Makefile.in (postreload-gcse.o): Depend on $(TARGET_H).
308
309 2005-03-31  David Edelsohn  <edelsohn@gnu.org>
310
311         * tree-ssa-loop-im.c (stmt_cost): Add RDIV_EXPR to list of
312         expensive operations.
313
314 2005-03-31  Ian Lance Taylor  <ian@airs.com>
315
316         * collect2.c (lderrout): New variable.
317         (collect_exit): Dump ldout to stdout.  Dump and unlink lderrout,
318         if it is set, to stderr.
319         (handler): Unlink lderrout if it is set.
320         (dump_file): Add "to" parameter.  Change all callers.
321         (main): Initialize lderrout.
322         (collect_execute): Add errname parameter.  Change all callers.
323         Rename redir parameter to outname.  Never pass
324         PEX_STDERR_TO_STDOUT to pex_run.
325         * collect2.h (collect_execute, dump_file): Update declarations.
326         * tlink.c (tlink_execute): Add errname parameter.  Change all
327         callers.
328         (do_tlink): Check lderrout as well as ldout.
329
330 2005-03-31  Caroline Tice  <ctice@apple.com>
331
332         * Makefile.in (varasm.o): Add basic-block.h to list of requirements.
333         (bb-reorder.o): Add errors.h to list of requirements.
334         (STAGEFEEDBACK_FLAGS_TO_PASS): Add -freorder-blocks-and-partition to
335         profiledbootstrap flags.
336         * bb-reorder.c (errors.h): Add new include.
337         (struct bbro_basic_block_data_def): Add new field, in_trace.
338         (add_unlikely_executed_notes):  Remove function.
339         (mark_bb_for_unlikely_executed_section): Remove function.
340         (insert_section_boundary_note): New function.
341         (verify_hot_cold_block_grouping): New function.
342         (push_to_next_round_p): Remove variables and tests that push all
343         cold blocks to last round.
344         (find_traces): Remove code that added extra round of trace finding
345         when doing partitioning.
346         (find_traces_1_round) :  Remove variable last_round;  add code to 
347         update new struct field, in_trace; correct trace_length where it was 
348         incorrect before (after call to copy_bb); change code that pushed all 
349         cold blocks to last round. Instead verify that all blocks going into 
350         a trace belong in the same partition.
351         (connect_traces): Modify to connect the traces in two passes, if the
352         function contains both hot and cold blocks.  The first pass connects 
353         all the traces for blocks in the partition that the first block in 
354         the function belongs to; the second pass connnects all the traces 
355         containing blocks that belong in the other partition.
356         (find_rarely_executed_basic_blocks_and_crossing_edges):  Remove
357         code that automatically put the first block in a function into the
358         hot partition if the function had any hot blocks.
359         (fix_crossing_unconditional_branches): Check number of succ edges 
360         before attempting to get one.
361         (fix_edges_for_rarely_executed_code):  Update comment describing
362         function.
363         (reorder_basic_blocks):  Add code to initialize new field (in_trace);
364         remove call to add_unlikely_executed_notes; add call to 
365         verify_hot_cold_block_grouping.
366         (duplicate_computed_gotos): Don't change computed goto if it's a 
367         crossing edge.
368         (partition_hot_cold_basic_blocks):  Update function comment.
369         * cfgcleanup.c (try_simplify_condjump): Remove redundacy from 
370         condition.
371         (try_forward_edges): Likewise.
372         (merge_blocks_move_predecessor_nojumps): Likewise.
373         (merge_blocks_move_successor_nojumps): Likewise.
374         (merge_blocks_move): Likewise.
375         (try_crossjump_bb): Likewise.
376         * cfglayout.c (update_unlikely_executed_notes): Remove function.
377         (fixup_reorder_chain): Remove code for adding UNLIKELY_EXECUTED_CODE
378         notes to cold bb's; remove call to update_unlikely_executed_notes.
379         (duplicate_insn_chain):  change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
380         NOTE_INSN_SWITCH_TEXT_SECTIONS.
381         * cfglayout.h (scan_ahead_for_unlikely_executed_note): Remove
382         function declaration.
383         * cfgrtl.c (can_delete_note_p): Remove UNLIKELY_EXECUTED_CODE note
384         from consideration.
385         (rtl_can_merge_blocks): Remove redundancy from condition.
386         (try_redirect_by_replacing_jump): Likewise.
387         (force_nonfallthru_and_redirect): Remove code for adding
388         UNLIKELY_EXECUTED_CODE notes to cold bb's.
389         (commit_one_edge_insertion): Likewise.
390         (cfg_layout_can_merge_blocks_p): Remove redundancy from condition.
391         * dbxout.c (FORCE_TEXT): Replace function_section with 
392         current_function_section.
393         (struct dbx_debug_h): Add do_nothing function for new debug_hooks
394         function, switch_text_section.
395         (struct xcoff_debug): Likewise.
396         (dbxout_function_end): Add code to put out label diffs for both
397         hot and cold sections.
398         * debug.c (struct do_nothing_debug_hooks): Add do_nothing function
399         for new debug_hooks funciton, switch_text_section..
400         * debug.h (struct gcc_debug_hooks):  Add new function to debug_hooks,
401         switch_text_section.
402         * dwarf2out.c (struct dw_fde_struct):  Add five new fields: 
403         dw_fde_hot_section_label, dw_fde_hot_section_end_label, 
404         dw_fde_unlikely_section_label, dw_fde_unlikely_section_end_label and 
405         dw_fde_switched_sections.
406         (output_call_frame_info):  Add test to see if function switches text
407         sections in the middle; if so, use appropriate extra hot and cold 
408         section labels to compute size deltas for the hot and cold sections.
409         (dwarf2out_begin_prologue): Add code to initialize new fields in 
410         dw_fde_struct.
411         (dwarf2out_switch_text_section): New function (invoked through 
412         debug_hook); updates new fields in dw_fde_struct appropriately and
413         increments separate_line_info_table_in_use.
414         (dwarf2_debug_hooks): Initialize switch_text_section function to be
415         dwarf2out_switch_text_section.
416         (struct var_loc_node): Add new field, section_label.
417         (output_aranges): Add code to check whether in hot or cold section and
418         use the appropriate label in calculating deltas.
419         (output_ranges): Likewise.
420         (output_line_info): Add code to check which section we're in and
421         use appropriate hot/cold label.
422         (add_location_or_constant_value_attribute): Likewise.
423         (gen_subprogam_die): Modify arange attributes to use correct labels.
424         (dwarf2out_begin_block): Change call to function_section into call to
425         current_function_section.
426         (dwarf2out_end_block): Likewise.
427         (dwarf2out_source_line): Likewise.
428         (dwarf2out_var_location): Add code to check whether in hot or cold 
429         section and use the appropriate label.
430         * except.c (output_function_exception_table): Change call to 
431         function_section into call to current_function_section.
432         * final.c (profile_function): Likewise.
433         (scan_ahead_for_unlikely_executed_note): Remove function.
434         (final_scan_insn):  Remove calls to 
435         scan_ahead_for_unlikely_executed_note, and related code for switching 
436         to cold section, except for the single time 
437         NOTE_INSN_SWITCH_TEXT_SECTIONS may be encountered;  add calls to 
438         debug_hooks->switch_text_sections; replace appropriate calls to 
439         function_section with calls to current_function_section.
440         * ifcvt.c (find_if_case_1): Remove redundancy from condition, add 
441         test_bb to condition.
442         (find_if_case_2): Likewise.
443         * insn-notes.def: Change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
444         NOTE_INSN_SWITCH_TEXT_SECTIONS.  Update comment appropriately.
445         * opts.c (decode_options): Change warning about hot/cold partitioning
446         with exceptionss to inform (so as not to cause bootstrap failures);
447         remove warning about partitioning with DWARF debug info.
448         * output.h (current_function_section): Add new function decl.
449         (insert_section_boundary_note): Likewise.
450         (enum in_section): Move this declaration here from varasm.c.
451         (unlikely_section_label): Likewise.
452         (unlikely_text_section_name): Likewise.
453         (last_text_section_name): New global variable.
454         (last_text_section): Likewise.
455         (hot_section_label): Likewise.
456         (hot_section_end_label): Likewise.
457         (cold_section_end_label): Likewise.
458         * passes.c (rest_of_handle_final): Free unlikely_text_section_name.
459         * print-rtl.c (print_rtx): Change NOTE_INSN_UNLIKELY_EXECUTED_CODE
460         to NOTE_INSN_SWITCH_TEXT_SECTIONS.
461         * reg-stack.c (emit_swap_insn): Remove UNLIKELY_EXECUTED_CODE note 
462         insn from consideration.
463         * sdbout.c (sdb_debug_hooks): Add do_nothing for new function, 
464         switch_text_section.
465         * varasm.c (basic-block.h): Add new include.
466         (unlikely_section_label_printed): Remove global variable.
467         (unlikely_section_label): Make global variable not be static any more.
468         (unlikely_text_section_name): Likewise.
469         (hot_section_end_label): New global variable (not static)
470         (first_function_block_is_cold): Likewise.
471         (hot_section_label): Likewise.
472         (cold_section_end_label): Likewise..
473         (last_text_section): New global variable, not static.
474         (last_text_section_name): New global variable, not static.
475         (initialize_cold_section_name): New function.
476         (enum in_section): Move declaration to output.h.
477         (text_section): Update last_text_section.
478         (unlikely_text_section): Replace code to determine cold section name 
479         with call to initialize_cold_section_name; Add code to update 
480         last_text_section; remove code for printing out label.
481         (named_section_real): Add code to update last_text_section and 
482         last_text_section_name as appropriate.
483         (function_section): Change test for 'unlikely' to depend on
484         first_function_block_is_cold (moved old test to 
485         current_function_section).
486         (current_function_section): New function.
487         (assemble_start_function): Move code that frees 
488         unlikely_text_section_name; initialize hot_section_end_label; 
489         print hot and cold section labels at the start of the function; 
490         set first_function_block_is_cold, if appropriate; initialize l
491         ast_text_section; add call to insert_section_boundary_note.
492         (assemble_end_function):  Add code to write out hot and cold section
493         end labels.
494         *vmsdbgout.c (vmsdbg_debug_hooks): Add do_nothing for new function,
495         switch_text_section.
496         * config/darwin.c (machopic_select_section): Replace incorrect 
497         function in base_funs; update reloc for cold sections if necessary.
498         * config/darwin.h (SECTION_FUNCTION):  Add code to update 
499         last_text_section if appropriate.
500         (text_unlikely_section): Remove.
501         * config/sparc/sparc.c (sparc_output_deferred_case_vectors): Likewise.
502         * config/stormy16/stormy16.c (stormy_16_output_addr_vec): Likewise.
503         * config/xtensa/xtensa.c (override_options): Turn off hot/cold
504         partitioning for this architecture.
505
506 2005-03-31  Olivier Hainque  <hainque@adacore.com>
507
508         * dwarf2out.c (dwarf2out_frame_finish): Honor DWARF2_FRAME_INFO
509         defined and non-zero.
510
511 2005-03-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
512
513         PR c++/18644
514         * doc/invoke.texi (-Wsynth): Don't document, as it now is void of
515         semantics. 
516
517 2005-03-31  Alan Modra  <amodra@bigpond.net.au>
518
519         PR target/20611
520         * config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Remove inline
521         label operand.  Remove (use (unspec..)).  Don't emit a label on
522         the offset word.
523         * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Don't
524         generate inline label for load_toc_v4_PIC_1b.
525         (rs6000_emit_load_toc_table): Likewise.
526
527 2005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
528
529         * config.gcc: Obsolete i860-*-sysv4*, ip2k-*-elf,
530         ns32k-*-netbsdelf*, and ns32k-*-netbsd*.
531
532 2005-03-29  Devang Patel  <dpatel@apple.com>
533
534         * tree-sra.c (decide_block_copy): Disable scalarization of
535         sub-elements.
536         
537 2005-03-30  Stuart Hastings  <stuart@apple.com>
538             Dale Johannesen  <dalej@apple.com>
539
540         * Makefile.in (print-tree.o):  Depend on tree-iterator.h.
541         * print-tree.c (print_node):  Add case STATEMENT_LIST.
542
543 2005-03-31  Alan Modra  <amodra@bigpond.net.au>
544
545         * config.gcc (cpu_is_64bit): Set for 64-bit powerpc cpus.
546         (powerpc64-*-linux*): Use it.  Rearrange tm_file assignment.
547         (powerpc-*-linux*): Build a biarch compiler when --enable-targets
548         is given with "powerpc64*" or "all", or when --with-cpu chooses
549         a 64-bit cpu.
550
551 2005-03-30  James E. Wilson  <wilson@specifixinc.com>
552
553         PR debug/20268
554         * dwarf2out.c (add_high_low_attributes): New function, extracted from
555         gen_lexical_block_die.
556         (gen_lexical_block_die, gen_inlined_subroutine_die): Call it.
557
558 2005-03-31  Jan Hubicka  <jh@suse.cz>
559
560         2004-11-02  Jan Hubicka  <jh@suse.cz>
561
562         * cgraph.c (cgraph_varpool_node_name): New function.
563         (dump_cgraph_varpool_node): New function.
564         (dump_varpool): New function.
565         * cgraphunit.c (cgraph_optimize): Dump varpool.
566
567         2004-10-16  Jan Hubicka  <jh@suse.cz>
568
569         * cgraph.c (decide_is_variable_needed): New function.
570         (cgraph_varpool_finalize_decl): Use it.
571         * cgraphunit.c (cgraph_optimize): Assemble_pending_decls when not doing
572         unit-at-a-time.
573         * final.c (output_addr_const): Do not call mark_referenced.
574         * passes.c (rest_of_decl_compilation): ifdef out DECL_RTL_SET_P hack;
575         always go via cgraph.
576         * toplev.c (wrapup_global_declarations): Kill non-unit-at-a-time code.
577         (check_global_declarations): Ifdef out code clearing DECL_RTL.
578         * tree-optimize.c (execute_inline): Mark functions called.
579         * i386.c (output_pic_addr_const): Do not call mark_decl_referenced.
580
581         2004-10-11  Jan Hubicka  <jh@suse.cz>
582
583         * cgraph.c (cgraph_varpool_first_unanalyzed_node): New global voriable
584         (cgraph_varpool_last_needed_node): New static variable.
585         (enqueue_needed_varpool_node): Break out from ...; add items to the
586         end of queue; update first pointers.
587         (cgraph_varpool_mark_needed_node): ... here.
588         (cgraph_varpool_finalize_decl): Use enqueue_needed_varpool_node.
589         (cgraph_varpool_assemble_pending_decls): Move to cgraphunit.c
590         * cgraph.h (cgraph_varpool_node): Add analyzed field.
591         (cgraph_varpool_first_unanalyzed_node): Declare.
592         * cgraphunit.c: Include output.h.
593         (cgraph_varpool_analyze_pending_decls): New function.
594         (cgraph_varpool_assemble_pending_decls): Move from cgraph.c; bail out
595         for errors, analyze pending decls.
596         (cgraph_finalize_compilation_unit): Only analyze decls.
597         (cgraph_optimize): Assemble the decls after expanding.
598
599 2005-03-30  Daniel Berlin  <dberlin@dberlin.org>
600
601         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Make sure
602         subvars get marked properly in tags for grouping.
603         (add_pointed_to_var): Mark only actual pointed to
604         variables/subvars in addresses needed.
605         (create_overlap_variables_for): Clear call clobbered on original
606         variable.
607         * tree-ssa-operands.c (get_asm_expr_operands): Don't let regular
608         addresable vars with subvars into list.
609         * tree-ssa.c (verify_ssa_name): Verify original is not used where
610         subvar should be.
611
612 2005-03-30  Richard Henderson  <rth@redhat.com>
613
614         * cgraph.h (struct cgraph_node): Add alias.
615         * varasm.c (assemble_alias): Set it.
616         * cgraphunit.c (cgraph_assemble_pending_functions): Check it and
617         avoid calling cgraph_expand_function.
618
619 2005-03-30  Tom Tromey  <tromey@redhat.com>
620
621         * tree.def (FILE_TYPE): Removed.
622         * typeclass.h (enum type_class): Removed file_type_class.
623         * dwarf2out.c (is_base_type): Updated.
624         (gen_type_die): Likewise.
625         * dbxout.c (dbxout_type): Updated.
626         * builtins.c (type_to_class): Updated.
627         * tree.c (type_contains_placeholder_1): Updated.
628         * config/sparc/sparc.c (sparc_type_code): Updated.
629         * config/ia64/ia64.c (hfa_element_mode): Updated.
630         * expr.c (count_type_elements): Updated.
631         * stor-layout.c (layout_type): Updated.
632         * tree-inline.c (remap_type): Updated.
633         * tree-pretty-print.c (dump_generic_node): Updated.
634
635 2005-03-30 Fariborz Jahanian <fjahanian@apple.com>
636
637         * builtins.c (expand_builtin_powi): Fix mode of
638         2nd argument to match int.
639         * libgcc2.h (__powisf2, __powidf2, __powixf2, __powitf2): Change
640         2nd argument type to int.
641         * libgcc2.c: Change prototype of __powi* functions to use
642         int.
643
644 2005-03-30  Dale Johannesen  <dalej@apple.com>
645
646         PR middle-end/19225
647         * calls.c (expand_call):  Flush pending deferrals before
648         throwing call.
649
650 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
651
652         PR c/772
653         PR c/17913
654         * c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR,
655         C_DECL_UNDEFINABLE_STMT_EXPR, struct c_label_list, struct
656         c_label_context, label_context_stack): New.
657         * c-decl.c (define_label): Check for jumps into statement
658         expressions.  Add label to list of defined labels.
659         (start_function): Push context on label_context_stack.
660         (finish_function): Pop context from label_context_stack.
661         * c-typeck.c (label_context_stack): New.
662         (c_finish_goto_label): Check for jumps into statement
663         expressions.  Add label to list of jumped to labels.
664         (struct c_switch): Add blocked_stmt_expr.
665         (c_start_case): Initialize it.
666         (do_case): Check it.
667         (c_finish_case): Verify !blocked_stmt_expr.
668         (c_begin_stmt_expr):  Push context on label_context_stack.
669         Increment blocked_stmt_expr.  Mark labels jumped to from outside
670         as undefinable.
671         (c_finish_stmt_expr): December blocked_stmt_expr.  Mark labels
672         defined in the statement expression and no longer jumpable to.
673         Mark labels jumped to from just outside the statement expression
674         as again definable.  Pop context from label_context_stack.
675         * doc/extend.texi (Statement Exprs): Update.
676
677 2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
678
679         PR c/20368
680         * c-decl.c (start_function): Check for old_decl being
681         error_mark_node.
682
683 2005-03-30  Ian Lance Taylor  <ian@airs.com>
684
685         * final.c (final): Remove prescan parameter.  Change all callers.
686         (final_scan_insn): Remove prescan parameter.  Change all callers.
687
688 2005-03-30  Kazu Hirata  <kazu@cs.umass.edu>
689
690         * tree-vectorizer.c: Fix comment typos.
691
692 2005-03-30  Sebastian Pop  <pop@cri.ensmp.fr>
693
694         * tree-scalar-evolution.c (instantiate_parameters_1): Return
695         as soon as a chrec_dont_know is detected.
696
697 2005-03-31  Danny Smith  <dannysmith@users.sourceforge.net>
698
699         Merge from csl-arm-branch.
700         2004-02-12  Mark Mitchell  <mark@codesourcery.com>
701
702         * tlink.c (recompile_files): Do not assume that "rename" can
703         overwrite an existing file.
704
705 2005-03-31  Paolo Bonzini  <bonzini@gnu.org>
706
707         * gcc/configure.ac (TL_AC_GNU_MAKE_GCC_LIB_PATH): Remove.
708         * gcc/configure: Regenerate.
709
710 2005-03-30  Alan Modra  <amodra@bigpond.net.au>
711
712         * doc/install.texi: Update binutils requirement for powerpc*-linux.
713
714         * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Update comments.
715
716         * calls.c (struct arg_data): Update "partial" comment.
717         (load_register_parameters): Update "nregs" comment.
718
719 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
720
721         * config/iq2000/iq2000.h (target_flags, MASK_GPOPT, MASK_EMBEDDED_DATA)
722         (MASK_UNINIT_CONST_IN_RODATA, TARGET_EMBEDDED_DATA, TARGET_SWITCHES)
723         (TARGET_DEFAULT, TARGET_CPU_DEFAULT, SUBTARGET_TARGET_OPTIONS)
724         (TARGET_OPTIONS, iq2000_cpu_string, iq2000_arch_string): Delete.
725         (TARGET_DEBUG_MODE, TARGET_DEBUG_A_MODE, TARGET_DEBUG_B_MODE)
726         (TARGET_DEBUG_C_MODE, TARGET_DEBUG_D_MODE): Define to 0 rather
727         than target_flags & 0.
728         * config/iq2000/iq2000.c (iq2000_cpu_string, iq2000_arch_string)
729         (iq2000_arch, iq2000_parse_cpu): Delete.
730         (TARGET_HANDLE_OPTION): Override default.
731         (iq2000_handle_option): New function.
732         (override_options): Remove -march= and -mcpu= handling.
733         * config/iq2000/iq2000.opt: New file.
734
735 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
736
737         * config/c4x/c4x-protos.h (c4x_rpts_cycles, c4x_cpu_version): Delete.
738         * config/c4x/c4x.h (SMALL_MEMORY_FLAG, MPYI_FLAG, FAST_FIX_FLAG)
739         (RPTS_FLAG, C3X_FLAG, TI_FLAG, PARANOID_FLAG, MEMPARM_FLAG, DEVEL_FLAG)
740         (RPTB_FLAG, BK_FLAG, DB_FLAG, DEBUG_FLAG, HOIST_FLAG)
741         (LOOP_UNSIGNED_FLAG, FORCE_FLAG, PRESERVE_FLOAT_FLAG)
742         (PARALLEL_INSN_FLAG, PARALLEL_MPY_FLAG, ALIASES_FLAG, C30_FLAG)
743         (C31_FLAG, C32_FLAG, C33_FLAG, C40_FLAG, C44_FLAG, TARGET_SWITCHES)
744         (TARGET_DEFAULT, TARGET_SMALL, TARGET_MPYI, TARGET_FAST_FIX)
745         (TARGET_RPTS, TARGET_TI, TARGET_PARANOID, TARGET_MEMPARM, TARGET_DEVEL)
746         (TARGET_RPTB, TARGET_BK, TARGET_DB, TARGET_DEBUG, TARGET_HOIST)
747         (TARGET_LOOP_UNSIGNED, TARGET_FORCE, TARGET_PRESERVE_FLOAT)
748         (TARGET_PARALLEL, TARGET_PARALLEL_MPY, TARGET_ALIASES)
749         (c4x_rpts_cycles_string, c4x_cpu_version_string)
750         (TARGET_OPTIONS): Delete.
751         (c4x_rpts_cycles, c4x_cpu_version): Declare.
752         (TARGET_C3X, TARGET_C30, TARGET_C31, TARGET_C32, TARGET_C33)
753         (TARGET_C40, TARGET_C44): Redefine in terms of c4x_cpu_version.
754         * config/c4x/c4x.c (c4x_rpts_cycles_string): Delete.
755         (c4x_cpu_version_string): Delete.
756         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
757         (c4x_handle_option): New function.  Map -m3x and -m4x options to the
758         equivalent -mcpu= option.
759         (c4x_override_options): Remove -mrpts= and -mcpu= handling from here.
760         Deal with the extra conditions in the old TARGET_MPYI, TARGET_RPTB,
761         TARGET_DB, TARGET_PARALLEL and TARGET_PARALLEL_MPY macros by setting
762         or clearing the appropriate MASK_* bit.
763         (c4x_file_start): Use c4x_cpu_version.
764         * config/c4x/c4x.opt: New file.
765
766 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
767
768         * doc/options.texi: Document the new MaskExists flag.
769         * opth-gen.awk: Don't output MASK and TARGET macros for Mask(...)
770         if the option has the MaskExists flag.
771
772 2005-03-30  Richard Sandiford  <rsandifo@redhat.com>
773
774         * opt-functions.awk (flag_set_p, test_flag): New functions.
775         (switch_flags): Use them.
776         * opth-gen.awk: Use flag_set_p to check for flags.
777         * optc-gen.awk: Likewise.  Use opt_args to check for Init(...) flags.
778
779 2005-03-30  Ian Lance Taylor  <ian@airs.com>
780
781         * config.host (i[34567]86-*-mingw32*): Don't set
782         host_can_use_collect2 to no.
783
784 2005-03-30  Alan Modra  <amodra@bigpond.net.au>
785
786         PR target/20203
787         * builtins.c (get_memory_rtx): Expand address exp using EXPAND_NORMAL.
788         Remove convert_memory_address call duplicating that in memory_address.
789
790 2005-03-29  Richard Henderson  <rth@redhat.com>
791
792         PR c/20519
793         * c-decl.c (c_finish_incomplete_decl): Update complete_array_type call.
794         (build_compound_literal): Likewise.  Propagate decl type into the
795         initializer.
796         (finish_decl): Likewise.  Use new return value from complete_array_type
797         for zero sized arrays.
798         (complete_array_type): Move ...
799         * c-common.c (complete_array_type): ... here.  Change first argument
800         to pointer-to-type-node.  Consistently use sizetype for the index
801         except for zero sized arrays.  Detect zero sized arrays for pedantic
802         mode diagnostics.  Create a new type node instead of modifying the
803         old node in place.
804         * c-tree.h (complete_array_type): Move decl ...
805         * c-common.h (complete_array_type): ... here.
806
807 2005-03-29  Richard Henderson  <rth@redhat.com>
808
809         PR tree-opt/19108
810         * tree-sra.c (generate_element_init_1): Handle RANGE_EXPR.
811
812 2005-03-29  Kazu Hirata  <kazu@cs.umass.edu>
813
814         * builtin-types.def, c-convert.c, c-format.c, ddg.c, debug.c,
815         debug.h, et-forest.c, et-forest.h, gcov.c, rtl-profile.c,
816         rtlhooks-def.h, rtlhooks.c, sdbout.c, tree-inline.h,
817         tree-profile.c, tsystem.h, value-prof.h: Update copyright.
818
819 2005-03-29  Eric Christopher  <echristo@redhat.com>
820
821         * config/mips/mips.c (mips_gimplify_va_arg_expr): Update for
822         truthvalue conversion removal.
823
824 2005-03-29  Ian Lance Taylor  <ian@airs.com>
825
826         PR bootstrap/14316
827         * collect2.c: Never include <vfork.h>.
828         (VFORK_STRING, vfork): Don't define.
829         (pid): Remove global variable.
830         (handler): Call raise instead of kill (getpid(), ...).
831         (collect_wait): Add pex parameter.  Change all callers.  Use
832         pex_get_status rather than pwait.
833         (do_wait): Add pex parameter.  Change all callers.
834         (collect_execute): Return struct pex_obj * rather than void.  Use
835         pex routines rather than pexecute.
836         (fork_execute): Get pex_obj from collect_execute, and pass it to
837         do_wait.
838         (scan_prog_file): Use pex routines rather than pipe/vfork/exec.
839         Only declare quit_handler if SIGQUIT is defined.
840         (scan_libraries): Likewise.
841         * collect2.h (collect_execute): Update declaration.
842         (collect_wait): Update declaration.
843         * tlink.c (tlink_execute): Get pex_obj from collect_execute, and
844         pass it to collect_wait.
845
846 2005-03-29  Joseph S. Myers  <joseph@codesourcery.com>
847
848         PR c/20672
849         * c-parser.c (c_parser_compound_statement_nostart): Give error
850         message for EOF instead of just setting parser->error.
851
852 2005-03-29  Dorit Naishlos  <dorit@il.ibm.com>
853
854         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard): Removed.
855         (slpeel_update_phi_nodes_for_guard1): New function.
856         (slpeel_update_phi_nodes_for_guard2): New function.
857         (slpeel_tree_peel_loop_to_edge): Call above new functions instead
858         of slpeel_update_phi_nodes_for_guard.
859         (vectorize_loops): Remove call to loop_closed_rewrite.
860         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Remove
861         assertion.
862
863 2005-03-29  Richard Sandiford  <rsandifo@redhat.com>
864
865         * config/m32r/little.h (TARGET_ENDIAN_DEFAULT): Delete.
866         (TARGET_LITTLE_ENDIAN): New macro.
867         * config/m32r/m32r.h (SUBTARGET_SWITCHES, target_flags)
868         (TARGET_RELAX_MASK, TARGET_DEBUG_MASK, TARGET_DEBUG)
869         (TARGET_ALIGN_LOOPS_MASK, TARGET_ALIGN_LOOPS)
870         (TARGET_LOW_ISSUE_RATE_MASK, TARGET_LOW_ISSUE_RATE)
871         (TARGET_BRANCH_COST_MASK, TARGET_BRANCH_COST, TARGET_M32RX_MASK)
872         (TARGET_M32RX, TARGET_M32R2_MASK, TARGET_M32R2, LITTLE_ENDIAN_BIT)
873         (TARGET_ENDIAN_DEFAULT, SUBTARGET_SWITCHES, TARGET_DEFAULT)
874         (TARGET_SWITCHES, m32r_model_string, m32r_sdata_string)
875         (m32r_cache_flush_trap_string, SUBTARGET_OPTIONS)
876         (TARGET_OPTIONS): Delete.
877         (M32R_MODEL_DEFAULT, M32R_SDATA_DEFAULT): Turn into enums.
878         (CACHE_FLUSH_TRAP): Turn into an integer.
879         (TARGET_LITTLE_ENDIAN): Define to 0 by default.
880         (INITIALIZE_TRAMPOLINE): Check m32r_cache_trap >= 0 to see if
881         -mflush-trap is in use.
882         * config/m32r/m32r.c (m32r_model_string, m32r_sdata_string)
883         (m32r_cache_flush_trap_string): Delete.
884         (m32r_model) Initialize to M32R_MODEL_DEFAULT.
885         (m32r_sdata): Likewise M32R_SDATA_DEFAULT.
886         (m32r_cache_trap): Likewise CACHE_FLUSH_TRAP.
887         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
888         (m32r_handle_option): New function.  Move -mflush-trap=, -mflush-func=,
889         -mmodel= and -msdata= handling from...
890         (m32r_init): ...here.
891         * config/m32r/m32r.opt: New file.
892
893 2005-03-29  Keith Besaw  <kbesaw@us.ibm.com>
894
895         * tree-ssanames.c (duplicate_ssa_name_ptr_info): New function.
896         (duplicate_ssa_name): Call duplicate_ssa_name_ptr_info.
897         * tree-vect-analyze.c (vect_object_analysis): additional parm
898         pass back a "struct ptr_info_def *" with the points-to info.
899         (vect_analyze_data_refs): set the STMT_VINFO_PTR_INFO for the
900         statement using info returned from vect_object_analysis.
901         * tree-vect-transform.c (update_vuses_to_preheader): New function.
902         (vect_create_data_ref_ptr): Remove updates to vars_to_rename
903         for virtual uses and defs when creating a replacement vector
904         reference.  Call duplicate_ssa_name_ptr_info to define points-to
905         info for vector pointer replacement using STMT_VINFO_PTR_INFO.
906         (vectorizable_store): copy_virtual_operands and update
907         definition statements.
908         (vectorizable_load): copy_virtual_operands.  Remove call to
909         mark_call_clobbered_vars_to_rename for call to "const" builtin.
910         * tree-vectorizer.c (vectorize_loops): Remove calls to
911         rewrite_into_ssa and bitmap_clear (vars_to_rename).
912         (new_stmt_vec_info): initialize STMT_VINFO_PTR_INFO for stmt.
913         * tree-vectorizer.h (_stmt_vec_info): add field ptr_info and
914         define macro STMT_VINFO_PTR_INFO for use in accessing.
915         * tree.h add export of duplicate_ssa_name_ptr_info.
916         * rs6000.c (altivec_init_builtins): Declare builtin function
917         __builtin_altivec_mask_for_load to be "const".
918
919 2005-03-29  Jakub Jelinek  <jakub@redhat.com>
920
921         PR middle-end/20622
922         * cgraph.h (struct cgraph_varpool_node): Add alias field.
923         * cgraph.c (cgraph_varpool_assemble_pending_decls): Don't call
924         assemble_variable on aliases.
925         * varasm.c (assemble_alias): Set node->alias.
926         * toplev.c (wrapup_global_declarations): Don't call
927         rest_of_decl_compilation on aliases again.
928
929 2005-03-29  Paul Brook  <paul@codesourcery.com>
930
931         * config/arm/arm-protos.h (arm_dbx_register_number): Add prototype.
932         * config/arm/arm.c (arm_dbx_register_number): New function.
933         * config/arm/arm.h (IS_FPA_REGNUM, DBX_REGISTER_NUMBER): Define.
934
935 2005-03-29  Eric Botcazou  <ebotcazou@libertysurf.fr>
936
937         PR middle-end/20263
938         * varasm.c (make_decl_rtl) [ASM_DECLARE_REGISTER_GLOBAL]: Use
939         the DECL_NAME, not the DECL_ASSEMBLER_NAME.
940
941 2005-03-29  Dale Johannesen <dalej@apple.com>
942
943         * Makefile.in (value-prof.o): New dependencies on $(DIAGNOSTIC_H)
944         $(TREE_H) and $(COVERAGE_H).
945         * coverage.c (compute_checksum): Use DECL_NAME not DECL_ASSEMBLER_NAME.
946         * opts.c (common_handle_option): Enable tree-based value transforms.
947         * toplev.c (process_options): Ditto.
948         * value-prof.h (struct histogram_value_t): Redefine. "Adjust" below
949         refers to references to this type.
950         * tree-flow.h: (struct stmt_ann_d): Add histograms field.
951         * rtl-profile.c (rtl_gen_interval_profiler): Adjust. Remove checks
952         for may_be_more, may_be_less.
953         (rtl_gen_pow2_profiler): Adjust.
954         (rtl_gen_one_value_profiler_no_edge_manip): Adjust.
955         (rtl_gen_one_value_profiler): Adjust.
956         (rtl_gen_const_delta_profiler): Adjust.
957         * tree-profile.c (tree_gen_interval_profiler): Implement.
958         (tree_gen_pow2_profiler): Ditto.
959         (tree_gen_one_value_profiler): Ditto.
960         (tree_profiling): New.
961         (pass_tree_profile): Reference it.
962         * value-prof.c: Include tree-flow.h, tree-flow-inline.h, diagnostic.h,
963         tree.h, gcov-io.h.
964         (insn_divmod_values_to_profile): Rename to
965         rtl_divmod_values_to_profile. Adjust.
966         (insn_values_to_profile): Rename to rtl_values_to_profile. Adjust.
967         (insn_prefetch_values_to_profile): Adjust.
968         (rtl_value_profile_transformations): Adjust.
969         (gen_divmod_fixed_value): Rename to rtl_divmod_fixed_value.
970         (gen_mod_pow2): Rename to rtl_mod_pow2.
971         (gen_mod_subtract): Rename to rtl_mod_subtract.
972         (divmod_fixed_value_transform): Rename to
973         rtl_divmod_fixed_value_transform.
974         (mod_pow2_value_transform): Rename to rtl_mod_pow2_value_transform.
975         (mod_subtract_transform): Rename to rtl_mod_subtract_transform.
976         (rtl_find_values_to_profile): Adjust.
977         (tree_value_profile_transformations): Implement.
978         (tree_divmod_values_to_profile): New.
979         (tree_values_to_profile): New.
980         (tree_divmod_fixed_value): New.
981         (tree_mod_pow2): New.
982         (tree_mod_subtract): New.
983         (tree_divmod_fixed_value_transform): New.
984         (tree_mod_pow2_value_transform): New.
985         (tree_mod_subtract_transform): New.
986         (tree_find_values_to_profile): Implement.
987         * profile.c (instrument_values):  Free histograms.
988         (compute_value_histograms): Adjust. Implement tree version.
989
990 2005-03-29  Uros Bizjak  <uros@kss-loka.si>
991
992         * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST> case.
993         * config/i386/i386.c (output_fix_trunc): Add new round_mode
994         variable.  Output "fldcw" depending on round_mode.
995         * config/i386/i386.md (UNSPEC_FIST): New.
996         (fistdi2, fistdi2_with_temp, fist<mode>2, fist<mode>2_with_temp):
997         New isns patterns to implement lrint and llrint built-ins as x87
998         intrinsic function.
999         (fistdi2, fist<mode>2 splitters): New splitters.
1000         (lrint<mode>2): New expanders.
1001
1002 2005-03-28  Ian Lance Taylor  <ian@airs.com>
1003
1004         * config/arc/arc.c (arc_output_function_epilogue): Pass prescan as
1005         0 when calling final_scan_insn.
1006
1007 2005-03-28  Jan Hubicka  <jh@suse.cz>
1008
1009         PR middle-end/20635
1010         * varasm.c (mark_decl_referenced): Do not mark extern inline functions
1011         as needed.
1012
1013         * tree-inline.c (estimate_num_insns_1): Use declaration to discover argument
1014         types where possible.
1015
1016 2005-03-26  Per Bothner  <per@bothner.com>
1017
1018         Make -f[no-]show-column also control non-cpp diagnostics.
1019         * c.opt (fshow-column): Move option from here ...
1020         * common.opt (fshow-column): ... to here.
1021         * diagnostic.c (diagnostic_build_prefix): Only print column number
1022         if flag_show_column.
1023
1024 2005-03-27  Steven Bosscher  <stevenb@suse.de>
1025
1026         * vax-protos.h (vax_output_int_move, vax_output_int_add,
1027         vax_output_conditional_branch): New prototypes.
1028         * vax.c (vax_output_int_move, vax_output_int_add): New functions,
1029         extracted from vax.md mov and add patterns.
1030         (vax_output_conditional_branch): New function to output conditional
1031         branch instructions.
1032         * vax.md: Use mode macros for arithmetic and mov patterns.
1033         Use code macros for the jump patterns.
1034
1035 2005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>
1036
1037         * Makefile.in (libbackend.o): Depend on version files;
1038         add custom generation command.
1039
1040 2005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>
1041
1042         PR target/20636
1043         * config/rs6000/rs6000.md (extendsfdf2_fpr): Check to make
1044         sure that we have a REG before getting its REGNO.
1045
1046 2005-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1047
1048         * builtin-types.def (BT_FN_STRING_CONST_STRING_SIZE): New.
1049         * builtins.def (BUILT_IN_STRNDUP): New.
1050
1051 2005-03-25  Pat Haugen  <pthaugen@us.ibm.com>
1052
1053         PR tree-optimization/20470
1054         * fold-const.c (fold_cond_expr_with_comparison): Recognize/fold
1055         ABS(x-y).
1056
1057 2005-03-25  Mike Stump  <mrs@apple.com>
1058
1059         * config/darwin.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Don't allow 0
1060         sized objects.
1061
1062 2005-03-25  Geoffrey Keating  <geoffk@apple.com>
1063
1064         * config/rs6000/darwin-fallback.c: Don't include <ucontext.h>.
1065         Use our own structure definitions.
1066
1067         * config/rs6000/rs6000.md (UNSPEC constants): Add UNSPEC_STFIWX.
1068         (fix_truncdfsi2): Allow registers or memory as destination.
1069         When TARGET_PPC_GFXOPT, generate simplified pattern.
1070         (fix_truncdfsi2_internal): Use define_insn_and_split.
1071         (fix_truncdfsi2_internal_gfxopt): New.
1072         (fctiwz): Don't confuse register allocation by giving it no choices.
1073         (stfiwx): New.
1074         * config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'Z'.
1075         (EXTRA_MEMORY_CONSTRAINT): Likewise.
1076         * config/rs6000/rs6000.c (indexed_or_indirect_operand): New.
1077         * config/rs6000/rs6000-protos.h (indexed_or_indirect_operand): New.
1078
1079 2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
1080
1081         * dominance.c (free_dominance_info): Speed up by freeing et
1082         data structures without maintaining other nodes.
1083         * et-forest.c (et_free_tree_force): New.
1084         * et-forest.h: Add a prototype for et_free_tree_force.
1085
1086         * tree.c (get_set_constructor_bits,
1087         get_set_constructor_bytes): Remove.
1088         * tree.h: Remove the corresponding prototypes.
1089
1090 2005-03-25  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
1091
1092         PR target/15491
1093         * vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs.
1094         (vax_rtx_costs): Return false when passed unsupported rtx's.  Handle
1095         FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE.  Fix costs for POST_INC,
1096         PRE_DEC, NEG and NOT.
1097
1098 2005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
1099
1100         * fold-const.c: Convert uses of fold (build (...)) to
1101         fold_buildN.
1102
1103 2005-03-25  Zdenek Dvorak  <dvorakz@suse.cz>
1104
1105         PR rtl-optimization/20249
1106         * cse.c (insert_regs): Do not record equivalence of registers in
1107         different modes.
1108
1109 2005-03-24  Kazu Hirata  <kazu@cs.umass.edu>
1110
1111         * emit-rtl.c (reverse_comparison): Remove.
1112         * rtl.h: Remove the corresponding prototype.
1113
1114 2005-03-24  James E Wilson  <wilson@specifixinc.com>
1115
1116         * doc/install.texi (--enable-altivec): Delete docs.
1117
1118 2005-03-24  David Edelsohn  <edelsohn@gnu.org>
1119
1120         * config/rs6000/predicates.md (easy_fp_constant): Return 0 for
1121         SFmode and DFmode before reload when
1122         flag_unsafe_math_optimizations not enabled.
1123
1124 2005-03-24  Geoffrey Keating  <geoffk@apple.com>
1125
1126         * c.opt (fvisibility-inlines-hidden): Allow for ObjC++.
1127
1128         * config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Add
1129         MASK_128BIT_LONG_DOUBLE, MASK_ALIGN_DOUBLE.
1130
1131 2005-03-24  Nathan Sidwell  <nathan@codesourcery.com>
1132
1133         * configure.ac (enable-checking): Add 'runtime' option.
1134         * doc/install.texi (enable-checking): Document 'runtime' checking.
1135         * tsystem.h (gcc_assert, gcc_unreachable): Define.
1136         * config.in: Regenerated.
1137         * configure: Regenerated.
1138
1139 2005-03-23  Uros Bizjak  <uros@kss-loka.si>
1140
1141         * optabs.h (enum optab_index): Remove OTI_llrint.
1142         (llrint_optab): Remove macro.
1143         * optabs.c (init_optabs): Remove llrint_optab initialization.
1144         * genopinit.c (optabs): Remove llrint_optab implementation.
1145         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LLRINT{,F,L}
1146         using lrint_optab.
1147
1148 2005-03-24  Alexandre Oliva  <aoliva@redhat.com>
1149
1150         PR rtl-optimization/20532
1151         * simplify-rtx.c (simplify_binary_operation_1): Protect from
1152         overflow when adding coefficients for PLUS or MINUS.
1153         (simplify_binary_operation_1): Handle CONST_DOUBLE exact power of
1154         two as multiplier.
1155
1156 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
1157
1158         * langhooks.h (truthvalue_conversion): Remove.
1159         * langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
1160         LANG_HOOKS_TRUTHVALUE_CONVERSION.
1161         * system.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Poison.
1162         * gimplify.c (gimple_boolify): Don't use truthvalue_conversion.
1163         * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
1164
1165 2005-03-23  Kazu Hirata  <kazu@cs.umass.edu>
1166
1167         * params.def: Fix a typo.
1168         * config/mips/mips.c: Follow the spelling convensions.
1169         * doc/invoke.texi: Fix typos.
1170
1171 2005-03-18  Dale Johannese  <dalej@apple.com>
1172
1173         * cp/tree.c (cp_tree_equal):  Handle SSA_NAME.
1174
1175 2005-03-23  Daniel Berlin  <dberlin@dberlin.org>
1176
1177         Fix PR tree-optimization/20601
1178
1179         * tree-ssa-pre.c (insert_aux): Add missing condition to
1180         constification.
1181
1182 2005-03-23  Ian Lance Taylor  <ian@airs.com>
1183
1184         * final.c (final_scan_insn): Don't remove no-op instructions.
1185         * reload1.c (reload): Remove simple no-op instructions even when
1186         not optimizing.
1187
1188 2005-03-23  Dorit Naishlos  <dorit@il.ib.com>
1189
1190         PR tree-optimization/20501
1191         * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Debug print
1192         reporting that peeling for alignment is applied moved to...
1193         * (vect_analyze_data_refs_alignment): Here.
1194
1195 2005-03-23  Ian Lance Taylor  <ian@airs.com>
1196
1197         * reorg.c (dbr_schedule): Remove #if 0 code to call final.
1198
1199 2005-03-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1200
1201         * config.gcc (alpha*-dec-osf[45]*): Remove target_cpu_default.
1202         Define TARGET_SUPPORT_ARCH except on Tru64 UNIX V4.0A.
1203
1204 2005-03-23  Hans-Peter Nilsson  <hp@axis.com>
1205
1206         * doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Adjust wording to not
1207         imply that this is called once, independent of asms in code.
1208         Adjust to now being pased output and input lists.  Mention helper
1209         function decl_overlaps_hard_reg_set_p.
1210         * hooks.c (hook_tree_tree_tree_tree_3rd_identity): Rename from
1211         hook_tree_tree_identity and to take three trees, returning third.
1212         * hooks.h (hook_tree_tree_tree_tree_3rd_identity): Adjust the
1213         prototype.
1214         * stmt.c: include hard-reg-set.h before tree.h.
1215         (decl_overlaps_hard_reg_set_p): New function, broken out from...
1216         (decl_conflicts_with_clobbers_p): Call
1217         decl_overlaps_hard_reg_set_p.
1218         (expand_asm_operands): Pass output and input lists in call to
1219         targetm.md_asm_clobbers.
1220         * target-def.h (TARGET_MD_ASM_CLOBBERS): Define as
1221         hook_tree_tree_tree_tree_3rd_identity.
1222         * target.h (struct gcc_target.md_asm_clobbers): Take three tree
1223         parameters.
1224         * tree.h [HARD_CONST] (decl_overlaps_hard_reg_set_p): Prototype.
1225         * config/i386/i386.c (ix86_md_asm_clobbers): Adjust to three
1226         parameters, first two unused.
1227         * config/cris/cris.c (cris_md_asm_clobbers): Adjust to added
1228         parameters.  Only add MOF to clobbers if there's no 'h' mentioned
1229         in constraint letters and MOF is not mentioned as a asm-declared
1230         register in neither of the input and output lists.
1231
1232 2005-03-23  DJ Delorie  <dj@redhat.com>
1233
1234         * optabs.c (expand_binop): Make sure the first subword's result
1235         gets stored.
1236
1237 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
1238
1239         * c-common.c (c_common_truthvalue_conversion): Adjust comment.
1240         Call c_common_truthvalue_conversion rather than
1241         lang_hooks.truthvalue_conversion.
1242         * c-convert.c (convert): Call c_objc_common_truthvalue_conversion.
1243         * c-objc-common.c (c_objc_common_truthvalue_conversion): Move to
1244         c-typeck.c.
1245         * c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Change to
1246         c_common_truthvalue_conversion.
1247         * c-parser.c (c_parser_paren_condition, c_parser_for_statement,
1248         c_parser_conditional_expression, c_parser_binary_expression): Call
1249         c_objc_common_truthvalue_conversion.
1250         * c-typeck.c (build_unary_op): Call
1251         c_objc_common_truthvalue_conversion.
1252         (build_conditional_expr): Do not call
1253         lang_hooks.truthvalue_conversion.
1254         (build_binary_op): Call c_common_truthvalue_conversion.
1255         (c_objc_common_truthvalue_conversion): Moved from
1256         c-objc-common.c.  Call default_function_array_conversion instead
1257         of default_conversion.
1258
1259 2005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
1260
1261         * c-common.h (default_conversion): Remove.
1262         (perform_integral_promotions): Add.
1263         * c-tree.h (default_conversion): Add.
1264         * c-typeck.c (perform_integral_promotions): New, split out from
1265         default_conversion.
1266         * c-common.c (check_case_value): Use perform_integral_promotions,
1267         not default_conversion.
1268         (c_add_case_label): Don't continue processing case label after
1269         found to be pointer.
1270
1271 2005-03-23  Mark Mitchell  <mark@codesourcery.com>
1272
1273         * gcc.c (do_spec_1): Do not add a -L path for a directory in
1274         the prefix list if we have already added a multilib directory
1275         based on that path.
1276         (main): Do not add MD_EXEC_PREFIX to the list of directories to
1277         search with -L.
1278
1279 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
1280
1281         * reload1.c (indirect_symref_ok, reload_obstack): Make them
1282         static.
1283         * reload.h: Remove the prototype for indirect_symref_ok.
1284
1285         * reload1.c (indirect_symref_ok): Make it global.
1286         * reload.h: Add a prototype for indirect_symref_ok.
1287
1288 2005-03-22  Kaz Kojima  <kkojima@gcc.gnu.org>
1289
1290         * config/sh/sh.md (ashlhi3): Rename to *ashlhi3_n and add a new
1291         ashlhi3 expander.
1292
1293 2005-03-22  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
1294
1295         * tree.h (DECL_IGNORED_P, DECL_IN_SYSTEM_HEADER): Clarify comments.
1296
1297 2005-03-22  Daniel Berlin  <dberlin@dberlin.org>
1298
1299         * c-opts.c (c_common_parse_file): Only start/end main source file
1300         if debug hooks says the writer wants it.
1301         * dbxout.c (dbx_debug_hooks): Add start_end_main_source_file
1302         member.
1303         (xcoff_debug_hooks): Ditto.
1304         * debug.c (do_nothing_hooks): Ditto.
1305         * debug.h (gcc_debug_hooks): Ditto.
1306         * dwarf2out.c (dwarf2_debug_hooks): Ditto.
1307         * sdbout.c (sdb_debug_hooks): Ditto.
1308         * vmsdbgout.c (vmsdbg_debug_hooks): Ditto.
1309
1310 2005-03-22  Mark Mitchell  <mark@codesourcery.com>
1311
1312         * doc/extend.texi: Deprecate C++ min/max operators.
1313
1314 2005-03-22  Zdenek Dvorak  <dvorakz@suse.cz>
1315
1316         * tree-ssa-loop-ivopts.c (determine_iv_cost): Do not try to preserve
1317         artificial original candidates.
1318
1319 2005-03-22  Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
1320             Jan Hubicka  <jh@suse.cz>
1321             Steven Bosscher <stevenb@suse.de>
1322
1323         * cgraphunit.c (cgraph_estimate_size_after_inlining): Compute
1324         call cost based on argument sizes.
1325         (cgraph_mark_inline_edge): Avoid inline unit from shrinking by
1326         inlining.
1327         * params.def: (max-inline-inssn-single): Set to 450.
1328         (max-inline-insns-auto): Set to 90.
1329         (max-inline-insns-recursive): Set to 450
1330         (max-inline-insns-recursive-auto): Set to 450.
1331         (large-function-insns): Set to 2700.
1332         (inline-call-cost): New parameter.
1333         * tree-inline.c (estimate_move_cost): New function.
1334         (estimate_num_insns_1): Compute move sizes costs by estimate_move_cost
1335         for non-gimple-regs, set cost to 0 for gimple-regs.  Compute call size
1336         based on arguments.
1337         * tree-inline.h (estimate_move_cost): Declare.
1338         * invoke.texi: (max-inline-inssn-single): Change default to 450.
1339         (max-inline-insns-auto): Change default to 90.
1340         (max-inline-insns-recursive): Change default to 450
1341         (max-inline-insns-recursive-auto): Change default to 450.
1342         (large-function-insns): Change default to 2700.
1343         (inline-call-cost): Document new parameter.
1344
1345 2005-03-22  Richard Sandiford  <rsandifo@redhat.com>
1346
1347         * config/i860/i860.h (target_flags, TARGET_XP, TARGET_SWITCHES)
1348         (TARGET_DEFAULT): Delete.
1349         * config/i860/i860.opt: New file.
1350
1351 2005-03-22  Richard Sandiford  <rsandifo@redhat.com>
1352
1353         * config/frv/frv-protos.h (frv_branch_cost_string, frv_branch_cost_int)
1354         (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
1355         (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
1356         (frv_sched_lookahead): Delete.
1357         * config/frv/frv.h (MASK_DEFAULT_ALLOC_CC): Move to frv.c.
1358         (target_flags, MASK_GPR_32, MASK_FPR_32, MASK_SOFT_FLOAT)
1359         (MASK_ALLOC_CC, MASK_DWORD, MASK_DOUBLE, MASK_MEDIA, MASK_MULADD)
1360         (MASK_LIBPIC, MASK_ACC_4,  MASK_PACK, MASK_LONG_CALLS)
1361         (MASK_ALIGN_LABELS, MASK_LINKED_FP, MASK_BIG_TLS, MASK_DEBUG_ARG)
1362         (MASK_DEBUG_ADDR, MASK_DEBUG_STACK, MASK_DEBUG, MASK_DEBUG_LOC)
1363         (MASK_DEBUG_COND_EXEC, MASK_NO_COND_MOVE, MASK_NO_SCC)
1364         (MASK_NO_COND_EXEC, MASK_NO_VLIW_BRANCH, MASK_NO_MULTI_CE)
1365         (MASK_FDPIC, MASK_INLINE_PLT, MASK_GPREL_RO, MASK_DEFAULT)
1366         (TARGET_GPR_32, TARGET_FPR_32, TARGET_SOFT_FLOAT, TARGET_ALLOC_CC)
1367         (TARGET_DWORD, TARGET_DOUBLE, TARGET_MEDIA, TARGET_MULADD)
1368         (TARGET_LIBPIC, TARGET_ACC_4, TARGET_DEBUG_ARG, TARGET_DEBUG_ADDR)
1369         (TARGET_DEBUG_STACK, TARGET_DEBUG, TARGET_DEBUG_LOC)
1370         (TARGET_DEBUG_COND_EXEC, TARGET_NO_COND_MOVE, TARGET_NO_SCC)
1371         (TARGET_NO_COND_EXEC, TARGET_NO_VLIW_BRANCH, TARGET_NO_MULTI_CE)
1372         (TARGET_NO_NESTED_CE, TARGET_FDPIC, TARGET_INLINE_PLT, TARGET_BIG_TLS)
1373         (TARGET_GPREL_RO, TARGET_PACK, TARGET_LONG_CALLS, TARGET_ALIGN_LABELS)
1374         (TARGET_LINKED_FP, TARGET_GPR_64, TARGET_FPR_64, TARGET_HARD_FLOAT)
1375         (TARGET_FIXED_CC, TARGET_COND_MOVE, TARGET_SCC, TARGET_COND_EXEC)
1376         (TARGET_VLIW_BRANCH, TARGET_MULTI_CE, TARGET_NESTED_CE, TARGET_ACC_8)
1377         (TARGET_SWITCHES, TARGET_OPTIONS, DEFAULT_CONDEXEC_TEMPS)
1378         (DEFAULT_BRANCH_COST, DEFAULT_CONDEXEC_INSNS): Delete.
1379         * config/frv/frv.c (frv_branch_cost_string, frv_branch_cost_int)
1380         (frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
1381         (frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
1382         (frv_sched_lookahead): Delete.
1383         (MASK_DEFAULT_ALLOC_CC): Moved from frv.h.
1384         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1385         (frv_handle_option): New function.  Move -mcpu= handling from...
1386         (frv_override_options): ...here.  Remove handling of other
1387         TARGET_OPTIONS.
1388         (frv_ifcvt_modify_tests): Check !TARGET_COND_EXEC instead of
1389         TARGET_NO_COND_EXEC and !TARGET_NESTED_CE to TARGET_NO_NESTED_CE.
1390         (frv_ifcvt_modify_multiple_tests): Likewise !TARGET_MULTI_CE
1391         and TARGET_NO_MULTI_CE.
1392         (frv_for_each_packet): Likewise TARGET_NO_VLIW_BRANCH and
1393         !TARGET_VLIW_BRANCH.
1394         * config/frv/frv.opt: New file.
1395
1396 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
1397
1398         * fold-const.c (fold_ternary): Take decomposed arguments of
1399         CALL_EXPR.
1400         (fold): Update a call to fold_ternary.
1401
1402         * fold-const.c (fold_build1, fold_build2, fold_build3): New.
1403         * tree.h: Add corresponding prototypes.
1404
1405 2005-03-22  Jakub Jelinek  <jakub@redhat.com>
1406
1407         PR target/20561
1408         * cfglayout.c (reemit_insn_block_notes): Don't put block notes in
1409         between jump table and its label.
1410         * final.c (shorten_branches): Handle notes in between ADDR_VEC
1411         resp. ADDR_DIFF_VEC and the label preceeding it.
1412         (final_scan_insn): Likewise.  Ensure ADDR_VEC resp. ADDR_DIFF_VEC
1413         is emitted in the right section.
1414
1415 2005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
1416
1417         * fold-const.c (fold_unary, fold_binary): Update comments
1418         about arguments.
1419
1420 2005-03-22  Hans-Peter Nilsson  <hp@axis.com>
1421
1422         PR rtl-optimization/20527
1423         * combine.c (can_combine_p) [AUTO_INC_DEC]: When INSN has an
1424         REG_INC note, test that the register also isn't mentioned in PRED
1425         or SUCC.
1426
1427 2005-03-22  Ben Elliston  <bje@au.ibm.com>
1428
1429         * dwarf2out.c (dwarf_type_encoding_name): Remove unused prototype
1430         and definition.
1431
1432 2005-03-21  Mike Stump  <mrs@apple.com>
1433
1434         * varasm.c (default_assemble_visibility): Remove extra ().
1435
1436 2005-03-21  Roger Sayle  <roger@eyesopen.com>
1437
1438         PR middle-end/20557
1439         * bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
1440         to determine whether a block can be duplicated, rather than test
1441         whether the block contains noncopyable insns ourselves.
1442
1443 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
1444
1445         * config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
1446         predicates.
1447
1448 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
1449
1450         * config/ip2k/ip2k.h (target_flags, TARGET_SWITCHES): Delete.
1451
1452 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
1453
1454         * config/fr30/fr30.h (TARGET_SMALL_MODEL_MASK, TARGET_SMALL_MODEL)
1455         (TARGET_DEFAULT, target_flags, TARGET_SWITCHES): Delete.
1456         * config/fr30/fr30.opt: New file.
1457
1458 2005-03-18  Daniel Berlin  <dberlin@dberlin.org>
1459
1460         Fix PR tree-optimization/20542
1461
1462         * tree-flow-inline.h (overlap_subvar): Move to here.
1463         * tree-ssa-operands.c: From here.
1464         * tree-flow.h (overlap_subvar): Declare.
1465         * tree-ssa-alias.c (add_pointed_to_var): Use overlap_subvar here.
1466         * tree-ssa-loop-im.c (is_call_clobbered_ref): Return proper answer
1467         for variables with subvars.
1468
1469 2005-03-21 Mostafa Hagog <mustafa@il.ibm.com>
1470
1471         PR middle-end/20177
1472         * ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
1473         * modulo-sched.c (const_iteration_count): Return on NULL
1474         pre-header.
1475         (print_node_sched_params): Return on NULL dump_file.
1476         (generate_reg_moves): Handle reg-anti dependencies and disregard
1477         closing branch when generating register moves.
1478         (sms_schedule): Mark the SMSed block dirty.
1479         * passes.c (rest_of_handle_sms): Call update_life_info for all
1480         basic-blocks.
1481         * testsuite/gcc.dg/20050321-1.c: New test.
1482
1483 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
1484
1485         * config/xtensa/lib1funcs.asm (__mulsi3): Use symbolic name for ACCLO.
1486         * config/xtensa/xtensa.md (movsi_internal, movhi_internal,
1487         movqi_internal): Likewise.
1488
1489 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
1490
1491         * config/xtensa/xtensa-protos.h: (xtensa_simm7, xtensa_uimm8,
1492         xtensa_uimm8x2, xtensa_uimm8x4, xtensa_ai4const, xtensa_lsi4x4,
1493         xtensa_b4const): Delete prototypes.
1494         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b, xtensa_b4constu,
1495         xtensa_mask_immediate, xtensa_mem_offset): Update prototypes.
1496         (xtensa_b4const_or_zero, xtensa_const_ok_for_letter_p,
1497         xtensa_extra_constraint): New prototypes.
1498         (add_operand, arith_operand, nonimmed_operand, mem_operand,
1499         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
1500         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
1501         move_operand, const_float_1_operand, fpmem_offset_operand,
1502         branch_operator, ubranch_operator, boolean_operator): Delete prototypes.
1503         * config/xtensa/xtensa.c (b4const_or_zero): Rename to ...
1504         (xtensa_b4const_or_zero): ...this.  Change return type to bool and
1505         argument type to HOST_WIDE_INT.
1506         (xtensa_simm8, xtensa_simm8x256, xtensa_simm12b,
1507         xtensa_mask_immediate): Likewise.
1508         (xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4, xtensa_b4const):
1509         Likewise.  Also make these functions static.
1510         (xtensa_simm7, xtensa_ai4const, xtensa_lsi4x4): Delete.
1511         (xtensa_const_ok_for_letter_p): New.
1512         (add_operand, arith_operand, nonimmed_operand, mem_operand,
1513         mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
1514         lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
1515         move_operand, const_float_1_operand, fpmem_offset_operand,
1516         branch_operator, ubranch_operator, boolean_operator): Move to
1517         predicates.md.
1518         (smalloffset_mem_p): Inline code from xtensa_lsi4x4.
1519         (xtensa_mem_offset): Change return type to bool.
1520         (xtensa_extra_constraint): New.
1521         (gen_int_relational): Update type of const_range_p function pointer.
1522         Use xtensa_b4const_or_zero.
1523         * config/xtensa/xtensa.h (CONST_OK_FOR_LETTER_P): Define to
1524         xtensa_const_ok_for_letter_p.  Update comments.
1525         (EXTRA_CONSTRAINT): Define to xtensa_extra_constraint.
1526         (PREDICATE_CODES): Delete.
1527         * config/xtensa/xtensa.md: Include predicates.md.
1528         * config/xtensa/predicates.md: New file.
1529
1530 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
1531
1532         * config/v850/v850-protos.h: Remove the prototypes for
1533         reg_or_int9_operand, reg_or_const_operand,
1534         pattern_is_ok_for_prepare, pattern_is_ok_for_dispose,
1535         reg_or_0_operand, reg_or_int5_operand, call_address_operand,
1536         movsi_source_operand, power_of_two_operand,
1537         not_power_of_two_operand, special_symbolref_operand,
1538         pattern_is_ok_for_prologue, pattern_is_ok_for_epilogue, and
1539         register_is_ok_for_epilogue.
1540         * config/v850/v850.c (reg_or_0_operand, reg_or_int5_operand,
1541         reg_or_int9_operand, reg_or_const_operand,
1542         call_address_operand, special_symbolref_operand,
1543         movsi_source_operand, power_of_two_operand,
1544         not_power_of_two_operand, register_is_ok_for_epilogue,
1545         pattern_is_ok_for_epilogue, pattern_is_ok_for_prologue,
1546         pattern_is_ok_for_dispose, pattern_is_ok_for_prepare): Move to
1547         predicates.md.
1548         * config/v850/v850.h (PREDICATE_CODES): Remove.
1549         * config/v850/v850.md: Include predicates.md.
1550         * config/v850/predicates.md: New.
1551
1552 2005-03-21  Zack Weinberg  <zack@codesourcery.com>
1553
1554         * Makefile.in (BASEVER, DEVPHASE, DATESTAMP)
1555         (BASEVER_c, DEVPHASE_c, DATESTAMP_c)
1556         (BASEVER_s, DEVPHASE_s, DATESTAMP_s, version): Set with :=.
1557         (itoolsdir, itoolsdatadir): Move definition above new first use.
1558         (install-itoolsdirs): New rule.
1559         (install-mkheaders): Depend on install-itoolsdirs, not
1560         install-include-dir.
1561
1562 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
1563
1564         * tree-into-ssa.c: Remove obsolete comments.
1565
1566 2005-03-21  Richard Guenther  <rguenth@gcc.gnu.org>
1567
1568         * tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
1569         unrolling if -fpeel-loops is specified, too.
1570         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
1571         Remove superfluous check for flag_unroll_loops.
1572
1573 2005-03-21  Uros Bizjak  <uros@kss-loka.si>
1574
1575         * optabs.h (enum optab_index): Add new OTI_lrint and OTI_llrint.
1576         (lrint_optab, llrint_optab): Define corresponding macros.
1577         * optabs.c (init_optabs): Initialize lrint_optab and llrint_optab.
1578         * genopinit.c (optabs): Implement lrint_optab using lrintsi2
1579         pattern and llrint_optab using llrintdi2 patterns.
1580         * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LRINT{,F,L}
1581         using lrint_optab and BUILT_IN_LLRINT{,F,L} using llrint_optab.
1582         (expand_builtin): Expand BUILT_IN_LRINT{,F,L} and
1583         BUILT_IN_LLRINT{,F,L} using expand_builtin_mathfn if
1584         flag_unsafe_math_optimizations is set.
1585
1586 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
1587
1588         * combine.c (combine_simplify_rtx, simplify_if_then_else,
1589         simplify_logical, if_then_else_cond, known_cond,
1590         simplify_comparison): Adjust calls to reverse_comparison.
1591         Don't use combine_reversed_comparison_code).
1592         (combine_reversed_comparison_code): Remove.
1593         (reversed_comparison): Using reversed_comparison_code, move it...
1594         * jump.c (reversed_comparison): ... here.
1595         * rtl.h (reversed_comparison): Add prototype.
1596
1597 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
1598
1599         * builtins.c (fold_builtin): Take decomposed arguments of
1600         CALL_EXPR.
1601         * fold-const.c (fold_ternary): Update a call to fold_builtin.
1602         * gimplify.c (gimplify_call_expr): Likewise.
1603         * tree-ssa-ccp.c (ccp_fold, ccp_fold_builtin): Likewise.
1604         * tree.h: Update the prototype of fold_builtin.
1605
1606 2005-03-21  Paolo Bonzini  <bonzini@gnu.org>
1607
1608         * rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit.
1609         * rtlhooks.c (gen_lowpart_no_emit_general): New.
1610         * rtlhooks-def.h (gen_lowpart_no_emit_general): Declare.
1611         (RTL_HOOKS_GEN_LOWPART_NO_EMIT): New.
1612         * simplify-rtx.c (simplify_binary_operation_1): Use it.
1613
1614 2005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
1615
1616         * builtins.c (fold_builtin_1): Take decomposed arguments of
1617         CALL_EXPR.
1618         (fold_builtin): Update a call to fold_builtin_1.
1619
1620 2005-03-21  Nathan Sidwell  <nathan@codesourcery.com>
1621
1622         PR other/20564
1623         * gcov.c (output_lines): Only output function block summary when
1624         outputting branch information.
1625         * doc/gcov.texi: Document format of preamble and additional block
1626         information lines.
1627
1628 2005-03-21  Richard Sandiford  <rsandifo@redhat.com>
1629
1630         * libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
1631         (LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
1632         the defaults false if BITS_PER_UNIT != 8.
1633         (SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
1634         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
1635         than BITS_PER_UNIT != 8.
1636         (L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
1637         (L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
1638         (L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
1639         #undefs.
1640         * libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
1641         (__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
1642
1643 2005-03-20  Roger Sayle  <roger@eyesopen.com>
1644
1645         PR middle-end/20539
1646         * fold-const.c (fold_binary): Fix type mismatch between
1647         TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
1648         (fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
1649         for non-truth-valued expressions.
1650
1651         * c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
1652         and FUNCTION_DECL in the main switch.
1653         <TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
1654         TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
1655         we also need to convert their operands to match.
1656         <TRUTH_NOT_EXPR>: Likewise.
1657
1658 2005-03-21  Joseph S. Myers  <joseph@codesourcery.com>
1659
1660         * c-common.c (lvalue_or_else): Replace by lvalue_error; only give
1661         diagnostic without checking whether an lvalue.
1662         * c-common.h (lvalue_p): Remove.
1663         (enum lvalue_use): Update comment.
1664         (lvalue_or_else): Replace by lvalue_error.
1665         * c-typeck.c (lvalue_p): Make static.
1666         (lvalue_or_else): New.  Call lvalue_error.
1667
1668 2005-03-21  Alan Modra  <amodra@bigpond.net.au>
1669
1670         * config/rs6000/rs6000.c (rs6000_parm_start): New function.
1671         (function_arg_advance): Use rs6000_parm_start.
1672         (function_arg, rs6000_arg_partial_bytes): Likewise.
1673
1674 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
1675
1676         * c-common.c (check_case_value): Adjust comment about stripping
1677         NOPs.
1678         (handle_vector_size_attribute): Don't strip NON_LVALUE_EXPR.
1679         * c-typeck.c (default_conversion, convert_arguments,
1680         build_modify_expr, convert_for_assignment, store_init_value,
1681         digest_init): Use STRIP_TYPE_NOPS instead of stripping nops
1682         manually.  Remove inaccurate comments.
1683
1684 2005-03-20  Roger Sayle  <roger@eyesopen.com>
1685             Joseph S. Myers  <joseph@codesourcery.com>
1686
1687         * varasm.c (do_assemble_alias): Restore comment describing function.
1688         Annotate the target parameter as potentially unused.
1689
1690 2005-03-20  Marek Michalkiewicz  <marekm@amelek.gda.pl>
1691
1692         PR target/18551
1693         * config/avr/avr.c (avr_output_function_prologue): Do not use
1694         current_function_name() in a label, use a local label instead.
1695
1696 2005-03-20  David Edelsohn  <edelsohn@gnu.org>
1697
1698         * config/rs6000/rs6000.c (rs6000_generate_compare): Test
1699         flag_finite_math_only, not flag_unsafe_math_optimizations.
1700
1701 2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
1702
1703         * builtins.c (fold_builtin_1): Update a call to
1704         targetm.fold_builtin.
1705         * hooks.c (hook_tree_tree_bool_null): Rename to
1706         hook_tree_tree_tree_bool_null.  Take one more argument of type
1707         tree.
1708         * hooks.h: Update the prototype of hook_tree_tree_bool_null.
1709         * target-def.h (TARGET_FOLD_BUILTIN): Define it as
1710         hook_tree_tree_tree_bool_null.
1711         * target.h (gcc_target): Update the prototype of fold_builtin.
1712         * config/alpha/alpha.c (alpha_fold_builtin): Take decomposed
1713         arguments of CALL_EXPR.
1714         * doc/tm.texi (TARGET_FOLD_BUILTIN): Update.  Mention the
1715         new prototype.
1716
1717 2005-03-20  Jan Hubicka  <jh@suse.cz>
1718
1719         * cgraph.h (cgraph_node): Add prev_clone pointer.
1720         * cgraph.c (cgraph_remove_node): Remove from doubly linked chain.
1721         (cgraph_clone_node): Produce doubly linked chain.
1722
1723 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
1724
1725         * c-common.c (handle_aligned_attribute, check_function_sentinel,
1726         get_nonnull_operand, handle_sentinel_attribute,
1727         check_function_arguments_recurse): Do not strip NOPS from
1728         INTEGER_CSTs.
1729         * c-decl.c (check_bitfield_type_and_width, build_enumerator):
1730         Likewise.
1731         * c-format.c (get_constant): Likewise.
1732         * c-parser.c (c_parser_postfix_expression): Likewise.
1733         * c-typeck.c (set_init_index): Likewise.
1734         (convert_arguments): Don't check for NOP_EXPR containing integer
1735         constant.
1736
1737 2005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
1738
1739         * builtins.c (fold_fixed_mathfn, fold_builtin_trunc,
1740         fold_builtin_floor, fold_builtin_ceil, fold_builtin_lround):
1741         Take decomposed arguments of CALL_EXPR.
1742         (fold_builtin_1): Update calls to the functions mentioned
1743         above.
1744
1745 2005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
1746
1747         * c-decl.c (check_bitfield_type_and_width): Require bit-field
1748         width to have integer type.
1749         (build_enumerator): Require enumerator value to have integer type.
1750
1751 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
1752
1753         * doc/extend.texi (__builtin_inf): Move statement about INFINITY
1754         to __builtin_inff.
1755
1756 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
1757
1758         * c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
1759         std=iso9899:199x): Correct descriptions.
1760
1761 2005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
1762
1763         * config.gcc: Consistently use solaris2.1[0-9]* instead of
1764         solaris2.1[0-9].
1765
1766 2005-03-19  Kazu Hirata  <kazu@cs.umass.edu>
1767
1768         * builtins.c (fold_builtin_memcpy): Take decomposed arguments
1769         of CALL_EXPR.
1770         (expand_builtin_memcpy, fold_builtin_1): Update calls to
1771         fold_builtin_memcpy.
1772
1773         * builtins.c (fold_trunc_transparent_mathfn): Take decomposed
1774         arguments of CALL_EXPR.
1775         (fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil,
1776         fold_builtin_found, fold_builtin_1): Update calls to
1777         fold_trunc_transparent_mathfn.
1778
1779 2005-03-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1780
1781         PR middle-end/20493
1782         * fold-const.c (fold_widened_comparison): Don't optimize casts of
1783         function pointers on targets that require function pointer
1784         canonicalization.
1785         (fold_sign_changed_comparison): Likewise.
1786
1787 2005-03-19  Bernd Schmidt  <bernd.schmidt@analog.com>
1788
1789         * combine.c (try_combine): When changing the mode of a hard reg, make
1790         sure that doing so is valid.
1791
1792 2005-03-19  Richard Sandiford  <rsandifo@redhat.com>
1793
1794         * config/avr/avr.c (avr_init_stack, avr_mcu_name): Make static.
1795         (TARGET_HANDLE_OPTION): Override default.
1796         (avr_handle_option): New function.
1797         * config/avr/avr.h (MASK_ALL_DEBUG, MASK_ORDER_1, MASK_INSN_SIZE_DUMP)
1798         (MASK_ORDER_2, MASK_NO_TABLEJUMP, MASK_INT8, MASK_NO_INTERRUPTS)
1799         (MASK_CALL_PROLOGUES, MASK_TINY_STACK, MASK_SHORT_CALLS)
1800         (TARGET_ORDER_1, TARGET_ORDER_2, TARGET_INT8, TARGET_NO_INTERRUPTS)
1801         (TARGET_INSN_SIZE_DUMP, TARGET_CALL_PROLOGUES, TARGET_TINY_STACK)
1802         (TARGET_NO_TABLEJUMP, TARGET_SHORT_CALLS, TARGET_ALL_DEBUG)
1803         (TARGET_SWITCHES, avr_init_stack, avr_mcu_name)
1804         (TARGET_OPTIONS): Delete.
1805         * config/avr/avr.opt: New file.
1806
1807 2005-03-18  2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
1808
1809         * config/m32r/m32r-protos.h: Remove the prototypes for
1810         call_address_operand, symbolic_operand, seth_add3_operand,
1811         cmp_int16_operand, uint16_operand, reg_or_int16_operand,
1812         reg_or_uint16_operand, reg_or_cmp_int16_operand,
1813         two_insn_const_operand, move_src_operand,
1814         move_double_src_operand, move_dest_operand,
1815         eqne_comparison_operator, signed_comparison_operator,
1816         large_insn_p, conditional_move_operand, carry_compare_operand,
1817         m32r_block_immediate_operand, extend_operand,
1818         reg_or_eq_int16_operand, int8_operand, and
1819         reg_or_zero_operand.
1820         * config/m32r/m32r.c (call_address_operand, symbolic_operand,
1821         seth_add3_operand, int8_operand, cmp_int16_operand,
1822         uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
1823         reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
1824         reg_or_zero_operand, two_insn_const_operand, move_src_operand,
1825         move_double_src_operand, move_dest_operand,
1826         eqne_comparison_operator, signed_comparison_operator,
1827         extend_operand, small_insn_p, large_insn_p,
1828         conditional_move_operand, carry_compare_operand,
1829         m32r_block_immediate_operand): Move to predicates.md.
1830         (MAX_MOVE_BYTES): Move to m32r.h.
1831         * config/m32r/m32r.h (PREDICATE_CODES): Remove.
1832         * config/m32r/m32r.md: Include predicates.md.
1833         * config/m32r/predicates.md: New.
1834
1835 2005-03-18  James E Wilson  <wilson@specifixinc.com>
1836
1837         PR c++/19769
1838         * dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
1839         origin.
1840
1841 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
1842
1843         * config/mn10300/mn10300-protos.h: Remove the prototypes for
1844         call_address_operand, const_8bit_operand.
1845         * config/mn10300/mn10300.c (call_address_operand,
1846         const_8bit_operand, const_1f_operand): Move to predicates.md.
1847         * config/mn10300/mn10300.h (PREDICATE_CODES): Remove.
1848         * config/mn10300/mn10300.md: Include predicates.md.
1849         * config/mn10300/predicates.md: New.
1850
1851 2005-03-18  Joseph S. Myers  <joseph@codesourcery.com>
1852
1853         * c-common.c, c-decl.c, c-format.c, c-typeck.c: Use %D for
1854         declarations in diagnostics and %E for identifiers, not %s.
1855
1856 2005-03-18  Jan Hubicka  <jh@suse.cz>
1857             Dale Johannesen  <dalej@apple.com>
1858
1859         * basic-block.h (scale_bbs_frequencies_int,
1860         scale_bbs_frequencies_gcov_type): Declare.
1861         * cfg.c (RDIV): New macro.
1862         (update_bb_frequency_for_threading): Fix.
1863         * basic-block.h (scale_bbs_frequencies_int,
1864         scale_bbs_frequencies_gcov_type): New.
1865         * cfgloopmanip.c (scale_bbs_frequencies): Kill.
1866         (scale_loop_frequencies, duplicate_loop_to_header_edge): Use
1867         scale_bbs_frequencies_int.
1868         * tree-ssa-loop-ch.c (copy_loop_headers): Fix profiling info.
1869
1870 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
1871
1872         * config/m32r/m32r-protos.h: Remove the prototypes for
1873         call_address_operand, symbolic_operand, seth_add3_operand,
1874         cmp_int16_operand, uint16_operand, reg_or_int16_operand,
1875         reg_or_uint16_operand, reg_or_cmp_int16_operand,
1876         two_insn_const_operand, move_src_operand,
1877         move_double_src_operand, move_dest_operand,
1878         eqne_comparison_operator, signed_comparison_operator,
1879         large_insn_p, conditional_move_operand, carry_compare_operand,
1880         m32r_block_immediate_operand, extend_operand,
1881         reg_or_eq_int16_operand, int8_operand, and
1882         reg_or_zero_operand.
1883         * config/m32r/m32r.c (call_address_operand, symbolic_operand,
1884         seth_add3_operand, int8_operand, cmp_int16_operand,
1885         uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
1886         reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
1887         reg_or_zero_operand, two_insn_const_operand, move_src_operand,
1888         move_double_src_operand, move_dest_operand,
1889         eqne_comparison_operator, signed_comparison_operator,
1890         extend_operand, small_insn_p, large_insn_p,
1891         conditional_move_operand, carry_compare_operand,
1892         m32r_block_immediate_operand): Move to predicates.md.
1893         (MAX_MOVE_BYTES): Move to m32r.h.
1894         * config/m32r/m32r.h (PREDICATE_CODES): Remove.
1895         * config/m32r/m32r.md: Include predicates.md.
1896         * config/m32r/predicates.md: New.
1897
1898         * config/pa/pa-protos.h: Add prototypes for magic_milli and
1899         shadd_constant_p.
1900         * config/pa/pa.c (reg_or_0_operand, call_operand_address,
1901         symbolic_operand, symbolic_memory_operand,
1902         reg_or_0_or_nonsymb_mem_operand, reg_before_reload_operand,
1903         indexed_memory_operand, move_dest_operand, move_src_operand,
1904         prefetch_cc_operand, prefetch_nocc_operand,
1905         reg_or_cint_move_operand, pic_label_operand, fp_reg_operand,
1906         arith_operand, arith11_operand, pre_cint_operand,
1907         post_cint_operan, arith_double_operand, ireg_or_int5_operand,
1908         ireg_operand, int5_operand, uint5_operand, int11_operand,
1909         uint32_operand, arith5_operand, and_operand, ior_operand,
1910         lhs_lshift_operand, lhs_lshift_cint_operand, arith32_operand,
1911         pc_or_label_operand, div_operand, plus_xor_ior_operator,
1912         shadd_operand, movb_comparison_operator,
1913         cmpib_comparison_operator): Move to predicates.md.
1914         (magic_milli, shadd_constant_p): Make it extern.
1915         * config/pa/pa.h (PREDICATE_CODES): Remove.
1916         * config/pa/pa.md: Include predicates.md.
1917         * config/pa/predicates.md: New.
1918
1919         * config/v850/v850.h (PREDICATE_CODES): Remove a nonexistent
1920         predicate.
1921
1922 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
1923
1924         * hooks.c, hooks.h, intl.c, opts.h, prefix.c, tree-gimple.c,
1925         config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
1926         config/alpha/freebsd.h, config/alpha/linux.h,
1927         config/alpha/netbsd.h, config/alpha/osf5.h,
1928         config/alpha/vms.h, config/arc/arc.c, config/arc/arc.h,
1929         config/h8300/h8300-protos.h, config/h8300/h8300.c,
1930         config/h8300/h8300.h, config/ia64/unwind-ia64.c,
1931         doc/cppopts.texi: Update copyright.
1932
1933 2005-03-18  Jan Hubicka  <jh@suse.cz>
1934
1935         PR middle-end/20225
1936         * cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
1937         too late.
1938         * varasm.c (find_decl_and_mark_needed): Mark needed only when not
1939         called too late.
1940
1941 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
1942
1943         * tree-into-ssa.c (find_idf): Use VEC_quick_push instead of
1944         VEC_safe_push.
1945
1946 2005-03-18  Paolo Bonzini  <bonzini@gnu.org>
1947
1948         * combine.c (gen_binary): Remove.
1949         (known_cond, simplify_shift_const, find_split_point,
1950         combine_simplify_rtx, simplify_if_then_else, simplify_set,
1951         simplify_logical, expand_field_assignment, extract_left_shift,
1952         force_to_mode, if_then_else_cond, apply_distributive_law,
1953         simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
1954         simplify_comparison, reversed_comparison): Replace with
1955         simplify_gen_binary, simplify_gen_relational or
1956         distribute_and_simplify_rtx.
1957         (distribute_and_simplify_rtx): New function.
1958
1959 2005-03-18  Alexey Neyman  <alex.neyman@auriga.ru>
1960             Paolo Bonzini  <gcc.gnu.org>
1961
1962         * calls.c (setjmp_call_p, special_function_p): Update comments
1963         at the head of the functions.
1964
1965 2005-03-18  Jan Hubicka  <jh@suse.cz>
1966
1967         * tree-cfg.c (fold_cond_expr_cond): Use boolean types for condition.
1968
1969         * cgraph.c (cgraph_remove_node): Avoid loop in code deciding whether
1970         function body should be released; do not proactively release function
1971         bodies in non-unit-at-a-time mode.
1972
1973 2005-03-18  Ralf Corsepius  <ralf.corsepius@rtems.org>
1974
1975         * config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
1976         mno-fp-ret-in-387 multilib variants.
1977
1978 2005-03-18  Richard Sandiford  <rsandifo@redhat.com>
1979
1980         * common.opt (m): Remove.
1981         * opts.c (handle_option): Pass 'm' options to set_target_switch if
1982         table lookup fails.
1983         (common_handle_option): Remove OPT_m case.
1984
1985 2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
1986
1987         * builtins.c (fold_builtin_bitop): Take decomposed arguments
1988         of CALL_EXPR.
1989         (fold_builtin_1): Update a call to fold_builtin_bitop.
1990
1991         * builtins.c (fold_builtin_signbit): Take decomposed arguments
1992         of CALL_EXPR.
1993         (fold_builtin_1): Update a call to fold_builtin_signbit.
1994
1995 2005-03-17  Dorit Naishlos  <dorit@il.ibm.com>
1996
1997         PR tree-optimization/20474
1998         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
1999         size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
2000
2001 2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
2002
2003         * config/h8300/h8300-protos.h: Remove prototypes for
2004         general_operand_src, general_operand_dst, single_one_operand,
2005         single_zero_operand, call_insn_operand,
2006         two_insn_adds_subs_operand, small_call_insn_operand,
2007         jump_address_operand, bit_operand, bit_memory_operand,
2008         stack_pointer_operand, const_int_gt_2_operand,
2009         const_int_ge_8_operand, const_int_qi_operand,
2010         const_int_hi_operand, incdec_operand, bit_operator,
2011         nshift_operator, eqne_operator, gtle_operator,
2012         gtuleu_operator, iorxor_operator.
2013         Add prototypes for h8sx_shift_type h8sx_classify_shift and
2014         h8300_ldm_stm_parallel.
2015         * config/h8300/h8300.c (h8sx_shift_type,): Move to
2016         h8300-protos.h.
2017         (SYMBOL_FLAG_FUNCVEC_FUNCTION, SYMBOL_FLAG_EIGHTBIT_DATA,
2018         SYMBOL_FLAG_TINY_DATA): Move to h8300.h.
2019         (h8300_ldm_stm_parallel): Make it extern.
2020         (h8300_ldm_parallel, h8300_stm_parallel,
2021         h8300_return_parallel, general_operand_src,
2022         general_operand_dst, h8300_dst_operand, h8300_src_operand,
2023         nibble_operand, reg_or_nibble_operand, single_one_operand,
2024         single_zero_operand, call_insn_operand,
2025         two_insn_adds_subs_operand, small_call_insn_operand,
2026         jump_address_operand, bit_operand, bit_memory_operand,
2027         stack_pointer_operand, const_int_gt_2_operand,
2028         const_int_ge_8_operand, const_int_qi_operand,
2029         const_int_hi_operand, incdec_operand, eqne_operator,
2030         gtle_operator, gtuleu_operator, iorxor_operator, bit_operator,
2031         h8sx_binary_memory_operator, h8sx_unary_memory_operator,
2032         h8sx_unary_shift_operator, h8sx_binary_shift_operator,
2033         nshift_operator): Move to predicates.md.
2034         * config/h8300/h8300.h (PREDICATE_CODES): Remove.
2035         * config/h8300/h8300.md: Include predicates.md.
2036         * config/h8300/predicates.md: New.
2037
2038 2005-03-17  Richard Henderson  <rth@redhat.com>
2039
2040         * config.gcc (ia64*-*-hpux*): Add extra_options.
2041         * config/ia64/hpux.h (SUBTARGET_SWITCHES): Remove.
2042         (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
2043         * config/ia64/ia64.c (ia64_fixed_range_string): Remove.
2044         (ia64_tls_size_string, ia64_tune_string): Remove.
2045         (ia64_tune): Init to PROCESSOR_ITANIUM2.
2046         (TARGET_DEFAULT_TARGET_FLAGS): New.
2047         (TARGET_HANDLE_OPTION): New.
2048         (ia64_override_options): Move options parsing ...
2049         (ia64_handle_option): ... here.  New.
2050         * config/ia64/ia64.h (target_flags, MASK_BIG_ENDIAN, MASK_GNU_AS,
2051         MASK_GNU_LD, MASK_NO_PIC, MASK_VOL_ASM_STOP, MASK_ILP32,
2052         MASK_REG_NAMES, MASK_NO_SDATA, MASK_CONST_GP, MASK_AUTO_PIC,
2053         MASK_INLINE_FLOAT_DIV_LAT, MASK_INLINE_FLOAT_DIV_THR,
2054         MASK_INLINE_INT_DIV_LAT, MASK_INLINE_INT_DIV_THR,
2055         MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, MASK_DWARF2_ASM,
2056         MASK_EARLY_STOP_BITS, TARGET_BIG_ENDIAN, TARGET_GNU_AS, TARGET_GNU_LD,
2057         TARGET_NO_PIC, TARGET_VOL_ASM_STOP, TARGET_ILP32, TARGET_REG_NAMES,
2058         TARGET_NO_SDATA, TARGET_CONST_GP, TARGET_AUTO_PIC,
2059         TARGET_INLINE_FLOAT_DIV_LAT, TARGET_INLINE_FLOAT_DIV_THR,
2060         TARGET_INLINE_INT_DIV_LAT, TARGET_INLINE_INT_DIV_THR,
2061         TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_INT_DIV, TARGET_INLINE_SQRT_LAT,
2062         TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT, TARGET_DWARF2_ASM,
2063         TARGET_EARLY_STOP_BITS): Remove.
2064         (TARGET_ILP32): Default false.
2065         (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS): Remove.
2066         (enum ia64_inline_type): New.
2067         (TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
2068         * config/ia64/ia64.md: Update for new definitions of
2069         TARGET_INLINE_INT_DIV, TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_SQRT.
2070         * config/ia64/ia64.opt: New file.
2071         * config/ia64/ilp32.opt: New file.
2072
2073 2005-03-17  H.J. Lu  <hongjiu.lu@intel.com>
2074
2075         PR target/18380
2076         * config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.
2077
2078 2005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
2079
2080         * config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1
2081         instead of MASK_H8300S.
2082         * config/h8300/h8300.h (target_flags, MASK_H8300S, MASK_MAC,
2083         MASK_INT32, MASK_ADDRESSES, MASK_QUICKCALL, MASK_SLOWBYTE,
2084         MASK_NORMAL_MODE, MASK_RELAX, MASK_H8300H, MASK_ALIGN_300,
2085         MASK_H8300SX, TARGET_INT32, TARGET_ADDRESSES,
2086         TARGET_QUICKCALL, TARGET_SLOWBYTE, TARGET_H8300H,
2087         TARGET_H8300XS, TARGET_NORMAL_MODE, TARGET_ALIGN_300,
2088         TARGET_SWITCHES): Remove.
2089         (TARGET_H8300S): Redefine interms of TARGET_H8300S_1 and
2090         TARGET_H8300SX.
2091         * config/h8300/h8300.opt: New.
2092
2093         * config/alpha/alpha.opt, config/arc/arc.opt,
2094         config/h8300/h8300.opt, config/mips/mips.opt: Add copyright
2095         notices.
2096
2097 2005-03-17  Ian Lance Taylor  <ian@airs.com>
2098
2099         * gmon.c: Remove.
2100
2101 2005-03-17  Richard Sandiford  <rsandifo@redhat.com>
2102
2103         * config/arc/arc.c (arc_cpu_string): Make static.  Default to "base"
2104         (arc_text_string, arc_data_string, arc_rodata_string): Make static.
2105         (TARGET_HANDLE_OPTION): Override default.
2106         (arc_handle_option): New function.
2107         (arc_init): Remove code to set arch_cpu_string.
2108         * config/arc/arc.h (target_flags, TARGET_MASK_MANGLE_CPU)
2109         (TARGET_MANGLE_CPU, TARGET_MASK_MANGLE_CPU_LIBGCC)
2110         (TARGET_MANGLE_CPU_LIBGCC, TARGET_MASK_ALIGN_LOOPS, TARGET_ALIGN_LOOPS)
2111         (TARGET_MASK_BIG_ENDIAN, TARGET_BIG_ENDIAN, TARGET_MASK_NO_COND_EXEC)
2112         (TARGET_NO_COND_EXEC, TARGET_SWITCHES, TARGET_DEFAULT)
2113         (SUBTARGET_SWITCHES, arc_cpu_string, arc_text_string, arc_data_string)
2114         (arc_rodata_string, TARGET_OPTIONS): Delete.
2115         * config/arc/arc.opt: New file.
2116
2117 2005-03-17  Richard Henderson  <rth@redhat.com>
2118
2119         * doc/extend.texi (Weak Pragmas): New section.
2120         (attribute alias): Clarify that target must be in the same
2121         translation unit.
2122
2123 2005-03-17  Richard Henderson  <rth@redhat.com>
2124
2125         * config/alpha/alpha.opt: New file.
2126         * config/alpha/alpha.c (alpha_tune): New.  Rename all existing uses
2127         of alpha_cpu.
2128         (alpha_cpu_string, alpha_tune_string, alpha_tp_string,
2129         alpha_fprm_string, alpha_fptm_string): Make static.
2130         (alpha_tls_size_string): Remove.
2131         (alpha_handle_option): New.
2132         (override_options): Update for alpha_cpu/alpha_tune split.
2133         (alpha_file_start): Likewise.
2134         (TARGET_DEFAULT_TARGET_FLAGS): New.
2135         (TARGET_HANDLE_OPTION): New.
2136         * config/alpha/alpha.h (alpha_tune): Declare.
2137         (MASK_FP, MASK_FPREGS, TARGET_FPREGS, MASK_GAS, TARGET_GAS,
2138         MASK_IEEE_CONFORMANT, TARGET_IEEE_CONFORMANT, MASK_IEEE, TARGET_IEEE,
2139         MASK_IEEE_WITH_INEXACT, TARGET_IEEE_WITH_INEXACT, MASK_BUILD_CONSTANTS,
2140         TARGET_BUILD_CONSTANTS, MASK_FLOAT_VAX, TARGET_FLOAT_VAX, MASK_BWX,
2141         TARGET_BWX, MASK_MAX, TARGET_MAX, MASK_FIX, TARGET_FIX, MASK_CIX,
2142         TARGET_CIX, MASK_EXPLICIT_RELOCS, TARGET_EXPLICIT_RELOCS,
2143         MASK_SMALL_DATA, TARGET_SMALL_DATA, MASK_TLS_KERNEL, TARGET_TLS_KERNEL,
2144         MASK_SMALL_TEXT, TARGET_SMALL_TEXT, MASK_LONG_DOUBLE_128,
2145         TARGET_LONG_DOUBLE_128, MASK_CPU_EV5, TARGET_CPU_EV5, MASK_CPU_EV6,
2146         TARGET_CPU_EV6, MASK_SUPPORT_ARCH): Remove.
2147         (TARGET_SWITCHES, TARGET_OPTIONS): Remove.
2148         (TARGET_DEFAULT): Remove MASK_FP.
2149         (TARGET_FP): Redefined based on TARGET_SOFT_FP.
2150         (TARGET_SUPPORT_ARCH): Default on if HAVE_AS_EXPLICIT_RELOCS.
2151         (alpha_cpu_string, alpha_tune_string, alpha_fprm_string,
2152         alpha_fptm_string, alpha_tp_string, alpha_mlat_string,
2153         alpha_tls_size_string): Remove.
2154         * config/alpha/alpha.md (prefetch): Use alpha_cpu.
2155         (attribute tune): Rename from attribute cpu.
2156         * config/alpha/ev4.md: Update to match.
2157         * config/alpha/ev5.md, config/alpha/ev6.md: Likewise.
2158         * config/alpha/freebsd.h (TARGET_DEFAULT): Remove MASK_FP.
2159         * config/alpha/linux.h (TARGET_DEFAULT): Likewise.
2160         * config/alpha/netbsd.h (TARGET_DEFAULT): Likewise.
2161         * config/alpha/osf5.h (TARGET_DEFAULT): Likewise.
2162         * config/alpha/vms.h (TARGET_DEFAULT): Likewise.
2163
2164 2005-03-16  James E. Wilson  <wilson@specifixinc.com>
2165
2166         * config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
2167         and return without creating new state if before_nops_num is nonzero.
2168         * config/ia64/ia64.md (first_insn): New attribute.
2169         (alloc): Set it to yes.
2170
2171 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
2172
2173         * tree-vectorizer.c (new_vec_stmt_info): Initialize
2174         STMT_VINFO_SUBVARS to NULL.
2175         * tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
2176
2177 2005-03-16 Dale Johannesen  <dalej@apple.com>
2178
2179         * rtlanal.c (find_first_parameter_load):  Rewrite to
2180         return actual first param load or the call if none,
2181         instead of first in block, when not all loads exist.
2182
2183 2005-03-16  Roger Sayle  <roger@eyesopen.com>
2184
2185         * optabs.c (expand_copysign_absneg): Make static.
2186         * optabs.h (expand_copysign_absneg): Delete prototype.
2187         * config/rs6000/rs6000.md (copysigntf3): Delete pattern.
2188
2189 2005-03-16  Richard Henderson  <rth@redhat.com>
2190
2191         PR middle-end/15700
2192         * varasm.c (struct alias_pair): Rename from struct output_def_pair.
2193         (alias_pairs): Rename from output_defs.
2194         (find_decl_and_mark_needed): Split out from assemble_alias.
2195         (do_assemble_alias): New.
2196         (assemble_output_def): Remove.
2197         (finish_aliases_1, finish_aliases_2): New.
2198         (process_pending_assemble_output_defs): Remove.
2199         (assemble_alias): Defer aliases for which we don't yet have a
2200         non-external decl for the target symbol.
2201         * passes.c (rest_of_decl_compilation): Register variables with cgraph.
2202         * cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1.
2203         * toplev.c (compile_file): Use finish_aliases_2 instead of
2204         process_pending_assemble_output_defs.
2205         * tree.h (finish_aliases_1, finish_aliases_2): Declare.
2206         (process_pending_assemble_output_defs): Remove.
2207
2208 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
2209
2210         Fix PR tree-optimization/20489
2211
2212         * tree-ssa-alias.c (push_fields_onto_fieldstack): DTRT
2213         for empty structures.
2214
2215 2005-03-16  Daniel Berlin  <dberlin@dberlin.org>
2216
2217         Fix PR tree-optimization/20490
2218
2219         * tree-ssa-pre.c (create_expression_by_pieces): Use
2220         force_gimple_operand on result of fold.
2221
2222 2005-03-16  Andrew Pinski  <pinskia@physics.uc.edu>
2223
2224         * config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
2225         of closing parenthesis.
2226
2227 2005-03-16  Kazu Hirata  <kazu@cs.umass.edu>
2228
2229         * builtins.c (expand_movstr): Update a call to
2230         fold_builtin_strcpy.
2231         (expand_builtin_strncpy): Update a call to
2232         fold_builtin_strncpy.
2233         (fold_builtin_strcpy, fold_builtin_strncpy): Take decomosed
2234         arguments of CALL_EXPR.
2235         (fold_builtin_1): Update calls to fold_builtin_strcpy and
2236         fold_builtin_strncpy.
2237         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
2238         * tree.h: Update the prototypes of fold_builtin_strcpy and
2239         fold_builtin_strncpy.
2240
2241 2005-03-16  Steven Bosscher  <stevenb@suse.de>
2242             Dorit Naishlos  <dorit@il.ibm.com>
2243
2244         * tree-vect-analyze.c (vect_enhance_data_refs_alignment): Copy
2245         UNITS_PER_SIMD_WORD to a local variable to avoid a "division by zero"
2246         error.
2247
2248 2005-03-16  Steven Bosscher  <stevenb@suse.de>
2249
2250         * tree-inline.c (walk_type_fields, walk_tree,
2251         walk_tree_without_duplicates): Move from here...
2252         * tree.c: ...to here.
2253
2254 2005-03-15  Zack Weinberg  <zack@codesourcery.com>
2255
2256         * BASE-VER, DATESTAMP, DEV-PHASE: New files.
2257         * Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
2258         (BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
2259         (BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
2260         (version): Define using $(BASEVER_c).
2261         (Makefile, config.status, build/gcov-iov.o): No longer depends on
2262         version.c.
2263         (version.o): Depend on version files; add custom generation command.
2264         (prefix.o): Define BASEVER on command line.
2265         (s-iov): Depend on version files; adjust command.
2266         (TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
2267         Add gcc-vers.texi.
2268         (gcc-vers.texi): New rule.
2269         (doc/%.info, doc/%.dvi): Add -I . to command line.
2270         (doc/gccinstall.dvi): Likewise.
2271         (PACKAGE): Delete.  All uses replaced with "gcc".
2272         * aclocal.m4: Do not include gcc-version.m4.
2273         * configure.ac: Do not invoke TL_AC_GCC_VERSION.
2274         Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
2275         Set is_release based on contents of DEV-PHASE.
2276         Set gcc_version based on contents of BASE-VER.
2277         Define WIN32_REGISTRY_KEY only if the user overrode the default.
2278         * config.in, configure: Regenerate.
2279         * gccbug.in: Determine version of GCC in use at runtime.
2280         * gcov-iov.c: Get version number and development phase from
2281         command line, not by including version.c.
2282         * intl.c: Replace all uses of PACKAGE with "gcc".
2283         * libada-mk.in: Delete unused "gcc_version" variable.
2284         * prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
2285         * version.c: (VERSUFFIX): New hook for redistributors; adjust
2286         commentary to match.
2287         (version_string): Put together from pieces.
2288         * config/alpha/x-vms: Do not use $(gcc_version).
2289         * config/i386/t-nwld: Likewise.
2290         * doc/include/gcc-common.texi: Include gcc-vers.texi for
2291         version-GCC and DEVELOPMENT.
2292
2293 2005-03-15  Roger Sayle  <roger@eyesopen.com>
2294
2295         PR tree-optimization/17454
2296         * tree.c (tree_size): Add case for TREE_BINFO.
2297         * fold-const.c (fold_checksum_tree): Only clear the overloaded
2298         field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.
2299
2300 2005-03-15  Roger Sayle  <roger@eyesopen.com>
2301
2302         * optabs.c (expand_doubleword_mult): Avoid clobbering op0 and
2303         op1 whilst expanding the signed widenening multiply variant.
2304
2305 2005-03-15  Richard Sandiford  <rsandifo@redhat.com>
2306
2307         * toplev.c (display_target_options): Avoid unused variable warning if
2308         TARGET_SWITCHES and TARGET_OPTIONS are both undefined.
2309         * config/mips/mips.c (mips_arch_string, mips_tune_string): Make static.
2310         (mips_isa_string, mips_abi_string, mips_fix_vr4130_string): Delete.
2311         (mips_isa): Initialize to MIPS_ABI_DEFAULT.
2312         (mips_isa_info): New variable.
2313         (mips_parse_cpu): Remove the first argument and leave the caller
2314         to report errors.
2315         (TARGET_HANDLE_OPTION): Override default.
2316         (mips_handle_option): New function.  Move option validation code from...
2317         (override_options): ...here.  Update calls to mips_parse_cpu.
2318         * config/mips/mips.h (mips_arch_string, mips_tune_string)
2319         (mips_isa_string, mips_abi_string, TARGET_OPTIONS)
2320         (SUBTARGET_TARGET_OPTIONS): Delete.
2321         * config/mips/mips.opt (mabi=, march=, mflush-func=, mips)
2322         (mno-flush-func, mtune=): New options.
2323
2324 2005-03-15  Roger Sayle  <roger@eyesopen.com>
2325             Richard Henderson  <rth@redhat.com>
2326
2327         * real.c (c4x_single_format, c4x_extended_format): Provide values
2328         for signbit_ro for c4x's single and extended floating point formats.
2329         * optabs.c (expand_copysign): Use the floating point format's
2330         signbit_ro for expanding via expand_copysign_absneg, and it's
2331         signbit_rw field for expanding via expand_copysign_bit.
2332
2333 2005-03-15  Dorit Naishlos  <dorit@il.ibm.com>
2334
2335         * tree-vectorizer.h (unknown_alignment_for_access_p): Replaced by
2336         known_alignment_for_access_p.
2337         (known_alignment_for_access_p): New.
2338         (do_peeling_for_alignment): Field made int instead of bool and renamed
2339         to peeling_for_alignment.
2340         (LOOP_DO_PEELING_FOR_ALIGNMENT): Renamed to LOOP_PEELING_FOR_ALIGNMENT.
2341         * tree-vect-analyze.c (vect_determine_vectorization_factor): New. This
2342         functionality used to be in vect_analyze_operations.
2343         (vect_analyze_operations): Code to determine vectorization factor was
2344         moved to vect_determine_vectorization_factor.
2345         (vect_enhance_data_refs_alignment): Update to correct alignment when it
2346         is known instead of -1.  Set LOOP_PEELING_FOR_ALIGNMENT to peeling
2347         factor.
2348         (vect_analyze_loop): Call vect_determine_vectorization_factor (used to
2349         be part of vect_analyze_operations).
2350         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Use fold when
2351         creating the guard condition, as the number of iterations may be
2352         constant.
2353         (slpeel_tree_peel_loop_to_edge): Use new name of
2354         LOOP_DO_PEELING_FOR_ALIGNMENT. Set it to 0 instead of false.
2355         * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Handle known
2356         alignment case more efficiently. Use LOOP_PEELING_FOR_ALIGNMENT.
2357         (vect_do_peeling_for_alignment): Use fold.
2358         (vect_transform_loop): Use new name of LOOP_DO_PEELING_FOR_ALIGNMENT.
2359
2360         (vect_update_inits_of_dr): Renamed to
2361         vect_update_init_of_dr.
2362         (vect_update_inits_of_drs): Use new name of vect_update_inits_of_dr.
2363         (vectorizable_store): Fix assertion to use == instead of =.
2364
2365 2005-03-15  Daniel Jacobowitz  <dan@codesourcery.com>
2366
2367         * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
2368         call_used_regs for wCG registers.
2369
2370 2005-03-15  Ulrich Weigand  <uweigand@de.ibm.com>
2371
2372         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
2373         for non-offsettable memory references to cope with outstanding reload
2374         replacements, take 2.
2375
2376 2005-03-15  Uros Bizjak  <uros@kss-loka.si>
2377
2378         PR target/18668
2379         * config/i386/i386.h (x86_fisttp): New.
2380         (TARGET_FISTTP): New macro.
2381         * config/i386/i386.c (x86_fisttp): Set for NOCONA.
2382         (output_fix_trunc): Add fisttp parameter.  Generate fisttp x87
2383         instruction when fisttp flag is set.
2384         * config/i386/i386-protos.h (output_fix_trunc): Change declaration.
2385
2386         * config/i386/i386.md (type attribute): Add fisttp.
2387         (unit attribute): Set to i387 for fisttp type.
2388         (X87MODEF, X87MODEI, SSEMODEF, SSEMODEI24): New mode macros.
2389         (fix_truncxfdi2, fix_truncxfsi2): Generate fisttp patterns for
2390         TARGET_FISTTP.
2391         (fix_truncdfdi2, fix_truncsfdi2, fix_truncdfsi2, fix_truncsfsi2):
2392         Generate fisttp patterns for TARGET_FISTTP. Implement using mode
2393         macros.
2394         (fix_truncxfhi2, fix_truncdfhi2, fix_truncsfhi2): Generate fisttp
2395         patterns for TARGET_FISTTP.  Enable patterns for
2396         (TARGET_FISTTP && !TARGET_SSE_MATH). Implement using mode macros.
2397         (fix_trunc<mode>_i387_fisttp_1, fix_trunc<mode>_i387_fisttp,
2398         fix_trunc<mode>_i387_fisttp_with_temp): New instruction patterns to
2399         implement fisttp x87 insn.
2400         (fix_trunc*_i387_fisttp splitters): New patterns.
2401         (*fix_truncdi_i387, *fix_truncsi_i387, *fix_trunchi_i387):
2402         Rename to *fix_trunc<mode>_i387_1.  Implement using mode macros.
2403         Disable patterns for TARGET_FISTTP.  Add comment about FLAGS_REG
2404         clobber.
2405         (fix_truncdi_memory, fix_truncdi_nomemory, fix_trunchi_nomemory):
2406         Rename to fix_trunc<mode>_i387 and fix_trunc<mode>_i387_with_temp.
2407         Implement using mode macros. Disable patterns for TARGET_FISTTP.
2408         (fix_truncsi_memory, fix_truncsi_nomemory, fix_trunchi_memory,
2409         fix_trunchi_nomemory): Rename to fix_trunc<mode>_i387 and
2410         fix_trunc<mode>_i387_with_temp. Implement using mode macros.
2411         Disable patterns for TARGET_FISTTP.
2412         (fix_trunc*_i387 splitters): Implement usign mode macros.
2413         (fix_truncdfdi_sse, fix_truncsfdi_sse, fix_truncdfsi_sse,
2414         fix_truncsfsi_sse): Disable for (TARGET_FISTTP && !TARGET_SSE_MATH).
2415         (fix_trunx*_sse peephole2s): Implement using mode macros.
2416
2417 2005-03-15  J"orn Rennecke <joern.rennecke@st.com>
2418
2419         PR rtl-optimization/20291
2420         * combine.c (try_combine): If splitting fails, re-try with
2421         original combined pattern, i.e. before clobber stripping.
2422
2423 2005-03-14  Eric Christopher  <echristo@redhat.com>
2424
2425         * config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
2426         STACK_GROWS_DOWNWARD.
2427
2428 2005-03-14  Roger Sayle  <roger@eyesopen.com>
2429
2430         * real.h (struct real_format): Split the signbit field into two
2431         two fields, signbit_ro and signbit_rw.
2432         * real.c (ieee_single_format, mips_single_format, ieee_double_format,
2433         mips_double_format, ieee_extended_motorola_format,
2434         ieee_extended_intel_96_format, ieee_extended_intel_96_round_53_format,
2435         ieee_extended_intel_128_format, ibm_extended_format,
2436         mips_extended_format, ieee_quad_format, mips_quad_format,
2437         vax_f_format, vax_d_format, vax_g_format, i370_single_format,
2438         i370_double_format, c4x_single_format, c4x_extended_format,
2439         real_internal_format): Update initializers for new field.
2440         * builtins.c (expand_builtin_signbit): Use signbit_ro field of the
2441         real_format structure.
2442         * optabs.c (expand_absneg_bit, expand_copysign): Use signbit_rw
2443         field of the real_format structure.
2444
2445 2005-03-14  Daniel Berlin <dberlin@dberlin.org>
2446
2447         Fix PR tree-optimization/20458
2448
2449         * tree-flow-inline.h (mark_call_clobbered): Don't fiddle
2450         DECL_EXTERNAL on STRUCT_FIELD tags.
2451         (clear_call_clobbered): Ditto.
2452         * tree-ssa-operands.c (note_addressable): Make sure the original
2453         variable doesn't slip into the addressable list if we have
2454         subvars.
2455         * tree-tailcall.c (suitable_for_tail_opt_p): Look at STRUCT_FIELD
2456         tags too.
2457
2458 2005-03-14  Geoffrey Keating  <geoffk@apple.com>
2459
2460         * doc/cppopts.texi (-fexec-charset): Add concept index entry.
2461         (-fwide-exec-charset): Likewise.
2462         (-finput-charset): Likewise.
2463         * doc/invoke.texi (Warning Options): Document -Wnormalized=.
2464         * c-opts.c (c_common_handle_option): Handle -Wnormalized=.
2465         * c.opt (Wnormalized): New.
2466
2467 2005-03-14  Devang Patel  <dpatel@apple.com>
2468
2469         * doc/invoke.texi: Add reference to Visibility document.
2470
2471 2005-03-14  Richard Sandiford  <rsandifo@redhat.com>
2472
2473         * config.gcc (mips*-*-*): Rename MASK_SPLIT_ADDRS to
2474         MASK_SPLIT_ADDRESSES.
2475         * config/mips/mips.h (target_flags, mips_fix_vr4130_string): Delete.
2476         (MASK_INT64, MASK_LONG64, MASK_SPLIT_ADDR, MASK_NO_FUSED_MADD)
2477         (MASK_EXPLICIT_RELOCS, MASK_MEMCPY, MASK_SOFT_FLOAT)
2478         (MASK_FLOAT64, MASK_ABICALLS, MASK_XGOT, MASK_LONG_CALLS)
2479         (MASK_64BIT, MASK_EMBEDDED_DATA, MASK_BIG_ENDIAN)
2480         (MASK_SINGLE_FLOAT, MASK_MAD, MASK_4300_MUL_FIX, MASK_MIPS16)
2481         (MASK_NO_CHECK_ZERO_DIV, MASK_BRANCHLIKELY)
2482         (MASK_UNINIT_CONST_IN_RODATA, MASK_FIX_R4000, MASK_FIX_R4400)
2483         (MASK_FIX_SB1, MASK_FIX_VR4120, MASK_VR4130_ALIGN)
2484         (MASK_FP_EXCEPTIONS, MASK_DIVIDE_BREAKS, MASK_PAIRED_SINGLE)
2485         (MASK_MIPS3D, MASK_SYM32, MASK_DEBUG, MASK_DEBUG_D)
2486         (MASK_MIPS_TFILE, TARGET_INT64, TARGET_LONG64, TARGET_FLOAT64)
2487         (TARGET_64BIT, TARGET_SPLIT_ADDRESSES, TARGET_DEBUG_MODE)
2488         (TARGET_DEBUG_D_MODE, TARGET_MEMCPY, TARGET_ABICALLS)
2489         (TARGET_XGOT, TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT)
2490         (TARGET_LONG_CALLS, TARGET_EMBEDDED_DATA)
2491         (TARGET_UNINIT_CONST_IN_RODATA, TARGET_BIG_ENDIAN)
2492         (TARGET_SINGLE_FLOAT, TARGET_DOUBLE_FLOAT, TARGET_MAD)
2493         (TARGET_FUSED_MADD, TARGET_4300_MUL_FIX, TARGET_CHECK_ZERO_DIV)
2494         (TARGET_DIVIDE_TRAPS, TARGET_BRANCHLIKELY, TARGET_FIX_SB1)
2495         (TARGET_FIX_R4000, TARGET_FIX_R4400, TARGET_FIX_VR4120)
2496         (TARGET_FIX_VR4130, TARGET_VR4130_ALIGN, TARGET_FP_EXCEPTIONS)
2497         (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D, TARGET_SYM32)
2498         (TARGET_EXPLICIT_RELOCS): Delete.
2499         (TARGET_SWITCHES, SUBTARGET_TARGET_SWITCHES): Delete.
2500         (TARGET_OPTIONS): Remove entry for -mfix-vr4130.
2501         * config/mips/mips.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
2502         (override_options): Set MASK_LONG64 if -mint64 is given and no
2503         -mlongXX option is.  Complain about -mint64 -mlong32.
2504         (override_options, CMP_BUILTINS, mips_bdesc, sb1_desc): Rename
2505         MASK_PAIRED_SINGLE to MASK_PAIRED_SINGLE_FLOAT.
2506         * config/mips/mips.opt: New file.
2507
2508 2005-03-14  Richard Sandiford  <rsandifo@redhat.com>
2509
2510         * config.gcc (extra_options): New variable for listing option files.
2511         Add ${cpu_type}/${cpu_type}.opt to it if that file exists.
2512         * configure.ac (extra_opt_files): New AC_SUBST variable.
2513         (tm_file_list, tm_include_list): Include options.h first.
2514         * configure: Regenerate.
2515         * Makefile.in (extra_opt_files, ALL_OPT_FILES): New variables.
2516         (s-options): Use $(ALL_OPT_FILES) instead of $(lang_opt_files)
2517         (s-options-h): New rule.
2518         (options.h): Depend on it.
2519         (TEXI_GCCINT_FILES): Add options.texi.
2520         * hooks.h (hook_bool_size_t_constcharptr_int_true): Declare.
2521         * hooks.c (hook_bool_size_t_constcharptr_int_true): New function.
2522         * target.h (gcc_target): Add default_target_flags and handle_option.
2523         * target-def.h (TARGET_DEFAULT_TARGET_FLAGS)
2524         (TARGET_HANDLE_OPTION): New macros.
2525         (TARGET_INITIALIZER): Include them.
2526         * opt-functions.awk (opt_args, nth_arg): New functions.
2527         (switch_flags): Handle the "Target" flag.
2528         (var_args): Delete.
2529         (var_name): Use opt_args and nth_arg.
2530         (var_set, var_ref): Likewise.  Handle "Mask" and "InverseMask".
2531         * opth-gen.awk: Declare target_flags.  Declare MASK_* and TARGET_*
2532         macros for the "Mask" and "InverseMask" options.
2533         * opts.h (cl_var_cond): New enum.
2534         (cl_option): Replace the "has_set_value" and "set_value" fields with
2535         "var_cond" and "var_value".
2536         (CL_TARGET): New macro.
2537         (option_enabled, print_filtered_help): Declare.
2538         (decode_options): Move definition.
2539         * opts.c (handle_option): Search for the original option before
2540         removing any "no-" prefix.  Handle CL_TARGET.  Adjust for the new
2541         var_cond and var_value fields.  Use targetm.handle_option to handle
2542         target options.
2543         (decode_options): Set target_flags to targetm.default_target_flags.
2544         (print_filtered_help): Make global.  Handle CL_TARGET.
2545         (option_enabled): New function.
2546         * toplev.c (target_switches): Guard with #ifdef TARGET_SWITCHES.
2547         (display_target_options, set_target_switch, print_switch_values)
2548         (default_pch_valid_p): Guard uses of target_switches with
2549         #ifdef TARGET_SWITCHES.  Also...
2550         (display_target_options): Display the CL_TARGET entries in cl_options.
2551         (set_target_option): Don't complain about the "" option when
2552         TARGET_SWITCHES is undefined.
2553         (print_switch_values): Use option_enabled.
2554         (default_pch_valid_p): Check cl_options[] when looking for something
2555         that has changed the value of target_flags.
2556         * c.opt: Remove documentation from top of file.
2557         * doc/gccint.texi: Add an "Options" chapter.  Include options.texi.
2558         * doc/sourecebuild.texi: Refer to the new options documentation
2559         instead of c.opt.  Document machine-specific .opt files.
2560         * doc/tm.texi (target_flags): Say that this variable is declared
2561         by options.h.
2562         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Document.
2563         (TARGET_SWITCHES, TARGET_OPTIONS): Refer to the option files as
2564         an alternative.
2565         * doc/options.texi: New file.
2566
2567 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
2568
2569         PR middle-end/18628
2570         * cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
2571         register.
2572
2573 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
2574
2575         PR c++/20280
2576         * gimplify.c (gimplify_cond_expr): Add fallback argument.  Use a
2577         temporary variable of pointer type if an lvalues is required.
2578         (gimplify_modify_expr_rhs): Request an rvalue from it.
2579         (gimplify_expr): Pass fallback on.
2580
2581 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
2582
2583         * cfgbuild.c: Update comments.
2584
2585 2005-03-14  Roger Sayle  <roger@eyesopen.com>
2586
2587         PR rtl-optimization/17236
2588         * optabs.c (expand_doubleword_mult): New helper function split out
2589         from expand_binop.  Permute the order in which instructions are
2590         emitted to minimize the number of simultaneously live registers.
2591         (expand_binop): Call expand_doubleword_mult to synthesize a double
2592         word multiplication.
2593
2594 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
2595
2596         * basic-block.h: Update the prototypes of cached_make_edge and
2597         rtl_make_eh_edge.
2598         * cfg.c (cached_make_edge): Take edge_cache representing one
2599         row of the adjacency matrix of edges.
2600         * cfgbuild.c (make_label_edge, rtl_make_eh_edge): Likewise.
2601         (make_edges): Initialize edge_cache to represent one row of
2602         the adjacency matrix of edges.
2603
2604 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
2605
2606         * tree-ssa-phiopt.c (minmax_replacement, blocks_in_phiopt_order):
2607         New functions.
2608         (tree_ssa_phiopt): Use blocks_in_phiopt_order and minmax_replacement.
2609         Remove unused removed_phis variable.
2610         (conditional_replacement): Use build1/build2.
2611         (abs_replacement): Use last_and_only_stmt and build1/build2.
2612
2613 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
2614
2615         * builtin-attrs.def (ATTR_NOVOPS, ATTR_NOVOPS_LIST,
2616         ATTR_PURE_NOTHROW_NOVOPS_LIST): New.
2617         * builtins.def (ATTR_MATHFN_FPROUNDING): Use NOVOPS.
2618         (BUILT_IN_PREFETCH): Set the NOVOPS attribute.
2619         * c-common.c (handle_novops_attribute): New function.
2620         (c_common_attribute_table): Add "no vops" entry.
2621         * c-decl.c (merge_decls): Copy DECL_IS_NOVOPS.
2622         * calls.c (flags_from_decl_or_type): Set ECF_NOVOPS.
2623         * tree-ssa-operands.c (get_call_expr_operands): Do not
2624         create virtual operands for calls with ECF_NOVOPS flag.
2625         * tree.h (DECL_IS_NOVOPS): New macro.
2626         (struct tree_decl): Add novops_flag.
2627         (ECF_NOVOPS): New constant.
2628
2629 2005-03-14  Uros Bizjak  <uros@kss-loka.si>
2630
2631         PR target/17688
2632         * config/i386/i386.c (x86_use_himode_fiop): New.
2633         (x86_use_simode_fiop): Rename from x86_use_fiop.
2634         * config/i386/i386.h (x86_use_himode_fiop): Declare.
2635         (TARGET_USE_HIMODE_FIOP): New.
2636         (x86_use_simode_fiop): Rename from x86_use_fiop.
2637         (TARGET_USE_SIMODE_FIOP): Rename from TARGET_USE_FIOP.
2638
2639         * config/i386/i386.md (X87MODEI12): New mode macro define.
2640         (*cmpfp_<mode>): Rename from *cmpfp_si.  Use X87MODEI12 mode macro
2641         to implement x87 FP compare with HImode input operands.
2642         (*fp_jcc_8<mode>_387, splitter): Rename from *fp_jcc_8_387.
2643         Use X87MODEI12 mode macro to handle HImode input operands.
2644         (*fop_sf_2<mode>_i387, *fop_sf_3<mode>_i387, *fop_df_2<mode>_i387,
2645         *fop_df_3<mode>_i387, *fop_xf_2<mode>_i387, *fop_xf_3<mode>_i387):
2646         Renamed from *fop_sf_2_i387, *fop_sf_3_i387, *fop_df_2_i387,
2647         *fop_df_3_i387, *fop_xf_2_i387, *fop_xf_3_i387. Use X87MODEI12 mode
2648         macro to implement x87 operators with HImode input operands.
2649         (fop splitters): Use X87MODEI12 mode macro to handle HImode
2650         input operands.
2651
2652 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
2653
2654         * tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
2655         integer_zerop.
2656         * tree-gimple.c (is_gimple_min_invariant): Consider overflowed
2657         constants invariant.
2658
2659 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
2660
2661         * basic-block.h (BB_VISITED): Removed.
2662         * cfganal.c (dfs_enumerate_from): Do not use BB_VISITED flag.
2663
2664 2005-03-14  Falk Hueffner  <falk@debian.org>
2665
2666         PR bootstrap/20424
2667         * config/alpha/alpha.c (alpha_fold_builtin_cmpbge): Fix typo.
2668
2669 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
2670
2671         * ggc-zone.c: Fix comment typos.
2672
2673         * alloc-pool.c, except.h, ggc-common.c, ggc-zone.c, ggc.h,
2674         stringpool.c, config/mips/mips-protos.h: Update copyright.
2675
2676 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
2677
2678         * config/rs6000/rs6000-protos.h: Replace "struct rtx_def *"
2679         throughout with its typedef, "rtx".
2680         * config/rs6000/rs6000.c: Likewise.  Formatting fixes.
2681         (rs6000_tls_symbol_ref_1): Remove inline keyword.
2682         * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Formatting.  Reorder
2683         regs in comment to match code.
2684
2685 2005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
2686
2687         * except.c (check_handled): Make it static.
2688         * except.h: Remove the corresponding prototype.
2689
2690         * function.c (get_func_frame_size): Make it static.
2691         * function.h: Remove the corresponding type.
2692
2693         * regclass.c (reg_class_superclasses, reg_class_subclasses):
2694         Make them static.
2695         * hard-reg-set.h: Remove the corresponding declarations.
2696
2697         * tree-cfg.c (verify_stmts): Check that
2698         bb_for_stmt (stmt) == bb for every PHI node and statement.
2699
2700 2005-03-14  Alan Modra  <amodra@bigpond.net.au>
2701
2702         * config.gcc: Remove excess indentation.
2703         (powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.
2704
2705 2005-03-13  Roger Sayle  <roger@eyesopen.com>
2706
2707         PR middle-end/19331
2708         * tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
2709         * fold-const.c (fold_sign_changed_comparison): Likewise.
2710         (fold_binary): Optimize comparisons against widened operands if
2711         the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.
2712
2713 2005-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
2714
2715         * config/sparc/sparc.c (struct_value_alias_set): New global variable.
2716         (sparc_override_options): Initialize it.
2717         (sparc_struct_value_rtx): Set it on the MEM to be returned.
2718
2719 2005-03-13  David Edelsohn  <edelsohn@gnu.org>
2720
2721         * config/rs6000/predicates.md (mem_or_easy_const_operand): Delete.
2722         (reg_or_none500mem_operand): New predicate.
2723         (zero_reg_mem_operand): New predicate.
2724         * config/rs6000/rs6000.md (extendsfdf2): Change operand1 predicate
2725         to reg_or_none500mem_operand.
2726         (extendsfdf2_fpr): Add MEM alternative.
2727         (extenddftf2_internal): Change operand2 predicate to
2728         zero_reg_mem_operand.
2729
2730 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
2731
2732         * ggc-zone.c: Rewritten.
2733
2734         * alloc-pool.c (dump_alloc_pool_statistics): Don't print statistics
2735         if there are none.
2736         * configure.ac: Define GGC_ZONE for --with-gc=zone.
2737         * config.in: Regenerated.
2738         * configure: Regenerated.
2739         * gengtype.c (write_types_process_field, write_func_for_structure):
2740         Pass new argument to gt_pch_note_object.
2741         * ggc-common.c (struct ptr_data): Add TYPE.
2742         (gt_pch_note_object): Take TYPE argument and save it.
2743         (call_count): Update call to ggc_pch_count_object.
2744         (call_alloc): Update call to ggc_pch_alloc_object.
2745         (gt_pch_save): Call ggc_pch_prepare_write after paddng the PCH
2746         file.
2747         * ggc-none.c (rtl_zone, garbage_zone, ggc_alloc_zone_stat): Delete.
2748         * ggc-page.c (rtl_zone, tree_zone, garbage_zone)
2749         (ggc_alloc_zone_stat): Delete.
2750         (ggc_pch_count_object, ggc_pch_alloc_object): Add TYPE argument.
2751         * ggc.h (gt_pch_note_object, ggc_pch_count_object)
2752         (ggc_pch_alloc_object): Update prototypes.
2753         (garbage_zone): Delete.
2754         (tree_zone, rtl_zone, ggc_alloc_zone_stat, ggc_alloc_zone): Move to
2755         GGC_ZONE conditional.  Update.  Change tree_zone and rtl_zone into
2756         pointers.
2757         (tree_id_zone): New variable.
2758         (ggc_alloc_cleared_zone): Remove unused.
2759         (ggc_alloc_zone): Define.
2760         (ggc_alloc_rtvec, ggc_alloc_tree): Update to use ggc_alloc_zone.
2761         * rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Use
2762         ggc_alloc_zone_stat.
2763         * stringpool.c (gt_pch_n_S): Update call to gt_pch_note_object.
2764         * tree.c (copy_node_stat, make_tree_binfo_stat, make_tree_vec_stat)
2765         (tree_cons_stat, build1_stat): Update call to ggc_alloc_zone_stat.
2766         (make_node_stat): Likewise.  Use tree_id_zone.
2767
2768 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
2769             Joseph S. Myers  <joseph@codesourcery.com>
2770
2771         * configure.ac: Check for MIPS TLS.
2772         * configure: Regenerated.
2773         * config/mips/mips-protos.h (enum mips_symbol_type): Add
2774         SYMBOL_TLS, SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL,
2775         SYMBOL_GOTTPREL, and SYMBOL_TPREL.
2776         * config/mips/mips.c (mips_regno_to_class): Handle V1_REG.
2777         (TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
2778         (mips_classify_symbol, mips_symbolic_constant_p)
2779         (mips_symbolic_address_p, mips_symbol_insns): Handle TLS symbols.
2780         (mips_tls_operand_p, mips_call_tls_get_addr)
2781         (mips_legitimize_tls_address, mips_cannot_force_const_mem)
2782         (mips_tls_symbol_ref_1): New functions.
2783         (mips_legitimize_address, mips_legitimize_const_move): Call
2784         mips_legitimize_tls_address.
2785         (override_options): Handle V1_REG and TLS symbols.  Disable TLS
2786         for MIPS16.
2787         * config/mips/mips.h (enum reg_class, REG_CLASS_NAMES)
2788         (REG_CLASS_CONTENTS, GR_REG_CLASS_P): Include V1_REG.
2789         (mips_char_to_class): Document V1_REG.
2790         (HAVE_AS_TLS): Provide default.
2791         * config/mips/mips.md (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): New
2792         constants.
2793         (load_got<mode>): Renamed from *load_got<mode>.  Allow when
2794         !TARGET_ABICALLS.
2795         (tls_get_tp_<mode>): New instruction.
2796
2797 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
2798
2799         * configure.ac: Update checks for target tools.
2800         * configure: Regenerated.
2801
2802 2005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
2803
2804         * varasm.c (decl_tls_model): Check flag_shlib instead of flag_pic.
2805
2806 2005-03-13  Roger Sayle  <roger@eyesopen.com>
2807
2808         * expmed.c (expand_mult): Use synthetic multiplication sequences for
2809         more classes of DImode multiplication by constant.  Allow both
2810         multiplication by small negative constants (by performing a
2811         multiplication by a positive constant and negating the result) and
2812         multiplications by large powers of two, by using a left shift.
2813
2814 2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
2815
2816         * tree-into-ssa.c (find_idf): Speed up by putting the indexes
2817         of basic blocks into work_stack.
2818
2819         * builtin-attrs.def, c-lex.c, c-pragma.h, reg-stack.c,
2820         config/mips/vr.h: Update copyright.
2821
2822         * c-decl.c (c_init_decl_processing): Remove useless calls to
2823         build_function_type.
2824
2825         * builtins.c (fold_trunc_transparent_mathfn,
2826         fold_fixed_mathfn, fold_builtin_atan, fold_builtin_trunc,
2827         fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
2828         fold_builtin_lround, fold_builtin_bitop, fold_builtin_memcpy,
2829         fold_builtin_strcpy, fold_builtin_strncpy,
2830         fold_builtin_signbit): Use TYPE (TYPE (fndecl)) instead of
2831         TREE_TYPE (exp).
2832
2833         * builtins.c (expand_builtin_mathfn_3): Remove local variable
2834         before_call.
2835
2836         * lambda-code.c (lambda_compute_auxillary_space): Remove local
2837         variable determinant.
2838
2839         * tree-cfg.c (group_case_labels): Remove local variable type.
2840
2841         * tree-ssa-live.c (build_tree_conflict_graph): Remove local
2842         variable ann.
2843
2844         * tree-ssa-phiopt.c (value_replacement): Remove local variable
2845         result.
2846
2847 2005-03-13  Andy Hutchinson  <HutchinsonAndy@netscape.net>
2848
2849         PR target/18251
2850         * config/avr/avr.md (movmemhi): Rewrite as RTL loop.
2851         (*movmemqi_insn): Delete.
2852         (*movmemhi): Delete.
2853
2854 2005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
2855
2856         * builtins.c (fold_builtin_classify): Take decomposed
2857         arguments of CALL_EXPR.
2858         (fold_builtin_1): Update a call to fold_builtin_classify.
2859
2860 2005-03-13  Joseph S. Myers  <joseph@codesourcery.com>
2861
2862         PR c/20402
2863         * c-parser.c (c_parser_struct_or_union_specifier): Don't fall
2864         through into call to parser_xref_tag after parse error.
2865         (c_parser_struct_declaration): Consistently return NULL_TREE on
2866         error.
2867
2868 2005-03-12  Daniel Berlin  <dberlin@dberlin.org>
2869
2870         * tree-flow-inline.h (ref_contains_array_ref): New function.
2871         (lookup_subvars_for_var): Ditto.
2872         (get_subvars_for_var): Ditto.
2873         (var_can_have_subvars): Ditto.
2874
2875         * tree-flow.h (mem_tag_kind): Add STRUCT_FIELD.
2876         (struct subvar): New type.
2877
2878         * tree-dfa.c (okay_component_ref_for_subvars): New function.
2879
2880         * tree-optimize.c (init_tree_optimization_passes): Call
2881         pass_create_structure_vars.
2882
2883         * tree-ssa-alias.c: Include vec.h.
2884         (init_alias_info): Don't auto-clear call clobbered on struct-field
2885         tags.
2886         (compute_flow_insensitive_aliasing): Handle subvars.
2887         (group_aliases): Handle STRUCT_FIELD aliases.
2888         (setup_pointers_and_addressables): Ditto.
2889         Don't mark variables non-addressable if they still have
2890         addressable subvars.
2891         Also mark subvars addressable when the real variable is marked
2892         addressable.
2893         (add_pointed_to_var): Try to prune the pointed-to set by only
2894         pointing to subvars when possible.
2895         Otherwise, make sure we set addresses_needed and pt_vars to
2896         properly include subvars.
2897         (bitpos_of_field): New function.
2898         (push_fields_onto_fieldstack): Ditto.
2899         (get_or_create_used_part_for): Ditto.
2900         (create_overlap_variables_for): Ditto.
2901         (find_used_portions): Ditto.
2902         (create_structure_vars): Ditto.
2903         (pass_create_structure_vars): New structure.
2904
2905         * tree-ssa-operands.c (finalize_ssa_v_must_defs): Remove assert.
2906         (get_expr_operands): Handle subvars.  Also try to turn
2907         COMPONENT_REF accesses into must-defs now that we can accurately
2908         portray it.
2909         (note_addressable): Try to only mark as addressable those subvars
2910         we know a COMPONENT_REF touches.
2911         (overlap_subvar): New function.
2912
2913         * tree-vect-analyze.c (vect_object_analysis): Add new parameter.
2914         Handle subvar storing.
2915         (vect_address_analysis): Update caller of vect_object_analysis.
2916
2917         * tree-vect-transform.c (vect_create_data_ref_ptr): Copy subvars.
2918
2919         * tree-vectorizer.h (struct _stmt_vec_info): Add subvars member.
2920         (STMT_VINFO_SUBVARS): New macro.
2921
2922         * common.opts: add flag_tree_salias.
2923
2924         * opts.c (decode_options): flag_tree_salias defaults to on.
2925
2926         * doc/invoke.texi: Document fdump-tree-svars and -ftree-salias.
2927
2928         * doc/tree-ssa.texi: Document structural alias analysis.
2929
2930 2005-03-12  Steven Bosscher  <stevenb@suse.de>
2931
2932         * tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node.
2933         * tree-ssa-dce.c (mark_stmt_necessary): Don't check for it.
2934         * tree-ssa-operands.c (get_expr_operands): Likewise.
2935         (get_expr_operands): Likewise for ERROR_MARK.
2936
2937 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
2938
2939         * tree-ssa.c (kill_redundant_phi_nodes): Remove local variable
2940         var.
2941
2942         * tree-ssa-phiopt.c (tree_ssa_phiopt): Remove local variable
2943         removed_phis.
2944
2945         * tree-ssa-pre.c (compute_avail): Remove local variable val.
2946         (mark_operand_necessary): Remove local variable ver.
2947
2948         * tree-vect-transform.c (vect_get_new_vect_var): Remove local
2949         variable prefix_len.
2950
2951         * value-prof.c (mod_subtract_transform): Remove local variable
2952         value.
2953
2954         * builtins.c (fold_builtin_exponent): Take decomposed
2955         arguments of CALL_EXPR.
2956         (fold_builtin_1): Update a call to fold_builtin_exponent.
2957
2958         * builtins.c (fold_builtin_logarithm): Take decomposed
2959         arguments of CALL_EXPR.
2960         (fold_builtin_1): Update a call to fold_builtin_logarithm.
2961
2962         * c-decl.c (c_init_decl_processing): Remove local variables
2963         ptr_ftype_void and ptr_ftype_ptr.
2964
2965         * gimplify.c (gimplify_expr): Remove local variables r0 and
2966         r1.
2967
2968         * reg-stack.c (move_for_stack_reg): Remove local variable
2969         push_insn.
2970         (compare_for_stack_reg): Remove local variable flags_user.
2971         (convert_regs_1): Remove local variable deleted.
2972
2973         * tree-if-conv.c (tree_if_convert_cond_expr): Remove local
2974         variable new_cond.
2975         (combine_blocks): Remove local variables exits and new_e.
2976
2977         * tree-inline.c (expand_call_inline): Remove local variable
2978         decl.
2979
2980         * tree-ssa-live.c (create_ssa_var_map,
2981         calculate_live_on_entry): Remove local variable snn.
2982
2983 2005-03-12  Geoffrey Keating  <geoffk@apple.com>
2984
2985         * c-lex.c (c_lex_with_flags): Add parameter to call to
2986         cpp_spell_token.
2987
2988 2005-03-11  Per Bothner  <per@bothner.com>
2989
2990         * c-tree.h (struct c_declarator): New id_loc field.
2991         * c-pragma.h (c_lex_with_flags): Take position reference.
2992         * c-lex.c (c_lex_with_flags): Set passed-in location from cpp token,
2993         iff USE_MAPPED_LOCATION. (Type doesn't match otherwise.)
2994         (c_lex): Pass dummy location to c_lex_with_flags.
2995         * c-parser.c (c_lex_one_token): Set c_token's location using
2996         c_lex_with_flags, instead of input_location, which might be "ahead".
2997         (c_parser_direct_declarator): Set declarator's id_loc from
2998         c_token's id_loc.
2999         * c-decl.c (grokdeclarator): Set DECL_SOURCE_LOCATION from
3000         declarator's id_loc, rather than probably-imprecise input_location.
3001         (build_id_declarator): Initialize c_declarator's id_loc field.
3002
3003 2005-03-11  Roger Sayle  <roger@eyesopen.com>
3004
3005         PR middle-end/20419
3006         * builtins.c (expand_builtin_signbit): Force the signbit's word
3007         into an integer register to avoid SUBREGs of floating point modes.
3008
3009 2005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
3010
3011         * cfglayout.c, loop-doloop.c, profile.c, target-def.h,
3012         target.h, targhooks.c, tracer.c, tree-ssa-loop-ch.c,
3013         tree-ssa-loop-unswitch.c, tree-ssa-loop.c, vec.c, vmsdbgout.c,
3014         config/m32r/m32r.md, config/xtensa/xtensa.h: Update copyright.
3015
3016 2005-03-11  David Edelsohn  <edelsohn@gnu.org>
3017
3018         PR rtl-optimization/20306
3019         * expr.c (emit_move_complex): Set try_int false if mode is
3020         MODE_COMPLEX_FLOAT and mov_optab exists for inner mode.  Only try
3021         emit_block_move if try_int is true.
3022
3023 2005-03-11  Richard Henderson  <rth@redhat.com>
3024
3025         PR target/20415
3026         * config/i386/mmx.md (vec_dupv4hi): Fix predicate.
3027         * config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
3028         to match.
3029
3030 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
3031
3032         * config/mips/mips.h (mips_fix_vr4130_string): Declare.
3033         (TARGET_FIX_VR4130): New macro.
3034         (TARGET_OPTIONS): Add -mfix-vr4130.
3035         (ISA_HAS_MACCHI): New macro.
3036         (ASM_SPEC): Add -mfix-vr4130.
3037         * config/mips/mips.c (mips_fix_vr4130_string): New variable.
3038         (override_options): Handle mips_fix_vr4130_string.
3039         (mips_avoid_hazards): Clear all_noreorder_p
3040         if we're working around VR4130 errata and the macc alternatives
3041         are not available.
3042         * config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
3043         (*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
3044         * config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
3045         (MULTILIB_DEFAULTS): Remove leading "march=".
3046         (DRIVER_SELF_SPECS): Likewise.  Make -mfix-vr4130 imply -march=vr4130
3047         if no architecture option is given.
3048         * config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
3049         VR4130 multilibs.
3050         (MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
3051         * doc/invoke.texi: Document -mfix-vr4130.
3052
3053 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
3054
3055         * config/mips/mips.c (override_options): Only warn about -mint64
3056         deprecation if TARGET_INT64.
3057
3058 2005-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3059
3060         * builtin-attrs.def (ATTR_NONNULL_LIST, ATTR_NOTHROW_NONNULL,
3061         ATTR_CONST_NOTHROW_NONNULL, ATTR_PURE_NOTHROW_NONNULL,
3062         ATTR_MALLOC_NOTHROW_NONNULL): New "nonnull" attribute lists which
3063         are non-specific regarding the nonnull parameter positions.
3064         (ATTR_NONNULL_1_2, ATTR_NONNULL_1_4, ATTR_NOTHROW_NONNULL_1_2,
3065         ATTR_NOTHROW_NONNULL_1_4, ATTR_CONST_NOTHROW_NONNULL_1,
3066         ATTR_PURE_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1_2,
3067         ATTR_MALLOC_NOTHROW_NONNULL_1): Delete.
3068
3069         * builtins.def: Use the non-specific "nonnull" attibute lists.
3070
3071 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
3072
3073         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
3074         single_pred_edge, single_succ, single_pred): Improve comments.
3075
3076 2005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
3077
3078         * basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
3079         single_pred_edge, single_succ, single_pred): New inline functions.
3080         * bb-reorder.c (rotate_loop, find_traces_1_round,
3081         add_labels_and_missing_jumps, fix_up_fall_thru_edges,
3082         duplicate_computed_gotos): Use the single_succ/pred functions.
3083         * cfganal.c (forwarder_block_p): Ditto.
3084         * cfgbuild.c (compute_outgoing_frequencies): Ditto.
3085         * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
3086         outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg,
3087         merge_seq_blocks): Ditto.
3088         * cfghooks.c (split_edge, tidy_fallthru_edges): Ditto.
3089         * cfglayout.c (fixup_reorder_chain): Ditto.
3090         * cfgloop.c (mark_single_exit_loops, update_latch_info,
3091         canonicalize_loop_headers, verify_loop_structure): Ditto.
3092         * cfgloopmanip.c (remove_path, unloop, loop_delete_branch_edge,
3093         mfb_update_loops, create_preheader, force_single_succ_latches,
3094         create_loop_notes): Ditto.
3095         * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
3096         force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge,
3097         commit_one_edge_insertion, purge_dead_edges,
3098         cfg_layout_can_merge_blocks_p): Ditto.
3099         * except.c (sjlj_emit_function_enter): Ditto.
3100         * flow.c (init_propagate_block_info): Ditto.
3101         * function.c (thread_prologue_and_epilogue_insns): Ditto.
3102         * gcse.c (find_implicit_sets, bypass_conditional_jumps,
3103         insert_insn_end_bb): Ditto.
3104         * ifcvt.c (merge_if_block, find_if_block, find_if_case_1,
3105         find_if_case_2): Ditto.
3106         * lambda-code.c (perfect_nestify): Ditto.
3107         * lcm.c (optimize_mode_switching): Ditto.
3108         * loop-doloop.c (doloop_modify): Ditto.
3109         * loop-init.c (loop_optimizer_init): Ditto.
3110         * loop-iv.c (simplify_using_initial_values): Ditto.
3111         * loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
3112         * loop-unswitch.c (unswitch_loop): Ditto.
3113         * modulo-sched.c (generate_prolog_epilog): Ditto.
3114         * predict.c (combine_predictions_for_insn, estimate_probability,
3115         tree_estimate_probability, last_basic_block_p,
3116         estimate_bb_frequencies): Ditto.
3117         * profile.c (branch_prob): Ditto.
3118         * regrename.c (copyprop_hardreg_forward): Ditto.
3119         * sched-rgn.c (is_cfg_nonregular, find_rgns, update_live): Ditto.
3120         * tracer.c (layout_superblocks): Ditto.
3121         * tree-cfg.c (tree_can_merge_blocks_p, tree_merge_blocks,
3122         cfg_remove_useless_stmts_bb, cleanup_control_flow,
3123         cleanup_control_expr_graph, disband_implicit_edges,
3124         tree_find_edge_insert_loc, bsi_commit_edge_inserts,
3125         tree_verify_flow_info, tree_make_forwarder_block,
3126         tree_forwarder_block_p, remove_forwarder_block,
3127         remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
3128         * tree-if-conv.c (tree_if_conversion): Ditto.
3129         * tree-mudflap.c (mf_build_check_statement_for): Ditto.
3130         * tree-ssa-dce.c (remove_dead_stmt): Ditto.
3131         * tree-ssa-dom.c (dom_opt_finalize_block): Ditto.
3132         * tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
3133         copy_loop_headers): Ditto.
3134         * tree-ssa-loop-im.c (loop_commit_inserts): Ditto.
3135         * tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Ditto.
3136         * tree-ssa-loop-manip.c (split_loop_exit_edge, ip_normal_pos,
3137         lv_adjust_loop_entry_edge, tree_ssa_loop_version): Ditto.
3138         * tree-ssa-loop-niter.c (simplify_using_initial_conditions): Ditto.
3139         * tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Ditto.
3140         * tree-ssa-phiopt.c (tree_ssa_phiopt, value_replacement): Ditto.
3141         * tree-ssa-pre.c (compute_antic_aux, insert_aux, init_pre): Ditto.
3142         * tree-ssa-threadupdate.c (redirect_edges): Ditto.
3143         * tree-tailcall.c (independent_of_stmt_p, find_tail_calls,
3144         eliminate_tail_call, tree_optimize_tail_calls_1): Ditto.
3145         * tree-vect-analyze.c (vect_analyze_loop_form): Ditto.
3146         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
3147         * tree-vectorizer.c (slpeel_update_phi_nodes_for_guard,
3148         slpeel_add_loop_guard): Ditto.
3149
3150 2005-03-11  James A. Morrison  <phython@gcc.gnu.org>
3151
3152         PR tree-optimization/15784
3153         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
3154         and -1 - A to ~A.
3155
3156         * stmt.c (expand_case): Don't change index_type.  Convert minval
3157         to the proper type.
3158
3159         PR tree-optimization/20130
3160         * fold-const.c (fold): Fold x * -1 into -x.
3161
3162 2005-03-11  Kaz Kojima  <kkojima@gcc.gnu.org>
3163
3164         PR rtl-optimization/20331
3165         * rtlanal.c (modified_between_p): Check its address first for MEM.
3166         (modified_in_p): Likewise.
3167
3168 2005-03-11  Joseph S. Myers  <joseph@codesourcery.com>
3169
3170         * config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.
3171
3172 2005-03-10  Steven Bosscher  <stevenb@suse.de>
3173
3174         * expr.c (expand_expr_real_1): If possible, use a conditional
3175         move for expanding MIN_EXPR and MAX_EXPR.
3176         Use temp for moving around rtx-en.
3177
3178 2005-03-10  Andrew Pinski  <pinskia@physics.uc.edu>
3179
3180         PR rtl-opt/20412
3181         * simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
3182         correct mode.
3183
3184 2005-03-10  Roger Sayle  <roger@eyesopen.com>
3185
3186         * builtins.c (expand_builtin_signbit): Extend to handle floating
3187         point modes wider than the largest integer type, using the
3188         operand_subword_force function to obtain the signbit's word.
3189
3190 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
3191
3192         PR target/20322
3193         * combine.c (try_combine): If recog_for_combine added CLOBBERs
3194         to NEWI2PAT, fail to combine if they are used by NEWPAT.
3195
3196 2005-03-10  Aldy Hernandez  <aldyh@redhat.com>
3197
3198         * doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.
3199
3200 2005-03-10  Kazu Hirata  <kazu@cs.umass.edu>
3201
3202         * tree-outof-ssa.c (analyze_edges_for_bb): Make the return
3203         type void.
3204         (perform_edge_inserts): Unconditionally call
3205         free_dominator_info.
3206
3207         * tree-outof-ssa.c (analyze_edges_for_bb): Update a comment.
3208
3209 2005-03-10  Bob Wilson  <bob.wilson@acm.org>
3210
3211         * config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.
3212
3213 2005-03-10  Nathan Sidwell  <nathan@codesourcery.com>
3214
3215         * bitmap.c (bitmap_copy): Remove manual loop unrolling.
3216
3217         * value-prof.c (rtl_find_values_to_profile): Use gcc_assert and
3218         gcc_unreachable.
3219         (rtl_register_value_prof_hooks,
3220         tree_value_profile_transformations,
3221         tree_register_value_prof_hooks): Likewise.
3222         * var-tracking.c (stack_adjust_offset_pre_post,
3223         variable_htab_free, variable_union, dataflow_set_different_2,
3224         count_uses, variable_was_changed, set_frame_base_location,
3225         set_variable_part, emit_note_insn_var_location, vt_emit_notes,
3226         vt_add_function_parameters): Likewise.
3227         * varasm.c (named_section_real, named_section, make_decl_rtl,
3228         asm_emit_uninitialised, assemble_integer, decode_addr_const,
3229         const_hash_1, compare_constant, copy_constant, force_const_mem,
3230         output_constant_pool_2, output_constant_pool_1, output_constant,
3231         output_constructor, make_decl_one_only, decl_tls_model,
3232         default_no_named_section, default_elf_select_section_1,
3233         default_unique_section_1): Likewise.
3234         * vec.c (vec_gc_o_reserve, vec_heap_o_reserve): Likewise.
3235         * vmsdbgout.c (addr_const_to_string): Likewise.
3236
3237         PR c++/20375
3238         * function.c (struct assign_parm_data_one): Remove last_named
3239         field.
3240         (assign_parm_find_data_types): Don't determine last_named.
3241         Reorder named_parm determination.
3242         (assign_parms): Only setup varargs on the last non-varadic
3243         parameter.
3244
3245 2005-03-10  Kazuhiro Inaoka  <inaoka.lazuhiro@renesas.com>
3246
3247         * config/m32r/m32r.md (load_sda_base_32): New pattern.  Loads
3248         sda base address on medium model.
3249
3250 2005-03-10  Zdenek Dvorak  <dvorakz@suse.cz>
3251
3252         * Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.
3253         * cfgloop.c (flow_loop_nodes_find): Export.
3254         * cfgloop.h (flow_loop_nodes_find, fix_loop_structure):
3255         Declare.
3256         * cfgloopmanip.c (fix_loop_structure): New function.
3257         * predict.c (predict_loops): Clean up the loops information.
3258         * tree-cfg.c (cleanup_tree_cfg_loop): New function.
3259         (tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect
3260         loop structure.
3261         * tree-flow.h (cleanup_tree_cfg_loop): Declare.
3262         (rewrite_into_loop_closed_ssa): Declaration changed.
3263         * tree-loop-linear.c (linear_transform_loops): Add argument to
3264         rewrite_into_loop_closed_ssa call.
3265         * tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
3266         * tree-ssa-loop-im.c (move_computations): Ditto.
3267         * tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
3268         * tree-vectorizer.c (vectorize_loops): Ditto.
3269         * tree-optimize.c: Include cfgloop.h.
3270         (execute_todo): Choose whether to call cleanup_tree_cfg or
3271         cleanup_tree_cfg_loop.
3272         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables,
3273         (tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call.
3274         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable
3275         cleanup_tree_cfg_loop call.
3276         * tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function.
3277         (find_uses_to_rename, rewrite_into_loop_closed_ssa): Support
3278         work on part of cfg.
3279
3280 2005-03-10  Jakub Jelinek  <jakub@redhat.com>
3281
3282         PR inline-asm/20314
3283         * gimplify.c (gimplify_asm_expr): Handle input/output constraints
3284         with multiple alternatives.
3285
3286         * stmt.c (parse_output_constraint): Fix a typo.
3287
3288 2005-03-09  Bob Wilson  <bob.wilson@acm.org>
3289
3290         * config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Use "no-transform"
3291         assembly directive instead of deprecated "no-generics".
3292
3293 2005-03-09  Ulrich Weigand  <uweigand@de.ibm.com>
3294
3295         * config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
3296         for non-offsettable memory references to cope with outstanding reload
3297         replacements.
3298         * config/s390/s390.md ("reload_outti"): Call find_replacement to
3299         avoid losing outstanding address reloads.
3300         ("reload_outdi", "reload_outdf"): Likewise.
3301
3302 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3303
3304         * builtins.c (fold_builtin_cbrt, fold_builtin_pow): Rearrange
3305         code.  Add more cbrt transformations.
3306
3307 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3308
3309         * fold-const.c (fold_unary_to_constant): Add FIX_ROUND_EXPR case.
3310
3311 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
3312
3313         * fold-const.c (fold_unary, fold_binary, fold_ternary): Return
3314         NULL_TREE when a given tree is not simplified.
3315         (fold): Return the original tree when any of the functions
3316         mentioned above NULL_TREE.
3317
3318         * fold-const.c (fold_unary, fold_binary): Take decomposed
3319         arguments, code, type, op0, and op1 in case of fold_binary.
3320         (fold): Update calls to fold_unary and fold_binary.
3321
3322 2005-03-09  Roger Sayle  <roger@eyesopen.com>
3323
3324         * builtins.c (fold_builtin_unordered_cmp): Change prototype to take
3325         a fndecl and an arglist instead of a CALL_EXPR, exp.
3326
3327 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
3328
3329         * cfglayout.c (fixup_reorder_chain): Remove old_bb.
3330
3331         * cfgrtl.c (cfg_layout_merge_blocks): Remove new_e.
3332
3333         * expr.c (expand_assignment): Remove orig_to_rtx.
3334
3335         * fold-const.c (int_const_binop): Remove no_overflow.
3336
3337         * ifcvt.c (noce_emit_move_insn): Remove inmode.
3338
3339         * loop-iv.c (get_biv_step_1): Remove lhs.
3340
3341         * loop-unroll.c (analyze_insns_in_loop): Remove preheader.
3342
3343         * real.c (real_nan): Remove neg.
3344
3345         * function.c (thread_prologue_and_epilogue_insns): Remove i
3346         and newinsn.
3347
3348         * tree-data-ref.c (array_base_name_differ_p): Remove ta and
3349         tb.
3350
3351         * tree-eh.c (tree_could_trap_p): Remove idx.
3352
3353         * tree-into-ssa.c (ann): Remove ann.
3354
3355         * tree-outof-ssa.c (num_nodes): Remove num_nodes.
3356
3357         * tree-sra.c (decide_block_copy): Remove inst_count.
3358
3359         * tree-ssa-alias.c (may_alias_p): Remove v_ann.
3360
3361         * tree-ssa-loop-im.c (lhs): Remove.
3362
3363         * cfgbuild.c (state, STATE, SET_STATE,
3364         BLOCK_USED_BY_TABLEJUMP, FULL_STATE): Move just before
3365         make_edges.
3366         (make_edges): Speed up by skipping blocks with BLOCK_ORIGINAL.
3367         (find_basic_blocks): Set the state of each basic block to
3368         BLOCK_NEW.
3369
3370 2005-03-08  Jeff Law  <law@redhat.com>
3371
3372         * tree-cfg.c (cleanup_control_flow): If removal of a computed
3373         goto results in the removal of edges in the CFG, then we need
3374         to recompute dominators.
3375
3376 2005-03-09  Ben Elliston  <bje@au.ibm.com>
3377
3378         * c-common.c (c_do_switch_warnings): Comment fix.
3379
3380 2005-03-08  Julian Brown  <julian@codesourcery.com>
3381
3382         * Patch from 2005-03-08 reverted for causing regressions and
3383         ppc-darwin bootstrap failure.
3384
3385 2005-03-08  Fariborz Jahanian <fjahanian@apple.com>
3386
3387         * config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn):
3388         Define the real function for ppc-darwin.
3389         * c-typeck.c (convert_arguments): Check for target-specific
3390         invalid argument call to unprototyped function.
3391         * target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
3392         New Macro.
3393         * target.h (invalid_arg_for_unprototyped_fn): New field
3394         in struct calls.
3395         * targhooks.c (hook_invalid_arg_for_unprototyped_fn): New
3396         default target hook.
3397         * targhooks.h (hook_invalid_arg_for_unprototyped_fn):
3398         Declare.
3399
3400 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
3401
3402         * c-typeck.c (constructor_stack, constructor_range_stack,
3403         initializer_stack): Make them static.
3404
3405         * cfg.c (rbi_pool): Make it static.
3406
3407         * gimple-low.c (lower_stmt_body): Make it static.
3408         * tree-flow.h: Remove the corresponding prototype.  Don't
3409         declare lower_data.
3410
3411         * sched-deps.c (cache_size): Make it static.
3412
3413         * stor-layout.c (lang_adjust_rli): Make it static.
3414
3415 2005-03-08  Julian Brown  <julian@codesourcery.com>
3416
3417         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
3418         from being used for symbols with vague linkage when
3419         HAVE_GAS_COMDAT_GROUP is true.
3420
3421 2005-03-08  J"orn Rennecke <joern.rennecke@st.com>
3422
3423         * jump.c (invert_jump_1): Don't call redirect_jump_1 with
3424         nlabel == JUMP_LABEL (jump).
3425
3426 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
3427
3428         * c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
3429         gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
3430         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
3431         tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.
3432
3433 2005-03-08  Alexey Neyman  <alex.neyman@auriga.ru>
3434
3435         PR c/14411
3436         * calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
3437         * c-common.c (handle_returns_twice): New function.
3438         (c_common_attribute_table): Declare eturns_twice' attribute.
3439         * doc/extend.texi: Document eturns_twice' attribute.
3440         * tree.h (DECL_IS_RETURNS_TWICE): New macro.
3441         (struct tree_decl): Add returns_twice_flag.
3442
3443 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
3444
3445         * tree-ssa-phiopt.c: Fix a comment typo.
3446
3447         * c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
3448         loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
3449         config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
3450         copyright.
3451
3452 2005-03-08  Richard Henderson  <rth@redhat.com>
3453
3454         * config/alpha/alpha.c (code_for_builtin): Replace special-case
3455         builtin codes with ctzdi2, clzdi2, popcountdi2.
3456         (struct alpha_builtin_def): Add is_const.
3457         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
3458         (alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
3459         (alpha_init_builtins): Init them.  Set nothrow and const attributes
3460         on builtins.
3461         (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot,
3462         alpha_fold_builtin_extxx, alpha_fold_builtin_insxx,
3463         alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh,
3464         alpha_fold_vector_minmax, alpha_fold_builtin_perr,
3465         alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
3466         alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
3467         alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
3468         alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
3469         (TARGET_FOLD_BUILTIN): New.
3470         * config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
3471         (UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
3472         (ffsdi2): Use ctz.
3473         (cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.
3474
3475 2005-03-08  Ira Rosen  <irar@il.ibm.com>
3476
3477         PR tree-optimization/20122
3478         * tree-vect-analyze.c (vect_object_analysis): Analyze initial
3479         condition of access function instead of base.
3480
3481 2005-03-07  Jeff Law  <law@redhat.com>
3482             Steven Bosscher  <stevenb@suse.de>
3483
3484         * tree-cfg.c (find_taken_edge_computed_goto): New function.
3485         (find_taken_edge): Call find_taken_edge_computed_goto as
3486         appropriate.  Allow any gimple invariant rather than just
3487         INTEGER_CST for VAL.
3488         (cleanup_control_flow): Cleanup a computed goto which has turned
3489         into a simple goto.
3490         (tree_merge_blocks): If block B has any forced labels, move
3491         them to the start of block A.
3492         * tree-ssa-dom.c (thread_across_edge): Allow threading across
3493         computed gotos as well.
3494         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
3495         removal of unnecessary computed gotos too.
3496         (lookup_redirection_data): Fix type of INSERT argument.  Callers
3497         updated.
3498
3499 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
3500
3501         * tree-ssa-phiopt.c: Update copyright.  Fix indentations.
3502         Remove trailing spaces.
3503
3504         * gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
3505         unshare_all_trees): Make them static.
3506         * tree-gimple.h: Remove the corresponding prototypes.
3507
3508         * diagnostic.h: Remove unused prototype
3509         debug_output_buffer.
3510         * modulo-sched.c: Remove unused prototype
3511         set_row_column_for_ps.
3512
3513         * tree-ssa-phiopt.c (tree_ssa_phiopt,
3514         replace_phi_edge_with_variable): Remove unused variable i.
3515
3516 2005-03-07  Per Bothner  <per@bothner.com>
3517
3518         * tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
3519
3520 2005-03-06  Andrew Pinski  <pinskia@physics.uc.edu>
3521
3522         PR tree-opt/17671
3523         * tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
3524         bbs on the COND_EXPR instead of the PHI_NODEs.
3525         (candidate_bb_for_phi_optimization): Remove.
3526         (replace_phi_with_stmt): Rename to ...
3527         (replace_phi_edge_with_variable): this and change so that we
3528         replace the phi argument instead of removing the PHI.
3529         (conditional_replacement): Change so we deal with PHI with more
3530         than two arguments.
3531         (value_replacement): Likewise.
3532         (abs_replacement): Likewise.
3533
3534 2005-03-07  Aldy Hernandez  <aldyh@redhat.com>
3535
3536         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
3537         output_e500_flip_gt_bit.
3538
3539         * config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
3540         as bit 31.
3541         (rs6000_generate_compare): Fix logic to look at the correct bits.
3542         (output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
3543         Look at GT bit.
3544         (rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
3545         gen_e500_flip_gt_bit.  Rename gen_move_from_CR_eq_bit to
3546         gen_move_from_CR_gt_bit.
3547
3548         * config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
3549         ("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
3550         (UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
3551
3552         * config/rs6000/spe.md ("e500_cr_ior_compare"): New.
3553         (E500_CR_IOR_COMPARE): New constant.
3554
3555 2005-03-08  Earl Chew <earl_chew@agilent.com>
3556             David Billinghurst <David.Billinghurst@riotinto.com>
3557
3558         * config/i386/host-cygwin.c: New file to support precompiled
3559         headers on cygwin
3560         * config/i386/x-cygwin: Use host-cygwin.c on cygwin host
3561         * config.host: Use above files for cygwin host.
3562
3563 2005-03-07  David Edelsohn  <edelsohn@gnu.org>
3564
3565         * fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
3566         ordering ops from earlier change.
3567
3568 2005-03-07  Per Bothner  <per@bothner.com>
3569
3570         Various fixes to allow us to again build if --enable-mapped-location:
3571         * c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
3572         unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
3573         * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
3574         local variable loc. Change logic appropriately.
3575         * tree-vect-transform.c (vect_finish_stmt_generation): Use
3576         EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.
3577         * c-parser.c (c_parser_for_statement): Initialize loc variable.
3578         * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
3579         DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
3580
3581 2005-03-07  Richard Sandiford  <rsandifo@redhat.com>
3582
3583         PR rtl-optimization/19683
3584         * reload1.c (choose_reload_regs): Pass the number of bits, not the
3585         number of bytes, to smallest_int_for_mode.  Fix arguments to
3586         REG_CANNOT_CHANGE_MODE_P.
3587
3588 2005-03-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
3589
3590         * reorg.c (relax_delay_slots): Check that the jump is
3591         conditional before trying to invert it.
3592
3593 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
3594
3595         * bb-reorder.c (max_entry_frequency, max_entry_frequency):
3596         Make them static.
3597
3598         * calls (stack_arg_under_construction): Make it static.
3599
3600         * flow.c (regs_live_at_setjmp): Make it static.
3601         * flow.h: Remove the corresponding prototype.
3602
3603         * reload1.c (reload_startobj, reload_firstobj,
3604         something_needs_operands_changed, reload_inherited,
3605         reload_inheritance_insn, reload_override_in,
3606         reload_spill_index): Make them static.
3607
3608         * recog.c (verify_changes): Make it static.
3609         * recog.h: Remove the corresponding prototype.
3610
3611         * cfgbuild.c (find_sub_basic_blocks): Remove.
3612         * basic-block.h: Remove the corresponding prototype.
3613         * cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
3614         in comments.
3615         * doc/cfg.texi: Don't mention find_sub_basic_blocks.
3616
3617         * tree-ssa-operands.c (check_build_stmt): Remove.
3618
3619         * stor-layout.c (set_alignment): Remove.
3620         * tree.h: Remove the corresponding prototype.
3621
3622         * tree-ssa-pre.c (has_abnormal_preds): Make it static.
3623
3624         * tree-ssa-dce.c (control_dependence_map,
3625         visited_control_parents): Make them static.
3626
3627         * cfghooks.c (verify_flow_info): Remove local variable
3628         num_bb_notes.
3629
3630         * cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
3631         last_bb_seen.
3632
3633         * loop-unswitch.c (unswitch_loop): Remove local variable src.
3634
3635 2005-03-07  David Billinghurst <David.Billinghurst@riotinto.com>
3636
3637         * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
3638
3639 2005-03-07  Joseph S. Myers  <joseph@codesourcery.com>
3640
3641         * config/ia64/hpux.h (LINK_SPEC): Add -z.
3642         * config/ia64/ia64.c (ia64_function_value): Return a REG not a
3643         PARALLEL for an empty structure.
3644
3645 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
3646
3647         * fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
3648
3649         * fold-const.c (fold_binary): Unroll the very first "for"
3650         loop.
3651
3652 2005-03-06  David Edelsohn  <edelsohn@gnu.org>
3653
3654         * config/rs6000/predicates.md (branch_comparison_operator): Remove
3655         redundant match_code test.
3656         (scc_comparison_operator): Swap match_operand and match_code
3657         tests.
3658         (branch_positive_comparison_operator): Same.
3659         (trap_comparison_operator): Use comparison_operator and swap with
3660         match_code test.
3661
3662 2005-03-06  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3663
3664         PR target/20288
3665         * config/avr/avr.c (print_operand): Add 'p' and 'r'.
3666         (out_movhi_r_mr): Read low byte of volatile MEM first.
3667         (out_movhi_mr_r): Write high byte of volatile MEM first.
3668
3669 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
3670
3671         * cselib.c (reg_values, reg_values_size): Make them static.
3672
3673         * cse.c (cse_reg_info_table): Make it static.
3674
3675         * fold-const.c (fold_unary): Use build1 instead of copy_node.
3676
3677 2005-03-06  Zdenek Dvorak  <dvorakz@suse.cz>
3678
3679         * cse.c (find_best_addr): Use canon_for_address.
3680
3681 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
3682
3683         * cse.c (fold_rtx_subreg, fold_rtx_mem): New.
3684         (fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
3685         SUBREG and MEM, respectively.
3686
3687         * fold-const.c (fold_binary): Use code instead of t.
3688
3689         * fold-const.c (optimize_minmax_comparison): Take decomposed
3690         arguments code, type, op0, and op1 instead of t.
3691         (fold_binary): Update a call to optimize_minmax_comparison.
3692
3693         * fold-const.c (fold_range_test): Take decomposed arguments
3694         code, type, op0, and op1 instead of t.
3695         (fold_binary): Update a call to fold_range_test.
3696
3697         * fold-const.c (fold_binary_op_with_conditional_arg): Take
3698         decomposed arguments code, type, op0, and op1 instead of t.
3699         (fold_binary): Update a call to fold_range_test.
3700
3701 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
3702
3703         * fold-const.c (fold_binary): Avoid directly using the original
3704         expression t as much as possible.
3705
3706 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
3707
3708         * c-semantics.c (build_stmt): Use TYPE_P instead of
3709         IS_NON_TYPE_CODE_CLASS.
3710         * tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
3711         (NON_TYPE_CHECK): Use TYPE_P instead of
3712         IS_NON_TYPE_CODE_CLASS.
3713
3714         * fold-const.c (fold): Remove handling of binary expressions.
3715
3716 2005-03-05  James A. Morrison  <phython@gcc.gnu.org>
3717
3718         * doc/c-tree.texi: Wrap comments in @r{}.
3719         * doc/cpp.texi: Likewise.
3720         * doc/cppinternals.texi: Likewise.
3721         * doc/extend.texi: Likewise.
3722         * doc/md.texi: Likewise.
3723         * doc/objc.texi: Likewise.
3724         * doc/sourcebuild.texi: Likewise.
3725         * doc/tm.texi: Likewise.
3726         * doc/tree-ssa.texi
3727
3728 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
3729
3730         * predict.c (apply_return_prediction): Standardize PHI chain
3731         walking.
3732         * tree-ssa.c (ssa_redirect_edge): Likewise.
3733
3734         * genattrtab.c, genemit.c, genoutput.c, genrecog.c,
3735         gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
3736         Update copyright.
3737
3738         * tree-phinodes.c (remove_phi_node): Drop the last argument.
3739         * tree-flow.h: Adjust the prototype for remove_phi_node.
3740         * lambda-code.c (perfect_nestify): Adjust a call to
3741         remove_phi_node.
3742         * tree-cfg.c
3743         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
3744         * tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
3745         Likewise.
3746         * tree-ssa-dce.c (remove_dead_phis): Likewise.
3747         * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
3748         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
3749         * tree-ssa.c (kill_redundant_phi_nodes): Likewise.
3750
3751         * combine.c (simplify_and_const_int): Use gen_int_mode instead
3752         of GEN_INT (trunc_int_for_mode (...)).
3753         * loop-iv.c (iv_number_of_iterations): Likewise.
3754         * postreload.c (reload_cse_move2add): Likewise.
3755         * simplify-rtx.c (simplify_const_unary_operation,
3756         simplify_const_binary_operation): Likewise.
3757         * stor-layout.c (get_mode_bounds): Likewise.
3758
3759         * fold-const.c (fold_binary): New.
3760         (fold): Call fold_binary on binary expressions.
3761
3762 2005-03-05  Richard Sandiford  <rsandifo@redhat.com>
3763
3764         * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
3765         * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
3766         (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
3767         (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
3768         (ASM_SPEC): Pass down -msym32 and -mno-sym32.
3769
3770 2005-03-04  Devang Patel  <dpatel@apple.com>
3771
3772         PR tree-optimization/18815
3773         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
3774         loops with zero exit edges.
3775
3776 2005-03-04  Devang Patel  <dpatel@apple.com>
3777
3778         * doc/invoke.texi: Remove reference to webpage that does not exist.
3779
3780 2005-03-04  John David Anglin  <dave.danglin@nrc-cnrc.gc.ca>
3781             Joseph S. Myers  <joseph@codesourcery.com>
3782
3783         PR c++/19797
3784         * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
3785         (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
3786         * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
3787         * pa.c (get_plabel): Change argument to symbol_ref.  Call
3788         maybe_get_identifier instead of get_identifier.
3789         (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
3790         (struct deferred_plabel): Replace name field with symbol field.
3791         (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
3792         ASM_OUTPUT_EXTERNAL_REAL is defined.
3793         (output_global_address): Use output_addr_const for output of all
3794         symbol_refs.
3795         (output_deferred_plabels): Use symbol_ref instead of name for address
3796         output.
3797         * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
3798         ASM_OUTPUT_SYMBOL_REF): New macros.
3799         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw.  Update
3800         comment.
3801         (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
3802         label.
3803
3804 2005-03-05  Joseph S. Myers  <joseph@codesourcery.com>
3805
3806         * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
3807         *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
3808
3809 2005-03-04  Jeff Law  <law@redhat.com>
3810
3811         * basic-block.h (rediscover_loops_after_threading): Declare.
3812         * tree-ssa-dom.c: Include cfgloop.h.
3813         (tree_ssa_dominator_optimize): Discover loops and some basic
3814         properties.  Remove forwarder blocks recreated by loop header
3815         canonicalization.  Also mark backedges in the CFG.
3816         * tree-ssa-threadupdate.c: Include cfgloop.h
3817         (rediscover_loops_after_threading): Define.
3818         (struct local_info): New field, JUMP_THREADED.
3819         (prune_undesirable_thread_requests): New function.
3820         (redirect_edges): Clear EDGE_ABNORMAL.  If edges were threaded
3821         then record that fact for the callers of redirct_edges.
3822         (thread_block): If BB has incoming backedges, then call
3823         prune_undesirable_thraed_requests.    Note when we are
3824         going to have to rediscover loop information.  Return a
3825         boolean indicating if any jumps were threaded.
3826         (thread_through_all_blocks): Bubble up boolean indicating
3827         if any jumps were threaded.
3828         * Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
3829         (tree-ssa-threadupdate.o): Similarly.
3830
3831 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
3832
3833         * fold-const.c (fold_ternary): Unroll the "for" loop to
3834         extract operands.
3835
3836 2005-03-04  Andrew Haley  <aph@redhat.com>
3837
3838         * unwind-dw2-fde-glibc.c (struct
3839         unw_eh_callback_data.check_cache): New field.
3840         (frame_hdr_cache): New.
3841         (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
3842         Cache frame header info.
3843
3844 2005-03-04  Richard Sandiford  <rsandifo@redhat.com>
3845
3846         * rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
3847         (print_c_condition): Declare.
3848         * read-rtl.c (ptr_loc): New structure.
3849         (ptr_locs, ptr_loc_obstack, joined_conditions)
3850         (joined_conditions_obstack): New variables.
3851         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
3852         (get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
3853         (join_c_conditions, print_c_condition): New functions.
3854         (apply_macro_to_string): Associate the new string with the same
3855         source location as the old one.
3856         (add_condition_to_string): Use join_c_conditions.
3857         (read_string): Use set_rtx_ptr_loc to record a filename and line
3858         number for the string.
3859         (read_rtx): Initialize the new variables above.
3860         * genattrtab.c (write_test_expr, write_attr_value): Use
3861         print_c_condition.
3862         * genconditions.c (write_header): Don't define MAYBE_EVAL.  Move its
3863         comment above the GCC_VERSION check.
3864         (write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
3865         Inline the definition of MAYBE_EVAL.
3866         * genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
3867         * genoutput.c (process_template): Likewise.
3868         * genpreds.c (write_predicate_subfunction): Likewise.
3869         (write_predicate_expr): Use print_c_condition.
3870         * genrecog.c (write_cond): Likewise.
3871         * gensupport.c (process_rtx): Use join_c_conditions to join the
3872         conditions of a define_insn_and_split.  Record a source location
3873         for the string after the "&&".
3874         (alter_test_for_insn): Use join_c_conditions.
3875
3876 2005-03-04  Andrew Pinski  <pinskia@physics.uc.edu>
3877
3878         Revert for now:
3879         2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
3880         PR tree-optimization/15784
3881         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
3882         and -1 - A to ~A.
3883
3884 2005-03-04  Ben Elliston  <bje@au.ibm.com>
3885
3886         * gcc.c (option_map): Add --coverage.
3887         (LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
3888         (cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
3889         * config/darwin.h: Pass -lgcov for `coverage'.
3890         * doc/invoke.texi (Debugging Options): Document --coverage.
3891
3892 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
3893
3894         * gcse.c (bypass_block): Use find_edge wherever possible.
3895
3896 2005-03-03  Daniel Berlin <dberlin@dbrelin.org>
3897
3898         Fix PR debug/20253
3899
3900         * c-opts.c (c_common_parse_file): Call start_source_file
3901         and end_source_file at the approriate times.
3902
3903         * dwarf2out.c (dwarf2out_finish): Don't auto-end
3904         the main file, it will be done for us now.
3905
3906 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
3907
3908         * fold-const.c (fold_ternary): New.
3909         (fold): Call fold_ternary on ternary expressions.  Remove
3910         handling of ternary expressions.
3911
3912 2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
3913
3914         PR tree-optimization/15784
3915         * fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
3916         and -1 - A to ~A.
3917
3918 2005-03-03  David Edelsohn  <edelsohn@gnu.org>
3919
3920         * config/rs6000/predicates.md (branch_comparison_operator):
3921         Convert from C block to conditional format.
3922
3923 2005-03-03  Jan Hubicka  <jh@suse.cz>
3924
3925         * tree-dfa.c (add_referenced_var): Don't walk initializer of external
3926         and non-constant public variables.
3927
3928 2005-03-03  Kazu Hirata  <kazu@cs.umass.edu>
3929
3930         * tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
3931         with LABEL_EXPR.
3932
3933         * cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
3934         EDGE_I.
3935
3936         * tree-phinodes.c (remove_phi_node): Clean up by factoring out
3937         calls to release_ssa_name and release_phi_node.
3938
3939         * fold-const.c (fold): Remove handling of unary expressions.
3940
3941         * fold-const.c (fold_unary): Avoid directly using the original
3942         expression t as much as possible.
3943
3944 2005-03-03  Roger Sayle  <roger@eyesopen.com>
3945             Andrew Pinski  <pinskia@physics.uc.edu>
3946
3947         * jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
3948         RETURN rtx, and not a LABEL_REF containing a NULL pointer.
3949
3950 2005-03-03  Hans-Peter Nilsson  <hp@axis.com>
3951
3952         Describe special registers SRP and MOF as allocatable registers.
3953         * config/cris/cris.c (cris_md_asm_clobbers): New function.
3954         (TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
3955         (cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
3956         TARGET_HAS_MUL_INSNS.
3957         (cris_print_operand) <case 'd'>: New case.
3958         <case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
3959         * config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
3960         define.
3961         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
3962         (REG_ALLOC_ORDER): Update for MOF.
3963         (enum reg_class): New members MOF_REGS, GENERAL_REGS and
3964         SPECIAL_REGS.
3965         (GENERAL_REGS): No longer a define of ALL_REGS.
3966         (REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
3967         (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
3968         Adjust accordingly.
3969         (CRIS_SPECIAL_REGS_CONTENTS): New macro.
3970         (REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
3971         (SECONDARY_RELOAD_CLASS): Define.
3972         (STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
3973         (FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
3974         (ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
3975         (STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
3976         (REGISTER_MOVE_COST): Define.
3977         (PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
3978         * config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
3979         (CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
3980         (CRIS_MOF_REGNUM): New define_constants.
3981         ("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
3982         special registers.
3983         ("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
3984         New patterns.
3985         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
3986         ("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
3987         Adjust for MOF being properly described as a register.
3988         (indir_to_reg_split): Name this split.  Conditionalize on the
3989         destination register being a general register.
3990         (movei): Conditionalize on on operands 0 and 1 having the same
3991         register class.
3992
3993 2005-03-03  Alan Modra  <amodra@bigpond.net.au>
3994
3995         PR target/20277
3996         * config/rs6000/rs6000.c (rs6000_override_options): Don't allow
3997         -mcpu to override any other explicitly given flags.
3998
3999 2005-03-02  J"orn Rennecke <joern.rennecke@st.com>
4000
4001         * recog.c (verify_changes, confirm_change_group): New functions,
4002         broken out of apply_change_group.
4003         (apply_change_group): Use them.
4004         * recog.h (verify_change, confirm_change_group): Declare.
4005         * rtl.h (redirect_jump_2): Declare.
4006         * jump.c (redirect_exp, invert_exp): Delete.
4007         (invert_exp_1): Take second parameter.  Return value.  Changed caller.
4008         (redirect_jump_2): New function, broken out of redirect_jump.
4009         (redirect_jump): Use redirect_jump_1 and redirect_jump_2.
4010         (invert_jump): Use invert_jump_1 and redirect_jump_2.
4011         * ifcvt.c (dead_or_predicable): Use redirect_jump_2.
4012
4013 2005-03-02  Geoffrey Keating  <geoffk@apple.com>
4014
4015         * varasm.c (named_section): Use xstrdup rather than doing it by
4016         hand.
4017
4018         * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
4019
4020 2005-03-02  Devang Patel  <dpatel@apple.com>
4021
4022         Undo PR tree-optimization/18815 fix.
4023
4024 2005-03-02  Devang Patel  <dpatel@apple.com>
4025
4026         PR tree-optimization/18815
4027         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
4028         loops with zero exit edges.
4029
4030 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4031
4032         * cfg.c (connect_src, connect_dest, disconnect_src,
4033         disconnct_dest): New.
4034         (unchecked_make_edge, remove_edge, redirect_edge_succ,
4035         redirect_edge_pred): Use the new functions.
4036
4037         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
4038         free_dominance_info only when needed.
4039
4040 2005-03-02  David Edelsohn  <edelsohn@gnu.org>
4041
4042         PR target/20276
4043         * config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
4044         (reg_or_sub_cint64_operand): Same.
4045
4046 2005-03-02  Jeff Law  <law@redhat.com>
4047
4048         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
4049         CFG_ALTERED in the main DOM iteration loop.
4050
4051 2005-03-02  Mark Mitchell  <mark@codesourcery.com>
4052
4053         PR c++/19916
4054         * varasm.c (initializer_constant_valid_p): Allow conversions
4055         between OFFSET_TYPEs.  Tidy.
4056
4057 2005-03-02  Hans-Peter Nilsson  <hp@axis.com>
4058
4059         * config/cris/cris.md ("return"): Remove epilogue delay list
4060         sanity check.
4061
4062 2005-03-02  Daniel Jacobowitz  <dan@codesourcery.com>
4063
4064         * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
4065         for Thumb.
4066         * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
4067
4068 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
4069
4070         * cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
4071         loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
4072         config/m68k/m68k.c, config/mips/mips.h,
4073         config/rs6000/rs6000-protos.h, doc/contrib.texi,
4074         doc/include/gcc-common.texi: Update copyright.
4075
4076         PR middle-end/18029 and PR middle-end/18030
4077         * expr.c (optimize_bitfield_assignment_op): Add a special case
4078         to handle BIT_IOR_EXPR and BIT_XOR_EXPR.
4079
4080         * fold-const.c (fold_unary): New.
4081         (fold): Call fold_unary on unary expressions.
4082
4083 2005-03-02  Richard Guenther  <rguenth@gcc.gnu.org>
4084
4085         * cgraph.h (struct cgraph_edge): Add prev_caller and
4086         prev_callee fields.
4087         (cgraph_node_remove_callees): Export.
4088         * cgraph.c (cgraph_create_edge): Initialize prev_caller
4089         and prev_callee.
4090         (cgraph_edge_remove_callee): New function.
4091         (cgraph_edge_remove_caller): Likewise.
4092         (cgraph_remove_edge): Use.
4093         (cgraph_redirect_edge_callee): Likewise.
4094         (cgraph_node_remove_callees): New function.
4095         (cgraph_node_remove_callers): Likewise.
4096         (cgraph_remove_node): Use.
4097         * tree-optimize.c (tree_rest_of_compilation): Use
4098         cgraph_node_remove_callees instead of manual loop.
4099         * cgraphunit.c (cgraph_finalize_function): Likewise.
4100         (cgraph_expand_function): Likewise.
4101         (cgraph_remove_unreachable_nodes): Likewise.
4102
4103 2005-03-02  Joseph S. Myers  <joseph@codesourcery.com>
4104
4105         PR c/8927
4106         * c-tree.h (undeclared_variable, build_external_ref): Add extra
4107         argument.
4108         * c-decl.c (undeclared_variable): Take location as argument.
4109         * c-typeck.c (build_external_ref): Likewise.
4110         * c-parser.c (c_parser_postfix_expression): Pass location of
4111         identifier to build_external_ref.
4112
4113 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
4114
4115         * config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
4116         CCEQ mode for branch_positive_comparison_operator test.
4117         * config/rs6000/predicates (branch_comparison_operator): Revert to
4118         define_predicate.
4119         (scc_comparison_operator): Same.
4120         (branch_positive_comparison_operator): Same.
4121
4122 2005-03-01  Hans-Peter Nilsson  <hp@axis.com>
4123
4124         * config/cris/cris.c (cris_eligible_for_epilogue_delay)
4125         (cris_delay_slots_for_epilogue): Remove.
4126         (save_last): Move into cris_target_asm_function_epilogue.
4127         (cris_target_asm_function_epilogue): Remove tests for file being
4128         NULL.
4129         * config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
4130         (cris_delay_slots_for_epilogue): Remove prototypes.
4131         * config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
4132         (ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.
4133
4134 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
4135
4136         * config/rs6000/predicates.md (branch_comparison_operator): Change
4137         to define_special_predicate.
4138         (scc_comparison_operator): Same.
4139         (branch_positive_comparison_operator): Same.
4140
4141 2005-03-01  Daniel Berlin <dberlin@dberlin.org>
4142
4143         * Makefile.in (tree-ssa-sink.o): New.
4144         (OBJS-common): Add tree-ssa-sink.o.
4145         * common.opt: Add -ftree-sink
4146         * opts.c (decode_options): flag_tree_sink is set at O1 or higher.
4147         * timevar.def (TV_TREE_SINK): new timevar.
4148         * tree-flow.h (is_hidden_global_store): Prototype.
4149         * tree-optimize.c (init_tree_optimization_passes): Add
4150         pass_sink_code.
4151         * tree-pass.h (pass_sink_code): New.
4152         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
4153         for non-obvious global store store to is_hidden_global_store, and
4154         call that new function.
4155         * tree-ssa-sink.c: New file.
4156         * doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
4157         * doc/passes.texi: Document forward store motion.
4158         * testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
4159         * testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
4160         * testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
4161         * testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
4162
4163 2005-03-01  Per Bothner  <per@bothner.com>
4164
4165         * diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
4166         and we have a non-zero column-number, add it to the message.
4167         Also factor out the diagnostic_kind_text.
4168
4169 2005-03-01  Zdenek Dvorak  <dvorakz@suse.cz>
4170
4171         * cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
4172         flow_loop_pre_header_scan, flow_loop_pre_header_find,
4173         flow_loop_scan): Removed.
4174         (flow_loop_dump): Do not dump removed fields.
4175         (flow_loop_free): Do not free removed fields.
4176         (flow_loops_find): Flags argument removed.  Do not call flow_loop_scan.
4177         (loop_exit_edge_p): New function.
4178         * cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
4179         num_pre_header_edges, entry_edges, num_entries, exit_edges,
4180         num_exits, exits_doms.
4181         (LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
4182         LOOP_EDGES, LOOP_ALL): Removed.
4183         (flow_loop_scan): Declaration removed.
4184         (loop_exit_edge_p, mark_loop_exit_edges): Declare.
4185         * cfgloopmanip.c (create_loop_notes): Do not pass flags to
4186         flow_loops_find.
4187         * ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
4188         (if_convert): Call flow_loops_find and flow_loops_free
4189         when calling mark_loop_exit_edges.
4190         * cfgloopanal.c (mark_loop_exit_edges): Moved from
4191         ifcvt.c.  Removed the flow_loops_find, flow_loops_free and
4192         free_dominance_info calls.
4193         * loop-init.c (flow_loops_find): Ditto.
4194         * passes.c (rest_of_handle_branch_prob): Ditto.
4195         * lambda-code.c (perfect_nestify): Do not call flow_loops_find.
4196         * loop-unroll.c (analyze_insns_in_loop): Do not use
4197         EDGE_LOOP_EXIT.
4198         * predict.c (predict_loops): Do not call flow_loop_scan.
4199         Use get_loop_exit_edges.
4200         (tree_estimate_probability): Do not pass flags to flow_loops_find.
4201         * tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
4202         Do not use EDGE_LOOP_EXIT.
4203         (tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
4204         to bb_with_exit_edge_p.
4205         (if_convertible_loop_p): Do not call flow_loop_scan.  Use
4206         loop->single_exit.  Do not use EDGE_LOOP_EXIT.  Pass loop
4207         to bb_with_exit_edge_p.
4208         (combine_blocks): Pass loop to bb_with_exit_edge_p.  Do not use
4209         EDGE_LOOP_EXIT.
4210         * tree-loop-linear.c (linear_transform_loops): Do not call
4211         flow_loop_scan.  Use loop->single_exit.
4212         * tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
4213         (vect_analyze_loop_form): Do not call flow_loop_scan.
4214         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
4215         loop->single_exit.
4216         (vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
4217         loop->single_exit.
4218         * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
4219         slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
4220         slpeel_tree_duplicate_loop_to_edge_cfg,
4221         slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
4222         Use loop_preheader_edge and loop->single_exit.  Do not call
4223         flow_loop_scan.
4224
4225 2005-03-01  Nick Clifton  <nickc@redhat.com>
4226
4227         * config/arm/arm.c (thumb_find_work_register): Check all of the
4228         argument registers to see if they are free, and a couple of
4229         special cases where the last argument register but can be proved
4230         to be available during the function's prologue.
4231         (print_multi_reg, arm_compute_save_reg0_reg12_mask,
4232         output_return_instruction, emit_multi_reg_push, thumb_pushpop,
4233         thumb_unexpanded_epilogue): Use unsigned long as the type for the
4234         register bit-mask.
4235         (thumb_compute_save_reg_mask): Likewise.  Also use
4236         thumb_find_work_register() to ensure that there is agreement about
4237         which work register is going to be used in the prologue.
4238         (thumb_output_function_prologue): Use unsigned long as the type
4239         for the register bit-mask.  Also delay pushing the link register if
4240         other high registers are going to be pushed.
4241         (thumb_compute_save_reg_mask, emit_multi_reg_push,
4242         print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
4243         redundant prototypes.
4244
4245 2005-02-28  John David Anglin  <dave.anglin#nrc-cnrc.gc.ca>
4246
4247         PR target/19819
4248         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
4249         and after reload in REG+REG indexed addresses without REG_POINTER
4250         set in the base and not set in the index.
4251
4252 2005-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
4253
4254         * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
4255         Don't undefine here.
4256         (HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
4257         (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
4258         (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
4259         (LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
4260         LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
4261         Delete.
4262         * config.gcc (sh*-*-linux*): Use config/linux.h.
4263
4264 2005-02-28  Dale Johannesen  <dalej@apple.com>
4265             Stan Shebs  <shebs@apple.com>
4266
4267         Rewrite of 64-bit Darwin structure-by-value pass/return.
4268         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
4269         intoffset, use_stack, named.
4270         * config/rs6000/rs6000.c (rs6000_darwin64_function_arg):  Remove.
4271         (rs6000_darwin64_record_arg_advance_flush):  New.
4272         (rs6000_darwin64_record_arg_advance_recurse): New.
4273         (rs6000_darwin64_record_arg_flush):  New.
4274         (rs6000_darwin64_record_arg_recurse):  New.
4275         (rs6000_darwin64_record_arg):  New.
4276         (rs6000_return_in_memory):  Remove AGGREGATE_TYPE_P check.
4277         (function_arg_boundary):  Handle 128-bit aligned structs.
4278         (function_arg_advance):  Rewrite darwin64 struct handling.
4279         (function_arg):  Call rs6000_darwin64_record_arg.
4280         (function_arg_partial_nregs):  Handle darwin64 structs.
4281         (rs6000_darwin64_function_value):  Remove.
4282         (rs6000_function_value):  Call rs6000_darwin64_record_arg.
4283
4284 2005-02-28  Roger Sayle  <roger@eyesopen.com>
4285
4286         PR tree-optimization/20216
4287         * tree-chrec.c (tree_fold_factorial): Delete.
4288         (tree_fold_binomial): Change argument list to take a return type
4289         and change the type of K to unsigned int.  Rewrite to avoid explicit
4290         evaluation of factorials, and (recursively) calling fold to perform
4291         compile-time arithmetic.  Return NULL on (internal) overflow.
4292         (chrec_evaluate): Change type of K to an unsigned int.  Avoid
4293         calling tree_fold_binomial unnecessarily.  Return chrec_dont_know
4294         if any intermediate calculation overflows.
4295         (chrec_apply): Update call to chrec_evaluate.
4296
4297 2005-02-28  James E Wilson  <wilson@specifixinc.com>
4298
4299         * config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
4300
4301 2005-02-28  Joseph S. Myers  <joseph@codesourcery.com>
4302
4303         PR c/20245
4304         * c-parser.c (c_parser_compound_statement): Return error_mark_node
4305         instead of NULL_TREE on error.
4306
4307 2005-02-28  David Edelsohn  <edelsohn@gnu.org>
4308
4309         * config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
4310         (EASY_VECTOR_15_ADD_SELF): Remove.
4311         (num_insns_constant_wide): Not static.
4312         (validate_condition_mode): Not static.
4313         (toc_relative_expr_p): Not static.
4314         (legitimate_indirect_address_p): Not static.
4315         (macho_lo_sum_memory_operand): Not static.
4316         (invalid_e500_subreg): Not static.
4317         (easy_vector_same): Not static.
4318         (easy_vector_splat_const): Not static.
4319         (RS6000_SYMBOL_REF_TLS_P): Remove.
4320         (any_operand): Delete.
4321         (any_parallel_operand): Delete.
4322         (count_register_operand): Delete.
4323         (altivec_register_operand): Delete.
4324         (xer_operand): Delete.
4325         (s8bit_cint_operand): Delete.
4326         (short_cint_operand): Delete.
4327         (u_short_cint_operand): Delete.
4328         (non_short_cint_operand): Delete.
4329         (exact_log2_cint_operand): Delete.
4330         (gpc_reg_operand): Delete.
4331         (cc_reg_operand): Delete.
4332         (cc_reg_not_cr0_operand): Delete.
4333         (reg_or_short_operand): Delete.
4334         (reg_or_neg_short_operand): Delete.
4335         (reg_or_aligned_short_operand): Delete.
4336         (reg_or_u_short_operand): Delete.
4337         (reg_or_cint_operand): Delete.
4338         (reg_or_arith_cint_operand): Delete.
4339         (reg_or_add_cint64_operand): Delete.
4340         (reg_or_sub_cint64_operand): Delete.
4341         (reg_or_logical_cint_operand): Delete.
4342         (got_operand): Delete.
4343         (got_no_const_operand): Delete.
4344         (easy_fp_constant): Delete.
4345         (easy_vector_constant): Delete.
4346         (easy_vector_constant_add_self): Delete.
4347         (zero_constant): Delete.
4348         (zero_fp_constant): Delete.
4349         (volatile_mem_operand): Delete.
4350         (offsettable_mem_operand): Delete.
4351         (mem_or_easy_const_operand): Delete.
4352         (add_operand): Delete.
4353         (non_add_cint_operand): Delete.
4354         (logical_operand): Delete.
4355         (non_logical_cint_operand): Delete.
4356         (mask_operand): Delete.
4357         (mask_operand_wrap): Delete.
4358         (mask64_operand): Delete.
4359         (mask64_2_operand): Delete.
4360         (and64_operand): Delete.
4361         (and64_2_operand): Delete.
4362         (and_operand): Delete.
4363         (reg_or_mem_operand): Delete.
4364         (lwa_operand): Delete.
4365         (symbol_ref_operand): Delete.
4366         (call_operand): Delete.
4367         (current_file_function_operand): Delete.
4368         (input_operand): Delete.
4369         (rs6000_nonimmediate_operand): Delete.
4370         (rs6000_tls_symbol_ref): Delete.
4371         (save_world_operation): Delete.
4372         (restore_world_operation): Delete.
4373         (load_multiple_operation): Delete.
4374         (store_multiple_operation): Delete.
4375         (vrsave_operation): Delete.
4376         (mfcr_operation): Delete.
4377         (mtcrf_operation): Delete.
4378         (lmw_operation): Delete.
4379         (stmw_operation): Delete.
4380         (branch_comparison_operator): Delete.
4381         (branch_positive_comparison_operator): Delete.
4382         (scc_comparison_operator): Delete.
4383         (trap_comparison_operator): Delete.
4384         (boolean_operator): Delete.
4385         (boolean_or_operator): Delete.
4386         (min_max_operator): Delete.
4387         * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
4388         (EASY_VECTOR_15): Moved to here.
4389         (EASY_VECTOR_15_ADD_SELF): Move to here.
4390         (PREDICATE_CODES): Delete.
4391         * config/rs6000/rs6000-protos.h: Delete predicate functions.
4392         Declare functions no longer static.
4393         * config/rs6000/predicates.md: New.
4394         * config/rs6000/rs6000.md: Include predicates.md
4395
4396 2005-02-28  Kazu Hirata  <kazu@cs.umass.edu>
4397
4398         * calls.c (emit_call_1): Don't use  REG_ALWAYS_RETURN.
4399         (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
4400         REG_ALWAYS_RETURN.
4401         * cfgrtl.c (need_fake_edge_p): Likewise.
4402         * combine.c (distribute_notes): Likewise.
4403         * emit-rtl.c (try_split): Likewise.
4404         * recog.c (peephole2_opimize): Likewise.
4405         * reg-notes.def (ALWAYS_RETURN): Remove.
4406         * rtl.h (LCT_ALWAYS_RETURN): Remove.
4407         * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
4408         * tree.h (ECF_ALWAYS_RETURN): Remove.
4409
4410 2005-02-28  Roger Sayle  <roger@eyesopen.com>
4411
4412         PR middle-end/19874
4413         * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
4414         between different machine modes is never a "useless" conversion.
4415
4416 2005-02-28  Geert Bosch  <bosch@gnat.com>
4417
4418         PR ada/15977
4419         * doc/contrib.texi: List contributors for Ada front end
4420
4421 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
4422
4423         * simplify-rtx.c (simplify_unary_operation_1,
4424         simplify_const_unary_operation): New, extracted from...
4425         (simplify_unary_operation): ... this one.
4426         (simplify_binary_operation_1,
4427         simplify_const_binary_operation): New, extracted from...
4428         (simplify_binary_operation): ... this one.
4429         * rtl.h (simplify_const_unary_operation,
4430         simplify_const_binary_operation): Add prototypes.
4431
4432 2005-02-28  Julian Brown  <julian@codesourcery.com>
4433
4434         * config/elfos.h: Revert my patch from 2005-02-25 since it broke
4435         building libjava and caused PR regression/20228.
4436
4437 2005-02-28  Paolo Bonzini  <bonzini@gnu.org>
4438
4439         PR bootstrap/17383
4440         * Makefile.in (host_subdir): New.
4441         (build_objdir): New.  Replace ../$(build_subdir) with it throughout.
4442         * configure: Regenerate.
4443
4444 2005-02-27  Zack Weinberg  <zack@codesourcery.com>
4445
4446         * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
4447         * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
4448         installation directory first.
4449
4450 2005-02-28  Hans-Peter Nilsson  <hp@axis.com>
4451
4452         PR target/19065.
4453         * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
4454         not including (reg). Do not check for reg being CRIS_PC_REGNUM.
4455         (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
4456         * config/cris/cris.md: Tweak comments referring to Q.
4457         ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
4458         ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
4459         ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
4460         ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
4461         ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
4462         Insert spaces in constraints to align alternatives vertically for
4463         readability.
4464         ("cmphi"): Ditto.  Add separate alternative for operand 0 "r",
4465         operand 1: "M".
4466
4467 2005-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4468
4469         PR rtl-optimization/17728
4470         * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
4471         operand 0 from general_operand to move_dest_operand.
4472
4473 2005-02-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4474
4475         * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
4476         instead of trying to save and restore TREE_SYMBOL_REFERENCED.
4477         * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
4478         (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
4479
4480 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
4481
4482         * configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
4483         * configure: Regenerate.
4484         * libada-mk.in: Remove CC; rename
4485         cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.
4486
4487 2005-02-26  Andrew Pinski  <pinskia@physics.uc.edu>
4488
4489         PR tree-opt/20188
4490         * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
4491         for the lhs, also walk over the tree.  Likewise for rhs.
4492
4493 2005-02-26  Zdenek Dvorak  <dvorakz@suse.cz>
4494
4495         * tree-ssa-dom.c (simple_iv_increment_p): New function.
4496         (simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
4497         Do not propagate value of iv before increment over the increment.
4498
4499 2005-02-25  Joseph S. Myers  <joseph@codesourcery.com>
4500
4501         * c-parser.c: New file.
4502         * c-parse.in: Remove.
4503         * Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
4504         Remove.
4505         (c-parser.o): Add dependencies.
4506         (C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
4507         maintainer-clean, TAGS): Update.
4508         * c-config-lang.in (gtfiles): Update.
4509         * gengtype-lex.l: Don't handle "@@".
4510         * stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt,
4511         objc_build_synchronized, objc_begin_try_stmt,
4512         objc_begin_catch_clause, objc_finish_catch_clause,
4513         objc_build_finally_clause, objc_finish_try_stmt): New.
4514         * c-tree.h (struct c_declspecs): Add declspecs_seen_p and
4515         type_seen_p.
4516         (c_parse_init): Update comment.
4517         * c-decl.c (c_init_decl_processing): Update comment.
4518         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
4519         declspecs_add_scspec, declspecs_add_attrs): Initialize and update
4520         new c_declspecs members.
4521
4522 2005-02-25  Julian Brown  <julian@codesourcery.com>
4523
4524         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
4525         from being used for symbols with vague linkage when
4526         HAVE_GAS_COMDAT_GROUP is true.
4527
4528 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
4529
4530         * doc/include/gcc-common.texi (version-GCC): Update to 4.1.
4531
4532 2005-02-25  Steve Ellcey  <sje@cup.hp.com>
4533
4534         PR target/19930
4535         * doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
4536         (LIBGCC2_HAS_DF_MODE): New.
4537         (LIBGCC2_HAS_XF_MODE): New.
4538         (LIBGCC2_HAS_TF_MODE): New.
4539         * libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
4540         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
4541         * libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
4542         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
4543         (LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
4544         * config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
4545         and add _fixtfdi, _fixunstfdi, _floatditf
4546         * lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
4547         L_fixunstfdi, L_floatditf.
4548         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
4549         (LIBGCC2_HAS_TF_MODE): Define.
4550
4551 2005-02-25  Diego Novillo  <dnovillo@redhat.com>
4552
4553         PR tree-optimization/20204
4554         * tree-into-ssa.c (insert_phi_nodes_for): Do not use
4555         REWRITE_THIS_STMT markers on PHI nodes.
4556         (rewrite_initialize_block): Likewise.
4557
4558 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
4559
4560         * version.c (version_string): Update to 4.1.
4561
4562 2005-02-25  Paolo Carlini  <pcarlini@suse.de>
4563
4564         * doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
4565         Clarify that the alternative way doesn't work in GNU C++.
4566
4567 2005-02-25  Zdenek Dvorak  <dvorakz@suse.cz>
4568
4569         PR tree-optimization/19937
4570         * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
4571         to the type of the induction variable.
4572
4573 2005-02-25  Kaz Kojima  <kkojima@gcc.gnu.org>
4574
4575         PR rtl-optimization/20117
4576         * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
4577         the block including noncopyable insn.
4578
4579 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
4580
4581         * cse.c (delete_trivially_dead_insns): Speed up by minimizing
4582         calls to find_reg_note.
4583
4584 2005-02-24  Richard Henderson  <rth@redhat.com>
4585
4586         PR tree-opt/20127
4587         * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
4588         the type.
4589
4590 2005-02-24  Fariborz Jahanian <fjahanian@apple.com>
4591
4592         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
4593         vector types if to use base reg for misaligned non-word ld/std.
4594
4595 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
4596
4597         PR target/14619
4598         * config/cris/cris.c (cris_target_asm_function_prologue): Create
4599         dwarf2 label manually and put it after, not before the prologue.
4600
4601 2005-02-24  David Edelsohn  <edelsohn@gnu.org>
4602
4603         PR target/19019
4604         * reload.c (operands_match_p): Only increment register number for
4605         SCALAR_INT_MODE_P modes in multiple hard registers.
4606
4607         * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
4608         Fix formatting.
4609
4610 2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4611
4612         * ChangeLog.5: Fix log message typo(s).
4613         * ChangeLog.7: Likewise.
4614         * ChangeLog.tree-ssa: Likewise.
4615         * cfgexpand.c: Fix comment typo(s).
4616         * conflict.c: Likewise.
4617         * defaults.h: Likewise.
4618         * dwarf2out.c: Likewise.
4619         * gcse.c: Likewise.
4620         * ggc-page.c: Likewise.
4621         * tree-eh.c: Likewise.
4622         * tree-ssa-dom.c: Likewise.
4623
4624 2005-02-24  Jakub Jelinek  <jakub@redhat.com>
4625
4626         PR target/19019
4627         * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
4628         * config/rs6000/darwin-ldouble.c: Only use the .symver directives
4629         if SHARED is defined.
4630
4631         PR target/20196
4632         * config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
4633         allow splitting only if operands 0 and 3 don't overlap.
4634
4635 2005-02-24  Richard Henderson  <rth@redhat.com>
4636
4637         PR middle-end/19953
4638         * builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
4639         (fold_builtin_1): Call them.
4640         * fold-const.c (fold_complex_mult_parts): Split out from ...
4641         (fold_complex_mult): ... here.  Fix typo in both imaginary case.
4642         (fold_complex_div_parts, fold_complex_div): New.
4643         (fold): Use them.
4644         * tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
4645
4646 2005-02-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
4647
4648         * tree-ssa-ccp.c (visit_assignment): Verify that result of
4649         VIEW_CONVERT_EXPR is_gimple_min_invariant.
4650
4651         * print-tree.c (print_node_brief): Print LABEL_DECL_UID.
4652         (print_node): Likewise.
4653         Print TYPE_SIZES_GIMPLIFIED.
4654
4655 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
4656
4657         * config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
4658         ("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
4659         operands as commutative in constraints.
4660
4661 2005-02-24  Diego Novillo  <dnovillo@redhat.com>
4662
4663         * tree-into-ssa.c: Re-organize internal functions.
4664
4665 2005-02-24  Richard Henderson  <rth@redhat.com>
4666
4667         PR middle-end/18902
4668         * c-opts.c (c_common_post_options): Set flag_complex_method to 2
4669         for c99.
4670         * common.opt (fcx-limited-range): New.
4671         * opts.c (set_fast_math_flags): Set flag_cx_limited_range.
4672         * toplev.c (flag_complex_method): Initialize to 1.
4673         (process_options): Set flag_complex_method to 0 if
4674         flag_cx_limited_range.
4675         * doc/invoke.texi (-fcx-limited-range): New.
4676
4677 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
4678
4679         * cse.c (delete_trivially_dead_insns): Speed up by using
4680         NEXT_INSN and PREV_INSN directly instead of next_real_insn and
4681         prev_real_insn.
4682
4683 2005-02-24  Andrea Tarani  <andrea.tarani@gilbarco.com>
4684
4685         * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
4686         functions when -mid-shared-library is being used.
4687
4688 2005-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
4689
4690         * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
4691         (LINK_LIBGCC_SPECIAL_1): Don't mention it.
4692         * gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
4693         * system.h: Poison LINK_LIBGCC_SPECIAL.
4694
4695 2005-02-23  James E Wilson  <wilson@specifixinc.com>
4696
4697         * gengtype.c (note_insn_name): Make 1 element larger.
4698
4699 2005-02-23  Roger Sayle  <roger@eyesopen.com>
4700
4701         PR target/20018
4702         PR rtl-optimization/20097
4703         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
4704         BImode SUBREGs of SImode registers which confuse the ia64 backend.
4705
4706 2005-02-23  David Edelsohn  <edelsohn@gnu.org>
4707
4708         * t-aix43 (SHLIB_INSTALL): Create directory for shared library.
4709         * t-aix52 (SHLIB_INSTALL): Same.
4710
4711 2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
4712
4713         * genpreds.c: Update copyright.
4714
4715 2005-02-23  Michael Beach  <michaelb@ieee.org>
4716
4717         PR target/20159
4718         * config/sparc/t-elf (startup files): Assemble with CPP.
4719
4720 2005-02-23  Paolo Bonzini  <bonzini@gnu.org>
4721
4722         * genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
4723         (write_predicate_expr): Likewise.
4724
4725 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
4726
4727         PR tree-optimization/20100
4728         PR tree-optimization/20115
4729         * tree-optimize.c (init_tree_optimization_passes): Remove
4730         pass_maybe_create_global_var.
4731         * tree-pass.h (pass_maybe_create_global_var): Remove.
4732         * tree-ssa-alias.c (aliases_computed_p): Declare.
4733         (struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
4734         (count_calls_and_maybe_create_global_var): Remove.
4735         (pass_maybe_create_global_var): Remove.
4736         (init_alias_info): Do not declare aliases_computed_p.
4737         (maybe_create_global_var): If the function contains no
4738         call-clobbered variables and a mix of pure/const and regular
4739         function calls, create .GLOBAL_VAR.
4740         Mark all call-clobbered variables for renaming.
4741         (merge_pointed_to_info): Update comment.
4742         (add_pointed_to_var): Likewise.
4743         (is_escape_site): Likewise.
4744         Accept struct alias_info * instead of size_t *.
4745         Update all users.
4746         Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
4747         as necessary.
4748         * tree-ssa-operands.c (get_call_expr_operands): If
4749         ALIASES_COMPUTED_P is false, do not add call-clobbering
4750         operands.
4751         * tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
4752         (delete_tree_ssa): Likewise.
4753
4754 2005-02-22  James E Wilson  <wilson@specifixinc.com>
4755
4756         * toplev.c (backend_init): Don't call init_adjust_machine_modes here.
4757         (do_compile): Do call it here.
4758
4759 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
4760
4761         PR rtl-optimization/20017.
4762         * passes.c (rest_of_handle_combine, rest_of_handle_cse,
4763         rest_of_handle_cse2, rest_of_handle_gcse): Call
4764         delete_dead_jumptables immediately before calling cleanup_cfg.
4765
4766 2005-02-22  Devang Patel  <dpatel@apple.com>
4767
4768         PR 19952
4769         * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
4770         all labels
4771
4772 2005-02-22  David Edelsohn  <edelsohn@gnu.org>
4773
4774         * config/rs6000/aix.h (WINT_TYPE): Define.
4775
4776 2005-02-22  Stan Shebs  <shebs@apple.com>
4777
4778         * config/rs6000/rs6000.c (rs6000_override_options): Default to
4779         natural alignment for 64-bit Darwin.
4780         (rs6000_parse_alignment_option): Warn about uses of -malign-power
4781         on 64-bit Darwin.
4782         * doc/invoke.texi: Document this.
4783
4784 2005-02-22  DJ Delorie  <dj@redhat.com>
4785
4786         * c-common.c (c_common_type_for_mode): Pass the mode's precision
4787         to make_[un]signed_type, not the mode itself.
4788
4789 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
4790
4791         * cfg.c (cached_make_edge): Call make_edge if edge cache is
4792         not available.  Use tail calls wherever possible.
4793         (make_edge): Call unchecked_make_edge to create an edge.
4794
4795         * tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
4796         (coalesce_ssa_name): Don't check for
4797         SSANORM_USE_COALESCE_LIST.
4798         (rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.
4799
4800 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
4801
4802         * tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
4803         (rewrite_into_ssa): ... here.
4804
4805 2005-02-21  Alexandre Oliva  <aoliva@redhat.com>
4806
4807         PR tree-optimization/19786
4808         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
4809         tag to another's may-alias bitmap when adding to the other's list.
4810
4811 2005-02-21  DJ Delorie  <dj@redhat.com>
4812
4813         * tree-ssa-loop-ivopts.c (computation_cost): Start register
4814         numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
4815         registers in unsupported ways.
4816         * expmed.c (init_expmed): Likewise.
4817
4818 2005-02-21  Stan Cox  <scox@redhat.com>
4819
4820         * config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
4821
4822 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
4823
4824         * tree-cfg.c (fold_cond_expr_cond): New.
4825         (make_edges): Call fold_cond_expr_cond.
4826         (find_taken_edge): Accept nothing but INTEGER_CST.
4827         (find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
4828         and 1.
4829         (find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
4830
4831         * flow.c (delete_dead_jumptables): Speed up by scanning insns
4832         that do not belong to any basic block.
4833
4834 2005-02-21  Jeff Law  <law@redhat.com>
4835
4836         * cfganal.c (find_unreachable_blocks): Manually CSE load of
4837         e->dest.
4838
4839 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
4840
4841         * tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
4842         (SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
4843         Adjust their definitions.
4844         (remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
4845         (rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
4846
4847         * c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
4848         genautomata.c, langhooks.c, langhooks.h, system.h,
4849         config/arm/lib1funcs.asm: Update copyright.
4850
4851 2005-02-21  Ulrich Weigand  <uweigand@de.ibm.com>
4852
4853         * dbxout.c (dbxout_function_end): Emit Lscope label always.
4854
4855 2005-02-21  Richard Guenther  <rguenth@gcc.gnu.org>
4856
4857         PR bootstrap/13770
4858         * doc/install.texi: Document --with-gc.
4859
4860 2005-02-21  Paolo Bonzini  <bonzini@gnu.org>
4861
4862         * simplify-rtx.c (simplify_unary_operation): Add a missing
4863         "break" statement.
4864
4865 2005-02-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
4866
4867         PR tree-optimization/18663
4868         * tree-ssa-dom.c (extract_range_from_cond): Return 0
4869         if the type has variable bounds.
4870
4871 2005-02-20  Kazu Hirata  <kazu@cs.umass.edu>
4872
4873         * gcse.c: Remove an obsolete comment.
4874
4875         * cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.
4876
4877 2005-02-20  Hans-Peter Nilsson  <hp@axis.com>
4878
4879         * doc/extend.texi (Function Attributes) <Attribute const>: The
4880         attribute "pure" is below this text, not above.
4881
4882 2005-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4883
4884         * pa.c (pa_assemble_integer, get_plabel): Small cleanups.
4885         (pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
4886         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.
4887
4888 2005-02-20  Zack Weinberg  <zack@codesourcery.com>
4889
4890         PR 18785
4891         * langhooks.h (struct lang_hooks): Add to_target_charset.
4892         * langhooks.c (lhd_to_target_charset): New function.
4893         * langhooks-def.h: Declare lhd_to_target_charset.
4894         (LANG_HOOKS_TO_TARGET_CHARSET): New macro.
4895         (LANG_HOOKS_INITIALIZER): Update.
4896         * c-common.c (c_common_to_target_charset): New function.
4897         * c-common.h: Declare it.
4898         * c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
4899         c_common_to_target_charset.
4900
4901         * defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
4902         (TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
4903         Delete definitions.
4904         * system.h: Poison them.
4905         * doc/tm.texi: Don't discuss them.
4906         * builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
4907         * c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
4908         (pp_c_char): Do not attempt to generate letter escapes for
4909         newline, tab, etc.
4910         * config/arm/arm.c (output_ascii_pseudo_op): Likewise.
4911         * config/mips/mips.c (mips_output_ascii): Likewise.
4912
4913 2005-02-20  Dorit Naishlos  <dorit@il.ibm.com>
4914
4915         PR tree-optimization/19951
4916         * tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
4917         is abnormal.
4918
4919 2005-02-19  Steven Bosscher  <stevenb@suse.de>
4920
4921         PR middle-end/19698
4922         * function.h (struct function): New field `max_loop_depth'.
4923         * cfgloop.c (establish_preds): Update maximum loop depth seen so far.
4924         (flow_loops_find): Reset the max loop depth count before finding loops.
4925         * flow.c (MAX_LIVENESS_ROUNDS): New constant.
4926         (update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
4927         (calculate_global_regs_live): Make sure the loop will terminate
4928         when the initial sets are not empty.
4929
4930 2005-02-19  Zack Weinberg  <zack@codesourcery.com>
4931
4932         * mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
4933         object inside.
4934         * config/ia64/hpux.h: Don't define LIBGCC_SPEC.
4935
4936 2005-02-19  Richard Sandiford  <rsandifo@redhat.com>
4937
4938         PR other/19525
4939         * doc/invoke.texi: Remove documentation of %M spec.
4940         * gcc.c: Likewise.
4941         (init_spec): Remove %M suffix from -lgcc_s.
4942         (do_spec_1): Remove 'M' case.
4943         * mklibgcc.in: Remove SHLIB_MULTILIB handling.  Expect SHLIB_LINK
4944         to put shared libraries in the multilib directory.  Remove the
4945         shlib_so_soname substitution variable.  Don't add a multilib encoding
4946         to shlib_base_name.  Set shlib_slibdir_qual to the full pathname
4947         reported by -print-multi-os-directory.  Pass @multilib_dir@ to
4948         SHLIB_INSTALL as well as SHLIB_LINK.
4949         * config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
4950         (SHLIB_NAME): Delete.
4951         (SHLIB_DIR): New macro.
4952         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
4953         (SHLIB_INSTALL): Adjust accordingly.
4954         * config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
4955         * config/t-slibgcc-sld: Likewise.
4956         * config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
4957         (SHLIBUNWIND_SONAME): Use @shlib_base_name@.
4958         (SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
4959         in $(SHLIB_DIR).
4960         (SHLIBUNWIND_INSTALL): Adjust accordingly.
4961         * config/i386/t-nwld (SHLIB_SONAME): Delete.
4962         (SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
4963         Use @shlib_base_name@ instead of @shlib_so_name@.
4964         * config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
4965         and @shlib_base_name@.so in @multilib_dir@.
4966         (SHLIB_INSTALL): Adjust accordingly.  Add @shlib_slibdir_qual@
4967         to the install path.
4968         * config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
4969         (SHLIB_LINK): Remove previous workaround.
4970         * config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
4971         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
4972         (SHLIB_INSTALL): Adjust accordingly.  Add $(SHLIB_SLIBDIR_QUAL) to
4973         the install path.
4974         * config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
4975         @multilib_dir@.  Use @multilib_dir@ to check for threading libraries.
4976         (SHLIB_INSTALL): Adjust accordingly.
4977         (SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
4978         * config/rs6000/t-aix52: As for config/rs6000/t-aix43.
4979         * config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
4980         config/t-slibgcc-elf-ver.
4981
4982 2005-02-19  Zdenek Dvorak  <dvorakz@suse.cz>
4983             Jakub Jelinek  <jakub@redhat.com>
4984
4985         PR tree-optimization/19828
4986         * tree-ssa-loop-im.c: Add a TODO comment.
4987         (movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
4988         without side-effects.
4989
4990 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
4991
4992         * tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
4993         call fold_convert.
4994
4995 2005-02-18  James E. Wilson  <wilson@specifixinc.com>
4996
4997         * doc/invoke.texi (IA-64 Options): Delete -mb-step.
4998         * config/ia64/ia64.c (last_group, group_idx): Delete variables.
4999         (errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
5000         functions.
5001         (ia64_reorg): Delete fixup_errata call.
5002         * config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
5003         (TARGET_SWITCHES): Delete -mb-step entry.
5004
5005 2005-02-19  Jakub Jelinek  <jakub@redhat.com>
5006
5007         PR c/20043
5008         * c-typeck.c (composite_type): Handle quals in transparent unions.
5009         (type_lists_compatible_p): Likewise.
5010
5011 2005-02-18  Stan Shebs  <shebs@apple.com>
5012
5013         * config/darwin.c (machopic_select_rtx_section): Don't put relocatable
5014         expressions in the .literal8 section.
5015
5016 2005-02-18  Geoffrey Keating  <geoffk@apple.com>
5017
5018         * config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.
5019
5020 2005-02-18  Roger Sayle  <roger@eyesopen.com>
5021
5022         * fold-const.c (constant_boolean_node): Always create values of the
5023         specified type, don't bother calling truthvalue_conversion.
5024
5025 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
5026
5027         * except.c (output_function_exception_table): Call
5028         assemble_external_libcall (eh_personality_libfunc).
5029
5030 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
5031
5032         PR target/19886
5033         * config/ia64/ia64.h (struct machine_function): Add state_num.
5034         * config/ia64/ia64.c (process_epilogue,
5035         process_for_unwind_directive): Use new unwind state numbers each
5036         time rather than state 1.
5037
5038 2005-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
5039
5040         PR target/20054
5041         * config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
5042         before the "*llgt_didi" pattern.
5043
5044 2005-02-18  Jason Merrill  <jason@redhat.com>
5045
5046         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.
5047
5048 2005-02-18  Richard Earnshaw  <rearnsha@arm.com>
5049
5050         * arm/lib1funcs.asm (FUNC_ALIAS): New macro.
5051         (div0): Use it in place of ARM_FUNC_ALIAS.
5052         (lshrdi3, ashrdi3, ashlrdi3): Likewise.
5053
5054 2005-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
5055
5056         PR middle-end/20030
5057         * fold-const.c (fold_indirect_ref_1): Use the correct index for zero
5058         access, the lower bound of the array type if it exists.
5059
5060 2005-02-18  Alexandre Oliva  <aoliva@redhat.com>
5061
5062         PR c++/20008
5063         * stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
5064         cases that are out-of-range for the index type.
5065
5066 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
5067
5068         * stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
5069         (estimate_case_costs): Don't call convert.
5070         * expmed.c (expand_shift): Likewise.
5071         (make_tree): Call fold_convert instead of convert.
5072
5073 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
5074
5075         PR c++/19813
5076         * emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
5077         that ref to be marked MEM_READONLY_P doesn't have base that needs
5078         constructing.
5079
5080 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
5081
5082         * genautomata.c (output_get_cpu_unit_code_func,
5083         output_cpu_unit_reservation_p): Don't generate old-style function
5084         definitions.
5085
5086 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
5087
5088         PR c++/20023
5089         PR tree-optimization/20009
5090         * convert.c (convert_to_integer): Revert 2005-02-16 change.
5091
5092         PR tree-optimization/18947
5093         * cgraphunit.c (cgraph_finalize_function): When redefining an extern
5094         inline, remove all nodes that are inlined into the extern inline
5095         being redefined.
5096
5097 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5098
5099         * bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
5100         loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
5101         tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
5102         config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
5103         Update copyright.
5104
5105 2005-02-17  Roger Sayle  <roger@eyesopen.com>
5106
5107         PR tree-optimization/19917
5108         * tree-eh.c (tree_could_trap_p): Consider calls to weak functions
5109         to be potentially trapping.
5110
5111 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
5112
5113         * libgcc2.c, tree-vect-analyze.c: Fix comment typos.
5114
5115 2005-02-17  Andreas Krebbel  <krebbel1@de.ibm.com>
5116
5117         * builtins.c (expand_builtin_return_addr): Remove tem parameter.
5118         tem becomes a local variable which is set to the value of the
5119         back end defined INITIAL_FRAME_ADDRESS macro.
5120         (expand_builtin_frame_address): Omit the base parameter to
5121         expand_builtin_return_addr.
5122         (expand_builtin_profile_func): Likewise.
5123         * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
5124         (DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
5125         * doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.
5126
5127 2005-02-17  Jakub Jelinek  <jakub@redhat.com>
5128
5129         * config/s390/s390.c (s390_alloc_pool, s390_free_pool,
5130         s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
5131         * config/frv/frv.c (frv_function_epilogue): Likewise.
5132
5133 2005-02-17  Daniel Berlin  <dberlin@dberlin.org>
5134
5135         * lambda-code (perfect_nestify): Remove mark/unmark
5136         for rewriting hack.
5137         * tree-loop-linear.c (linear_transform_loops): Add
5138         rewrite_into_ssa call so that ssa is correct for
5139         rewriting into loop closed.
5140
5141 2005-02-17  Nathan Sidwell  <nathan@codesourcery.com>
5142
5143         * bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
5144         * bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
5145         BITMAP_FREE.
5146         * bt-load.c (btr_def_live_range, combine_btr_defs,
5147         migrate_btr_def, migrate_btr_defs): Likewise.
5148         * cfgcleanup.c (thread_jump): Likewise.
5149         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
5150         * df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
5151         df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
5152         df_rd_local_compute, df_reg_info_compute): Likewise.
5153         * dominance.c (init_dom_info, free_dom_info): Likewise.
5154         * flow.c (init_propagate_block_info,
5155         free_propagate_block_info): Likewise.
5156         * gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
5157         * global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
5158         modify_reg_pav): Likewise.
5159         * loop-invariant.c (find_defs, find_invariant_insn,
5160         find_invariants, free_inv_motion_data): Likewise.
5161         * predict.c (tree_predict_by_opcode,
5162         estimate_bb_frequencies): Likewise.
5163         * stmt.c (expand_case): Likewise.
5164         * tree-cfg.c (tree_duplicate_sese_region): Likewise.
5165         * tree-dfa.c (mark_new_vars_to_rename): Likewise.
5166         * tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
5167         * tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
5168         get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
5169         rewrite_ssa_into_ssa): Likewise.
5170         * tree-optimize.c (tree_rest_of_compilation): Likewise.
5171         * tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
5172         analyze_edges_for_bb, perform_edge_inserts): Likewise.
5173         * tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
5174         * tree-sra.c (tree_sra): Likewise.
5175         * tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
5176         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
5177         * tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
5178         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
5179         * tree-ssa-dse.c (tree_ssa_dse): Likewise.
5180         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
5181         Likewise.
5182         * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
5183         calculate_live_on_entry, calculate_live_on_exit,
5184         build_tree_conflict_graph): Likewise.
5185         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
5186         record_important_candidates, set_use_iv_cost, find_depends,
5187         determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
5188         tree_ssa_iv_optimize_finalize): Likewise.
5189         * tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
5190         find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
5191         tree_duplicate_loop_to_header_edge): Likewise.
5192         * tree-ssa-pre.c (init_pre, fini_pre): Likewise.
5193         * tree-ssa.c (verify_flow_insensitive_alias_info,
5194         verify_name_tags, verify_ssa, init_tree_ssa,
5195         delete_tree_ssa): Likewise.
5196         * tree-ssanames.c (marked_ssa_names, init_ssanames,
5197         fini_ssanames): Likewise.
5198         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.
5199
5200 2005-02-17  Ralf Corsepius  <ralf.corsepius@rtems.org>
5201
5202         * config/rs6000/t-rtems: Completely reworked.
5203
5204 2005-02-17  Ira Rosen  <irar@il.ibm.com>
5205
5206         * tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.
5207
5208 2005-02-17  Ira Rosen  <irar@il.ibm.com>
5209
5210         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
5211         POINTER_TYPE_P when checking that type is a pointer.
5212         (vect_get_memtag): Remove.
5213         (vect_address_analysis): Use POINTER_TYPE_P. Call
5214         vect_object_analysis with dummy parameter for memtag.
5215         (vect_object_analysis): Extract memtag (functionality that
5216         used to be in vect_get_memtag and moved here). Fix printings.
5217         (vect_analyze_data_refs): Fix comment. Call vect_object_analysis
5218         with correct parameters. Remove call to vect_get_memtag.
5219
5220 2005-02-17  Dorit Naishlos  <dorit@il.ibm.com>
5221
5222         * Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
5223         (tree-vectorizer.o): Added missing dependencies.
5224
5225         * tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
5226         decleration.
5227         (slpeel_tree_peel_loop_to_edge): Function externalized (had a static
5228         declaration in tree-vectorizer.c, now has an extern declaration in
5229         tree-vectorizer.h).
5230         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
5231         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
5232         get_vectype_for_scalar_type, vect_is_simple_use,
5233         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
5234         vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
5235         new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
5236         vectorizable_store, vectorizable_operation, vectorizable_assignment,
5237         vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
5238         find_loop_location): Likewise.
5239
5240         * tree-vectorizer.c (langhooks.h): #include removed.
5241         (slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
5242         moved to tree-vectorized.h.
5243         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
5244         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
5245         get_vectype_for_scalar_type, vect_is_simple_use,
5246         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
5247         vect_supportable_dr_alignment, new_loop_vec_info,
5248         destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
5249         vect_set_verbosity_level, find_loop_location): Likewise.
5250
5251         (vect_analyze_loop): Function externalized. Declaration moved to
5252         tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
5253         (vect_analyze_loop_form): Moved to tree-vect-analyze.c.
5254         (vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
5255         vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
5256         vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
5257         vect_enhance_data_refs_alignment, vect_analyze_operations,
5258         exist_non_indexing_operands_for_use_p, vect_mark_relevant,
5259         vect_stmt_relevant_p, vect_get_loop_niters,
5260         vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
5261         vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
5262         vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
5263         vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
5264         vect_get_memtag): Likewise.
5265
5266         (vectorizable_load): Function externalized. Declaration moved to
5267         tree-vectorized.h. Function definition moved to tree-vect-transform.c.
5268         (vectorizable_store, vectorizable_operation, vectorizable_assignment,
5269         vect_transform_loop): Likewise.
5270         (vect_transform_stmt): Moved to tree-vect-transform.c.
5271         (vect_align_data_ref, vect_create_destination_var,
5272         vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
5273         vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
5274         vect_get_vec_def_for_operand, vect_init_vector,
5275         vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
5276         vect_build_loop_niters, vect_update_ivs_after_vectorizer,
5277         vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
5278         vect_update_inits_of_drs, vect_do_peeling_for_alignment,
5279         vect_do_peeling_for_loop_bound): Likewise.
5280
5281         * tree-vect-analyze.c: New file.
5282         * tree-vect-transform.c: New file.
5283
5284 2005-02-17  Jason Merrill  <jason@redhat.com>
5285
5286         PR mudflap/19319, c++/19317
5287         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
5288         slot explicit.
5289
5290 2005-02-17  Gerald Pfeifer  <gerald@pfeifer.com>
5291
5292         * doc/install.texi (Specific): Update link for Darwin-specific
5293         tool binary site.
5294
5295 2005-02-16  James A. Morrison  <phython@gcc.gnu.org>
5296
5297         * fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
5298         constant_boolean_node.
5299
5300 2005-02-16  David Edelsohn  <edelsohn@gnu.org>
5301
5302         PR target/19019
5303         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
5304         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.
5305
5306 2005-02-16  Richard Henderson  <rth@redhat.com>
5307
5308         PR 19920
5309         * libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
5310         with W_TYPE_SIZE.
5311         (HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
5312         replace uses with Wtype_MAXp1_F.
5313         (L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
5314         L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
5315         L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
5316         L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
5317         and HAVE_TFMODE as appropriate.
5318         (__fixunssfDI): Provide an implementation that doesn't need DFmode.
5319         (__floatdisf): Likewise.
5320         * libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
5321         (HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
5322         (Wtype_MAXp1_F): New.
5323         (DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
5324         __powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.
5325
5326 2005-02-16  Richard Earnshaw  <rearnsha@arm.com>
5327
5328         * PR target/19162
5329         * arm.c (arm_apply_result_size): New function.
5330         * arm.h (APPLY_RESULT_SIZE): Define.
5331         * arm-protos.h (arm_apply_result_size): Add prototype.
5332         * arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
5333         (movxf): New expand.
5334         (ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
5335         (call_value_symbol): Remove predicate for operand 0.
5336         (call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
5337         (untyped_call): Rework to correclty return values for any type.
5338         (untyped_return): New expand.
5339         * fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.
5340
5341 2005-02-16  Stan Shebs  <shebs@apple.com>
5342
5343         * config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
5344         * config/rs6000/t-darwin8: New, for 64-bit multilib.
5345
5346 2005-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
5347
5348         * doc/install.texi (sparc-sun-solaris2*): Document required GMP
5349         configure settings on Solaris 7 and later.
5350
5351 2005-02-16  Diego Novillo  <dnovillo@redhat.com>
5352
5353         PR tree-optimization/19865
5354         * tree-optimize.c (init_tree_optimization_passes): Run
5355         pass_may_alias after pass_sra.
5356
5357 2005-02-16  Richard Henderson  <rth@redhat.com>
5358             Stuart Hastings  <stuart@apple.com>
5359
5360         PR debug/19521
5361         * dbxout.c (dbxout_function_end): Take decl parameter; update callers.
5362         Do nothing if debug info suppressed for this function.
5363         (dbxout_begin_function): Early exit if debug info suppressed for
5364         this function.
5365
5366 2005-02-16  Kazu Hirata  <kazu@cs.umass.edu>
5367
5368         PR target/20007
5369         * config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
5370         find_basic_blocks.
5371         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
5372
5373         PR tree-optimization/19967
5374         * builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
5375         expand_builtin_strchr, expand_builtin_strrchr): Take a new
5376         argument TYPE.  Adjust calls to fold_builtin_XXX.
5377         (expand_builtin, fold_builtin_1): Adjust calls to
5378         expand_builtin_XXX.
5379         (fold_builtin_strchr, fold_builtin_strpbrk,
5380         fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
5381         result to a requested type TYPE.
5382
5383 2005-02-16  Jakub Jelinek  <jakub@redhat.com>
5384
5385         PR middle-end/19857
5386         * fold-const.c (fold): Don't optimize (T)(x & cst) to
5387         (T)x & (T)cst if (T)cst overflows.
5388         * convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
5389         TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.
5390
5391 2005-02-15  Jeff Law  <law@redhat.com>
5392
5393         * gcse.c (blocks_with_calls): New bitmap.
5394         (alloc_gcse_mem): Allocate it.
5395         (free_gcse_mem): Free it.
5396         (clear_modifY_mem_tables): Clear it.
5397         (record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
5398         when we encounter CALL_INSNs.
5399         (compute_transp, case MEM): Handle blocks with calls separate
5400         from blocks without calls.  Use bitmap iterators rather than
5401         FOR_EACH_BB.
5402
5403 2005-02-15  Peter O'Gorman  <peter@pogma.com>
5404
5405         PR bootstrap/18810
5406         * mklibgcc.in (vis_hide): Use a temporary object file, not
5407         -o /dev/null.
5408
5409 2005-02-15  Andy Hutchinson  <HutchinsonAndy@netscape.net>
5410
5411         PR target/19924
5412         * config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
5413         access optimization.
5414
5415 2005-02-15  David Edelsohn  <edelsohn@gnu.org>
5416             Alan Modra  <amodra@bigpond.net.au>
5417
5418         PR target/19019
5419         * config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd.
5420         (_xlqsub): Rename to __gcc_qsub.
5421         (_xlqmul): Rename to __gcc_qmul.
5422         (_xlqdiv): Rename to __gcc_qdiv.
5423         Provide versioned symbol aliases with old names.
5424         * config/rs6000/libgcc-ppc64.ver: Rename symbols.
5425         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols.
5426         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New.
5427         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New.
5428         * config/rs6000/t-newas (LIB2FUNCS_EXTRA): New.
5429
5430 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
5431
5432         * fold-const.c (fold): Fold -(~A) to A + 1.  Fold ~(-A) to A - 1.
5433         Fold ~(A - 1) and ~(A + -1) to -A.
5434
5435 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
5436
5437         PR pch/14940
5438         PR target/19300
5439         * config/host-linux.c (linux_gt_pch_use_address): Copy from
5440         config/pa/pa-host.c:pa_gt_pch_use_address.
5441
5442 2005-02-15  Daniel Berlin  <dberlin@dberlin.org>
5443
5444         * tree-vn.c (get_value_handle): Make sure that given an
5445         is_gimple_min_invariant expression, we always return it.
5446
5447 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
5448
5449         * passes.c (rest_of_handle_gcse): Fix a comment.
5450
5451 2005-02-15  Jeff Law  <law@redhat.com>
5452
5453         * gcse.c (canon_modify_mem_set_list_set): Kill unnecessary
5454         bitmap.
5455         (alloc_gcse_mem, free_gcse_mem): Corresponding changes.
5456         (canon_list_insert, record_last_mem_set_info): Similarly.
5457         (clear_modify_mem_tables): Similarly.
5458
5459 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
5460
5461         * bitmap.c, bitmap.h, lambda-code.c, tree-dfa.c, tree-dump.c,
5462         tree-dump.h, tree-ssa-loop-manip.c, value-prof.c,
5463         config/mips/mips.md, config/rs6000/aix.h,
5464         config/rs6000/beos.h, config/rs6000/sysv4.h: Update copyright.
5465
5466 2005-02-15  Richard Henderson  <rth@redhat.com>
5467
5468         * bb-reorder.c (find_traces_1_round): Force fallthru edge from a
5469         call to be best_edge.
5470
5471 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
5472
5473         * basic-block.h: Adjust the prototype for find_basic_blocks.
5474         * cfgbuild.c (find_basic_blocks): Remove unused arguments.
5475         * passes.c (rest_of_handle_loop_optimize): Adjust the call to
5476         find_basic_blocks.
5477
5478         * flow.c (recompute_reg_usage): Remove all arguments.
5479         * passes.c (rest_of_compilation): Adjust the call to
5480         recompute_reg_usage.
5481         * rtl.h: Adjust the prototype for recompute_reg_usage.
5482
5483 2005-02-14  Daniel Berlin  <dberlin@dberlin.org>
5484
5485         * tree-dump.c (dump_files): Update to reflect new member
5486         of dump_file_info.
5487         (dump_register): Add new argument.
5488         Set glob name.
5489         (dump_switch_p_1): Check against glob name if doglob was passed.
5490         (dump_switch_p): Check against regular first, then glob if
5491         we didn't have any hits on the dump name.
5492         * tree-optimize.c (register_one_dump_file):
5493         Pass in glob name as well.
5494         * tree-pass.h (struct dump_file_info): Add glob
5495         member.
5496
5497 2005-02-14  Joseph S. Myers  <joseph@codesourcery.com>
5498
5499         PR preprocessor/16323
5500         * doc/invoke.texi: Document that -Wendif-labels is on by default.
5501
5502 2005-02-14  David Edelsohn  <edelsohn@gnu.org>
5503
5504         PR target/19019
5505         * config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
5506         (trunctfdf2_internal1): New.
5507         (trunctfdf2_internal2): Renamed from trunctfdf2.
5508
5509 2005-02-14  Diego Novillo  <dnovillo@redhat.com>
5510
5511         PR tree-optimization/19853
5512         * tree-dfa.c (add_referenced_var): Always examine DECL_INITIAL.
5513
5514 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
5515
5516         * passes.c (rest_of_handle_loop_optimize): Remove calls to
5517         delete_dead_jumptables and cleanup_cfg.
5518
5519 2005-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
5520
5521         * reload.c (find_reloads): Swap address_reloaded flags when
5522         swapping commutative operands.
5523
5524 2005-02-14  Sebastian Pop  <pop@cri.ensmp.fr>
5525
5526         * lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
5527         Use standard_iv_increment_position for computing the bsi position
5528         for create_iv.
5529         * tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
5530         the bsi position.
5531
5532 2005-02-13  Zdenek Dvorak  <dvorakz@suse.cz>
5533
5534         PR target/17428
5535         * cfgrtl.c (safe_insert_insn_on_edge): Avoid extending
5536         life range of hard registers.
5537         * value-prof.c (insn_prefetch_values_to_profile): Only
5538         scan normal insns.
5539
5540         * value-prof.c (rtl_find_values_to_profile): Do not look for values to
5541         profile in libcalls.
5542
5543 2005-02-13  Nathan Sidwell  <nathan@codesourcery.com>
5544
5545         * bitmap.h (bitmap_and_compl_into): Return bool.
5546         * bitmap.c (bitmap_and_compl_into): Return changed flag.
5547
5548 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
5549
5550         PR tree-optimization/19944
5551         * fold-const.c (fold): Re-add ABS_EXPR folding.
5552
5553 2005-02-13  David Edelsohn  <edelsohn@gnu.org>
5554
5555         PR target/19019
5556         * config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
5557         {TARGET,MASK}_XL_COMPAT.
5558         (SUBTARGET_SWITCHES): Rename xl-call to xl-compat.  Use
5559         MASK_XL_COMPAT.
5560         * config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
5561         * config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
5562         TARGET_XL_COMPAT.
5563         (rs6000_arg_partial_bytes): Same.
5564         (rs6000_generate_compare): Generate PARALLEL for compare if TFmode
5565         and XL compatibility enabled.
5566         * config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
5567         * config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
5568         test to final condition.
5569         (cmptf_internal2): New.
5570         * doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
5571         xl-compat.  Add TFmode information to description.
5572
5573 2005-02-13  Kazu Hirata  <kazu@cs.umass.edu>
5574
5575         * flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.
5576
5577 2005-02-13  Jason Merrill  <jason@redhat.com>
5578
5579         PR c++/16405
5580         * fold-const.c (fold_indirect_ref_1): Split out from...
5581         (build_fold_indirect_ref): Here.
5582         (fold_indirect_ref): New fn.
5583         * tree.h: Declare it.
5584         * gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
5585         (gimplify_modify_expr_rhs): Likewise.
5586         (gimplify_expr): Likewise.
5587
5588 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
5589
5590         PR tree-optimization/14303
5591         PR tree-optimization/15784
5592         * fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
5593         Fold ABS_EXPR<x> < 0 to false.  Fold ABS_EXPR<x> == 0 to x == 0 and
5594         ABS_EXPR<x> != 0 to x != 0.
5595
5596 2005-02-12  Kazu Hirata  <kazu@cs.umass.edu>
5597
5598         * c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
5599         simplify-rtx.c, tree-ssa-live.h: Fix comment typos.  Follow
5600         spelling conventions.
5601
5602         * passes.c (rest_of_handle_gcse): Don't run cse_main and
5603         delete_trivially_dead_insns too many times.
5604
5605         * passes.c (rest_of_handle_gcse): Remove dead assignments to
5606         tem and tem2.
5607
5608 2005-02-12  Ira Rosen  <irar@il.ibm.com>
5609
5610         * tree-vectorizer.c (vect_get_base_and_offset): Remove.
5611         (vect_is_simple_iv_evolution): Remove redundant parameter
5612         and step check.
5613         (vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
5614         without last parameter.
5615         (vect_analyze_pointer_ref_access): Get access_fn as parameter.
5616         Return pointer step. Call vect_is_simple_iv_evolution without
5617         last parameter. Check only that the step is multiple of size
5618         type. Remove stmt_vinfo updates.
5619         (vect_get_memtag_and_dr): Remove.
5620         (vect_get_memtag): New function.
5621         (vect_address_analysis): New function.
5622         (vect_object_analysis): New function.
5623         (vect_analyze_data_refs): Call vect_object_analysis and
5624         vect_get_memtag. Update stmt_vinfo fields.
5625
5626 2005-02-12  Ira Rosen  <irar@il.ibm.com>
5627
5628         * tree-data-ref.c (array_base_name_differ_p): Check that the bases
5629         exist and are objects. Remove checks for pointer.
5630         * tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
5631         STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
5632         (vect_create_data_ref_ptr): Likewise.
5633         (vect_base_addr_differ_p): New function.
5634         (vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
5635         (vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
5636         Don't set the DR_BASE_NAME field of data-ref.
5637         (vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.
5638
5639 2005-02-12  Uros Bizjak  <uros@kss-loka.si>
5640
5641         * optabs.h (enum optab_index): Add new OTI_ldexp.
5642         (ldexp_optab): Define corresponding macro.
5643         * optabs.c (init_optabs): Initialize ldexp_optab.
5644         * genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
5645         patterns.
5646         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
5647         using ldexp_optab.
5648         (expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
5649         expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.
5650
5651         * config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
5652         to implement ldexpf, ldexp and ldexpl built-ins as inline x87
5653         intrinsics.
5654
5655 2005-02-12  Ira Rosen  <irar@il.ibm.com>
5656
5657         * tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
5658         to base_address.
5659         * tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
5660         stmt_vec_info.
5661         (vect_get_base_and_offset): Always return an address.
5662         (vect_create_addr_base_for_vector_ref): Remove treatment for
5663         different data reference types.
5664         (vect_compute_data_ref_alignment): Rename base to base_address in
5665         stmt_vec_info. Get the object in order to force its alignment.
5666         (vect_get_memtag_and_dr): Rename base to base_address in
5667         stmt_vec_info. Extract the object for memtag analysis.
5668
5669 2005-02-12  Hans-Peter Nilsson  <hp@axis.com>
5670
5671         PR regression/19898.
5672         * config/cris/cris.c (cris_notice_update_cc): When testing if insn
5673         changes cc_status, use apply modified_in_p to part of cc_status
5674         and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
5675         body.
5676
5677 2005-02-11  Richard Henderson  <rth@redhat.com>
5678
5679         * tree-complex.c (expand_complex_libcall): New.
5680         (expand_complex_multiplication): Use it for c99 compliance.
5681         (expand_complex_division): Likewise.
5682         * fold-const.c (fold_complex_add, fold_complex_mult): New.
5683         (fold): Call them.
5684         * builtins.c (built_in_names): Remove const.
5685         * tree.c (build_common_builtin_nodes): Build complex arithmetic
5686         builtins.
5687         * tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
5688         (BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
5689         (built_in_names): Remove const.
5690         * c-common.c (c_common_type_for_mode): Handle complex modes.
5691         * flags.h, toplev.c (flag_complex_method): Rename from
5692         flag_complex_divide_method.
5693         * libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
5694         __mulsc3, __muldc3, __mulxc3, __multc3): New.
5695         * libgcc2.h: Declare them.
5696         * libgcc-std.ver: Export them.
5697         * mklibgcc.in (lib2funcs): Build them.
5698
5699 2005-02-11  Steven Bosscher  <stevenb@suse.de>
5700
5701         PR tree-optimization/19876
5702         Partially revert my change from 2005-01-14
5703         * tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
5704         (compute_antic): ...and remove the loop here.
5705
5706 2005-02-11  Jakub Jelinek  <jakub@redhat.com>
5707
5708         PR middle-end/19858
5709         * fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
5710         is number of inner's bits, avoid creating a BIT_FIELD_REF.
5711
5712         * config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
5713         crtend.o if -pie.  Use %{x:a;:b} spec syntax.
5714
5715 2005-02-11  Daniel Jacobowitz  <dan@codesourcery.com>
5716
5717         * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
5718         offsets for the big-endian 32-bit case.
5719
5720 2005-02-11  Joseph S. Myers  <joseph@codesourcery.com>
5721
5722         * config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
5723
5724 2005-02-11  Dale Johannesen  <dalej@apple.com>
5725
5726         * cselib.c (cselib_process_insn):  Clear out regs where
5727         HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
5728         * reload.c (find_equiv_reg): Ditto.
5729
5730 2005-02-11  Ian Lance Taylor  <ian@airs.com>
5731
5732         * read-rtl.c (read_rtx_1): Give fatal error if we see a vector
5733         with no elements.
5734
5735         * tree.c (build_function_type_list): Work correctly if there are
5736         no arguments.
5737
5738 2005-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
5739
5740         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
5741         "*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
5742         ("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
5743         TARGET_ZARCH instead of TARGET_64BIT.
5744
5745 2005-02-11  Ralf Corsepius  <ralf.corsepius@rtems.org>
5746
5747         * config/rs6000/t-rtems:
5748         (MULTILIB_OPTIONS): Remove mcpu=602.
5749         (MUTLILIB_DIRNAMES): Remove m602.
5750         (MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
5751         Let mcpu=602 match mcpu=603.
5752         (MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.
5753
5754 2005-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5755
5756         * pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
5757         signal trampolines.
5758
5759 2005-02-10  David Daney  <ddaney@avtrex.com>
5760
5761         * config/alpha/linux-unwind.h: Add exception clause to copyright.
5762         * config/i386/linux-unwind.h: Likewise.
5763         * config/ia64/linux-unwind.h: Likewise.
5764         * config/mips/linux-unwind.h: Likewise.
5765         * config/pa/linux-unwind.h: Likewise.
5766         * config/rs6000/linux-unwind.h: Likewise.
5767         * config/s390/linux-unwind.h: Likewise.
5768         * config/sh/linux-unwind.h: Likewise.
5769         * config/sparc/linux-unwind.h: Likewise.
5770
5771 2005-02-10  Steven Bosscher  <stevenb@suse.de>
5772
5773         PR tree-optimization/17549
5774         * tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
5775         TER to replace a DEF with its expression if the DEF and the
5776         rhs of the expression we replace into have the same root
5777         variable.
5778
5779 2005-02-10  Richard Sandiford  <rsandifo@redhat.com>
5780
5781         * config/mips/mips.md: Fix the placement of the match_scratch in the
5782         lea64 peephole2.
5783
5784 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
5785
5786         * cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
5787         Fix comment typos.
5788
5789 2005-02-10  Zdenek Dvorak  <dvorakz@suse.cz>
5790
5791         * tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
5792         (strip_offset): Handle addresses.
5793         (add_address_candidates): Use strip_offset.
5794         (difference_cost): Reflect strip_offset change.
5795         (force_var_cost, difference_cost): Strip nops.
5796
5797 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
5798
5799         * df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.
5800
5801         * builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
5802         tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
5803         config/cris/cris-protos.h, config/cris/cris.c: Update
5804         copyright.
5805
5806 2005-02-10  Jeff Law  <law@redhat.com>
5807
5808         * tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
5809         (lookup_avail_expr): Similarly.
5810
5811 2005-02-10  Richard Guenther  <rguenth@gcc.gnu.org>
5812
5813         * builtins.c (fold_builtin_powi): New function.
5814         (fold_builtin_1): Call it.
5815
5816 2005-02-10  Steven Bosscher  <stevenb@suse.de>
5817
5818         PR documentation/19309
5819         * doc/cpp.texi: The __GNUC__ and related predefined macros
5820         are also defined for the "standalone" cpp.
5821         Some non-GCC compilers may also define __GNUC__.
5822
5823 2005-02-10  Jakub Jelinek  <jakub@redhat.com>
5824
5825         PR c/19342
5826         * c-typeck.c (common_type): New routine.  Old common_type renamed
5827         to...
5828         (c_common_type): ...this.
5829         (build_conditional_expr, build_binary_op): Use c_common_type instead
5830         of common_type.
5831
5832 2005-02-10  Steven Bosscher  <stevenb@suse.de>
5833
5834         * doc/md.texi: Replace @samp{length} with @code{length}.
5835
5836 2005-02-09  Zdenek Dvorak  <dvorakz@suse.cz>
5837
5838         PR tree-optimization/18687
5839         * tree-flow.h (find_loop_niter): Declare.
5840         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
5841         Try using scev even for loops with more than one exit.
5842         * tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
5843         (struct ivopts_data): Added niters field.
5844         (struct nfe_cache_elt): New.
5845         (nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
5846         functions.
5847         (tree_ssa_iv_optimize_init): Initialize niters cache.
5848         (determine_number_of_iterations): Removed.
5849         (find_induction_variables): Do not call determine_number_of_iterations.
5850         Access niters for single exit through niter_for_single_dom_exit.
5851         (add_iv_outer_candidates): Access niters for single exit through
5852         niter_for_single_dom_exit.
5853         (may_eliminate_iv): Take data argument.  Use niter_for_exit.  Do not use
5854         number_of_iterations_cond.
5855         (iv_period): New function.
5856         (determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
5857         (may_replace_final_value): Take data argument.  Use
5858         niter_for_single_dom_exit.
5859         (determine_use_iv_cost_outer): Pass data to may_replace_final_value.
5860         (rewrite_use_compare): Pass data to may_eliminate_iv.
5861         (rewrite_use_outer): Pass data to may_replace_final_value.
5862         (free_loop_data): Clean up the niters cache.
5863         (tree_ssa_iv_optimize_finalize): Free the niters cache.
5864         (tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
5865         * tree-ssa-loop-niter.c (find_loop_niter): New function.
5866         (find_loop_niter_by_eval): Use tree_int_cst_lt.
5867         (num_ending_zeros): Moved to tree.c.
5868         * tree.h (num_ending_zeros): Declare.
5869         * tree.c (num_ending_zeros): Moved from tree.c.
5870
5871 2005-02-09  Richard Henderson  <rth@redhat.com>
5872
5873         * builtins.c (DEF_BUILTIN): Add COND argument.
5874         * tree.h (DEF_BUILTIN): Likewise.
5875         * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
5876         DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
5877         match.
5878         (DEF_BUILTIN_STUB): New.
5879         (BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
5880         BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
5881         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
5882         * c-common.c (DEF_BUILTIN): Add COND argument.
5883         * tree.c (local_define_builtin): New.
5884         (build_common_builtin_nodes): New.
5885
5886 2005-02-09  Roger Sayle  <roger@eyesopen.com>
5887
5888         * fold-const.c (fold_strip_sign_ops): New function to simplify a
5889         floating point expression ignoring the sign of the result.
5890         (fold) <ABS_EXPR>: Use it to simplify fabs(x).
5891         (fold) <MULT_EXPR>: Use it to simplify x*x.
5892         * tree.h (fold_strip_sign_ops): Prototype here.
5893         * builtins.c (fold_builtin_copysign): Take an additional FNDECL
5894         argument.  Use fold_strip_sign_ops to simplify the first argument.
5895         (fold_builtin_pow):  Use fold_strip_sign_ops to simplify the
5896         first argument when the second argument is an even integer
5897         constant, but only with -funsafe_math_optimizations.
5898         (fold_builtin_1): Update call to fold_builtin_copysign.
5899
5900 2005-02-09  Ian Lance Taylor  <ian@airs.com>
5901
5902         PR middle-end/19583
5903         * gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
5904         just check whether EH_FILTER_FAILURE falls through.
5905
5906 2005-02-09  Andreas Krebbel  <krebbel1@de.ibm.com>
5907
5908         * gcc/haifa-sched.c (schedule_block): Make queued sched group
5909         insns return to ready list in the next turn.
5910
5911 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
5912
5913         PR middle-end/19402
5914         * builtins.def: New __builtin_powi[lf].
5915         * builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
5916         (expand_builtin_powi): New function.
5917         (expand_builtin): Dispatch to expand_builtin_powi.
5918         * libgcc2.h: Add prototypes for __builtin_powi[lf].
5919         * libgcc2.c: Add __builtin_powi[lf] implementation.
5920         * mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
5921         * optabs.h: Add powi_optab.
5922         * optabs.c (init_optabs): Initialize powi_optab.
5923         * doc/extend.texi: Document __builtin_powi[lf].
5924
5925 2005-02-09  Dorit Naishlos  <dorit@il.ibm.com>
5926
5927         * tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
5928         exists.
5929
5930 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
5931
5932         PR middle-end/19854
5933         * fold-const.c (try_move_mult_to_index): Remove redundant
5934         type argument.  Create ADDR_EXPR with correct type.
5935         (fold): Update callers of try_move_mult_to_index.  Convert
5936         result to the appropriate type.
5937
5938 2005-02-09  Roger Sayle  <roger@eyesopen.com>
5939
5940         PR target/19597
5941         * config/avr/avr.c (default_rtx_costs): Delete.
5942         (avr_operand_rtx_cost): New function.
5943         (avr_rtx_costs): Completely rewrite.
5944
5945 2005-02-08  Hans-Peter Nilsson  <hp@axis.com>
5946
5947         PR target/19806
5948         * config/cris/cris.c (in_code): New variable.
5949         (cris_output_addr_const): Now a static function, a wrapper for
5950         output_addr_const.
5951         (cris_asm_output_symbol_ref): New function, broken out SYMBOL_REF
5952         case from old cris_output_addr_const.
5953         (cris_asm_output_label_ref): Similar for LABEL_REF.
5954         (cris_output_addr_const_extra): Similar for UNSPEC.
5955         * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA)
5956         (ASM_OUTPUT_SYMBOL_REF, ASM_OUTPUT_LABEL_REF): Define.
5957         * config/cris/cris-protos.h (cris_output_addr_const): Remove
5958         declaration.
5959         (cris_asm_output_symbol_ref, cris_output_addr_const_extra)
5960         (cris_asm_output_label_ref): Declare.
5961
5962 2005-02-08  Paolo Bonzini  <bonzini@gnu.org>
5963
5964         PR preprocessor/19801
5965         * doc/cppinternals.texi (Conventions, Lexer, Files): Adjust
5966         filenames that changed when libcpp was moved to the toplevel.
5967
5968 2005-02-07  Roger Sayle  <roger@eyesopen.com>
5969
5970         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
5971         zero extensions of BImode operands.  Call lowpart_subreg instead
5972         of gen_lowpart_common and gen_lowpart_SUBREG.
5973
5974 2005-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
5975
5976         PR ada/19489
5977         * libada-mk.in: Use cc_for_cross_gnattools, not cc_set_by_configure.
5978         * configure.ac: Set cc_for_cross_gnattools.
5979         * configure: Regenerate.
5980
5981 2005-02-08  Alan Modra  <amodra@bigpond.net.au>
5982
5983         PR target/19803
5984         * predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%.
5985
5986 2005-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
5987
5988         PR debug/19327
5989         * dbxout.c (dbxout_symbol) <FUNCTION_DECL>: Skip inline instance
5990         of nested functions.
5991
5992 2005-02-07  Jonathan Wakely  <redi@gcc.gnu.org>
5993
5994         * doc/extend.texi: Document deprecated extensions allowing
5995         static floating-point members to have initializers and allowing
5996         floating-point literals in integral constant expressions.
5997
5998 2005-02-07  Kazu Hirata  <kazu@cs.umass.edu>
5999
6000         * cfgcleanup.c, df.h, diagnostic.c, rtl.c, tree-vectorizer.h,
6001         config/darwin7.h, config/mips/mips.c,
6002         config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm:
6003         Update copyright.
6004
6005         * cse.c: Update comments.
6006
6007 2005-02-07  Richard Guenther  <rguenth@gcc.gnu.org>
6008
6009         PR middle-end/19775
6010         * builtins.c (fold_builtin_sqrt): Transform
6011         sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not
6012         pow(x,y*0.5).
6013
6014 2005-02-07  Leehod Baruch  <leehod@il.ibm.com>
6015             Dorit Naishlos  <dorit@il.ibm.com>
6016
6017         * doc/invoke.texi (ftree-vectorizer-verbose): New.
6018         * opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
6019         * common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
6020         was added.
6021         * tree.h (vect_set_verbosity_level): New extern function declaration
6022         added.
6023         * tree-vectorizer.h (verbosity_levels): New enum type.
6024         * tree-vectorizer.c (vect_debug_stats): Function removed.
6025         (vect_debug_details): Likewise.
6026         (vect_verbosity_level): Global variable was defined and initialized.
6027         (vect_dump): Global variable definition.
6028         (vect_print_dump_info): New function.
6029         (vect_set_dump_settings): New function.
6030         (vect_set_verbosity_level): New function.
6031         (vectorize_loops): Add call to vect_set_dump_settings.
6032
6033         (slpeel_make_loop_iterate_ntimes): Dump condition was changed.
6034         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
6035         (slpeel_tree_peel_loop_to_edge): Likewise.
6036
6037         (vect_analyze_offset_expr): Call to vect_print_dump_info with
6038         appropriate verbosity level instead of call to vect_debug_details
6039         or vect_debug_stats.
6040         (vect_get_base_and_offset):
6041         (vect_create_addr_base_for_vector_ref):
6042         (get_vectype_for_scalar_type):
6043         (vect_create_data_ref_ptr):
6044         (vect_init_vector):
6045         (vect_get_vec_def_for_operand):
6046         (vect_finish_stmt_generation):
6047         (vectorizable_assignment):
6048         (vectorizable_operation):
6049         (vectorizable_store):
6050         (vectorizable_load):
6051         (vect_transform_stmt):
6052         (vect_update_ivs_after_vectorizer):
6053         (vect_do_peeling_for_loop_bound):
6054         (vect_update_inits_of_drs):
6055         (vect_do_peeling_for_alignment):
6056         (vect_transform_loop):
6057         (vect_is_simple_use):
6058         (vect_analyze_operations):
6059         (vect_is_simple_iv_evolution):
6060         (vect_analyze_scalar_cycles):
6061         (vect_analyze_data_ref_dependence):
6062         (vect_analyze_data_ref_dependences):
6063         (vect_compute_data_ref_alignment):
6064         (vect_enhance_data_refs_alignment):
6065         (vect_analyze_data_refs_alignment):
6066         (vect_analyze_data_ref_access):
6067         (vect_analyze_data_ref_accesses):
6068         (vect_analyze_pointer_ref_access):
6069         (vect_get_memtag_and_dr):
6070         (vect_analyze_data_refs):
6071         (vect_mark_relevant):
6072         (vect_stmt_relevant_p):
6073         (vect_mark_stmts_to_be_vectorized):
6074         (vect_can_advance_ivs_p):
6075         (vect_get_loop_niters):
6076         (vect_analyze_loop_form):
6077         (vect_analyze_loop):
6078         (vectorize_loops): Likewise.
6079
6080         (vect_do_peeling_for_loop_bound): Dump format slightly changed.
6081         (vect_update_inits_of_drs):
6082         (vect_do_peeling_for_alignment):
6083         (vect_transform_loop):
6084         (vect_analyze_operations):
6085         (vect_analyze_scalar_cycles):
6086         (vect_analyze_data_ref_dependences):
6087         (vect_analyze_data_refs_alignment):
6088         (vect_analyze_data_ref_accesses):
6089         (vect_analyze_data_refs):
6090         (vect_mark_stmts_to_be_vectorized):
6091         (vect_get_loop_niters):
6092         (vect_analyze_loop_form):
6093         (vect_analyze_loop): Likewise.
6094         (vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.
6095
6096 2005-02-07  Richard Sandiford  <rsandifo@redhat.com>
6097
6098         PR bootstrap/19796
6099         Revert:
6100         2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
6101         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
6102         either -ffast-math or -funsafe-math-optimizations is in use.
6103
6104         2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
6105         * config/mips/irix-csr.c: New file.
6106         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
6107         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
6108         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
6109         executables.
6110
6111 2005-02-07  Alexandre Oliva  <aoliva@redhat.com>
6112
6113         * config/mn10300/linux.h (LIB_SPEC, STARTFILE_SPEC): Remove
6114         redundant, incorrect definitions.
6115
6116         * config/frv/frv.md ("tls_indirect_call"): Turn into libcall-like
6117         expand.
6118         ("*tls_indirect_call"): New, reference hard regs directly.
6119         * config/frv/frv.c (gen_inlined_tls_plt): Adjust.
6120
6121 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
6122
6123         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
6124         Let !-mhard-float !-msoft-float imply -mfpu=softfpa.
6125
6126 2005-02-06  Roger Sayle  <roger@eyesopen.com>
6127
6128         PR rtl-optimization/19800
6129         * simplify_rtx.c (simplify_relational_operation_1): Explicitly
6130         call gen_lowpart_common and gen_lowpart_SUBREG instead of calling
6131         gen_lowpart.
6132
6133 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
6134
6135         * config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200.
6136
6137 2005-02-07  Joseph S. Myers  <joseph@codesourcery.com>
6138
6139         PR other/17135
6140         * doc/invoke.texi: Correct documentation of -freorder-functions.
6141
6142 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
6143
6144         PR other/14402
6145         * doc/invoke.texi: Don't mention gccbug.
6146
6147 2005-02-06  Roger Sayle  <roger@eyesopen.com>
6148             Andrew Pinski  <pinskia@physics.uc.edu>
6149             Paolo Bonzini  <paolo.bonzini@lu.unisi.ch>
6150
6151         * simplify-rtx.c (simplify_relational_operation_1): Simplify
6152         (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))
6153         into just (zero_extract:SI FOO (const_int 1) BAR).
6154
6155 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
6156
6157         * doc/cpp.texi: Include gcc-common.texi.  Don't define gcctabopt
6158         macro locally.  Don't give last revision date.  Use GCC version
6159         number from gcc-common.texi.
6160         * doc/cppinternals.texi: Include gcc-common.texi.  Don't give last
6161         revision date.  Use GCC version number from gcc-common.texi.
6162         Describe being a library as current state rather than as 3.x
6163         history.
6164         * doc/gcc.texi: Remove last update date.
6165         * doc/gccint.texi: Likewise.  Update copyright dates.
6166         * doc/install.texi: Update copyright dates.
6167
6168 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
6169
6170         PR other/7549
6171         * doc/invoke.texi: Mention for each option included in -Wall that
6172         it is included in -Wall.
6173         * doc/gcc.texi: Update copyright and last modification date.
6174
6175 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
6176
6177         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Do not add
6178         unnecessary cast to original induction variable increments.
6179
6180 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
6181
6182         PR tree-optimization/18219
6183         * tree-ssa-loop-ivopts.c (get_computation_at): Produce computations
6184         in distributed form.
6185
6186 2005-02-06  Richard Sandiford  <rsandifo@redhat.com>
6187
6188         * expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
6189         Set bitpos and offset later in the function.  Do nothing if the
6190         target is a register and if the bitfield lies completely outside
6191         that register.
6192         (extract_bit_field): Make the same SUBREG, bitpos and offset changes
6193         here.  Return an uninitialised register if the source value is stored
6194         in a register and the bitfield lies completely outside that register.
6195
6196 2005-02-06  Steven Bosscher  <stevenb@suse.de>
6197
6198         * df.c (df_insn_refs_record): Use XEXP to get the operand of a USE,
6199         not SET_DEST.
6200
6201 2005-02-06  Marcin Dalecki  <martin@dalecki.de>
6202
6203         * diagnostic.c (default_diagnostic_finalizer): Fix use of attribute.
6204
6205 2005-02-06  Geoffrey Keating  <geoffk@apple.com>
6206
6207         * config.gcc (*-*-darwin*): Separate darwin7 and darwin8 configs.
6208         * config/darwin8.h: New.
6209         * config/darwin7.h: Update comment.
6210
6211 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
6212             Dorit Naishlos  <dorit@il.ibm.com>
6213
6214         * tree-vectorizer.h (LOC): New type.
6215         (UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
6216         (loop_line_number): New field in struct _loop_vec_info.
6217         (LOOP_VINFO_LOC, LOOP_LOC): New macros.
6218
6219         * tree-vectorizer.c (input.h): Included.
6220         (find_loop_location): New function.
6221         (vect_debug_stats): Argument changed from loop to LOC. Computation of
6222         loop line number removed.
6223         (vect_debug_details): Likewise.
6224         (new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.
6225
6226         (slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
6227         call to vect_debug_details/stats changed from loop to loop_loc.
6228         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
6229         (slpeel_tree_peel_loop_to_edge): Likewise.
6230
6231         (vect_analyze_offset_expr): Argument in call to vect_debug_details/stats
6232         changed from NULL to UNKNOWN_LOC.
6233         (vect_get_base_and_offset):
6234         (vect_create_addr_base_for_vector_ref):
6235         (get_vectype_for_scalar_type):
6236         (vect_create_data_ref_ptr):
6237         (vect_init_vector):
6238         (vect_get_vec_def_for_operand):
6239         (vect_finish_stmt_generation):
6240         (vectorizable_assignment):
6241         (vectorizable_operation):
6242         (vectorizable_store):
6243         (vectorizable_load):
6244         (vect_transform_stmt):
6245         (vect_update_ivs_after_vectorizer):
6246         (vect_do_peeling_for_loop_bound):
6247         (vect_do_peeling_for_alignment):
6248         (vect_transform_loop):
6249         (vect_is_simple_use):
6250         (vect_analyze_operations):
6251         (vect_is_simple_iv_evolution):
6252         (vect_analyze_scalar_cycles):
6253         (vect_analyze_data_ref_dependences):
6254         (vect_compute_data_ref_alignment):
6255         (vect_enhance_data_refs_alignment):
6256         (vect_analyze_data_ref_access):
6257         (vect_analyze_data_ref_accesses):
6258         (vect_analyze_pointer_ref_access):
6259         (vect_get_memtag_and_dr):
6260         (vect_analyze_data_refs):
6261         (vect_mark_relevant):
6262         (vect_stmt_relevant_p):
6263         (vect_mark_stmts_to_be_vectorized):
6264         (vect_can_advance_ivs_p):
6265         (vect_get_loop_niters):
6266         (vect_analyze_loop):
6267         (vectorize_loops): Likewise.
6268
6269         (vectorizable_load): Argument in call to vect_debug_details/stats
6270         changed from loop to LOOP_LOC (loop_vinfo).
6271         (vect_transform_loop):
6272         (vect_analyze_operations):
6273         (vect_analyze_scalar_cycles):
6274         (vect_analyze_data_ref_dependence):
6275         (vect_enhance_data_refs_alignment):
6276         (vect_analyze_data_ref_accesses):
6277         (vect_analyze_pointer_ref_access):
6278         (vect_analyze_data_refs):
6279         (vect_analyze_loop): Likewise.
6280
6281         (vect_analyze_loop_form): Argument in call to vect_debug_details/stats
6282         changed from loop to loop_loc.
6283
6284         (vect_enhance_data_refs_alignment): Removed unused variable loop.
6285
6286 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
6287             Dorit Naishlos  <dorit@il.ibm.com>
6288
6289         * tree-vectorizer.c (vect_analyze_data_ref_dependence): Function
6290         declaration added.
6291         (vect_analyze_data_ref_dependences): Likewise.
6292
6293         (vect_is_simple_use): Argument changed from loop structure to
6294         loop_vect_info structure.
6295         (vect_can_advance_ivs_p): Likewise.
6296         (vect_create_index_for_vector_ref): Likewise.
6297         (vect_update_ivs_after_vectorizer): Likewise.
6298         (new_stmt_vec_info): Likewise.
6299
6300         (new_loop_vec_info): Second argument in call to new_stmt_vec_info was
6301         changed from loop to loop_vinfo.
6302         (vect_create_data_ref_ptr): First argument in call to
6303         vect_create_index_for_vector_ref was changed from loop to loop_vinfo.
6304         (vectorizable_assignment): Second argument in call to vect_is_simple_use
6305         was changed from loop to loop_vinfo.
6306         (vectorizable_operation): Likewise.
6307         (vectorizable_store): Likewise.
6308         (vect_mark_stmts_to_be_vectorized): Likewise.
6309         (vect_do_peeling_for_loop_bound): First argument in call to
6310         vect_update_ivs_after_vectorizer was changed from loop to loop_vinfo.
6311         (vect_analyze_operations): Argument in call to vect_can_advance_ivs_p
6312         was changed from loop to loop_vinfo.
6313         (vect_analyze_data_ref_dependences): Third argument in call to
6314         vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.
6315
6316         (vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
6317         (vect_create_data_ref_ptr): Likewise.
6318         (vect_init_vector): Likewise.
6319         (vect_get_vec_def_for_operand): Likewise.
6320         (vectorizable_assignment): Likewise.
6321         (vectorizable_operation): Likewise.
6322         (vectorizable_store): Likewise.
6323         (vectorizable_load): Likewise.
6324         (vect_update_ivs_after_vectorizer): Likewise.
6325         (vect_is_simple_use): Likewise.
6326         (vect_analyze_data_ref_dependence): Likewise.
6327         (vect_analyze_pointer_ref_access): Likewise.
6328         (vect_can_advance_ivs_p): Likewise.
6329
6330         * tree-vectorizer.h: (_loop_vec_info): Definition and macros moved
6331         before _stmt_vec_info.
6332         (_stmt_vec_info): Loop field replaced by loop_vec_info.
6333         (STMT_VINFO_LOOP): Replaced with STMT_VINFO_LOOP_VINFO.
6334         (new_stmt_vec_info): Argument changed from loop structure to
6335         loop_vect_info structure
6336
6337         (vect_analyze_data_ref_dependences): Unnecessary line was removed.
6338         (vect_analyze_offset_expr): Avoid 80 columns overflow.
6339         (vect_create_addr_base_for_vector_ref): Likewise.
6340         (vect_analyze_pointer_ref_access): Likewise.
6341
6342 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
6343
6344         PR tree-opt/19768
6345         * tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
6346         phi flag if the phi is abnormal.
6347
6348 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
6349
6350         PR tree-opt/19736
6351         * tree-ssa.c (replace_immediate_uses): Update the immediate_uses
6352         information for the new statement.
6353
6354 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
6355
6356         PR driver/19117
6357         * gcc.c (main): Include the target in -v output.
6358
6359 2005-02-03  Alexandre Oliva  <aoliva@redhat.com>
6360
6361         * combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
6362         Do not drop the extend if we'd have to add a paradoxical subreg
6363         later.  Include optabs.h and insn-codes.h.
6364         * Makefile.in (combine.o): Depend on $(OPTABS_H).
6365
6366 2005-02-02  Roger Sayle  <roger@eyesopen.com>
6367
6368         PR middle-end/19405
6369         * real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
6370         * fold-const.c (const_binop): Avoid constant folding floating
6371         point operations in modes that use composite representations.
6372         * simplify-rtx.c (simplify_binary_operation): Likewise.
6373
6374 2005-02-02  Geoffrey Keating  <geoffk@apple.com>
6375
6376         * config/rs6000/altivec.md (altivec_dst): Make the first operand
6377         a REG, not a MEM.
6378         (altivec_dstt): Likewise.
6379         (altivec_dstst): Likewise.
6380         (altivec_dststt): Likewise.
6381         * config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
6382         of first operand.
6383
6384 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
6385
6386         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
6387         EXPR_LOCUS from orig_cond to the new cond_stmt.
6388         (vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
6389         the new vec_stmt.
6390
6391 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
6392
6393         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
6394         standard_iv_increment_position. Remove call to bsi_next
6395         (no need to bump the iterator anymore).
6396         (vect_create_index_for_vector_ref): Call
6397         standard_iv_increment_position. Remove second function argument.
6398         (vect_finish_stmt_generation): Remove call to bsi_next
6399         (no need to bump the iterator anymore).
6400         (vect_create_data_ref_ptr): Remove second argument (bsi) in call
6401         to vect_create_index_for_vector_ref.
6402
6403 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
6404
6405         * tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
6406         phis are used out of the loop.
6407
6408 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
6409
6410         PR c/17807
6411         * c-decl.c (undef_nested_function): New variable.
6412         (pop_scope): Diagnose undefined nested functions.
6413         (finish_function): Don't attempt cgraph processing or genericizing
6414         if current top-level function contained an undefined nested
6415         function.  Reset undef_nested_function at the end of a top-level
6416         function.
6417
6418 2005-02-02  Zdenek Dvorak  <dvorakz@suse.cz>
6419
6420         * tree.c (build_int_cst_type): Take sign of the value into account
6421         when deciding whether sign extend the value.
6422
6423 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
6424
6425         PR c/18502
6426         * gcc.c (cpp_unique_options): Remove %{trigraphs}.
6427         (cpp_options, cc1_options): Change %{std*&ansi} to
6428         %{std*&ansi&trigraphs}.
6429
6430 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
6431
6432         * cse.c: Update comments.
6433
6434 2005-02-02  Aldy Hernandez  <aldyh@redhat.com>
6435
6436         * config/rs6000/rs6000.c (rs6000_spe_function_arg): Multi-reg
6437         arguments go on the stack.  Do not put complex doubles in odd/even
6438         pairs.
6439
6440 2005-02-02  Steven Bosscher  <stevenb@suse.de>
6441
6442         * doc/invoke.texi: Update the options enabled at -O1, -O2,
6443         and -O3.  Update the documentation for -fgcse-sm, -fgcse-las,
6444         -ftree-pre, and -fthread-jumps.
6445
6446 2005-02-02  Richard Sandiford  <rsandifo@redhat.com>
6447
6448         PR tree-optimization/19578
6449         * tree-flow.h (modified_noreturn_calls): Declare.
6450         (noreturn_call_p): Declare.
6451         * tree-flow-inline.h (noreturn_call_p): New function.
6452         (modify_stmt): Add modified noreturn calls to modified_noreturn_calls.
6453         * tree-cfg.c (modified_noreturn_calls): New variable.
6454         (cleanup_control_flow): Use noreturn_call_p.  Split basic blocks
6455         that contain a mid-block noreturn call.
6456         * tree-ssa.c (delete_tree_ssa): Clear modified_noreturn_calls.
6457
6458 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
6459
6460         * df.c (df_def_record_1, df_uses_record): Don't use
6461         DF_FOR_REGALLOC.
6462         * df.h (DF_FOR_REGALLOC): Remove.
6463
6464 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
6465
6466         PR c/19435
6467         * c-typeck.c (really_start_incremental_init): Reset
6468         constructor_max_index for arrays of incomplete type.
6469
6470 2005-02-02  Jeff Law  <law@redhat.com>
6471
6472         * gcse.c (struct reg_set): Store the block index where the register
6473         was set rather than the setting insn.
6474         (record_one_set, compute_transp): Corresponding changes.
6475         (pre_insert_copy_insn): Do not call replace_one_set.
6476         (replace_one_set): Remove.
6477
6478 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
6479
6480         PR other/15514
6481         * doc/gcov.texi: Fix typo.
6482
6483 2005-02-01  Richard Henderson  <rth@redhat.com
6484
6485         PR target/19680
6486         * config/i386/i386.h (MODES_TIEABLE_P): Use ix86_modes_tieable_p.
6487         * config/i386/i386.c (ix86_hard_regno_mode_ok): Change return
6488         type to bool.
6489         (ix86_tieable_integer_mode_p, ix86_modes_tieable_p): New.
6490         * config/i386/i386-protos.h: Update.
6491
6492 2005-02-01  Steven Bosscher  <stevenb@suse.de>
6493
6494         PR tree-optimization/19217
6495         * tree-cfg.c (verify_expr): Use the data field to see if TP was
6496         seen inside a PHI node.  Do not do the ADDR_EXPR check if it was.
6497         (verify_stmts): Pass (void*)1 as data to verify_expr to signal
6498         that it is walking a PHI node.
6499
6500 2005-02-01  Joseph S. Myers  <joseph@codesourcery.com>
6501
6502         * doc/extend.texi (Nested Functions): Update.
6503
6504 2005-02-01  Richard Henderson  <rth@redhat.com>
6505
6506         PR 19696
6507         * optabs.c (expand_copysign_absneg): Export.
6508         * optabs.h (expand_copysign_absneg): Declare.
6509         * config/rs6000/rs6000.md (copysigntf3): New.
6510
6511 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
6512
6513         PR tree-optimization/19633
6514         * tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
6515         * tree-ssa-alias.c (init_alias_info): Initialize.
6516         (merge_pointed_to_info): Set.
6517         (add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
6518         (dump_points_to_info_for): Show value of pt_null.
6519         (struct count_ptr_d): Declare.
6520         (find_ptr_dereference): Remove.
6521         (ptr_is_dereferenced_by): Remove.
6522         (count_ptr_derefs): New local function.
6523         (count_uses_and_derefs): New local function.
6524         (compute_points_to_and_addr_escape): Call it.  If the number
6525         of dereferences is greater than zero, mark the pointer as
6526         dereferenced.  If there are fewer dereferences than uses of
6527         the pointer, the pointer's value escapes.
6528
6529 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
6530
6531         PR tree-optimization/19670
6532         * tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
6533         here...
6534         (verify_use): ... set it here, instead.
6535
6536 2005-02-01  Janis Johnson  <janis187@us.ibm.com>
6537
6538         * doc/sourcebuild.texi (Test directives): Fix formatting.
6539
6540         * doc/sourcebuild.texi (Test directives): Describe selector
6541         expressions.
6542
6543 2005-02-01  Segher Boessenkool  <segher@kernel.crashing.org>
6544
6545         * config.gcc (powerpc64-*-linux*): Default to -m64 also for
6546         specific 64-bit CPUs.
6547
6548 2005-02-01  Richard Earnshaw  <rearnsha@arm.com>
6549
6550         PR target/16201
6551         * arm.c (arm_eliminable_register): New function.
6552         (adjacent_mem_locations): Don't allow eliminable registers.  Use
6553         HOST_WIDE_INT for address offsets.
6554         * arm-protos.h (arm_eliminable_register): Add prototype.
6555
6556 2005-02-01  Steven Bosscher  <stevenb@suse.de>
6557
6558         PR optimization/15242
6559         * params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
6560         * basic-block.h (duplicate_computed_gotos): Add prototype.
6561         * bb-reorder.c (duplicate_computed_gotos): New function to
6562         duplicate sufficiently small blocks ending in a computed jump.
6563         * passes.c (rest_of_compilation): Call duplicate_computed_gotos
6564         if not optimizing for size.
6565         * cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
6566         never do tail merging for blocks ending in a computed jump.
6567         * doc/invoke.texi: Document the max-goto-duplication-insns param.
6568
6569 2005-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
6570
6571         Patch from Richard Sandiford <rsandifo@redhat.com>
6572         * reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
6573         from inheriting a subreg equivalence with a non-spill register.
6574
6575         * tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.
6576
6577 2005-02-01  Alexandre Oliva  <aoliva@redhat.com>
6578
6579         * config/frv/frv.c (movcc_fp_destination_operand): New.
6580         (gpr_or_memory_operand): Fix typo in comment.
6581         (gpr_or_memory_operand_with_scratch): New.
6582         * config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
6583         * config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
6584         movcc_fp_destination_operand.
6585         (reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
6586         Legitimize memory addresses using a scratch register.
6587
6588 2005-01-31  Jeff Law  <law@redhat.com>
6589
6590         * tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
6591         bitmap a sparse bitmap instead of a simple bitmap.
6592         (mark_def_sites_initialize_block):  Corresponding changes.
6593         (ssa_mark_def_sites_initialize_block): Likewise.
6594         (ssa_mark_phi_uses): Likewise.
6595         (mark_def_site, ssa_mark_def_sites): Likewise.
6596         (mark_def_site_blocks): Likewise.
6597         (rewrite_ssa_into_ssa): Likewise.
6598
6599         * tree-ssa-dom.c (record_cond): Pass correct variable type
6600         for last argument to htab_find_slot_with_hash.
6601
6602         * fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
6603         effects when optimizing 0 % X.  Do not try to optimize X % 0.
6604
6605 2005-01-31  James E. Wilson  <wilson@specifixinc.com>
6606
6607         * config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
6608         1_mmalua.
6609
6610 2005-02-01  Eric Christopher  <echristo@redhat.com>
6611
6612         * config/mips/mips.c (override_options): Warn if -mint64
6613         is used.
6614         * doc/invoke.texi (MIPS Options): Document that -mint64 is
6615         deprecated.
6616
6617 2005-02-01  Kazu Hirata  <kazu@cs.umass.edu>
6618
6619         * cse.c (cse_reg_info): Remove hash_next, next, regno.  Add
6620         timestamp.
6621         (cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
6622         REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
6623         cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
6624         (cached_regno): Initialize to INVALID_REGNUM.
6625         (cse_reg_info_table_size,
6626         cse_reg_info_table_first_uninitialized,
6627         cse_reg_info_timestamp): New.
6628         (REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
6629         get_cse_reg_info.
6630         (init_cse_reg_info, get_cse_reg_info_1): New.
6631         (get_cse_reg_info): Cache the last look-up.
6632         (new_basic_block): Update the code to clear mappings from
6633         registers to cse_reg_info entries.
6634         (cse_main): Call init_cse_reg_info.
6635
6636         * cse.c (get_cse_reg_info): Update a comment.
6637
6638 2005-01-31  Steven Bosscher  <stevenb@suse.de>
6639
6640         PR c/19333
6641         * c-decl.c (start_decl): Do not warn about arrays of elements with
6642         an incomplete type here.
6643         (grokdeclarator): Do it here by making a pedwarn an error.
6644         * c-typeck.c (push_init_level): If there were previous errors with
6645         the constructor type, do not warn about braces for initializers.
6646         (process_init_element): Likewise for excess initializer elements.
6647
6648 2005-01-31  Kazu Hirata  <kazu@cs.umass.edu>
6649
6650         * cse.c (delete_trivially_dead_insn): Don't iterate.
6651
6652 2005-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
6653
6654         * config/rs6000/rs6000.md (copysignsf3): New expand.
6655         (copysigndf3): Likewise.
6656
6657 2005-01-31  Steven Bosscher  <stevenb@suse.de>
6658
6659         * recog.c (constrain_operands): Only look for earlyclobber operand
6660         conflicts if an '&' constraint was seen.
6661
6662 2005-01-31  Marc Espie <espie@openbsd.org>
6663
6664         * config.gcc: Don't include embedded systems fragment, switches default
6665         debugging format to ELF.
6666         * config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
6667         longer pick it up there.
6668
6669 2005-01-31  Dale Johannesen  <dalej@apple.com>
6670
6671         * doc/extend.texi (nested functions): Fix linkage description.
6672         Clarify that static is not allowed.
6673
6674 2005-01-31  Dale Johannesen  <dalej@apple.com>
6675
6676         * config/rs6000/darwin.md (movsf_low_di):  Make work.
6677         (movdf_low_di):  Make work.
6678
6679 2005-01-31  Dale Johannesen  <dalej@apple.com>
6680
6681         * config/rs6000/darwin-tramp.asm (__trampoline_setup):
6682         Make work for 64 bit.
6683
6684 2005-01-31  Roger Sayle  <roger@eyesopen.com>
6685             Dale Johannesen  <dalej@apple.com>
6686
6687         PR middle-end/19650
6688         * fold-const.c (fold_binary_op_with_conditional_arg):
6689         Make types match original operands, before STRIP_NOPS.
6690
6691 2005-01-31  Alan Modra  <amodra@bigpond.net.au>
6692
6693         * config/rs6000/linux-unwind.h (struct gcc_vregs): New.
6694         (struct gcc_regs): Rename from gcc_pt_regs.  Add more regs.
6695         (struct gcc_sigcontext): Delete.  Merge contents to..
6696         (struct gcc_ucontext): ..here.
6697         (get_sigcontext): Delete.
6698         (get_regs): New function, like get_sigcontext but return regs ptr.
6699         64-bit version finds regs from r1 to support vdso.
6700         (ppc_linux_aux_vector): New function.
6701         (ppc_fallback_frame_state): Modify for get_regs.  Restore fprs
6702         and vector regs.
6703
6704 2005-01-31  Ira Rosen  <irar@il.ibm.com>
6705
6706         * tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
6707         sizetype.
6708         (vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
6709         redundant fold. Fix misalignment for MINUS_EXPR.
6710         (vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
6711         (vect_analyze_pointer_ref_access): Likewise.
6712         (vect_get_memtag_and_dr): Likewise.
6713
6714 2005-01-31  Richard Henderson  <rth@redhat.com>
6715
6716         * config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
6717         (absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
6718         absnegdf2_i387, absnegxf2_i387): Likewise.
6719
6720 2005-01-31  Richard Henderson  <rth@redhat.com>
6721
6722         PR 19696
6723         * optabs.c (expand_copysign_absneg): New.
6724         (expand_copysign_bit): Split out from ...
6725         (expand_copysign): ... here.  Use expand_copysign_absneg.
6726
6727 2005-01-30  Roger Sayle  <roger@eyesopen.com>
6728
6729         PR middle-end/19697
6730         * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
6731         constant as the second operand and a register as the third.
6732
6733 2005-01-31  Danny Smith  <dannysmith@users.sourceforge.net>
6734
6735         PR target/19704
6736         * config/i386/i386.c (ix86_function_ok_for_sibcall):  Also check
6737         that dllimport'd functions do not use all call-clobbered registers
6738         to pass parameters.
6739
6740 2005-01-30  Richard Henderson  <rth@redhat.com>
6741
6742         PR 19696
6743         * optabs.c (expand_absneg_bit): Split out from expand_unop and
6744         expand_abs_nojump and generalize.  Use operand_subword and
6745         emit_no_conflict_block.  Support large modes.
6746         (expand_abs_nojump): Use it.  Use HONOR_SIGNED_ZEROS to fall
6747         back to maximum.
6748         (expand_unop): Likewise.  Use HONOR_SIGNED_ZEROS to fall back
6749         negation to subtraction.
6750         (expand_copysign): Check that the format has signed zeros.
6751         Use operand_subword and emit_no_conflict_block.  Support large modes.
6752
6753 2005-01-30  Daniel Berlin  <dberlin@dberlin.org>
6754
6755         Fix PR tree-optimization/19624
6756
6757         * Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
6758         * tree-ssa-pre.c: Add cfgloop.h.
6759         Update comment.
6760         (pre_stats): New member, constified.
6761         (inserted_exprs): New static variable.
6762         (NECESSARY): New macro.
6763         (create_expression_by_pieces): Fold the expression, and
6764         mark it as defaulting to not necessary. Also put in
6765         inserted_exprs.
6766         (fully_constant_expression): New function.
6767         (insert_into_preds_of_block): Modify to not insert phis when we
6768         are playing with induction variables.
6769         Push phis onto the inserted_exprs vector, and mark them as not
6770         necessary by default.
6771         (insert_aux): Call fully_constant_expression on eprime.
6772         If all edges produce the same value, mark it constant.
6773         (mark_operand_necessary): New function.
6774         (remove_dead_inserted_code): New function.
6775         (init_pre): Init loop optimizer to get loop info.
6776         (fini_pre): Free loop_optimizer, and inserted_exprs vec.
6777         (execute_pre): Commit edge inserts, then remove dead code.
6778
6779 2005-01-30  Richard Henderson  <rth@redhat.com>
6780
6781         * rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
6782         * varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.
6783
6784 2005-01-30  Richard Henderson  <rth@redhat.com>
6785
6786         PR target/19700
6787         * config/i386/i386.c (ix86_expand_copysign): New.
6788         (ix86_split_copysign_const): New.
6789         (ix86_split_copysign_var): Rename from ix86_split_copysign,
6790         rearrange op1/nmask operands.
6791         * config/i386/i386-protos.h: Update.
6792         * config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
6793         (copysigndf3): Likewise.
6794         (copysignsf3_const, copysigndf3_const): New.
6795         (copysignsf3_var): Rename from copysignsf3, split out splitter
6796         and fix split predicate for X constraint.
6797         (copysigndf3_var): Similarly.
6798
6799 2005-01-30  Kazu Hirata  <kazu@cs.umass.edu>
6800
6801         * optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
6802         doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
6803         doc/tm.texi, doc/tree-ssa.texi: Update copyright.
6804
6805 2005-01-29  Richard Henderson  <rth@redhat.com>
6806
6807         PR target/19690
6808         * config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
6809         of # and * in constraints.
6810
6811 2005-01-29  Richard Henderson  <rth@redhat.com>
6812
6813         PR middle-end/19689
6814         * expr.c (store_field): Don't strip sub-mode cast when the input
6815         data is even smaller.
6816
6817 2005-01-29  Richard Henderson  <rth@redhat.com>
6818
6819         PR middle-end/19687
6820         * expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
6821         union being empty.
6822
6823 2005-01-29  Richard Henderson  <rth@redhat.com>
6824
6825         * combine.c (make_field_assignment): Fix argument order
6826         to gen_int_mode.
6827
6828 2005-01-29  Richard Guenther <richard.guenther@uni-tuebingen.de>
6829
6830         PR tree-optimization/15791
6831         * fold-const.c (extract_array_ref): New function.
6832         (fold): Fold comparisons between &a[i] and &a[j] or
6833         semantically equivalent trees.
6834
6835 2005-01-29  Jeff Law  <law@redhat.com>
6836
6837         * gcse.c (insert_expr_in_table): Revamp handling of available
6838         and anticipatable occurrence lists to avoid unnecessary list
6839         walking.
6840         (insert_set_in_table): Similarly.
6841
6842 2005-01-29  Joseph S. Myers  <joseph@codesourcery.com>
6843
6844         * c-common.c (fix_string_type): Just use c_build_qualified_type to
6845         build string type.
6846         (c_build_qualified_type): Build qualified array types with
6847         TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
6848         * c-decl.c (c_make_fname_decl): Build unqualified array type
6849         before qualified type.
6850         (grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
6851         type is qualified, not just if type itself is.  Don't apply
6852         qualifiers to array type when declarator is processed.  Apply
6853         qualifiers to field type whether or not it is an array type.
6854         Don't handle array types specially for applying qualifiers to
6855         variables.
6856         * c-typeck.c (composite_type): Build unqualified element type and
6857         array type when forming composite of array types.
6858         (common_pointer_type, comptypes, comp_target_types,
6859         type_lists_compatible_p, build_indirect_ref, build_array_ref,
6860         convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
6861         types.
6862         (type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
6863         (args2) in variables a1 and a2.
6864
6865 2005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
6866
6867         * cse.c (n_elements_made, max_elements_made): Remove.
6868         (insert): Don't touch n_elements_made.
6869         (cse_main): Don't touch n_elements_made or max_elements_made.
6870
6871 2005-01-28  Stephane Carrez  <stcarrez@nerim.fr>
6872
6873         PR target/15384
6874         * config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
6875         configuration part of dp-bit.c to be lost.
6876
6877 2005-01-28  Roger Sayle  <roger@eyesopen.com>
6878
6879         * expmed.c (expand_mult_highpart_optab): When attempting to use
6880         a non-widening multiplication in a wider mode, the operands need
6881         to be converted (zero or sign extended) to that mode.
6882
6883 2005-01-28  Ian Lance Taylor  <ian@airs.com>
6884
6885         PR middle-end/16558
6886         PR middle-end/19583
6887         * gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
6888         through if both operands fall through.
6889
6890 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
6891
6892         * cse.c (fold_rtx) <PC>: Don't optimize.
6893
6894 2005-01-28  Jeff Law  <law@redhat.com>
6895
6896         * fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
6897         (case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.
6898
6899 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
6900
6901         * cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
6902         cse_reg_info_used_list_end): Remove.
6903         (cse_reg_info_list, cse_reg_info_list_free): New.
6904         (get_cse_reg_info): When allocating an instance of
6905         cse_reg_info, add it to the beginning of the cse_reg_info_list
6906         list.  Remove code to maintain cse_reg_info_used_list.
6907         (new_basic_block): Reset the free list to the beginning of
6908         cse_reg_info_list.
6909
6910 2005-01-28  Richard Sandiford  <rsandifo@redhat.com>
6911
6912         * config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
6913         (frv_init_builtins): Change its prototype to take 4 uhalf arguments.
6914         (frv_expand_mdpackh_builtin): New function.
6915         (frv_expand_builtin): Use it to expand __MDPACKH.
6916         * doc/extend.texi (__MDPACKH): Update documentation.
6917
6918 2005-01-28  Uros Bizjak  <uros@kss-loka.si>
6919
6920         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
6921         SSE_FLOAT_MODE_P for use_sse computation.
6922
6923 2005-01-28  Ralf Corsepius  <ralf.corsepius@rtems.org>
6924
6925         PR target/19663
6926         * config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.
6927
6928 2005-01-27  Richard Henderson  <rth@redhat.com>
6929
6930         * builtins.c (expand_builtin_copysign): New.
6931         (expand_builtin): Call it.
6932         * genopinit.c (optabs): Add copysign_optab.
6933         * optabs.c (init_optabs): Initialize it.
6934         (expand_copysign): New.
6935         * optabs.h (OTI_copysign, copysign_optab): New.
6936         (expand_copysign): Declare.
6937
6938         * config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
6939         (copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.
6940
6941         * config/i386/i386.c (ix86_build_signbit_mask): Split from ...
6942         (ix86_expand_fp_absneg_operator): ... here.
6943         (ix86_split_copysign): New.
6944         * config/i386/i386-protos.h: Update.
6945         * config/i386/i386.md (UNSPEC_COPYSIGN): New.
6946         (copysignsf3, copysigndf3): New.
6947
6948         * config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
6949         (copysignsf3, ncopysignsf3): New.
6950         (copysigndf3, ncopysigndf3): New.
6951         (copysignxf3, ncopysignxf3): New.
6952         * config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.
6953
6954 2005-01-27  Arend Bayer  <arend.bayer@web.de>
6955             Kazu Hirata  <kazu@cs.umass.edu>
6956
6957         * cse.c: (find_best_addr): Don't call copy_rtx before calling
6958         fold_rtx.  Save cost recomputation if fold_rtx did nothing.
6959         (fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
6960         NULL_RTX.
6961
6962 2005-01-27  Jeff Law  <law@redhat.com>
6963
6964         * tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
6965         definitions of SSA_NAMEs which are not being rewritten.
6966         (rewrite_ssa_into_ssa): Only initialize the current definition
6967         of an SSA_NAME if that SSA_NAME has been marked for rewriting.
6968         If checking is enabled, assert that SSA_NAME_AUX is clear for all
6969         SSA_NAMEs before returning.
6970
6971 2005-01-27  Kazu Hirata  <kazu@cs.umass.edu>
6972
6973         * c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
6974         cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
6975         tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
6976         config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
6977         config/mips/iris6.h, config/sh/sh.c: Update copyright.
6978
6979 2005-01-27  Steven Bosscher  <stevenb@suse.de>
6980
6981         PR middle-end/17278
6982         * opts.c (decode_options): Move flag_thread_jumps from -O1 and
6983         higher to -O2 and higher.  Likewise for tree PRE.
6984         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
6985         and better.
6986
6987 2005-01-27  Ian Lance Taylor  <ian@airs.com>
6988
6989         PR middle-end/19583
6990         * gimple-low.c (try_catch_may_fallthru): New static function.
6991         (block_may_fallthru): Handle TRY_CATCH_EXPR.
6992         * tree-inline.c (expand_call_inline): Don't warn about reaching
6993         the end of a non-void function being inlined if the function uses
6994         a return slot.
6995
6996 2005-01-27  Jakub Jelinek  <jakub@redhat.com>
6997
6998         * config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.
6999
7000         PR c/18946
7001         * c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
7002         (pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
7003         (implicitly_declare): Handle error_mark_node.
7004
7005 2005-01-27  Richard Henderson  <rth@redhat.com>
7006
7007         PR tree-opt/14329
7008         * tree.h (struct tree_decl): Add debug_expr_is_from.
7009         (DECL_DEBUG_EXPR_IS_FROM): New.
7010         (DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
7011         * dwarf2out.c (dwarf2out_var_location): Update to match.
7012         * tree-outof-ssa.c (create_temp): Likewise.
7013         * var-tracking.c (track_expr_p): Likewise.
7014         * tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
7015         * c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
7016         * toplev.c (default_tree_printer): Likewise.
7017
7018 2005-01-27  Alexandre Oliva  <aoliva@redhat.com>
7019
7020         * config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
7021         GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.
7022
7023 2005-01-27  Steven Bosscher  <stevenb@suse.de>
7024
7025         * tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
7026         CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
7027         ASM_CLOBBERS): Add tree checks.
7028
7029         * c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
7030         (SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
7031         * c-common.def (SWITCH_STMT): Update to match.
7032         * c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
7033         macros instead of SWITCH_EXPR ones.
7034         * c-dump.c (c_dump_tree): Likewise.
7035         * c-gimplify.c (gimplify_switch_stmt): Likewise.
7036         * c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
7037
7038         * doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.
7039
7040 2005-01-27  Alan Modra  <amodra@bigpond.net.au>
7041
7042         * unwind-dw2.c (execute_stack_op): Add missing cases for
7043         DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
7044
7045 2005-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
7046
7047         * config.gcc (Obsolete configurations): Remove 'dummy', add
7048         sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
7049         sparc-*-openbsd*.
7050
7051 2005-01-26  Diego Novillo  <dnovillo@redhat.com>
7052
7053         PR tree-optimization/19633
7054         * tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
7055         CALL_EXPRs.
7056         (maybe_create_global_var): Do not create .GLOBAL_VAR if there
7057         are no call-clobbered variables.
7058         * tree-outof-ssa.c (check_replaceable): Return false for calls
7059         with side-effects.
7060
7061 2005-01-26  Ulrich Weigand  <uweigand@de.ibm.com>
7062
7063         * dbxout.c (dbxout_symbol_location): Resolve constant pool references
7064         even for variables with NULL DECL_INITIAL.
7065
7066 2005-01-26  Stuart Hastings  <stuart@apple.com>
7067
7068         * gimplify.c (shortcut_cond_expr): Re-compute side-effects.
7069
7070 2005-01-26  Richard Henderson  <rth@redhat.com>
7071
7072         PR middle-end/18008
7073         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
7074         field's type.
7075         * expr.c (store_field): Strip conversions to odd-bit-sized types
7076         if the destination field width matches.
7077
7078 2005-01-26  Richard Henderson  <rth@redhat.com>
7079
7080         * c-decl.c, expmed.c, expr.c: Revert last change.
7081
7082 2005-01-26  Richard Henderson  <rth@redhat.com>
7083
7084         PR middle-end/18008
7085         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
7086         field's type.
7087         * expmed.c (store_fixed_bit_field): Create a paradoxical subreg
7088         if we don't need the bits above those present in the current mode.
7089         * expr.c (store_field): Strip conversions to odd-bit-sized types
7090         if the destination field width matches.
7091
7092 2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
7093
7094         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
7095         either -ffast-math or -funsafe-math-optimizations is in use.
7096
7097 2005-01-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
7098
7099         PR target/19293
7100         PR target/19329
7101         * config/avr/avr.c (notice_update_cc): Only set condition code for
7102         ashrqi3 if shift count > 0.
7103         (out_shift_with_cnt): Handle shift count <= 0 as a no-op.
7104         (ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
7105         ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
7106         count <= 0 as a no-op, and shift count >= width by copying zero
7107         or sign bit to all bits of the result.
7108         * config/avr/avr.md (all shifts): Add alternatives for zero shift
7109         count, with attribute "length" set to 0 and "cc" set to "none".
7110
7111 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
7112
7113         * doc/invoke.texi: Document -mTLS.
7114
7115         * testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
7116         * testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
7117         * testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
7118         * testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
7119         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
7120         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
7121         * testsuite/gcc.target/frv/all-tls-local-exec.c: New.
7122         * testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.
7123
7124         * configure.ac: Check for a TLS capable gas.
7125
7126         * configure: Regenerate.
7127
7128 2005-01-26  Richard Henderson  <rth@redhat.com>
7129
7130         PR middle-end/18008
7131         * combine.c (make_field_assignment): Simplify store to zero_extract
7132         from a source with an overlapping mask.
7133
7134 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
7135
7136         2004-11-11  Eric Christopher  <echristo@redhat.com>
7137
7138         * config/frv/frv.md: Add fr400_integer automaton. Don't
7139         allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
7140         to TYPE_MACC.
7141
7142 2005-01-26  Steven Bosscher  <stevenb@suse.de>
7143
7144         PR middle-end/16585
7145         * cfgbuild.c (make_edges): Do not clear or set
7146         current_function_has_computed_jump.
7147         * function.h (struct function): Remove the has_computed_jump field.
7148         (current_function_has_computed_jump): Do not define.
7149         * sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
7150         in a computed jump.  Ignore current_function_has_computed_jump.
7151
7152 2005-01-26  Richard Henderson  <rth@redhat.com>
7153
7154         PR middle-end/19515
7155         * expr.c (categorize_ctor_elements): New argument p_must_clear.
7156         (categorize_ctor_elements_1): Likewise.  Detect a union that isn't
7157         fully initialized.
7158         (mostly_zeros_p): Update for new categorize_ctor_elements argument.
7159         * gimplify.c (gimplify_init_constructor): Likewise.  Only shove
7160         objects into static storage if they have more than one non-zero value.
7161         * tree.h (categorize_ctor_elements): Update decl.
7162
7163 2005-01-26  Steven Bosscher  <stevenb@suse.de>
7164
7165         PR middle-end/19616
7166         * tree.h (CALL_EXPR_TAILCALL): Add comment.
7167         * calls.c (check_sibcall_argument_overlap_1): Revert the change
7168         to this function from 2004-07-10.
7169         * tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
7170         the current function for tail call optimizations if the address
7171         of one of it its arguments is taken.
7172
7173 2005-01-26  Kazu Hirata  <kazu@cs.umass.edu>
7174
7175         * cse.c (fold_rtx): Call equiv_constant only when necessary.
7176
7177 2005-01-26  Bernd Schmidt  <bernd.schmidt@analog.com>
7178
7179         * function.c (expand_function_end): If current_function_calls_alloca,
7180         emit stack restore in a place that is reached when the function falls
7181         through at the end.
7182
7183 2005-01-26  Alexandre Oliva  <aoliva@redhat.com>
7184
7185         * Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
7186         rule to avoid matching inappropriate suffix rule.
7187
7188 2005-01-26  Jan Hubicka  <jh@suse.cz>
7189
7190         PR tree-optimization/19241
7191         * tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
7192
7193 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
7194
7195         * config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
7196         -lsyssim.  Wrap -lc -lsyssim in --start-group --end-group instead
7197         of doubling.
7198         (STARTFILE_SPEC): Add crti.o, before crtbegin.o.
7199         <sim*>: Always use crt1.o, regardless of N in simN.
7200         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
7201         (ENDFILE_SPEC): Add crtn.o, after crtend.o.
7202         (CRT_CALL_STATIC_FUNCTION): Remove.
7203         * config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
7204         use crt1.o, regardless of N in simN.
7205         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
7206         (LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
7207         (CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
7208         case isystem setting.
7209         (MAX_OFILE_ALIGNMENT): Correct to 32, not 16.
7210
7211 2005-01-25  Ian Lance Taylor  <ian@airs.com>
7212
7213         * gimple-low.c (block_may_fallthru): Correct handling of
7214         SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.
7215
7216 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
7217
7218         * config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
7219         handlers to match indentation; nested under the mtune=* handler.
7220         Similar for mcpu= and march=.
7221
7222 2005-01-25  Daniel Jacobowitz  <dan@codesourcery.com>
7223
7224         * config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
7225         * config/mips/linux64.h (LIB_SPEC): Likewise.
7226         * config/mn10300/linux.h (LIB_SPEC): Likewise.
7227         * config/sh/linux.h (LIB_SPEC): Likewise.
7228
7229 2005-01-25  Aldy Hernandez  <aldyh@redhat.com>
7230
7231         * config/frv/frv.c (frv_legitimize_tls_address): New.
7232         (TARGET_HAVE_TLS): Define.
7233         (FRV_SYMBOL_REF_TLS_P): Define.
7234         (frv_override_options): Handle new register classes.
7235         (frv_legitimate_address_p): Reject tls addresses.
7236         (frv_legitimize_address): Handle TLS addresses.
7237         (gen_inlined_tls_plt): New.
7238         (gen_tlsmoff): New.
7239         (frv_legitimize_tls_address): New.
7240         (unspec_got_name): Add TLS entries.
7241         (got12_operand): Add R_FRV_TLSMOFF12 case.
7242         (frv_emit_move): Fixup TLS addresses.
7243         (frv_emit_movsi): Legitimize TLS addresses.
7244
7245         * config/frv/frv.h (MASK_BIG_TLS): New.
7246         (TARGET_BIG_TLS): New.
7247         (HAVE_AS_TLS): Define.
7248         (TARGET_SWITCHES): Add -mTLS and -mtls options.
7249         (enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
7250         (REG_CLASS_NAMES): Same.
7251         (REG_CLASS_CONTENTS): Same.
7252         (CONSTRAINT_LEN): New.
7253         (REG_CLASS_FROM_CONSTRAINT): New.
7254         (PREDICATE_CODES): Add symbolic_operand.
7255
7256         * config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
7257         UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
7258         UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
7259         UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
7260         R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
7261         R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
7262         R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
7263         GR9_REG, GR14_REG, LRREG.
7264         (type): Add load_or_call attribute.
7265         ("load_or_call"): New reservation.
7266         ("call_gettlsoff"): New.
7267         ("tls_indirect_call"): New.
7268         ("tls_load_gottlsoff12"): New.
7269         ("tlsoff_hilo"): New.
7270         ("tls_tlsdesc_ldd"): New.
7271         ("tls_tlsoff_ld"): New.
7272         ("tls_lddi"): New.
7273
7274         * config/frv/frv-protos.h (symbolic_operand): Protoize.
7275
7276         2005-01-25  Alexandre Oliva  <aoliva@redhat.com>
7277
7278         * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
7279         * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
7280         * config/frv/frv.c (TLS_BIAS): Define.
7281         (frv_output_dwarf_dtprel): New.
7282
7283 2005-01-26  Jakub Jelinek  <jakub@redhat.com>
7284
7285         PR rtl-optimization/19579
7286         * ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
7287         both A and B, see if they don't clobber registers the other expr uses.
7288
7289 2005-01-25  J"orn Rennecke <joern.rennecke@st.com>
7290
7291         * real.c (do_add): Initialize signalling and canonical members.
7292
7293         * real.c (real_from_integer): Zero out destination.
7294
7295 2005-01-18  Jan Hubicka  <jh@suse.cz>
7296
7297         PR tree-optimize/19337
7298         * tree-inline.c (initialize_inlined_parameters): Copy
7299         saved_static_chain_decl only.
7300
7301 2005-01-25  Richard Henderson  <rth@redhat.com>
7302
7303         PR target/19556
7304         PR target/19584
7305         * config/i386/i386.c (x86_inter_unit_moves): Zero.
7306         (ix86_preferred_reload_class): Rewrite fp-constant section, with
7307         80387 enabled, to return a proper subclass.  Return the subset that
7308         overlaps with GENERAL_REGS for PLUS.
7309         * config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.
7310
7311 2005-01-25  Richard Henderson  <rth@redhat.com>
7312
7313         PR middle-end/19609
7314         * tree-complex.c (expand_complex_div_wide): Use the correct formulae.
7315
7316 2005-01-25  Roger Sayle  <roger@eyesopen.com>
7317
7318         * expmed.c (choose_multiplier): Change interface to return the
7319         multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
7320         (expand_divmod): Update calls to choose_multiplier.
7321
7322 2005-01-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
7323
7324         PR middle-end/19330
7325         * expmed.c (extract_bit_field): Use adjust_address instead of
7326         gen_lowpart when op0 is a MEM.
7327
7328 2005-01-24  Steven Bosscher  <stevenb@suse.de>
7329
7330         * cfgexpand.c (expand_gimple_tailcall): Fix typo.
7331
7332 2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
7333
7334         * config/mips/irix-csr.c: New file.
7335         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
7336         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
7337         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
7338         executables.
7339
7340 2005-01-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
7341
7342         PR bootstrap/19364
7343         * config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
7344         sparc/elf.h, add sparc/sp-elf.h.
7345         (sparc-*-rtems*): Likewise.
7346         (sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
7347         tm-dwarf2.h, add sparc/sp-elf.h.
7348         (sparc86x-*-elf): Likewise.
7349         (sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
7350         * config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
7351         TARGET_OS_CPP_BUILTINS.
7352         * config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
7353         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
7354         Undefine it.
7355         * config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
7356         * config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
7357         (SWITCH_TAKES_ARG): Likewise.
7358         (LOCAL_LABEL_PREFIX): Likewise.
7359         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
7360         (TARGET_N_FORMAT_TYPES): Delete.
7361         (TARGET_FORMAT_TYPES): Likewise.
7362         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
7363         * config/sparc/elf.h: Delete.
7364         * config/sparc/sp-elf.h: New file.
7365
7366 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
7367
7368         * tree-flow-inline.h (phi_arg_from_edge): Remove.
7369         * tree-flow.h: Remove the corresponding prototype.
7370         * tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
7371         tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.
7372
7373 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
7374
7375         PR target/17751
7376         * config/rs6000/rs6000.c (rs6000_file_start): Create toc section
7377         for AIX ABI or ELF -fPIC.
7378         (rs6000_emit_load_toc_table): Don't create toc_section here.
7379         (rs6000_xcoff_file_start): Nor here.
7380
7381 2005-01-24  J"orn Rennecke <joern.rennecke@st.com>
7382
7383         * sh.c (ra.h): Don't #include.
7384         (hard_regs_intersect_p): New function, resurrected from ra.c.
7385
7386         * sh.c: Fix 1996 Copyright.
7387
7388 2005-01-24  Richard Henderson  <rth@redhat.com>
7389             Aldy Hernandez  <aldyh@redhat.com>
7390
7391         * regrename.c (note_sets): Handle subregs.
7392
7393 2005-01-24  Joseph S. Myers  <joseph@codesourcery.com>
7394
7395         PR bootstrap/18058
7396         * genconditions.c (write_header, write_conditions): Elide file if
7397         not GCC >= 3.0.1.
7398
7399 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
7400
7401         * c-opts.c, expmed.c, gengtype.c, tree-complex.c,
7402         config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
7403         Update copyright.
7404
7405 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
7406
7407         * builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
7408         expand_builtin_printf, expand_builtin_fprintf,
7409         expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
7410         checking against POINTER_TYPE.
7411         (validate_arglist): Handle POINTER_TYPE code by checking
7412         POINTER_TYPE_P.
7413
7414 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
7415
7416         * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
7417         init_rtlanal): New.
7418         (for_each_rtx): Call for_each_rtx_1.
7419         * rtl.h (init_rtlanal): Declare.
7420         * toplev.c (backend_init): Call init_rtlanal.
7421
7422 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
7423
7424         * flow.c (propagate_one_insn): Formatting.
7425
7426         PR middle-end/19551
7427         * flow.c (libcall_dead_p): Be more conservative if unsure.
7428         If there are any instructions between insn and call, see if they are
7429         all dead before saying the libcall is dead.
7430
7431 2005-01-24  Uros Bizjak  <uros@kss-loka.si>
7432
7433         * config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
7434         operand constraint for operand 0.
7435
7436 2005-01-23  Richard Henderson  <rth@redhat.com>
7437
7438         PR 19486
7439         * tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
7440         edges leading to join block.
7441
7442 2005-01-23  Roger Sayle  <roger@eyesopen.com>
7443
7444         * expmed.c (expand_mult_highpart): Make static.  Change type of
7445         constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
7446         (expand_divmod): Updates calls to expand_mult_highpart by using
7447         gen_int_mode to pass a CONST_INT rtx.
7448         * rtl.h (expand_mult_highpart): Remove prototype.
7449
7450 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
7451
7452         * flow.c (regset_bytes, regset_size): Remove.
7453
7454         * cfganal.c: Fix a reference to Harvey's paper.
7455
7456 2005-01-23  Steven Bosscher  <stevenb@suse.de>
7457
7458         PR rtl-optimization/19464
7459         * tree-optimize.c (init_tree_optimization_passes): Add one more
7460         copyrename pass just before out-of-ssa.
7461
7462 2005-01-23  Joseph S. Myers  <joseph@codesourcery.com>
7463
7464         PR bootstrap/18058
7465         * recog.c (recog_memoized): Don't define if GENERATOR_FILE.
7466         * ggc-none.c (ggc_free): Define.
7467
7468 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
7469
7470         * cse.c (max_reg, max_insn_uid): Remove.
7471         (cse_main): Don't access max_reg or max_insn_uid.
7472
7473         * c-common.c (explicit_flag_signed_bitfields,
7474         lang_statement_code_p, lang_expand_function_end): Remove.
7475         * c-common.h: Remove the corresponding declarations.
7476         * c-opts.c (c_common_handle_option): Remove all write access
7477         to explicit_flag_signed_bitfields.
7478
7479         * cgraph.c (cgraph_varpool_n_nodes): Remove.
7480         (cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
7481         * cgraph.h: Remove the corresponding declaration.
7482
7483         * gcse.c (null_pointer_info): Remove.
7484
7485 2005-01-23  Roger Sayle  <roger@eyesopen.com>
7486             Eric Botcazou  <ebotcazou@libertysurf.fr>
7487
7488         * combine.c (simplify_logical): Only simplify logical expressions
7489         of the form ior(and(x,y),z) by the inverse distributive law if the
7490         result is cheaper than the original.
7491
7492 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
7493
7494         * alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
7495         fold-const.c, gimplify.c, params.h, tree-data-ref.c,
7496         tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
7497         tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
7498         config/freebsd-spec.h, config/arm/arm.h,
7499         config/h8300/h8300.md, config/i386/i386.md,
7500         config/i386/predicates.md, config/i386/sse.md,
7501         config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
7502         config/vax/vax.md: Fix comment typos.  Follow spelling
7503         conventions.
7504
7505 2005-01-23  Steven Bosscher  <stevenb@suse.de>
7506
7507         * gengtype.c (walk_type): Produce `not equal to' compares for loop
7508         tests, instead of `less than'.
7509
7510 2005-01-23  Richard Sandiford  <rsandifo@redhat.com>
7511
7512         * function.c (assign_parm_setup_block): When creating a new stack slot
7513         for a parameter, get its alignment from the parameter's DECL_ALIGN
7514         rather than the type's TYPE_ALIGN.  Make sure that the parameter
7515         is at least word aligned.
7516
7517 2005-01-22  Roger Sayle  <roger@eyesopen.com>
7518
7519         PR middle-end/19378
7520         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
7521
7522 2005-01-22  Richard Henderson  <rth@redhat.com>
7523
7524         PR target/19506
7525         * config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
7526         in both compare operands.
7527         (movdfcc_1_sse_max): Likewise.
7528         (movsfcc_1_sse): Likewise.  Add earlyclobber for scratch.
7529         (movdfcc_1_sse): Likewise.
7530         * config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
7531         scratch register as needed.
7532
7533 2005-01-22  Richard Henderson  <rth@redhat.com>
7534
7535         * config/i386/i386.md (smaxsf3): Fix mnemonic typo.
7536
7537         * config/i386/i386.c (ix86_prepare_fp_compare_args): Fix is_sse test.
7538
7539 2005-01-22  Richard Henderson  <rth@redhat.com>
7540
7541         * genopinit.c (optabs): Use smin/smax for floating point too.
7542         * doc/md.texi: Update to match.  Clarify that floating point
7543         results are undefined for +0/-0 and NaN.
7544         * doc/rtl.texi: Likewise.
7545         * rtl.def (SMIN, SMAX): Likewise
7546         * tree.def (MIN_EXPR, MAX_EXPR): Likewise.
7547
7548         * config/alpha/alpha.md (smaxdf3, smindf3, smaxsf3, sminsf3): Add
7549         leading 's' to the name.
7550         * config/ia64/ia64.md (smaxsf3, sminsf3, smaxdf3, smindf3,
7551         smaxxf3, sminxf3): Likewise.
7552         * config/rs6000/rs6000.md (smaxdf3, smindf3, smaxsf3, sminsf3):
7553         Likewise.
7554
7555 2005-01-22  Paul Brook  <paul@codesourcery.com>
7556
7557         * config/arm/arm.md: Use "Uy" constraint for wcgr load/stores.
7558
7559 2005-01-21  Mark Dettinger  <dettinge@de.ibm.com>
7560
7561         * config/s390/s390.c (struct processor_costs): New fields
7562         dlgr, dlr, dr, dsgfr, dsgr.
7563         (z900_cost, z990_cost): Values for new fields.
7564         (s390_rtx_costs): New cases MEM und COMPARE in switch
7565         statement. Modified handling of SIGN_EXTEND, ZERO_EXTEND,
7566         DIV, MOD, UDIV, UMOD.
7567
7568 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
7569
7570         * config/s390/s390.md ("doloop_si64"): Reload input value directly
7571         into the register being decremented.
7572         ("doloop_si31", "doloop_di"): Likewise.
7573         ("*doloop_si_long"): Adapt pattern.
7574
7575 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
7576
7577         * config/s390/s390.h (HARD_REGNO_NREGS): Fix computation for
7578         access registers.
7579         (CLASS_MAX_NREGS): Likewise.
7580
7581 2005-01-21  Daniel Berlin  <dberlin@dberlin.org>
7582
7583         * doc/tree-ssa.texi (Statement Operands): Add example for new
7584         must-def macro. Note deprecation of old operands interface.
7585
7586 2005-01-22  Richard Sandiford  <rsandifo@redhat.com>
7587
7588         PR tree-optimization/19484
7589         * tree-cfg.c (remove_fallthru_edge): New function.
7590         (cleanup_control_flow): Remove fallthru edges from calls that are
7591         now known not to return.
7592
7593 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
7594
7595         Fix PR tree-optimization/19038
7596         * tree-ssa-dom.c (cprop_operand): Don't replace loop invaeriant
7597         copies with loop variant ones.
7598
7599 2005-01-22  Kazu Hirata  <kazu@cs.umass.edu>
7600
7601         * cfganal.c, real.h, reorg.c, timevar.def, tree-ssa-ccp.c,
7602         config/alpha/alpha-protos.h, config/alpha/alpha.h,
7603         config/alpha/alpha.md, config/alpha/predicates.md,
7604         config/sparc/freebsd.h, config/sparc/netbsd-elf.h,
7605         config/sparc/sol2.h: Update copyright.
7606
7607         * tree-cfg.c (remove_forwarder_block_with_phi): Look at the
7608         first label to see if it is a nonlocal label.
7609
7610 2005-01-22  David Edelsohn  <edelsohn@gnu.org>
7611             Andrew Pinski  <pinskia@physics.uc.edu>
7612
7613         PR target/19491
7614         * config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
7615         maximum number of GPRs.  Saturate n_fpr at maximum number of FPRs.
7616
7617 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
7618
7619         * config/rs6000/rtems.h: Update copyright.
7620
7621 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
7622
7623         PR target/19548
7624         * config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4.
7625         (CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h).
7626         (SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC.
7627
7628 2005-01-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
7629
7630         PR c/18809
7631         * c-typeck.c (convert_arguments): Check for error_mark_node.
7632
7633 2005-01-21  Ian Lance Taylor  <ian@airs.com>
7634
7635         PR tree-optimization/13000
7636         * tree-inline.c: Include "tree-flow.h".
7637         (expand_call_inline): If warn_return_type, warn if non-void inline
7638         function falls through.
7639         * tree-cfg.c (execute_warn_function_return): Don't warn about
7640         control reaching end if TREE_NO_WARNING is set.  Set
7641         TREE_NO_WARNING.
7642         * gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
7643         has been lowered.
7644         * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
7645         branch if we don't need one.
7646         * c-typeck.c: Include "tree-flow.h"
7647         (c_finish_bc_stmt): Don't add a goto if the current statement
7648         list doesn't fall through to the current point.
7649
7650 2005-01-21  Roger Sayle  <roger@eyesopen.com>
7651
7652         PR rtl-optimization/576
7653         * real.c (real_arithmetic): Change return type from void to bool
7654         to return an indication that the result may be inexact.
7655         * real.h (real_arithmeric): Update prototype.
7656         * fold-const.c (const_binop):  Don't constant fold floating
7657         point expressions when the user specifies -frounding-math and
7658         the result may depend upon the run-time rounding mode.
7659         (fold_convert_const_real_from_real): Clean-up.
7660         (fold_initializer): Ignore flag_rounding_math for initializers.
7661         * simplify-rtx.c (simplify_binary_operation): Likewise, don't
7662         constant fold FP operations with flag_rounding_math if the
7663         result may depend upon the run-time rounding mode.
7664
7665 2005-01-21  Tom Tromey  <tromey@redhat.com>
7666
7667         * c-cppbuiltin.c (define__GNUC__): Correct assertion.
7668
7669 2005-01-21  Kazu Hirata  <kazu@cs.umass.edu>
7670
7671         * tree-cfg.c: Fix comment typos.
7672
7673 2005-01-21  J"orn Rennecke <joern.rennecke@st.com>
7674
7675         * passes.c (rest_of_handle_flow2): Close / open the flow2 dump file
7676         around the call to rest_of_handle_branch_target_load_optimize.
7677
7678 2005-01-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
7679
7680         * config.gcc (sparc-*-netbsdelf*): Include dbxelf.h
7681         (sparc64-*-openbsd*): Likewise.
7682         (sparclite-*-elf*): Include tm-dwarf2.h.
7683         (sparc86x-*-elf*): Likewise.
7684         (sparc64-*-elf*): Likewise.
7685         * config/sparc/linux64.h (DWARF2_DEBUGGING_INFO): Delete.
7686         (DBX_DEBUGGING_INFO): Likewise.
7687         * config/sparc/liteelf.h (DWARF2_DEBUGGING_INFO): Likewise.
7688         (PREFERRED_DEBUGGING_TYPE): Likewise.
7689         * config/sparc/netbsd-elf.h (PREFERRED_DEBUGGING_TYPE): Likewise.
7690         * config/sparc/sp64-elf.h (DBX_DEBUGGING_INFO): Likewise.
7691         (PREFERRED_DEBUGGING_TYPE): Likewise.
7692         * config/sparc/sp86x-elf.h (DWARF2_DEBUGGING_INFO): Likewise.
7693         (PREFERRED_DEBUGGING_TYPE): Likewise.
7694         * config/sparc/sparc.h (DBX_DEBUGGING_INFO): Likewise.
7695
7696 2005-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
7697
7698         PR target/18701
7699         * combine.c (combine_simplify_rtx): Revert change of 2004-12-31.
7700
7701 2005-01-20  Paul Brook  <paul@codesourcery.com>
7702
7703         * doc/rtl.texi: Document value extension requirements for CONST_INT.
7704
7705 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
7706
7707         * tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
7708         label is first in a sequence of labels.
7709
7710         * tree-cfg.c (tree_verify_flow_info): Fix a typo.
7711
7712 2005-01-20  Janis Johnson  <janis187@us.ibm.com>
7713             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
7714
7715         * doc/sourcebuild.texi (Test Directives): New.
7716
7717 2005-01-20  Roger Sayle  <roger@eyesopen.com>
7718
7719         * real.c (real_floor): Don't leave the result uninitialized when
7720         mode is VOIDMode, but return the unrounded intermediate value.
7721         (real_ceil): Likewise.
7722
7723 2005-01-20  Paul Brook  <paul@codesourcery.com>
7724
7725         * config/arm/arm.md (insv): Use gen_int_mode.
7726
7727 2005-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
7728
7729         * config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
7730         * config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
7731         * config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
7732         * config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
7733         * config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
7734
7735 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
7736
7737         Fix PR debug/19124
7738         * dwarf2out.c (concat_loc_descriptor): We don't know we can use
7739         fbreg, so we have to assume we can't.
7740         (loc_descriptor_from_tree_1): Ditto.
7741         (containing_function_has_frame_base): New function.
7742         (add_location_or_const_value_attribute): Use it.
7743         Also try to generate a frame_base from a single element location
7744         list.
7745
7746 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
7747
7748         PR tree-optimization/15349
7749         * timevar.def (TV_TREE_MERGE_PHI): New.
7750         * tree-cfg.c (tree_forwarder_block_p): Add a new argument
7751         PHI_WANTED.
7752         (remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
7753         calls to tree_forwarder_block_p.
7754         (remove_forwarder_block_with_phi, merge_phi_nodes,
7755         gate_merge_phi, pass_merge_phi): New.
7756         * tree-optimize.c (init_tree_optimization_passes): Add
7757         pass_merge_phi.
7758         * tree-pass.h: Add an extern for pass_merge_phi;
7759
7760 2005-01-20  Richard Henderson  <rth@redhat.com>
7761
7762         PR target/19418
7763         * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
7764         (_mm_castps_pd, _mm_castps_si128): New.
7765         (_mm_castsi128_ps, _mm_castsi128_pd): New.
7766
7767 2005-01-20  Richard Henderson  <rth@redhat.com>
7768
7769         PR target/19530
7770         * config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
7771         __builtin_ia32_vec_init_v2si.
7772         (_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
7773         * config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
7774         (ix86_init_mmx_sse_builtins): Create it.
7775         (ix86_expand_builtin): Expand it.
7776         (ix86_expand_vector_set): Handle V2SFmode and V2SImode.
7777         * config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
7778         (vec_extractv2si_0, vec_extractv2si_1): New.
7779
7780 2005-01-20  Richard Henderson  <rth@redhat.com>
7781
7782         PR target/16533
7783         * config/i386/i386.c (ix86_expand_push): New.
7784         * config/i386/mmx.md (push<MMXMODE>1): New.
7785         * config/i386/sse.md (push<SSEMODE>1): New.
7786         * config/i386/i386-protos.h: Update.
7787
7788 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
7789
7790         * params.def, params.h, predict.c, tree-ssa-loop-im.c: Update
7791         copyright.
7792
7793 2005-01-20  Richard Henderson  <rth@redhat.com>
7794
7795         * rtl.def (CONST_VECTOR): Use RTX_CONST_OBJ.
7796         * rtl.h (CONSTANT_P): Don't special case CONST_VECTOR.
7797
7798 2005-01-19  Richard Henderson  <rth@redhat.com>
7799
7800         PR target/19350
7801         * config/i386/i386.c (ix86_expand_vector_move_misalign): Convert
7802         to V4SFmode in SSE1 fallback load path.
7803
7804 2005-01-19  Richard Henderson  <rth@redhat.com>
7805
7806         * config/i386/i386.c (ix86_expand_vector_init_one_var): Fix typo
7807         in QImode expansion to ix86_expand_vector_set.
7808         (ix86_expand_vector_init_general): Fix typo in V8HImode recursive call.
7809
7810 2005-01-19  Richard Henderson  <rth@redhat.com>
7811
7812         PR target/19511
7813         * config/i386/i386.c (ix86_preferred_reload_class): Return a proper
7814         subclass of the input class.
7815         (ix86_secondary_memory_needed): Always true for cross-MMX classes.
7816         Always true for cross-SSE1 classes.  Rationalize conditionals.
7817         * config/i386/i386.h (SSE_CLASS_P, MMX_CLASS_P): Use straight equality.
7818         * config/i386/i386.md (movsi_1): Add MMX/SSE zeros.  Fix alternatives
7819         for SSE1.  Don't check TARGET_INTER_UNIT_MOVES.
7820         (movdi_2): Add MMX/SSE zeros.
7821         (movdi_1_rex64): Likewise.  Don't check TARGET_INTER_UNIT_MOVES.
7822         (movsf_1): Don't check TARGET_INTER_UNIT_MOVES.
7823         (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
7824         (movsi_1_nointernunit, movdi_1_rex64_nointerunit): Remove.
7825         (movsf_1_nointerunit, zero_extendsidi2_32_1): Remove.
7826         (zero_extendsidi2_rex64_1): Remove.
7827         (MOV0 peephole): Check GENERAL_REG_P.
7828
7829 2005-01-19  Richard Henderson  <rth@redhat.com>
7830
7831         PR target/19427
7832         * config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
7833         shufps elements.
7834         (ix86_expand_vector_extract): Likewise.
7835
7836 2005-01-19  Richard Henderson  <rth@redhat.com>
7837
7838         PR middle-end/19304
7839         * expr.c (emit_move_change_mode): New argument force; use
7840         simplify_gen_subreg if true.
7841         (emit_move_via_alt_mode): Merge into ...
7842         (emit_move_via_integer): ... here.
7843         (emit_move_ccmode): Use emit_move_change_mode directly.
7844
7845 2005-01-19  Richard Henderson  <rth@redhat.com>
7846
7847         PR target/19518
7848         * config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
7849         (alpha_preferred_reload_class): Handle CONST_VECTOR.
7850         (alpha_emit_set_const_1): Add no_output parameter; don't emit
7851         rtl if true.
7852         (alpha_emit_set_const): Likewise.  Make static.
7853         (alpha_emit_set_long_const): Make static.
7854         (alpha_extract_integer): Split out from alpha_expand_mov.
7855         (alpha_split_const_mov): Likewise.
7856         (alpha_expand_mov): Use them.  Handle CONST_VECTOR.
7857         (alpha_legitimate_constant_p): New.
7858         * config/alpha/alpha-protos.h: Update.
7859         * config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
7860         (LEGITIMATE_CONSTANT_P): Re-implement with a function.
7861         * config/alpha/alpha.md (movsi): Add n alternative.
7862         (movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
7863         (mov<VEC>_fix, mov<VEC>_nofix): Add i alternative.
7864         (splitters for all of the above): Use alpha_split_const_mov.
7865         * config/alpha/predicates.md (non_add_const_operand): New.
7866         (non_zero_const_operand): New.
7867         (input_operand): Use alpha_legitimate_constant_p after reload.
7868
7869 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
7870
7871         PR tree-optimization/19038
7872         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): New function.
7873         (add_candidate): Add ivs with increment in latch only if
7874         allow_ip_end_pos_p is true.
7875         (determine_iv_cost): Use empty_block_p.
7876
7877 2005-01-19  Daniel Berlin  <dberlin@dberlin.org>
7878
7879         * cfganal.c (compute_dominance_frontiers_1): Replace with new algorithm
7880         (compute_dominance_frontiers): Ditto.
7881
7882 2005-01-19  Ralf Corsepius  <ralf.corsepius@rtems.org>
7883
7884         PR target/19529
7885         * config/sh/t-rtems: New.
7886         * config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.
7887
7888 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
7889
7890         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Always subtract
7891         the offset of the selected field.
7892
7893 2005-01-19  Kazu Hirata  <kazu@cs.umass.edu>
7894
7895         * tree-cfg.c (remove_forwarder_block): Fix the check to
7896         prevent a nonlocal label from appearing in the middle of a
7897         basic block.
7898
7899 2005-01-19  Hans-Peter Nilsson  <hp@axis.com>
7900
7901         PR rtl-optimization/19462
7902         * reorg.c (find_end_label): Create return insn only if
7903         current_function_epilogue_delay_list is empty.
7904
7905 2005-01-19  Paolo Bonzini  <bonzini@gnu.org>
7906
7907         * doc/passes.texi: Remove paragraph mentioning new-ra.
7908
7909 2005-01-19  Jakub Jelinek  <jakub@redhat.com>
7910
7911         PR rtl-optimization/15139
7912         * combine.c: Include params.h.
7913         (count_rtxs): New function.
7914         (record_value_for_reg): If replace_rtx would replace at least
7915         2 occurrences of REG in VALUE and TEM is really large, replace REG with
7916         (clobber (const_int 0)) instead of TEM.
7917         * params.def (PARAM_MAX_LAST_VALUE_RTL): New.
7918         * params.h (MAX_LAST_VALUE_RTL): New.
7919         * Makefile.in (combine.o): Depend on $(PARAMS_H).
7920         * doc/invoke.texi (--param max-last-value-rtl=N): Document.
7921
7922         PR c/17297
7923         * c-typeck.c (digest_init): Only call build_vector if all constructor
7924         elements are *_CST nodes.
7925         * gimplify.c (gimplify_init_constructor): Likewise.
7926
7927         PR middle-end/19164
7928         * c-typeck.c (digest_init): Only call build_vector if inside_init
7929         is a CONSTRUCTOR.
7930
7931 2005-01-18  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
7932
7933         * toplev.c (init_asm_output): Remove dead #ifdef.
7934
7935 2005-01-18  Kaz Kojima  <kkojima@gcc.gnu.org>
7936
7937         * config/sh/linux.h (TARGET_C99_FUNCTIONS): Define.
7938
7939 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
7940
7941         * calls.c (expand_call): Check DECL_BUILT_IN_CLASS before
7942         accessing DECL_FUNCTION_CODE.
7943         * dojump.c (do_jump): Likewise.
7944         * gimplify.c (gimplify_call_expr): Likewise.
7945         * predict.c (expr_expected_value): Likewise.
7946         (strip_builtin_expect): Likewise.
7947         * tree-inline.c (estimate_num_insns_1): Likewise.
7948         * tree-ssa-loop-im.c (stmt_cost): Likewise
7949         * fold-const.c (fold): Test for BUILT_IN_NORMAL.
7950         (tree_expr_nonnegative_p): Likewise.
7951
7952 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
7953
7954         * config/sparc/sparc.c (load_pic_register): Emit the appropriate
7955         variant of the load_pcrel_sym pattern.
7956         * config/sparc/sparc.md (P macro): Move to the top.
7957         (load_pcrel_sym): Macroize using P.
7958         (save_register_window): Likewise.
7959
7960 2005-01-18  Aldy Hernandez  <aldyh@redhat.com>
7961
7962         * config/rs6000/rs6000.md ("sunordered"): Disable for e500.
7963         ("sordered"): Same.
7964
7965 2005-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
7966
7967         PR C/19472
7968         * c-typeck.c (build_asm_expr): Strip nops off
7969         input memory operands.
7970
7971 2005-01-18  David Edelsohn  <edelsohn@gnu.org>
7972
7973         * config/rs6000/aix43.h (CPLUSPLUS_CPP_SPEC): Delete
7974         _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, _LARGE_FILE_API.
7975         * config/rs6000/aix51.h (CPLUSPLUS_CPP_SPEC): Same.
7976         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Same.
7977
7978 2005-01-18  Joel Sherrill <joel.sherrill@oarcorp.com>
7979
7980         PR target/19379
7981         * config/i386/i386.c (override_options): If the 80387 is disabled,
7982         then do not return FP values using FP registers.
7983
7984 2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
7985
7986         * basic-block.h, c-common.c, c-cppbuiltin.c, c-lang.c,
7987         c-tree.h, cfgbuild.c, cgraph.c, cgraph.h, collect2.c,
7988         combine.c, config.gcc, coverage.h, cse.c, cselib.c,
7989         defaults.h, df.c, dwarf2asm.c, dwarf2out.c, explow.c, expr.c,
7990         flow.c, fold-const.c, gcse.c, ggc-page.c, gimple-low.c,
7991         gimplify.c, ifcvt.c, langhooks-def.h, lcm.c, optabs.h,
7992         output.h, postreload-gcse.c, postreload.c, recog.c,
7993         resource.c, rtl.def, rtlanal.c, sched-deps.c, sched-rgn.c,
7994         targhooks.h, toplev.c, tree-data-ref.c, tree-eh.c,
7995         tree-flow.h, tree-loop-linear.c, tree-mudflap.h, tree-nrv.c,
7996         tree-optimize.c, tree-outof-ssa.c, tree-pass.h,
7997         tree-scalar-evolution.c, tree-ssa-copy.c, tree-ssa-dce.c,
7998         tree-ssa-dse.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c,
7999         tree-ssa-pre.c, tree-ssa.c, tree-vectorizer.c, tree.def,
8000         unwind-dw2-fde-darwin.c, var-tracking.c: Update copyright.
8001
8002         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
8003         config/alpha/alpha.c, config/arm/vfp.md,
8004         config/i386/emmintrin.h, config/i386/i386-modes.def,
8005         config/i386/i386-protos.h, config/i386/i386.h,
8006         config/i386/pmmintrin.h, config/i386/ppro.md,
8007         config/i386/predicates.md, config/i386/xmmintrin.h,
8008         config/i860/i860.c, config/ia64/ia64-modes.def,
8009         config/ia64/ia64-protos.h, config/ia64/ia64.h,
8010         config/ia64/ia64.md, config/ia64/itanium1.md,
8011         config/ia64/itanium2.md, config/ia64/predicates.md,
8012         config/iq2000/iq2000.h, config/mips/linux64.h,
8013         config/rs6000/aix41.h, config/rs6000/aix43.h,
8014         config/rs6000/aix52.h, config/rs6000/darwin-fallback.c,
8015         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
8016         config/rs6000/spe.md, config/sh/sh.md, config/sparc/linux.h,
8017         config/sparc/linux64.h, config/sparc/litecoff.h,
8018         config/sparc/sp64-elf.h, config/sparc/sparc.c,
8019         config/sparc/sparc.h, config/sparc/sparc.md,
8020         config/sparc/sysv4-only.h: Update copyright.
8021
8022 2005-01-18  Richard Henderson  <rth@redhat.com>
8023
8024         PR target/19496
8025         * config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.
8026
8027 2005-01-18  Marc Espie  <espie@openbsd.org>
8028         * config/i386/openbsdelf.h: Typo.
8029
8030 2005-01-18  Richard Henderson  <rth@redhat.com>
8031
8032         * config/i386/i386.c (ix86_expand_fp_movcc): Remove TARGET_IEEE_FP
8033         special case for sse.
8034         * config/i386/predicates.md (sse_comparison_operator): Likewise.
8035
8036 2005-01-18  Dorit Naishlos  <dorit@il.ibm.com>
8037
8038         * tree-inline.c (estimate_num_insns_1): Added cases for
8039         ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR.
8040
8041 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
8042
8043         PR rtl-optimization/19296
8044         * combine.c (simplify_comparison): Rewrite the condition under
8045         which a non-paradoxical SUBREG of a PLUS can be lifted when
8046         compared against a constant.
8047
8048 2005-01-18  Andi Kleen <ak@muc.de>
8049
8050         * c-typeck.c: (convert_for_assignment): Check warn_pointer_sign.
8051         * c.opt (-Wpointer-sign): Add.
8052         * doc/invoke.texi: (-Wpointer-sign): Add.
8053
8054 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
8055
8056         * config/i386/i386.c (override_options): Revert 2004-11-24 change.
8057         * config/i386/i386.md (fmodsf3, dremsf3, *sinsf2, *cossf2, sincossf3,
8058         *tansf3_1, tansf2, atan2sf3_1, atan2sf3, atansf2, asinsf2, acossf2,
8059         logsf2, log10sf2, log2sf2, log1psf2, logbsf2, ilogbsf2, expsf2,
8060         exp10sf2, exp2sf2, expm1sf2, rintsf2, floorsf2, ceilsf2, btruncsf2,
8061         nearbyintsf2): Disable for TARGET_SSE_MATH.  Leave patterns enabled
8062         for TARGET_MIX_SSE_I387.
8063         (fmoddf3, dremdf3, *sindf2, *sinextendsfdf2, *cosdf2, *cosextendsfdf2,
8064         sincosdf3, *sincosextendsfdf3, *tandf3_1, tandf2, atan2df3_1,
8065         atan2df3, atandf2, asindf2, acosdf2, logdf2, log10df2, log2df2,
8066         log1pdf2, logbdf2, expdf2, exp10df2, exp2df2, expm1df2, rintdf2,
8067         floordf2, ceildf2, btruncdf2, nearbyintdf2): Disable for
8068         (TARGET_SSE2 && TARGET_SSE_MATH).  Leave patterns enabled for
8069         TARGET_MIX_SSE_I387.
8070         (atan2sf3, atan2df3, atan2xf3): Remove register constraints
8071         from expander.
8072
8073 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
8074
8075         PR target/19424
8076         * config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
8077         Add movaps alternative for xmm reg->reg move.
8078
8079 2005-01-17  Jeff Law  <law@redhat.com>
8080
8081         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
8082         at the end of the main DOM loop rather than just before DOM exits.
8083
8084 2005-01-17  Diego Novillo  <dnovillo@redhat.com>
8085
8086         PR tree-optimization/19121
8087         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): When
8088         adding aliases to a name tag, also add them to the pointer's
8089         type tag.
8090         * tree-ssa-copy.c (merge_alias_info): Do not merge flow
8091         sensitive alias info at all.  Only check that the two pointers
8092         have compatible pointed-to sets.
8093         * tree-ssa.c (verify_name_tags): Verify that the alias set of
8094         a pointer's type tag is a superset of the alias set of the
8095         pointer's name tag.
8096
8097 2005-01-17  James E Wilson  <wilson@specifixinc.com>
8098
8099         PR target/19357
8100         * config/ia64/ia64.md (movxf): Handle general register source.  Adjust
8101         comment to document why.
8102
8103 2005-01-17  Richard Henderson  <rth@redhat.com>
8104
8105         * config/i386/sse.md (smaxv4sf3_finite, sse_vmsmaxv4sf3_finite,
8106         sminv4sf3_finite, sse_vmsminv4sf3_finite, smaxv2df3_finite,
8107         sse2_vmsmaxv2df3_finite, sminv2df3_finite,
8108         sse2_vmsminv2df3_finite): New.
8109         (smaxv4sf3, sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, smaxv2df3,
8110         sse2_vmsmaxv2df3, sminv2df3, sse2_vmsminv2df3): Remove commutative.
8111         Force op1 into register.
8112
8113 2005-01-17  Kelley Cook  <kcook@gcc.gnu.org>
8114
8115         * Makefile.in (STAGEMOVESTUFF): Stage all the stamp files to prevent
8116         bubblestrap from always rebuilding build directory.
8117
8118 2005-01-17  Ulrich Weigand  <uweigand@de.ibm.com>
8119
8120         * config/s390/s390.md ("*clc"): Remove incorrect '='.
8121         ("*cmpmem_short"): Likewise.
8122
8123 2005-01-17  Steven Bosscher  <stevenb@suse.de>
8124
8125         * basic-block.h: Document BB_* flags.
8126         * regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED,
8127         use an sbitmap instead.
8128         * sched-rgn.c (compute_trg_info): Likewise.
8129
8130 2005-01-17  Richard Sandiford  <rsandifo@redhat.com>
8131
8132         * config.gcc (mips64*-*-linux*): Set the default abi to n32.  Remove
8133         redundant target_cpu_default and extra_parts lines.  Use the default
8134         "from-abi" ISA.
8135         * config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
8136         (SUBTARGET_EXTRA_SPECS): Delete.
8137         (DRIVER_SELF_SPECS): Remove architecture lines.  Set the ABI directly.
8138         (SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
8139         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
8140         and "n32" for -mabi=n32.
8141
8142 2005-01-17  Ian Lance Taylor  <ian@airs.com>
8143
8144         PR c/5675
8145         * c-typeck.c (build_c_cast): Revert patch of 2003-02-16: don't
8146         fold constant variables into initial values.
8147
8148 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
8149
8150         * tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.
8151
8152         * tree-cfg.c (tree_forwarder_block_p): Speed up by walking
8153         through the statements backward.
8154
8155 2005-01-17  Ian Lance Taylor  <ian@airs.com>
8156
8157         PR middle-end/13127:
8158         * tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on
8159         a variable set to the return value of the inlined function.
8160
8161 2005-01-17  Mark Dettinger  <dettinge@de.ibm.com>
8162
8163         * rtlanal.c (rtx_cost): Assign cost of 0 to a SUBREG
8164         when modes are tieable.
8165
8166 2005-01-17  Ranjit Mathew  <rmathew@hotmail.com>
8167
8168         * gthr-posix.h (__gthread_active_p): Use pthread_cancel instead
8169         of pthread_create to find out if threads are enabled.
8170         * gthr-posix95.h (__gthread_active_p): Likewise.
8171
8172 2005-01-17  Paolo Bonzini  <bonzini@gnu.org>
8173
8174         * common.opt (-fnew-ra): Remove.
8175         * ra*.*: Remove.
8176         * toplev.h (flag_new_regalloc): Remove.
8177         * Makefile.in (ra*.*): Don't mention.
8178         * passes.c (rest_of_handle_new_regalloc): Remove.
8179         (rest_of_handle_combine, rest_of_compilation): Always consider
8180         flag_new_regalloc as false.
8181         * doc/invoke.texi: Don't document -fnew-ra.
8182
8183 2005-01-17  Paolo Bonzini <bonzini@gnu.org>
8184
8185         * bb-reorder.c (fix_edges_for_rarely_executed_code): Remove
8186         last parameter to reg_scan.
8187         * loop.c (loop_optimize): Likewise.
8188         * passes.c (rest_of_handle_tracer, rest_of_handle_if_conversion,
8189         rest_of_handle_web, rest_of_handle_cfg, rest_of_handle_jump_bypass,
8190         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
8191         rest_of_handle_gcse, rest_of_handle_loop_optimize,
8192         rest_of_handle_loop2, rest_of_handle_jump2): Likewise.
8193         * regclass.c (reg_scan): Likewise, for the declaration.
8194         * rtl.h (reg_scan): Likewise, for the prototype.
8195
8196 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
8197
8198         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Don't call
8199         mark_dfs_back_edges.
8200
8201 2005-01-16  Daniel Berlin  <dberlin@dberlin.org>
8202
8203         * tree-ssa-pre.c (add_to_sets): s1 may be NULL.
8204         (compute_avail): Uses don't go in tmp_gen.
8205
8206 2005-01-16  Steven Bosscher  <stevenb@suse.de>
8207
8208         * ggc-page.c (ggc_alloc_stat): Use __builtin_ctzl instead of a
8209         loop to look for a free slot in a page entry.
8210
8211 2005-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8212
8213         PR target/16304
8214         * defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
8215         * toplev.c (compile_file): Call process_pending_assemble_output_defs
8216         just before targetm.asm_out.file_end.
8217         * tree.h (process_pending_assemble_output_defs): Declare.
8218         * varasm.c (assemble_output_def, process_pending_assemble_output_defs):
8219         New functions.
8220         (assemble_alias): Defer generation of assembly code for defines when
8221         TARGET_DEFERRED_OUTPUT_DEFS is true.
8222         * config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
8223         * config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
8224         * doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.
8225
8226 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8227
8228         PR target/19336
8229         * pa.c (pa_scalar_mode_supported_p): New function.
8230         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
8231         * pa.h (MIN_UNITS_PER_WORD): Add comment.
8232
8233         * pa-protos.h (prefetch_operand): Delete.
8234         (prefetch_cc_operand, prefetch_nocc_operand): New declations.
8235         * pa.c (prefetch_operand): Delete.
8236         (prefetch_cc_operand, prefetch_nocc_operand): New functions.
8237         * pa.h (EXTRA_CONSTRAINT): Add `W' constraint.
8238         (PREDICATE_CODES): Delete prefetch_operand.  Add prefetch_cc_operand
8239         and prefetch_nocc_operand.
8240         * pa.md (prefetch): Rework to avoid reload problems handling short
8241         displacements when a cache control completer needs to be provided.
8242         (prefetch_32, prefetch_64): Delete.
8243         (prefetch_cc, prefetch_nocc): New patterns.
8244
8245 2005-01-15  David Edelsohn  <edelsohn@gnu.org>
8246
8247         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.
8248
8249 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
8250
8251         PR ada/19388
8252         * pa.c (pa_asm_output_aligned_common): Warn if specified alignment
8253         exceeds maximum alignment for global common data.
8254         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
8255         * som.h (MAX_OFILE_ALIGNMENT): Likewise.
8256
8257 2004-01-15  Roger Sayle  <roger@eyesopen.com>
8258
8259         * tree-ssa-dom.c (extract_range_from_cond): Correct condition.
8260
8261 2004-01-15  Roger Sayle  <roger@eyesopen.com>
8262
8263         * harg-reg-set.h (reg_class_names): Prototype global array.
8264         * regclass.c (reg_class_names): Declare here and initialize to
8265         REG_CLASS_NAMES.
8266         (dump_regclass): Remove local declaration of reg_class_names.
8267         (regclass): Likewise.
8268         * cfg.c (dump_flow_info): Likewise.
8269         * ra-debug.c (reg_class_names): Likewise.
8270         * regrename.c (reg_class_names): Likewise.
8271         * reload.c (reg_class_names): Likewise.
8272         * reload1.c (spill_failure): Likewise.
8273         * config/m68hc11/m68hc11.c (reg_class_names): Likewise.
8274
8275 2005-01-15  Ulrich Weigand  <uweigand@de.ibm.com>
8276
8277         * config/s390/s390.md ("reload_outti"): Remove predicate for
8278         output operand.  Abort if operand is not a MEM.
8279         ("reload_outdi", "reload_outdf"): Likewise.
8280
8281 2005-01-15  Marc Espie  <espie@openbsd.org>
8282
8283         * config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
8284         (i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
8285         * config/openbsd.h:  Fix C++ includes for native configurations.
8286         Add proper OS_CPP_BUILTINS.  Fix libspec for recent OpenBSD.
8287         Add trampoline support.
8288         * config/i386/openbsdelf.h: New.
8289
8290 2005-01-15  Marc Espie  <espie@openbsd.org>
8291
8292         * collect2.c (main): Explicitly parse -dynamic-linker option.
8293
8294 2005-01-15  Jakub Jelinek  <jakub@redhat.com>
8295
8296         PR tree-optimization/19060
8297         * tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
8298         Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
8299         (simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
8300         and handle extract_range_from_cond returning false.
8301         * fold-const.c (fold): Optimize comparisons with min/max even for
8302         width > HOST_BITS_PER_WIDE_INT.
8303
8304 2005-01-15  Ralf Corsepius  <ralf.corsepius@rtems.org>
8305
8306         * config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
8307         * config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS):
8308         Remove little endian multilib variants.
8309         Add mips32 multilib variant.
8310
8311 2005-01-15  Kazu Hirata  <kazu@cs.umass.edu>
8312
8313         * explow.c (copy_all_reg, stabilize): Remove.
8314         * expr.h: Remove the corresponding prototypes.
8315
8316         * rtlanal.c (regs_set_between_p): Remove.
8317         * rtl.h: Remove the corresponding prototype.
8318
8319 2005-01-14  David Edelsohn  <edelsohn@gnu.org>
8320
8321         * config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
8322         to rs6000_nonimmediate_operand.
8323         * config/rs6000/rs6000.h (PREDICATE_CODES): Rename
8324         rs6k_nonimmediate_operand to rs6000_nonimmediate_operand.
8325         * config/rs6000/rs6000.md (movsi_internal1): Rename predicate to
8326         rs6000_nonimmediate_operand.
8327         * config/rs6000/spe.md (movdf_e500_double): Rename predicate to
8328         rs6000_nonimmediate_operand.
8329
8330 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
8331
8332         * tree-ssa-alias.c (pass_may_alias): Add TODO_verify_stmts.
8333
8334 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
8335
8336         * config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
8337         on e500v2.
8338         (CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2.
8339         (PREDICATE_CODES): Add rs6k_nonimmediate_operand.
8340
8341         * config/rs6000/rs6000.c (invalid_e500_subreg): New.
8342         (rs6k_nonimmediate_operand): New.
8343         (rs6000_legitimate_offset_address_p): Handle DI modes on e500v2
8344         correctly.
8345         (legitimate_lo_sum_address_p): Same.
8346         (rs6000_legitimize_address): Same.
8347         (rs6000_legitimize_reload_address): Same.
8348         (rs6000_legitimate_address): Same.
8349         (spe_build_register_parallel): Pass DF and DC modes in a DI
8350         register.
8351
8352         * config/rs6000/rs6000.md ("*movsi_internal1"): Change predicate
8353         to rs6k_nonimmediate_operand.
8354
8355         * config/rs6000/spe.md ("*frob_df_di"): New.
8356         ("*frob_di_df"): New.
8357         ("*frob_di_df_2"): New.
8358         ("*mov_sidf_e500_subreg0"): New.
8359         ("*mov_sidf_e500_subreg4"): New.
8360         ("*movdf_e500_double"): Change predicate to
8361         rs6k_nonimmediate_operand.
8362
8363 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
8364
8365         * postreload.c (move2add_note_store): Only call
8366         trunc_int_for_mode on scalar integers.
8367
8368 2005-01-14  Steven Bosscher  <stevenb@suse.de>
8369
8370         * tree-ssa-dce.c (visited_control_parents): New sbitmap to
8371         replace BB_VISITED uses.
8372         (find_obviously_necessary_stmts): Don't clear BB_VISITED.
8373         (propagate_necessity): Check the bitmap instead of BB_VISITED.
8374         (tree_dce_done): Free visited_control_parents.
8375         (perform_tree_ssa_dce): Allocate and clear it.
8376         * tree-ssa-pre.c (compute_antic_aux): Make non-recursive.
8377         (compute_antic): Iterate from here using a DFS.  Use an sbitmap
8378         instead of BB_VISITED.
8379
8380 2005-01-14  Kazu Hirata  <kazu@cs.umass.edu>
8381
8382         * c-tree.h, coverage.h, langhooks-def.h, optabs.h, output.h,
8383         rtl.h, targhooks.h, tree-flow.h, tree-mudflap.h, tree.h:
8384         Remove unused prototypes.
8385
8386 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
8387
8388         * config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE
8389         64-bit register usage.
8390         (spe_func_has_64bit_regs_p): Add FIXME note.
8391
8392 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
8393
8394         * config/rs6000/rs6000.c (rs6000_generate_compare): Replace
8395         flag_finite_math_only with flag_unsafe_math_optimizations.
8396
8397 2005-01-14  J. D. Johnston  <jjohnst@us.ibm.com>
8398
8399         * config/s390/tpf-unwind.h (s390_fallback_frame_state): Correct
8400         end-of-stack check.
8401         (__tpf_eh_return): Copy TPF private stack area from the module
8402         boundary stack frame.  Add check for when module addresses are
8403         equal, but no stub address is found.
8404
8405 2005-01-14  Richard Earnshaw  <rearnsha@arm.com>
8406
8407         PR target/7525
8408         * arm.h (struct machine_function): Add call_via field.
8409         (thumb_call_via_label): Declare.
8410         * arm.c (thumb_call_via_label): New variable.
8411         (thumb_call_reg_needed): New variable.
8412         (arm_output_function_epilogue): For Thumb code, output any per-function
8413         call-indirect trampolines.
8414         (thumb_call_via_reg): New function.
8415         (arm_file_end): New function.
8416         (TARGET_ASM_FILE_END): Call arm_file_end.
8417         (aof_file_end): Likewise.
8418         * arm-protos.h (thumb_call_via_reg): Declare.
8419         * arm.md (call_reg_thumb, call_value_reg_thumb): Call
8420         thumb_call_via_reg in normal case.
8421
8422 2005-01-14  Jakub Jelinek  <jakub@redhat.com>
8423
8424         PR middle-end/19084
8425         PR rtl-optimization/19348
8426         * recog.c (peephole2_optimize): Do global life update if some peephole
8427         decides it doesn't need at least one of its inputs and that change
8428         influences liveness at the start of the basic block.
8429
8430         * basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET
8431         arguments instead of 1.
8432
8433 2005-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
8434
8435         PR middle-end/18820
8436         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Return
8437         zero for nested functions needing a static chain or functions
8438         with a non-constant address.
8439
8440 2005-01-13  Roger Sayle  <roger@eyesopen.com>
8441
8442         * simplify-rtx.c (simplify_binary_operation) <AND>: Optimize
8443         (and (sign_extend X) C) into (zero_extend (and X C)).
8444
8445 2005-01-13  David O'Brien  <obrien@FreeBSD.org>
8446
8447         * config/freebsd-spec.h:  Make KSE pthread lib logic the default.
8448
8449 2005-01-13  Richard Henderson  <rth@redhat.com>
8450
8451         PR target/19009
8452         PR target/19250
8453         PR target/19252
8454         * config/i386/i386.md (cmpdf, cmpsf, bunordered, bordered, buneq,
8455         bunge, bungt, bunle, bunlt, bltgt): Enable for TARGET_SSE_MATH,
8456         not just TARGET_SSE.
8457         (cmpfp_i_387): Rename from cmpfp_i.  Move after sse patterns.
8458         (cmpfp_i_mixed): Rename from cmpfp_i_sse; use for TARGET_MIX_SSE_I387.
8459         (cmpfp_i_sse): Rename from cmpfp_i_sse_only; use for TARGET_SSE_MATH.
8460         (cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387): Similarly.
8461         (fp_jcc_1_mixed, fp_jcc_1_sse, fp_jcc_1_387): Similarly.
8462         (fp_jcc_2_mixed, fp_jcc_2_sse, fp_jcc_2_387): Similarly.
8463         (fp_jcc_3_387, fp_jcc_4_387, fp_jcc_5_387, fp_jcc_6_387,
8464         fp_jcc_7_387, fp_jcc_8_387): Rename from fp_jcc_N.
8465         (movdicc_c_rex64): Rename with '*'.
8466         (movsfcc, movdfcc): Add checks for 387 and sse math to condition.
8467         (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): New.
8468         (movsfcc_1_387): Rename from movsfcc_1.
8469         (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): New.
8470         (movdfcc_1, movdfcc_1_rex64): Add check for 387.
8471         (sminsf3, smaxsf3, smindf3, smaxdf3): New.
8472         (minsf3, minsf, minsf_nonieee, minsf_sse, mindf3, mindf,
8473         mindf_nonieee, mindf_sse, maxsf3, maxsf, maxsf_nonieee, maxsf_sse,
8474         maxdf3, maxdf, maxdf_nonieee, maxdf_sse, sse_movsfcc, sse_movsfcc_eq,
8475         sse_movdfcc, sse_movdfcc_eq, sse_movsfcc_const0_1,
8476         sse_movsfcc_const0_2, sse_movsfcc_const0_3, sse_movsfcc_const0_4,
8477         sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
8478         sse_movdfcc_const0_4): Remove.
8479         * config/i386/i386.c (ix86_expand_fp_movcc): For TARGET_SSE_MATH,
8480         recognize min/max early.  Update for changed sse cmove patterns.
8481         (ix86_split_sse_movcc): New.
8482         * config/i386/i386-protos.h: Update.
8483
8484 2005-01-13  Steven Bosscher  <stevenb@suse.de>
8485
8486         * tree-ssa-dse.c (fix_phi_uses): Use SSA operand iterators.
8487         (fix_stmt_v_may_defs): Likewise.
8488
8489 2005-01-13  Richard Henderson  <rth@redhat.com>
8490
8491         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use elt_mode
8492         for converting the mask.
8493
8494 2005-01-13  David Edelsohn  <edelsohn@gnu.org>
8495
8496         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE
8497         definition to 600.
8498
8499 2005-01-13  Richard Henderson  <rth@redhat.com>
8500
8501         * config/i386/i386.c (IX86_BUILTIN_MOVQ, IX86_BUILTIN_LOADD,
8502         IX86_BUILTIN_STORED, IX86_BUILTIN_MOVQ2DQ,
8503         IX86_BUILTIN_MOVDQ2Q): Remove.
8504         (IX86_BUILTIN_VEC_EXT_V4SI): New.
8505         (ix86_init_mmx_sse_builtins, ix86_expand_builtin): Update to match.
8506         (ix86_expand_vector_extract): For V4S[FI], extract element 0 after
8507         shuffling.
8508         * config/i386/sse.md (sse_concatv2sf): Accept zero operand 2.
8509         (sse2_pextrw): Fix immediate constraint.
8510         (sse2_loadq, sse2_loadq_rex64): Remove.
8511         * config/i386/emmintrin.h (_mm_cvtsi128_si32, _mm_cvtsi128_si64x):
8512         Use __builtin_ia32_vec_ext_<size>.
8513         (_mm_cvtsi32_si128, _mm_cvtsi64x_si128): Use _mm_set_epi<size>.
8514
8515 2005-01-13  Aldy Hernandez  <aldyh@redhat.com>
8516
8517         * function.c (assign_parm_setup_block): Look inside original
8518         entry_parm when inspecting PARALLEL.
8519
8520 2005-01-13  Ralf Corsepius  <ralf.corsepius@rtems.org>
8521             Joel Sherrill  <joel@oarcorp.com>
8522
8523         PR target/19399
8524         * gthr-rtems.h (__gthread_recursive_mutex_t): New type.
8525         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
8526         rtems_gxx_recursive_mutex_init.
8527         (__gthread_recursive_mutex_lock): New function.
8528         (__gthread_recursive_mutex_trylock): Likewise.
8529         (__gthread_recursive_mutex_unlock): Likewise.
8530
8531 2005-01-13  Ralf Corsepius <ralf.corsepius@rtems.org>
8532
8533         * config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu.
8534
8535 2005-01-13  Jan Beulich  <jbeulich@novell.com>
8536
8537         * config/ia64/ia64.md (ashlti3, ashlti3_internal): New.
8538         (ashrti3_internal): Indicate output is early clobber. Generate result
8539         into output rather than first input. Use move for low word of output
8540         if shift count is exactly 64.
8541         (lshrti3_internal): Likewise.
8542
8543 2005-01-13  Hans-Peter Nilsson  <hp@bitrange.com>
8544
8545         PR target/18329
8546         PR target/18330
8547         * reload1.c (delete_output_reload): Don't delete an output reload
8548         if the pseudo lives longer than a single basic block.  Adjust and
8549         improve wording of comment.
8550
8551 2005-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
8552
8553         PR target/19334
8554         * config/darwin.c (machopic_select_section): Use TYPE_SIZE_UNIT instead
8555         of TYPE_SIZE where we mean the number of bytes.
8556
8557 2005-01-12  Aldy Hernandez  <aldyh@redhat.com>
8558
8559         * function.c (assign_parm_setup_block): Relax condition on
8560         multi-register optimization.
8561
8562 2005-01-12  Nick Clifton  <nickc@redhat.com>
8563
8564         * config/sh/sh.md (udivsi3_sh2a, divsi3_sh2a): Give these patterns
8565         an "in_delay_slot" attribute of "no" to prevent them being used in
8566         delay slots.  This is forbidden because they might generate
8567         exceptions.
8568
8569 2005-01-12  Alan Modra  <amodra@bigpond.net.au>
8570
8571         PR target/19389
8572         * config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r
8573         with r->Y and Y->r.
8574
8575 2005-01-12  Nick Clifton  <nickc@redhat.com>
8576
8577         * config/iq2000/iq2000.h (ASM_SPEC): Undefine (to stop -Qy being
8578         passed on to GAS) but do not define, as GAS no longer supports or
8579         needs the -m2000 option.
8580
8581 2005-01-11  Roger Sayle  <roger@eyesopen.com>
8582
8583         * builtins.c (fold_builtin_fabs): Convert argument to the appropriate
8584         type as args of unprototyped builtins aren't automatically promoted.
8585         (fold_builtin_abs): Likewise.
8586
8587 2005-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8588
8589         * Makefile.in: Set a `build-warn' variable.
8590
8591 2005-01-11  Zdenek Dvorak  <dvorakz@suse.cz>
8592
8593         PR tree-optimization/17949
8594         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): New function.
8595         (find_interesting_uses_address): Use it.
8596
8597 2005-01-11  Aldy Hernandez  <aldyh@redhat.com>
8598
8599         * regrename.c (kill_value): Handle subreg's that won't simplify.
8600
8601 2005-01-11  Richard Henderson  <rth@redhat.com>
8602
8603         PR target/13366
8604         * config/i386/i386.h (enum ix86_builtins): Move ...
8605         * config/i386/i386.c: ... here.
8606         (IX86_BUILTIN_MOVDDUP, IX86_BUILTIN_MMX_ZERO, IX86_BUILTIN_PEXTRW,
8607         IX86_BUILTIN_PINSRW, IX86_BUILTIN_LOADAPS, IX86_BUILTIN_LOADSS,
8608         IX86_BUILTIN_STORESS, IX86_BUILTIN_SSE_ZERO, IX86_BUILTIN_PEXTRW128,
8609         IX86_BUILTIN_PINSRW128, IX86_BUILTIN_LOADAPD, IX86_BUILTIN_LOADSD,
8610         IX86_BUILTIN_STOREAPD, IX86_BUILTIN_STORESD,  IX86_BUILTIN_STOREHPD,
8611         IX86_BUILTIN_STORELPD, IX86_BUILTIN_SETPD1, IX86_BUILTIN_SETPD,
8612         IX86_BUILTIN_CLRPD, IX86_BUILTIN_LOADPD1, IX86_BUILTIN_LOADRPD,
8613         IX86_BUILTIN_STOREPD1, IX86_BUILTIN_STORERPD, IX86_BUILTIN_LOADDQA,
8614         IX86_BUILTIN_STOREDQA, IX86_BUILTIN_CLRTI,
8615         IX86_BUILTIN_LOADDDUP): Remove.
8616         (IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI,
8617         IX86_BUILTIN_VEC_INIT_V8QI, IX86_BUILTIN_VEC_EXT_V2DF,
8618         IX86_BUILTIN_VEC_EXT_V2DI, IX86_BUILTIN_VEC_EXT_V4SF,
8619         IX86_BUILTIN_VEC_EXT_V8HI, IX86_BUILTIN_VEC_EXT_V4HI,
8620         IX86_BUILTIN_VEC_SET_V8HI, IX86_BUILTIN_VEC_SET_V4HI): New.
8621         (ix86_init_builtins): Make static.
8622         (ix86_init_mmx_sse_builtins): Update for changed builtins.
8623         (ix86_expand_binop_builtin): Only use ix86_fixup_binary_operands
8624         if all the modes match.  Otherwise, fake it.
8625         (get_element_number, ix86_expand_vec_init_builtin,
8626         ix86_expand_vec_ext_builtin, ix86_expand_vec_set_builtin): New.
8627         (ix86_expand_builtin): Make static.  Update for changed builtins.
8628         (ix86_expand_vector_move_misalign): Use sse2_loadlpd with zero
8629         operand instead of sse2_loadsd.  Cast sse1 fallback to V4SFmode.
8630         (ix86_expand_vector_init_duplicate): New.
8631         (ix86_expand_vector_init_low_nonzero): New.
8632         (ix86_expand_vector_init_one_var, ix86_expand_vector_init_general):
8633         Split out from ix86_expand_vector_init; handle integer modes.
8634         (ix86_expand_vector_init): Use them.
8635         (ix86_expand_vector_set, ix86_expand_vector_extract): New.
8636         * config/i386/i386-protos.h: Update.
8637         * config/i386/predicates.md (reg_or_0_operand): New.
8638         * config/i386/mmx.md (mov<MMXMODEI>_internal): Add 'r' variants.
8639         (movv2sf_internal): Likewise.  And a splitter to match them all.
8640         (vec_dupv2sf, mmx_concatv2sf, vec_setv2sf, vec_extractv2sf,
8641         vec_initv2sf, vec_dupv4hi, vec_dupv2si, mmx_concatv2si, vec_setv2si,
8642         vec_extractv2si, vec_initv2si, vec_setv4hi, vec_extractv4hi,
8643         vec_initv4hi, vec_setv8qi, vec_extractv8qi, vec_initv8qi): New.
8644         (mmx_pinsrw): Fix operand ordering.
8645         * config/i386/sse.md (movv4sf splitter): Use direct pattern,
8646         rather than sse_loadss expander.
8647         (movv2df splitter): Similarly.
8648         (sse_loadss, sse_loadlss): Remove.
8649         (vec_dupv4sf, sse_concatv2sf, sse_concatv4sf, vec_extractv4sf_0): New.
8650         (vec_setv4sf, vec_setv2df): Use ix86_expand_vector_set.
8651         (vec_extractv4sf, vec_extractv2df): Use ix86_expand_vector_extract.
8652         (sse3_movddup): Rename with '*'.
8653         (sse3_movddup splitter): Use gen_rtx_REG instead of gen_lowpart.
8654         (sse2_loadsd): Remove.
8655         (vec_dupv2df_sse3): Rename from sse3_loadddup.
8656         (vec_dupv2df, vec_concatv2df_sse3, vec_concatv2df): New.
8657         (sse2_pinsrw): Fix argument ordering.
8658         (sse2_loadld, sse2_loadq): Add sse1 alternatives.
8659         (sse2_stored): Remove 'r' destination.
8660         (vec_dupv4si, vec_dupv2di, sse2_concatv2si, sse1_concatv2si,
8661         vec_concatv4si_1, vec_concatv2di, vec_setv2di, vec_extractv2di,
8662         vec_initv2di, vec_setv4si, vec_extractv4si, vec_initv4si,
8663         vec_setv8hi, vec_extractv8hi, vec_initv8hi, vec_setv16qi,
8664         vec_extractv16qi, vec_initv16qi): New.
8665
8666         * config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
8667         (_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x,
8668         _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
8669         constructor form.
8670         (_mm_load_pd, _mm_store_pd): Use plain dereference.
8671         (_mm_load_si128, _mm_store_si128): Likewise.
8672         (_mm_load1_pd): Use _mm_set1_pd.
8673         (_mm_load_sd): Use _mm_set_sd.
8674         (_mm_store_sd, _mm_storeh_pd): Use __builtin_ia32_vec_ext_v2df.
8675         (_mm_store1_pd, _mm_storer_pd): Use _mm_store_pd.
8676         (_mm_set_epi64): Use _mm_set_epi64x.
8677         (_mm_set1_epi64x, _mm_set1_epi64, _mm_set1_epi32, _mm_set_epi16,
8678         _mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
8679         _mm_setr_epi8): Use _mm_set_foo form.
8680         (_mm_loadl_epi64, _mm_movpi64_epi64, _mm_move_epi64): Use _mm_set_epi64.
8681         (_mm_storel_epi64, _mm_movepi64_pi64): Use __builtin_ia32_vec_ext_v2di.
8682         (_mm_extract_epi16): Use __builtin_ia32_vec_ext_v8hi.
8683         (_mm_insert_epi16): Use __builtin_ia32_vec_set_v8hi.
8684         * config/i386/mmintrin.h (_mm_setzero_si64): Use plain cast.
8685         (_mm_set_pi32): Use __builtin_ia32_vec_init_v2si.
8686         (_mm_set_pi16): Use __builtin_ia32_vec_init_v4hi.
8687         (_mm_set_pi8): Use __builtin_ia32_vec_init_v8qi.
8688         (_mm_set1_pi16, _mm_set1_pi8): Use _mm_set_piN variant.
8689         * config/i386/pmmintrin.h (_mm_loaddup_pd): Use _mm_load1_pd.
8690         (_mm_movedup_pd): Use _mm_shuffle_pd.
8691         * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss,
8692         _mm_set1_ps, _mm_set_ps, _mm_setr_ps): Use constructor form.
8693         (_mm_cvtpi16_ps, _mm_cvtpu16_ps, _mm_cvtpi8_ps, _mm_cvtpu8_ps,
8694         _mm_cvtps_pi8, _mm_cvtpi32x2_ps): Avoid __builtin_ia32_mmx_zero;
8695         Use _mm_setzero_ps.
8696         (_mm_load_ss, _mm_load1_ps): Use _mm_set* form.
8697         (_mm_load_ps, _mm_loadr_ps): Use raw dereference.
8698         (_mm_store_ss): Use __builtin_ia32_vec_ext_v4sf.
8699         (_mm_store_ps): Use raw dereference.
8700         (_mm_store1_ps): Use _mm_storeu_ps.
8701         (_mm_storer_ps): Use _mm_store_ps.
8702         (_mm_extract_pi16): Use __builtin_ia32_vec_ext_v4hi.
8703         (_mm_insert_pi16): Use __builtin_ia32_vec_set_v4hi.
8704
8705 2005-01-11  Stan Shebs  <shebs@apple.com>
8706
8707         * config/rs6000/rs6000.c (machopic_output_stub): Issue
8708         ldu instead of lwzu if 64-bit -mdynamic-no-pic.
8709
8710 2005-01-11  Andrew Pinski  <pinskia@physics.uc.edu>
8711
8712         PR target/18761
8713         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
8714         Skip all DECLs except for FIELD_DECLs.
8715
8716 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
8717
8718         * config/s390/s390.c (override_options): Return error if
8719         -mbackchain, -mpacked-stack and -mhard-float are used together.
8720         (s390_va_start): Remove the backchain && packed-stack special case.
8721         (s390_gimplify_va_arg): Likewise.
8722         * doc/invoke.texi: Remove the ABI incompatibility note.
8723
8724 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
8725
8726         * config/s390/s390.c (struct s390_frame_layout): Remove
8727         save_backchain_p.
8728         (s390_frame_info, s390_emit_prologue): Replace occurrences of
8729         save_backchain_p with TARGET_BACKCHAIN.
8730
8731 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
8732
8733         PR target/18916
8734         * builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
8735         * expr.h (struct locate_and_pad_arg_data): Add "boundary".
8736         * function.c (locate_and_pad_parm): Set new field.
8737         (assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
8738         Tweak where_pad test to include "none".  Always set mem align for
8739         stack_parm.
8740         (assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
8741         not sufficient for type.
8742         (assign_parm_setup_block): If stack_parm is zero on entry, always
8743         make a new stack local.  Block move old stack parm if necessary
8744         to new aligned stack local.
8745         (assign_parm_setup_stack): Use a block move to handle
8746         potentially misaligned entry_parm.
8747         (assign_parms_unsplit_complex): Specify required alignment when
8748         creating stack local.
8749         * calls.c (compute_argument_addresses): Override alignment of stack
8750         arg calculated from its type with the alignment given by
8751         FUNCTION_ARG_BOUNDARY.
8752         (store_one_arg): Likewise.
8753
8754 2005-01-11  Jan Beulich  <jbeulich@novell.com>
8755
8756         * config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
8757         Change respective itanium_class attribute to ialu.
8758         (shladdp4_internal): New.
8759         * config/ia64/predicates.md (shladd_log2_operand): New.
8760
8761 2005-01-11  Richard Henderson  <rth@redhat.com>
8762
8763         * expr.c (store_constructor): Use rtvec_alloc instead of
8764         alloca+gen_rtvec_v, and an incorrect number passed to alloca.
8765
8766 2005-01-11  Kazu Hirata  <kazu@cs.umass.edu>
8767
8768         * config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
8769
8770 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
8771
8772         * varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
8773         * config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
8774         (TARGET_RWRELOC): Define.
8775         (ia64_rwreloc_section_type_flags): Delete.
8776         (ia64_section_type_flags): New function.
8777         * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
8778         (TARGET_RWRELOC): Define.
8779
8780 2005-01-10  David Mosberger  <davidm@hpl.hp.com>
8781
8782         PR target/18987
8783         * config/ia64/ia64.c (process_set): For alloc insn, only call
8784         process_epilogue is !frame_pointer_needed.
8785
8786 2005-01-10  Roger Sayle  <roger@eyesopen.com>
8787
8788         PR c++/19355
8789         * c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
8790         unary operator and can't be treated as a binary/comparison operator.
8791
8792 2005-01-10  Richard Henderson  <rth@redhat.com>
8793
8794         * config/i386/i386.c (ix86_function_value): Use type_natural_mode.
8795         (ix86_return_in_memory): Likewise.
8796         (function_arg_advance):  Likewise.  Mirror structure in function_arg
8797         for choosing register to advance.
8798
8799 2005-01-10  Kazu Hirata  <kazu@cs.umass.edu>
8800
8801         * tree-vectorizer.c, tree.def: Fix comment typos.
8802
8803 2005-01-10  Mark Dettinger  <dettinge@de.ibm.com>
8804
8805         * config/s390/s390.c (struct processor_costs): 4 new fields:
8806         ddbr, ddr, debr, der.
8807         (s390_rtx_costs): More precise handling of divide instructions.
8808
8809 2005-01-10  David Edelsohn  <edelsohn@gnu.org>
8810
8811         * config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.
8812
8813 2005-01-10  Jan Beulich  <jbeulich@novell.com>
8814
8815         * config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
8816         names resulting from -ffunction-sections/-fdata-sections and linkonce
8817         ones.
8818         * varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
8819         based on the section name. Rearrange the section name comparison logic
8820         slightly so that each section name is compared against at most once.
8821
8822 2005-01-10  Ben Elliston  <bje@au.ibm.com>
8823
8824         * doc/invoke.texi (Code Gen Options): Add PowerPC to the list of
8825         targets for which -fPIC reduces limitations on the GOT size.
8826
8827 2005-01-09  Falk Hueffner  <falk@debian.org>
8828
8829         * fold-const.c (fold): Also handle EXACT_DIV_EXPR when folding
8830         X/C1 cmpop C2.
8831
8832 2005-01-09  David Edelsohn  <edelsohn@gnu.org>
8833
8834         PR target/18720
8835         * collect2.c (main): Set aixrtl_flag for -brtl option.
8836         (resolve_lib_name): Search for .so file extension before .a
8837         if aixrtl_flag set.
8838
8839 2005-01-09  Dorit Naishlos  <dorit@il.ibm.com>
8840
8841         * tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
8842         (vect_analyze_data_refs_alignment): Add dump prints.
8843
8844 2005-01-09  Ira Rosen  <irar@il.ibm.com>
8845
8846         * tree-vectorizer.c (vect_analyze_offset_expr): Use
8847         expr_invariant_in_loop_p.
8848         Initialize outputs first thing in the function.
8849         (vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
8850         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
8851         (vect_analyze_pointer_ref_access): Check that the initial condition of
8852         the access function is loop invariant.
8853
8854 2005-01-09  Richard Henderson  <rth@redhat.com>
8855
8856         * config/i386/i386.c (bdesc_2arg): Update names for mmx_ prefixes.
8857         (ix86_expand_builtin): Likewise.  Frob MASKMOVQ wrt the input mem
8858         just like MASKMOVDQU.  Return plain zero for MMX_ZERO.
8859         * config/i386/i386.md (MMXMODEI, mov<MMXMODEI>,
8860         mov<MMXMODEI>_internal_rex64, mov<MMXMODEI>_internal, movv2sf,
8861         movv2sf_internal_rex64, movv2sf_internal, MMXMODE,
8862         movmisalign<MMXMODE>, mmx_pmovmskb, mmx_maskmovq, mmx_maskmovq_rex,
8863         sse_movntdi, addv8qi3, addv4hi3, addv2si3, mmx_adddi3, ssaddv8qi3,
8864         ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, subv4hi3, subv2si3,
8865         mmx_subdi3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
8866         mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
8867         sse2_umulsidi3, mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3,
8868         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pinsrw,
8869         mmx_pextrw, mmx_pshufw, eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3,
8870         gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
8871         ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
8872         mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
8873         mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
8874         mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
8875         eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
8876         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
8877         pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, pmulhrwv4hi3, pswapdv2si2,
8878         pswapdv2sf2): Move to mmx.md; rename as necessary with leading
8879         mmx_ prefix.
8880         (mmx_clrdi, pavgusb): Remove.
8881         (ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename
8882         with leading sse_ prefix.
8883         * config/i386/sse.md: Receive them.
8884         * config/i386/mmx.md: New file.
8885         (MMXMODE12, MMXMODE24, mmxvecsize): New.
8886         (subrv2sf3): Turn into expander for normal subtraction.
8887         (mmx_addv2sf3, mmx_mulv2sf3, mmx_smaxv2sf3, mmx_sminv2sf3,
8888         mmx_eqv2sf3, mmx_mulv4hi3, mmx_smulv4hi3_highpart,
8889         mmx_umulv4hi3_highpart, mmx_pmaddwd, mmx_pmulhrwv4hi3, sse2_umulsidi3,
8890         mmx_umaxv8qi3, mmx_smaxv4hi3, mmx_uminv8qi3, mmx_sminv4hi3): Mark
8891         commutative; use ix86_binary_operator_ok.
8892         (mmx_add<MMXMODEI>3, mmx_ssadd<MMXMODE12>3, mmx_usadd<MMXMODE12>3,
8893         mmx_sub<MMXMODEI>3, mmx_sssub<MMXMODE12>3, mmx_ussub<MMXMODE12>3
8894         mmx_ashr<MMXMODE24>3, mmx_lshr<MMXMODE23>3, mmx_ashl<MMXMODE24>3
8895         mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3,
8896         mmx_nand<MMXMODEI>3, mmx_ior<MMXMODEI>3, mmx_xor<MMXMODEI>3):
8897         Macroize from existing patterns; use ix86_binary_operator_ok.
8898         (mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
8899         (mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
8900         mmx_punpckhdq, mmx_punpckhdq, mmx_punpckldq): Likewise.  Model
8901         with vec_select+vec_concat.
8902         (mmx_pshufw, mmx_pshufw_1): Likewise.
8903         (mmx_uavgv8qi3): Merge pavgusb.  Model correcty.
8904         (mmx_uavgv4hi3): Model correctly.
8905         * config/i386/mmintrin.h (_mm_and_si64, _mm_andnot_si64, _mm_or_si64,
8906         _mm_xor_si64): Remove casts.
8907
8908 2005-01-09  Zdenek Dvorak  <dvorakz@suse.cz>
8909
8910         PR tree-optimization/19224
8911         * tree-scalar-evolution.c (get_instantiated_value,
8912         set_instantiated_value): New functions.
8913         (instantiate_parameters_1): Cache the results.
8914         (instantiate_parameters, resolve_mixers): Initialize and free
8915         the cache.
8916
8917 2005-01-08  David Edelsohn  <edelsohn@gnu.org>
8918
8919         * config/i386/i386.md (addhi_4): Correct reference in comment.
8920         (addqi_4): Same.
8921
8922 2005-01-08  Richard Henderson  <rth@redhat.com>
8923
8924         * config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
8925         (_mm_cvtsi128_si64x): Likewise.
8926         (_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
8927         _mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
8928         the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
8929         * config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
8930         * config/i386/i386-protos.h: Update.
8931         * config/i386/i386.c (print_operand): Add 'H'.
8932         (ix86_fixup_binary_operands): Split out from ...
8933         (ix86_expand_binary_operator): ... here.
8934         (ix86_fixup_binary_operands_no_copy): New.
8935         (ix86_expand_fp_absneg_operator): Handle vector mode results.
8936         (bdesc_2arg): Update names for sse{,2,3}_ prefixes.
8937         (ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
8938         (safe_vector_operand): Use CONST0_RTX.
8939         (ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
8940         (ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
8941         CODE_FOR_sse2_maskmovdqu.  Special case SSE version of MASKMOVDQU
8942         expansion.  Update names for sse{,2,3}_ prefixes.  Remove *maskncmp*
8943         special cases.
8944         * config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
8945         (IX86_BUILTIN_CMPNGESS): New.
8946         * config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
8947         (attr type): Add sselog1.
8948         (attr unit, attr memory): Handle it.
8949         (movti, movti_internal, movti_rex64): Move near other integer moves.
8950         (movtf, movtf_internal): Move near other fp moves.
8951         (SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
8952         vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
8953         movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal,
8954         movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
8955         sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
8956         sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
8957         sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
8958         mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
8959         rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
8960         sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3,
8961         sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3,
8962         sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3,
8963         vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
8964         smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
8965         cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
8966         cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
8967         vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
8968         vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
8969         sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
8970         sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
8971         cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
8972         cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
8973         cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
8974         cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
8975         ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
8976         subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
8977         smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
8978         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
8979         sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
8980         sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3,
8981         gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
8982         ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
8983         ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
8984         sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw,
8985         sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
8986         sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
8987         sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq,
8988         sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
8989         sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
8990         sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
8991         mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
8992         addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
8993         movsldup, lddqu, loadddup, movddup): Move to sse.md.  Any with
8994         non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
8995         same time.
8996         (SSEPUSH, push<SSEPUSH>): Remove.
8997         (MMXPUSH, push<MMXPUSH>): Remove.
8998         (sse_movaps, sse_movaps_1, sse_movups): Remove.
8999         (sse2_movapd, sse2_movdqa, sse2_movq): Remove.
9000         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
9001         (sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
9002         (maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
9003         (maskncmpv2df3, vmmaskncmpv2df3): Remove.
9004         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
9005         (lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
9006         * config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
9007         (athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
9008         * config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
9009         (ppro_sse_log_V4SF_load): Similarly.  Handle sselog1.
9010         (ppro_sse_log_V4SF): Handle sselog1.
9011         * config/i386/predicates.md (const_0_to_1_operand): New.
9012         (const_0_to_255_mul_8_operand): New.
9013         (const_1_to_31_operand): Rename from const_int_1_31_operand.
9014         (const_2_to_3_operand, const_4_to_7_operand): New.
9015         * config/i386/sse.md: New file.
9016         (SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
9017         (sse_movups): Rename from sse_movups_1.
9018         (sse_loadlss): Rename from sse_loadss_1.
9019         (andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
9020         from the name.
9021         (negv4sf2): Use ix86_expand_fp_absneg_operator.
9022         (absv4sf2, negv2df, absv2df): New.
9023         (addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
9024         (subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
9025         iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
9026         smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
9027         umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
9028         (sse3_addsubv4sf3): Model correctly.
9029         sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
9030         sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
9031         (sse_movhlps): Model with vec_select+vec_concat.
9032         (sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup,
9033         sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
9034         sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
9035         sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
9036         sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
9037         sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw,
9038         sse2_pshufhw_1): Likewise.
9039         (neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
9040         (add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
9041         sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
9042         ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
9043         sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
9044         ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.
9045         (addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
9046         sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
9047         mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
9048         sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
9049         sminv8hi3): Mark commutative
9050         operands.  Use ix86_binary_operator_ok.
9051         (sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
9052         sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
9053         sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
9054         sse2_punpcklqdq): Allow operand2 in memory.
9055         (sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
9056         sse2_movsd): Add memory alternatives.
9057         (sse_storelps): Turn expander into an insn; split after reload.
9058         (sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
9059         (sse2_storehpd, sse2_storelpd): Add non-xmm outputs.
9060
9061 2005-01-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
9062
9063         * configure.ac (DWARF-2 debug_line): Use objdump.
9064         * configure: Regenerate.
9065
9066 2005-01-08  Jeff Law  <law@redhat.com>
9067             Diego Novillo  <dnovillo@redhat.com>
9068
9069         PR tree-optimization/18241
9070         * tree-nrv.c (tree_nrv): Ignore volatile return values.
9071         * tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
9072         statements with volatile operands.
9073         * tree-ssa-operands.c (add_stmt_operand): Do add volatile
9074         operands after marking a statement with has_volatile_ops.
9075
9076 2005-01-08  Roger Sayle  <roger@eyesopen.com>
9077
9078         * tree.c (int_fits_type_p): Always honor integer constant
9079         TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.
9080
9081 2005-01-08  Roger Sayle  <roger@eyesopen.com>
9082
9083         * ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
9084         the latent bug in rtl_delete_block has been resolved.
9085
9086 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
9087
9088         * config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
9089         (MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.
9090
9091 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
9092
9093         * config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
9094         library as @multilib_dir@/$(SHLIB_SONAME).
9095
9096 2005-01-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
9097
9098         * configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
9099         * configure: Regenerate.
9100
9101 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
9102
9103         * c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
9104         TYPE_MODE.
9105
9106 2005-01-07  David Edelsohn  <edelsohn@gnu.org>
9107
9108         PR target/13674
9109         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
9110         Convert non-word aligned offset address using ld/std into
9111         indirect address.
9112
9113 2005-01-07  Richard Henderson  <rth@redhat.com>
9114
9115         * config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.
9116
9117 2005-01-07  Richard SAndiford  <rsandifo@redhat.com>
9118
9119         * tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.
9120
9121 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
9122
9123         PR tree-optimization/19283
9124         * fold-const.c (fold_widened_comparison): Return NULL if shorter_type
9125         is not shorter than the original type.
9126
9127         PR rtl-optimization/19012
9128         * config/i386/i386.md (addqi_1_slp): Set memory attribute.
9129
9130         PR rtl-optimization/18861
9131         * cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
9132         (FULL_STATE): Define.
9133         (mark_tablejump_edge): New function.
9134         (purge_dead_tablejump_edges): New function.
9135         (find_bb_boundaries): Use it.
9136
9137         PR tree-optimization/18828
9138         * builtins.c (expand_builtin_next_arg): Remove argument and all
9139         the argument checking.
9140         (expand_builtin): Adjust caller.
9141         (expand_builtin_va_start): Likewise.  Remove error for too many
9142         arguments.
9143         (fold_builtin_next_arg): Issue error for too many arguments.
9144         After checking arguments, replace them with magic arguments that
9145         prevent further checking of the args.
9146
9147 2005-01-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
9148
9149         * pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.
9150
9151 2005-01-06  Roger Sayle  <roger@eyesopen.com>
9152
9153         PR target/6077
9154         * gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
9155         and %{.S:...} (and their negative variants) to test whether the
9156         input file is assembler or pre-processed-assembler independent of
9157         the actual filename extension.
9158
9159 2005-01-06  Roger Sayle  <roger@eyesopen.com>
9160
9161         * simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
9162         of sign or zero extended values.
9163
9164 2005-01-06  Geoffrey Keating  <geoffk@apple.com>
9165
9166         * c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
9167         for IBM long double format correctly.
9168
9169 2005-01-06  Daniel Berlin <dberlin@dberlin.org>
9170
9171         Fix PR tree-optimization/18792
9172
9173         * tree-data-ref.c (build_classic_dist_vector): Change first_loop
9174         to first_loop_depth, and use loop depth instead of loop number.
9175         (build_classic_dir_vector): Ditto.
9176         (compute_data_dependences_for_loop): Use depth, not loop number.
9177         * tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop
9178         number. Pass in loops, instead of loop numbers.
9179         (gather_interchange_stats): Ditto.
9180         (linear_transform_loops): Ditto.
9181
9182 2005-01-06  Richard Sandiford  <rsandifo@redhat.com>
9183
9184         PR rtl-opt/13299
9185         * loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
9186         biv_fits_mode_p, extension_within_bounds_p): New functions.
9187         (check_ext_dependent_givs): Use them.
9188
9189 2005-01-06  Roger Sayle  <roger@eyesopen.com>
9190
9191         * cfgrtl.c (rtl_delete_block): A basic block may be followed by
9192         more than one barrier, in which case we should delete them all.
9193
9194 2005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
9195
9196         * gcc.c (process_command): Change year in 'gcc --version' to 2005.
9197
9198 2005-01-05  Daniel Berlin  <dberlin@dberlin.org>
9199
9200         Fix PR middle-end/19286
9201         Fix PR debug/19267
9202         * dwarf2out.c (gen_subprogram_die): If we've already tried to
9203         output this subprogram, simply ignore this attempt to do it again.
9204         (add_abstract_origin_attribute): Don't abort trying to add the abstract
9205         origin attribute if it's not possible.
9206         (gen_block_die): Don't ignore subblocks of "unused" blocks.
9207         (decls_for_scope): Ditto.
9208         * gimple-low.c (mark_blocks_with_used_subblocks): Remove.
9209         (mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
9210
9211 2005-01-05  Richard Henderson  <rth@redhat.com>
9212
9213         PR target/11327
9214         * config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
9215         (bdesc_2arg): Use it.
9216         (ix86_expand_binop_builtin): Force operands into registers
9217         when optimizing.
9218         (ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
9219         ix86_expand_sse_compare, ix86_expand_sse_comi,
9220         ix86_expand_builtin): Likewise.
9221
9222 2005-01-05  Richard Henderson  <rth@redhat.com>
9223
9224         * config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
9225         and VEC_SELECT.
9226         * config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
9227         (mulv4hi3): Set itanium_class mmmul.
9228         (fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
9229         (fpack): Rename from fpack_sfsf.
9230
9231 2005-01-05  Richard Henderson  <rth@redhat.com>
9232
9233         PR rtl-opt/10692
9234         * reload1.c (do_input_reload): Restrict the optimization deleteing
9235         a previous output reload to RELOAD_FOR_INPUT.
9236
9237 2005-01-05  Steven Bosscher  <stevenb@suse.de>
9238
9239         * combine.c (expand_compound_operation)  <ZERO_EXTRACT>: Add
9240         comment that we fall through after case.
9241         (mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
9242         (distribute_links): Likewise.
9243         * cse.c (cse_insn): Likewise.
9244         * cselib.c (cselib_invalidate_mem): Likewise.
9245         * df.c: Update comments at the top of the file.
9246         (read_modify_subreg_p): Update comments here too.
9247         (df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
9248         * flow.c (mark_set_1): Likewise.
9249         (mark_used_regs): Likewise.
9250         * gcse.c (mems_conflict_for_gcse_p): Likewise.
9251         (canon_list_insert): Likewise.
9252         (mark_set): Likewise.
9253         (try_replace_reg): Likewise.
9254         (store_killed_in_insn): Likewise.
9255         * loop.c (count_one_set): Likewise.
9256         (basic_induction_var): Likewise.
9257         * postreload-gcse.c (find_mem_conflicts): Likewise.
9258         * postreload.c (reload_combine_note_store): Likewise.
9259         (move2add_note_store): Likewise.
9260         * reload.c (find_equiv_reg): Likewise.
9261         (mark_referenced_resources): Likewise.
9262         * rtlanal.c (set_noop_p): Likewise.
9263         (note_stores): Likewise.
9264         (note_uses): Likewise.
9265         * sched-deps.c (sched_analyze_1): Likewise.
9266         * sched-rgn.c (check_live_1): Likewise.
9267         (update_live_1): Likewise.
9268         * config/i860/i860.c: Likewise.
9269
9270         * rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
9271         an lvalue.
9272         (ZERO_EXTRACT): Mention that this one can be an lvalue.
9273
9274         * doc/rtl.texi: Update documentation for bit-fields and SET.
9275
9276 2005-01-05  Roger Sayle  <roger@eyesopen.com>
9277
9278         * ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
9279
9280 2005-01-05  Jan Hubicka  <jh@suse.cz>
9281             Richard Henderson  <rth@redhat.com>
9282
9283         PR target/18910
9284         * config/i386/i386.c (ix86_expand_move): Handle tls symbols
9285         with an offset.
9286
9287 2005-01-05  Richard Henderson  <rth@redhat.com>
9288
9289         PR target/12902
9290         * config/i386/i386.md (sse_movhps, sse_movlps): Remove.
9291         (sse_shufps): Change operand 3 to const_int_operand.
9292         (sse2_storelps): Fix typo in template.
9293         (sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
9294         * config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
9295         (ix86_expand_builtin): Likewise.
9296
9297 2005-01-05  Julian Brown  <julian@codesourcery.com>
9298
9299         * config/arm/arm.c (arm_return_in_memory): Treat complex types
9300         as aggregates for AAPCS ABIs.
9301
9302 2005-01-05  Stan Shebs  <shebs@apple.com>
9303
9304         * unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
9305         Mach-O getters if ppc64.
9306         * config/darwin.c (darwin_asm_output_dwarf_delta): Obey
9307         size argument.
9308         * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
9309         signed four-byte field for global code case.
9310         (STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
9311
9312 2005-01-05  Roger Sayle  <roger@eyesopen.com>
9313
9314         PR middle-end/19100
9315         * c-common.c: Include real.h.
9316         (c_common_truthvalue_conversion): Avoid destructively modifying expr.
9317         Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
9318         Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
9319         * Makefile.in (c-common.o): Update dependencies.
9320
9321 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
9322
9323         * c-parse.in (asm_string): Add trailing semicolon.
9324
9325 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
9326
9327         * c-parse.in (asm_string): New.  Don't allow wide strings in
9328         'asm'.
9329         (simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
9330         asm_string instead of STRING.
9331
9332 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
9333
9334         * c-typeck.c (constructor_no_implicit): Remove.
9335         (set_designator, process_init_element): Don't check
9336         constructor_no_implicit.
9337
9338 2005-01-05  J"orn Rennecke <joern.rennecke@st.com>
9339             Kaz Kojima  <kkojima@gcc.gnu.org>
9340
9341         PR target/16482
9342         * lcm.c (create_pre_exit): New.
9343         (optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
9344         ENTRY_EXIT_EXTRA to 3.  Use create_pre_exit.
9345
9346 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
9347
9348         * arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
9349         -msoft-float in target_float_switch.
9350         * arm.c (arm_override_options): Fix processing of target_float_switch.
9351
9352 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
9353
9354         * arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
9355         preferencing.
9356
9357 2004-01-05  Uros Bizjak  <uros@kss-loka.si>
9358
9359         * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
9360         Replace i387 with 'i386 compiler' in -mfpmath=sse option.
9361
9362 2005-01-04  Roger Sayle  <roger@eyesopen.com>
9363
9364         * ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
9365         if deleting the then-block allows the test-block to fallthru to the
9366         else-block.
9367
9368 2005-01-04  Andrew Pinski  <pinskia@physics.uc.edu>
9369
9370         PR c/19152
9371         * c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
9372         after the full declaration if the are in two different TUs.
9373
9374 2005-01-04  Richard Henderson  <rth@redhat.com>
9375
9376         PR tree-opt/19158
9377         * tree-sra.c (generate_one_element_init): Just
9378         call gimplify_and_add.
9379         (generate_element_init): Record the
9380         new referenced variables and mark them for renaming
9381         and split out to ...
9382         (generate_element_init_1): This.
9383         (scalarize_init): Don't call push_gimplify_context/
9384         pop_gimplify_context.
9385
9386 2005-01-04  Geoffrey Keating  <geoffk@apple.com>
9387
9388         * toplev.c (get_src_pwd): Handle failure of getpwd().
9389
9390 2005-01-04  Roger Sayle  <roger@eyesopen.com>
9391
9392         * fold-const.c (fold_single_bit_test): Delete unreachable handling
9393         of TRUTH_NOT_EXPR.
9394         (fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
9395         all the cases handled by it are inverted by invert_truthvalue.
9396
9397 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
9398
9399         * config/sparc/sparc.md (save_register_windowdi): Add missing mode.
9400         (save_register_windowsi): Likewise.
9401
9402 2005-01-04  Richard Henderson  <rth@redhat.com>
9403
9404         * tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
9405
9406 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
9407
9408         PR middle-end/17767
9409         * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
9410         any simplifications of vector mode comparison operators.
9411         * simplify-rtx.c (simplify_relational_operation): Fix variable name.
9412
9413 2005-01-04  Paolo Bonzini  <bonzini@gnu.org>
9414             Devang Patel  <dpatel@apple.com>
9415
9416         PR tree-optimization/18308
9417         * tree-if-conv.c (add_to_dst_predicate_list): Gimplify
9418         the operands before creating a new expression.
9419         * dojump.c (do_jump): Make drop_through_label available
9420         for all cases.  Add expansion of COND_EXPR.
9421
9422 2005-01-04  Ira Rosen  <irar@il.ibm.com>
9423
9424         * tree-vectorizer.c (vect_analyze_offset_expr): Test for
9425         INTEGER_CST instead of TREE_CONSTANT.
9426         (vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
9427         instead of TREE_CONSTANT.
9428         (vect_analyze_pointer_ref_access): Test for INTEGER_CST
9429         instead of TREE_CONSTANT.
9430
9431 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
9432
9433         * tree-eh.c (replace_goto_queue): Return early if the queue is empty.
9434
9435 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
9436
9437         PR target/19240
9438         * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
9439         (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
9440
9441 2005-01-03  Richard Henderson  <rth@redhat.com>
9442
9443         * fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
9444         (fold_convert_const_int_from_int, fold_convert_const_int_from_real,
9445         fold_convert_const_real_from_real): Split out from ...
9446         (fold_convert_const): ... here.
9447
9448 2005-01-03  Richard Henderson  <rth@redhat.com>
9449
9450         PR target/19235
9451         * config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
9452         (mov<MMXMODEI>_internal): Likewise.
9453         (movdf_nointeger): Prefer Y while not preferring, but allowing, x.
9454         Add V2SF case; use it for SSE1; don't use TI.
9455         (movdf_integer): Likewise.
9456         (mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.
9457
9458 2005-01-03  Ira Rosen  <irar@il.ibm.com>
9459
9460         * tree-vectorizer.c (vect_strip_conversions): New function.
9461         (vect_analyze_offset_expr): Call vect_strip_conversions. Add
9462         check for binary class.
9463
9464 2005-01-03  Daniel Berlin  <dberlin@dberlin.org>
9465
9466         Fix PR debug/17924
9467         Fix PR debug/19191
9468         * dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
9469         is a decl.
9470         * gimple-low.c (mark_blocks_with_used_vars): New function.
9471         (mark_blocks_with_used_subblocks): Ditto.
9472         (mark_used_blocks): Ditto.
9473         (pass_mark_used_blocks): New pass.
9474         * tree-inline.c: Include debug.h.
9475         (expand_call_inline): Call outlining_inline_function here.
9476         * tree-optimize.c (init_tree_optimization_passes): Add
9477         pass_mark_used_blocks.
9478         * tree-pass.h (pass_mark_used_blocks): New.
9479         * Makefile.in (tree-inline.o): Add debug.h dependency.
9480
9481 2005-01-03  Geoffrey Keating  <geoffk@apple.com>
9482
9483         * config/darwin.c (darwin_handle_weak_import_attribute): Permit
9484         VAR_DECLs to have weak_import attribute.
9485
9486         * config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
9487         'struct ucontext'.
9488
9489 2004-01-03  Steven Bosscher  <stevenb@suse.de>
9490
9491         * passes.c (rest_of_compilation): Don't run regmove if only
9492         flag_expensive_optimizations, require flag_regmove instead.
9493
9494 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
9495
9496         * config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
9497         register "sparc".
9498         * config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
9499         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
9500         * config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
9501         * config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
9502
9503 2005-01-03  Richard Henderson  <rth@redhat.com>
9504
9505         * config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
9506         (ia64_const_ok_for_letter_p): New.
9507         (ia64_const_double_ok_for_letter_p): New.
9508         (ia64_extra_constraint): New.
9509         (ia64_expand_vecint_compare): New.
9510         (ia64_expand_vcondu_v2si): New.
9511         (ia64_expand_vecint_cmov): New.
9512         (ia64_expand_vecint_minmax): New.
9513         (ia64_print_operand): Add 'v'.
9514         (ia64_preferred_reload_class): New.
9515         (ia64_vector_mode_supported_p): New.
9516         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
9517         (PREFERRED_RELOAD_CLASS): Move to function.
9518         (CONST_OK_FOR_LETTER_P): Move to function.
9519         (CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
9520         (CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
9521         (CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
9522         (EXTRA_CONSTRAINT): Move to function.
9523         * config/ia64/ia64.md: Include vect.md.
9524         (itanium_class): Add mmalua.
9525         (type): Handle it.
9526         * config/ia64/itanium1.md (1_mmalua): New.  Add it to bypasses.
9527         (1b_mmalua): New.
9528         * config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
9529         * config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
9530         CONST0_RTX.
9531         (const_int_2bit_operand): New.
9532         (fr_reg_or_0_operand): New.
9533         * config/ia64/ia64-modes.def: Add vector modes.
9534         * config/ia64/ia64-protos.h: Update.
9535         * config/ia64/vect.md: New file.
9536
9537 2005-01-03  Richard Henderson  <rth@redhat.com>
9538
9539         * simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
9540
9541 2005-01-03  Uros Bizjak  <uros@kss-loka.si>
9542
9543         PR target/19236
9544         * config/i386/i386.c (log1psf2): Change mode of operands[0,1]
9545         to SFmode.
9546         (log1pdf2): Change mode of operands[0,1] to DFmode.
9547
9548 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
9549
9550         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
9551         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
9552         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
9553         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
9554         SPARC_RELAXED_ORDERING.
9555
9556 2005-01-03  Richard Henderson  <rth@redhat.com>
9557             Uros Bizjak  <uros@kss-loka.si>
9558
9559         PR target/14631
9560         * config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
9561         IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
9562         * config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
9563         handling.
9564         (*mmx_pinsrw, *sse2_pinsrw): New patterns.
9565         * config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
9566         const_pow2_1_to_128_operand): New predicates.
9567
9568 2005-01-02  Greg McGary  <greg@mcgary.org>
9569
9570         * tree-mudflap.c (mf_varname_tree): decl_printable_name handles
9571         anonymous decls.
9572         (mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
9573         object.  [ptr_type]: Remove unused variable.
9574         Remember nearest addressable array-element or record-component
9575         when checking bitfield components.  Tolerate empty BIND_EXPR.
9576
9577 2005-01-01  Richard Henderson  <rth@redhat.com>
9578
9579         * tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
9580         that don't narrow the value.  Fail for other conversions.
9581
9582 2005-01-01  Richard Henderson  <rth@redhat.com>
9583
9584         PR c/19031
9585         * c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
9586         * c-lang.c (finish_file): Don't do it here.
9587         * objc/objc-act.c (objc_finish_file): Likewise.
9588
9589         * cgraph.c (decl_assembler_name_equal): New.
9590         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
9591         (cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
9592         * cgraph.h (struct cgraph_varpool_node): Add next.
9593         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
9594         * varasm.c (assemble_alias): Mark the target as needed.
9595
9596 2005-01-01  Andrew Pinski  <pinskia@physics.uc.edu>
9597
9598         PR middle-end/19221
9599         * function.c (get_arg_pointer_save_area): Use entry_of_function
9600         instead of get_insns.
9601
9602 2005-01-01  Roger Sayle  <roger@eyesopen.com>
9603             Andrew Pinski  <pinskia@physics.uc.edu>
9604             James E. Wilson  <wilson@specifixinc.com>
9605
9606         PR rtl-optimization/12092
9607         * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
9608         is zero.
9609
9610 2005-01-01  Roger Sayle  <roger@eyesopen.com>
9611             Olivier Hainque  <hainque@act-europe.fr>
9612
9613         * tree.c (int_fits_type_p): A narrower type always fits in a
9614         wider one, except for negative values into unsigned types.
9615
9616 2005-01-01  Roger Sayle  <roger@eyesopen.com>
9617
9618         * tree.c (int_fits_type_p): Compare the result of force_fit_type
9619         with the original constant rather than require TREE_OVERFLOW.
9620
9621 2005-01-01  Steven Bosscher  <stevenb@suse.de>
9622
9623         PR middle-end/17544
9624         * c-decl.c (finish_function): If compiling C99, annotate the
9625         compiler generated return with the current file name and line 0.
9626         * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
9627         the source line is greater than 0.
9628         (remove_bb): Likewise.
9629
9630 See ChangeLog.12 for earlier changes.