OSDN Git Service

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