OSDN Git Service

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