12005-06-30  Diego Novillo  <dnovillo@redhat.com>
2
3	PR 21584
4	PR 22219
5	* tree-ssa-alias.c (create_name_tags): Also process
6	non-dereferenced pointers.
7	Remove argument 'ai'.  Update all callers.
8
92005-06-30  Andrew Pinski  <pinskia@physics.uc.edu>
10
11	* config/rs6000/darwin.h (STARTING_FRAME_OFFSET):
12	Set to 0 for FRAME_GROWS_DOWNWARD.
13	(REGISTER_NAMES): Add sfp.
14
152005-07-01  Kelley Cook  <kcook@gcc.gnu.org>
16
17	* config/arm/libunwind.S, config/arm/pr-support.c,
18	config/arm/unwind-arm.c, config/arm/unwind-arm.h,
19	config/c4x/predicates.md, tree-object-size.c: Update FSF address.
20
212005-06-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
22
23	PR target/22260
24	* config/sparc/sparc.c (emit_and_preserve): Add 2nd register.
25	Preserve the 2nd register too, if present.
26	(sparc_output_mi_thunk) <PIC case>: Preserve the PIC register too.
27	Adjust call to emit_and_preserve.
28
292005-06-30  Zack Weinberg  <zack@codesourcery.com>
30	    Jakub Jelinek  <jakub@redhat.com>
31
32	* pretty-print.h (PP_NL_ARGMAX): New.
33	(text_info): Add locus.
34	(struct chunk_info): New.
35	(output_buffer): Add formatted_obstack, chunk_obstack, and
36	cur_chunk_array. Change obstack to a pointer.
37	(pp_wrapping_mode_t, pp_wrapping_mode, pp_set_verbatim_wrapping): New.
38	(struct pretty_print_info): Replace ideal_maximum_length and
39	prefixing_rule with wrapping.
40	(pp_line_cutoff, pp_prefixing_rule): Update to match.
41	Update prototypes and wrapper macros throughout.
42	* pretty-print.c (pp_formatted_text_data, pp_append_r)
43	(pp_base_clear_output_area, pp_construct, pp_base_formatted_text)
44	(pp_base_last_position_in_text, pp_base_newline, pp_base_character):
45	Update for changes to pp structure.
46	(pp_base_prepare_to_format, pp_base_format_text): Delete.
47	(pp_base_format, pp_base_output_formatted_text): New functions.
48	(pp_base_format_verbatim): Use pp_set_verbatim_wrapping.
49	(pp_verbatim): Clear text.locus.
50	(pp_printf): Likewise.  Use pp_format and pp_output_formatted_text.
51	* c-objc-common.c (c_tree_printer): Update function signature.
52	* diagnostic.c (diagnostic_initialize): Update for changes to
53	pp structure.
54	(diagnostic_report_diagnostic): Call pp_format and then
55	pp_output_formatted_text.
56	(verbatim): Clear text.locus.
57	* diagnostic.h (diagnostic_prefixing_rule, diagnostic_line_cutoff):
58	Update for changes to pp structure.
59
60	* c-lang.c: No need to include c-pretty-print.h.
61	* Makefile.in: Remove bogus line containing only a tab.
62	(c-lang.o): Update dependencies.
63	* toplev.c (announce_function): Don't use verbatim.
64	(default_tree_printer): Update signature.
65
66	* objc/objc-lang.c: No need to include c-pretty-print.h.
67	* objc/Make-lang.in: Update dependencies.
68
692005-06-29  Daniel Berlin  <dberlin@dberlin.org>
70
71	* tree-complex.c (complex_variable_components): Now a hashtable.
72	(cvc_lookup): Ditto.
73	(cvc_insert): Ditto.
74	(create_components): Use referenced var iterator.
75	Initialize hashtable.	Use cvc_insert/lookup.
76	(extract_components): Use cvc_insert/lookup.
77	(update_complex_components): Ditto.
78	(update_complex_components_on_edge): Ditto.
79	* tree-dfa.c (referenced_vars): Now a hashtable.
80	(dump_referenced_vars): Use iterator.
81	(referenced_var_lookup): New function.
82	(referenced_var_insert): Ditto.
83	(add_referenced_var): Use referenced_var_insert.
84	(mark_new_vars_to_rename): Use DECL_UID.
85	* tree-flow-inline.h (first_htab_element): New function.
86	(end_htab_p): Ditto.
87	(next_htab_element): Ditto.
88	(first_referenced_var): Ditto.
89	(end_referenced_vars_p): Ditto.
90	(next_referenced_var): Ditto.
91	(is_call_clobbered): Use DECL_UID.
92	(mark_call_clobbered): Ditto.
93	(clear_call_clobbered): Ditto.
94	(mark_non_addressable): Ditto.
95	* tree-flow.h (htab_iterator): New struct.
96	(FOR_EACH_HTAB_ELEMENT): New macro.
97	(struct int_tree_map): New struct.
98	(int_tree_map_hash): Prototype.
99	(int_tree_map_eq): Ditto.
100	(referenced_var_iterator): Ditto.
101	(FOR_EACH_REFERENCED_VAR): New macro.
102	(referenced_vars): Now a hashtable.
103	* tree-into-ssa.c (symbol_marked_for_renaming): Use DECL_UID.
104	(add_new_name_mapping): Ditto.
105	(mark_def_sites): Ditto.
106	(insert_phi_nodes): Use referenced_var iterator.
107	(mark_def_site_blocks): Ditto.
108	(mark_sym_for_renaming): Use DECL_UID.
109	* tree-sra.c (is_sra_candidate_decl): Use DECL_UID.
110	(lookup_element): Ditto.
111	(find_candidates_for_sra): Use referenced_vars iterator.
112	Use DECL_UID.
113	* tree-ssa-alias.c (NUM_REFERENCES): New macro.
114	(NUM_REFERENCES_CLEAR): Ditto.
115	(NUM_REFERENCES_INC): Ditto.
116	(NUM_REFERENCES_SET): Ditto.
117	(alias_obstack): New bitmap obstack.
118	(struct alias_map_d): Use bitmap, not sbitmap.
119	(struct alias_info): Remove num_references.
120	(init_alias_info): Use referenced_var iterator.
121	Initialize bitmap obstack.
122	(delete_alias_info): Use referenced_var iterator.
123	Free bitmap obstack.
124	(compute_points_to_and_addr_escape): Use DECL_UID.
125	Use new NUM_REFERENCES macros.
126	(compute_flow_sensitive_aliasing): may_aliases is now a bitmap.
127	Use new NUM_REFERENCES macros.
128	(group_aliases_into): Update prototype to use bitmap.
129	(setup_pointers_and_addressables): Use referenced_vars iterator.
130	Use DECL_UID. Use new NUM_REFERENCES macros.
131	(add_pointed_to_var): Use DECL_UID.
132	(dump_alias_info): Use referenced_var iterator.
133	(add_type_alias): Ditto.
134	(used_portions): Now a hashtable.
135	(used_part_map_eq): New function.
136	(used_part_map_hash): Ditto.
137	(free_used_part_map): Ditto.
138	(up_lookup): Ditto.
139	(up_insert): Ditto.
140	(get_or_create_used_part_for): Use up_lookup.
141	(create_overlap_variables_for): Ditto.
142	(find_used_portions): Use up_insert.
143	Use DECL_UID.
144	(create_structure_vars): Init used_portions hashtable, use
145	referenced_vars iterator.
146	* tree-ssa-live.c (create_ssa_var_map): sbitmaps became bitmaps.
147	Use DECL_UID.
148	* tree-ssa-loop-im.c (gather_mem_refs_stmt): Use DECL_UID.
149	* tree-ssa-operands.c (get_asm_expr_operands): Ditto.
150	(note_addressable): Ditto.
151	* tree-ssa-structalias.c (set_uids_in_ptset): Ditto.
152	* tree-ssa.c (verify_flow_insensitive_alias_info): Use
153	referenced_var iterator.
154	Use DECL_UID.
155	(delete_tree_ssa): Ditto.
156	(int_tree_map_eq): New function.
157	(int_tree_map_hash): Ditto.
158	* tree-stdarg.c (find_va_list_reference): Use DECL_UID.
159	(va_list_ptr_read): Ditto.
160	(va_list_counter_struct_op): Ditto.
161	(va_list_ptr_write): Ditto.
162	(check_va_list_escapes): Ditto.
163	(check_all_va_list_escapes): Ditto.
164	(execute_optimize_stdarg): Ditto.
165	* tree-tailcall.c (suitable_for_tail_opt_p): Used referenced_var
166	iterator. 
167
1682005-06-30  Andrew Pinski  <pinskia@physics.uc.edu>
169
170	* config/rs6000/darwin.h (FRAME_POINTER_REGNUM): Rename to ...
171	(HARD_FRAME_POINTER_REGNUM): this.
172
1732005-06-30  Jan Hubicka  <jh@suse.cz>
174
175	* ipa-inline.c (cgraph_clone_inlined_nodes): Revert previous patch.
176
1772005-06-30  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
178
179	PR middle-end/22247
180	* tree-ssa-structalias.c (build_constraint_graph, scc_visit,
181	process_unification_queue, init_topo_info, topo_visit,
182	init_scc_info, free_scc_info, perform_var_substitution,
183	solve_graph): Use unsigned instead of uint.
184	
1852005-06-30  Jakub Jelinek  <jakub@redhat.com>
186
187	* function.c (gen_stack_protect_test): Add third argument.
188
1892005-06-30  J. D. Johnston  <jjohnst@us.ibm.com>
190
191	* gthr-tpf.h (CE2THRCPTR): Change field offset to 16.
192
1932005-06-30  Kazu Hirata  <kazu@codesourcery.com>
194
195	* config/c4x/c4x-protos.h: Remove the prototypes for those
196	functions removed from c4x.c.  Add prototypes for those
197	functions exported in c4x.c.
198	* config/c4x/c4x.c (any_operand, fp_zero_operand,
199	const_operand, stik_const_operand, not_const_operand,
200	reg_operand, r0r1_reg_operand, r2r3_reg_operand,
201	ext_low_reg_operand, ext_reg_operand, std_reg_operand,
202	std_or_reg_operand, addr_reg_operand, index_reg_operand,
203	dp_reg_operand, sp_reg_operand, st_reg_operand,
204	rc_reg_operand, call_address_operand,
205	symbolic_address_operand, dst_operand, src_operand,
206	src_hi_operand, lsrc_operand, tsrc_operand,
207	nonimmediate_src_operand, nonimmediate_lsrc_operand,
208	reg_or_const_operand, par_ind_operand, parallel_operand):
209	Remove.
210	(c4x_immed_float_p, c4x_a_register, c4x_x_register,
211	c4x_K_constant, c4x_N_constant, c4x_O_constant,
212	c4x_S_indirect): Export.
213	* config/c4x/c4x.h (PREDICATE_CODES): Remove.
214	* config/c4x/c4x.md: Include predicates.md.
215	* config/c4x/predicates.md: New.
216
2172005-06-30  Jakub Jelinek  <jakub@redhat.com>
218
219	* function.c (stack_protect_epilogue): Pass label to
220	stack_protect_test, assume it emitted also the conditional
221	branch.
222	* doc/md.texi (stack_protect_test): Adjust documentation.
223	* config/i386/i386.md (stack_protect_test): Add third argument,
224	emit beq with operands[2].
225	* config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Define to
226	flag_stack_protect != 0.
227	* config/rs6000/rs6000.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New
228	constants.
229	(stack_protect_set, stack_protect_test): New expanders.
230	(stack_protect_setsi, stack_protect_setdi, stack_protect_testsi,
231	stack_protect_testdi): New insns.
232	* config/rs6000/rs6000.c (rs6000_stack_protect_fail): New function.
233	(TARGET_STACK_PROTECT_FAIL): Define.
234	(rs6000_generate_compare): Handle UNSPEC_SP_TEST.
235
236	* config/rs6000/rs6000.h (FIRST_PSEUDO_REGISTER): Increment.
237	(DWARF_FRAME_REGISTERS, DWARF_REG_TO_UNWIND_COLUMN): Adjust, so
238	that addition of sfp doesn't change these.
239	(FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS,
240	REG_ALLOC_ORDER): Add sfp.
241	(INT_REGNO_P): Include FRAME_POINTER_REGNUM.
242	(FRAME_POINTER_REGNUM): Define to 113.
243	(HARD_FRAME_POINTER_REGNUM): Define to 31.
244	(REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add sfp.
245	(STARTING_FRAME_OFFSET): Set to 0 for FRAME_GROWS_DOWNWARD.
246	(ELIMINABLE_REGS): Never eliminate to
247	FRAME_POINTER_REGNUM, but HARD_FRAME_POINTER_REGNUM
248	instead.  Add eliminations from FRAME_POINTER_REGNUM.
249	(REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, INT_REG_OK_FOR_INDEX_P):
250	Include FRAME_POINTER_REGNUM.
251	(REGISTER_NAMES): Add sfp.
252	* config/rs6000/rs6000.c (rs6000_reg_names): Add sfp.
253	(alt_reg_names): Likewise.
254	(rs6000_stack_info): Handle FRAME_GROWS_DOWNWARD.
255	(rs6000_emit_prologue): Use HARD_FRAME_POINTER_REGNUM
256	instead of FRAME_POINTER_REGNUM.
257	(rs6000_initial_elimination_offset): Never eliminate to
258	FRAME_POINTER_REGNUM, but HARD_FRAME_POINTER_REGNUM
259	instead.  Add elimination offsets from FRAME_POINTER_REGNUM.
260
261	* config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Only return non-zero
262	if DEFAULT_ABI == ABI_V4.
263
2642005-06-30  Steven Bosscher  <stevenb@suse.de>
265
266	* coretypes.h (tls_model): Add TLS_MODEL_NONE as 0.
267	* tree.h (struct tree_decl): New field `tls_model'.
268	(DECL_TLS_MODEL): New.
269	(DECL_THREAD_LOCAL_P): Rename from DECL_THREAD_LOCAL, make it
270	a predicate.
271	* rtl.h (decl_default_tls_model): Add prototype for it.
272	* varasm.c (decl_tls_model): Rewritten and renamed to ...
273	(decl_default_tls_model): ... this.
274	(default_encode_section_info): Use DECL_TLS_MODEL instead of
275	decl_tls_model.
276	(assemble_variable): Replace DECL_THREAD_LOCAL with
277	DECL_THREAD_LOCAL_P.
278	(default_section_type_flags_1): Likewise.
279	(categorize_decl_for_section): Likewise.
280	* tree.c (staticp): Likewise.
281	(recompute_tree_invarant_for_addr_expr): Likewise.
282	* drawf2out (loc_descriptor_from_tree_1): Likewise.
283	* c-decl.c (diagnose_mismatched_decls): Likewise.
284	with DECL_THREAD_LOCAL_P.
285	(start_decl): Likewise.
286	* print-tree.c (print_node): Likewise.  Print the TLS model.
287	(grokdeclarator): Set the default DECL_TLS_MODEL here.
288	* c-common.c (handle_tls_model_attribute): Rewrite to set the
289	TLS model up based on the attribute.  Never add the attribute
290	to the decl's attributes list.
291	* config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Replace
292	DECL_THREAD_LOCAL with DECL_THREAD_LOCAL_P.
293
2942005-06-30  Zdenek Dvorak  <dvorakz@suse.cz>
295
296	PR testsuite/21967
297	* tree-ssa-live.c (mark_all_vars_used_1): Ignore variables in
298	TMR_ORIGINAL.
299
3002005-06-30  Bernd Schmidt  <bernd.schmidt@analog.com>
301
302	* config/bfin/bfin.md (addv2hi3, subv2hi3, sminv2hi3, smaxv2hi3,
303	mulv2hi3, negv2hi2, absv2hi2): Pattern names fixed by appending the
304	necessary digit.
305
3062005-06-29  David Edelsohn  <edelsohn@gnu.org>
307
308	* config/rs6000/rs6000.c (rs6000_file_start): Use PPC405_ERRATUM77.
309
3102005-06-29  Diego Novillo  <dnovillo@redhat.com>
311
312	PR 22234
313	* tree-ssa-copy.c (fini_copy_prop): Do not overwrite copy_of
314	when following copy-of chains.
315
3162005-06-30  Jan Hubicka  <jh@suse.cz>
317
318	* function.h (struct function): Add saved blocks/unexpanded var list.
319	* gimple-low.c (record_vars): Insert only VAR_DECLs.
320	* tree-inline.c (add_lexical_block): Declare; do not clear sublocks.
321	(remap_decl): Do not declare vars.
322	(remap_block): Do not care inserting blocks.
323	(remap_blocks): New function.
324	(copy_body_r): Update debug info.
325	(expand_call_inline): Duplicate callee block tree into caller;
326	copy all the unexpanded_var_list.
327	(save_body): Save unexpanded_var_list and blocks.
328	* tree-optimize.c (tree_rest_of_optimization): Restore
329	blocks/unexpanded_var_list.
330
3312005-06-29  Richard Henderson  <rth@redhat.com>
332
333	* config/ia64/ia64.c (ia64_expand_vecint_minmax): Use us_minus and
334	plus for V4HImode UMAX.
335
3362005-06-29  Joseph S. Myers  <joseph@codesourcery.com>
337
338	* c-tree.h (default_function_array_conversion): Take and return
339	struct c_expr.
340	* c-typeck.c (default_function_array_conversion): Split into
341	array_to_pointer_conversion and function_to_pointer_conversion.
342	Take and return struct c_expr.
343	(array_to_pointer_conversion): Do not handle type qualifiers or
344	COMPOUND_EXPRs specially.
345	(build_function_call): Call function_to_pointer_conversion for
346	function designators.
347	(build_unary_op): Call array_to_pointer_conversion, not
348	default_function_array_conversion.
349	(digest_init, output_init_element): Likewise.
350	* c-parser.c: All callers of default_function_array_conversion
351	changed.
352
3532005-06-29  Ziemowit Laski  <zlaski@apple.com>
354
355	* config/darwin.c (machopic_select_section): constant ObjC string
356	objects now always have type "__builtin_ObjCString".
357
3582005-06-29  Richard Henderson  <rth@redhat.com>
359
360	* config/alpha/alpha.md (vec_shl_<VEC>, vec_shr_<VEC>): New.
361
3622005-06-29  Richard Henderson  <rth@redhat.com>
363
364	* tree-vect-transform.c (vect_min_worthwhile_factor): Declare.
365	(vect_create_epilog_for_reduction): Don't use vec_shr if the
366	operation is emulated.
367	(vectorizable_reduction): Duplicate vect_min_worthwhile_factor
368	tests from vectorizable_operation.
369
3702005-06-29  Caroline Tice  <ctice@apple.com>
371
372	Fix PR 21956
373	* varasm.c (assemble_start_function):  Add "L" to beginning of
374	local labels, so assembler & linker treat them as local.
375	
3762005-06-29  Richard Henderson  <rth@redhat.com>
377
378	* config/i386/i386.c (ix86_expand_int_vcond): Remove unsignedp
379	argument.  Simplify canonicalization of condition.  Use unsigned
380	saturating subtraction for QI and HImode unsigned compares.  Use
381	bit arithmetic tricks for SImode unsigned compares.
382	* config/i386/i386-protos.h (ix86_expand_int_vcond): Update decl.
383	* config/i386/sse.md (SSEMODE14): New.
384	(umaxv8hi3): Use us_minus+plus to avoid vcond.
385	(umaxv4si3): New.
386	(smax<SSEMODE14>3): Rename from smaxv16qi3 and macroize.
387	(smin<SSEMODE14>3): Similarly with sminv16qi3.
388	(umin<SSEMODE24>3): Similarly with uminv8hi3.
389
3902005-06-29  Ian Lance Taylor  <ian@airs.com>
391
392	* dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Change
393	GEN_INT to gen_int_for_mode when storing register size to memory.
394
3952005-06-29  Stuart Hastings  <stuart@apple.com>
396
397	* gcc/config/i386/mmintrin.h: Mark vector intrinsics always_inline.
398	* gcc/config/i386/emmintrin.h: Likewise.
399	* gcc/config/i386/pmmintrin.h: Likewise.
400	* gcc/config/i386/xmmintrin.h: Likewise.
401					
4022005-06-29  Steve Ellcey  <sje@cup.hp.com>
403
404	PR middle-end/21969
405	* tree.h (TYPE_VECTOR_SUBPARTS): Change to shift expression.
406	(SET_TYPE_VECTOR_SUBPARTS): New.
407	* tree.c (make_vector_type): Replace TYPE_VECTOR_SUBPARTS with
408	SET_TYPE_VECTOR_SUBPARTS.
409	* tree-vect-transform.c (vect_transform_loop): Add cast.
410
4112005-06-29  Andreas Krebbel  <krebbel1@de.ibm.com>
412
413	* config/s390/s390.c (s390_decompose_address): Accept invalid
414	displacements for addresses containing frame_pointer_rtx or
415	virtual_stack_vars_rtx.
416	(s390_frame_info): Replaced use of STARTING_FRAME_OFFSET.
417	(s390_initial_elimination_offset): New offset when eliminating the 
418	soft frame pointer.
419	* config/s390/s390.h (FRAME_GROWS_DOWNWARD): Defined as 1.
420	(STARTING_FRAME_OFFSET, STACK_DYNAMIC_OFFSET): Definitions changed.
421
4222005-06-28  Ziemowit Laski  <zlaski@apple.com>
423
424	* c-common.c (flag_next_runtime): Move...
425	* toplev.c (flag_next_runtime): ... here.
426	* c-common.h (flag_next_runtime): Move...
427	* flags.h (flag_next_runtime): ... here.
428	* config/darwin-c.c: Include flags.h.
429	* config/t-darwin (darwin-c.o): Depend on flags.h.
430
4312005-06-29  Kaz Kojima  <kkojima@gcc.gnu.org>
432
433	* config/sh/linux-unwind.h (shmedia_fallback_frame_state):
434	Disable	aliasing warning with void * cast.
435	(sh_fallback_frame_state): Likewise.
436
4372005-06-29  Kaz Kojima  <kkojima@gcc.gnu.org>
438
439	* target.h (gcc_target): New field allocate_initial_value.
440	* target-def.h (TARGET_ALLOCATE_INITIAL_VALUE): New macro.
441	(TARGET_INITIALIZER): Include it.
442	* integrate.c (allocate_initial_values): Use
443	targetm.allocate_initial_value.
444	* system.h: Poison ALLOCATE_INITIAL_VALUE.
445	* config/sh/sh-protos.h (sh_pr_n_sets): Delete.
446	* config/sh/sh.c (sh_pr_n_sets): Make it static.
447	(sh_allocate_initila_value): New function.
448	(TARGET_ALLOCATE_INITIAL_VALUE): Override default.
449	* config/sh/sh.h (ALLOCATE_INITIAL_VALUE): Delete.
450	* doc/tm.texi (TARGET_ALLOCATE_INITIAL_VALUE): Rename and
451	update from ALLOCATE_INITIAL_VALUE.
452
4532005-06-28  Richard Henderson  <rth@redhat.com>
454
455	* tree-vectorizer.c (vect_is_simple_reduction): Compare types
456	using TYPE_MAIN_VARIANT.
457
4582005-06-28  Richard Henderson  <rth@redhat.com>
459
460	* config/ia64/ia64.c (ia64_expand_vecint_compare): Decompose to EQ
461	when using psubN.uuu.
462
4632005-06-29  Kelley Cook <kcook@gcc.gnu.org>
464
465	* doc/gcc.texi: Update FSF address.
466
4672005-06-28  Eric Christopher  <echristo@redhat.com>
468
469	PR c/22052
470	PR c/21975
471	* c-decl.c (diagnose_mismatched_decls): Define DECL_EXTERN_INLINE.
472	Use. Fix detection of invalid extern inline redefinition.
473
4742005-06-28  Diego Novillo  <dnovillo@redhat.com>
475
476	* tree-optimize.c (init_tree_optimization_passes): Fix typo.
477
4782005-06-28  Andrew Pinski  <pinskia@physics.uc.edu>
479
480	* config/rs6000/rs6000.md (setmemsi): s/operand/operands/.
481
4822005-06-28  Richard Henderson  <rth@redhat.com>
483
484	* config/ia64/ia64.c (ia64_expand_vecint_compare): Use unsigned
485	saturating subtraction for QI and HImode unsigned compares.  Use
486	bit arithmetic tricks for SImode unsigned compares.
487	(ia64_expand_vcondu_v2si): Remove.
488	(ia64_expand_vecint_cmov): Don't call it.
489
4902005-06-28  Richard Henderson  <rth@redhat.com>
491
492	* rtlanal.c (nonzero_bits1): Use the mode of the value for
493	determining integral-ness for comparisons.
494
4952005-06-28  Andrew Pinski  <pinskia@physics.uc.edu>
496
497	* config/rs6000/rs6000.md (setmemsi): Fix operand 2.
498
4992005-06-28  Joseph S. Myers  <joseph@codesourcery.com>
500
501	* target.h (invalid_conversion, invalid_unary_op,
502	invalid_binary_op): New hooks.
503	* target-def.h (TARGET_INVALID_CONVERSION,
504	TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP,
505	TARGET_INITIALIZER): Likewise.
506	* hooks.h (hook_constcharptr_tree_tree_null,
507	hook_constcharptr_int_tree_null,
508	hook_constcharptr_int_tree_tree_null): New.
509	* hooks.c (hook_constcharptr_tree_tree_null,
510	hook_constcharptr_int_tree_null,
511	hook_constcharptr_int_tree_tree_null): Likewise.
512	* gcc/doc/tm.texi (TARGET_INVALID_CONVERSION,
513	TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): Document.
514	* c-convert.c (convert): Use invalid_conversion hook.
515	* c-typeck.c (build_unary_op): Use invalid_unary_op hook.
516	(build_binary_op): Use invalid_binary_op hook.
517	* config/ia64/ia64-modes.def: Define RFmode.
518	* config/ia64/ia64-protos.h (spill_xfmode_operand): Remove.
519	(ia64_expand_movxf_movrf): New.
520	* config/ia64/ia64.md (movxf): Move code to
521	ia64_expand_movxf_movrf.
522	(movrf, movrf_internal): New.
523	* ia64.c (ia64_invalid_conversion, ia64_invalid_unary_op,
524	ia64_invalid_binary_op, TARGET_INVALID_CONVERSION,
525	TARGET_INVALID_UNARY_OP, TARGET_INVALID_BINARY_OP): New.
526	(spill_xfmode_operand): Rename to spill_xfmode_rfmode_operand.
527	Add mode parameter.  Make static.
528	(ia64_expand_movxf_movrf): New, moved from ia64.md.  Handle RFmode
529	as well as XFmode.
530	(ia64_function_arg, ia64_function_value, ia64_register_move_cost,
531	ia64_scalar_mode_supported_p): Handle RFmode as well as XFmode.
532	(ia64_init_builtins): Set up __fpreg as RFmode.
533	(ia64_mangle_fundamental_type): Mangle __fpreg as u7__fpreg.
534
5352005-06-28  Adrian Straetling  <straetling@de.ibm.com>
536
537	* builtins.c: (expand_builtin_memset): Rewrite to support
538	'set_storage_via_setmem'.
539	* expr.c: (enum insn_code setmem_optab): Define.
540	(enum insn_code clrmem_optab): Remove.
541	(set_storage_via_setmem): New function.
542	(clear_storage_via_setmem): Remove.
543	(clear_storage): Replace call to "clear_storage_via_clrmem" with
544	"set_storage_via_setmem".
545	* expr.h: (set_storage_via_setmem): Declare.
546	(CLEAR_RATIO): Redefine using HAVE_setmemM.
547	* optabs.h: (enum insn_code setmem_optab): Declare.
548	(enum insn_code clrmem_optab): Remove.
549	* optabs.c: (init_optabs): Initialize setmem_optab.
550	(enum insn_code clrmem_optab): Remove.
551	* genopinit.c: (otabs): Likewise.
552	* doc/md.texi: Document new standard pattern 'setmem'. Remove
553	  'clrmem'.
554	* config/alpha/alpha.c: (alpha_expand_block_clear): Adjust
555	'operands' ordering.
556	* config/frv/frv.c: (frv_expand_block_clear): Likewise.
557	* config/rs6000/rs6000.c: (expand_block_clear): Likewise.
558	* config/alpha/alpha.md: ("clrmemqi", "clrmemdi"): Rename to "setmemM".
559	FAIL on operands[2]!=const0_rtx. Adjust 'operands' ordering.
560	* config/avr/avr.md: ("clrmemhi"): Likewise.
561	* config/frv/frv.md: ("clrmemsi"): Likewise.
562	* config/i386/i386.md: ("clrmemsi", "clrmemdi"): Likewise.
563	* config/pa/pa.md: ("clrmemsi", "clrmemdi"): Likewise.
564	* config/rs6000/rs6000.md: ("clrmemsi"): Likewise.
565	* config/s390/s390.md: ("clrmem<mode>"): Likewise.
566
5672005-06-28  Paul Brook  <paul@codesourcery.com>
568
569	* Makefile.in: Set and use UNWIND_H.  Install as unwind.h.
570	* c-decl.c (finish_decl): Call default_init_unwind_resume_libfunc.
571	* except.c (add_ehspec_entry): Generate arm eabi filter lists.
572	(assign_filter_values): Ditto.
573	(output_ttype): New function.
574	(output_function_exception_table): Use output_ttype.  Generate arm
575	eabi filter lists.
576	(default_init_unwind_resume_libfunc): New function.
577	* except.h (default_init_unwind_resume_libfunc): Add prototype.
578	* optabs.c (init_optabs): Don't set unwind_resume_libfunc.
579	* opts.c (decode_options): Use targetm.unwind_tables_default.
580	* target-def.h (TARGET_ASM_TTYPE): Provide and use definition.
581	(TARGET_ARM_EABI_UNWINDER, TARGET_UNWIND_TABLES_DEFAULT): Ditto.
582	* target.h (struct gcc_target): Add asm.ttype, unwind_tables_default
583	and arm_eabi_unwinder.
584	* unwind-c.c: Support Arm EABI unwinder.
585	* unwind.h: Rename ...
586	* unwind-generic.h: ... To this.
587	* doc/tm.texi (TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER): Document.
588	(TARGET_UNWID_TABLES_DEFAULT): Document.
589
590	* config/arm/arm-protos.h (arm_output_fn_unwind): Add prototype.
591	* config/arm/arm.c (arm_unwind_emit, arm_output_ttype): New functions.
592	(TARGET_UNWIND_EMIT, TARGET_ASM_TTYPE, TARGET_ARM_EABI_UNWINDER):
593	Define.
594	(thumb_pushpop, thumb_output_function_prologue): Output unwinding
595	directives.
596	(arm_unwind_emit_stm, arm_unwind_emit_set): New functions.
597	* config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS): Only define when
598	!TARGET_UNWIND_INFO.
599	(ARM_OUTPUT_FN_UNWIND, ARM_EABI_UNWIND_TABLES): Define.
600	* config/arm/bpabi.h (TARGET_UNWIND_INFO): Define.
601	* config/arm/elf.h (ASM_DECLARE_FUNCTION_NAME,
602	ASM_DECLARE_FUNCTION_SIZE): Use ARM_OUTPUT_FN_UNWIND.
603	* config/arm/lib1funcs.asm: Include libunwind.S.
604	* config/arm/libgcc-bpabi.ver: Add unwinding routines.
605	* config/arm/libunwind.S: New file.
606	* config/arm/pr-support.c: New file.
607	* config/arm/t-bpabi (LIB1ASMFUNCS): Add _unwind.
608	(UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
609	* config/arm/t-symbian (UNWIND_H, LIB2ADDEH, LIB2ADDEHDEP): Set.
610	* config/arm/unwind-arm.c: New file.
611	* config/arm/unwind-arm.h: New file.
612	* config/i386/t-netware (USER_H): Remove unwind.h.
613	* config/ia64/ia64.h (TARGET_UNWIND_TABLES_DEFAULT): Define.
614
6152005-06-28  DJ Delorie  <dj@redhat.com>
616
617	* c-decl.c (pop_scope): Move warning control into warning call.
618	(diagnose_mismatched_decls): Likewise.
619	(pushdecl): Likewise.
620	(start_decl): Likewise.
621	(grokparms): Likewise.
622	(start_function): Likewise.
623	(store_parm_decls_newstyle): Likewise.
624	(store_parm_decls_oldstyle): Likewise.
625	(finish_function): Likewise.
626	(declspecs_add_scspec): Likewise.
627	* c-format.c (decode_format_attr): Likewise.
628	(maybe_read_dollar_number): Likewise.
629	(avoid_dollar_number): Likewise.
630	(finish_dollar_format_checking): Likewise.
631	(check_format_info): Likewise.
632	(check_format_info_main): Likewise.
633	(check_format_types): Likewise.
634	(format_type_warning): Likewise.
635	* c-typeck.c (function_types_compatible_p): Likewise.
636	(build_array_ref): Likewise.
637	(convert_arguments): Likewise.
638	(build_c_cast): Likewise.
639	(store_init_value): Likewise.
640	(process_init_element): Likewise.
641	(c_start_case): Likewise.
642	* stor-layout.c (finalize_record_size): Likewise.
643	* tree-cfg.c (execute_warn_function_noreturn): Likewise.
644	* tree-inline.c (expand_call_inline): Likewise.
645
6462005-06-28  Uros Bizjak  <uros@kss-loka.si>
647
648	PR target/22134
649	* config/i386/i386.md (fist<mode>2_with_temp splitter):
650	Clobber memory operand, not scratch register.
651
6522005-06-28  Andreas Krebbel  <krebbel1@de.ibm.com>
653
654	* config/s390/s390.c (machine_function): New field has_landing_pad_p.
655	(s390_set_has_landing_pad_p, s390_reg_clobbered_rtx,
656	 s390_regs_ever_clobbered): New functions.
657	(s390_return_addr_rtx): Use get_hard_reg_initial_value.
658	(s390_register_info, s390_init_frame_layout, s390_update_frame_layout):
659	Use s390_regs_ever_clobbered.
660	(s390_emit_prologue): Don't use r14 as temp reg if its content is used
661	for builtin_return_address.
662	* config/s390/s390.md ("exception_receiver"): New expander.
663	* config/s390/s390-protos.h (s390_set_has_landing_pad_p): Prototype
664	added.
665
6662005-06-28  Andreas Krebbel  <krebbel1@de.ibm.com>
667
668	* except.c (current_function_has_exception_handlers): Function 
669	description added and if statements merged.
670
6712005-06-28  Richard Henderson  <rth@redhat.com>
672
673	* config/i386/sse.md (smaxv16qi3): Fix buffer overflow.
674	(sminv16qi3, umaxv8hi3, uminv8hi3): Likewise.
675
6762005-06-27  Richard Henderson  <rth@redhat.com>
677
678	* config/ia64/ia64.c (ia64_expand_vcondu_v2si): Generate proper
679	comparison operations.
680	(ia64_expand_vecint_minmax): Fix size of xops.
681	* config/ia64/vect.md (umax<VECINT>3): Fix fallback pattern typo.
682	(vec_shl_<VECINT>, vec_shr_<VECINT>): New.
683
6842005-06-27  Richard Henderson  <rth@redhat.com>
685
686	* tree-vect-transform.c (get_initial_def_for_reduction): Use correct
687	type for DEF and INIT_VAL.  Pretend MIN/MAX need epilogue adjustment.
688
6892005-06-27  Richard Henderson  <rth@redhat.com>
690
691	* config/i386/sse.md (vec_shl_<SSEMODEI>, vec_shr_<SSEMODEI>): New.
692	(smaxv16qi3, umaxv8hi3, sminv16qi3, uminv8hi3): New.
693
6942005-06-27  Richard Henderson  <rth@redhat.com>
695
696	* tree-vect-transform.c (vect_create_epilog_for_reduction): Remove
697	duplicate little-endian adjustment.
698
6992005-06-28  Kelley Cook  <kcook@gcc.gnu.org>
700
701	* doc/include/texinfo.tex: Import from upstream CVS.
702
7032005-06-28  Jan Hubicka  <jh@suse.cz>
704
705	* cgraph.c (cgraph_remove_node): Do not release function bodies until
706	full cgraph is built.
707	* cgraph.h (cgraph_decide_inlining_incrementally): Add early argument.
708	* cgraphunit.c (cgraph_finalize_function): Update call of
709	cgraph_decide_inlining_incrementally.
710	(initialize_inline_failed): Break out of ...
711	(cgraph_analyze_function): ... here.
712	(rebuild_cgraph_edges): New function.
713	(pass_rebuild_cgraph_edges): New pass.
714	* common.opt (fearly-inlining): New flag.
715	* ipa-inline.c: Include ggc.h
716	(cgraph_clone_inlined_nodes): Avoid re-using of original copy
717	when cgraph is not fully built.
718	(cgraph_decide_inlining_incrementally): Add early mode.
719	(cgraph_early_inlining): New function.
720	(cgraph_gate_early_inlining): Likewise.
721	(pass_early_ipa_inline): New pass.
722	* ipa.c (cgraph_postorder): NULLify aux pointer.
723	* tree-inline.c (expand_call_inline): Avoid warning early.
724	* tree-optimize.c (pass_early_local_passes): New.
725	(execute_cleanup_cfg_pre_ipa): New.
726	(pass_cleanup_cfg): New.
727	(register_dump_files): Fix handling subpasses of IPA pass.
728	(init_tree_optimization_passes): Add early passes.
729	(execute_ipa_pass_list): Fix handling of subpasses of IPA pass.
730	* passes.h (pass_early_tree_profile, pass_rebuild_cgraph_edges,
731	pass_early_ipa_inline): New passes.
732	* tree-profile.c (do_early_tree_profiling, pass_early_tree_profile): New.
733
734	* invoke.texi: Document early-inlining.
735
7362005-06-28  Kelley Cook  <kcook@gcc.gnu.org>
737
738	* doc/include/fdl.texi: Merge in changes from upstream.
739	* doc/include/gpl.texi: Likewise.
740
7412005-06-27  Diego Novillo  <dnovillo@redhat.com>
742
743	PR 21959
744	* tree-ssa-loop-niter.c (scev_probably_wraps_p): Handle type
745	casts between unsigned and signed types with different size
746	or precision.
747
7482005-06-28  Jan Hubicka  <jh@suse.cz>
749
750	* tree-optimize.c (exercute_free_datastructures):
751	Do not disband implicit edges; do not attempt to build insn list;
752	do not free cfg annotations.
753	(execute_free_cfg_annotations); Disband implicit edges here;
754	free cfg annotations here too.
755	(pass_free_cfg_annotations); New pass.
756	(init_tree_optimization_passes); Add pass_free_cfg_annotations.
757	* tree-ssa-operands.c (free_ssa_operands); Recover; export.
758	* tree-ssa-operands.h (free_ssa_operands); declare.
759	* tree-ssa.c (delete_tree_ssa); Free SSA operand; mark stmt modified;
760	kill PHI nodes.
761	* tree-ssanames.c (release_defs): Kill addresses_taken.
762
763	* basic-block.h (basic_block_def): Kill rbi.
764	(reorder_block_def): Kill; Remove next field (replaced by aux);
765	move other fields to ...
766	(rtl_bb_info): ... here.
767	* bb-reorder.c (find_traces, rotate_loop, find_traces_1_round,
768	copy_bb, connect_traces, add_labels_and_missing_jumps
769	fix_up_fall_thru_edges, fix_crossing_conditional_branches,
770	duplicate_computed_gotos, partition_hot_cold_basic-blocks):
771	Update to new fields.
772	* cfg.c (initialize_bb_rbi): Kill.
773	* cfglayout.c (record_effective_endpoints, fixup_reorder_chain,
774	fixup_fallthru_exit_predecessor, cfg_layout_duplicate_bb): Update.
775	* cfgrtl.c (cfg_layout_create_basic_block): Do not initialize rbi.
776	(try_redirect_by_replacing_jump): Update rbi references.
777	(cfg_layout_split_block): Likewise.
778	(cfg_layout_delete_block): Likewise.
779	(cfg_layout_merge_blocks): Likewise.
780	* function.c (thread_prologue_and_epilogue_insns): Likewise.
781	* passes.c (rest_of_handle_sms): Likewise.
782	* tracer.c (seen, tail_duplicate, layout_superblocks): Likewise.
783
7842005-06-27  David Edelsohn  <edelsohn@gnu.org>
785
786	* config/rs6000/rs6000.c (rs6000_file_start): Note PPC405 erratum
787	in verbose_asm output.
788	* config/rs6000/rs6000.h (PPC405_ERRATUM77): Bracket with
789	CONFIG_PPC405CR.
790	* config.gcc (powerpc with_which): Define CONFIG_PPC405CR for
791	405cr.
792
7932005-06-27  Jakub Jelinek  <jakub@redhat.com>
794
795	* builtin-attrs.def (DEF_ATTR_FOR_INT): Add for 5 and 6.
796	(DEF_LIST_INT_INT): Add for 4,0, 4,5, 5,0, 5,6.
797	(ATTR_NOTHROW_NONNULL_4, ATTR_NOTHROW_NONNULL_5): Define.
798	(ATTR_FORMAT_PRINTF_4_0, ATTR_FORMAT_PRINTF_4_5,
799	ATTR_FORMAT_PRINTF_5_0, ATTR_FORMAT_PRINTF_5_6): Define.
800	* builtins.c: Include tree-flow.h.
801	(expand_builtin_mempcpy, expand_builtin_memmove): Comment fixes.
802	(expand_builtin_object_size, expand_builtin_memory_chk,
803	maybe_emit_chk_warning, maybe_emit_sprintf_chk_warning,
804	compute_object_offset, compute_builtin_object_size,
805	fold_builtin_object_size): New functions.
806	(expand_builtin): Handle BUILT_IN_OBJECT_SIZE and BUILT_IN_*_CHK.
807	(fold_builtin_1): Likewise.  Handle BUILT_IN_{,V}{,F}PRINTF
808	and BUILT_IN_{,F}PRINTF_UNLOCKED.
809	(fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
810	fold_builtin_strncpy_chk, fold_builtin_strcat_chk,
811	fold_builtin_strncat_chk, fold_builtin_sprintf_chk,
812	fold_builtin_snprintf_chk, fold_builtin_printf, fold_builtin_fprintf):
813	New functions.
814	* builtins.def (BUILT_IN_OBJECT_SIZE, BUILT_IN_MEMCPY_CHK,
815	BUILT_IN_MEMMOVE_CHK, BUILT_IN_MEMPCPY_CHK, BUILT_IN_MEMSET_CHK,
816	BUILT_IN_STPCPY_CHK, BUILT_IN_STRCAT_CHK, BUILT_IN_STRCPY_CHK,
817	BUILT_IN_STRNCAT_CHK, BUILT_IN_STRNCPY_CHK, BUILT_IN_SNPRINTF_CHK,
818	BUILT_IN_SPRINTF_CHK, BUILT_IN_VSNPRINTF_CHK, BUILT_IN_VSPRINTF_CHK,
819	BUILT_IN_FPRINTF_CHK, BUILT_IN_PRINTF_CHK, BUILT_IN_VFPRINTF_CHK,
820	BUILT_IN_VPRINTF_CHK): New builtins.
821	* builtin-types.def (DEF_FUNCTION_TYPE_5, DEF_FUNCTION_TYPE_VAR_4):
822	Document.
823	(BT_FN_SIZE_CONST_PTR_INT, BT_FN_INT_INT_CONST_STRING_VALIST_ARG,
824	BT_FN_PTR_PTR_CONST_PTR_SIZE_SIZE, BT_FN_PTR_PTR_INT_SIZE_SIZE,
825	BT_FN_STRING_STRING_CONST_STRING_SIZE_SIZE,
826	BT_FN_INT_FILEPTR_INT_CONST_STRING_VALIST_ARG,
827	BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VALIST_ARG,
828	BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VALIST_ARG,
829	BT_FN_INT_INT_CONST_STRING_VAR, BT_FN_INT_FILEPTR_INT_CONST_STRING_VAR,
830	BT_FN_INT_STRING_INT_SIZE_CONST_STRING_VAR,
831	BT_FN_INT_STRING_SIZE_INT_SIZE_CONST_STRING_VAR): New types.
832	* c-common.c (DEF_FUNCTION_TYPE_5, DEF_FUNCTION_TYPE_6,
833	DEF_FUNCTION_TYPE_VAR_4, DEF_FUNCTION_TYPE_VAR_5): Define.
834	* Makefile.in (OBJS-common): Add tree-object-size.o.
835	(tree-object-size.o): Add dependencies.
836	* tree-pass.h (pass_object_sizes): Add.
837	* tree-optimize.c (init_tree_optimization_passes): Add
838	pass_object_sizes.
839	* tree-object-size.c: New file.
840	* tree.h (fold_builtin_memory_chk, fold_builtin_stxcpy_chk,
841	fold_builtin_strncpy_chk, fold_builtin_snprintf_chk,
842	compute_builtin_object_size, init_object_sizes, fini_object_sizes):
843	New prototypes.
844	* tree-ssa-ccp.c (get_strlen): Rename to ...
845	(get_maxval_strlen): ...this function.  Handle also computing of maximum
846	string length and maximum integral value.
847	(ccp_fold_builtin): Handle BUILT_IN_*_CHK.  Use get_maxval_strlen
848	instead of get_strlen.  Pass CALLEE and ARGLIST variables to the
849	folding functions instead of computing them again.
850	(execute_fold_all_builtins): Retry ccp_fold_builtin if a builtin changed
851	into some other builtin.
852	* doc/extend.texi (Object Size Checking): Document.
853
854	* regrename.c (copy_value): Fix comment.
855
856	* toplev.c (process_options): Use if (FRAME_GROWS_DOWNWARD)
857	instead of preprocessor conditionals.
858
859	* targhooks.c (default_hidden_stack_protect_fail): Fall back to
860	default_external_stack_protect_fail if visibility is not supported
861	or not flag_pic.
862	* config/i386/i386.c (ix86_stack_protect_fail): New function.
863	(TARGET_STACK_PROTECT_FAIL): Define.
864	* config/i386/i386.md (stack_protect_si): Change CLOBBER into
865	SET to zero.
866	(stack_protect_di): Likewise.  Use %k2 instead of %2 to avoid
867	invalid instruction xorl %rax, %rax.
868
8692005-06-27  Richard Henderson  <rth@redhat.com>
870
871	* c-cppbuiltin.c (c_cpp_builtins): Add __SSP_ALL__ and __SSP__.
872	* cfgexpand.c: Include params.h.
873	(has_protected_decls, has_short_buffer): New.
874	(expand_stack_vars): Take a predicate to determine what to expand.
875	(defer_stack_allocation): True when flag_stack_protect on.
876	(SPCT_HAS_LARGE_CHAR_ARRAY, SPCT_HAS_SMALL_CHAR_ARRAY): New.
877	(SPCT_HAS_ARRAY, SPCT_HAS_AGGREGATE): New.
878	(stack_protect_classify_type, stack_protect_decl_phase): New.
879	(stack_protect_decl_phase_1, stack_protect_decl_phase_2): New.
880	(add_stack_protection_conflicts, create_stack_guard): New.
881	(expand_used_vars): Add stack protection logic.
882	(tree_expand_cfg): Likewise.
883	* common.opt (Wstack-protector): New.
884	(fstack-protector, fstack-protector-all): New.
885	* function.c: Include predict.h.
886	(assign_parm_adjust_stack_rtl): Zap stack_parm when stack protect
887	wants to copy the parameter into the stack frame.
888	(stack_protect_prologue, stack_protect_epilogue): New.
889	(expand_function_end): Call stack_protect_epilogue.  Do 
890	sjlj_emit_function_exit_after after naked_return_label.
891	* function.h (struct function): Add stack_protect_guard.
892	* params.def (PARAM_SSP_BUFFER_SIZE): New.
893	* toplev.c (process_options): Disable flag_stack_protect and/or
894	warn_stack_protect based on FRAME_GROWS_DOWNWARD.
895	* tree.h (stack_protect_prologue): Declare.
896
897	* target-def.h (TARGET_STACK_PROTECT_GUARD): New.
898	(TARGET_STACK_PROTECT_FAIL): New.
899	(TARGET_INITIALIZER): Add them.
900	* target.h (struct gcc_target): Add stack_protect_guard and
901	stack_protect_fail.
902	* targhooks.c: Include ggc.h, gty header.
903	(stack_chk_guard_decl, default_stack_protect_guard): New.
904	(stack_chk_fail_decl, default_external_stack_protect_fail): New.
905	(default_hidden_stack_protect_fail): New.
906	* targhooks.h (default_stack_protect_guard): Declare.
907	(default_external_stack_protect_fail): Declare.
908	(default_hidden_stack_protect_fail): Declare.
909	* config/i386/i386.c (TARGET_STACK_PROTECT_FAIL): New.
910	* config/i386/i386.md (UNSPEC_SP_SET, UNSPEC_SP_TEST): New.
911	(trap): Use ud2.
912	(conditional_trap, conditional_trap_1): Remove.
913	(stack_protect_set, stack_protect_set_si, stack_protect_set_di): New.
914	(stack_protect_test, stack_protect_test_si, stack_protect_test_di): New.
915	* doc/md.texi (stack_protect_set, stack_protect_test): New.
916	* doc/tm.texi (TARGET_STACK_PROTECT_GUARD): New.
917	(TARGET_STACK_PROTECT_FAIL): New.
918
919	* libgcc-std.ver (GCC_4.1.0): New.
920	* libgcc.h (__stack_chk_guard): Declare.
921	(__stack_chk_fail, __stack_chk_fail_local): Declare.
922	* libgcc2.c (L_stack_chk, L_stack_chk_local): New.
923	* mklibgcc.in (lib2funcs): Add them.
924
9252005-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
926
927	PR c/21911
928	* c-common.c (check_function_sentinel): Pass in named argument
929	list, skip over named arguments before looking for a sentinel.
930	(check_function_arguments): Pass in named argument list.
931	* c-common.h (check_function_arguments): Likewise.
932	* c-typeck.c (build_function_call): Likewise.
933
9342005-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
935
936	* genautomata.c (decl_mode_check_failed,
937	regexp_mode_check_failed): Add noreturn attribute.
938
9392005-06-26  Kazu Hirata  <kazu@codesourcery.com>
940
941	* cfg.c, tree-vect-transform.c, tree.def: Fix comment typos.
942	* doc/invoke.texi: Fix typos.
943
944	* builtins.c, c-common.c, c-convert.c, c-decl.c, c-typeck.c,
945	convert.c, lambda-code.c, predict.c, tree-cfg.c,
946	tree-complex.c, tree-data-ref.c, tree-if-conv.c,
947	tree-mudflap.c, tree-scalar-evolution.c, tree-ssa-ccp.c,
948	tree-ssa-loop-ivcanon.c, tree-ssa-loop-ivopts.c,
949	tree-ssa-loop-manip.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
950	tree-vect-analyze.c, tree-vect-transform.c, tree-vectorizer.c,
951	tree.c: Use fold_buildN instead of fold (buildN (...)).
952
9532005-06-26  Gerald Pfeifer  <gerald@pfeifer.com>
954
955	* doc/install.texi (Specific): Do not specify the concrete
956	versions of GCC provided by Cygwin.  Simplify the part on
957	building on Cygwin.
958
9592005-06-26  Kazu Hirata  <kazu@codesourcery.com>
960
961	* config/arc/arc-protos.c: Remove the prototype for
962	arc_finalize_pic.
963	* config/arc/arc.c (arc_finalize_pic): Remove.
964	* config/arc/arc.h (FINALIZE_PIC): Likewise.
965	* config/bfin/bfin.h (FINALIZE_PIC): Likewise.
966	* config/rs6000/rs6000.h (FINALIZE_PIC): Likewise.
967
9682005-06-26  Jakub Jelinek  <jakub@redhat.com>
969
970	PR middle-end/17965
971	* calls.c (expand_call, emit_library_call_value_1): Use xmalloc/free
972	instead of alloca for really big argument sizes.
973
974	PR middle-end/22028
975	* gimplify.c (gimplify_type_sizes): Check for type == error_mark_node
976	earlier in the function.
977
978	* regrename.c (copy_value): Don't replace fixed or global
979	regs with older regs.
980
981	* defaults.h (FRAME_GROWS_DOWNWARD): Define to 0 if not defined.
982	* function.c (get_func_frame_size): Use if (FRAME_GROWS_DOWNWARD)
983	instead of preprocessor conditionals.
984	(assign_stack_local_1, assign_stack_temp_for_type): Likewise.
985	* cfgexpand.c (FRAME_GROWS_DOWNWARD): Don't redefine to 1 or 0
986	depending on if it was or was not defined previously.
987	* doc/rtl.texi (VIRTUAL_STACK_VARS_REGNUM): Mention that only non-zero
988	definition of FRAME_GROWS_DOWNWARD means frame grows downward.
989	* doc/tm.texi (FRAME_GROWS_DOWNWARD): Likewise.
990	* config/m68hc11/m68hc11.h (FRAME_GROWS_DOWNWARD): Define to 0.  Update
991	comment.
992	* config/pa/pa.h (FRAME_GROWS_DOWNWARD): Likewise.
993	* config/rs6000/rs6000.h (FRAME_GROWS_DOWNWARD): Likewise.
994	* config/stormy16/stormy16.h (FRAME_GROWS_DOWNWARD): Define to 0.
995	* config/c4x/c4x.h (FRAME_GROWS_DOWNWARD): Likewise.
996	* config/sh/sh.h (FRAME_GROWS_DOWNWARD): Likewise.
997	* config/ia64/ia64.h (FRAME_GROWS_DOWNWARD): Likewise.
998	* config/iq2000/iq2000.h (FRAME_GROWS_DOWNWARD): Likewise.
999	* config/pdp11/pdp11.h (FRAME_GROWS_DOWNWARD): Define to 1.  Update
1000	comment.
1001	* config/i860/i860.h (FRAME_GROWS_DOWNWARD): Likewise.
1002	* config/h8300/h8300.h (FRAME_GROWS_DOWNWARD): Likewise.
1003	* config/arc/arc.h (FRAME_GROWS_DOWNWARD): Likewise.
1004	* config/vax/vax.h (FRAME_GROWS_DOWNWARD): Likewise.
1005	* config/sparc/sparc.h (FRAME_GROWS_DOWNWARD): Likewise.
1006	* config/i386/i386.h (FRAME_GROWS_DOWNWARD): Likewise.
1007	* config/fr30/fr30.h (FRAME_GROWS_DOWNWARD): Likewise.
1008	* config/frv/frv.h (FRAME_GROWS_DOWNWARD): Likewise.
1009	* config/mn10300/mn10300.h (FRAME_GROWS_DOWNWARD): Likewise.
1010	* config/bfin/bfin.h (FRAME_GROWS_DOWNWARD): Likewise.
1011	* config/ns32k/ns32k.h (FRAME_GROWS_DOWNWARD): Likewise.
1012	* config/v850/v850.h (FRAME_GROWS_DOWNWARD): Likewise.
1013	* config/alpha/alpha.h (FRAME_GROWS_DOWNWARD): Update comment.
1014	* config/s390/s390.h (FRAME_GROWS_DOWNWARD): Likewise.
1015	* config/arm/arm.h (FRAME_GROWS_DOWNWARD): Likewise.
1016	* config/alpha/unicosmk.h (FRAME_GROWS_DOWNWARD): Define to 1.
1017	* config/cris/cris.h (FRAME_GROWS_DOWNWARD): Likewise.
1018	* config/m68k/m68k.h (FRAME_GROWS_DOWNWARD): Likewise.
1019	* config/mmix/mmix.h (FRAME_GROWS_DOWNWARD): Likewise.
1020
10212005-06-26  Kazu Hirata  <kazu@codesourcery.com>
1022
1023	PR tree-optimization/22026
1024	* tree-vrp.c (extract_range_from_binary_expr): Drop to
1025	VR_VARYING if a binary expression involving VR_ANTI_RANGE is
1026	PLUS_EXPR, MINUS_EXPR, or unsigned MULT_EXPR.
1027
10282005-06-26  Kazu Hirata  <kazu@codesourcery.com>
1029
1030	* Makefile.in (OBJS-common): Remove duplicate object file
1031	names.
1032
10332005-06-25  Jan Hubicka  <jh@suse.cz>
1034
1035	* tree-ssa-phiopt.c (replace_phi_edge_with_variable): Update profile.
1036	* cfg.c (update_bb_profile_for_threading): Fix rescaling.
1037
1038	* passes.c (rest_of_handle_branch_prob): Do not rebuild profiling info
1039	when not neecesary
1040	(rest_of_compilation): Fix conditional on branch prob pass.
1041	* predict.c (tree_estimate_probability): Enable strip_builtin_expect
1042	when not loop optimizing.
1043
10442005-06-25  Bernd Schmidt  <bernd.schmidt@analog.com>
1045
1046	* config/bfin/bfin.md (ror_one, rol_one, ashrdi3, ashldi3, lshrdi3):
1047	New patterns.
1048	(movbi): Add alternative to set CC to zero.
1049	(compare_eq, compare_ne, compare_le, compare_lt, compare_leu,
1050	compare_ltu): Now named patterns.
1051
10522005-06-25  Kelley Cook  <kcook@gcc.gnu.org>
1053
1054	* all files: Update FSF address in copyright headers.
1055
10562005-06-25  Kelley Cook  <kcook@gcc.gnu.org>
1057
1058	* gengtype.c: Update FSF address in copyright header.
1059	(create_file): Update FSF in outputed copyright header.
1060
10612005-06-24  Kazu Hirata  <kazu@codesourcery.com>
1062
1063	* cfglayout.c (block_locators_locs, line_locators_locs,
1064	line_locators_lines, file_locators_locs): Change the type to
1065	VEC(int,heap)*.
1066	(insn_locators_initialize, change_scope, insn_scope,
1067	locator_line, insn_line, locator_file): Use VEC instead of
1068	VARRAY.
1069
10702005-06-24  Jason Merrill  <jason@redhat.com>
1071
1072	* tree-nrv.c (tree_nrv): Fix to check assignments to the
1073	RESULT_DECL rather than just RETURN_EXPRs.
1074	(finalize_nrv_r): Adjust.
1075
10762005-06-24  Jan Hubicka  <jh@suse.cz>
1077
1078	* tree-optimize.c (init_tree_optimization_passes): Fix flags of
1079	all_passes and all_ipa_passes.
1080
1081	* c-common.c: Include cgraph.h
1082	(handle_externally_visible_attribute): New function.
1083	(c_common_att): Add "externally_visible" attribute.
1084	* cgraph.c (decide_is_variable_needed): Obey externally
1085	visible flag.
1086	(cgraph_varpool_finalize_decl): Avoid redundant checking.
1087	* cgraph.h (struct cgraph_node): New flag externally_visible.
1088	(decide_is_function_needed): Obey externally visible flag.
1089	(cgraph_finalize_function): Avoid redundant checks.
1090	(cgraph_function_and_variable_visibility): Bring symbols local
1091	when asked for.
1092	* common.opt (fwhole-program): New flag.
1093
1094	* doc/invoke.texi (-fwhole-program): Document.
1095
10962005-06-24  Mark Mitchell  <mark@codesourcery.com>
1097
1098	PR 22171
1099	* tree-ssa-operands.c (get_expr_operands): Check s_ann for NULL
1100	before use.
1101
11022005-06-23  Mark Mitchell  <mark@codesourcery.com>
1103
1104	PR 22000
1105	* tree-ssa-operands.c (get_expr_operands): Check the volatility of
1106	the FIELD_DECL and set s_ann->has_volatile_ops accordingly.
1107
11082005-06-24  Jan Hubicka  <jh@suse.cz>
1109
1110	* opts.c (decode_options): Enable unit-at-a-time by default at -O1.
1111
11122005-06-23  Jeff Law  <law@redhat.com>
1113
1114	* tree-optimize.c (init_tree_optimization_passes): Move
1115	copy prop pass to run just before VRP.
1116	* tree-vrp.c (remove_range_assertions): Remove copies created
1117	by ASSERT_EXPR removal.
1118
11192005-06-23  Kazu Hirata  <kazu@codesourcery.com>
1120
1121	PR tree-optimization/22117
1122	* tree-vrp.c (extract_range_from_binary_expr): Compute a
1123	correct range when adding two pointers.
1124
11252005-06-23  Jason Merrill  <jason@redhat.com>
1126
1127	PR c++/19317
1128	Leave the return slot target in the MODIFY_EXPR rather than making
1129	it an argument, but only use it if the CALL_EXPR has a flag set.
1130	* tree.h (CALL_EXPR_HAS_RETURN_SLOT_ADDR): Rename to
1131	CALL_EXPR_RETURN_SLOT_OPT.
1132	* calls.c (expand_call): Adjust.
1133	* tree-inline.c (expand_call_inline): Adjust.
1134	* tree-pretty-print.c (dump_generic_node): Adjust.
1135
1136	And set the flag as appropriate.
1137	* gimplify.c (gimplify_modify_expr_rhs): Set
1138	CALL_EXPR_HAS_RETURN_SLOT_ADDR where the LHS is obviously safe.
1139	* tree-nrv.c (execute_return_slot_opt): Set
1140	CALL_EXPR_HAS_RETURN_SLOT_ADDR based on escape analysis.
1141	* tree-pass.h: Declare pass_return_slot.
1142	* tree-optimize.c (init_tree_optimization_passes): Add it.
1143	
11442005-06-23  David Edelsohn  <edelsohn@gnu.org>
1145
1146	PR target/21760
1147	* config/rs6000/rs6000.h (PPC405_ERRATUM77): New.
1148	* config/rs6000/rs6000.md: Move atomic instructions to ...
1149	* config/rs6000/sync.md: Here.
1150	Change sync_compare_and_swap<mode> to define_expand.  All stwcx
1151	patterns test PPC405_ERRATUM77.
1152
11532005-06-23  Jan Hubicka  <jh@suse.cz>
1154	
1155	* tree-inline.c (copy_body_r): Remap labels correctly.
1156
11572005-06-22  Alan Modra  <amodra@bigpond.net.au>
1158
1159	* config/rs6000/sysv4.h (TARGET_ASM_EXCEPTION_SECTION): Delete.
1160
11612005-06-22  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1162
1163	PR middle-end/20593
1164	* varasm.c (compute_reloc_for_constant): Treat VIEW_CONVER_EXPR
1165	the same as the other cast operands.
1166	(output_addressed_constants): Likewise.
1167
11682005-06-21  Jeff Law  <law@redhat.com>
1169
1170	* tree-vrp.c (extract_range_from_unary_expr): Handle type
1171	conversions better.
1172
11732005-06-21  Dorit Nuzman  <dorit@il.ibm.com>
1174
1175	* genopinit.c (vec_shl_optab, vec_shr_optab): Initialize new optabs.
1176	(reduc_plus_optab): Removed.  Replcaed with...
1177	(reduc_splus_optab, reduc_uplus_optab): Initialize new optabs.
1178	* optabs.c (optab_for_tree_code): Return reduc_splus_optab or
1179	reduc_uplus_optab instead of reduc_plus_optab.
1180	(expand_vec_shift_expr): New function.
1181	(init_optabs): Initialize new optabs. Remove initialization of
1182	reduc_plus_optab.
1183	(optab_for_tree_code): Return vec_shl_optab/vec_shr_optab
1184	for VEC_LSHIFT_EXPR/VEC_RSHIFT_EXPR.
1185	* optabs.h (OTI_reduc_plus): Removed. Replaced with...
1186	(OTI_reduc_splus, OTI_reduc_uplus): New.
1187	(reduc_plus_optab): Removed.  Replcaed with...
1188	(reduc_splus_optab, reduc_uplus_optab): New optabs.
1189	(vec_shl_optab, vec_shr_optab): New optabs.
1190	(expand_vec_shift_expr): New function declaration.
1191
1192	* tree.def (VEC_LSHIFT_EXPR, VEC_RSHIFT_EXPR): New tree-codes.
1193	* tree-inline.c (estimate_num_insns_1): Handle new tree-codes.
1194	* expr.c (expand_expr_real_1): Handle new tree-codes.
1195	* tree-pretty-print.c (dump_generic_node, op_symbol, op_prio): Likewise.
1196	* tree-vect-generic.c (expand_vector_operations_1): Add assert.
1197
1198	* tree-vect-transform.c (vect_create_epilog_for_reduction): Add two
1199	alternatives for generating reduction epilog code.
1200	(vectorizable_reduction): Don't fail of direct reduction support is
1201	not available.
1202	(vectorizable_target_reduction_pattern): Likewise.
1203
1204	* config/rs6000/altivec.md (reduc_smax_v4si, reduc_smax_v4sf,
1205	reduc_umax_v4si, reduc_smin_v4si, reduc_smin_v4sf, reduc_umin_v4si,
1206	reduc_plus_v4si, reduc_plus_v4sf): Removed.
1207	(vec_shl_<mode>, vec_shr_<mode>, altivec_vsumsws_nomode,
1208	reduc_splus_<mode>, reduc_uplus_v16qi): New.
1209
12102005-06-20  Daniel Berlin  <dberlin@dberlin.org>
1211
1212	* c-typeck.c (build_function_call): Set fundecl = function again.
1213	* tree-ssa-alias.c (find_used_portions): Address taking causes the
1214	entire variable to be used.
1215	* tree-ssa-structalias.c (do_structure_copy): Fix handling of
1216	unknown size variables, and structure copies from addressof
1217	operations.  Simplify how we do *a = *b type structure copies.
1218	(init_base_vars): Add ANYTHING = &ANYTHING constraint the right
1219	way.  READONLY's address is not taken by default.
1220	INTEGER dereference should point to anything.
1221	(create_variable_info_for): It's okay for the first field to not start
1222	at 0.
1223
12242005-06-20  Kaz Kojima  <kkojima@gcc.gnu.org>
1225
1226	config/sh/linux.h (FUNCTION_PROFILER): Constify a char*.
1227
12282005-06-20  Roger Sayle  <roger@eyesopen.com>
1229	    Fariborz Jahanian <fjahanian@apple.com>
1230
1231	* combine.c (simplify_set): Simplify setting of CC register
1232	by removing redundant compare with 0 on RHS.
1233
12342005-06-20  Jan Beulich  <jbeulich@novell.com>
1235
1236	* config/i386/netware-libgcc.def: Update copyright.
1237	* config/i386/netware-libgcc.exp (__divdc3, __divsc3, __divxc3,
1238	__muldc3, __mulsc3, __mulxc3, __powidf2, __powisf2, __powixf2): Add.
1239	* config/i386/netware.c (gen_stdcall_decoration,
1240	gen_fastd_decoration): Merge into ...
1241	(gen_stdcall_or_fastcall_decoration): ... this. Adjust to match
1242	WinNT's changes.
1243	(gen_regparm_prefix): Adjust to match i386_nlm_encode_section_info.
1244	(i386_nlm_encode_section_info): Adjust to match WinNT's changes.
1245	* config/i386/t-nwld (SHLIB_LINK): Also create libgcc.imp alias of
1246	libgcc_s.imp. Use 'expr' rather than $(()) shell expressions.
1247	* gthr-nks.h (__gthread_objc_mutex_allocate): Kill another dubious
1248	use of NX_MUTEX_RECURSIVE.
1249
12502005-06-19  Roger Sayle  <roger@eyesopen.com>
1251
1252	* fold-const.c (swap_tree_comparison): Add support for unordered
1253	floating point comparisons.
1254	* tree-vrp.c (opposite_comparison): Delete.
1255	(extract_range_from_assert): Replace calls to opposite_comparison
1256	with calls to swap_tree_comparison.
1257	(register_edge_assert_for): Likewise.
1258	(vrp_evaluate_conditional): Likewise.
1259
12602005-06-20  Kaz Kojima  <kkojima@gcc.gnu.org>
1261
1262	* integrate.c (allocate_initial_values): Update the references
1263	to global_live_at_start	and global_live_at_end.
1264
12652005-06-20  Jan Hubicka  <jh@suse.cz>
1266
1267	* cfgloop.h (DLTHE_RECORD_COPY_NUMBER): New flag.
1268	* cfgloopmanip.c (duplicate_loop_to_header_edge): Set aux flags only
1269	when asked for.
1270	* loop-unroll.c (peel_loop_completely, unroll_loop_constant_iterations,
1271	unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid):
1272	Update call of duplicate_loop_to_header_edge.
1273	(apply_opt_in_copies): Clear out aux pointers.
1274
12752005-06-19  Joseph S. Myers  <joseph@codesourcery.com>
1276
1277	* config/i386/i386.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
1278	(ix86_mangle_fundamental_type): New.
1279	* config/ia64/ia64.c (TARGET_MANGLE_FUNDAMENTAL_TYPE): Define.
1280	(ia64_mangle_fundamental_type): New.
1281
12822005-06-19  Roger Sayle  <roger@eyesopen.com>
1283
1284	* c-decl.c (grokdeclarator): Only check TREE_OVERFLOW on
1285	INTEGER_CST nodes.
1286	* c-typeck.c (build_c_cast): Only preserve TREE_OVERFLOW on
1287	CONSTANT_CLASS_P nodes.
1288
12892005-06-19  Richard Henderson  <rth@redhat.com>
1290
1291	* config/ia64/vect.md (vec_extractv2sf_1): Fix cut-and-paste error;
1292	the shift is always required.
1293
12942005-06-19  Richard Henderson  <rth@redhat.com>
1295
1296	* config/ia64/ia64-modes.def (V4SF): Add.
1297	* config/ia64/ia64.c (ia64_legitimate_constant_p): Handle CONST_VECTOR.
1298	* config/ia64/ia64.h (CANNOT_CHANGE_MODE_CLASS): Allow vector to 
1299	integer mode changes in fp regs.
1300	* config/ia64/ia64.md (UNSPEC_VECT_EXTR): New.
1301	* config/ia64/vect.md (smaxv2sf3, sminv2sf3): Fix typos in names.
1302	(reduc_plus_v2sf, reduc_smax_v2sf, reduc_smin_v2sf): New.
1303	(vcondv2sf): Use gen_fpack
1304	(fpack): Remove * from name.
1305	(fswap, fmix_l, fmix_r, fmix_lr): New.
1306	(vec_setv2sf, vec_extractv2sf_0_le, vec_extractv2sf_0_be): New.
1307	(vec_extractv2sf_1, vec_extractv2sf): New.
1308
13092005-06-19  Andreas Krebbel  <krebbel1@de.ibm.com>
1310
1311	* combine.c (make_compound_operation): Use simplify_subreg.  Delete
1312	a optimization already done by simplify_subreg.
1313
13142005-06-19  Ulrich Weigand  <uweigand@de.ibm.com>
1315
1316	* loop.c (scan_loop): Do not consider insns setting the frame
1317	pointer to be candidates for hoisting.
1318
13192005-06-19  Uros Bizjak  <uros@kss-loka.si>
1320
1321	* config/i386/i386.md (*cmpfp_0_sf, *cmpfp_0_df, cmpfp_0_xf):
1322	Remove instruction patterns.
1323	(*cmpfp_0): New instruction pattern. Set "unit" attribute to "i387".
1324	(*cmpfp_sf, *cmpfp_df, *cmpfp_xf, *cmpfp_u, *_cmpfp_<mode>):
1325	Set "unit" attribute to "i387".
1326	(*pushsf, *pushsf_rex64, *pushdf_nointeger, *pushdf_integer)
1327	(*pushxf_nointeger, *pushxf_integer): Set "unit" attribute to "i387"
1328	for alternative 0.
1329	(*truncdfsf_mixed, *truncdfsf_i387, *truncxfsf2_mixed)
1330	(*truncxfsf2_i387, *truncxfdf2_mixed, *truncxfdf2_i387): Set "unit"
1331	attribute to "i387" when "type" attribute equals "multi".
1332	(*floathisf2_i387, *floatsisf2_mixed, *floatsisf2_i387)
1333	(*floatdisf2_mixed, *floatdisf2_i387, *floathidf2_i387)
1334	(*floatsidf2_mixed, *floatsidf2_i387, *floatdidf2_mixed)
1335	(*floatdidf2_i387, floathixf2, floatsixf2, floatdixf2): Set "unit"
1336	attribute to "i387" when "type" attribute equals "multi".
1337	* config/i386/mmx.md (*mov<mode>_internal_rex64)
1338	(*mov<mode>_internal, *movv2sf_internal_rex64, *movv2sf_internal):
1339	Set "unit" attribute to "mmx" when "type" attribute equals "ssecvt".
1340	(mmx_pmovmskb): Correct wrong "type" and "mode" attributes.
1341	* config/i386/sse.md (sse_cvtps2pi, sse_cvttps2pi, sse_cvtpd2di)
1342	(sse_cvttpd2pi): Set "unit" attribute to "mmx".
1343	(sse2_cvtpi2pd): Split register constraints. Set "unit" attribute
1344	to "mmx" for "y" operand 1.
1345
13462005-06-19  Uros Bizjak  <uros@kss-loka.si>
1347
1348	* config/i386/i386.c (ix86_function_arg_regno_p): Add MMX_REGNO_P
1349	for TARGET_MMX.  Use MMX_REGPARM_MAX and SSE_REGPARM_MAX for MMX
1350	and SSE registers to determine if regno is valid.
1351	(ix86_function_value_regno_p): Depend FIRST_FLOAT_REG on
1352	TARGET_FLOAT_RETURNS_IN_80387 also for TARGET_64BIT. Clean up.
1353
13542005-06-18  Richard Henderson  <rth@redhat.com>
1355
1356	* tree-complex.c (init_dont_simulate_again): Clear DONT_SIMULATE_AGAIN
1357	for control-altering statements; set it again for returns.
1358	(complex_visit_stmt): Return SSA_PROP_VARYING for stmts that are
1359	not MODIFY_EXPR.
1360
13612005-06-18  Richard Henderson  <rth@redhat.com>
1362
1363	PR tree-opt/22116
1364	* tree-ssa-pre.c (create_expression_by_pieces): Set
1365	DECL_COMPLEX_GIMPLE_REG_P.
1366	(insert_into_preds_of_block): Likewise.
1367
13682005-06-18  Steven Bosscher  <stevenb@suse.de>
1369
1370	* Makefile.in: Fix tree-cfgcleanup.c dependencies.
1371
13722005-06-18  Richard Henderson  <rth@redhat.com>
1373
1374	* expr.c (store_constructor): Use store of 0 to indicate value
1375	death instead of a clobber.
1376
1377	* config/i386/i386.c (ix86_expand_reduc_v4sf): New.
1378	* config/i386/i386-protos.h (ix86_expand_reduc_v4sf): Declare.
1379	* config/i386/sse.md (reduc_plus_v4sf): New.
1380	(reduc_smax_v4sf, reduc_smin_v4sf): New.
1381
13822005-06-18  James A. Morrison  <phython@gcc.gnu.org>
1383
1384	* fold_const (fold_binary): Fold X % (2**N) to X & (2**N - 1) for
1385	nonnegative values of X.
1386
13872005-06-18  Uros Bizjak  <uros@kss-loka.si>
1388
1389	* doc/md.texi (Standard Names): Change insn pattern name
1390	from truncM2 to btruncM2 for 'trunc' built-in description.
1391	Add rintM2 insn pattern description.
1392
13932005-06-18  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1394
1395	* c-decl.c (locate_old_decl): Add format attribute.
1396	(implicit_decl_warning): Likewise.
1397
1398	* diagnostic.h (verbatim): Move ...
1399	* toplev.h (verbatim): ... here.  Add ATTRIBUTE_GCC_DIAG.
1400	* pretty-print.h (pp_verbatim): Add ATTRIBUTE_GCC_PPDIAG.
1401
14022005-06-18  Roger Sayle  <roger@eyesopen.com>
1403
1404	PR target/22083
1405	* config/rs6000/aix51.h (TARGET_C99_FUNCTIONS): Remove definition.
1406
14072005-06-18  Dorit Nuzman  <dorit@il.ibm.com>
1408
1409	* tree.def (REDUC_MAX_EXPR, REDUC_MIN_EXPR, REDUC_PLUS_EXPR): New
1410	tree-codes.
1411	* optabs.h (OTI_reduc_smax, OTI_reduc_umax, OTI_reduc_smin,
1412	OTI_reduc_umin, OTI_reduc_plus): New optabs for reduction. 
1413	(reduc_smax_optab, reduc_umax_optab, reduc_smin_optab, reduc_umin_optab,
1414	reduc_plus_optab): New optabs for reduction.
1415	* expr.c (expand_expr_real_1): Handle new tree-codes.
1416	* tree-inline.c (estimate_num_insns_1): Handle new tree-codes.
1417	* tree-pretty-print.c (dump_generic_node, op_prio, op_symbol): Handle
1418	new tree-codes.
1419	* optabs.c (optab_for_tree_code): Handle new tree-codes.
1420	(init_optabs): Initialize new optabs.
1421	* genopinit.c (optabs): Define handlers for new optabs. 
1422
1423	* tree-vect-analyze.c (vect_analyze_operations): Fail vectorization in
1424	case of a phi that is marked as relevant. Call vectorizable_reduction.
1425	(vect_mark_relevant): Phis may be marked as relevant.
1426	(vect_mark_stmts_to_be_vectorized): The use corresponding to the 
1427	reduction variable in a reduction stmt does not mark its defining phi
1428	as relevant. Update documentation accordingly.
1429	(vect_can_advance_ivs_p): Skip reduction phis.
1430	* tree-vect-transform.c (vect_get_vec_def_for_operand): Takes
1431	additional argument. Handle reduction.
1432	(vect_create_destination_var): Update call to vect_get_new_vect_var.
1433	Handle non-vector argument.
1434	(get_initial_def_for_reduction): New function.
1435	(vect_create_epilog_for_reduction): New function. 
1436	(vectorizable_reduction): New function.
1437	(vect_get_new_vect_var): Handle new vect_var_kind.       
1438	(vectorizable_assignment, vectorizable_operation, vectorizable_store,
1439	vectorizable_condition): Update call to vect_get_new_vect_var.
1440	(vect_transform_stmt): Call vectorizable_reduction.
1441	(vect_update_ivs_after_vectorizer): Skip reduction phis.
1442	(vect_transform_loop): Skip if stmt is both not relevant and not live.
1443	* tree-vectorizer.c (reduction_code_for_scalar_code): New function.
1444	(vect_is_simple_reduction): Was empty - added implementation.
1445	* tree-vectorizer.h (vect_scalar_var): New enum vect_var_kind value.
1446	(reduc_vec_info_type): New enum vect_def_type value.
1447	* config/rs6000/altivec.md (reduc_smax_v4si, reduc_smax_v4sf,
1448	reduc_umax_v4si, reduc_smin_v4si, reduc_umin_v4sf, reduc_smin_v4sf,
1449	reduc_plus_v4si, reduc_plus_v4sf): New define_expands.
1450
1451	* tree-vect-analyze.c (vect_determine_vectorization_factor): Remove
1452	ENABLE_CHECKING around gcc_assert.
1453	* tree-vect-transform.c (vect_do_peeling_for_loop_bound,
1454	(vect_do_peeling_for_alignment, vect_transform_loop, 
1455	vect_get_vec_def_for_operand): Likewise.
1456
14572005-06-18  Joseph S. Myers  <joseph@codesourcery.com>
1458
1459	* config/ia64/ia64.c (ia64_function_arg): Set up a PARALLEL for a
1460	big-endian unnamed __float80 value.
1461
14622005-06-18  Richard Henderson  <rth@redhat.com>
1463
1464	PR tree-opt/22103
1465	* tree-sra.c (generate_copy_inout): Handle SSA_NAME complex
1466	destinations.
1467
14682005-06-17  Richard Henderson  <rth@redhat.com>
1469
1470	* tree-vect-transform.c (vect_do_peeling_for_loop_bound): Use
1471	initialize_original_copy_tables and free_original_copy_tables.
1472	(vect_do_peeling_for_alignment): Likewise.
1473
14742005-06-17  Pat Haugen  <pthaugen@us.ibm.com>
1475
1476	* bb-reorder.c (find_traces_1_round): Use succ block frequency
1477	instead of edge frequency for calls to better_edge_p.
1478
14792005-06-17  Andrew Pinski  <pinskia@physics.uc.edu>
1480
1481	PR tree-opt/22105
1482	* tree-ssa-loop-im.c (for_each_index): Handle COMPLEX_CST.
1483
14842005-06-17  Steve Ellcey  <sje@cup.hp.com>
1485
1486	PR target/19889
1487	* config/ia64/hpux.h (FUNCTION_PROFILER): New (dummy).
1488	(PROFILE_HOOK): New.
1489	(PROFILE_BEFORE_PROLOGUE): Undef.
1490	(NO_PROFILE_COUNTERS): New.
1491	* config/ia64/ia64-protos.h (ia64_profile_hook): New.
1492	* config/ia64/ia64.c (ia64_compute_frame_size): Add ifdef.
1493	(gen_mcount_func_rtx): New.
1494	(ia64_profile_hook): New.
1495	* config/ia64/ia64.md (ip_value): New.
1496
14972005-06-17  Devang Patel  <dpatel@apple.com>
1498
1499	* config/rs6000/predicates.md (s5bit_cint_operand,
1500	u5bit_cint_operand): New.
1501	* config/rs6000/altivec.md (altivec_vspltb, altivec_vsplth,
1502	altivec_vspltisw_v4sf): Use new 5 bit constant operand predicates.
1503	* config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Fix signed
1504	5 bit constant check.
1505	
15062005-06-17  Richard Henderson  <rth@redhat.com>
1507
1508	* local-alloc.c (update_equiv_regs): Update reg_equiv_init
1509	properly when moving an initialization insn.
1510
15112005-06-17  Paolo Bonzini  <bonzini@gnu.org>
1512
1513	* aclocal.m4 (gcc_AC_CHECK_TOOL): Do not overwrite the
1514	passed variable.
1515	* configure.ac: Regenerate.
1516
15172005-06-17  Jan Hubicka  <jh@suse.cz>
1518
1519	* tree-optimize.c (execute_ipa_pass_list): New.
1520	(ipa_passes): Use it.
1521
15222005-06-16  Richard Henderson  <rth@redhat.com>
1523
1524	PR tree-opt/22022
1525	* tree-complex.c (update_phi_components): Avoid no-op moves.
1526
15272005-06-16  Joseph S. Myers  <joseph@codesourcery.com>
1528
1529	* Makefile.in (cc1-checksum.c): Use
1530	build/genchecksum$(build_exeext), not build/genchecksum$(exeext).
1531
15322005-06-16  Geoffrey Keating  <geoffk@apple.com>
1533
1534	* gengtype.c (adjust_field_rtx_def): Don't add a skip to
1535	basic_block types.
1536
1537	* config/t-slibgcc-darwin (SHLIB_SOVERSION): Rename from
1538	SHLIB_MINOR.
1539	(SHLIB_REVISION): Delete.
1540	(SHLIB_VERSTRING): Update to compensate.
1541	(SHLIB_SONAME): Just use one '.' in the name.
1542
15432005-06-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
1544
1545	PR tree-optimization/22018
1546	* tree-vrp.c (vrp_int_const_binop): Overhaul handling of overflow.
1547
15482005-06-16  Richard Henderson  <rth@redhat.com>
1549
1550	PR tree-opt/22035
1551	* builtins.c (fold_builtin_complex_mul): Remove.
1552	(fold_builtin_complex_div): Remove.
1553	(fold_builtin_1): Don't call them.
1554	* fold-const.c (fold_complex_add, fold_complex_mult_parts,
1555	fold_complex_mult, fold_complex_div_parts, fold_complex_div): Remove.
1556	(fold_binary): Don't call them.  Don't expand complex comparisons to
1557	elementary comparisons.
1558	* tree-complex.c (init_dont_simulate_again): Enhance search for 
1559	stmts that require decomposition.
1560	(complex_visit_stmt): Handle RETURN_EXPR properly.
1561	(create_components): Handle no referenced variables properly.
1562	* tree.h (fold_complex_mult_parts): Remove.
1563	(fold_complex_div_parts): Remove.
1564
15652005-06-16  Richard Guenther  <rguenth@gcc.gnu.org>
1566
1567	* doc/extend.texi: Document sseregparm target attribute.
1568	Clarify fastcall and regparm documentation.
1569	* config/i386/i386.h: Adjust float_in_sse documentation.
1570	* config/i386/i386.c: Add new target attribute sseregparm.
1571	(ix86_handle_cdecl_attribute, ix86_handle_regparm_attribute):
1572	Merge into ...
1573	(ix86_handle_cconv_attribute): ... here.  Also handle
1574	sseregparm attribute.
1575	(ix86_comp_type_attributes): Compare sseregparm attributes.
1576	(ix86_function_sseregparm): New function, split out from ...
1577	(init_cumulative_args): ... here.  Use to decide use
1578	of SSE registers and error in case of missing support.
1579	(ix86_value_regno): Likewise.
1580	(function_arg_advance): Do not bail out for DFmode if we need
1581	to pass doubles in registers.
1582	(function_arg): Likewise.
1583
15842005-06-16  Paolo Bonzini  <bonzini@gnu.org>
1585	    Daniel Jacobowitz  <dan@codesourcery.com>
1586	    Alan Modra <amodra.bigpond.net.au>
1587
1588	* configure.ac (gcc_version): Set near the beginning.
1589	(as, ld, nm): Do not link in-tree tools.  Set gcc_cv_* if tools are
1590	found in the tree.  Use gcc_AC_PROG to find the tools in the system.
1591	(objdump): Do not look for it.
1592	* Makefile.in (NM_FOR_TARGET): Point to ./nm
1593	(ORIGINAL_AS_FOR_TARGET, ORIGINAL_LD_FOR_TARGET,
1594	ORIGINAL_NM_FOR_TARGET): Substitute from autoconf.
1595	(as, ld, nm): New rules.
1596	(libgcc.mk): Depend on them.
1597	* aclocal.m4 (gcc_AC_TOOL_DIRS, gcc_AC_CHECK_TOOL,
1598	gcc_AC_BUILD_EXEEXT): New.
1599	(gcc_AC_CHECK_PROG_VER): Use gcc_AC_BUILD_EXEEXT.
1600	* configure: Regenerate.
1601
16022005-06-16  Jan Hubicka  <jh@suse.cz>
1603
1604	* basic-block.h (rtl_bb_info): Break out head_, end_,
1605	global_live_at_start, global_live_at_end from ...
1606	(basic_block_def): ... here; update all references
1607	(BB_RTL): New flag.
1608	(init_rtl_bb_info): Declare.
1609	* cfgexpand.c (expand_gimple_basic_block): Init bb info, set BB_RTL
1610	flag.
1611	* cfgrtl.c: Include ggc.h
1612	(create_basic_block_structure): Init bb info.
1613	(rtl_verify_flow_info_1): Check BB_RTL flag and rtl_bb_info pointer.
1614	(init_rtl_bb_info): New function.
1615	(rtl_merge_block, cfglayout_merge_block): Copy global_live_at_end here.
1616	* cfghooks.c (merge_block): Do not copy global_live_at_end here.
1617	* cfg.c (clear_bb_flags): Skip BB_RTL flag.
1618	(dump_flow_info): Gueard global_live_* dumping.
1619
1620	* Makefile.in (cfg.o): Add new dependencies.
1621	* basic-block.h (reorder_block_def): Kill
1622	original/copy/duplicated/copy_number fields.
1623	(BB_DUPLICATED): New flag.
1624	(initialize_original_copy_tables, free_original_copy_tables,
1625	set_bb_original, get_bb_original, set_bb_copy, get_bb_copy): New.
1626	* cfg.c: Include hashtab.h and alloc-pool.h
1627	(bb_original, bb_copy, original_copy_bb_pool): New static vars.
1628	(htab_bb_copy_original_entry): New struct.
1629	(bb_copy_original_hash, bb_copy_original_eq): New static functions.
1630	(initialize_original_copy_tables, free_original_copy_tables,
1631	set_bb_original, get_bb_original, set_bb_copy, get_bb_copy): New
1632	global functions.
1633	* cfghooks.c (duplicate_block): Update original/copy handling.
1634	* cfglayout.c (fixup_reorder_chain): Likewise.
1635	(cfg_layout_initialize): Initialize orignal_copy tables.
1636	(cfg_layout_finalize): FInalize original_copy tables.
1637	(can_copy_bbs_p): Use BB_DUPLICATED flag.
1638	(copy_bbs): Likewise.
1639	* cfgloopmanip.c (update-single_exits_after_duplication): Likewise.
1640	(duplicate_loop_to_header_edge): Likewise; update handling of
1641	copy_number.
1642	(loop_version): Likewise.
1643	* dominance.c (get_dominated_by_region): Use BB_DUPLICATED_FLAG.
1644	* except.c (expand_resx_expr): Check that reg->resume is not set.
1645	* loop-unroll.c (unroll_loop_constant_iterations,
1646	unroll_loop_runtime_iterations, apply_opt_in_copies): Update
1647	copy/original handling.
1648	* loop-unwitch.c (unswitch_loop): Likewise.
1649	* tree-cfg.c (create_bb): Do not initialize RBI.
1650	(disband_implicit_edges): Do not kill RBI.
1651	(add_phi_args_after_copy_bb): Use new original/copy mapping.
1652	(add_phi_args_after_copy): Use BB_DUPLICATED flag.
1653	(tree_duplicate_sese_region): Update original/copy handling.
1654	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): Likewise.
1655	* tree-ssa-loop-manip.c (copy_phi_node_args): Likewise.
1656	* tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Likewise.
1657
16582005-06-15  Andrew Pinski  <pinskia@physics.uc.edu>
1659
1660	PR tree-opt/21923
1661	* tree-ssa.c (tree_ssa_useless_type_conversion_1): Conversions between
1662	integer types whos ranges are different are not useless.
1663
16642005-06-15  Andrew Pinski  <pinskia@physics.uc.edu>
1665
1666	PR tree-opt/22024
1667	* tree-ssa-reassoc.c (init_reassoc): Also give chain decl a distint
1668	rank.
1669
16702005-06-15  Diego Novillo  <dnovillo@redhat.com>
1671
1672	* tree-ssa-structalias.c (dump_solution_for_var): Reformat
1673	output.
1674	(dump_sa_points_to_info): Make extern.
1675	(debug_sa_points_to_info): New.
1676	* tree-ssa-structalias.h (TREE_SSA_STRUCTALIAS_H): Rename from
1677	TREE_ALIAS_COMMON.
1678	(dump_sa_points_to_info): Declare.
1679	(debug_sa_points_to_info): Declare.
1680
16812005-06-15  Joseph S. Myers  <joseph@codesourcery.com>
1682
1683	* c-tree.h (default_function_array_conversion): Declare.
1684	* c-typeck.c (default_function_array_conversion): Export.  Correct
1685	comment.
1686	(default_conversion): Do not call
1687	default_function_array_conversion.  Do not allow FUNCTION_TYPE.
1688	(build_function_call): Call default_function_array_conversion on
1689	the function.
1690	(convert_arguments): Do not call it on the function arguments.
1691	(build_unary_op): Do not allow ARRAY_TYPE or FUNCTION_TYPE for
1692	TRUTH_NOT_EXPR.  Call default_function_array_conversion for taking
1693	address of ARRAY_REF.
1694	(build_compound_expr): Do not call
1695	default_function_array_conversion.
1696	(build_c_cast): Do not call default_function_array_conversion.
1697	(convert_for_assignment): Do not call default_conversion.
1698	(digest_init): Call default_function_array_conversion to convert
1699	string constants and compound literals to pointers, but not
1700	otherwise.
1701	(output_init_element): Likewise.
1702	(build_asm_expr): Do not call default_function_array_conversion.
1703	(c_process_expr_stmt): Likewise.
1704	(c_objc_common_truthvalue_conversion): Likewise.  Do not allow
1705	FUNCTION_TYPE.
1706	* c-parser.c (c_parser_expression_conv): New.
1707	(c_parser_asm_operands, c_parser_expr_list): Add convert_p
1708	argument.  All callers changed.  Call
1709	default_function_array_conversion if convert_p.
1710	(c_parser_initializer, c_parser_initval): Call
1711	default_function_array_conversion except for string constants and
1712	compound literals.
1713	(c_parser_initelt): Call default_function_array_conversion for
1714	ObjC expression received.
1715	(c_parser_statement_after_labels): Call c_parser_expression_conv
1716	for return and expression statements.
1717	(c_parser_paren_condition, c_parser_for_statement,
1718	c_parser_conditional_expression): Call c_parser_expression_conv.
1719	(c_parser_expr_no_commas, c_parser_conditional_expression,
1720	c_parser_binary_expression, c_parser_cast_expression,
1721	c_parser_unary_expression): Call
1722	default_function_array_conversion.
1723
17242005-06-15  Diego Novillo  <dnovillo@redhat.com>
1725
1726	* tree-vrp.c (vrp_int_const_binop): Do not handle MAX_EXPR
1727	when the result overflows.
1728
17292005-06-15  David Ung  <davidu@mips.com>
1730
1731	* config/mips/mips.c (mips_rtx_cost_data): Add cost for 4kc, 4kp,
1732	24k and 24kx.
1733	
17342005-06-15  Richard Sandiford  <richard@codesourcery.com>
1735
1736	* doc/invoke.texi (-mips16): Fix typo.
1737
17382005-06-15  David Ung  <davidu@mips.com>
1739
1740	* config/mips/mips.h (GENERATE_MIPS16E): New definition.
1741	* config/mips/mips.md (zero_extend<SHORT:mode><GPR:mode>2):
1742	Changed expand condition to exclude generating of "and" if
1743	GENERATE_MIPS16E is true.
1744	(*zero_extend<SHORT:mode><GPR:mode>2_mips16e): New pattern for
1745	matching mips16e zeb/zeh.
1746	(*extend<SHORT:mode><GPR:mode>2_mips16e): New pattern for matching
1747	mips16e seb/seh. 
1748	(*extend<SHORT:mode><GPR:mode>2): Disable this pattern for
1749	GENERATE_MIPS16E. 
1750	* doc/invoke.texi (MIPS Options): Add comment to -mips16
1751	indicating MIPS16e ASE is used if targetting for MIPS32 or MIPS64.
1752	
17532005-06-15  Diego Novillo  <dnovillo@redhat.com>
1754
1755	PR 22018
1756	* tree-vrp.c (vrp_int_const_binop): New.
1757	(extract_range_from_binary_expr): Call it.
1758	Unify handling division and multiplication.
1759
17602005-06-15  Aldy Hernandez  <aldyh@redhat.com>
1761
1762	* c-common.h (same_scalar_type_ignoring_signedness): Protoize.
1763
1764	* c-common.c (same_scalar_type_ignoring_signedness): New.
1765
1766	* c-typeck.c (build_binary_op): Check compatability of vector
1767	types.  Move error report after switch.
1768	Do not clobber code[01] on *_DIV_EXPR case.
1769
1770	* testsuite/gcc.dg/simd-1.c: Update error messages.
1771	* testsuite/gcc.dg/simd-1b.c: Re-enable tests.  Update error
1772	messages.
1773	* testsuite/gcc.dg/simd-2.c: Update error messages.
1774	* testsuite/gcc.dg/simd-4.c: New.
1775
17762005-06-15  Bernd Schmidt  <bernd.schmidt@analog.com>
1777
1778	* Makefile.in (local-alloc.o): Depend on $(GGC_H) and reload.h.
1779	* local-alloc.c: Include "ggc.h" and "reload.h".
1780	(struct equivalence): New member is_arg_equivalence.
1781	(local_alloc): Always call update_equiv_regs.
1782	(update_equiv_regs): Allocate reg_equiv_init; set reg_equiv_init_size.
1783	Detect equivalences made by stores to memory in a second pass.
1784	Return early if not optimizing.
1785	Initialize reg_equiv_init for all equivalences; treat equivalences for
1786	REG_EQUIV notes existing before this pass specially.
1787	(no_equiv): Don't clear reg_equiv_init or remove notes if the
1788	is_arg_equivalence field is set.
1789	* reload.h (reg_equiv_init, reg_equiv_init_size): Declare.
1790	* reload1.c (reg_equiv_init): No longer static.
1791	(reg_equiv_init_size): New variable.
1792	(reload): Don't allocate reg_equiv_init; don't free it when done but
1793	clear it.
1794	Restructure equivalence set up code not to set reg_equiv_init, but to
1795	clear it when we can't use an equivalence.
1796	Undo change disabling equivalences for MEM_READONLY_P memrefs.
1797	Dump equivalencing insns to dump_file.
1798
17992005-06-14  Richard Sandiford  <richard@codesourcery.com>
1800
1801	* config/mips/mips.c (machine_function): Add varargs_size field.
1802	(mips_setup_incoming_varargs): Store the amount of extra stack space
1803	there rather than in *pretend_size.  When saving registers, always
1804	expect virtual_incoming_args_rtx to point to the start of the
1805	pretend arguments.
1806	(mips_va_start): Remove alignment hack.  Handle all
1807	!EABI_FLOAT_VARARGS_P cases in the same way.
1808	(compute_frame_size): Handle varargs_size.  Remove the redundant
1809	!TARGET_OLDABI condition in the handling of pretend_args_size.
1810	(mips_initial_elimination_offset): Remove the now-redundant check
1811	of TARGET_NEWABI.
1812
18132005-06-14  Jeff Law  <law@redhat.com>
1814
1815	* tree-vrp.c (local_fold): Remove.
1816	(simplify_using_ranges): Use fold_convert, not local_fold.  Tweak
1817	DIV/MOD case slightly for readability.
1818
18192005-06-14  Frank Ch. Eigler  <fche@redhat.com>
1820
1821	PR mudflap/21023
1822	* tree-mudflap.c (mudflap_finish_file): Exclude non-public
1823	rather than static objects (!) from libmudflap registration.
1824
18252005-06-14  Richard Sandiford  <richard@codesourcery.com>
1826
1827	* opt-functions.awk (global_state_p, needs_state_p, static_var): New.
1828	(var_ref): Take the option's flags as a second parameter.  Check
1829	static_var.
1830	* optc-gen.awk: Declare local state variables.  Pass flags to var_ref.
1831
18322005-06-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
1833
1834	PR target/20301
1835	* config/sparc/sol2.h (ASM_GENERATE_INTERNAL_LABEL): Emit
1836	unsigned index numbers.
1837
18382005-06-13  Geoffrey Keating  <geoffk@apple.com>
1839
1840	* Makefile.in (install-man): Doesn't really depend on installdirs.
1841	(various rules for installing manpages): Do depend on installdirs.
1842
18432005-06-14  Nathan Sidwell  <nathan@codesourcery.com>
1844
1845	* unwind-dw2-fde-darwin.c (examine_objects): Fix aliasing in
1846	read_encoded_value_with_base call.
1847	* unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Likewise.
1848	* unwind-dw2-fde.c (_Unwind_Find_FDE): Likewise.
1849	* unwind-dw2.c (extract_cie_info): Fix aliasing in
1850	read_encoded_value call.
1851	(execute_cfa_program, uw_frame_state_for): Likewise.
1852
18532005-06-13  Roger Sayle  <roger@eyesopen.com>
1854
1855	PR rtl-optimization/22053
1856	* reg-stack.c (compensate_edge): Correct mistake in the assertion
1857	checking of EDGE_ABNORMAL_CALL edges; complex return values can
1858	result in the top two stack slots, st(0) and st(1), being live.
1859
18602005-06-13  Jeff Law  <law@redhat.com>
1861
1862	* tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): No longer
1863	simplify DIV, MOD or ABS expressions using VRP information.
1864	Remove WALK_DATA parameter.  Prototype and all callers updated.
1865	(eliminate_redundant_computations): Remove WALK_DATA parameter.
1866	Prototype and all callers updated.
1867	(optimize_stmt): WALK_DATA parameter is now unused.
1868
1869	* tree-vrp.c (local_fold): New function.  Like fold, but
1870	strips useless type conversions in the result.
1871	(simplify_using_ranges): New function, largely cribbed from
1872	tree-ssa-dom.c::simplify_rhs_and_lookup_avail_expr.
1873	(vrp_finalize): Call simplify_using_ranges.
1874
18752005-06-13  Mark Mitchell  <mark@codesourcery.com>
1876
1877	* config/i386/x86-64.h (ASM_SPEC): Explicitly pass --64 to the
1878	assembler in 64-bit mode.
1879
18802005-06-13  David Edelsohn  <edelsohn@gnu.org>
1881
1882	Revert scc_operand patch.
1883	* config/rs6000/predicates.md (scc_operand): Delete.
1884	* config/rs6000/rs6000.md (scc_operand): Change to scc_eq_operand.
1885
18862005-06-13  Zdenek Dvorak  <dvorakz@suse.cz>
1887
1888	PR middle-end/21985
1889	* fold-const.c (split_address_to_core_and_offset): Always return
1890	the address of the base object.
1891
18922005-06-13  Bernd Schmidt  <bernd.schmidt@analog.com>
1893
1894	* doc/invoke.texi (Blackfin Options): Document -mlong-calls.
1895
18962005-06-12  Richard Henderson  <rth@redhat.com>
1897
1898	PR tree-opt/21994
1899	* tree-complex.c (update_complex_components_on_edge): New.
1900	(update_parameter_components): Use it.
1901	(update_phi_components): Likewise.
1902	(expand_complex_move): Likewise for is_ctrl_altering_stmt.
1903
19042005-06-12  James A. Morrison  <phython@gcc.gnu.org>
1905
1906	PR tree-optimization/14796
1907	* fold-const (fold_binary): Transform (X << C) >> C into X & (-1>>C)
1908	for unsigned types.
1909
19102005-06-12  Kazu Hirata  <kazu@codesourcery.com>
1911
1912	* cgraphunit.c, tree-ssa-loop-ivopts.c,
1913	tree-ssa-structalias.c, tree-vectorizer.c, tree-vectorizer.h,
1914	config/sparc/sparc.c: Fix comment typos.
1915
19162005-06-12  Richard Earnshaw  <richard.earnshaw@arm.com>
1917
1918	* arm/ieee754-df.s (aeabi_dcmpeq, aeabi_dcmplt, aeabi_dcmple)
1919	(aeabi_dcmpge, aeabi_dcmpgt): Maintain 8-byte stack alignment.
1920	* arm/ieee754-sf.s (aeabi_l2f, aeabi_fcmpeq, aeabi_fcmplt)
1921	(aeabi_fcmple, aeabi_fcmpge, aeabi_fcmpgt): Likewise.
1922
19232005-06-12  James A. Morrison  <phython@gcc.gnu.org>
1924
1925	PR tree-optimization/14796
1926	* fold-const.c (fold_binary): Transform (A >> C) << C into
1927	one BIT_AND_EXPR.
1928	<shift>: Transform (A OP c1) OP c2 into A OP (c1 + c2).
1929
19302005-06-11  Geoffrey Keating  <geoffk@apple.com>
1931
1932	* config/rs6000/predicates.md (reg_or_arith_cint_operand): Delete.
1933	(reg_or_add_cint_operand): Rename from reg_or_add_cint64_operand.
1934	Handle SImode.
1935	(reg_or_sub_cint_operand): Likewise.
1936	(mask_operand): Handle DImode.
1937	(mask64_operand): Delete.
1938	(and64_operand): Delete.
1939	* config/rs6000/rs6000.c (num_insns_constant): Use mask_operand
1940	instead of mask64_operand.
1941	(print_operand): Likewise.
1942	(rs6000_rtx_costs): Use mask_operand and reg_or_add_cint_operand and
1943	reg_or_sub_cint_operand instead of *64_* variants.
1944	* config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Use mask_operand
1945	instead of mask64_operand.
1946	* config/rs6000/rs6000.md: Use mask_operand and and_operand instead
1947	of *64_* variants.
1948	(FP): New.
1949	(add_op2): Delete.
1950	(add<mode>3): Use reg_or_add_cint_operand.
1951	(sub_op2): Delete.
1952	(sub<mode>3): Use reg_or_sub_cint_operand.
1953	(udiv<mode>3, div<mode>3, div<mode>3_no_mq, mod<mode>3,
1954	mov<mode>_internal2, mov<mode>, cmp<mode>, cmp<mode>,
1955	cmp<mode>_internal1, indirect_jump<mode>, ctr<mode>,
1956	ctr<mode>_internal1, ctr<mode>_internal2, ctr<mode>_internal5,
1957	ctr<mode>_internal6, save_fpregs_<mode>, return_internal_<mode>,
1958	return_and_restore_fpregs_<mode>, eh_set_lr_<mode>,
1959	various unnamed patterns): New.
1960	(udivsi3, divsi3, divsi3_no_mq, modsi3, movsi_internal2, movsi,
1961	cmpsi, cmpsi_internal1, indirect_jumpsi, ctrsi, ctrsi_internal1,
1962	ctrsi_internal2, ctrsi_internal5, ctrsi_internal6, save_fpregs_si,
1963	return_internal_si, return_and_restore_fpregs_si, eh_set_lr_si,
1964	udivdi3, divdi3, divdi3_no_mq, moddi3, movdi_internal2, movdi,
1965	cmpdi, cmpdi_internal1, indirect_jumpdi, ctrdi, ctrdi_internal1,
1966	ctrdi_internal2, ctrdi_internal5, ctrdi_internal6, save_fpregs_di,
1967	return_internal_di, return_and_restore_fpregs_di, eh_set_lr_di,
1968	movhi, movqi, cmpsf, cmpdf, cmptf, various unnamed patterns):
1969	Delete.
1970
19712005-06-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1972
1973	* rtl.h (to_rtx_code): Remove.
1974	* machmode.h (to_machine_mode): Likewise.
1975	* read-rtl.c (apply_mode_macro): Replace to_machine_mode with
1976	explicit cast.
1977	(apply_mode_maps): Likewise.
1978	(read_rtx_1): Likewise.
1979	(apply_code_macro): Replace to to_rtx_code with explicit cast.
1980	(check_code_macro): Likewise.
1981	(read_rtx_1): Likewise.
1982
19832005-06-11  Gabriel Dos Reis  <gdr@integrable-solutions.net>
1984
1985	* c-typeck.c (convert_for_assignment): Avoid checking
1986	OPT_Wc___compat, as it is always true.
1987
19882005-06-11  David Edelsohn  <edelsohn@gnu.org>
1989
1990	* config/rs6000/rs6000.md (eq<mode>_compare): Restrict to Pmode.
1991
19922005-06-11  Daniel Berlin  <dberlin@dberlin.org>
1993
1994	Fix PR tree-optimization/22005
1995	Fix PR tree-optimization/22025
1996	
1997	* tree-ssa-structalias.c (struct variable_info): Add has_union
1998	member.
1999	(create_variable_info_for):  Mark variables containing unions.
2000	Don't sort the field stack if notokay is true.
2001	(find_what_p_points_to): Convert variables containing unions back
2002	to their SFT's if necessary.
2003	
20042005-06-11  Daniel Berlin  <dberlin@dberlin.org>
2005
2006	* lambda-code.c (replace_uses_equiv_to_x_with_y): Verify the step
2007	is an INTEGER_CST before calling int_cst_value.
2008
20092005-06-10  Uros Bizjak  <uros@kss-loka.si>
2010
2011	PR target/21981
2012	* config/i386/i386.c (ix86_function_value_regno_p): Return true
2013	for FIRST_MMX_REG if TARGET_MMX.
2014	(ix86_return_in_memory): Return 1 for MMX/3dNow vectors. Delete
2015	wrong comment.
2016	(ix86_struct_value_rtx): Emit warning for MMX ABI violations.
2017	(ix86_value_regno): Return FIRST_MMX_REG for MMX vector modes.
2018
20192005-06-10  Daniel Berlin  <dberlin@dberlin.org>
2020
2021	* lambda-code.c (replace_uses_equiv_to_x_with_y): Check step
2022	and access function against chrec_dont_know.
2023	  
20242005-06-10  Daniel Berlin  <dberlin@dberlin.org>
2025
2026	* lambda-code.c (replace_uses_of_x_with_y): Renamed and rewritten
2027	slightly.
2028	(exit_phi_for_loop_p): New function.
2029	(can_put_in_inner_loop): Ditto.
2030	(can_convert_to_perfect_nest): Ditto.
2031	(perfect_nestify): Create iv with right type.
2032	Rewrite statements in correct order.	
2033
20342005-06-10  Keith Besaw  <kbesaw@us.ibm.com>
2035
2036	* tree-ssa-alias.c (new_type_alias): Use existing type
2037	tag if VAR has just one in its may_aliases list.
2038
20392005-06-10  Fariborz Jahanian <fjahanian@apple.com>
2040
2041	* rs6000/predicates.md (scc_operand): New.
2042	* rs6000/rs6000.md : Use scc_operand for eq:SI compares.
2043
20442005-06-10  Dorit Nuzman  <dorit@il.ibm.com>
2045
2046	* tree-vect-analyze.c (vect_analyze_data_ref_dependence): DRs whose
2047	dependence-distance modulo VF is 0 are recorded in the 
2048	SAME_ALIGN_REFs VEC in each DR.
2049	(vect_enhance_data_refs_alignment): Avoid 80 column overflow. The
2050	alignment information of DRs that are in the SAME_ALIGN_REFs VEC of the
2051	DR we want to peel for, is set to 0.
2052	* tree-vect-transform.c (vect_do_peeling_for_loop_bound): Fix printout.
2053	* tree-vectorizer.c (destroy_loop_vec_info): Free the SAME_ALIGN_REFs
2054	VEC.
2055	* tree-vectorizer.h (dr_p): New type. Defined to use the VEC API.
2056	(_stmt_vec_info): Added new field same_align_refs.
2057	(STMT_VINFO_SAME_ALIGN_REFS): New macro.
2058
20592005-06-10  Nathan Sidwell  <nathan@codesourcery.com>
2060
2061	* vec.h (VEC_safe_grow): Append MEM_STAT_INFO.
2062
20632005-06-10  Alan Modra  <amodra@bigpond.net.au>
2064
2065	* config/rs6000/linux.h (NO_PROFILE_COUNTERS): Define.
2066	* config/rs6000/linux64.h (NO_PROFILE_COUNTERS): Define as 1.
2067	* config/rs6000/rs6000.c (output_function_profiler): Obey
2068	NO_PROFILE_COUNTERS.  Handle TARGET_SECURE_PLT.  Use "bcl 20,31"
2069	for -fPIC.  Delete save_lr and substitute its value into strings.
2070
20712005-06-09  Dale Johannesen  <dalej@apple.com>
2072
2073	* config/i386/i386.c (optimization_options):  Make -fno-math-errno
2074	the default on Darwin.
2075	* config/rs6000/rs6000.c (optimization_options):  Ditto.
2076	* doc/invoke.texi (-fno-math-errno): Document.
2077
20782005-06-09  Dale Johannesen  <dalej@apple.com>
2079
2080	* config/rs6000/rs6000.c (TARGET_INSN_VALID_WITHIN_DOLOOP):
2081	Change to TARGET_INVALID_WITHIN_DOLOOP.
2082
20832005-06-09  David Edelsohn  <edelsohn@gnu.org>
2084
2085	* config/rs6000/rs6000.md (eq): Convert to define_insn_and_split.
2086	* config/rs6000/predicates.md (scc_eq_operand): New.
2087
20882005-06-09  Kaz Kojima  <kkojima@gcc.gnu.org>
2089
2090	* config/sh/sh.md (mextr_rl): Set buffer size properly.
2091	(*mextr_lr): Likewise.
2092
20932005-06-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2094
2095	PR c/21759
2096	* c.opt (Wc++-compat): New.
2097	* doc/invoke.texi (-Wc++-compat): Document.
2098	* c-typeck.c (convert_for_assignment): Check for implicit
2099	conversion void* -> T*.
2100
21012005-06-09  Gabriel Dos Reis  <gdr@integrable-solutions.edu>
2102
2103	* machmode.h (to_machine_mode): New.
2104	* rtl.h (to_rtx_code): Likewise.
2105	* read-rtl.c (apply_mode_macro): Convert mode to machine_mode.
2106	(print_c_condition): Convert return value of htab_find().
2107	(apply_code_macro): Add explicit cast when convertin to enums.
2108	(apply_mode_maps): Likewise.
2109	(check_code_macro): Likewise.
2110	(read_rtx_1): Likewise.
2111
21122005-06-09  Richard Henderson  <rth@redhat.com>
2113
2114	* config/ia64/ia64.c (update_set_flags): Just return for IF_THEN_ELSE.
2115	Use SCALAR_FLOAT_MODE_P.
2116	* config/ia64/vect.md (vcondv2sf): Remove code check on comparison.
2117	(fselect): Rename from fpcmp; use %F.
2118	(fpcmp): New.
2119
21202005-06-09  Jan Hubicka  <jh@suse.cz>
2121
2122	* cgraphunit.c (cgraph_create_edges): Do not walk BLOCK; finalize
2123	local statics when doing unit-at-a-time.
2124	(cgraph_varpool_assemble_pending_decls): Output debug info.
2125	* dwarf2out.c (decls_for_scope): Skip local statics.
2126	(dwarf2out_decl): Handle local statics.
2127	* passes.c (rest_of_decl_compilation): Do not differentiate
2128	local and global statics in unit-at-a-time.
2129	* tree-inline.c (remap_decls): Put local static into
2130	unexpanded_vars_list rather than introducing duplicated VAR_DECL
2131	node.
2132
21332005-06-09  Daniel Berlin  <dberlin@dberlin.org>
2134
2135	* config/rs6000/rs6000.c: (rs6000_insn_valid_within_doloop): Fix
2136	prototype.
2137
21382005-06-08  Daniel Berlin  <dberlin@dberlin.org>
2139
2140	* Makefile.in (OBJS-common): Add tree-ssa-structalias.o.
2141	* tree-flow.h (find_what_p_points_to): Add prototype.
2142	(push_fields_onto_fieldstack): Ditto.
2143	(sort_fieldstack): Ditto.
2144	* tree-optimize.c (init_tree_optimization_passes): Add
2145	pass_build_pta and pass_del_pta.
2146	* tree-pass.h (pass_build_pta): New structure.
2147	(pass_del_pta): Ditto.
2148	* tree-ssa-alias.c (compute_flow_sensitive_aliasing): Disambiguate
2149	using new alias analyzer.
2150	(push_fields_onto_fieldstack): Removed from here.
2151	(bitpos_of_field): Ditto.
2152	(fieldoff_compare): Ditto.
2153	* tree-ssa-structalias.c: New file.
2154	* tree-ssa-structalias.h: Ditto.
2155
21562005-06-09  Nathan Sidwell  <nathan@codesourcery.com>
2157
2158	* c-typeck.c (build_c_cast): Check type punning on COMPONENT_REF
2159	too.
2160
21612005-06-09  Bernd Schmidt  <bernd.schmidt@analog.com>
2162
2163	* config/bfin/bfin.c (enum bfin_builtins): Moved here from...
2164	* config/bfin/bfin.h (enum bfin_builtins): ... here.
2165
21662005-06-09  Adrian Straetling  <straetling@de.ibm.com>
2167
2168	* target.h (insn_valid_within_doloop): Rename into
2169	"invalid_within_doloop".  Change return type to "const char *".
2170	Update Comment.
2171	* targhooks.h (default_insn_valid_within_doloop): Rename into
2172	"default_invalid_within_doloop". 
2173	* targhooks.c (default_insn_valid_within_doloop): Likewise.
2174	Update Comment.
2175	* target-def.h (TARGET_INSN_VALID_WITHIN_DOLOOP): Rename target hook
2176	into "TARGET_INVALID_WITHIN_DOLOOP". Default it to
2177	"default_invalid_within_doloop".
2178	* hooks.c (hook_constcharptr_rtx_null): New function.
2179	(hook_bool_rtx_true): Remove.
2180	* hooks.h (hook_constcharptr_rtx_null): Declare.
2181	(hook_bool_rtx_true): Remove.
2182	* loop-doloop.c (doloop_valid_p): Temporarily store return value of
2183	"invalid_within_doloop" and print error message if non-null.
2184	Update Comment.
2185	* doc/tm.texi: Update documentation.
2186	* config/s390/s390.c: Adjust to new hook name and new default hook.
2187	* config/rs6000/rs6000.c: (rs6000_insn_valid_within_doloop): Rename
2188	into "rs6000_invalid_within_doloop".
2189	(rs6000_invalid_within_doloop): Change return type to "static const
2190	char *" and replace return values.  Update Comment.
2191
21922005-06-09  Bernd Schmidt  <bernd.schmidt@analog.com>
2193
2194	* config/bfin/bfin.opt (mlong-calls): New.
2195	* config/bfin/predicates.md (call_insn_operand): Disallow SYMBOL_REF
2196	if TARGET_LONG_CALLS.
2197
21982005-06-09  Richard Henderson  <rth@redhat.com>
2199
2200	PR tree-opt/20610
2201	* tree.h (DECL_COMPLEX_GIMPLE_REG_P): New.
2202	(struct tree_decl): Add gimple_reg_flag.
2203	* integrate.c (copy_decl_for_inlining): Copy it.
2204	* gimplify.c (internal_get_tmp_var): Set it.
2205	(gimplify_bind_expr): Likewise.
2206	(gimplify_function_tree): Likewise.
2207	(gimplify_modify_expr_complex_part): New.
2208	(gimplify_modify_expr): Use it.
2209	* tree-gimple.c (is_gimple_reg_type): Allow complex.
2210	(is_gimple_reg): Allow complex with DECL_COMPLEX_GIMPLE_REG_P set.
2211
2212	* tree-complex.c (complex_lattice_t): New.
2213	(complex_lattice_values, complex_variable_components): New.
2214	(some_nonzerop, find_lattice_value, is_complex_reg,
2215	init_parameter_lattice_values, init_dont_simulate_again, 
2216	complex_visit_stmt, complex_visit_phi, create_components,
2217	update_complex_components, update_parameter_components, 
2218	update_phi_components, update_all_vops, expand_complex_move): New.
2219	(extract_component): Handle INDIRECT_REF, COMPONENT_REF, ARRAY_REF,
2220	SSA_NAME.
2221	(update_complex_assignment): Use update_complex_components;
2222	handle updates of return_expr properly.
2223	(expand_complex_addition): Use complex lattice values.
2224	(expand_complex_multiplication): Likewise.
2225	(expand_complex_division): Likewise.
2226	(expand_complex_libcall): Use update_complex_components.
2227	(expand_complex_comparison): Use update_stmt.
2228	(expand_complex_operations_1): Use expand_complex_move, retrieve
2229	lattice values.
2230	(tree_lower_complex): Compute lattice values.
2231	(tree_lower_complex_O0): Duplicate from tree_lower_complex.
2232	(pass_lower_complex_O0): Rename from pass_lower_complex.
2233	(pass_lower_complex, gate_no_optimization): New.
2234	* tree-optimize.c (init_tree_optimization_passes): Update for
2235	complex pass changes.
2236	* tree-pass.h (pass_lower_complex_O0): Declare.
2237
22382005-06-08  Dale Johannesen  <dalej@apple.com>
2239
2240	* config/darwin.c (darwin_binds_local_p):  New.
2241	* config/darwin-protos.h (darwin_binds_local_p):  Declare it.
2242	* config/i386/i386.c (TARGET_BINDS_LOCAL_P):  Use it for TARGET_MACHO.
2243	* config/rs6000/rs6000.c (rs6000_binds_local_p):  Remove.
2244	(TARGET_BINDS_LOCAL_P):  Change it to darwin_binds_local_p.
2245
22462005-06-08  Aldy Hernandez  <aldyh@redhat.com>
2247
2248	* config/rs6000/rs6000.h: Remove rs6000_long_double_size_string,
2249	rs6000_isel, rs6000_spe, rs6000_alignment_string,
2250	rs6000_sched_restricted_insns_priority_str,
2251	rs6000_sched_restricted_insns_priority, rs6000_abi_string.
2252
22532005-06-08  Zdenek Dvorak  <dvorakz@suse.cz>
2254
2255	* tree-ssa-address.c (addr_for_mem_ref): Use LAST_VIRTUAL_REGISTER
2256	instead of FIRST_PSEUDO_REGISTER for creating pseudoregisters.
2257	* tree-ssa-loop-ivopts.c (add_cost, multiply_by_cost,
2258	multiplier_allowed_in_address_p, get_address_cost): Ditto.
2259
22602005-06-08  Richard Henderson  <rth@redhat.com>
2261
2262	* config/ia64/ia64.h (NO_PROFILE_COUNTERS): New.
2263	* config/ia64/ia64.c (ia64_output_function_profiler): Honor it.
2264	Emit out3 load right after alloc.
2265
22662005-06-08  Aldy Hernandez  <aldyh@redhat.com>
2267
2268	* config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use
2269	rs6000_explicit_options.
2270
22712005-06-08  Richard Henderson  <rth@redhat.com>
2272
2273	* config/ia64/ia64.h (FUNCTION_PROFILER): Move implementation ...
2274	* config/ia64/ia64.c (ia64_output_function_profiler): ... here; add
2275	unwind markup.
2276	* config/ia64/ia64-protos.h (ia64_output_function_profiler): Declare.
2277
22782005-06-08  Joseph S. Myers  <joseph@codesourcery.com>
2279
2280	* config/sol2-c.c (cmn_err_char_table): Allow width for %b
2281	formats.
2282
22832005-06-08  James A. Morrison  <phython@gcc.gnu.org>
2284
2285	PR target/20666
2286	* config/sparc/sparc.c (sparc_fold_builtin): New function
2287	(sparc_vis_mul8x16): New function.
2288	(sparc_handle_vis_mul8x16): New function.
2289	(TARGET_FOLD_BUILTIN): Define to sparc_fold_builtin.
2290
22912005-06-08  David Edelsohn  <edelsohn@gnu.org>
2292
2293	* config/rs6000/rs6000.md (call_indirect_nonlocal_aix32): Prefer
2294	CTR to LR.
2295	(call_indirect_nonlocal_aix64): Same.
2296	(call_value_indirect_nonlocal_aix32): Same.
2297	(call_value_indirect_nonlocal_aix64): Same.
2298
2299	PR target/10588
2300	(eq): Use CLZ splitter for compare with zero.
2301
23022005-06-08  Bernd Schmidt  <bernd.schmidt@analog.com>
2303
2304	* config/bfin/bfin.c (bfin_return_in_memory): Simplify; return
2305	everything larger than 8 bytes in memory.
2306
2307	* config/bfin/bfin.h (enum bfin_builtins): New.
2308	* config/bfin/bfin.md (UNSPEC_VOLATILE_CSYNC, UNSPEC_VOLATILE_SSYNC):
2309	New constants.
2310	(csync, ssync): New insn patterns.
2311	* config/bfin/bfin.c (bfin_init_builtins, bfin_expand_builtin):
2312	New functions.
2313	(def_builtin): New macro.
2314	(TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define.
2315
2316	From Jie Zhang  <jie.zhang@analog.com>
2317	* config/bfin/bfin.h (ASM_OUTPUT_ALIGN): Gas now emulates the
2318	behavior of the native assembler in VDSP. So change accordingly.
2319	
23202005-06-08  Sebastian Pop  <pop@cri.ensmp.fr>
2321
2322	* tree-data-ref.c (compute_estimated_nb_iterations,
2323	analyze_array_indexes, compute_overlap_steps_for_affine_1_2,
2324	analyze_subscript_affine_affine, find_data_references_in_loop):
2325	Fixed to use chrec_contains_undetermined to test the values of
2326	loop->estimated_nb_iterations.
2327	* tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
2328	Compute the estimation only when loop->estimated_nb_iterations
2329	has not yet been initialized.
2330	(convert_step_widening, scev_probably_wraps_p): Add a call to
2331	estimate_numbers_of_iterations_loop.
2332	* tree-vrp.c (execute_vrp): Don't call estimate_numbers_of_iterations.
2333
23342005-06-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
2335
2336	PR debug/21946
2337	* dwarf2out.c (add_loc_descr_op_piece): Move to the
2338	DWARF2_DEBUGGING_INFO section.
2339
23402005-06-08  Richard Henderson  <rth@redhat.com>
2341
2342	PR target/21721
2343	* config/ia64/ia64.c (emit_predicate_relation_info): Skip p0.
2344
23452005-06-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
2346
2347	PR target/21889
2348	* target.h (gcc_target) <asm_out>: New field output_dwarf_dtprel.
2349	* target-def.h (TARGET_ASM_OUTPUT_DWARF_DTPREL): New macro.
2350	(TARGET_ASM_OUT): Add it.
2351	* doc/tm.texi (Debugging Info): Document it.
2352	* dwarf2out.c (output_loc_operands) <INTERNAL_DW_OP_tls_addr>:
2353	Test it instead of ASM_OUTPUT_DWARF_DTPREL.
2354	(loc_descriptor_from_tree_1) <VAR_DECL>: Likewise.
2355	* system.h: Poison ASM_OUTPUT_DWARF_DTPREL.
2356	* config/frv/frv-protos.h (frv_output_dwarf_dtprel): Delete.
2357	* config/frv/frv.c (frv_output_dwarf_dtprel): Make static and unused.
2358	(gen_inlined_tls_plt): Remove unused variable MEM.
2359	(TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to frv_output_dwarf_dtprel.
2360	* config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2361	* config/i386/i386-protos.h (i386_output_dwarf_dtprel): Delete.
2362	* config/i386/i386.c (i386_output_dwarf_dtprel): Make static and
2363	unused.
2364	(TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to i386_output_dwarf_dtprel.
2365	* config/i386/i386.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2366	* config/ia64/ia64-protos.h (ia64_output_dwarf_dtprel): Delete.
2367	* config/ia64/ia64.c (ia64_output_dwarf_dtprel): Make static and
2368	unused.
2369	(TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to ia64_output_dwarf_dtprel.
2370	* config/ia64/ia64.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2371	* config/rs6000/rs6000-protos.h (rs6000_output_dwarf_dtprel): Delete.
2372	* config/rs6000/rs6000.c (rs6000_output_dwarf_dtprel): Make static and
2373	unused.
2374	(TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to rs6000_output_dwarf_dtprel
2375	* config/rs6000/rs6000.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2376	* config/s390/s390-protos.h (s390_output_dwarf_dtprel): Delete.
2377	* config/s390/s390.c (s390_output_dwarf_dtprel): Make static and
2378	unused.
2379	(TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to s390_output_dwarf_dtprel.
2380	* config/s390/s390.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2381	* config/sparc/sol2-gas.h (TARGET_SUN_TLS): Define to 0.
2382	(TARGET_GNU_TLS): Define to 1.
2383	* config/sparc/sparc-protos.h (sparc_output_dwarf_dtprel): Delete.
2384	* config/sparc/sparc.c (sparc_output_dwarf_dtprel): Make static and
2385	unused.
2386	(TARGET_ASM_OUTPUT_DWARF_DTPREL): Define to sparc_output_dwarf_dtprel
2387	if TARGET_GNU_TLS only.
2388	* config/sparc/sparc.h (ASM_OUTPUT_DWARF_DTPREL): Delete.
2389
2390	* config.gcc (sparc64-*-solaris2*): Include tm-dwarf2.h last.
2391	(sparc-*-solaris2*): Likewise on Solaris 7 and up.
2392
23932005-06-07  Dale Johannesen  <dalej@apple.com>
2394
2395	* config/i386/i386.md (movqi_1):  Fix case where source
2396	is memory and destination EDI.
2397
23982005-06-08  Kazu Hirata  <kazu@codesourcery.com>
2399
2400	* config/c4x/c4x.h (PREDICATE_CODES): Remove mem_operand.
2401
24022005-06-07  Eric Christopher  <echristo@redhat.com>
2403
2404	* system.h: Poison EXTRA_CC_MODES.
2405	* config/frv/frv.h (SELECT_CC_MODE): Rewrite comment.
2406	* config/ia64/ia64.h (SELECT_CC_MODE): Ditto.
2407	* doc/md.texi (Jump Patterns): Replace reference to
2408	EXTRA_CC_MODES with machine-modes.def.
2409	* doc/rtl.texi (Machine Modes): Ditto.
2410
24112005-06-07  Richard Henderson  <rth@redhat.com>
2412
2413	* varasm.c (initialize_cold_section_name): Fix alloca buffer overflow.
2414	(assemble_start_function): Fix strcmp confusion.
2415
24162005-06-07  Uros Bizjak  <uros@kss-loka.si>
2417
2418	* config/i386/i386.h (enum ix86_entity): New.
2419	(enum ix86_stack_slot): New.
2420	(OPTIMIZE_MODE_SWITCHING): Redefine to use
2421	ix86_optimize_mode_switching[] array.
2422	(NUM_MODES_FOR_MODE_SWITCHING): Redefine for 4 entities.
2423	(MODE_NEEDED): Use ix86_mode_needed() function.
2424	(EMIT_MODE_SET): Redefine for changed emit_i387_cw_initialization ()
2425	function.
2426	(struct machine_function): Use optimize_mode_switching[] array.
2427
2428	* config/i386/i386.c (MAX_386_STACK_LOCALS): Remove.
2429	(ix86_mode_needed): New function.
2430	(emit_i387_cw_initialization): Cleanup. Use mode to calculate
2431	correct stack positions for stored control words.
2432	(assign_386_stack_local): Use enum ix86_stack_slot. Change assert.
2433	(ix86_expand_builtin) [IX86_BUILTIN_LDMXCSR]: Change constant to
2434	SLOT_TEMP.
2435	[IX86_BUILTIN_STMXCSR]: Same.
2436
2437	* config/i386/i386-protos.h (assign_stack_local): Change prototype.
2438	(emit_i387_cw_initialization): Change prototype.
2439	(ix86_mode_needed): New prototype.
2440
2441	* config/i386/i386.md (i387_cw attribute): Change order of elements.
2442	(truncdfsf2, truncxfsf2, truncxfdf2, fix_trunc<mode>_fisttp_i387_1)
2443	(*fix_trunc<mode>_i387_1, lrint<mode>2, *fist<mode>2_floor_1)
2444	(*fist<mode>2_ceil_1): Change constant in call to
2445	assign_386_stack_local to SLOT_TEMP.
2446	(*fix_trunc<mode>_i387_1): Change constant in call to
2447	assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_TRUNC.
2448	Use new ix86_optimize_mode_switching[] array.
2449	(frndintxf2_floor, *fist<mode>2_floor_1): Change constants in call to
2450	assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_FLOOR.
2451	Use new ix86_optimize_mode_switching[] array.
2452	(frndintxf2_ceil, *fist<mode>2_ceil_1):  Change constants in call to
2453	assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_CEIL.
2454	Use new ix86_optimize_mode_switching[] array.
2455	(frndintxf2_trunc): Change constants in call to
2456	assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_TRUNC.
2457	Use new ix86_optimize_mode_switching[] array.
2458	(frndintxf2_mask_pm): Change constants in call to
2459	assign_386_stack_local to SLOT_CW_STORED and SLOT_CW_MASK_PM.
2460	Use new ix86_optimize_mode_switching[] array.
2461
2462	(define_peephole2): Change constant from 17 to FLAGS_REG;
2463
24642005-06-07  Richard Henderson  <rth@redhat.com>
2465
2466	PR rtl-opt/21528
2467	* rtlanal.c (reg_overlap_mentioned_p) <MEM>: Handle 'E' formats.
2468
24692005-06-07  Dale Johannesen  <dalej@apple.com>
2470
2471	* tree-nested.c (finalize_nesting_tree_1):  Disable
2472	warn_padded around layout_type call.
2473
24742005-06-08  Zdenek Dvorak  <dvorakz@suse.cz>
2475
2476	* tree-ssa-loop-ivopts.c (rewrite_use_outer): Unshare the expression
2477	before emiting it.
2478
24792005-06-07  Eric Christopher  <echristo@redhat.com>
2480
2481	* config/mips/predicates.md: Revert previous patch.
2482
24832005-06-07  Jakub Jelinek  <jakub@redhat.com>
2484
2485	PR middle-end/21850
2486	* tree.c (get_unwidened): Stop at NOP_EXPR/CONVERT_EXPR that convert
2487	from vector types.
2488
24892005-06-07  Diego Novillo  <dnovillo@redhat.com>
2490
2491	* tree-ssa-threadupdate.c (struct thread_stats_d): Declare.
2492	(thread_stats): New local variable.
2493	(redirect_edges): Increment count of threaded edges.
2494	(thread_through_all_blocks): Initialize thread_stats.
2495	Display number of threaded jumps if TDF_STATS is enabled.
2496
24972005-06-07  Kazu Hirata  <kazu@codesourcery.com>
2498
2499	* sbitmap.h (sbitmap_iter_init): Consistently treat bit_num as
2500	the current bit index with no modulo.
2501
25022005-06-07  Sebastian Pop  <pop@cri.ensmp.fr>
2503
2504	PR 18403 and meta PR 21861.
2505	* Makefile.in (tree-chrec.o): Depend on CFGLOOP_H and TREE_FLOW_H.
2506	* tree-chrec.c: Include cfgloop.h and tree-flow.h.
2507	(evolution_function_is_invariant_rec_p,
2508	evolution_function_is_invariant_p): New.
2509	(chrec_convert): Use an extra parameter AT_STMT for refining the
2510	information that is passed down to convert_step.  Integrate the 
2511	code that was in count_ev_in_wider_type.
2512	* tree-chrec.h (count_ev_in_wider_type): Removed.
2513	(chrec_convert): Modify its declaration.
2514	(evolution_function_is_invariant_p): Declared.
2515	(evolution_function_is_affine_p): Use evolution_function_is_invariant_p.
2516	* tree-flow.h (can_count_iv_in_wider_type): Renamed convert_step.
2517	(scev_probably_wraps_p): Declared.
2518	* tree-scalar-evolution.c (count_ev_in_wider_type): Removed.
2519	(follow_ssa_edge_in_rhs, interpret_rhs_modify_expr):
2520	Use an extra parameter AT_STMT for refining the information that is
2521	passed down to convert_step.
2522	(follow_ssa_edge_inner_loop_phi, follow_ssa_edge,
2523	analyze_scalar_evolution_1): Initialize AT_STMT with the current
2524	analyzed statement.
2525	(instantiate_parameters_1): Don't know yet how to initialize AT_STMT.
2526	* tree-ssa-loop-ivopts.c (idx_find_step): Update the use of 
2527	can_count_iv_in_wider_type to use convert_step.
2528	* tree-ssa-loop-niter.c (can_count_iv_in_wider_type_bound): Move 
2529	code that is independent of the loop over the known iteration
2530	bounds to convert_step_widening, the rest is moved to
2531	proved_non_wrapping_p.
2532	(scev_probably_wraps_p): New.
2533	(can_count_iv_in_wider_type): Renamed convert_step.
2534	* tree-vrp.c (adjust_range_with_scev): Take an extra AT_STMT parameter.
2535	Use scev_probably_wraps_p for computing init_is_max.
2536	(vrp_visit_assignment): Pass the current analyzed statement to 
2537	adjust_range_with_scev.
2538	(execute_vrp): Call estimate_numbers_of_iterations for refining the 
2539	information provided by scev analyzer.
2540
25412005-06-07  Eric Christopher  <echristo@redhat.com>
2542
2543	* config/mips/predicates.md (sleu_operand): Use
2544	IN_RANGE to specify range of operand.
2545
25462005-06-07  Steven Bosscher  <stevenb@suse.de>
2547
2548	PR tree-optimization/21847
2549	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): With
2550	-fnon-call-exceptions, also mark statements inherently
2551	necessary if they may throw.
2552
25532005-06-07  Adrian Straetling  <straetling@de.ibm.com>
2554
2555	* config/s390/s390.md: ("UNSPECV_MB", "UNSPECV_CAS"): New constants.
2556	("type"): Add "sem" to 'type' attribute.
2557	("memory_barrier", "*memory_barrier", "sync_compare_and_swapdi",
2558	"sync_compare_and_swapsi", "sync_compare_and_swap_ccdi",
2559	"sync_compare_and_swap_ccsi", "*sync_compare_and_swap_ccdi",
2560	"*sync_compare_and_swap_ccsi"): New patterns.
2561	* config/s390/2064.md: ("z_sem"): New insn_reservation.
2562	* config/s390/2084.md: ("x_sem"): New insn_reservation.
2563	* config/s390/s390.c: (s390_compare_emitted): New global variable.
2564	(s390_emit_compare): Do not emit comparison again after cas.
2565	* config/s390/s390.h (s390_compare_emitted): Declare.
2566
25672005-06-07  Kazu Hirata  <kazu@codesourcery.com>
2568
2569	* sbitmap.h (sbitmap_iterator, sbitmap_iter_init,
2570	sbitmap_iter_cond, sbitmap_iter_next): New.
2571	* bt-load.c, cfganal.c, combine.c, ddg.c, flow.c,
2572	modulo-sched.c, sbitmap.c, sched-rgn.c, tree-into-ssa.c,
2573	tree-outof-ssa.c, tree-ssa-alias.c, tree-ssa-live.c: Update
2574	uses of EXECUTE_IF_SET_IN_SBITMAP to the new style.
2575
25762005-06-07  Zdenek Dvorak  <dvorakz@suse.cz>
2577
2578	* tree-ssa-address.c: New file.
2579	* Makefile.in (tree-ssa-address.o): Add.
2580	* expr.c (expand_expr_real_1): Do not handle REF_ORIGINAL on
2581	INDIRECT_REFs.  Handle TARGET_MEM_REFs.
2582	* tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REFs.
2583	* tree-flow.h (struct mem_address): New.
2584	(struct affine_tree_combination): Moved from tree-ssa-loop-ivopts.c.
2585	(create_mem_ref, addr_for_mem_ref, get_address_description,
2586	maybe_fold_tmr, multiplier_allowed_in_address_p,
2587	multiply_by_cost):  Declare.
2588	* tree-mudflap.c (mf_xform_derefs_1): Handle TARGET_MEM_REFs.
2589	* tree-pretty-print.c (dump_generic_node): Ditto.
2590	* tree-ssa-loop-im.c (for_each_index): Ditto.
2591	* tree-ssa-loop-ivopts.c (may_be_unaligned_p,
2592	find_interesting_uses_address): Ditto.
2593	(rewrite_address_base, build_addr_strip_iref): Removed.
2594	(struct affine_tree_combination): Moved to tree-flow.h.
2595	(get_ref_tag, copy_ref_info): New functions.
2596	(rewrite_use_address): Produce TARGET_MEM_REFs.
2597	(tree_ssa_iv_optimize): Do not call update_ssa
2598	and rewrite_into_loop_closed_ssa.
2599	(tree_to_aff_combination): Use build_fold_addr_expr instead of
2600	build_addr_strip_iref.
2601	(unshare_aff_combination): New function.
2602	(fold_affine_sum): Removed.
2603	(get_computation_at): Use get_computation_aff.  Unshare the result.
2604	(get_computation_aff, multiplier_allowed_in_address_p): New function.
2605	(multiply_by_cost): Exported.
2606	(get_address_cost): Use multiplier_allowed_in_address_p.
2607	* tree-ssa-operands.c (get_tmr_operands): New function.
2608	(get_expr_operands): Handle TARGET_MEM_REFs.
2609	* tree.c (copy_node_stat): Copy annotations for TARGET_MEM_REFs.
2610	(build): Handle 7 arguments.
2611	(build7_stat): New function.
2612	* tree.def (TARGET_MEM_DEF): New.
2613	* tree.h (REF_ORIGINAL): Removed.
2614	(TMR_SYMBOL, TMR_BASE, TMR_INDEX, TMR_STEP, TMR_OFFSET, TMR_ORIGINAL,
2615	TMR_TAG, build7): New macros.
2616	(build7_stat, tree_mem_ref_addr, copy_mem_ref_info): Declare.
2617	* tree-ssa-ccp.c (fold_stmt_r): Call maybe_fold_tmr.
2618	* doc/c-tree.texi: Document TARGET_MEM_REF.
2619	* doc/tree-ssa.texi: Add TARGET_MEM_REF to gimple grammar.
2620
26212005-06-07  Jakub Jelinek  <jakub@redhat.com>
2622
2623	PR debug/21946
2624	* dwarf2out.c (add_loc_descr_op_piece): New function.
2625	(multiple_reg_loc_descriptor, concat_loc_descriptor,
2626	loc_descriptor): Use it.
2627	* var-tracking.c: Include regs.h and expr.h.
2628	(emit_note_insn_var_location): Skip over pieces where offset
2629	is smaller than previous offset plus previous piece mode size.
2630	Optimize adjacent hard registers or memory locations.
2631	* Makefile.in (var-tracking.o): Depend on $(REGS_H) and $(EXPR_H).
2632
26332005-06-07  Richard Guenther  <rguenth@gcc.gnu.org>
2634
2635	* c-typeck.c (c_finish_if_stmt): Use void_type_node as type
2636	for COND_EXPR.
2637	* gimplify.c (gimplify_cond_expr): No need to fix up the
2638	type of COND_EXPRs.
2639
26402005-06-07  Richard Guenther  <rguenth@gcc.gnu.org>
2641
2642	* tree-ssa.c (tree_ssa_useless_type_conversion_1): Fix
2643	comments.
2644
26452005-06-07  Geoffrey Keating  <geoffk@apple.com>
2646
2647	* config/rs6000/host-darwin.c (segv_handler): Widen the possible
2648	'stwux' instructions that are considered to be stack decrements.
2649
2650	* rtlanal.c (subreg_offset_representable_p): Handle objects
2651	with holes.
2652
26532005-06-06  Uros Bizjak  <uros@kss-loka.si>
2654
2655	* mode-switching.c (optimize_mode_switching): Fix n_exprs parameter
2656	in call to pre_edge_lcm.
2657
26582005-06-06  Kaz Kojima  <kkojima@gcc.gnu.org>
2659
2660	* config/sh/linux-unwind.h (SH_DWARF_FRAME_XD0): Remove for SH5.
2661	(SH_DWARF_FRAME_PR, SH_DWARF_FRAME_GBR, SH_DWARF_FRAME_MACL)
2662	(SH_DWARF_FRAME_MACH, SH_DWARF_FRAME_PC, SH_DWARF_FRAME_FPUL):
2663	Likewise.
2664	(SH_DWARF_FRAME_FP0, SH_DWARF_FRAME_FPSCR): Define to the correct
2665	dwarf register number for SHmedia.
2666	(shmedia_fallback_frame_state): New.
2667	(MD_FALLBACK_FRAME_STATE_FOR): Define to it for SH5.
2668
2669	* config/sh/linux.h (FUNCTION_PROFILER): Provide SHMEDIA version.
2670
26712005-06-06  Gabriel Dos Reis  <gdr@integrable-solutions.net>
2672
2673	* c-lex.c (lex_string): Use XOBFINISH.
2674	* collect2.c (extract_string, dump_file): Likewise.
2675	* dbxout.c (dbxout_finish_complex_stabs): Likewise.
2676	* gcc.c (init_spec, build_search_list, convert_filename, 
2677	set_collect_gcc_options, do_spec_2, do_spec_1, main): Likewise.
2678	* genpreds.c (write_predicate_subfunction): Likewise.
2679	* genflags.c (main): Likewise.
2680	* read-rtl.c (mode_attr_index, apply_macro_to_string, 
2681	join_c_conditions, read_quoted_string, read_braced_string, 
2682	read_rtx_1): Likewise.
2683	* stringpool.c (ggc_alloc_string): Likewise.
2684	* tlink.c (obstack_fgets, recompile_files): Likewise.
2685
26862005-06-06  Jakub Jelinek  <jakub@redhat.com>
2687
2688	* intl.h (G_): New macro.
2689	* rtl-error.c (error_for_asm, warning_for_asm): Use gmsgid
2690	instead of msgid for argument name.
2691	* tree-ssa.c (warn_uninit): Likewise.
2692	* c-parser.c (c_parser_error): Likewise.
2693	* config/rs6000/rs6000-c.c (SYNTAX_ERROR): Likewise.
2694	* config/darwin-c.c (BAD): Likewise.
2695	* config/c4x/c4x-c.c (BAD): Likewise.
2696	* c-pragma.c (GCC_BAD, GCC_BAD2): Likewise.
2697	* c-errors.c (pedwarn_c99, pedwarn_c90): Likewise.
2698	* c-common.c (c_parse_error): Likewise.
2699	* diagnostic.c (diagnostic_set_info, verbatim, inform, warning,
2700	warning0, pedwarn, error, sorry, fatal_error, internal_error):
2701	Likewise.
2702	(fnotice): Use cmsgid instead of msgid for argument name.
2703	* gcov.c (fnotice): Likewise.
2704	* protoize.c (notice): Likewise.
2705	* final.c (output_operand_lossage): Likewise.
2706	* gcc.c (fatal, notice): Likewise.
2707	(error): Use gmsgid instead of msgid for argument name.
2708	* collect2.c (notice, fatal_perror, fatal): Use cmsgid instead
2709	of msgid for argument name.
2710	(error): Use gmsgid instead of msgid for argument name.
2711	* c-decl.c (locate_old_decl, implicit_decl_warning): Use G_()
2712	instead of N_().
2713	* c-typeck.c (readonly_error, convert_for_assignment): Likewise.
2714	* tree-inline.c (inline_forbidden_p_1): Likewise.
2715	* ABOUT-GCC-NLS: Require gettext 0.14.5 or later.  Mention the new
2716	conventions for marking translations.
2717	* doc/install.texi: Mention gettext 0.14.5 or later requirement.
2718
2719	* tree-chrec.c (reset_evolution_in_loop): Use build3 instead of
2720	build2.
2721
2722	* fold-const.c (operand_equal_p): Don't return 1, if element
2723	chains for 2 VECTOR_CSTs are not the same length.
2724
2725	PR regression/21897
2726	* fold-const.c (fold_ternary) <case BIT_FIELD_REF>: Don't crash if
2727	not all VECTOR_CST elements are given.
2728
2729	* combine.c (try_combine): Use hard_regno_nregs array instead of
2730	HARD_REGNO_NREGS macro.
2731	* config/rs6000/rs6000.c (rs6000_split_multireg_move,
2732	rs6000_register_move_cost, rs6000_memory_move_cost): Likewise.
2733	* config/ia64/ia64.c (mark_reg_gr_used_mask): Likewise.
2734
27352005-06-06  Daniel Berlin  <dberlin@dberlin.org>
2736
2737	* tree-ssa-reassoc.o: New.
2738	(OBJS-common): Add tree-ssa-reassoc.o
2739	* timevar.def: Add TV_TREE_REASSOC
2740	* tree-optimize.c (pass_reassoc): Add call.
2741	* tree-pass.h (pass_reassoc): Add.
2742	* tree-ssa-reassoc.c: New file.
2743
27442005-06-06  Eric Christopher  <echristo@redhat.com>
2745
2746	target/21927
2747	* expr.c (do_store_flag): Remove check for non-negative BRANCH_COST.
2748
27492005-06-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2750
2751	* config/i386/x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Guard with
2752	HAVE_GAS_MAX_SKIP_P2ALIGN.
2753	(HAVE_AS_DWARF2_DEBUG_LINE): Remove.
2754
27552005-06-06  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
2756
2757	* Makefile.in (mips-tfile.o): Add $(srcdir)/../include prefix to
2758	getopt.h dependency.
2759	(mips-tdump.o): Likewise.
2760
27612005-06-06  Jan Hubicka  <jh@suse.cz>
2762
2763	* predict.c (tree_predict_edge): Don't drop useless predictions;
2764	check that it is not called too late in the game.
2765	(gate_estimate_probability): New gate.
2766	(pass_profile): Gate.
2767	* tree-mudflap.c (mf_build_check_statement_for): Do not drop
2768	predictions; update CFG instead.
2769	* cfgrtl.c (rtl_verify_flow_info): Check that predcitions are consumed.
2770
27712005-06-06  Jie Zhang  <jie.zhang@analog.com>
2772
2773	* config.gcc (bfin*-uclinux*): New.
2774	* config/bfin/uclinux.h: New file.
2775
27762005-06-06  Ben Elliston  <bje@au.ibm.com>
2777
2778	* doc/md.texi (Insn Splitting): Fix some wording.
2779
27802005-06-05  David Edelsohn  <edelsohn@gnu.org>
2781
2782	* config/rs6000/rs6000.c (rs6000_emit_swdivsf): New function.
2783	(rs6000_emit_swdivdf): New function.
2784	* config/rs6000/rs6000.md (fres): New pattern.
2785	(divsf3): Add approximation through rs6000_emit_swdivsf.
2786	(fred): New pattern.
2787	(divdf3): Add approximation through rs6000_emit_swdivdf.
2788	* config/rs6000/rs6000-protos.h (rs6000_emit_swdivsf): Declare.
2789	(rs6000_emit_swdivdf): Declare.
2790	* config/rs6000/rs6000.opt (mswdiv): New option.
2791	* doc/invoke.texi (RS/6000 and PowerPC Options): Document mswdiv.
2792
27932005-06-05  Zdenek Dvorak  <dvorakz@suse.cz>
2794
2795	PR tree-optimization/21846
2796	* tree-cfg.c (replace_uses_by): Update information stored at loops.
2797	* tree-flow.h (substitute_in_loop_info): Declare.
2798	* tree-scalar-evolution.c (initialize_scalar_evolutions_analyzer):
2799	Ensure that chrec_dont_know and chrec_known have a type.
2800	* tree-ssa-loop-niter.c (substitute_in_loop_info): New function.
2801
28022005-06-05  Steven Bosscher  <stevenb@suse.de>
2803
2804	* config/i386/i386.c (x86_use_loop): Remove.
2805	* config/i386/i386.h (x86_use_loop): Remove extern decl.
2806	(TARGET_USE_LOOP): Remove.
2807	* config/i386/i386.md (doloop_end, doloop_end_internal): Remove.
2808	Also remove related define_splits.
2809
28102005-06-05  Dorit Nuzman  <dorit@il.ibm.com>
2811
2812	* tree-flow.h (stmt_ann_d): Move aux to ...
2813	(tree_ann_common_d): ... here.
2814	* tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
2815	move_computations_stmt, schedule_sm): Update references to
2816	aux.
2817	* tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
2818	* tree-vect-transform.c (vect_create_index_for_vector_ref): Update
2819	call to set_stmt_info.
2820	(vect_transform_loop): Likewise.
2821	* tree-vectorizer.c (new_loop_vec_info, destroy_loop_vec_info):
2822	Likewise.
2823
2824	* tree-vect-analyze.c (vect_analyze_scalar_cycles): Made void instead of
2825	bool.
2826	(vect_mark_relevant): Takes two additional arguments - live_p and
2827	relevant_p. Set RELEVANT_P and LIVE_P according to these arguments.
2828	(vect_stmt_relevant_p): Differentiate between a live stmt and a
2829	relevant stmt. Return two values = live_p and relevant_p.
2830	(vect_mark_stmts_to_be_vectorized): Call vect_mark_relevant and
2831	vect_stmt_relevant_p with additional arguments. Phis are no longer
2832	put into the worklist (analyzed seperately in analyze_scalar_cycles).
2833	(vect_determine_vectorization_factor): Also check for LIVE_P, because a
2834	stmt that is marked as irrelevant and live, cause it's only used out
2835	side the loop, may need to be vectorized (e.g. reduction).
2836	(vect_analyze_operations): Examine phis. Call
2837	vectorizable_live_operation for for LIVE_P stmts. Check if
2838	need_to_vectorize.
2839	(vect_analyze_scalar_cycles): Update documentation. Don't fail
2840	vectorization - just classify the scalar cycles created by the loop
2841	phis. Call vect_is_simple_reduction.
2842	(vect_analyze_loop): Call to analyze_scalar_cycles moved earlier.
2843	* tree-vect-transform.c (vect_create_index_for_vector_ref): Update
2844	call to set_stmt_info.
2845	(vect_get_vec_def_for_operand): Code reorganized - the code that
2846	classifies the type of use was factored out to vect_is_simple_use.
2847	(vectorizable_store, vect_is_simple_cond): Call vect_is_simple_use with
2848	additional arguments.
2849	(vectorizable_assignment): Likewise. Also make sure the stmt is relevant
2850	and computes a loop_vec_def.
2851	(vectorizable_operation, vectorizable_load, vectorizable_condition):
2852	Likewise.
2853	(vectorizable_live_operation): New.
2854	(vect_transform_stmt): Handle LIVE_P stmts.
2855	* tree-vectorizer.c (new_stmt_vec_info): Initialize the new fields
2856	STMT_VINFO_LIVE_P and STMT_VINFO_DEF_TYPE.
2857	(new_loop_vec_info, destroy_loop_vec_info): Also handle phis.
2858	(vect_is_simple_use): Determine the type of the def and return it
2859	in a new function argument. Consider vect_reduction_def and
2860	vect_induction_def, but for now these are not supported.
2861	(vect_is_simple_reduction): New. Empty for now.
2862	* tree-vectorizer.h (vect_def_type): New enum type.
2863	(_stmt_vec_info): Added new fields - live and _stmt_vec_info.
2864	(STMT_VINFO_LIVE_P, STMT_VINFO_DEF_TYPE): New accessor macros.
2865	(vect_is_simple_use): New arguments added to function declaration.
2866	(vect_is_simple_reduction): New function declaration.
2867	(vectorizable_live_operation): New function declaration.
2868
2869	* tree-vect-analyze.c (vect_can_advance_ivs_p): Add debug printout.
2870	(vect_can_advance_ivs_p): Likewise.
2871	* tree-vect-transform.c (vect_update_ivs_after_vectorizer): Likewise.
2872
28732005-06-05  Eric Christopher  <echristo@redhat.com>
2874
2875	* config/mips/mips.c (mips_rtx_costs): Remove unused variable.
2876
28772005-06-05  Hans-Peter Nilsson  <hp@bitrange.com>
2878
2879	PR target/21914
2880	* config/mmix/mmix.md ("*movdicc_real_foldable")
2881	("*movdfcc_real_foldable", "*bCC_foldable")
2882	("*bCC_inverted_foldable"): Specify DImode for register being
2883	compared.
2884
28852005-06-04  Roger Sayle  <roger@eyesopen.com>
2886
2887	* reg-stack.c (struct block_info_def): Correct grammar typo.
2888	(compensate_edge): Clean-up.  Perform as little work as possible
2889	when src and dest stacks match.  Avoid modifying block_info.
2890	Reorder and simplify assertion checks.  Avoid unnecessary copying
2891	of regstack structure.
2892	(convert_regs_1): Set the done flag here...
2893	(convert_regs_2): ... instead of here.
2894
28952005-06-04  Dale Johannesen  <dalej@apple.com>
2896
2897	* config/rs6000/rs6000.c (no_global_regs_above): New.
2898	(rs6000_emit_prologue):  Use it; cosmetic formatting fixes.
2899	(rs6000_emit_epilogue):  Use it; cosmetic formatting fixes.
2900	(rs6000_conditional_register_usage): Don't put Darwin PIC
2901	register in global_regs.
2902	(rs6000_stack_info):  Don't set lr_save_p just because Darwin 
2903	PIC reg used.
2904	(rs6000_emit_prologue):  Save LR in R0 around Darwin PIC setup,
2905	if not done by lr_save_p.
2906	* config/rs6000/rs6000.md (insnv1_internal1):  Back out 05-18 patch.
2907	Use rotate instead of ashift.
2908	(call_indirect_nonlocal_sysv):  Prefer CTR to LR.
2909	(call_value_indirect_nonlocal_sysv):  Ditto.
2910
29112005-06-04  Jan Hubicka  <jh@suse.cz>
2912
2913	* cgraphunit.c (cgraph_reset_node): Break out from ...
2914	(cgraph_finalize_function): ... here.
2915	(cgraph_finalize_compilation_unit): Reset nodes where backend
2916	removed the body.
2917
29182005-06-04  Richard Henderson  <rth@redhat.com>
2919
2920	PR target/21888
2921	* config/alpha/alpha.c (alpha_align_insns): Don't insert nops
2922	until we've passed initial ldgp.
2923
29242005-06-04  Daniel Berlin  <dberlin@dberlin.org>
2925
2926	* cfgexpand.c (expand_one_var): Use DECL_HAS_VALUE_EXPR_P.
2927	* dwarf2out.c (loc_descriptor_from_tree_1): Ditto.
2928	* expr.c (expand_var): Ditto.	
2929	* function.c (gimplify_parameters): Use SET_DECL_VALUE_EXPR too.
2930	* gimplify.c (gimplify_decl_expr): Ditto.
2931	(gimplify_expr): Ditto.
2932	* tree-mudflap.c (mf_decl_eligible_p): Use DECL_HAS_VALUE_EXPR_P.
2933	* tree.c (value_expr_for_decl): New.
2934	(print_value_expr_statistics): New.
2935	(init_ttree): Init value_expr_for_decl.
2936	(decl_value_expr_lookup): New.
2937	(decl_value_expr_insert): Ditto.
2938	(copy_node_stat): Copy DECL_VALUE_EXPR status.
2939	* tree.h (DECL_VALUE_EXPR): Use hashtable.
2940	(SET_DECL_VALUE_EXPR): New.
2941	(DECL_HAS_VALUE_EXPR_P): New.
2942
29432005-06-04  Steven Bosscher  <stevenb@suse.de>
2944
2945	* lcm.c: Move all mode-switching related functions from here...
2946	* mode-switching.c: ...to this new file.
2947	* doc/passes.texi: Update accordingly.
2948
2949	* basic-block.h (label_value_list): Remove extern decl.
2950	* cfgrtl.c (label_value_list): Remove.
2951	(can_delete_label_p): Don't look at it.
2952	* cfgcleanup.c (cleanup_cfg): Don't free it.
2953
2954	* common.opt: Don't refer to non-existing flag_alias_check.
2955
29562005-06-04  David Edelsohn  <edelsohn@gnu.org>
2957
2958	* config/rs6000/aix52.h (ASM_CPU_SPEC): Add power5.
2959
29602005-06-04  Kazu Hirata  <kazu@codesourcery.com>
2961
2962	* function.c (prologue, epilogue, sibcall_epilogue): Change
2963	their types to VEC(int,heap)*.
2964	(free_after_compilation): Free the three vectors above.
2965	(init_function_for_compilation, record_insns, contains,
2966	prologue_epilogue_contains, sibcall_epilogue_contains,
2967	reposition_prologue_and_epilogue_notes): Use VEC instead of
2968	VARRAY.  (init_function_once): Remove.
2969	* function.h: Remove the prototype for init_function_once.
2970	* toplev.c (backend_init): Don't call init_function_once.
2971
29722005-06-04  Jan Hubicka  <jh@suse.cz>
2973
2974	* predict.c (tree_predict_edge): Do not predict entry edge and
2975	single succestor edge.
2976
29772005-06-04  Joseph S. Myers  <joseph@codesourcery.com>
2978
2979	PR c/21873
2980	* c-typeck.c (push_init_level): Don't pop levels without braces if
2981	implicit == 1.
2982
29832005-06-03  Sebastian Pop  <pop@cri.ensmp.fr>
2984	
2985	* tree-data-ref.c (compute_self_dependence): New function.
2986	(compute_all_dependences): Use it.
2987
29882005-06-03  Geoffrey Keating  <geoffk@apple.com>
2989
2990	* c-parser.c (c_parser_parms_declarator): Don't use chainon().
2991	(c_parser_expr_list): Don't use chainon().
2992
2993	* config/darwin.h (LINK_SPEC): Pass -syslibroot to linker
2994	when -isysroot passed.
2995
29962005-06-03  Joseph S. Myers  <joseph@codesourcery.com>
2997
2998	PR c/21879
2999	* c-decl.c (start_function): Restore label_context_stack_se and
3000	label_context_stack_vm  if returning with an error.
3001
30022005-06-03  Gabriel Dos Reis  <gdr@integrable-solutions.net>
3003
3004	* configure.ac: Check declaration for asprintf, needed by
3005	libiberty.h. 
3006	* configure: Regenerate.
3007	* config.in: Likewise.
3008
30092005-06-03  Diego Novillo  <dnovillo@redhat.com>
3010
3011	* tree-ssa-dom.c (record_edge_info): Use last_basic_block to
3012	allocate info array.
3013	* tree-vrp.c (extract_range_from_unary_expr): Set resulting
3014	range to varying in cast expressions that change
3015	TYPE_PRECISION.
3016
30172005-06-03  Eric Christopher  <echristo@redhat.com>
3018
3019	* config/mips/mips.opt: Add RejectNegative to divide-breaks and
3020	divide-traps.
3021
30222005-06-03  Jan Hubicka  <jh@suse.cz>
3023
3024	* basic-block.h (remove_predictions_associated_with_edge): Declare.
3025	* cfg.c (remove_edge): Use it.
3026	* predict.c (remove_predictions_associated_with_edge): New function.
3027
30282005-06-03  Pat Haugen  <pthaugen@us.ibm.com>
3029
3030	* config/rs6000/rs6000.c (rs6000_conditional_register_usage):
3031	Clear call_realy_used_regs[r2] when ABI_AIX.
3032
30332005-06-03  Richard Guenther  <rguenth@gcc.gnu.org>
3034
3035	PR middle-end/21858
3036	* fold-const.c (fold_binary): Fix type mismatches in folding
3037	of comparisons.
3038
30392005-06-03  Kazu Hirata  <kazu@codesourcery.com>
3040
3041	* cgraph.c, cgraphunit.c, config/mips/mips.c: Fix comment
3042	typos.
3043
30442005-06-03  Joseph S. Myers  <joseph@codesourcery.com>
3045
3046	* collect2.c (maybe_unlink): Use unlink_if_ordinary.
3047
30482005-06-02  Bernd Schmidt  <bernd.schmidt@analog.com>
3049
3050	* reload1.c (reload): Revert my previous patch.
3051
30522005-06-03  Nick Clifton  <nickc@redhat.com>
3053
3054	* config/arm/semi.h (ASM_SPEC): Fix typo passing -mfloat-abi to
3055	assembler.
3056
30572005-06-03  Kazu Hirata  <kazu@codesourcery.com>
3058
3059	PR tree-optimization/21849
3060	* tree-ssa-copy.c (dump_copy_of): Call sbitmap_zero.
3061
30622005-06-02  Richard Henderson  <rth@redhat.com>
3063
3064	* Makefile.in (tree-vect-generic.o): New.
3065	(OBJS-common, GTFILES, s-gtype): Add it.
3066	* tree-complex.c (build_replicated_const, vector_inner_type,
3067	vector_last_type, vector_last_nunits, build_word_mode_vector_type,
3068	elem_op_func, tree_vec_extract, do_unop, do_binop, do_plus_minus,
3069	do_negate, expand_vector_piecewise, expand_vector_parallel, 
3070	expand_vector_addition, expand_vector_operation, 
3071	type_for_widest_vector_mode, expand_vector_operations_1, 
3072	gate_expand_vector_operations, expand_vector_operations, 
3073	pass_lower_vector_ssa): Move to tree-vect-generic.c.
3074	(tree_lower_complex): Rename from tree_lower_operations.
3075	(pass_lower_complex): Rename from pass_pre_expand.
3076	* tree-vect-generic.c: New file.
3077	* tree-pass.h (pass_lower_complex): Rename from pass_pre_expand.
3078	(pass_lower_vector): New.
3079	* tree-optimize.c (init_tree_optimization_passes): Update to match.
3080
30812005-06-02  Richard Henderson  <rth@redhat.com>
3082
3083	* modulo-sched.c (doloop_register_get): Protect against 
3084	doloop_end not defined.
3085
30862005-06-02  Kazu Hirata  <kazu@codesourcery.com>
3087
3088	* config/sh/sh.c (general_movsrc_operand,
3089	general_movdst_operand, arith_reg_operand, arith_reg_dest,
3090	logical_reg_operand, int_gpr_dest, fp_arith_reg_operand,
3091	fp_arith_reg_dest, arith_operand, arith_reg_or_0_operand,
3092	xor_operand, cmp_operand, logical_operand, and_operand,
3093	fpscr_operand, fpul_operand, symbol_ref_operand,
3094	commutative_float_operator, noncommutative_float_operator,
3095	unary_float_operator, binary_float_operator,
3096	binary_logical_operator, equality_comparison_operator,
3097	greater_comparison_operator, less_comparison_operator,
3098	shift_operator, logical_operator, target_reg_operand,
3099	target_operand, mextr_bit_offset, extend_reg_operand,
3100	trunc_hi_operand, extend_reg_or_0_operand, minuend_operand,
3101	general_extend_operand, ua_address_operand,
3102	cache_address_operand, inqhi_operand, sh_rep_vec, sh_1el_vec,
3103	sh_const_vec, ua_offset, sh_register_operand, cmpsi_operand,
3104	shift_count_reg_operand, shift_count_operand,
3105	unaligned_load_operand): Move to ...
3106	* config/sh/predicates.md: ... here.
3107	* config/sh/sh.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
3108	Remove.
3109
31102005-06-02  Andrew Pinski  <pinskia@physics.uc.edu>
3111
3112	* tree.c (build_common_builtin_nodes): Fix the return type on
3113	__builtin_memcmp.
3114
31152005-06-02  Richard Guenther  <rguenth@gcc.gnu.org>
3116
3117	* tree-ssa-loop-ivopts.c (build_addr_strip_iref): Remove.
3118	(find_interesting_uses_address): Use build_fold_addr_expr instead.
3119	(strip_offset_1): Likewise.
3120	(tree_to_aff_combination): Likewise.
3121
31222005-06-02  DJ Delorie  <dj@redhat.com>
3123
3124	* convert.c (convert_to_pointer): Avoid recursion if no conversion
3125	is needed.
3126
31272005-06-02  Richard Guenther  <rguenth@gcc.gnu.org>
3128
3129	* tree-chrec.c (chrec_fold_plus_1): Ensure we build
3130	binary operations with the correct types.
3131	* tree-ssa-loo-ivopts.c (idx_find_step): Use sizetype
3132	for all computation.
3133
31342005-06-02  Kazu Hirata  <kazu@codesourcery.com>
3135
3136	* tree-vrp.c, config/arm/arm.md, config/arm/arm1020e.md,
3137	config/rs6000/rs6000.md: Fix comment typos.  Follow splling
3138	conventions.
3139	* doc/install.texi: Fix a typo.
3140
31412005-06-02  Jan Hubicka  <jh@suse.cz>
3142
3143	* cgraphunit.c (cgraph_function_and_variable_visibility): Extern
3144	inline functions are not local.
3145
31462005-06-02  Kazu Hirata  <kazu@codesourcery.com>
3147
3148	* gimplify.c (gimplify_ctx): Change the type of case_labels to
3149	VEC from VARRAY.
3150	(gimplify_switch_expr, gimplify_case_label_expr): Adjust uses
3151	of case_labels.
3152
31532005-06-02  Richard Guenther  <rguenth@gcc.gnu.org>
3154
3155	* c-typeck.c (build_indirect_ref): Build INDIRECT_REF
3156	with correct type.
3157
31582005-06-02  Ulrich Weigand  <uweigand@de.ibm.com>
3159
3160	* config/s390/s390.c (s390_add_execute): Do not handle out-of-pool
3161	execute templates.
3162	(s390_dump_pool): Likewise.
3163	(s390_mainpool_start, s390_mainpool_finish): Likewise.
3164	(s390_chunkify_start): Likewise.
3165	(s390_dump_execute): Remove.
3166	(s390_reorg): Handle out-of-pool execute templates.
3167
31682005-06-02  Adrian Straetling  <straetling@de.ibm.com>
3169
3170	* optabs.c: (expand_bool_compare_and_swap): Emit barrier after
3171	  unconditional jump.
3172
31732005-06-02  Jan Hubicka  <jh@suse.cz>
3174
3175	* cgraph.c (cgraph_node): Maintain master clones.
3176	(cgraph_remove_node): Likewise.
3177	(availability_names): New static variable.
3178	(dump_cgraph_node): Dump availability.
3179	(dump_cgraph_varpool_node): Likewise.
3180	(cgraph_is_master_clone, cgraph_master_clone,
3181	cgraph_function_body_availability,
3182	cgraph_variable_initializer_availability): New functions.
3183	* cgraph.h (availability): New enum.
3184	(struct cgraph_node): Add master_clone.
3185	(cgraph_is_master_clone, cgraph_master_clone,
3186	cgraph_function_body_availability,
3187	cgraph_variable_initializer_availability): Declare.
3188	* cgraphunit.c (cgraph_expand_function): Setcgraph_function_flags_ready.
3189	(cgraph_remove_unreachable_nodes): Remove unreachable nodes.
3190	* ipa-inline.c (cgraph_decide_inlining): Do not call
3191	cgraph_remove_unreachable_nodes.
3192
3193	* cgraphunit.c (cgraph_function_and_variable_visibility): Fix typo in
3194	previous patch.
3195
31962005-06-02  Diego Novillo  <dnovillo@redhat.com>
3197
3198	PR 21582
3199	* tree-vrp.c (nonnull_arg_p): New.
3200	(get_value_range): Call it.
3201
32022005-06-02  Eric Christopher  <echristo@redhat.com>
3203
3204	* config/mips/mips.h (processor_type): Remove PROCESSOR_DEFAULT,
3205	add PROCESSOR_MAX.
3206	(mips_rtx_cost_data): New datatype.
3207	(MEMORY_MOVE_COST): Use data from structure.
3208	(BRANCH_COST): Ditto.
3209	(LOGICAL_OP_NON_SHORT_CIRCUIT): Define to zero.
3210	* config/mips/mips.md (cpu): Rework for processor_type changes.
3211	* config/mips/mips.c (mips_cost): New variable.
3212	(DEFAULT_COSTS): Define.
3213	(mips_rtx_cost_data): New.
3214	(mips_rtx_costs): Use. Minor formatting changes. Use COSTS_N_INSNS
3215	for NEG cost. Add support for FLOAT, UNSIGNED_FLOAT, FIX,
3216	FLOAT_EXTEND, FLOAT_TRUNCATE, and SQRT.
3217	(override_options): Set cost data.
3218	(mips_register_move_cost): Formatting changes.
3219	(bdesc_arrays): Use PROCESSOR_MAX.
3220	(mips_init_builtins): Ditto.
3221
32222005-06-02  Diego Novillo  <dnovillo@redhat.com>
3223
3224	PR 21765
3225	* doc/invoke.texi: Document -ftree-vrp.
3226
32272005-06-02  Dorit Nuzman  <dorit@il.ibm.com>
3228
3229	PR tree-optimization/21734
3230	* tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop): Use the
3231	phi_result when current_def is not available.
3232	(slpeel_update_phi_nodes_for_guard1): Don't fail if current_def is not
3233	available.	
3234
32352005-06-02  David Edelsohn  <edelsohn@gnu.org>
3236
3237	* config/rs6000/rs6000.c (rs6000_insn_valid_within_doloop): New.
3238	(TARGET_INSN_VALID_WITHIN_DOLOOP): Define.
3239
32402005-06-02  Diego Novillo  <dnovillo@redhat.com>
3241
3242	* tree-vrp.c (has_assert_expr, maybe_add_assert_expr): Remove.
3243
32442005-06-02  Jan Hubicka  <jh@suse.cz>
3245
3246	* cgraph.c (dump_cgraph_node): Print new flags.
3247	(dump_cgraph_varpool_node): Likewise.
3248	(decide_variable_is_needed): Initialize externally_visible flag.
3249	* cgraph.h (cgraph_local_info): Add externally_visible flag.
3250	(cgraph_varpool_node): Likewise.
3251	(cgraph_function_flags_ready): Declare.
3252	* cgraph.c (cgraph_mark_local_functions): Rename to ...
3253	(cgraph_function_and_variable_visibility) ... this one; handle
3254	externally_visible flags.
3255	(decide_is_function_needed): Set externally_visible flag.
3256	(cgraph_finalize_function): Deal properly with early cleanups.
3257	(cgraph_optimize): Update call of
3258	cgraph_function_and_variable_visibility.
3259
32602005-06-02 Steven Bosscher  <stevenb@suse.de>
3261	   Mostafa Hagog <mustafa@il.ibm.com>
3262
3263	* cfgloop.h (doloop_condition_get): Make external.
3264	* loop-doloop.c (doloop_condition_get): Generalize to make it
3265	usable in modulo-sched.c.
3266	* modulo-sched.c (doloop_register_get): Use
3267	doloop_condition_get instead of duplicating it.
3268
32692005-06-02  Bernd Schmidt  <bernd.schmidt@analog.com>
3270
3271	* reload1.c (reload): Undo 2005-04-20 change.  Make sure we detect
3272	the correct set of init_insns that need deletion.
3273	* local-alloc.c (update_equiv_regs): When substituting sole definition
3274	into sole use of a reg, delete it from liveness information.
3275
32762005-06-02  Kaz Kojima  <kkojima@gcc.gnu.org>
3277
3278	* config/sh/sh.h (TARGET_FPU_DOUBLE): Use MASK_SH4.
3279
32802005-06-01  Diego Novillo  <dnovillo@redhat.com>
3281
3282	PR 14341, PR 21332, PR 20701, PR 21029, PR 21086, PR 21090
3283	PR 21289, PR 21348, PR 21367, PR 21368, PR 21458.
3284	* fold-const.c (invert_tree_comparison): Make extern.
3285	* tree-flow.h (enum value_range_type): Move to tree-ssa-propagate.
3286	(struct value_range_def): Limewise.
3287	(get_value_range): Remove.
3288	(dump_value_range): Remove.
3289	(dump_all_value_ranges): Remove.
3290	(debug_all_value_ranges): Remove.
3291	(vrp_evaluate_conditional): Declare.
3292	* tree-ssa-propagate.c (struct prop_stats_d): Add field
3293	num_pred_folded.
3294	(substitute_and_fold): Add argument use_ranges_p.
3295	Update all callers.
3296	If use_ranges_p is true, call fold_predicate_in to fold
3297	predicates using range information.
3298	Ignore ASSERT_EXPRs.
3299	Change debugging output to only show statements that have been
3300	folded.
3301	(replace_phi_args_in): Move debugging output code from
3302	substitute and fold.
3303	(fold_predicate_in): New local function.
3304	* tree-ssa-propagate.h (enum value_range_type): Move from
3305	tree-flow.h.
3306	(struct value_range_d): Likewise.
3307	Add field 'equiv'. 
3308	(value_range_t): Rename from value_range.
3309	* tree-vrp.c (found_in_subgraph): Rename from found.
3310	(get_opposite_operand): Remove.
3311	(struct assert_locus_d): Declare.
3312	(assert_locus_t): Declare.
3313	(need_assert_for): Declare.
3314	(asserts_for): Declare.
3315	(blocks_visited): Declare.
3316	(vr_value): Declare.
3317	(set_value_range): Add argument 'equiv'.
3318	Don't drop to VARYING ranges that cover all values in the
3319	type.
3320	Make deep copy of equivalence set 'equiv'.
3321	(copy_value_range): New local function.
3322	(set_value_range_to_undefined): New local function.
3323	(compare_values): Return -2 if either value has overflowed.
3324	(range_includes_zero_p): New local function.
3325	(extract_range_from_assert): Flip the predicate code if the
3326	name being asserted is on the RHS of the predicate.
3327	Avoid creating unnecessary symbolic ranges if the comparison
3328	includes another name with a known numeric range.
3329	Update the equivalnce set of the new range when asserting
3330	EQ_EXPR predicates.
3331	(extract_range_from_ssa_name): Update the equivalence set of
3332	the new range with VAR.
3333	(extract_range_from_binary_expr): Also handle TRUTH_*_EXPR.
3334	If -fwrapv is used, set the resulting range to VARYING if the
3335	operation overflows.  Otherwise, use TYPE_MIN_VALUE and
3336	TYPE_MAX_VALUE to represent -INF and +INF.
3337	Fix handling of *_DIV_EXPR.
3338	(extract_range_from_unary_expr): Handle MINUS_EXPR and
3339	ABS_EXPR properly by switching the range around if necessary.
3340	(extract_range_from_comparison): New local function.
3341	(extract_range_from_expr): Call it.
3342	(adjust_range_with_scev): Do not adjust the range if using
3343	wrapping arithmetic (-fwrapv).
3344	(dump_value_range): Also show equivalence set.
3345	Show -INF and +INF for TYPE_MIN_VALUE and TYPE_MAX_VALUE.
3346	(build_assert_expr_for): Also build ASSERT_EXPR for EQ_EXPR.
3347	(infer_value_range): Change return value to bool.
3348	Add arguments 'comp_code_p' and 'val_p'.
3349	Do not attempt to infer ranges from statements that may throw.
3350	Store the comparison code in comp_code_p.
3351	Store the other operand to be used in the predicate in val_p.
3352	(dump_asserts_for): New.
3353	(debug_asserts_for): New.
3354	(dump_all_asserts): New.
3355	(debug_all_asserts): New.
3356	(register_new_assert_for): New.
3357	(register_edge_assert_for): New.
3358	(find_conditional_asserts): New.
3359	(find_assert_locations): New.
3360	(process_assert_insertions_for): New.
3361	(process_assert_insertions): New.
3362	(insert_range_assertions): Initialize found_in_subgraph,
3363	blocks_visited, need_assert_for and asserts_for.
3364	Call find_assert_locations and process_assert_insertions.
3365	(remove_range_assertions): Add more documentation.
3366	(vrp_initialize): Change return type to void.
3367	Do not try to guess if running VRP is worth it.  
3368	(compare_name_with_value): New.
3369	(compare_names): New.
3370	(vrp_evaluate_conditional): Add argument 'use_equiv_p'.  If
3371	use_equiv_p is true, call compare_names and
3372	compare_name_with_value to compare all the ranges for every
3373	name in the equivalence set of the predicate operands.
3374	Update all callers.
3375	(vrp_meet): Try harder not to derive a VARYING range.
3376	If two values meet, the resulting equivalence set is the
3377	intersection of the two equivalence sets.
3378	(vrp_visit_phi_node): Call copy_value_range to get the current
3379	range information of the LHS.
3380	(vrp_finalize): Create a value vector representing all the
3381	names that ended up with exactly one value in their range.
3382	Call substitute_and_fold.
3383	(execute_vrp): Document equivalence sets in ranges.
3384	* tree.h (SSA_NAME_VALUE_RANGE): Remove.
3385	(struct tree_ssa_name): Remove field value_range.
3386	(invert_tree_comparison): Declare.
3387
33882005-06-01  Daniel Berlin  <dberlin@dberlin.org>
3389
3390	Fix PR tree-optimization/21839
3391
3392	* gimplify.c (zero_sized_field_decl): New function.
3393	(gimplify_init_ctor_eval): Use it.
3394
33952005-06-01  Josh Conner <jconner@apple.com>
3396
3397	PR 21478
3398	* gimplify.c (gimplify_init_constructor): Don't spill initializer
3399	to read-only memory if it's sparse.
3400
34012005-06-01  Ramana Radhakrishnan  <ramana@codito.com>
3402
3403	* doc/rtl.texi: Remove references to NOTE_INSN_SETJMP. 
3404	Add documentation for REG_SETJMP
3405
34062005-06-01  Richard Guenther  <rguenth@gcc.gnu.org>
3407
3408	* stmt.c (expand_case): Use build_int_cst.
3409	(node_has_low_bound): Likewise, and correct type mismatch.
3410	(node_has_high_bound): Likewise.
3411	* fold-const.c (fold_binary): Ensure we build trees
3412	with the correct types - undo what STRIP_NOPS possibly did.
3413
34142005-06-01  Richard Guenther  <rguenth@gcc.gnu.org>
3415
3416	* tree.h (fold_indirect_ref_1): Export from fold-const.c.
3417	* fold-const.c (fold_indirect_ref_1): No longer static.
3418	* tree-inline.c (copy_body_r): Use fold_indirect_ref_1 for
3419	folding, if possible.
3420
34212005-06-01  Joseph S. Myers  <joseph@codesourcery.com>
3422
3423	* common.opt (fjump-tables): New.
3424	* doc/invoke.texi (-fno-jump-tables): Document.
3425	* stmt.c (expand_end_case_type): Do not emit jump tables unless
3426	flag_jump_tables.
3427
34282005-06-01  Richard Earnshaw  <richard.earnshaw@arm.com>
3429
3430	* arm.md (bunordered, bordered, bungt, bunlt, bunge, bunle, buneq)
3431	(bltgt, arm_buneq, arm_bltgt, sunordered, sordered, sungt, sunge)
3432	(sunlt, sunle): Enable patterns on VFP.
3433
3434	* arm.md (attribute 'type'): Add new types - f_loads floadd, f_stores,
3435	f_stored, f_flag, f_cvt.
3436	(generic_sched): No-longer used for the arm1020e and arm1022e cores.
3437	Include arm1020e.md.
3438	* vfp.md (fmstat): New cpu unit.  Add an exclusion set between it and
3439	the ds and fmac pipelines.  Re-work all load and store patterns and
3440	all conversion patterns to use new attributes.  Adjust reservation
3441	descriptions accordingly.
3442	* arm1020e.md: New file.
3443	* t-arm: Add dependency.
3444
34452005-06-01  Jan Hubicka  <jh@suse.cz>
3446
3447	* except.c (struct eh_region): Kill unused fields.
3448	* basic-block.h (struct basic_block_def): Likewise.
3449
34502005-06-01  J"orn Rennecke <joern.rennecke@st.com>
3451
3452	PR rtl-optimization/21767
3453	* rtl.h (function_invariant_p): Re-add declaration.
3454	* reload1.c (function_invariant_p): No longer static.
3455	* ifcvt.c (dead_or_predicable): Remove REG_EQUAL notes that
3456	might have become invalid.
3457
34582005-06-01  Jakub Jelinek  <jakub@redhat.com>
3459
3460	PR c/21536
3461	PR c/20760
3462	* gimplify.c (gimplify_decl_expr): Call gimplify_type_sizes
3463	on variable sizes types if a decl is a pointer to a VLA.
3464	(gimplify_type_sizes): Handle POINTER_TYPE and REFERENCE_TYPE.
3465	Call gimplify_type_sizes on aggregate fields.  Prevent infinite
3466	recursion.
3467
3468	* fold-const.c (fold_ternary): Optimize BIT_FIELD_REF of VECTOR_CST.
3469
3470	* config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss, _mm_set1_ps,
3471	_mm_set_ps, _mm_setr_ps): Add __extension__.
3472	* config/i386/emmintrin.h (_mm_set_sd, _mm_set1_pd, _mm_set_pd,
3473	_mm_setr_pd, _mm_setzero_pd, _mm_set_epi64x, _mm_set_epi64x,
3474	_mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128):
3475	Likewise.
3476	(_mm_clflush): Don't use return in void function.
3477
3478	* config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128,
3479	_mm_castps_pd, _mm_castps_si128, _mm_castsi128_ps, _mm_castsi128_pd):
3480	Use __inline instead of inline.
3481
34822005-06-01  Richard Guenther  <rguenth@gcc.gnu.org>
3483
3484	* fold-const.c (fold_binary): Fix types in strlen vs.
3485	zero comparison folding.
3486
34872005-06-01  Richard Henderson  <rth@redhat.com>
3488
3489	* configure.ac (HAVE_AS_JSRDIRECT_RELOCS): New.
3490	* config.in, configure: Rebuild.
3491	* config/alpha/alpha.c (print_operand): Add 'j'.
3492	* alpha.md (divmodsi_internal_er_1): Use it.
3493	(divmoddi_internal_er_1): Likewise.
3494
34952005-06-01  Richard Sandiford  <rsandifo@redhat.com>
3496
3497	* system.h (TARGET_OPTIONS, TARGET_SWITCHES): Poison.
3498	* opts.h (print_filtered_help): Delete.
3499	* opts.c (handle_option, decode_options): Remove calls to
3500	set_target_switch.
3501	(print_target_help): New function.
3502	(common_option, print_help): Call print_target_help instead of
3503	display_target_options.
3504	(print_filtered_help): Make static.
3505	* toplev.h (display_target_options, set_target_switch): Delete.
3506	* toplev.c (target_switches, target_options, display_target_options)
3507	(set_target_switch): Delete.
3508	(print_switch_values): Remove handling of TARGET_SWITCHES and
3509	TARGET_OPTIONS.
3510	(default_get_pch_validity): Likewise.  Only treat target_flags
3511	specially if targetm.check_pch_target_flags is nonnull.
3512	(pch_option_mismatch): New function.
3513	(default_pch_valid_p): Use it.  Remove handling of TARGET_SWITCHES
3514	and TARGET_OPTIONS.  Only treat target_flags specially if
3515	targetm.check_pch_target_flags is nonnull.
3516	* config/ia64/ia64.c (ia64_override_options): Don't mention
3517	TARGET_OPTIONS in comment.
3518	* config/m68k/m68k-none.h (CC1_SPEC): Likewise.
3519	* doc/invoke.texi: Remove a reference to TARGET_SWITCHES.
3520	* doc/tm.texi (TARGET_DEFAULT_TARGET_FLAGS): Don't mention the
3521	interaction with TARGET_SWITCHES.
3522	(TARGET_@var{featurename}, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
3523
35242005-06-01  Richard Sandiford  <rsandifo@redhat.com>
3525
3526	* config/sh/sh.c (multcosts): Check sh_multcost rather than
3527	sh_multcost_str.
3528	(sh_register_move_cost): Likewise sh_gettrcost and sh_gettrcost_str.
3529	(sh_multcost_str, sh_gettrcost_str, sh_div_str, sh_divsi3_libfunc)
3530	(cut2_workaround_str): Delete.
3531	* config/sh/sh.h (SUBTARGET_OPTIONS, TARGET_OPTIONS)
3532	(TARGET_SH5_CUT2_WORKAROUND, sh_multcost_str, sh_gettrcost_str)
3533	(sh_div_str, sh_divsi3_libfunc, cut2_workaround_str): Delete.
3534	* config/sh/sh.opt (mcut2-workaround, mdiv=, mdivsi3_libfunc=)
3535	(mgettrcost=, multcost=): New options.
3536
35372005-06-01  Richard Sandiford  <rsandifo@redhat.com>
3538
3539	* opts.h (cl_option_state): New structure.
3540	(get_option_state): Declare.
3541	* opts.c (get_option_state): New function.
3542	* toplev.c (option_affects_pch_p): New function.
3543	(default_get_pch_validity): Store the state of all options for which
3544	option_affects_pch_p returns true.
3545	(default_pch_valid_p): Check the state of those options here.
3546	Only check target_flags separately if targetm.check_pch_target_Flags
3547	is nonnull or if TARGET_SWITCHES is defined.
3548
35492005-06-01  Richard Sandiford  <rsandifo@redhat.com>
3550
3551	* config/mips/mips-protos.h (mips_use_ins_ext_p): Remove parameter
3552	names.
3553
35542005-06-01 Mostafa Hagog <mustafa@il.ibm.com>
3555
3556	* modulo-sched.c (undo_generate_reg_moves ): Fix PR 21138.
3557
35582005-06-01 Mostafa Hagog <mustafa@il.ibm.com>
3559
3560	* gcse.c (compute_transp, load_killed_in_block): Use 
3561	MEM_READONLY_P.
3562
35632005-06-01  David.Billinghurst  <David.Billinghurst@riotinto.com>
3564
3565	PR target/21854
3566	* config/mips/mips-protos.h: Declare mips_use_ins_ext_p
3567	
35682005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3569
3570	* errors.h (warning, error, fatal, internal_error): Add printf
3571	attribute.
3572	* genmodes.c (make_vector_mode): Fix format arguments.
3573
35742005-05-31  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3575
3576	* basic-block.h, bb-reorder.c, c-gimplify.c, config/darwin.c,
3577	config/rs6000/rs6000-c.c, dominance.c, gimple-low.c, gimplify.c,
3578	lambda-code.c, lambda-trans.c, tree-browser.c, tree-cfg.c,
3579	tree-chrec.c, tree-data-ref.c, tree-dfa.c, tree-eh.c,
3580	tree-if-conv.c, tree-into-ssa.c, tree-loop-linear.c,
3581	tree-mudflap.c, tree-nomudflap.c, tree-outof-ssa.c,
3582	tree-pretty-print.c, tree-scalar-evolution.c, tree-sra.c,
3583	tree-ssa-ccp.c, tree-ssa-copy.c, tree-ssa-dce.c, tree-ssa-dom.c,
3584	tree-ssa-dse.c, tree-ssa-forwprop.c, tree-ssa-live.c,
3585	tree-ssa-operands.c, tree-ssa-phiopt.c, tree-ssa-pre.c,
3586	tree-ssa-propagate.c, tree-ssa-sink.c, tree-ssa-threadupdate.c,
3587	tree-ssa-uncprop.c, tree-ssa.c, tree-vect-analyze.c,
3588	tree-vect-transform.c, tree-vectorizer.c, vec.c: Don't include
3589	errors.h and include toplev.h if necessary.
3590	
3591	* rtl.c, varray.c: If we're compiling as a GENERATOR_FILE, include
3592	errors.h otherwise include toplev.h.
3593	
3594	* Makefile.in: Update dependencies.
3595	
35962005-06-01  Danny Smith  <dannysmith@users.sourceforge.net>
3597
3598	* config/i386/cygming.h (NO_PROFILE_COUNTERS): Define.
3599
36002005-05-31  Geoffrey Keating  <geoffk@geoffk.org>
3601
3602	* config/rs6000/rs6000.md (sync_boolcshort_internal): New.
3603	* config/rs6000/rs6000.c (rs6000_emit_sync): Shift count must
3604	be complemented for big-endian.  Mask for AND must be rotated,
3605	not shifted.  Handle short operands with NOT on the memory
3606	operation.
3607
36082005-05-30  Daniel Berlin  <dberlin@dberlin.org>
3609
3610	* c-objc-common.c (c_tree_printer): Check flag before hashtable.
3611	Use DECL_DEBUG_EXPR and SET_DECL_DEBUG_EXPR.
3612	* dwarf2out.c (dwarf2out_var_location): Ditto.
3613	* toplev.c (default_tree_printer): Ditto.
3614	* tree-outof-ssa.c (create_temp): Ditto.
3615	* tree-sra.c (instantiate_element): Ditto.
3616	* var-tracking.c (track_expr_p): Ditto.
3617	* tree.c (struct tree_map): New structure.
3618	(debug_expr_for_decl): New.
3619	(tree_map_eq): New function.
3620	(tree_map_hash): Ditto.
3621	(tree_map_marked_p): Ditto.
3622	(print_debug_expr_statistics): Ditto.
3623	(decl_debug_expr_lookup): Ditto.
3624	(decl_debug_expr_insert): Ditto.
3625	(dump_tree_statistics): Dump debug_expr hashtable stats.
3626	* tree.h (DECL_DEBUG_EXPR): Change
3627	(SET_DECL_DEBUG_EXPR): Add.
3628	
36292005-06-01  Alan Modra  <amodra@bigpond.net.au>
3630
3631	* configure.ac: Add --enable-secureplt.
3632	(HAVE_AS_REL16): Test for R_PPC_REL16 relocs.
3633	* config.in: Regenerate.
3634	* configure: Regenerate.
3635	* config.gcc (powerpc64-*-linux*, powerpc-*-linux*): Add
3636	rs6000/secureplt.h to tm_file when enable_secureplt.
3637	* doc/invoke.texi (msecure-plt, mbss-plt): Document.
3638	* doc/install.texi: Document --enable-targets and --enable-secureplt.
3639	Correct xrefs to "Using the GNU Compiler Collection (GCC)".
3640	* config/rs6000/secureplt.h: New file.
3641	* config/rs6000/sysv4.h (TARGET_SECURE_PLT): Define.
3642	(SUBTARGET_OVERRIDE_OPTIONS): Error if -msecure-plt given without
3643	assembler support.
3644	(CC1_SECURE_PLT_DEFAULT_SPEC): Define.
3645	(CC1_SPEC): Delete duplicate mno-sdata.  Invoke cc1_secure_plt_default.
3646	(SUBTARGET_EXTRA_SPECS): Add cc1_secure_plt_default.
3647	* config/rs6000/sysv4.opt (msecure-plt, bss-plt): Add options.
3648	* config/rs6000/rs6000.h (TARGET_SECURE_PLT): Define.
3649	* config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Handle
3650	TARGET_SECURE_PLT got register load sequence.
3651	(rs6000_emit_prologue): Call rs6000_emit_load_toc_table when
3652	TARGET_SECURE_PLT.
3653	(rs6000_elf_declare_function_name): Don't emit toc address offset
3654	word when TARGET_SECURE_PLT.
3655	* config/rs6000/rs6000.md (elf_high, elf_low): Move past load_toc_*.
3656	(load_toc_v4_PIC_1) Enable for TARGET_SECURE_PLT.
3657	(load_toc_v4_PIC_3b, load_toc_v4_PIC_3c): New insns.
3658	(call, call_value): Mark pic_offset_table_rtx used for sysv pic and
3659	TARGET_SECURE_PLT.
3660	(call_nonlocal_sysv, call_value_nonlocal_sysv, sibcall_nonlocal_sysv,
3661	sibcall_value_nonlocal_sysv): Add 32768 offset when TARGET_SECURE_PLT
3662	and -fPIC.
3663	* config/rs6000/tramp.asm (trampoline_initial): Use "bcl 20,31".
3664	(__trampoline_setup): Likewise.  Init r30 before plt call.
3665
36662005-05-31  DJ Delorie  <dj@redhat.com>
3667
3668	* expr.c (convert_move): When a partial_int requires multiple
3669	conversion steps, make sure successive steps convert the
3670	intermediate value, not the original value.
3671
3672	* expmed.c (expand_mult): Convert partial_int multiplies to
3673	shift/add combinations too.
3674
3675	* genmodes.c (mode_data): Add wider_2x.
3676	(calc_wider_mode): Calculate twice-wider mode too.
3677	(emit_mode_wider): Emit twice-wider mode too.
3678	* machmode.h (mode_2xwider, GET_MODE_2XWIDER_MODE): New.
3679	* expr.c (expand_expr_real_1): Use it for expanding
3680	multiplies.
3681
36822005-05-31  Zdenek Dvorak  <dvorakz@suse.cz>
3683
3684	PR tree-optimization/21817
3685	* tree-ssa-loop-im.c (for_each_index): Handle VECTOR_CST.
3686
36872005-05-31  Pat Haugen  <pthaugen@us.ibm.com>
3688
3689	* loop.c (loop_invariant_p, valid_initial_value_p): Revert last
3690	change.
3691
36922005-05-31  Andrew Pinski  <pinskia@physics.uc.edu>
3693
3694	PR middle-end/20931
3695	PR middle-end/20946
3696	* fold-const.c (fold_checksum_tree): Copy types also if
3697	TYPE_CONTAINS_PLACEHOLDER_INTERNAL is set.
3698	Don't call fold_checksum_tree for TREE_LIST's TREE_CHAIN
3699	first.
3700	Tail recurse TREE_LIST's TREE_CHAIN.
3701
37022005-05-31  Andrew Pinski  <pinskia@physics.uc.edu>
3703
3704	PR tree-opt/21732
3705	* tree-ssa-copy.c (dump_copy_of): Create a bitmap and don't visit a
3706	SSA_NAME twice and cause the loop to become finite.  Remove the test
3707	for val.
3708
37092005-05-31  Andrew Pinski  <pinskia@physics.uc.edu>
3710
3711	* tree-cfg.c (verify_expr): Add checking for COND_EXPR's conditional
3712	expression.
3713
37142005-05-31  Richard Sandiford  <rsandifo@redhat.com>
3715
3716	* doc/tm.texi (TARGET_GET_PCH_VALIDITY, TARGET_PCH_VALID_P): Tweak
3717	the documentation to make it more future-proof.
3718	(TARGET_CHECK_PCH_TARGET_FLAGS): Document this new hook.
3719	* target.h (gcc_target): Add check_pch_target_flags.
3720	* target-def.h (TARGET_CHECK_PCH_TARGET_FLAGS): New macro.
3721	(TARGET_INITIALIZER): Include it.
3722	* toplev.c (default_pch_valid_p): Use targetm.check_pch_target_flags.
3723	* config/sh/sh-protos.h (sh_pch_valid_p): Delete.
3724	* config/sh/sh.c (TARGET_PCH_VALID_P, sh_pch_valid_p): Delete.
3725	(sh_check_pch_target_flags): New function.
3726	(TARGET_CHECK_PCH_TARGET_FLAGS): Override default.
3727
37282005-05-31  Richard Guenther  <rguenth@gcc.gnu.org>
3729
3730	* fold-const.c (extract_array_ref): Handle more cases,
3731	do some useful canonicalization of the base.
3732	(fold_binary): Explicitly deal with arrays of zero-sized
3733	structures during folding of &a[i] == &a[j].
3734
37352005-05-31  Eric Botcazou  <ebotcazou@libertysurf.fr>
3736
3737	* doc/install.texi (sparc-sun-solaris2*): Update note
3738	about Sun bug 4910101.
3739	(sparc-sun-solaris2.7): Document bootstrap
3740	failure with Sun WorkShop 6 99/08/18 as.
3741
37422005-05-30  Pat Haugen  <pthaugen@us.ibm.com>
3743
3744	* loop.c (loop_invariant_p, valid_initial_value_p): Use
3745	regs_invalidated_by_call instead of call_used_regs.
3746
37472005-05-30  Paolo Carlini  <pcarlini@suse.de>
3748
3749	PR middle-end/21743
3750	* builtins.def (BUILT_IN_CLOG, BUILT_IN_CLOGF, BUILT_IN_CLOGL):
3751	Enable.
3752	* doc/extend.texi: Add clog, clogf, clogl.
3753
37542005-05-30  H.J. Lu  <hongjiu.lu@intel.com>
3755
3756	PR middle-end/20303
3757	* c-pragma.c: Include "vec.h".
3758	(handle_pragma_visibility): Use VEC.
3759
3760	* doc/invoke.texi: Remove the nested visibility push limit.
3761
37622005-05-30  Roger Sayle  <roger@eyesopen.com>
3763
3764	PR rtl-optimization/15422
3765	* reg-stack.c (starting_stack_p): New static global.
3766	(straighten_stack): Delete prototype. Change to update the stack
3767	before the current insn.
3768	(subst_stack_regs): Update call to straighten stack.
3769	(emit_swap_insn): Delete prototype.  For the first insn in a
3770	basic block, update stack_in instead of emitting a real swap.
3771	(change_stack): When changing the stack before the first insn
3772	in a basic block, update stack_in instead of emitting real code.
3773	(compensate_edges): Clear starting_stack_p during compensation.
3774	(convert_regs_1): Keep track of starting_stack_p whilst processing
3775	a basic block.
3776
37772005-05-30  Kazu Hirata  <kazu@cs.umass.edu>
3778
3779	* tree-ssa-ccp.c (const_val): Make it static.
3780
37812005-05-29  Geoffrey Keating  <geoffk@apple.com>
3782
3783	PR target/21761
3784	* config/rs6000/rs6000.md: Remove stray TARGET_32BIT from
3785	pattern involving `:P'.
3786
3787	* Makefile.in (install-cpp): Depend on installdirs.
3788
37892005-05-30  Kazu Hirata  <kazu@cs.umass.edu>
3790
3791	* tree-outof-ssa.c (_elim_graph): Change the type of edge_list
3792	to VEC(int,heap)*.
3793	(new_elim_graph, clear_elim_graph, delete_elim_graph,
3794	elim_graph_add_edge, elim_graph_remove_succ_edge,
3795	FOR_EACH_ELIM_GRAPH_SUCC, FOR_EACH_ELIM_GRAPH_PRED): Use VEC
3796	instead of VARRAY.
3797
37982005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
3799
3800	* cgraphunit.c, ipa-inline.c, loop-iv.c, modulo-sched.c,
3801	opts.c, postreload-gcse.c, tree-browser.def, tree-eh.c,
3802	tree-ssa-copyrename.c, tree-vect-analyze.c: Fix typos and
3803	follow spelling conventions in error/dump messages.
3804
38052005-05-29  Roger Sayle  <roger@eyesopen.com>
3806	    Richard Henderson  <rth@redhat.com>
3807
3808	* ifcvt.c (noce_emit_move_insn): Construct a SET pattern directly
3809	if the RHS isn't suitable for calling emit_move_insn.
3810
38112005-05-29  Kazu Hirata  <kazu@cs.umass.edu>
3812
3813	* tree-ssa-ccp.c (ccp_fold): Return immediately after calling
3814	fold_unary and fold_binary.
3815
38162005-05-29  Roger Sayle  <roger@eyesopen.com>
3817
3818	* reg-stack.c (propagate_stack): Always copy the source stack to
3819	the destination.  This routine is now only called when this is safe.
3820	(better_edge): New function split out from convert_regs_1 to
3821	determine which of two edges is better to propagate across.
3822	(convert_regs_1):  We need only search for a best edge if the
3823	stack layout hasn't been defined yet.  Use better_edge to help
3824	find beste.  No longer traverse unnecessary edges.
3825
38262005-05-29  Keith Besaw  <kbesaw@us.ibm.com>
3827
3828	* tree-ssa-alias.c (new_type_alias): New procedure to
3829	create a type memory tag for a pointer with a may-alias
3830	set determined from a variable declaration.
3831	* tree-flow.h: export declaration of new_type_alias
3832	* tree-optimize.c (init_tree_optimization_passes): document
3833	that pass_may_alias cannot be called after pass_vectorize.
3834	* tree-vect-transform (vect_create_data_ref_ptr): Call
3835	new_type_alias when an type memory tag isn't available
3836	for a reference.
3837	(vectorizable_store): Use copy_virtual_operands to update
3838	virtual defs in place (so that loop_version can be called).
3839	Call mark_for_renaming for the virtual defs in case peeling
3840	is done and virtual uses outside the loop need to be updated.
3841
38422005-05-29  Dorit Naishlos  <dorit@il.ibm.com>
3843
3844	PR tree-optimization/21639
3845	* tree-complex.c (pass_lower_vector_s): Remove TODO_ggc_collect.
3846
38472005-05-29  Jan Hubicka  <jh@suse.cz>
3848
3849	PR tree-optimization/21562
3850	* cfgexpand.c (construct_init_block): Deal properly with the case
3851	of entry edge not pointing to very first basic block.
3852
38532005-05-28  Kazu Hirata  <kazu@cs.umass.edu>
3854
3855	* tree-ssa-ccp.c (ccp_fold): Remove code that produces
3856	non-gimple min invariant.
3857
3858	* Makefile.in (OBJS-common): Add tree-cfgcleanup.o.
3859	* tree-flow.h: Add prototypes for start_recording_case_labels
3860	and end_recording_case_labels.
3861	* tree-cfg.c (start_recording_case_labels,
3862	end_recording_case_labels): Export.
3863	(cleanup_tree_cfg_loop, modified_noreturn_calls,
3864	cleanup_control_flow, cleanup_control_expr_graph,
3865	remove_fallthru_edge, phi_alternatives_equal,
3866	tree_forwarder_block_p, has_abnormal_incoming_edge_p,
3867	remove_forwarder_block, cleanup_forwarder_blocks,
3868	remove_forwarder_block_with_phi, merge_phi_nodes,
3869	gate_merge_phi, pass_merge_phi): Move to ...
3870	* tree-cfgcleanup.c: ... here.
3871
3872	* basic-block.h: Remove forward declaration of bb_ann_d.
3873
38742005-05-28  Jan Hubicka  <jh@suse.cz>
3875
3876	* tree-ssa-threadupdate.c: (create_edge_and_update_destination_phis):
3877	Update profile.
3878	* value-prof.c (tree_divmod_fixed_value_transform): Be more verbose in
3879	debug output.
3880	(tree_mod_subtract): Fix profile updating code.
3881	(tree_divmod_values_to_profile): Do not produce useless value profilers
3882	for divisions.
3883
38842005-05-28  Kazu Hirata  <kazu@cs.umass.edu>
3885
3886	* tree-ssa-dom.c (vrp_element_p): Define.
3887	(vrp_hash_elt): Change the type of records to
3888	VEC(vrp_element_p,heap).
3889	(vrp_free): New.
3890	(tree_ssa_dominator_optimize): Pass vrp_free to htab_create.
3891	Update uses of VRP records.
3892	(simplify_cond_and_lookup_avail_expr, record_range): Update
3893	uses of VRP records.
3894
3895	* tree-inline.c (cfun_stack): Change the type to
3896	VEC(function_p,heap).
3897	(push_cfun, pop_cfun): Use VEC instead of VARRAY.
3898
38992005-05-27  Ian Lance Taylor  <ian@airs.com>
3900
3901	* c-decl.c (add_stmt): Add C frontend specific version.
3902	(stmts_are_full_exprs_p): Remove.
3903	* c-common.h (STMT_IS_FULL_EXPR_P): Remove.
3904	(stmts_are_full_exprs_p): Don't declare.
3905	* c-semantics.c (add_stmt): Remove.
3906
39072005-05-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3908
3909	* config/mips/mips-protos.h (mips_declare_object): Add printf
3910	attribute.
3911	* config/mips/mips.c (mips_declare_object_name): Fix format
3912	argument.
3913
39142005-05-27  Roger Sayle  <roger@eyesopen.com>
3915
3916	* reg-stack.c (compensate_edge): Remove original prototype.
3917	(propagate_stack): New function to copy the stack layout
3918	at the start of a basic block from the layout at the end of
3919	one of its predecessors.
3920	(compensate_edge): Assume that both source and destination
3921	blocks have already had their stack layouts defined.
3922	(compensate_edges): Traverse all non-entry edges in the CFG
3923	and call compensate_edge on each in turn.
3924	(convert_regs_1): Change return type to void.  Call
3925	propagate_stack instead of compensate_edge.
3926	(convert_regs_2): Change return type to void.  Update call
3927	to convert_regs_1 to ignore the (now void) return value.
3928	(convert_regs): Update calls to convert_regs_2 to ignore
3929	the (now void) return value.  After all the basic blocks have
3930	been processed, call compensate_edges to actually emit new
3931	insns.
3932	(reg_to_stack): Initialize the aux info for each basic block
3933	with FOR_EACH_BB instead of which FOR_EACH_BB_REVERSE.
3934
39352005-05-28  Jan Hubicka  <jh@suse.cz>
3936
3937	* except.c (can_throw_internal_1, can_throw_external_1): Add 
3938	"is_resx" argument.
3939	(can_throw_external, can_throw_internal): Bring into sync wrt
3940	dealing resx.
3941	* except.h (can_throw_internal_1, can_throw_external_1): Update
3942	prototype.
3943	* tree-eh.c (tree_can_throw_internal, tree_can_throw_external):
3944	Deal properly with resx.
3945
39462005-05-27  Kazu Hirata  <kazu@cs.umass.edu>
3947
3948	* basic-block.h (basic_block_def): Add phi_nodes and
3949	predictions.  Remove tree_annotations.
3950	* predict.c (tree_predicted_by_p, tree_predict_edge,
3951	combine_predictions_for_bb): Adjust references to predictions.
3952	* tree-cfg.c (init_empty_tree_cfg, create_bb): Don't call
3953	create_block_annotation.
3954	(create_block_annotation, free_blocks_annotatios,
3955	clear_blocks_annotations): Remove.
3956	(dump_cfg_stats): Don't print out the memory spent on
3957	bb_ann_d.
3958	(delete_tree_cfg_annotations): Don't call free_blocks_annotations.
3959	* tree-flow-inline.h (bb_ann): Remove.
3960	(phi_nodes, set_phi_nodes): Update references to phi_nodes.
3961	* tree-flow.h (bb_ann_d): Remove.
3962	* tree-if-conv.c (process_phi_nodes): Update a reference to
3963	phi_nodes.
3964	* tree-phinodes.c (reserve_phi_args_for_new_edge,
3965	create_phi_node, remove_phi_node): Likewise.
3966	* tree-pretty-print.c (dump_generic_bb_buff): Don't call bb_ann.
3967	* tree-ssa-dom.c (threaded_blocks): New.
3968	(tree_ssa_dominator_optimize): Initialize, clear, and free
3969	threaded_blocks. Update a call to thread_through_all_blocks.
3970	(thread_across_edge): Use threaded_blocks instead of setting
3971	incoming_edge_threaded.
3972	* tree-ssa-threadupdate.c (threaded_through_all_blocks): Take
3973	a bitmap of blocks that are threaded through.
3974	* tree.h: Move the prototype of threaded_through_blocks to
3975	tree-flow.h.
3976
3977	* domwalk.c (walk_dominator_tree, init_walk_dominator_tree,
3978	fini_walk_dominator_tree): Use VEC instead of VARRAY.
3979	* domwalk.h (dom_walk_data): Change the type of
3980	block_data_stack and free_block_data to VEC(void_p,heap)*.
3981	* tree-ssa-dse.c (dse_initialize_block_local_data,
3982	dse_optimize_stmt, dse_record_phis, dse_finalize_block): Use
3983	VEC instead of VARRAY.
3984
39852005-05-27  Jan Hubicka  <jh@suse.cz>
3986
3987	* cgraph.c: Include tree-gimple.h
3988	(cgraph_edge): Rename expr to stmt.
3989	(cgraph_create_edge): Likewise.
3990	(cgraph_clone_node): Likewise.
3991	* cgraph.h (cgraph_node): Use call_stmt instead of call_expr.
3992	* cgraphunit.c (record_call_1): Rename to ...
3993	(record_reference): ... this one; do not build edges.
3994	(cgraph_varpool_analyze_pending_decls): Call record_reference directly.
3995	(current_basic_block): Kill.
3996	(cgraph_create_edges): Rewrite to work on gimple statements nicely.
3997	(verify_cgraph_node): Likewise.
3998	* tree-inline.c (copy_body_r): Do not mess up with cgraph edges.
3999	(copy_bb): Mess up with cgraph edges here; simplify EH handling.
4000	(copy_edges_for_bb): Simplify EH handling.
4001	(expand_call_inline): Pass statement to cgraph_edge and
4002	cgraph_create_edge.
4003
40042005-05-27  Richard Guenther  <rguenth@gcc.gnu.org>
4005
4006	* tree-inline.c (copy_body_r): Manually fold *& to deal
4007	with ADDR_EXPRs with mismatched types for now.
4008
4009	* gimplify.c (fold_indirect_ref_rhs): New function.
4010	(gimplify_modify_expr_rhs): Use it instead of pessimistic
4011	fold_indirect_ref.
4012
4013	* fold-const.c (fold_indirect_ref_1): Add type argument;
4014	make sure the resulting expression is of this type.
4015	(build_fold_indirect_ref, fold_indirect_ref): Adjust callers.
4016
40172005-05-27  Kazu Hirata  <kazu@cs.umass.edu>
4018
4019	PR tree-optimization/21658
4020	* tree-ssa-ccp.c (ccp_fold): Call fold_binary instead of
4021	fold_binary_to_constant.  Likewise, call fold_unary instead of
4022	fold_unary_to_constant.
4023
40242005-05-27  Nathan Sidwell  <nathan@codesourcery.com>
4025
4026	* vec.h: Implement integral type vector specialization.
4027	(VEC_T): Define a non-GTY structure.
4028	(VEC_T_GTY): Define a GTY structure.
4029	(VEC_TA): Rename to ...
4030	(VEC_TA_GTY): ... here.
4031	(DEF_VEC_I, DEF_VEC_ALLOC_I): New.
4032	(DEF_VEC_P, DEF_VEC_ALLOC_P): Adjust.
4033	(DEF_VEC_FUNC_P, DEF_VEC_ALLOC_FUNC_P): New, broken out of
4034	DEF_VEC_P and DEF_VEC_ALLOC_P.
4035	(DEF_VEC_O, DEF_VEC_ALLOC_O): Adjust.
4036	(DEF_VEC_FUNC_O, DEF_VEC_ALLOC_FUNC_O): New, broken out of
4037	DEF_VEC_O and DEF_VEC_ALLOC_O.
4038	* global.c: Use DEF_VEC_I, DEF_VEC_ALLOC_I.
4039	* lambda-code.c: Likewise.
4040	* tree-into-ssa.c: Likewise.
4041	* tree-ssa-live.c: Likewise.
4042
40432005-05-27  Kazu Hirata  <kazu@cs.umass.edu>
4044
4045	* tree-into-ssa.c (update_ssa): Ensure that the operand cache
4046	is up-to-date.
4047	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
4048	update_stmt_if_modified before calling update_ssa.
4049
40502005-05-27  Ralf Corsepius  <ralf.corsepius@rtems.org>
4051
4052	* config/rs6000/t-rtems: Remove roe multilib variant.
4053
40542005-05-26  Roger Sayle  <roger@eyesopen.com>
4055
4056	PR tree-optimization/9814
4057	* ifcvt.c (noce_emit_move_insn): If we fail to recognize the move
4058	instruction, add the necessary clobbers by re-expanding the RTL
4059	for arithmetic operations via optab.c's expand_unop/expand_binop.
4060	(noce_try_bitop): New function to optimize bit manipulation idioms
4061	of the form "if (x & C) x = x op C" and "if (!(x & C) x = x op C".
4062	(noce_process_if_block): Call noce_try_bitop.
4063
40642005-05-26  Roger Sayle  <roger@eyesopen.com>
4065
4066	* reg-stack.c (convert_regs_entry, convert_regs_exit,
4067	convert_regs_1, convert_regs_2, convert_regs): Delete prototypes.
4068	(reg_to_stack): Move to end of the file.  Initialize the per
4069	basic block information here, instead of...
4070	(convert_regs_entry): Here.
4071	(convert_regs): Change unused return type to void.
4072
40732005-05-27  Kazu Hirata  <kazu@cs.umass.edu>
4074
4075	* c-pch.c, timevar.c, timevar.h, unwind-compat.c,
4076	unwind-dw2-fde-compat.c, unwind-dw2-fde.c, config/mmix/mmix.h,
4077	config/rs6000/eabispe.h, config/rs6000/lynx.h,
4078	config/sh/elf.h, config/sh/symbian-pre.h,
4079	config/sparc/sparc-protos.h: Update copyright.
4080
40812005-05-26  Mike Stump  <mrs@apple.com>
4082
4083	* darwin.h (ASM_OUTPUT_LABELREF): Handle quoted non-lazy pointers
4084	for Objective-C++.
4085	
40862005-05-26  Richard Guenther  <rguenth@gcc.gnu.org>
4087
4088	* tree-ssa-forwprop.c (forward_propagate_addr_expr):
4089	See through ADDR_EXPR in finding place to propagate into.
4090
40912005-05-26  Kazu Hirata  <kazu@cs.umass.edu>
4092
4093	* c-common.c, c-parser.c, cfgbuild.c, cfghooks.c, cfghooks.h,
4094	cfgrtl.c, cgraphunit.c, ddg.c, expr.h, gcse.c, ggc-page.c,
4095	ggc-zone.c, gimplify.c, ipa-inline.c, longlong.h, targhooks.c,
4096	tree-flow-inline.h, tree-pass.h, tree-ssa-dse.c,
4097	tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c,
4098	tree-ssa-operands.c, tree-vect-analyze.c,
4099	tree-vect-transform.c, tree-vectorizer.c, tree.c,
4100	config/arm/arm.c, config/bfin/bfin.c, config/frv/frv.c,
4101	config/frv/frv.md, config/i386/i386.c, config/i386/sse.md,
4102	config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h,
4103	config/mcore/mcore.c, config/mips/mips.c, config/mips/mips.md,
4104	config/rs6000/darwin-ldouble.c, config/rs6000/rs6000.c,
4105	config/rs6000/rs6000.h, config/sh/sh.c, config/sh/sh.md,
4106	config/sh/ushmedia.h, config/sparc/sparc.c,
4107	config/sparc/sparc.md, config/stormy16/stormy-abi: Fix comment
4108	typos.  Follow spelling conventions.
4109	* doc/invoke.texi, doc/tm.texi, doc/tree-ssa.texi: Fix typos.
4110	Follow spelling conventions.
4111
41122005-05-26  David Ung  <davidu@mips.com>
4113
4114	* config/mips/mips.c (mips_use_ins_ext_p): New helper function
4115	that determines whether the MIPS32/64 R2 ext/ins should be used.
4116	* config/mips/mips.h (ISA_HAS_EXT_INS): New macro.
4117	* config/mips/mips.md (extzv): Changed predicate for operand to
4118	nonimmediate_operand. Add code to generate insn patterns for
4119	extzvsi and extzvdi.
4120	(extzv<mode>): New pattern to match mips32/64 r2 ext insn.
4121	(insv): Similarly for insertion.
4122	(insv<mode>): Similarly.
4123
41242005-05-26  Paolo Bonzini  <bonzini@gnu.org>
4125
4126	* simplify-rtx.c (avoid_constant_pool_reference): Support
4127	offsetted addresses in the constant pool.
4128
41292005-05-26  Paolo Bonzini  <bonzini@gnu.org>
4130
4131	* df.h (DF_SUBREGS, df_local_def_available_p, df_insn_modified_p): New.
4132	* df.c (DF_SUBREGS, df_local_def_available_p, df_insn_modified_p): New.
4133
41342005-05-26  Jakub Jelinek  <jakub@redhat.com>
4135
4136	PR target/21716
4137	* reg-stack.c (swap_rtx_condition): Don't crash if %ax user was not
4138	found in the basic block and last insn in the basic block is not
4139	INSN_P.  Remove explicit unspec numbers that are no longer valid
4140	from comments.
4141
41422005-05-26  Paolo Bonzini  <bonzini@gnu.org>
4143
4144	* tree-vect-transform.c (vectorizable_operation): Try word_mode
4145	vectorization if UNITS_PER_WORD == UNITS_PER_SIMD_WORD, even
4146	if a vector mode is available.
4147
41482005-05-25  Roger Sayle  <roger@eyesopen.com>
4149
4150	PR middle-end/21709
4151	* fold-const.c (const_binop): Check for division by zero during
4152	complex division.
4153
41542005-05-26  Ian Lance Taylor  <ian@airs.com>
4155
4156	* reload1.c (verify_initial_elim_offsets): Add braces to avoid
4157	having a declaration after a statement.
4158
41592005-05-26  Richard Sandiford  <rsandifo@redhat.com>
4160
4161	* opt-functions.awk (var_type): New function.
4162	(var_set): Use CLVC_STRING if var_type returns "const char *".
4163	* opth-gen.awk: Use var_type to find out the types of variables.
4164	Don't print comments above each "extern" definition.
4165	* optc-gen.awk: Use var_type in the same way.
4166	* opts.h (cl_var_cond): Rename to...
4167	(cl_var_type): ...this.  Add CLVC_STRING.
4168	(cl_option): Make "flag_var" a "void *" pointer.  Replace "var_cond"
4169	with "var_type".
4170	* opts.c (handle_option, option_enabled): Update after above name
4171	change.  Cast flag_var before using it.  Handle CLVC_STRING.
4172	
4173	* config/alpha/alpha.h (alpha_tls_size): Delete.
4174	* config/alpha/alpha.c (alpha_tls_size, alpha_cpu_string)
4175	(alpha_tune_string, alpha_tp_string, alpha_fprm_string)
4176	(alpha_fptm_string, alpha_mlat_string): Delete.
4177	(alpha_handle_option): Don't set the above variables here.  Use the
4178	integer argument to check the validity of -mtls-size=.
4179	* config/alpha/alpha.opt (mcpu=, mtune=, mfp-rounding-mode=)
4180	(mfp-trap-mode=, mtrap-precision=, mmemory-latency=): Add Var()s.
4181	(mtls-size=): Likewise.  Convert to a UInteger and initialize the
4182	variable to 32.
4183
4184	* config/arc/arc.c (arc_cpu_string, arc_text_string)
4185	(arc_data_string, arc_rodata_string): Delete.
4186	(arc_handle_option): Don't set the above variables here.
4187	* config/arc/arc.opt (mcpu=, mtext=, mdata=, mrodata=): Add Var()s
4188	and initialize them.
4189
4190	* config/arm/arm.c (target_fpu_name, target_fpe_name)
4191	(target_float_abi_name, target_abi_name, structure_size_string)
4192	(arm_pic_register_string): Delete.
4193	(arm_handle_option): Don't set the above variables here, except
4194	in the handling of -mhard-float and -msoft-float.
4195	* config/arm/arm.opt (mabi=, mfloat-abi=, mfp=, mfpe=, mfpu=)
4196	(mpic-register=, mstructure-size-boundary=): Add Var()s.
4197
4198	* config/avr/avr.c (avr_init_stack, avr_mcu_name, TARGET_HANDLE_OPTION)
4199	(avr_handle_option): Delete.
4200	* config/avr/avr.opt (mmcu=, minit-stack=): Add Var()s and initialize
4201	them.
4202
4203	* config/bfin/bfin.c (bfin_library_id): Delete.
4204	(bfin_handle_option): Don't set it.
4205	* config/bfin/bfin.opt (mshared-library-id=): Add Var().
4206
4207	* config/c4x/c4x.h (c4x_rpts_cycles): Delete.
4208	* config/c4x/c4x.c (c4x_rpts_cycles): Delete.
4209	(c4x_handle_option): Don't set c4x_rpts_cycles here.
4210	* config/c4x/c4x.opt (mrpts=): Add Var().
4211
4212	* config/cris/aout.h (CRIS_SUBTARGET_HANDLE_OPTION): Don't set
4213	cris_elinux_stacksize_str here.
4214	* config/cris/aout.opt (melinux-stacksize=): Add Var().
4215	* config/cris/cris.h (cris_max_stackframe_str, cris_cpu_str)
4216	(cris_tune_str, cris_elinux_stacksize_str): Delete.
4217	* config/cris/cris.c (cris_max_stackframe_str, cris_cpu_str)
4218	(cris_tune_str, cris_elinux_stacksize_str): Delete.
4219	(cris_handle_option): Don't set the above variables here.
4220	* config/cris/cris.opt (mcpu=, march=, mtune=, mmax-stackframe=)
4221	(max-stackframe=): Add Var()s.
4222
4223	* config/i386/i386.h (ix86_tune_string, ix86_arch_string): Delete.
4224	* config/i386/i386.c (ix86_cmodel_string, ix86_asm_string)
4225	(ix86_tls_dialect_string, ix86_tune_string, ix86_arch_string)
4226	(ix86_fpmath_string, ix86_regparm_string, ix86_align_loops_string)
4227	(ix86_align_jumps_string, ix86_preferred_stack_boundary_string)
4228	(ix86_branch_cost_string, ix86_align_funcs_string): Delete.
4229	(ix86_handle_option): Don't set the above variables here.
4230	* config/i386/i386.opt (malign-functions=, malign-jumps=)
4231	(malign-loops=, march=, masm=, mbranch-cost=, mcmodel=, mfpmath=)
4232	(mpreferred-stack-boundary=, mregparm=, mtls-dialect=, mtune=): Add
4233	Var()s.
4234
4235	* config/ia64/ia64.h (ia64_tls_size): Delete.
4236	* config/ia64/ia64.c (ia64_tls_size): Delete.
4237	(ia64_handle_option): Treat -mtls-size= as a UInteger option,
4238	reading the integer argument from the "value" parameter.  Don't
4239	set ia64_tls_size here.
4240	* config/ia64/ia64.opt (mtls-size=): Turn into a UInteger option.
4241	Add Var() and Init().
4242
4243	* config/m32r/m32r.h (m32r_cache_flush_func): Delete.
4244	(m32r_cache_flush_trap): Delete.
4245	* config/m32r/m32r.c (m32r_cache_flush_func): Delete.
4246	(m32r_cache_flush_trap): Delete.
4247	(m32r_handle_option): Don't set the above variables when handling
4248	-mflush-func= and -mflush-trap=.
4249	* config/m32r/m32r.opt (-mflush-func=, -mflush-trap=): Add Var()s
4250	and Init()s.
4251
4252	* config/mips/mips.h (mips_cache_flush_func): Delete.
4253	* config/mips/mips.c (mips_arch_string, mips_tune_string)
4254	(mips_cache_flush_func): Delete.
4255	(mips_handle_option): Don't set the above variables when handling
4256	-march=, -mtune= and -mflush-func=.
4257	* config/mips/mips.opt (march=, mflush-func=, mtune=): Add Var()s.
4258
4259	* config/s390/s390.c (s390_arch_string): Delete.
4260	(s390_handle_option): Don't set it here.
4261	* config/s390/s390.opt (march=): Add Var().
4262
4263	* config/sparc/sparc.h (sparc_cmodel_string): Delete.
4264	* config/sparc/sparc.c (sparc_cmodel_string): Delete.
4265	(sparc_handle_option): Don't set it here.
4266	* config/sparc/sparc.opt (mcmodel=): Add Var().
4267
42682005-05-25  Roger Sayle  <roger@eyesopen.com>
4269
4270	* convert.c (convert_to_integer) <POINTER_TYPE>: Avoid recursive
4271	call to convert_to_integer by building the NOP_EXPR directly.
4272
42732005-05-25  Richard Sandiford  <rsandifo@redhat.com>
4274
4275	* config/rs6000/rs6000.opt (mprioritize-restricted-insns=): Fix typo.
4276
42772005-05-25  Daniel Berlin  <dberlin@dberlin.org>
4278	    Jeff Law  <law@redhat.com>
4279
4280	* tree-cfg.c (verify_expr, case ADDR_EXPR): Verify invariant,
4281	constant and side_effects of the ADDR_EXPR are consistent.
4282
4283	* tree-nested.c (convert_local_reference): Set CURRENT_FUNCTION_DECL
4284	appropriately around calls to recompute_tree_invarant_for_addr_expr.
4285
42862005-05-25  Ulrich Weigand  <uweigand@de.ibm.com>
4287
4288	* config/s390/s390.c (GP_ARG_NUM_REG, FP_ARG_NUM_REG): New defines.
4289	(s390_function_arg, s390_gimplify_va_arg): Use them.
4290	(s390_register_info): Save only required subset of argument
4291	registers into save area for va_list.
4292	(s390_va_start): Initialize only required elements of va_list struct.
4293	(s390_build_builtin_va_list): Set va_list_[gf]pr_counter_field.
4294
42952005-05-25  Ulrich Weigand  <uweigand@de.ibm.com>
4296
4297	* reload1.c (verify_initial_elim_offsets): Return boolean status
4298	instead of aborting.
4299	(reload): Adapt verify_initial_elim_offsets call site.  Restart
4300	main loop if some initial elimination offsets changed.
4301
43022005-05-25  Adam Nemet  <anemet@lnxw.com>
4303
4304	* config/rs6000/lynx.h (CC1_SPEC): Use -maix-struct-return instead
4305	of -mno-svr4-struct-return.
4306
43072005-05-25  Daniel Berlin  <dberlin@dberlin.org>
4308
4309	Fix PR tree-optimization/21705
4310	
4311	* tree-ssa-pre.c (in_fre): New static variable.
4312	(create_value_expr_from): Recursively value number reference ops
4313	in argument lists.
4314	(can_value_number_call): Temporary restrict only exists for
4315	PRE, not FRE.
4316
43172005-05-25  Kazu Hirata  <kazu@cs.umass.edu>
4318
4319	* tree-into-ssa.c (rewrite_into_ssa, update_ssa): Replace
4320	sizeof (bitmap *) with sizeof (bitmap).
4321
43222005-05-25  Daniel Berlin <dberlin@dberlin.org>
4323
4324	* lambda-code.c (perfect_nestify): Call update_stmt on the exit
4325	condition.
4326
43272005-05-25  Adrian Straetling  <straetling@de.ibm.com>
4328
4329	* config/s390/s390.c (TARGET_INSN_VALID_WITHIN_DOLOOP): Set to
4330	hook_bool_rtx_true.
4331
43322005-05-25  Jan Hubicka  <jh@suse.cz>
4333
4334	* Makefile.in (ipa-inline.o): Add COEVERAGE_H dependency.
4335	* cgraph.c (cgraph_create_node): Reset estimated_growth.
4336	* cgraph.h (cgraph_global_info): Add estimated_growth.
4337	* ipa-inline.c: Include coverage.h
4338	(max_insns, max_count): New static variables.
4339	(cgraph_estimate_size_after_inlining): Cache the result.
4340	(cgraph_estimate_growth):
4341	* passes.c (rest_of_clean_state): Kill coverage_end_function.
4342	* timevar.def (TV_INLINE_HEURISTICS): New timevar.
4343	* tree-optimize.c (init_tree_optimization_passes): Move profiling before
4344	inlining.
4345	(ipa_passes): Initialize bitmaps.
4346
43472005-05-25  Adrian Straetling  <straetling@de.ibm.com>
4348
4349	* loop-doloop.c: Include "target.h". 
4350	  (doloop_valid_p): Move tests to function in targhooks.c.
4351	* target.h (struct gcc_target): New target hook
4352	  "insn_valid_within_doloop".
4353	* target-def.h: Define default value for "insn_valid_within_doloop".
4354	  (TARGET_INITIALIZER): Insert new target hook into initializer.
4355	* targhooks.c (default_insn_valid_within_doloop): New function.
4356	* targhooks.h (default_insn_valid_within_doloop): Declare.
4357	* hooks.c (hook_bool_rtx_true): New function.
4358	* hooks.h (hook_bool_rtx_true): Declare.
4359	* doc/tm.texi: Add documentation for new target hook.
4360
43612005-05-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
4362
4363	PR target/21412
4364	* config/sparc/sparc.h (SPARC_SYMBOL_REF_TLS_P): New macro
4365	* config/sparc/sparc-protos.h (tls_symbolic_operand): Delete.
4366	(sparc_tls_referenced_p): New prototype.
4367	* config/sparc/sparc.c (tls_symbolic_operand): Delete.
4368	(sparc_expand_move): Look for TLS addresses with constant offsets.
4369	(legitimate_constant_p): Use SPARC_SYMBOL_REF_TLS_P instead of
4370	tls_symbolic_operand.
4371	(legitimate_pic_operand_p): Likewise.
4372	(legitimate_address_p): Likewise.
4373	(legitimize_address): Likewise.
4374	(sparc_tls_symbol_ref_1): New function.
4375	(sparc_tls_referenced_p): New function.
4376	* config/sparc/predicates.md (tgd_symbolic_operand): Use
4377	SYMBOL_REF_TLS_MODEL instead of tls_symbolic_operand.
4378	(tld_symbolic_operand): Likewise.
4379	(tie_symbolic_operand): Likewise.
4380	(tle_symbolic_operand): Likewise.
4381
43822005-05-24  DJ Delorie  <dj@redhat.com>
4383	
4384	* common.opt (-Wattributes): New.  Default true.
4385	* doc/invoke.texi (-Wno-attributes): Document.
4386	
4387	* attribs.c (decl_attributes): Move warning control from if() to
4388	warning(OPT_*).
4389	* c-common.c (handle_packed_attribute): Likewise.
4390	(handle_nocommon_attribute): Likewise.
4391	(handle_common_attribute): Likewise.
4392	(handle_noreturn_attribute): Likewise.
4393	(handle_noinline_attribute): Likewise.
4394	(handle_always_inline_attribute): Likewise.
4395	(handle_used_attribute): Likewise.
4396	(handle_unused_attribute): Likewise.
4397	(handle_const_attribute): Likewise.
4398	(handle_transparent_union_attribute): Likewise.
4399	(handle_constructor_attribute): Likewise.
4400	(handle_destructor_attribute): Likewise.
4401	(handle_mode_attribute): Likewise.
4402	(handle_alias_attribute): Likewise.
4403	(handle_visibility_attribute): Likewise.
4404	(handle_tls_model_attribute): Likewise.
4405	(handle_malloc_attribute): Likewise.
4406	(handle_returns_twice_attribute): Likewise.
4407	(handle_pure_attribute): Likewise.
4408	(handle_deprecated_attribute): Likewise.
4409	(handle_vector_size_attribute): Likewise.
4410	(handle_nothrow_attribute): Likewise.
4411	(handle_cleanup_attribute): Likewise.
4412	(handle_warn_unused_result_attribute): Likewise.
4413	(handle_sentinel_attribute): Likewise.
4414	* c-decl.c (diagnose_mismatched_decls): Likewise.
4415	(start_decl): Likewise.
4416	(grokdeclarator): Likewise.
4417	(start_function): Likewise.
4418	* c-format.c (check_function_format): Likewise.
4419	* stor-layout.c (place_field): Likewise.
4420	(finalize_record_size): Likewise.
4421	* tree.c (handle_dll_attribute)): Likewise.
4422	* varasm.c (default_assemble_visibility): Likewise.
4423	* config/darwin.c (darwin_handle_weak_import_attribute): Likewise.
4424	(darwin_assemble_visibility): Likewise.
4425	* config/arc/arc.c (arc_handle_interrupt_attribute): Likewise.
4426	* config/arm/arm.c (arm_handle_fndecl_attribute): Likewise.
4427	(arm_handle_isr_attribute): Likewise.
4428	* config/avr/avr.c (avr_handle_progmem_attribute): Likewise.
4429	(avr_handle_fndecl_attribute): Likewise.
4430	* config/bfin/bfin.c (handle_int_attribute): Likewise.
4431	* config/c4x/c4x.c (c4x_handle_fntype_attribute): Likewise.
4432	* config/h8300/h8300.c (h8300_handle_fndecl_attribute): Likewise.
4433	(h8300_handle_eightbit_data_attribute): Likewise.
4434	(h8300_handle_tiny_data_attribute): Likewise.
4435	* config/i386/i386.c (ix86_handle_cdecl_attribute): Likewise.
4436	(ix86_handle_regparm_attribute): Likewise.
4437	(ix86_handle_struct_attribute): Likewise.
4438	* config/i386/winnt.c (ix86_handle_shared_attribute): Likewise.
4439	(i386_pe_encode_section_info): Likewise.
4440	* config/ia64/ia64.c (ia64_handle_model_attribute): Likewise.
4441	* config/ip2k/ip2k.c (ip2k_handle_progmem_attribute): Likewise.
4442	(ip2k_handle_fndecl_attribute): Likewise.
4443	* config/m32r/m32r.c (m32r_handle_model_attribute): Likewise.
4444	* config/m68hc11/m68hc11 (m68hc11_handle_page0_attribute): Likewise.
4445	(m68hc11_handle_fntype_attribute): Likewise.
4446	(m68hc11_encode_section_info): Likewise.
4447	* config/m68k/m68k.c (m68k_handle_fndecl_attribute): Likewise.
4448	* config/mcore/mcore.c (mcore_handle_naked_attribute): Likewise.
4449	* config/ns32k/ns32k.c (ns32k_handle_fntype_attribute): Likewise.
4450	* config/rs6000/rs6000.c (rs6000_handle_longcall_attribute): Likewise.
4451	* config/sh/sh.c (sh_handle_interrupt_handler_attribute): Likewise.
4452	(sh_handle_sp_switch_attribute): Likewise.
4453	(sh_handle_trap_exit_attribute): Likewise.
4454	* config/sh/symbian.c (sh_symbian_dllimport_p): Likewise.
4455	(sh_symbian_handle_dll_attribute): Likewise.
4456	* config/stormy16/stormy16.c (xstormy16_handle_interrupt_attribute): Likewise.
4457	(xstormy16_handle_below100_attribute): Likewise.
4458	* config/v850/v850.c (v850_handle_interrupt_attribute): Likewise.
4459
4460	* c-common.c (unsigned_conversion_warning): Move warning control
4461	from if() to warning(OPT_*).
4462	(c_common_truthvalue_conversion): Likewise.
4463	(c_do_switch_warnings): Likewise.
4464	* c-decl.c (diagnose_mismatched_decls): Likewise.
4465	(diagnose_mismatched_decls): Likewise.
4466	(define_label): Likewise.
4467	(grokdeclarator): Likewise.
4468	* c-format.c (check_format_info): Likewise.
4469	* c-lex.c (interpret_integer): Likwise.
4470	(lex_string): Likewise.
4471	* c-opts.c (c_common_post_options): Likewise.
4472	* c-parser.c (c_parser_unary_expression): Likewise.
4473	* c-pragma.c (handle_pragma_redefine_extname): Likewise.
4474	(handle_pragma_extern_prefix): Likewise.
4475	* c-typeck.c (build_binary_op): Likewise.
4476	* gcse.c (is_too_expensive): Likewise.
4477	* opts.c (decode_options): Likewise.
4478	* stor-layout.c (place_field): Likewise.
4479	* tree-cfg.c (remove_bb): Likewise.
4480
4481	* c.opt (-Wreturn-type): Add Var(warn_return_type).
4482	* flags.h (warn_return_type): Remove.
4483	* toplev.c (warn_return_type): Likewise.
4484
44852005-05-24  Kelley Cook  <kcook@gcc.gnu.org>
4486
4487	* configure.ac: Don't use gcc_AC_C_LONG_LONG.  Check for
4488	existence of long long and __int64 before determining their size.
4489	* aclocal.m4: Delete gcc_AC_C_LONG_LONG.
4490	* configure, config.h.in:  Regenerate.
4491
44922005-05-24  Kelley Cook  <kcook@gcc.gnu.org>
4493
4494	* configure: Regenerate.
4495
44962005-05-24  Ziemowit Laski  <zlaski@apple.com>
4497
4498	* c-common.h (objc_comptypes): Remove prototype.
4499	(objc_compare_types): New prototype.
4500	(objc_volatilized_decl): Likewise.
4501	(objc_type_quals_match): Likewise.
4502	* c-decl.c (objc_mark_locals_volatile): Streamline by calling
4503	objc_volatilize_decl().
4504	* c-typeck.c (comp_target_types): Remove third parameter; do
4505	not call objc_comptypes().
4506	(comptypes): Remove calls to objc_comptypes().
4507	(build_function_call): Extend compatible prototype check to ObjC.
4508	(build_conditional_expr): Adjust call to comp_target_types().
4509	(convert_for_assignment): Call objc_compare_types() instead of
4510	objc_comptypes(); adjust calls to comp_target_types(); call
4511	objc_type_quals_match() before issuing qualifier mismatch
4512	warnings.
4513	(build_binary_op): Call objc_compare_types() before issuing
4514	pointer mismatch warnings; adjust calls to
4515	comp_target_types().
4516	* stub-objc.c (objc_comptypes): Remove stub.
4517	(objc_compare_types): New stub.
4518	(objc_volatilized_decl): Likewise.
4519	(objc_type_quals_match): Likewise.
4520
45212005-05-24  Paolo Carlini  <pcarlini@suse.de>
4522
4523	* config/ia64/ia64intrin.h: Define nothing for C++:
4524	overloaded builtins have been ported to C++.
4525
45262005-05-24  Jeff Law  <law@redhat.com>
4527
4528	* tree-nested.c (build_addr): New "context" argument.  Temporarily
4529	set current_function_decl around the call to build the ADDR_EXPR.
4530	(get_static_chain): Pass proper context to build_addr.
4531	(convert_nl_goto_reference): Likewise.
4532	(convert_tramp_reference): Likewise.
4533	(final_nesting_tree_1): Likewise.
4534	* tree-profile.c (tree_gen_interval_profiler): Likewise.
4535	(tree_gen_pow2_profiler): Likewise.
4536	(tree_gen_one_value_profiler): Likewise.
4537	* tree-ssa-loop-ivopts.c (build_addr_strip_iref): Likewise.
4538	* tree.h (build_addr): Update prototype.
4539
45402005-05-24  Kazu Hirata  <kazu@cs.umass.edu>
4541
4542	* tree-flow.h (bb_ann_d): Remove has_escape_site.
4543	* tree-ssa-alias.c (compute_points_to_addr_escape): Don't
4544	write to has_escape_site.
4545
45462005-05-24  Jeff Law  <law@redhat.com>
4547
4548	* Makefile.in (tree-cfg.o): Depend on tree-ssa-propagate.h.
4549	* tree-cfg.c: Include tree-ssa-propagate.h.
4550	(replace_uses_by): Call recompute_tree_invarant_for_addr_expr as
4551	needed.
4552
45532005-05-24  Nick Clifton  <nickc@redhat.com>
4554
4555	* config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Define
4556	__NO_FPRS__ when 'f' class registers will not be available. 
4557
45582005-05-24  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
4559
4560	* config/m32r/m32r.c (m32r_expand_block_move):  Return 0 if
4561	nothing was done.
4562	* config/m32r/m32r.md (movmemsi):  If m32r_expand_block_move did
4563	nothing then FAIL.
4564	* config/m32r/m32r/m32r-protos.h  (m32r_expand_block_move): Update
4565	prototype.
4566
45672005-05-23  Jeff Law  <law@redhat.com>
4568
4569	* tree-ssa-dom.c (cprop_into_stmt): Do not call
4570	recompute_tree_invariant_for_addr_expr here.
4571	(optimize_stmt): Call it here instead and do so if anything
4572	at all has changed in the statement and the RHS is an ADDR_EXPR.
4573	* tree-ssa-forwprop.c (tidy_after_forward_propagate_addr): If
4574	needed, call recompute_tree_invariant_for_addr_expr.
4575	* tree-ssa-propagate.c (substitute_and_fold): Call
4576	recompute_tree_invariant_for_addr_expr as needed.
4577
45782005-05-23  Andreas Krebbel  <krebbel1@de.ibm.com>
4579
4580	* config/s390/s390.c (s390_optimize_prologue): Don't replace an insn
4581	saving less registers than the replacement.
4582
45832005-05-23  Jan Hubicka  <jh@suse.cz>
4584
4585	* tree-flow.h (stmt_ann_d): Kill GTY ((skip)) mark on BB.
4586
45872005-05-23  Eric Botcazou  <ebotcazou@libertysurf.fr>
4588
4589	* config/sparc/sparc-protos.h (sparc_expand_move): New prototype.
4590	* config/sparc/sparc.c (sparc_expand_move): New function.
4591	(sparc_emit_set_const64): Rewrite assert condition on entry.
4592	(legitimate_constant_p) <CONST_VECTOR>: New case.
4593	(legitimize_pic_address): Use TARGET_ARCH64 to select the mode.
4594	* config/sparc/sparc.md (movqi, movhi, movsi, movdi, movV32,
4595	movV64, movtf): Use nonimmediate_operand for the first operand.
4596	Rewrite.  Only invoke sparc_expand_move.
4597	* config/sparc/predicates.md (input_operand): Reorder tests.
4598
45992005-05-23  Jan Beulich  <jbeulich@novell.com>
4600
4601	* gthr-posix.h (__gthread_recursive_mutex_init_function): Add
4602	missing return statement.
4603
46042005-05-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
4605
4606	* config/sparc/sparc.c (sparc_emit_float_lib_cmp): Use
4607	emit_move_insn for moves to TFmode stack slots.
4608
46092005-05-21  Richard Guenther  <rguenth@gcc.gnu.org>
4610
4611	* tree-stdarg.c (execute_optimize_stdarg): Handle references
4612	to va_list of the form &va[0].
4613
46142005-05-20  Jan Hubicka  <jh@suse.cz>
4615
4616	* Makefile.in (insn-emit.o): Add basic-block.h dependency.
4617	* genemit.c (main): Make insn-emit to include basic-block.h too.
4618
46192005-05-20  Jan Hubicka  <jh@suse.cz>
4620
4621	* cgraphunit.c (cgraph_expand_function): Force function being lowered.
4622
46232005-05-19  Richard Henderson  <rth@redhat.com>
4624
4625	* config/alpha/alpha.c (emit_unlikely_jump, emit_load_locked,
4626	emit_store_conditional): Split out from ...
4627	(alpha_split_atomic_op): ... here.
4628	(alpha_split_compare_and_swap): New; extract from .md file.
4629	(alpha_split_lock_test_and_set): Likewise.
4630	* config/alpha/alpha-protos.h: Update.
4631	* config/alpha/sync.md (sync_compare_and_swap<I48MODE>): Move
4632	split code into alpha.c.
4633	(sync_lock_test_and_set<I48MODE>): Likewise.
4634
46352005-05-19  Richard Henderson  <rth@redhat.com>
4636
4637	* unwind.h, unwind-pe.h: Revert gcc_unreachable change of 05-17.
4638
46392005-05-19  Richard Henderson  <rth@redhat.com>
4640
4641	* config/i386/sse.md (mulv4si3): Use all register inputs.
4642	(mulv2di3): Likewise.
4643
46442005-05-19  Richard Guenther  <rguenth@gcc.gnu.org>
4645
4646	* tree-ssa-loop-ivopts.c (determine_base_object): Use
4647	build_fold_addr_expr to generate trees of correct type.
4648	Use fold_buildN if possible.
4649
46502005-05-19  Jan Hubicka  <jh@suse.cz>
4651
4652	* basic-block.h (REG_BR_PROB_BASE): Define.
4653	* cgraph.c (cgraph_create_edge): Initialize loop_nest and count.
4654	(dump_cgraph_node): Dump count.
4655	(cgraph_clone_edge): Rescale counts.
4656	(cgraph_clone_node): Likewise.
4657	* cgraph.h: Include basic-block.h
4658	(cgraph_node): Add count.
4659	(cgraph_edge): Add count and loop_nest.
4660	(cgraph_node, cgraph_edge, cgraph_clone_edge, cgraph_clone_node):
4661	Update prototypes.
4662	* cgraphunit.c: Kill now redundant inlining comment.
4663	(cgraph_create_edges): Make static, maintain current basic block;
4664	fix pasto.
4665	(record_call_1): Fill in new fields.
4666	* ipa-inline.c (cgraph_clone_inlined_nodes): Update call of
4667	cgraph_clone_node.
4668	(cgraph_decide_recursive_inlining): Likewise.
4669	* rtl.h (REG_BR_PROB_BASE): Kill.
4670	* tree-inline.c (copy_body_r): Update call of cgraph_clone_edge.
4671	(expand_call_inline): Update call of cgraph_create_edge.
4672	* tree-optimize.c (tree_rest_of_compilation): Likewise.
4673
46742005-05-19  Nick Clifton  <nickc@redhat.com>
4675
4676	* config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Use the
4677	new rs6000_explicit_options structure.
4678
46792005-05-19  Richard Henderson  <rth@redhat.com>
4680
4681	PR target/21390
4682	* config/alpha/alpha.c (alpha_emit_conditional_branch): Move 
4683	TFmode code swapping ...
4684	(alpha_emit_xfloating_compare): ... here.
4685	(alpha_emit_setcc): Update to match.
4686	(alpha_lookup_xfloating_lib_func): Assert TARGET_HAS_XFLOATING_LIBS.
4687
46882005-05-19  Richard Henderson  <rth@redhat.com>
4689
4690	PR target/21657
4691	* config/ia64/ia64.c (ia64_expand_tls_address): Remove extra
4692	memory indirection in local-dynamic case.
4693
46942005-05-18  Jie Zhang  <jie.zhang@analog.com>
4695	    Bernd Schmidt  <bernd.schmidt@analog.com>
4696
4697	* config/bfin/bfin.c (branch_dest): Add comment why it's
4698	necessary.
4699	* config/bfin/bfin.md (attr "length" default): Change the offset of
4700	forward conditional branch of length 4 from 4096 to 4092.
4701
47022005-05-19  Jan Beulich  <jbeulich@novell.com>
4703
4704	* unwind-compat.c: Include tconfig.h and tsystem.h.
4705	* unwind-dw2-fde-compat.c: Likewise.
4706
47072005-05-18  Richard Henderson  <rth@redhat.com>
4708
4709	PR 21541
4710	* ifcvt.c (noce_process_if_block): Avoid conversion when the
4711	memory destination is readonly.
4712
47132005-05-18  Richard Henderson  <rth@redhat.com>
4714
4715	PR 21541
4716	* tree-ssa-operands.c (opf_non_specific): New.
4717	(get_asm_expr_operands): Set it.
4718	(add_call_clobber_ops, add_call_read_ops): Likewise.
4719	(add_stmt_operand): Test it instead of opf_kill_def when
4720	considering unmodifiable variables.
4721
4722	* tree-ssa-operands.c (get_expr_operands): Fix exact test.
4723
47242005-05-19  Kazu Hirata  <kazu@cs.umass.edu>
4725
4726	* cfgexpand.c, tree-cfg.c, tree-inline.c, tree-optimize.c,
4727	tree-ssa-forwprop.c: Fix comment typos.
4728	* doc/invoke.texi: Fix a typo.
4729
47302005-05-18  Richard Henderson  <rth@redhat.com>
4731
4732	* config.gcc (powerpc-*-linux*): Include linux64.opt when
4733	including linux64.h.
4734
47352005-05-18  Richard Henderson  <rth@redhat.com>
4736
4737	* tree-cfg.c (pass_remove_useless): Revert last change.
4738	* tree-optimize.c (init_tree_optimization_passes): Initialize
4739	all_lowering_passes with PROP_gimple_any.
4740
47412005-05-18  Devang Patel  <dpatel@apple.com>
4742
4743	* config/rs6000/rs6000.md (insvsi_internal1): Subtract shift from
4744	the mask end.
4745	
47462005-05-18  Richard Henderson  <rth@redhat.com>
4747
4748	* tree-ssa-forwprop.c (cfg_changed): New.
4749	(tidy_after_forward_propagate_addr): New.
4750	(forward_propagate_addr_expr): Use it, and fold_stmt_inplace.
4751	(forward_propagate_addr_into_variable_array_index): Likewise.
4752	(tree_ssa_forward_propagate_single_use_vars): Cleanup cfg if
4753	edges were removed.
4754
47552005-05-18  Geoffrey Keating  <geoffk@apple.com>
4756
4757	* dummy-checksum.c: New.
4758	* genchecksum.c: New.
4759	* c.opt (print_pch_checksum): New flag.
4760	* c-pch.c (struct c_pch_validity): Make much shorter.
4761	(no_checksum): New.
4762	(host_machine): Remove.
4763	(target_machine): Remove.
4764	(get_ident): Change PCH version number.
4765	(pch_init): When -fverbose-asm, print out the compiler fingerprint.
4766	Don't put triplets or version string in PCH validity data.
4767	Do put the compiler checksum in the validity data.
4768	(c_common_valid_pch): Don't check triplets or version string.  Do
4769	check checksum.
4770	(c_common_print_pch_checksum): New.
4771	* c-opts.c (c_common_handle_option): Add OPT_print_pch_checksum.
4772	Print fingerprint with -v.
4773	* c-common.h (c_common_print_pch_checksum): New.
4774	(executable_checksum): New.
4775	* Makefile.in (STAGEMOVESTUFF): Add cc1*-dummy, *-checksum.c.
4776	(cc1-dummy): New rule.
4777	(cc1-checksum.c): New rule.
4778	(cc1-checksum.o): New rule.
4779	(cc1): Add checksum support.
4780	(build/genchecksum): New.
4781	(build/genchecksum.o): New.
4782	(dummy-checksum.o): New.
4783	(genobjnames): Add genchecksum.o.
4784	(mostlyclean): Remove *-checksum.c.
4785	(gnucompare): Add libgcc to list of directories checked.
4786	Make comparison problems in libgcc/ and with checksum files only
4787	be warnings.
4788	* doc/invoke.texi (Precompiled Headers): Remove caution.
4789	Document that it must be the exact same binary.  Add a few
4790	known-safe flags to the list.
4791
4792	* rs6000/predicates.md (fix_trunc_dest_operand): New.
4793	* rs6000/rs6000.md (fix_truncdfsi2): Use fix_trunc_dest_operand.
4794	Check that a memory operand is valid before trying to use it.
4795	
4796	* tree-cfg.c (pass_remove_useless): This pass works on trees.
4797
47982005-05-18  Richard Guenther  <rguenth@gcc.gnu.org>
4799
4800	* tree.c (build1_stat): Don't try to handle two-operand
4801	tree codes.
4802
48032005-05-18  Richard Sandiford  <rsandifo@redhat.com>
4804
4805	* config.gcc (sh*-*-*): Define SUPPORT_* macros to 1.
4806	* config/sh/sh.h: Update mask names throughout.
4807	(target_flags, ISIZE_BIT, DALIGN_BIT, SH1_BIT, SH2_BIT, SH3_BIT)
4808	(SH_E_BIT, HARD_SH4_BIT, FPU_SINGLE_BIT, SH4_BIT, SH4A_BIT, FMOVD_BIT)
4809	(SH5_BIT, SPACE_BIT, BIGTABLE_BIT, RELAX_BIT, USERMODE_BIT)
4810	(HITACHI_BIT, NOMACSAVE_BIT, PREFERGOT_BIT, PADSTRUCT_BIT)
4811	(LITTLE_ENDIAN_BIT, IEEE_BIT, SAVE_ALL_TR_BIT, HARD_SH2A_BIT)
4812	(HARD_SH2A_DOUBLE_BIT, INDEXED_ADDRESS_BIT, PT_FIXED_BIT)
4813	(INVALID_SYMBOLS_BIT, ADJUST_UNROLL_BIT, TARGET_DUMPISIZE)
4814	(TARGET_ALIGN_DOUBLE, TARGET_SH1, TARGET_SH2, TARGET_SH3)
4815	(TARGET_HARD_SH4, TARGET_FPU_SINGLE, TARGET_SH5, TARGET_FMOVD)
4816	(TARGET_IEEE, TARGET_SMALLCODE, TARGET_BIGTABLE, TARGET_RELAX)
4817	(TARGET_HITACHI, TARGET_NOMACSAVE, TARGET_PADSTRUCT)
4818	(TARGET_LITTLE_ENDIAN, TARGET_USERMODE, TARGET_PREFERGOT)
4819	(TARGET_SAVE_ALL_TARGET_REGS, TARGET_ALLOW_INDEXED_ADDRESS)
4820	(TARGET_PT_FIXED, TARGET_INVALID_SYMBOLS, TARGET_ADJUST_UNROLL)
4821	(TARGET_SWITCH_SH1, TARGET_SWITCH_SH2, TARGET_SWITCH_SH2E)
4822	(TARGET_SWITCH_SH2A, TARGET_SWITCH_SH2A_SINGLE_ONLY)
4823	(TARGET_SWITCH_SH2A_SINGLE, TARGET_SWITCH_SH2A_NOFPU)
4824	(TARGET_SWITCH_SH3, TARGET_SWITCH_SH3E, TARGET_SWITCH_SH4_SINGLE_ONLY)
4825	(TARGET_SWITCH_SH4_SINGLE, TARGET_SWITCH_SH4_NOFPU, TARGET_SWITCH_SH4)
4826	(TARGET_SWITCH_SH4A, TARGET_SWITCH_SH4A_SINGLE_ONLY)
4827	(TARGET_SWITCH_SH4A_SINGLE, TARGET_SWITCH_SH4A_NOFPU)
4828	(TARGET_SWITCH_SH4AL, TARGET_SWITCH_SH5_64MEDIA)
4829	(TARGET_SWITCH_SH5_64MEDIA_NOFPU, TARGET_SWITCHES_SH5_32MEDIA)
4830	(TARGET_SWITCHES_SH5_32MEDIA_NOFPU, TARGET_SWITCH_SH5_32_ANY_EXTRA)
4831	(TARGET_SWITCH_SH5_MEDIA_ANY_EXTRA, TARGET_SWITCHES)
4832	(SUBTARGET_SWITCHES): Delete.
4833	(TARGET_SH2E, TARGET_SH2A, TARGET_SH2A_SINGLE, TARGET_SH2A_DOUBLE)
4834	(TARGET_SH3E, TARGET_CACHE32, TARGET_SUPERSCALAR, TARGET_HARVARD)
4835	(TARGET_FPU_DOUBLE, TARGET_SH4A_ARCH, TARGET_SHMEDIA32)
4836	(TARGET_SHMEDIA64): Redefine using other TARGET_* macros.
4837	(TARGET_SH4): Undefine options.h definition and check MASK_SH1 as well.
4838	(SUPPORT_SH1, SUPPORT_SH2E, SUPPORT_SH4, SUPPORT_SH4_SINGLE)
4839	(SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Make numeric.
4840	(SUPPORT_SH2): Define to 1 if SUPPORT_SH1.
4841	(SUPPORT_SH3): Likewise SUPPORT_SH2.
4842	(SUPPORT_SH4_NOFPU): Likewise SUPPORT_SH3.
4843	(SUPPORT_SH4A_NOFPU, SUPPORT_SH4AL, SUPPORT_SH2A_NOFPU): Likewise
4844	SUPPORT_SH4_NOFPU.
4845	(SUPPORT_SH3E): Likewise SUPPORT_SH2E.
4846	(SUPPORT_SH4_SINGLE_ONLY, SUPPORT_SH4A_SINGLE_ONLY)
4847	(SUPPORT_SH2A_SINGLE_ONLY): Likewise SUPPORT_SH3E.
4848	(SUPPORT_SH4A): Likewise SUPPORT_SH4.
4849	(SUPPORT_SH4A_SINGLE): Likewise SUPPORT_SH4_SINGLE.
4850	(SUPPORT_SH5_32MEDIA): Likewise SUPPORT_SH5_COMPACT.
4851	(SUPPORT_SH5_32MEDIA_NOFPU): Likewise SUPPORT_SH5_COMPACT_NOFPU.
4852	(SUPPORT_ANY_SH5_32MEDIA, SUPPORT_ANY_SH5_64MEDIA)
4853	(SUPPORT_ANY_SH5): New macros.
4854	(TARGET_NONE): Replace with...
4855	(MASK_ARCH): ...this new macro.
4856	* config/sh/elf.h: Update mask names
4857	* config/sh/linux.h: Likewise.
4858	* config/sh/little.h: Likewise.
4859	* config/sh/netbsd-elf.h: Likewise.
4860	* config/sh/symbian-pre.h: Likewise.
4861	* config/sh/sh.c (sh_handle_option): New function.
4862	(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
4863	(calc_live_regs): Use MASK_FPU_SINGLE instead of FPU_SINGLE_BIT.
4864	(sh_target_switches, target_switches): Delete.
4865	(sh_pch_valid_p): Check for specific differences in the target_flags
4866	settings.
4867	(sh_init_cumulative_args): Use MASK_HITACHI instead of HITACHI_BIT.
4868	* config/sh/sh.opt: New file.
4869
48702005-05-18  Richard Henderson  <rth@redhat.com>
4871
4872	PR target/21632
4873	* config/ia64/ia64.c (ia64_extra_constraint) <'T'>: Use
4874	small_addr_symbolic_operand.
4875
48762005-05-18  Jeff Law  <law@redhat.com>
4877
4878	* tree-ssa-forwprop.c (forward_propagate_addr_expr): Do not
4879	propagate an ADDR_EXPR if the definition and use sites are
4880	in different EH regions.
4881
48822005-05-18  Ian Lance Taylor  <ian@airs.com>
4883
4884	* read-rtl.c (mode_attr_index): Use obstack_grow0, not
4885	obstack_grow.
4886
48872005-05-18  Daniel Berlin  <dberlin@dberlin.org>
4888
4889	* cfgrtl.c (purge_dead_edges): Don't remove fake edges.
4890
48912005-05-18  Daniel Berlin  <dberlin@dberlin.org>
4892	
4893	Fix PR tree-optimization/21407
4894
4895	* tree-ssa-operands.c (note_addressable): Change
4896	COMPONENT_REF handling in response to aliasing
4897	discussion.
4898
48992005-05-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
4900
4901	* config/sparc/sol2.h (TARGET_DEFAULT): Add back MASK_APP_REGS.
4902	* config/sparc/sol2-64.h (TARGET_DEFAULT): Likewise.
4903	* config/sparc/sp-elf.h (TARGET_DEFAULT): Delete.
4904	* doc/invoke.texi (SPARC options): Document that -mapp-regs is
4905	the default on Solaris too.
4906
49072005-05-17  Daniel Berlin  <dberlin@dberlin.org>
4908
4909	* tree-ssa-pre.c (find_or_generate_expression): CALL_EXPR
4910	is okay too.
4911
49122005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
4913
4914	* timevar.def (TV_SCEV_CONST): New timevar.
4915	* tree-optimize.c (init_tree_optimization_passes): Add
4916	pass_scev_cprop.
4917	* tree-pass.h (pass_scev_cprop): Declare.
4918	* tree-scalar-evolution.c (scev_const_prop): New function.
4919	* tree-scalar-evolution.h (scev_const_prop): Declare.
4920	* tree-ssa-loop.c (gate_scev_const_prop, pass_scev_cprop):
4921	New.
4922	* tree-cfg.c (replace_uses_by): Export.
4923	* tree-flow.h (replace_uses_by): Declare.
4924
49252005-05-17  Ziemowit Laski  <zlaski@apple.com>
4926	    Mike Stump  <mrs@apple.com>
4927
4928	Yet more Objective-C++...
4929
4930	* c-common.h (objc_finish_try_stmt): Add.
4931	(objc_build_synchronized): Add.
4932	(objc_generate_write_barrier): Add.
4933	* stub-objc.c (objc_build_synchronized): Add return value.
4934	(objc_finish_try_stmt): Likewise.
4935	(objc_generate_write_barrier): Add.
4936
4937	* c-common.h (objc_rewrite_function_call): Add.
4938	* c-typeck.c (build_function_call): Allow objc to rewrite
4939	FUNCTION_DECLs.
4940	(build_modify_expr): Allow objc to generate write barriers.
4941	* c.opt (Wassign-intercept): Add.
4942	(Wstrict-selector-match): Add.
4943	(fobjc-call-cxx-cdtors): Add.
4944	(fobjc-direct-dispatch): Add.
4945	(fobjc-gc): Add.
4946	* dbxout.c (get_lang_number): Add Objective-C++ support.
4947	* doc/invoke.texi (-fobjc-call-cxx-cdtors): Likewise.
4948	(-Wstrict-selector-match): Likewise.
4949	(-fobjc-direct-dispatch): Likewise.
4950	(-Wassign-intercept): Likewise.
4951	(Overall Options): Likewise.
4952	* gengtype.c (get_output_file_with_visibility): Likewise.
4953	* stub-objc.c (objc_rewrite_function_call): Add.
4954	* config/darwin.h (ASM_OUTPUT_LABELREF): Improved quoting support.
4955
4956	* c-common.c (flag_objc_exceptions): Remove.
4957	(flag_objc_sjlj_exceptions): Remove.
4958	* c-decl.c (objc_mark_locals_volatile): Don't change decls
4959	that are already ok.
4960	* c-opts.c (c_common_handle_option, case
4961	OPT_fobjc_exceptions): Remove.
4962	(case OPT_fobjc_sjlj_exceptions): Remove
4963	* c.opt (fobjc-call-cxx-cdtors): Have opt create the flag.
4964	(fobjc-exceptions): Likewise.
4965	(fobjc-sjlj-exceptions): Likewise.
4966	* config/rs6000/darwin.h (OFFS_MSGSEND_FAST): Add.
4967	(OFFS_ASSIGNIVAR_FAST): Add.
4968	
49692005-05-17  Eric Botcazou  <ebotcazou@libertysurf.fr>
4970
4971	* config/sparc/sparc.md (movhi): Do not test constness
4972	of operand #1 twice.
4973	(movsi): Likewise.
4974	(movdi): Unconditionally accept zero as second operand
4975	when the first is memory.
4976	(movdi_insn_sp32): Handle above case.
4977	(DImode splitter): Use predicates.
4978	(DImode splitter): Use const_zero_operand predicate.
4979	(movsf_insn): Swap 2 alternatives.
4980
49812005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
4982
4983	* tree-ssa-loop-ivopts.c (find_bivs, find_givs_in_stmt_scev): Apply
4984	expand_simple_operations to bases of the ivs.
4985	(tree_int_cst_sign_bit): Export.
4986	* tree-flow.h (expand_simple_operations): Declare.
4987	* tree-ssa-loop-niter.c (number_of_iterations_cond): Use
4988	tree_int_cst_sign_bit.
4989	(expand_simple_operations): Export.
4990	* tree.h (tree_int_cst_sign_bit): Declare.
4991
49922005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
4993
4994	* tree-cfg.c (tree_can_merge_blocks_p): Allow phi nodes in the
4995	merged block.
4996	(replace_uses_by): New function.
4997	(tree_merge_blocks): Eliminate the phi nodes in the merged block.
4998	* tree-flow.h (fold_stmt_inplace): Declare.
4999	* tree-ssa-ccp.c (fold_stmt_inplace): New function.
5000	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Update dominance
5001	info after cfg cleanup.
5002
50032005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
5004
5005	* cfgloop.h (just_once_each_iteration_p): Declaration changed.
5006	* cfgloopanal.c (just_once_each_iteration_p): Make the loop argument
5007	const.
5008
50092005-05-17  Zdenek Dvorak  <dvorakz@suse.cz>
5010
5011	* ggc-page.c (ggc_alloc_stat): Record amount of memory allocated.
5012	* ggc-zone.c (ggc_alloc_zone_1): Ditto.
5013	* timevar.c (timevar_ggc_mem_total): New variable.
5014	(GGC_MEM_BOUND): New constant.
5015	(get_time): Record ggc memory status.
5016	(timevar_accumulate): Accumulate amount of ggc memory.
5017	(timevar_print): Print consumption of ggc memory.
5018	* timevar.def (TV_FIND_REFERENCED_VARS, TV_TREE_REDPHI,
5019	TV_TREE_LOOP_BOUNDS, TV_TREE_LOOP_IVCANON, TV_TREE_VECTORIZATION,
5020	TV_TREE_LINEAR_TRANSFORM): Shorten strings to fit in 22 characters.
5021	* timevar.h (struct timevar_time_def): Add ggc_mem field.
5022	(timevar_ggc_mem_total): Declare.
5023
50242005-05-17  Kazu Hirata  <kazu@cs.umass.edu>
5025
5026	* tree-into-ssa.c (update_ssa): Clean up by shortening the
5027	live range of DFS.
5028
50292005-05-17  Hans-Peter Nilsson  <hp@axis.com>
5030
5031	* config/cris/cris.md (ncond, ocode, rcond): Remove separate
5032	define_code_attr.
5033	("b<ncond:code>", "b<ocond:code>", "b<rcond:code>")
5034	("*b<ncond:code>_reversed", "*b<ocond:code>_reversed")
5035	("*b<rcond:code>_reversed", "s<ncond:code>", "s<rcond:code>")
5036	("s<ocond:code>"): Rename from respectively "b<ncond>",
5037	"b<ocond>", "b<rcond>", ("*b<ncond>_reversed",
5038	"*b<ocond>_reversed", "*b<rcond>_reversed", "s<ncond>",
5039	"s<rcond>" and "s<ocond>".
5040	("b<ocond:code>", "*b<ocond:code>_reversed")
5041	("*b<rcond:code>_reversed"): Remove extraneous backslashes in
5042	output statement section.
5043
50442005-05-17  Roger Sayle  <roger@eyesopen.com>
5045
5046	* c-typeck.c (common_type): Also handle BOOLEAN_TYPEs.
5047
50482005-05-17  Steven Bosscher  <stevenb@suse.de>
5049	    Stuart Hastings <stuart@apple.com>
5050	    Jan Hubicka  <jh@suse.cz>
5051	    Dale Johannesen  <dalej@apple.com>
5052
5053	* cgraph.h (cgraph_node): Add 'lowered' state.
5054	(cgraph_lower_function): Declare.
5055	* cgraphunit.c (cgraph_finalize_function): Initialize lowered flag.
5056	(cgraph_lower_function): New function.
5057	(cgraph_create_edges): Deal with lowered function bodies.
5058	(verify_cgraph_node): Likewise.
5059	(cgraph_analyze_function): Do lowering job.
5060	(cgraph_build_static_cdtor): Likewise.
5061	* function.h (struct function): Add saved_eh and saved_cfg.
5062	* integrate.c (copy_decl_for_inlining): Kill LABEL_DECL_UID field.
5063	* tree-cfg.c (fold_cond_expr_cond): Export.
5064	* tree-flow.h (fold_cond_expr_cond): Declare.
5065	* tree-inline.c: Include basic-block, ggc, tree-flow, except.h and
5066	pointer-set.
5067	(struct_inline_data): Kill fnd, first_inlined_fn, ret_label,
5068	in_target_cleanup_p, tree_pruner, tsi; add callee, caller and
5069	callee_cfun, block, eh_region, eh_region_offset.
5070	(inlining_p): New predicate.
5071	(remap_decl): Update for new inline_data; declare newly created inline
5072	vars in low gimple way.
5073	(copy_body_r): Update for new datastructure, simplify some of handling
5074	when we are in gimple; remap LABEL_DECLs for EH; copy TREE_BLOCK;
5075	deal with RESX_EXPRs.
5076	(copy_bb): New.
5077	(copy_edges_for_bb): Likewise.
5078	(remap_decl_1): New.
5079	(copy_cfg_body): New.
5080	(copy_generic_body): Rewrite to work on low gimple.
5081	(copy_body): Turn into simple wrapper around copy_cfg_body.
5082	(setup_one_parameter): Insert new statements into given basic block.
5083	(initialize_initialized_parameters): Likewise, reorganize way things are
5084	gimplified.
5085	(declare_return_variable): Update for new inline data datastructure.
5086	(inline_forbidden_p): Work on low gimple.
5087	(estimate_num_insns): Likewise.
5088	(expand_call_inline): Work on CFG.
5089	(push_cfun, pop_cfun): New functions.
5090	(cfun_stack): New stack.
5091	(add_lexical_block): New function.
5092	(gimple_expand_calls_inline): Work on basic block.
5093	(optimize_inline_calls): Likewise.
5094	(clone_body, save_body, unsave_ewpr_now): Update for new
5095	datastructures.
5096	(declare_inline_vars): Work on block instead of bind_expr.
5097	(inlining_p): New predicate.
5098	* tree-inline.h (push_cfun, pop_cfun): Declare.
5099	* tree-optimize.c: Include except.h
5100	(all_lowering_passes): New variable.
5101	(execute_fixup_cfg, pass_fixup_cfg): New pass.
5102	(init_tree_optimization_passes): Move some to all_lowering_passes.
5103	(tree_lowering_passes): New function.
5104	(tree_rest_of_compilation): Register cfg hooks; save/unsave eh.
5105	* tree-pass.h (tree_lowering_passes): Declare
5106
51072005-05-17  Nathan Sidwell  <nathan@codesourcery.com>
5108
5109	* unwind-dw2-fde-darwin.c: Include tsystem.h.
5110
51112005-05-17  Jeff Law  <law@redhat.com>
5112
5113	* Makefile.in (tree-ssa-forwprop.o): Depend on langhooks.h.
5114	* tree-ssa-forwprop.c: Include langhooks.h.
5115	(forward_propagate_addr_expr_into_variable_array_index): New.
5116	(forward_propagate_addr_expr): New.
5117	(tree_ssa_forward_propagate_single_use_vars): Loop over all
5118	the statements in the block instead of just the last statement.
5119	Call forward_propagate_addr_expr as needed.
5120	(pass_forwprop): Update the SSA graph after forward propagation is
5121	complete.
5122
51232005-05-17  Nathan Sidwell  <nathan@codesourcery.com>
5124
5125	* unwind-dw2-fde-glibc.c (base_from_cb_data,
5126	_Unwind_IteratePhdrCallback): Use gcc_assert and gcc_unreachable as
5127	appropriate.
5128	* unwind-dw2-fde.c (__deregister_frame_info_bases,
5129	base_from_object, fde_split, end_fde_sort): Likewise.
5130	* unwind-dw2.c (_Unwind_GetGR, _Unwind_SetGR, execute_stack_op, 
5131	execute_cfa_program, _Unwind_SetSpColumn, uw_update_context_1,
5132	uw_init_context_1): Likewise.
5133	* unwind.inc (_Unwind_RaiseException_Phase2, _Unwind_Resume,
5134	_Unwind_Resume_or_Rethrow): Likewise.
5135	* unwind-pe.h (__gxx_abort): Do not define.
5136	(size_of_encoded_value, base_of_encoded_value,
5137	read_encoded_value_with_base): Use gcc_unreachable.
5138	* unwind.h (_Unwind_GetTextRelBase): Likewise.
5139
51402005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>
5141
5142	* config/arm/lib1funcs.asm (cfi_pop, cfi_push, cfi_start)
5143	(cfi_end): New macros.
5144	(RETLDM): Use cfi_pop.  Expect an eight byte stack frame.
5145	(ARM_LDIV0, THUMB_LDIV0, DIV_FUNC_END): Use CFI macros.  Create
5146	an eight byte stack frame.
5147	(__NR_tkill): Define.
5148	(__div0): Use gettid tkill on GNU/Linux.
5149	(_arm_return): Add CFI.
5150	(Lchange_\register, .Lchange_lr): Create an eight byte stack frame.
5151
51522005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>
5153
5154	* configure.ac: Remove spaces around assignment to
5155	gcc_cv_ld_sysroot.
5156	* configure: Regenerated.
5157
51582005-05-17  David Edelsohn  <edelsohn@gnu.org>
5159
5160	* config/rs6000/aix.h (TARGET_ALTIVEC_VRSAVE): Delete.
5161	* config/rs6000/rs6000.c (rs6000_explicit_options): Add
5162	aix_struct_ret.
5163	(rs6000_override_options): Do not protect TARGET_ALTIVEC_VRSAVE.
5164	Modify aix_struct_return variable, not target_flags.
5165	(rs6000_handle_option): Do not protect TARGET_ALTIVEC_VRSAVE.
5166	(rs6000_return_in_memory): Test aix_struct_return.
5167	* config/rs6000/rs6000.opt (maix-struct-return): Convert to
5168	independent variable.  Report mxl-compat.
5169
51702005-05-17  Bernd Schmidt  <bernd.schmidt@analog.com>
5171
5172	* config/bfin/bfin.md (eh_return): Add missing DONE.
5173
51742005-05-17  Ian Lance Taylor  <ian@airs.com>
5175
5176	* read-rtl.c (struct macro_traverse_data): Add unknown_mode_attr
5177	field.
5178	(mode_attr_index): Remove check for defined attribute.  Remove
5179	infile parameter.  Change all callers.
5180	(apply_mode_maps): Add unknown parameter.  Change caller.  Always
5181	return after finding attribute.
5182	(apply_macro_to_rtx): Add unknown_mode_attr parameter.  Change
5183	callers.
5184	(apply_macro_traverse): Set mtd->unknown_mode_attr.
5185	(read_rtx): Use mtd.unknown_mode_attr to check for an undefined
5186	attribute used for a mode.
5187
51882005-05-17  Paolo Bonzini  <bonzini@gnu.org>
5189
5190	* tree-ssa-math-opts.c: New file.
5191
51922005-05-17  Paolo Bonzini  <bonzini@gnu.org>
5193
5194	* Makefile.in: Add tree-ssa-math-opts.c.
5195	* expr.c (expand_expr_real_1) <case RDIV_EXPR>: Never emit as a*(1/b).
5196	* fold-const.c (distribute_real_division): New.
5197	(fold_binary) <case PLUS_EXPR, case MINUS_EXPR>: Use it.
5198	* tree-pass.h (pass_cse_reciprocals): New.
5199	* tree-optimize.c (init_tree_optimization_passes): Run it.
5200	* doc/passes.texi: Document the new pass.
5201
52022005-05-17  Richard Guenther  <rguenth@gcc.gnu.org>
5203
5204	PR middle-end/21595
5205	* builtins.c (fold_builtin_constant_p): Handle
5206	&"string cst"[0] as constant.
5207
52082005-05-17  Richard Henderson  <rth@redhat.com>
5209
5210	* config/i386/sse.md (mulv16qi3, mulv2di3): New.
5211
52122005-05-17  Jakub Jelinek  <jakub@redhat.com>
5213
5214	PR middle-end/21492
5215	* cfgcleanup.c (try_crossjump_to_edge): update_forwarder_flag for
5216	src2 if src2 has been split.
5217
5218	PR tree-optimization/21610
5219	* c-typeck.c (decl_constant_value_for_broken_optimization): If not
5220	returning DECL, call unshare_expr.
5221
52222005-05-17  Hans-Peter Nilsson  <hp@axis.com>
5223
5224	* config/cris/cris.md: Unquote preparation and output statements.
5225	(BWD, WD, BW): New, mode-macros.
5226	(S, s, m, mm, nbitsm1): New, mode-attrs.
5227	(szext, shift, shiftrt, ncond, ocond, rcond): New, code-macros.
5228	(u, su, shlr, slr, ncond, ocond, rcond, rCC, oCC, roCC): New,
5229	code-attrs.
5230	("tst<mode>"): Replace "tstqi", "tsthi" and "tstsi".
5231	("*cmp_ext<mode>"): Replace "*cmp_extsi" and "*cmp_exthi".
5232	("*cmp_swapext<mode>"): Replace "*cmp_swapextqi" and
5233	"*cmp_swapexthi".
5234	("cmp<mode>"): Replace "cmphi" and "cmpqi".
5235	("movdi"): Move misplaced head comment regarding necessity of
5236	movdi from movsi to here.
5237	("*mov_side<mode>_biap"): Replace "*mov_sideqi_biap" and
5238	"*mov_sidehi_biap".
5239	("*mov_side<mode>"): Replace "*mov_sideqi" and "*mov_sidehi".
5240	("*mov_side<mode>_biap_mem", "*mov_sidehi_biap_mem"): Replace
5241	"*mov_sideqi_biap_mem".
5242	("*mov_side<mode>_mem"): Replace "*mov_sideqi_mem" and
5243	"*mov_sidehi_mem".
5244	("*clear_side<mode>_biap"): Replace "*clear_sidesi_biap",
5245	"*clear_sidehi_biap" and "*clear_sideqi_biap".
5246	("*clear_side<mode>"): Replace "*clear_sidesi", "*clear_sidehi"
5247	and "*clear_sideqi".
5248	("*ext_side<mode>si_biap"): Replace "*ext_sideqisi_biap" and
5249	"*ext_sidehisi_biap".
5250	("*ext_side<mode>si"): Replace "*ext_sideqisi" and
5251	"*ext_sidehisi".
5252	("reload_in<mode>"): Replace "reload_inhi" and "reload_inqi".
5253	("reload_out<mode>"): Replace "reload_outhi" and "reload_outqi".
5254	("extend<mode>di2"): Replace "extendhidi2" and "extendqidi2".
5255	("extend<mode>si2"): Replace "extendhisi2" and "extendqisi2".
5256	("zero_extend<mode>si2"): Replace "zero_extendhisi2" and
5257	"zero_extendqisi2".
5258	("*op_side<mode>_biap"): Replace "*op_sideqi_biap",
5259	"*op_sidehi_biap" and "*op_sidesi_biap".
5260	("*op_side<mode>"): Replace "*op_sideqi", "*op_sidehi" and
5261	"*op_sidesi".
5262	("*op_swap_side<mode>_biap"): Replace "*op_swap_sideqi_biap",
5263	"*op_swap_sidehi_biap" and "*op_swap_sidesi_biap".
5264	("*op_swap_side<mode>"): Replace "*op_swap_sideqi",
5265	"*op_swap_sidehi" and "*op_swap_sidesi".
5266	("sub<mode>3"): Replace "subhi3" and "subqi3", correcting a typo
5267	in the N alternative of "subqi3".
5268	("*extop<mode>si_side_biap"): Replace "*extopqisi_side_biap" and
5269	"*extophisi_side_biap".
5270	("*extop<mode>si_side"): Replace "*extopqisi_side" and
5271	"*extophisi_side".
5272	("*extop<mode>si_swap_side_biap"): Replace
5273	"*extopqisi_swap_side_biap" and "*extophisi_swap_side_biap".
5274	("*extop<mode>si_swap_side"): Replace "*extopqisi_swap_side" and
5275	"*extophisi_swap_side".
5276	("*extop<mode>si"): Replace "*extopqisi" and "*extophisi".
5277	("*extop<mode>si_swap"): Replace "*extopqisi_swap" and
5278	"*extophisi_swap".
5279	("<u>mul<s><mode>3"): Replace "umulhisi3", "umulqihi3",
5280	"mulqihi3", "mulhisi3" and "mulhisi3".
5281	("<u>mulsidi3"): Replace "mulsidi3" and "umulsidi3".
5282	("<su>mulsi3_highpart"): Replace "smulsi3_highpart" and
5283	"umulsi3_highpart".
5284	("xor<mode>3"): Replace "xorhi3" and "xorqi3".
5285	("neg<mode>2"): Replace "negsi2", "neghi2" and "negqi2".
5286	("one_cmpl<mode>2"): Replace "one_cmplhi2" and "one_cmplqi2".
5287	("<shlr>si3"): Replace "ashrsi3", "lshrsi3" and "ashlsi3".
5288	("ashr<mode>3"): Replace "ashrhi3" and "ashrqi3".
5289	("*expanded_<shlr><mode>"): Replace "*expanded_ashrhi",
5290	"*expanded_ashrqi", "*expanded_lshrhi" and "*expanded_lshrqi".
5291	("*<shlr><mode>_lowpart"): Replace "*ashrhi_lowpart",
5292	"*ashrqi_lowpart", "*lshrhi_lowpart" and "*lshrqi_lowpart".
5293	("lshr<mode>3"): Replace "lshrhi3" and "lshrqi3".
5294	("ashl<mode>3"): Replace "ashlhi3" and "ashlqi3".
5295	("*ashl<mode>_lowpart"): Replace "*ashlqi_lowpart" and
5296	"*ashlhi_lowpart".
5297	("abs<mode>2"): Replace "abshi2" and "absqi2".
5298	("b<ncond>"): Replace "beq", "bne", "bgtu", "bltu", "bgeu" and
5299	"bleu".
5300	("b<ocond>"): Replace "bgt" and "ble".
5301	("b<rcond>"): Replace "blt" and "bge".
5302	("*b<ncond>_reversed"): Replace "*beq_reversed", "*bne_reversed",
5303	"*bgtu_reversed", "*bltu_reversed", "*bgeu_reversed" and
5304	"*bleu_reversed".
5305	("*b<ocond>_reversed"): Replace "*bgt_reversed" and
5306	"*ble_reversed".
5307	("*b<rcond>_reversed"): Replace "*blt_reversed" and
5308	"*blt_reversed".
5309	("s<ncond>"): Replace "sgeu", "sltu", "seq", "sgtu", "sleu" and
5310	"sne".
5311	("s<rcond>"): Replace "sge" and "slt".
5312	("s<ocond>"): Replace "sgt" and "sle".
5313	("clear.[bwd] [rx=rx+rz.S2]"): Replace split clear.d
5314	[rx=rx+rz.S2], clear.w [rx=rx+rz.S2] and clear.b [rx=rx+rz.S2].
5315	("clear.[bwd] [rx=rx+i]"): Replace splits clear.d [rx=rx+i],
5316	clear.w [rx=rx+i] and clear.b [rx=rx+i].
5317
53182005-05-17  Jakub Jelinek  <jakub@redhat.com>
5319
5320	* varasm.c (struct constant_descriptor_tree): Add hash field.
5321	(const_desc_hash): Just return hash field.
5322	(const_desc_eq): If hash values are different, return 0 immediately.
5323	(output_constant_def): Compute hash field of temporary key, use
5324	htab_find_slot_with_hash instead of htab_find_slot.  Set hash in
5325	newly built constant descriptor.
5326	(lookup_constant_def): Compute hash field of temporary key, use
5327	htab_find_with_hash instead of htab_find.
5328
53292005-05-16  Richard Henderson  <rth@redhat.com>
5330
5331	* config/i386/sse.md (mulv4si3): New.
5332
53332005-05-17  Hans-Peter Nilsson  <hp@axis.com>
5334
5335	* config/cris/cris.h (EXTRA_CONSTRAINT_T): Remove FIXME and
5336	tests for noncanonical versions of reg+constant and
5337	reg+reg*{1,2,4}.
5338
53392005-05-16  Richard Henderson  <rth@redhat.com>
5340	    Steven Bosscher <stevenb@suse.de>
5341
5342	PR tree-opt/21399
5343	* tree-eh.c (maybe_clean_or_replace_eh_stmt): Rename from 
5344	maybe_clean_eh_stmt; take old stmt parameter.  Update EH
5345	region data structure to match replacement.
5346	* tree-flow.h: Update to match.
5347	* tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
5348	* tree-ssa-dom.c (optimize_stmt): Likewise.
5349	* tree-ssa-pre.c (eliminate): Likewise.
5350	* tree-ssa-propagate.c (substitute_and_fold): Likewise.
5351
53522005-05-16  Caroline Tice  <ctice@apple.com>
5353
5354	* bb-reorder.c (verify_hot_cold_block_grouping):  Replace
5355	internal_error with gcc_assert.
5356	* dwarf2out.c (dwarf2out_switch_text_section):  Likewise.
5357	* function.h (struct function): Remove space between "*" and
5358	struct field names.
5359	* varasm.c (initialize_cold_section_name):   Add gcc_assert;
5360	modify to use alloca.
5361	(unlikely_text_section): Add check for flag_function_sections.
5362	(assemble_start_function):  Move call to resolve_section, so it
5363	comes before first call to unlikely_text_section.
5364	(assemble_end_function):  Add test and call to function_section
5365	if appropriate.
5366	
53672005-05-16  Roger Sayle  <roger@eyesopen.com>
5368
5369	* c-common.c (c_common_truthvalue_conversion): Use fold_build2
5370	instead of build_binary_op when performing code transformations
5371	to avoid error messages about constructs not it the user's code.
5372
53732005-05-16  Kazu Hirata  <kazu@cs.umass.edu>
5374
5375	* tree-ssa-pre.c: Fix a comment typo.
5376
53772005-05-16  Richard Henderson  <rth@redhat.com>
5378
5379	PR target/21556
5380	* config/ia64/ia64.md (load_dtpmod, load_ltoff_dtpmod, load_dtprel,
5381	load_dtprel64, load_dtprel22, load_dtprel_gd, load_ltoff_dtprel,
5382	add_dtprel, add_dtprel14, add_dtprel22, load_tprel, load_tprel64,
5383	load_tprel22, load_tprel_ie, load_ltoff_tprel, add_tprel, add_tprel14,
5384	add_tprel22): Remove mode from symbolic operand.
5385
53862005-05-16  Richard Sandiford  <rsandifo@redhat.com>
5387
5388	* optc-gen.awk: Include intl.h after the externally-provided files.
5389
53902005-05-16  Kazu Hirata  <kazu@cs.umass.edu>
5391
5392	* tree-ssa-copy.c (copy_prop_visit_assignment): Clean up by
5393	folding a COND_EXPR_COND in a nondestructive manner.
5394
53952005-05-16  Fariborz Jahanian <fjahanian@apple.com>
5396
5397	* config/rs6000/altivec.md (altivec_vmrghb, altivec_vmrghh, 
5398	altivec_vmrghw, altivec_vmrglb, altivec_vmrglh, altivec_vmrglw):
5399	New values for vec_select definitions and bitmask for element
5400	selection.
5401	 
54022005-05-16  Kazu Hirata  <kazu@cs.umass.edu>
5403
5404	* dwarf2out.c (used_rtx_varray): Rename to used_rtx_array.
5405	Change the type to VEC(rtx,gc)*.
5406	(mem_loc_descriptor, add_const_value_attributes,
5407	dwarf2out_init): Adjust uses of used_rtx_varray.
5408
5409	* tree-data-ref.c (compute_all_dependences): Change the type
5410	of dependence_relations to VEC(ddr_p,heap)**.
5411	(compute_data_dependences_for_loop): Change the type of
5412	allrelations to VEC(ddr_p,heap)*.
5413
54142005-05-16  Richard Sandiford  <rsandifo@redhat.com>
5415
5416	* Makefile.in (options.c): Tell optc-gen.awk to include config.h,
5417	system.h, coretypes.h and tm.h.
5418	(options.o): Update dependencies accordingly.
5419	* optc-gen.awk: Allow header_name to be a list of filenames.
5420	Handle the "Condition" flag.
5421	* opts.h (CL_DISABLED): New flag.
5422	* opts.c (handle_option): Print an error for CL_DISABLED options.
5423	* doc/options.texi: Document the "Condition" option flag.
5424
54252005-05-16  Paolo Bonzini  <bonzini@gnu.org>
5426
5427	* tree-inline.c (estimate_num_insns_1): Handle VEC_COND_EXPR.
5428
54292005-05-15  Roger Sayle  <roger@eyesopen.com>
5430
5431	* tree-scalar-evolution.c (set_nb_iterations_in_loop): Only
5432	check for TREE_OVERFLOW on INTEGER_CST trees.
5433	* tree-chrec.c (chrec_convert): Only clear TREE_OVERFLOW on
5434	CONSTANT_CLASS_P tree nodes.
5435
54362005-05-15  H.J. Lu  <hongjiu.lu@intel.com>
5437
5438	PR target/21551
5439	* config/ia64/ia64.c (ia64_expand_move): Don't add addend twice.
5440
54412005-05-15  Daniel Berlin  <dberlin@dberlin.org>
5442	    
5443	Fix PR tree-optimization/21576
5444	
5445	* tree-ssa-pre.c (expression_node_pool): New pool.
5446	(comparison_node_pool): Ditto.
5447	(list_node_pool): Ditto.
5448	(pool_copy_list): New function.
5449	(phi_translate): Handle CALL_EXPR.
5450	(valid_in_set): Ditto.
5451	(create_expression_by_pieces): Ditto.
5452	(insert_into_preds_of_block): Ditto.
5453	(insert_aux): Ditto.
5454	(compute_avail): Ditto.
5455	(create_value_expr_from): Handle TREE_LIST and CALL_EXPR.
5456	(can_value_number_call): New function.
5457	(find_leader): Update comment.
5458	(init_pre): Create new pools.
5459	(fini_pre): Free new pools.
5460	(pass_pre): Add TODO_update_ssa for the future when we are going
5461	to need vops.
5462	* tree-vn.c (expressions_equal_p): Handle TREE_LIST.
5463	(set_value_handle): Ditto.
5464	(get_value_handle): Ditto.
5465
54662005-05-15  Richard Earnshaw  <richard.earnshaw@arm.com>
5467
5468	* arm.c (thumb_unexpanded_epilogue): Delete unused variable 'mode'.
5469
54702005-05-15  Andreas Jaeger  <aj@suse.de>
5471
5472	* gcc.c (pfatal_pexecute): Remove unused local function.
5473
54742005-05-15  Richard Sandiford  <rsandifo@redhat.com>
5475
5476	* optc-gen.awk: Remove excess indentation.
5477	* opth-gen.awk: Likewise.
5478
54792005-05-14  Kaz Kojima  <kkojima@gcc.gnu.org>
5480
5481	* config/sh/sh.c (sh_output_mi_thunk): Check cfun->cfg instead
5482	of basic_block_info.  Call init_flow and find_basic_blocks
5483	before dbr_schedule if needed.
5484
54852005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
5486
5487	* tree-optimize.c (init_tree_optimization_passes): Move
5488	pass_cd_dce in place of the last pass_dce.
5489
5490	PR tree-optimization/21563
5491	* tree-vrp.c (compare_value): Return boolean_false_node when
5492	SSA_NAME in "if (SSA_NAME == CST)" is strictly smaller than or
5493	strictly larger than CST.
5494
54952005-05-14  Nathan Sidwell  <nathan@codesourcery.com>
5496	    Jan-Benedict Glaw  <jbglaw@lug-owl.de>
5497
5498	* config/vax/vax.c: (print_operand_address) Use gcc_unreachable() and
5499	gcc_assert().
5500	(rev_cond_name) Likewise.
5501	(vax_float_literal) Likewise.
5502	* config/vax/vax.md: Likewise.
5503
55042005-05-14  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
5505
5506	* config/vax/vax.md: define_constant VAXens AP, FP, SP and PC
5507	registers and use them (specifically the stack pointer).
5508	* config/vax/vax.h: Use above defines right here.
5509
5510	* config/vax/vax.c: (override_options) Remove 'register' keyword.
5511	(split_quadword_operands) Likewise. (rev_cond_name) Likewise.
5512	(vax_float_literal) Likewise. (vax_rtx_costs) Remove trailing
5513	whitespace.
5514	* config/vax/vax.h: Remove 'register' keyword. Misc. whitespace fixes,
5515	mostly removal of trailing spaces...
5516	* config/vax/vax-modes.def: Remove trailing whitespace.
5517
5518	* config/vax/elf.h: Update whitespace.
5519
55202005-05-14  Richard Guenther  <rguenth@gcc.gnu.org>
5521
5522	Revert
5523	2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
5524	* fold-const.c (fold_indirect_ref_1): Avoid removing
5525	NOP_EXPRs with type qualifiers like const.
5526
55272005-05-14  Jan Hubicka  <jh@suse.cz>
5528
5529	Patch by Richard Henderson:
5530	* tree-eh.c (tree_can_throw_internal, tree_can_throw_external):
5531	Handle RESX expressions properly.
5532
5533	* tree-eh.c (record_stmt_eh_region): Use add_stmt_to_eh_region.
5534	(add_stmt_to_eh_region_fn): Nest into CALL_EXPR.
5535	(remove_stmt_from_eh_region_fn): Likewise.
5536
5537	* tree-cfg.c (execute_warn_function_return): Break out noreturn
5538	warning too..
5539	(execute_warn_function_noreturn): ... here.
5540	(pass_warn_function_noreturn): New pass.
5541	* tree-pass.h (pass_warn_function_noreturn): Declare
5542	* tree-optimize.c (init_tree_optimization_passes): Move return
5543	warnings early and add noreturn warnings at place of previous
5544	return warnings.
5545
55462005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
5547
5548	* tree-ssa-live.c (tpa_init, tpa_delete, tpa_compact,
5549	root_var_init, type_var_init): Use VEC instead of VARRAY.
5550	* tree-ssa-live.h (tree_partition_associator_d): Change the
5551	type of trees to VEC(tree,heap)*.
5552	(tpa_tree): Use VEC instead of VARRAY.
5553
55542005-05-14  Richard Guenther  <rguenth@gcc.gnu.org>
5555
5556	* fold-const.c (div_if_zero_remainder): New function.
5557	(try_move_mult_to_index): Use it.
5558
55592005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
5560
5561	* tree-eh.c (leh_tf_state): Change the type of dest_array to
5562	VEC(tree,heap)*.
5563	(maybe_record_in_goto_queue, lower_try_finally_onedest,
5564	lower_try_finally_copy, lower_try_finally_switch,
5565	lower_try_finally): Use VEC instead of VARRAY.
5566
55672005-05-14  Hans-Peter Nilsson  <hp@axis.com>
5568
5569	* config/cris/cris.h (Node: Register Classes): Remove obsoleted
5570	comment regarding defined register classes.
5571	(LEGITIMIZE_RELOAD_ADDRESS): Do not define.
5572
55732005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
5574
5575	* tree-optimize.c (init_tree_optimization_passes): Move
5576	pass_merge_phi before the first pass_dominator.
5577
55782005-05-13  Richard Earnshaw  <richard.earnshaw@arm.com>
5579
5580	* arm.h (INITIALIZE_TRAMPOLINE): Make the call to __clear_cache
5581	unconditional.
5582
55832005-05-13  Josh Conner  <jconner@apple.com>
5584
5585	* config/arm/arm.c (arm_size_return_regs): New.
5586	(thumb_unexpanded_epilogue): replace in-line calculation
5587	of return registers with call to arm_size_return_regs.
5588	(use_return_insn): Include test of which registers are
5589	being used to hold return values, to accommodate
5590	vector return values.
5591
55922005-05-11  Aldy Hernandez  <aldyh@redhat.com>
5593
5594	* config/rs6000/sysv4.opt (mlittle): Handle.
5595
5596	* config/rs6000/rs6000.c (rs6000_handle_option): Set
5597	target_flags_explicit when appropriate.
5598
55992005-05-13  J"orn Rennecke <joern.rennecke@st.com>
5600
5601	PR middle-end/20714:
5602	* optabs.c (no_conflict_data): New struct.
5603	(no_conflict_move_test): New function.
5604	(emit_no_conflict_block): Use it.
5605
56062005-05-13  Adam Nemet  <anemet@lnxw.com>
5607
5608	* doc/invoke.texi (Debugging Options): Option
5609	-fdump-translation-unit only works with C++ now.
5610
56112005-05-13  Hans-Peter Nilsson  <hp@axis.com>
5612
5613	Replace calls to abort in CRIS port.
5614	* config/cris/cris.h (CRIS_ASSERT): New macro.
5615	* config/cris/cris.md ("*movsi_internal"): Use CRIS_ASSERT and
5616	internal_error instead of abort.
5617	("movsi"): Ditto.  Unquote preparation statement section.
5618	("call", "call_value"): Ditto, but use gcc_assert where
5619	appropriate.  Tweak comments.
5620	* config/cris/cris.c (ASSERT_PLT_UNSPEC): Define in terms of
5621	CRIS_ASSERT.
5622	(cris_op_str): Call internal_error, not abort.
5623	(cris_print_operand): Tweak "abort" reference to "die" in comment.
5624	(cris_initial_elimination_offset): Call gcc_unreachable, not abort.
5625	(cris_notice_update_cc): Call internal_error, not abort.
5626	(cris_expand_return, cris_expand_prologue, cris_gen_movem_load)
5627	(cris_emit_movem_store, cris_asm_output_symbol_ref)
5628	(cris_output_addr_const_extra): Use CRIS_ASSERT, don't call abort.
5629	(cris_symbol, cris_got_symbol): Use CRIS_ASSERT instead of
5630	ENABLE_CHECKING-guarded abort call.
5631	(cris_split_movdx): Use CRIS_ASSERT instead of abort with test.
5632	Use internal_error at end of test-chain.
5633
56342005-05-13  J"orn Rennecke <joern.rennecke@st.com>
5635
5636	PR rtl-optimization/20769:
5637	* bt-load.c (compute_defs_uses_and_gen): Check for the blockage
5638	pattern emitted by expand_nl_goto_receiver.
5639
5640	PR middle-end/20793:
5641	* integrate.c (allocate_initial_values): Update register liveness
5642	information.
5643
56442005-05-13  Josh Conner  <jconner@apple.com>
5645
5646	* arm.c (arm_return_in_memory): Add handling for vector return types.
5647
56482005-05-13  David Ung  <davidu@mips.com>
5649
5650	* config/mips/mips.h (processor_type): Add new PROCESSOR_4KP
5651	name.
5652	* config/mips/mips.c: Add 4km alias.
5653	* config/mips/mips.md: Add 4kp to cpu attrib and include 4k.md.
5654	* config/mips/4k.md: New file, add 4Kc/4Kp DFA pipeline
5655	description.
5656
56572005-05-13  Jan Hubicka  <jh@suse.cz>
5658
5659	* c-decl.c (finish_function): Suppress "control reaches end of
5660	non-void function" when "no return statement in function
5661	returning non-void" is issued.
5662
5663	* tree-inline.c (copy_body_r): Simplify substituted ADDR_EXPRs.
5664	* tree-optimize.c (pass_gimple): Kill.
5665	(init_tree_optimization_passes): Kill pass_gimple.
5666	* tree-cfg.c (build_tree_cfg): Do verify_stmts to check that we are gimple.
5667	* tree-dump.c (dump_files): Rename .generic to .gimple.*
5668
56692005-05-13  J"orn Rennecke <joern.rennecke@st.com>
5670
5671	PR rtl-optimization/20756:
5672	* basic-block.h (PROP_DEAD_INSN): Define.
5673	* flow.c (propagate_one_insn): Set during mark_set_regs call
5674	for a dead insn.
5675	(mark_set_1): Emit a clobber when we are about to delete a dead insn
5676	that kills a live register.
5677
56782005-05-13  Adrian Straetling  <straetling@de.ibm.com>
5679
5680	* config/s390/s390.md: ("DBL"): New mode attribute.
5681	("*movmem_long_64", "*movmem_long_31"): Merge to "*movmem_long".
5682	("*clrmem_long_64", "*clrmem_long_31"): Merge to "*clrmem_long".
5683	("*cmpmem_long_64", "*cmpmem_long_31"): Merge to "*cmpmem_long".
5684
56852005-05-13  Richard Guenther  <rguenth@gcc.gnu.org>
5686
5687	* c-format.c (check_format_arg): Handle string literals of
5688	the form &"string"[offset].
5689
5690	* g++.dg/warn/format4.C: New testcase.
5691
56922005-05-13  Kazu Hirata  <kazu@cs.umass.edu>
5693
5694	* config/mips/3000.md, config/mips/4000.md,
5695	config/mips/4100.md, config/mips/4300.md, config/mips/4600.md,
5696	config/mips/5000.md, config/mips/7000.md, config/mips/9000.md,
5697	config/mips/generic.md, config/pdp11/pdp11.md,
5698	config/sh/crt1.asm, config/sh/lib1funcs.asm,
5699	config/sh/sh-modes.def, config/sh/sh-protos.h,
5700	config/sh/shmedia.md, config/sh/ushmedia.h: Update copyright.
5701
57022005-05-13  Richard Henderson  <rth@redhat.com>
5703
5704	* function.c (instantiate_virtual_regs_in_insn): Do not simplify
5705	addition to move unless dest is a register.  Do not skip
5706	instantiation in dest on addition simplification.
5707
57082005-05-13  Hans-Peter Nilsson  <hp@axis.com>
5709
5710	* config/cris/cris.c (cris_print_operand) <case 'H'; case
5711	CONST_INT>: Use operand_subword and HOST_WIDE_INT_PRINT_DEC for
5712	output; don't have special case for HOST_BITS_PER_WIDE_INT == 32.
5713
57142005-05-13  Jan Hubicka  <jh@suse.cz>
5715
5716	* basic-block.h (FOR_ALL_BB_FN): New macro.
5717	(init_flow): Initialize cfg structure.
5718	* function.c (allocate_struct_function): Do not initialize cfg structure.
5719	* tree-cfg.c (init_empty_tree_cfg): Break out from ...
5720	(build_tree_cfg): ... here.
5721	* tree-flow.h (init_empty_tree_cfg): Declare.
5722
57232005-05-12  Steven Bosscher <stevenb@suse.de>
5724
5725	Fix PR tree-optimization/21520
5726	* tree-ssa-pre.c (phi_translate): Use fully_constant_expression
5727	to attempt to fold constants.
5728
57292005-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
5730
5731	* config/sh/sh.c: Declare the prototype of sh_adjust_unroll_max
5732	only when TARGET_ADJUST_UNROLL_MAX is defined.
5733	(general_movsrc_operand): Use the C style comment.
5734	(ua_offset): Use prototype.
5735
57362005-05-12  Zdenek Dvorak  <dvorakz@suse.cz>
5737
5738	* tree-ssa-loop-im.c (struct mem_ref): Add field "next".
5739	(struct hmr_data, hoist_memory_reference, memref_del,
5740	struct fmrv_data): Removed.
5741	(hoist_memory_references, free_mem_ref, free_mem_refs): New functions.
5742	(gather_mem_refs, gather_mem_refs_stmt): Add new references to the
5743	list.
5744	(find_more_ref_vops): Traverse the list of memory references.
5745	(determine_lsm_loop): Work with the list of memory references instead
5746	of traversing the hashtable.
5747
57482005-05-12  Steven Bosscher  <stevenb@suse.de>
5749	    Stuart Hastings <stuart@apple.com>
5750	    Jan Hubicka  <jh@suse.cz>
5751
5752	* except.c  (duplicate_eh_region_1, duplicate_eh_region_2,
5753	duplicate_eh_regions): New functions, based on old
5754	implementation removed with RTL inliner.
5755	(reachable_next_level): Modify behaviour pre-inline.
5756	* except.h (duplicate_eh_regions_map, duplicate_eh_regions):
5757	Declare.
5758	* function.h (struct function): Add after_inlining flag.
5759	* tree-optimize.c (tree_rest_of_compilation): Set it.
5760	* tree-eh.c (add_stmt_to_eh_region_fn): Initialize hashtable
5761	when needed.
5762	* tree-cfg.c (label_to_block_fn): Deal with cases where
5763	label was never insterted into code.
5764
57652005-05-12  Zack Weinberg  <zack@codesourcery.com>
5766
5767	* doc/cpp.texi: Document that #sccs is a synonym for #ident.
5768
57692005-05-12  Daniel Berlin  <dberlin@dberlin.org>
5770
5771	Fix PR tree-optimization/21532
5772	* tree-ssa-pre.c (create_expression_by_pieces): stmt
5773	needs to go onto the inserted_exprs list.
5774
57752005-05-12  Ian Lance Taylor  <ian@airs.com>
5776
5777	* c-common.h (statement_code_p): Don't declare.
5778	(STATEMENT_CODE_P): Don't define.
5779	(INIT_STATEMENT_CODES): Don't define.
5780	* c-common.c (statement_code_p): Don't define.
5781
57822005-05-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
5783
5784	* config/sparc/sparc.h: Remove dead code.
5785	* config/sparc/sparc.c (sparc_compute_frame_size): Use
5786	FIRST_PARM_OFFSET for the size of the register window area.
5787	(emit_save_regs): Rename into emit_save_or_restore_regs.
5788	Add 'action' parameter.  Use 4095 as upper bound for the offset.
5789	Pass 'action' to save_or_restore_regs.
5790	(emit_restore_regs): Delete.
5791	(sparc_expand_prologue): Call emit_save_or_restore_regs.
5792	(sparc_expand_epilogue): Likewise.
5793	* config/sparc/sparc.md (mode macro P): Move.
5794	(movdi_insn_sp32_v9, movdi_insn_sp32): Swap.
5795	(mov<V32:mode> expander): Move to the top of the V32 section.
5796	(movdf_insn_sp32_v9_no_fpu, movdf_insn_sp32_v9): Swap.
5797	(movtf_insn_sp64_hq, movtf_insn_sp64): Swap.
5798	(sibcall_epilogue): Move.
5799
58002005-05-12  Richard Earnshaw  <richard.earnshaw@arm.com>
5801
5802	PR target/21501
5803	* arm.c (arm_gen_constant): Sign-extend intermediate values when
5804	synthesizing a constant of the difference of two immediates.
5805
58062005-05-12  Richard Earnshaw  <richard.earnshaw@arm.com>
5807
5808	* arm/vfp.md (negsf2_vfp): Add alternative using integer registers.
5809	(negdf2_vfp): Likewise.  Convert to define_insn_and_split and split
5810	the alternatives using integer registers into the appropriate
5811	primitives.
5812
58132005-05-11 Kenneth Zadeck <zadeck@naturalbridge.com>
5814
5815	* bitmap.c (bitmap_elmt_to_freelist, bitmap_element_allocate,
5816	bitmap_elt_clear_from, bitmap_clear): Changed freelist structure.
5817	* bitmap.h: Fixed comments.
5818
58192005-05-11  Richard Henderson  <rth@redhat.com>
5820
5821	PR target/21412
5822	* config/ia64/ia64.c (TARGET_CANNOT_FORCE_CONST_MEM): New.
5823	(ia64_cannot_force_const_mem): New.
5824	(tls_symbolic_operand_type): New.
5825	(ia64_legitimate_constant_p): New.
5826	(ia64_expand_load_address): Return true on success.  Improve
5827	checks for when we should not split.
5828	(ia64_expand_tls_address): New addend operand.  Distribute it
5829	as appropriate to the tls_kind.  Delay referencing gp.
5830	(ia64_expand_move): Split symbolic addend as necessary.  Handle
5831	tls symbols with addends.
5832	* config/ia64/ia64-protos.h: Update.
5833	* config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): False for r0,
5834	p0, f0, f1, and r13.
5835	(LEGITIMATE_CONSTANT_P): Move to ia64_legitimate_constant_p.
5836	* config/ia64/ia64.md (UNSPEC_DTPMOD): New.
5837	(symbolic_operand splitter): Pass everything through
5838	ia64_expand_load_address and FAIL or DONE as appropriate.
5839	(load_fptr): Only accept after reload.
5840	(load_fptr_internal1, gprel64_offset, load_gprel64, load_symptr_high,
5841	load_symptr_low, load_ltoff_dtpmod,
5842	(load_dtpmod): New.
5843	(load_dtprel): Only accept tls symbols.
5844	(load_dtprel64, load_dtprel22): Likewise.
5845	(load_tprel, load_tprel64, load_tprel22): Likewise.
5846	(load_dtprel_gd, load_ltoff_dtprel, load_tprel_ie): New.
5847	(add_dtprel): Only accept tls symbols.  Canonicalize PLUS.
5848	(add_dtprel14, add_dtprel22): Likewise.
5849	(add_tprel, add_tprel14, add_tprel22): Likewise.
5850	* config/ia64/predicates.md (small_addr_symbolic_operand): New.
5851	(any_offset_symbol_operand, aligned_offset_symbol_operand): New.
5852	(got_symbolic_operand): Check CONST offsets.
5853	(tls_symbolic_operand, ld_tls_symbolic_operand): New.
5854	(ie_tls_symbolic_operand, le_tls_symbolic_operand): New.
5855	(move_operand): Don't handle tls here.  Check CONST offsets.
5856
58572005-05-11  Richard Sandiford  <rsandifo@redhat.com>
5858
5859	* config/mips/7000.md (rm7_impy_si_mult): Just match imul and imadd.
5860	Remove hilo_operand check.
5861	(rm7_impy_si_mul): Just match imul3.  Remove hilo_operand check.
5862	* config/mips/predicates.md (hilo_operand): Delete.
5863
58642005-05-11  Richard Sandiford  <rsandifo@redhat.com>
5865
5866	* config/mips/sr71k.md, config/mips/7000.md: Reformat.
5867
58682005-05-11  Kazu Hirata  <kazu@cs.umass.edu>
5869
5870	PR tree-optimizer/18472
5871	* tree-if-conv.c (tree_if_convert_stmt,
5872	if_convertible_modify_expr_p): Don't handle GOTO_EXPR.
5873
58742005-05-11  Jan Hubicka  <jh@suse.cz>
5875
5876	* Makefile.in (tree-eh.o: Kill gt-tree-eh.h dependency.
5877	(GTFILES): add except.h.
5878	* except.c (eh_status): Add throw_stmt_table.
5879	(set_eh_throw_stmt_table, get_eh_throw_stmt_table): New functions.
5880	* except.h (add_stmt_to_eh_region_fn, remove_stmt_from_eh_region_fn,
5881	lookup_stmt_eh_region_fn): Declare.
5882	(throw_stmt_node): New structure.
5883	(set_eh_throw_stmt_table, get_eh_throw_stmt_table): New.
5884	* gengtype.c (open_base_files): Add except.h to inlines.
5885	* tree-eh.c (throw_stmt_node): Kill.
5886	(record_stmt_eh_region): Update.
5887	(add_stmt_to_eh_region_fn): Break out from ...
5888	(add_stmt_to_eh_region): ... here.
5889	(remove_stmt_from_eh_region_fn): Break out from ...
5890	(remove_stmt_from_eh_region): ... here.
5891	(lookup_stmt_eh_region_fn): Break out from ...
5892	(lookup_stmt_eh_region): ... here.
5893	(honor_protect_cleanup_actions): Use build_resx.
5894	(lower_try_finally_onedest): Likewise.
5895	(lower_try_finally_copy): Likewise.
5896	(lower_try_finally_switch): Likewise.
5897	(lower_eh_constructs): Update eh table construction.
5898	* tree.c (build_resx): New.
5899	* tree.h (build_resx): Declare.
5900
59012005-05-11  H.J. Lu  <hongjiu.lu@intel.com>
5902
5903	* libgcov.c (gcov_exit): Set prefix_length to 0 if no relocation
5904	is needed.
5905
59062005-05-11  Kazu Hirata  <kazu@cs.umass.edu>
5907
5908	* fold-const.c, libgcov.c: Fix comment typos.
5909
5910	* tree-ssa-forwprop.c (forward_propagate_into_cond_1): Remove
5911	redundant code.
5912
59132005-05-11  Daniel Jacobowitz  <dan@codesourcery.com>
5914
5915	* config/arm/linux-elf.h (SUBTARGET_FRAME_POINTER_REQUIRED): Define.
5916	* config/arm/arm.h (SUBTARGET_FRAME_POINTER_REQUIRED): Provide
5917	default definition.
5918	(FRAME_POINTER_REQUIRED): Use SUBTARGET_FRAME_POINTER_REQUIRED.
5919
59202005-05-11  Nathan Sidwell  <nathan@codesourcery.com>
5921
5922	PR bootstrap/21481
5923	* crtstuff.c: Include auto-host.h again, for now.
5924
59252005-05-11  Richard Sandiford  <rsandifo@redhat.com>
5926
5927	* config/mips/24k.md: Remove trailing whitespace.
5928
59292005-05-11  David Ung  <davidu@mips.com>
5930
5931	* config/mips/mips.md (type): Add imul3.
5932	(length, hazard, may_clobber_hilo): Check for imul3.
5933	(mulsi3_mult3, muldi3_mult3, *muls, <su>mulsi3_highpart_mulhi_internal)
5934	(*<su>mulsi3_highpart_neg_mulhi_internal): Set attr to imul3.
5935	* config/mips/24k.md (r24k_int_mul3): Enable this reservation
5936	for a 3 operand mul and its bypasses.
5937	* config/mips/3000.md (r3k_imul): Add imul3 to reservations.
5938	* config/mips/4000.md (r4k_imul): Likewise.
5939	* config/mips/4100.md (r4100_imul_si, r4100_imul_di):  Likewise.
5940	* config/mips/4130.md (vr4130_class, vr4130_mulsi)
5941	(vr4130_muldi): Likewise.
5942	* config/mips/4300.md (r4300_imul_si, r4300_imul_di): Likewise.
5943	* config/mips/4600.md (r4600_imul, r4650_imul): Likewise.
5944	* config/mips/5000.md (r5k_imul_si, r5k_imul_di): Likewise.
5945	* config/mips/5400.md (ir_vr54_imul_si, ir_vr54_imul_di)
5946	(ir_vr54_imadd_si): Likewise.
5947	* config/mips/5500.md (ir_vr55_imul_si, ir_vr55_imul_di):  Likewise.
5948	* config/mips/7000.md (rm7_impy_si_mult, rm7_impy_si_mul)
5949	(rm7_impy_di): Likewise.
5950	* config/mips/9000.md (rm9k_mulsi, rm9k_muldi):  Likewise.
5951	* config/mips/generic.md (generic_imul): Likewise.
5952	* config/mips/sb1.md (ir_sb1_mulsi, ir_sb1_muldi): Likewise.
5953	* config/mips/sr71k.md (ir_sr70_imul_si, ir_sr70_imul_di):  Likewise.
5954
59552005-05-11  J"orn Rennecke <joern.rennecke@st.com>
5956
5957	PR middle-end/20371:
5958	* tree.h (record_layout_info_s): New member prev_packed.
5959	* stor-layout.c (update_alignment_for_field): Fix comment about
5960	KNOWN_ALIGN.  For MS bitfields, if we start a new run, make sure
5961	we start it properly aligned.
5962	(place_field): At the beginning of a record, pass 0 as KNOWN_ALIGN
5963	to update_alignment_for_field, and recompute it afterwards using
5964	the alignment of the record.
5965	When a packed bitfield precedes an MS bitfield, don't add padding
5966	at the end of the packed bitfield on behalf of the base type of
5967	the packed bit field.
5968	Don't adjust rli->bitpos at the end
5969	of an MS bitfield run if we already adjusted bitpos/offset for an
5970	alignment as large or larger than the bitfield type size.
5971	Take possible record alignment > BIGGEST_ALIGNMENT into account
5972	when calculating actual_align.
5973	Only put packed buit fields into rli->prev_field if they end up
5974	suitably aligned.
5975	Also set rli->remaining_in_alignment when we re-set rli->prev_field.
5976	Update rli->remaining_in_alignment when we have already started a
5977	run of bit fields and we process a packed bit field.
5978
59792005-05-11  Sebastian Pop  <pop@cri.ensmp.fr>
5980
5981	* tree-data-ref.c (find_data_references_in_loop): Give up when
5982	the body of the loop contains a CALL_EXPR or an ASM_EXPR: they
5983	may embed arbitrary side effects.
5984	Remove the assumption that GIMPLE form contains a single array
5985	access per statement.
5986	When the statement contains virtual operands, fail if it is not
5987	a MODIFY_EXPR or a CALL_EXPR.
5988	Return after the dont know node is inserted.
5989
59902005-05-11  Richard Earnshaw  <richard.earnshaw@arm.com>
5991
5992	* arm.md (negsf2, negdf2): Permit these expands when compiling for VFP.
5993
59942005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
5995
5996	PR middle-end/19807
5997	PR tree-optimization/19639
5998	* fold-const.c (try_move_mult_to_index): Handle INTEGER_CST
5999	and generic summands for char* as s * delta, too, folding &a[i]
6000	CODE x to &a[i CODE x/s].  Use tree_int_cst_equal
6001	for comparison of steps.  Convert types for index addition.
6002	(fold_binary): Adjust the callers to always dispatch to
6003	try_move_mult_to_index.
6004	* tree-ssa-propagate.c (set_rhs): Avoid setting rhs to
6005	expr with non-gimple ARRAY_REF offset.
6006
60072005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
6008
6009	* fold-const.c (fold_indirect_ref_1): Avoid removing
6010	NOP_EXPRs with type qualifiers like const.
6011
60122005-05-11  Richard Henderson  <rth@redhat.com>
6013
6014	PR c/21502
6015	* c-decl.c (finish_decl): Propagate the completed array type of
6016	a global variable into the binding.
6017
60182005-05-10  Matt Kraai  <kraai@ftbfs.org>
6019
6020	* Makefile.in (gtype-desc.o, build/genautomata.o)
6021	(build/varray.o): Depend on $(VARRAY_H).
6022
60232005-05-10  Diego Novillo  <dnovillo@redhat.com>
6024
6025	* tree-optimize.c (init_tree_optimization_passes): Re-organize
6026	optimization passes to do an initial batch of scalar cleanups.
6027
60282005-05-10  Ian Lance Taylor  <ian@airs.com>
6029
6030	* read-rtl.c (struct macro_traverse_data): Define.
6031	(map_attr_string): New static function, broken out of
6032	apply_macro_to_string.
6033	(mode_attr_index, apply_mode_maps): New static functions.
6034	(apply_macro_to_string): Call map_attr_string.
6035	(apply_macro_to_rtx): Add mode_maps and infile parameters.  Change
6036	all callers.
6037	(apply_macro_traverse): Expect data to point to a struct
6038	macro_traverse_data.
6039	(read_rtx): Add mode_maps local variable.  Use mode_traverse_data
6040	to pass data through htab_traverse.
6041	(read_rtx_1): Add mode_maps parameter.  Change all callers.
6042	Handle mode names which are attribute strings.
6043	* doc/md.texi (Substitutions): Rename from String Substitutions.
6044	Change references.  Document using attributes as modes.
6045
60462005-05-10  Zdenek Dvorak  <dvorakz@suse.cz>
6047
6048	* tree-cfg.c (tree_duplicate_sese_region): Update profile.
6049	* tree-optimize.c (init_tree_optimization_passes) Swap
6050	pass_ch and pass_profile.
6051	* tree-ssa-loop-ch.c (copy_loop_headers): Do not update profile
6052	here.  Remove rewrite_into_loop_closed_ssa call.
6053
60542005-05-10  Adrian Straetling  <straetling@de.ibm.com>
6055
6056	* config/s390/s390.c: (s390_const_double_ok_for_constraint_p): New
6057	function.
6058	(legitimate_reload_constant_p): Add check for const double zero.
6059	* config/s390/s390.md: Add comment for constraint letter 'G'.
6060	("*movdf_64", "*movdf_31", "movsf"): Add constraint and proper
6061	attributes for new case.
6062	* config/s390/s390.h: (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Define it as
6063	s390_const_double_ok_for_constraint_p.
6064	* config/s390/s390-protos.h (s390_const_double_ok_for_constraint_p):
6065	Add prototype.
6066
60672005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
6068
6069	PR tree-optimization/21170
6070	* tree-ssa-dom.c, tree-ssa-threadupdate.c: Replace
6071	rewrite_ssa_into_ssa in comments with update_ssa.
6072
60732005-05-10  Zdenek Dvorak  <dvorakz@suse.cz>
6074
6075	* tree-ssa-loop-im.c: Include hashtab.h.
6076	(struct mem_ref_loc): New.
6077	(struct mem_ref): Describe the set of references with the same
6078	shape.
6079	(max_stmt_uid, get_stmt_uid, record_mem_ref, free_mem_refs,
6080	maybe_queue_var, fem_single_reachable_address,
6081	for_each_memref, single_reachable_address,
6082	is_call_clobbered_ref, determine_lsm_reg): Removed.
6083	(record_mem_ref_loc, free_mem_ref_locs, determine_lsm_ref,
6084	hoist_memory_reference, memref_hash, memref_eq, memref_del,
6085	gather_mem_refs_stmt, gather_mem_refs, find_more_ref_vops):
6086	New functions.
6087	(rewrite_mem_refs, schedule_sm): Use mem_ref_loc list.
6088	(determine_lsm_loop): Rewritten.
6089	(determine_lsm): Do not set stmt uids.
6090
60912005-05-10  Adrian Straetling  <straetling@de.ibm.com>
6092
6093	* config/s390/s390.md: Add comment lines for 'f' and 't' constraint
6094	letters.
6095
60962005-05-10  Adrian Straetling  <straetling@de.ibm.com>
6097
6098	* config/s390/s390.md: ("anddi3","andsi3","andhi3","andqi3"): Merge.
6099	("iordi3", "iorsi3", "iorhi3", "iorqi3"): Merge.
6100	("xordi3", "xorsi3", "xorhi3", "xorqi3"): Merge.
6101
61022005-05-10  Jeff Law  <law@redhat.com>
6103
6104	* tree-ssa-dom.c (dom_opt_finalize_block): Do not call
6105	thread_across_edge for any abnormal edges.
6106
61072005-05-10  Richard Henderson  <rth@redhat.com>
6108
6109	* config/ia64/ia64.c (ia64_expand_atomic_op): New.
6110	* config/ia64/ia64-protos.h: Declare it.
6111	* config/ia64/sync.md (I124MODE, FETCHOP, fetchop_name): New.
6112	(sync_add<I48MODE>, sync_old_add<I48MODE>): Remove.
6113	(sync_<FETCHOP><IMODE>, sync_nand<IMODE>): New.
6114	(sync_old_<FETCHOP><IMODE>, sync_old_nand<IMODE>): New.
6115	(sync_new_<FETCHOP><IMODE>, sync_new_nand<IMODE>): New.
6116	(cmpxchg_rel_<I124MODE>): Split from cmpxchg_acq_<IMODE>.  Zero
6117	extend result; use release semantics.
6118	(cmpxchg_rel_di): Rename from cmpxchg_acq_<IMODE>; use release.
6119	(sync_val_compare_and_swap_<IMODE>): Update to match.
6120
61212005-05-10  Richard Henderson  <rth@redhat.com>
6122
6123	* optabs.c (expand_compare_and_swap_loop): Don't clobber old value
6124	before comparing it for success.
6125
61262005-05-10  Richard Henderson  <rth@redhat.com>
6127
6128	* config/ia64/sync.md (sync_add<I48MODE>): Fix arguments for
6129	no return value pattern.
6130
61312005-05-10  Grigory Zagorodnev  <grigory.zagorodnev@intel.com>
6132	    H.J. Lu  <hongjiu.lu@intel.com>
6133
6134	* libgcov.c (create_file_directory): New function. Create
6135	directory for the given file name.
6136	(gcov_max_filename): New static var. Keeps size of the longest
6137	file name.
6138	(gcov_exit): Always try to create directory for output
6139	file. Relocate each filename basing on environment vars.
6140	(__gcov_init): Remember the longest file name.
6141	* tsystem.h: include filenames.h to get IS_DIR_SEPARATOR
6142	* doc/gcov.texi (Cross-profiling): New node documenting
6143	cross-profiling management.
6144	* doc/invoke.texi (-fprofile-arcs): Add xref to cross-profiling.
6145
61462005-05-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
6147
6148	* config/sparc/sparc.c (mem_min_alignment): Do not rely
6149	on MEM_ALIGN if TARGET_UNALIGNED_DOUBLES.
6150
61512005-05-10  Bob Wilson  <bob.wilson@acm.org>
6152
6153	* config/xtensa/lib1funcs.asm (__udivsi3, __divsi3): Rearrange special
6154	case code to avoid one move instruction.
6155	(__umodsi3, __modsi3): Merge duplicated code sequences.
6156
61572005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
6158
6159	* config/mips/24k.md, config/sh/divtab.c, config/sh/sh.c,
6160	config/sh/sh.md, config/sh/superh.h: Fix comment typos.
6161	* doc/invoke.texi: Fix typos.
6162
6163	* tree-data-ref.c (analyze_array_indexes, analyze_array,
6164	init_data_ref, access_functions_are_affine_or_constant_p,
6165	free_data_refs): Use VEC instead of VARRAY.
6166	* tree-data-ref.h (data_reference): Change the type of
6167	access_fns to VEC(tree,gc)*.
6168	(DR_ACCESS_FN, DR_NUM_DIMENSIONS): Use VEC instead of VARRAY.
6169
61702005-05-10  Gabor Loki <loki@gcc.gnu.org>
6171
6172	PR c/17913
6173	* c-typeck.c (build_conditional_expr): Remove reducing cond_expr.
6174	* fold-const.c (fold): Expand the condition of reducing cond_expr.
6175	(contains_label_1, contains_label_p): New functions for checking
6176	labels in a sub-tree.
6177
61782005-05-10  Joseph S. Myers  <joseph@codesourcery.com>
6179
6180	PR c/21342
6181	* c-decl.c (pushdecl): When there is a declaration in the current
6182	scope and the declarations are external linkage, check for
6183	compatibility with the type in the external scope and update the
6184	type in the external scope with the composite type information.
6185	Do not form a composite type of the new type and the visible type
6186	if they are incompatible.
6187
61882005-05-10  Nathan Sidwell  <nathan@codesourcery.com>
6189
6190	* crtstuff.c: Revert part of 2005-05-08 Change.
6191	(IN_LIBGCC2): Define.
6192
61932005-05-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
6194
6195	* config/sparc/sparc.c (fp_sethi_p): Test !SPARC_SIMM13_P and
6196	remove redundant test.
6197	(fp_mov_p): Accept 0.
6198	(fp_high_losum_p): Remove redundant test.
6199	* config/sparc/predicates.md (const_high_operand): Explicitly test
6200	(not small_int_operand).
6201	(fp_const_high_losum_operand): New.
6202	* config/sparc/sparc.md (movsi_insn): Do not emit 'clr'.  Reorder.
6203	(movdi_insn_sp32_v9): Use canonical predicates.
6204	(movdi_insn_sp32): Test !TARGET_V9 instead of !TARGET_ARCH64.
6205	(movdi_insn_sp64_novis): Delete.
6206	(movdi_insn_sp64_vis): Rename into movdi_insn_sp64.
6207	(movsf_insn_novis): Delete.
6208	(movsf_insn_vis): Rename into movsf_insn.
6209	(movsf_no_f_insn): Rename into movsf_insn_no_fpu.
6210	(movsf_lo_sum): Use fp_const_high_losum_operand.
6211	(movsf_high): Likewise.
6212	(movsf_high_losum splitter): Likewise.
6213	(mov<V32:mode> expander): Use register_or_zero_operand.
6214	(mov<V64:mode> expander): Likewise.
6215	(movdf_insn_sp32): Use register_or_zero_operand.
6216	(movdf_no_e_insn_sp32): Use register_or_zero_operand.
6217	Rename into movdf_insn_sp32_no_fpu.
6218	(movdf_no_e_insn_v9_sp32): Use register_or_zero_operand.
6219	Rename into movdf_insn_sp32_v9_no_fpu.
6220	(movdf_insn_v9only_novis): Delete.
6221	(movdf_insn_v9only_vis): Rename into movdf_insn_sp32_v9.
6222	(movdf_insn_sp64_novis): Delete.
6223	(movdf_insn_sp64_vis): Rename into movdf_insn_sp64.
6224	(movdf_no_e_insn_sp64): Use register_or_zero_operand.
6225	Rename into movdf_insn_sp64_no_fpu.
6226	(movtf expander): Use register_or_zero_operand.
6227	(movtf_insn_sp32): Delete.
6228	(movtf_insn_vis_sp32): Use register_or_zero_operand.
6229	Rename into movtf_insn_sp32.
6230	(movtf_no_e_insn_sp32): Use register_or_zero_operand.
6231	Rename into movtf_insn_sp32_no_fpu.
6232	(movtf_insn_hq_sp64): Delete.
6233	(movtf_insn_hq_vis_sp64): Use register_or_zero_operand.
6234	Rename into movtf_insn_sp64_hq.
6235	(movtf_insn_sp64): Delete.
6236	(movtf_insn_vis_sp64): Use register_or_zero_operand.
6237	Rename into movtf_insn_sp64.
6238	(movtf_no_e_insn_sp64): Use register_or_zero_operand.
6239	Rename into movtf_insn_sp64_no_fpu.
6240
62412005-05-10  Nathan Sidwell  <nathan@codesourcery.com>
6242
6243	* config/stormy16/stormy16.c (xstormy16_emit_cbranch): Use
6244	gcc_assert and gcc_unreachable as appropriate.
6245	(xstormy16_split_cbranch, xstormy16_output_cbranch_hi,
6246	xstormy16_output_cbranch_si, xstormy16_split_move,
6247	xstormy16_initial_elimination_offset,
6248	xstormy16_encode_section_info, xstormy16_print_operand_address,
6249	xstormy16_expand_call, xstormy16_expand_arith,
6250	xstormy16_output_shift, xstormy16_init_builtins): Likewise.
6251
62522005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
6253
6254	* tree-outof-ssa.c (_elim_graph): Change the type of nodes and
6255	const_copies to VEC(tree,heap)*.
6256	(new_elim_graph, delete_elim_graph, elim_graph_size,
6257	elim_graph_add_node, eliminate_build, eliminate_phi): Use VEC
6258	instead of VARRAY.
6259
62602005-05-10  Joseph S. Myers  <joseph@codesourcery.com>
6261
6262	PR other/21052
6263	* doc/extend.texi (Type Attributes): Correct example syntax.
6264
62652005-05-09  Joseph S. Myers  <joseph@codesourcery.com>
6266
6267	PR c/21160
6268	* doc/invoke.texi (-Wuninitialized): Update documentation.
6269
62702005-05-09  Richard Earnshaw  <richard.earnshaw@arm.com>
6271
6272	* arm.c (const_ok_for_arm): Use a faster algorithm.
6273
62742005-05-09  David Edelsohn  <edelsohn@gnu.org>
6275
6276	PR target/21477
6277	* config/rs6000/rs6000.md (add_op2): New.
6278	(add<mode>3): Use it.
6279
62802005-05-09  Richard Earnshaw  <richard.earnshaw@arm.com>
6281
6282	* arm.c (arm_gen_constant): Add new heuristic for generating
6283	constant integers that can be expressed as the difference of two
6284	valid immediates.
6285
62862005-05-09  Roger Sayle  <roger@eyesopen.com>
6287
6288	* c-tree.h (parser_build_unary_op): New prototype.
6289	* c-typeck.c (parser_build_unary_op): New function to construct
6290	a unary operation in the C parser.
6291	* c-parser.c (c_parser_unary_expression):  Use the new function
6292	parser_build_unary_op when appropriate.
6293
62942005-05-09  Mark Mitchell  <mark@codesourcery.com>
6295
6296	PR 18655
6297	* dwarf2out.c (output_call_frame_info): Use DWARF2_FRAME_REG_OUT
6298	before outputting DWARF_FRAME_RETURN_COLUMN.
6299
63002005-05-09  Adrian Straetling  <straetling@de.ibm.com>
6301
6302	* config/s390/s390.c: (s390_branch_condition_mask,
6303	s390_branch_condition_mnemonic, s390_extra_constraint_str,
6304	s390_const_ok_for_constraint_p, s390_expand_plus_operand,
6305	legitimize_pic_address, s390_emit_tls_call_insn,
6306	legitimize_tls_address, legitimize_tls_address,
6307	s390_expand_addcc, print_shift_count_operand, print_operand,
6308	addr_generation_dependency_p, annotate_constant_pool_refs,
6309	s390_split_branches, find_constant_pool_ref,
6310	replace_constant_pool_ref, s390_add_constant, s390_find_constant,
6311	s390_find_execute, s390_mainpool_start, s390_chunkify_start,
6312	s390_output_pool_entry, s390_function_value,
6313	s390_call_saved_register_used, s390_emit_call): Replace
6314	conditional aborts by gcc_assert and unconditional by gcc_unreachable.
6315	(s390_select_ccmode, s390_match_ccmode_set, s390_extract_part,
6316	s390_cannot_force_const_mem, s390_output_dwarf_dtprel,
6317	get_some_local_dynamic_name, s390_function_arg_size,
6318	s390_function_arg_advance, s390_function_arg,
6319	s390_expand_builtin, s390_gen_rtx_const_DI): Replace abort in
6320	default case by gcc_unreachable.
6321	* config/s390/s390.md: ("*cjump_31", "*icjump_31", "*jump31"): Replace
6322	conditional abort by gcc_assert.
6323	("doloop_si31"): Replace abort in last else by gcc_unreachable.
6324	("main_pool", "pool"): Replace unconditional abort by gcc_unreachable.
6325
63262005-05-09  Adrian Straetling  <straetling@de.ibm.com>
6327
6328	* config/s390/s390.c: (s390_decompose_address,
6329	tls_symbolic_operand, legitimate_pic_operand_p,
6330	legitimate_constant_p, legitimate_reload_constant_p,
6331	s390_expand_plus_operand, legitimate_address_p,
6332	legitimate_la_operand_p, ): Remove 'register' from signature.
6333	(symbolic_reference_mentioned_p,
6334	tls_symbolic_reference_mentioned_p): Remove 'register' from local
6335	variable declarations.
6336	(legitimize_address): Remove 'register' from
6337	signature and local variable declarations.
6338
63392005-05-09  Adrian Straetling  <straetling@de.ibm.com>
6340
6341	* config/s390/s390-protos.h: (s390_match_ccmode,
6342	s390_match_ccmode_set, reg_used_in_mem_p,
6343	symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
6344	legitimate_la_operand_p, preferred_la_operand_p,
6345	s390_short_displacement, addr_generation_dependency_p,
6346	legitimate_reload_constant_p, legitimate_address_p): Change return type
6347	into 'bool'.
6348	(s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
6349	* config/s390/s390.c: (s390_match_ccmode,
6350	symbolic_reference_mentioned_p, tls_symbolic_reference_mentioned_p,
6351	legitimate_reload_constant_p): Change return type into 'bool'.
6352	(preferred_la_operand_p,legitimate_la_operand_p, legitimate_address_p):
6353	Likewise.  Additionally adapted comment.
6354	(s390_extra_constraint_p): Change Comment to reflect 'int' return type.
6355	(s390_tm_ccmode): Change type of parameter "mixed" into 'bool'.
6356	(s390_decompose_address): Change the type of the internal flags
6357	"pointer", "base_ptr", "indx_ptr", and the return value into 'bool'.
6358	(struct s390_address): Change type of "pointer" into bool.
6359	* config/s390/s390.md: ("*tmdi_reg", "*tmsi_reg", "tm<mode>_full"):
6360	Adapt calls for 's390_tm_ccmode' to the new signature.
6361
63622005-05-09  Adrian Straetling  <straetling@de.ibm.com>
6363
6364	* config/s390/s390.c: (s390_match_ccmode_set,
6365	s390_branch_condition_mnemonic, s390_short_displacement,
6366	s390_decompose_address, get_thread_pointer, legitimize_tls_address,
6367	print_shift_count_operand, get_some_local_dynamic_name,
6368	get_some_local_dynamic_name_1, reg_used_in_mem_p,
6369	addr_generation_dependency_p, s390_split_branches,
6370	annotate_constant_pool_refs, find_constant_pool_ref,
6371	replace_constant_pool_ref, find_ltrel_base, replace_ltrel_base,
6372	s390_optimize_prologue, find_unused_clobbered_reg, s390_frame_area,
6373	s390_register_info, s390_frame_info, s390_init_frame_layout,
6374	s390_update_frame_layout, save_fpr, restore_fpr, save_gprs,
6375	restore_gprs, s390_function_arg_size, s390_function_arg_float,
6376	s390_init_machine_status, s390_assemble_integer, s390_handle_option,
6377	s390_encode_section_info, s390_cannot_force_const_mem,
6378	s390_delegitimize_address, s390_return_in_memory, s390_init_builtins,
6379	s390_expand_builtin, s390_output_mi_thunk, s390_safe_attr_type,
6380	s390_adjust_priority, s390_issue_rate,
6381	s390_first_cycle_multipass_dfa_lookahead, s390_cannot_copy_insn_p,
6382	s390_rtx_costs, s390_address_cost, s390_reorg, s390_valid_pointer_mode,
6383	s390_build_builtin_va_list, s390_gimplify_va_arg,
6384	s390_function_ok_for_sibcall, s390_call_saved_register_used,
6385	s390_pass_by_reference, s390_fixed_condition_code_regs,
6386	s390_cc_modes_compatible s390_mainpool_start,, s390_mainpool_finish,
6387	s390_mainpool_cancel, s390_chunkify_start, s390_chunkify_finish,
6388	s390_chunkify_cancel, s390_start_pool, s390_end_pool,
6389	s390_add_pool_insn, s390_find_pool, s390_add_constant,
6390	s390_find_constant, s390_add_execute, s390_find_execute,
6391	s390_execute_label, s390_execute_target, s390_dump_pool,
6392	s390_dump_execute, s390_alloc_pool, s390_free_pool): Remove prototypes.
6393	Move target macro definitions to the end of the file.  Move several
6394	functions within the file to assure correct compiling.
6395
63962005-05-09  Steven Bosscher  <stevenb@suse.de>
6397
6398	* calls.c (purge_reg_equiv_notes): Remove, fold into...
6399	(fixup_tail_calls): ...here.  Only look at insns between the
6400	start of the function and the FUNCTION_BEG insn note.
6401
6402	* gcse.c (one_cprop_pass): Fix typos in dumps.
6403
6404	* tree-ssa-operands.h (FOR_EACH_PHI_ARG): Fix typos.
6405
64062005-05-09  Adrian Straetling  <straetling@de.ibm.com>
6407
6408	* config/s390/s390.h: Move xxx_REGNUM definitions to s390.md.
6409	* config/s390/s390.md: ("SIBCALL_REGNUM", "BASE_REGNUM",
6410	"RETURN_REGNUM", "CC_REGNUM", "TP_REGNUM"): New constants.
6411	Replace every occurrence of '(reg:<MODE> 33)' by '(reg:<MODE>
6412	CC_REGNUM)'.
6413	("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Replace
6414	'(reg:<MODE> 36)' by '(reg:<MODE> TP_REGNUM)'.
6415	("*sibcall_br", "*sibcall_value_br"): Replace '(reg:DI 1)' by '(reg:DI
6416	REG_SC)'.
6417
64182005-05-09  Adrian Straetling  <straetling@de.ibm.com>
6419
6420	* config/s390/s390.md: ("gf") New mode attribute.
6421	("fixuns_truncdfdi2", "fixuns_truncdfsi2", "fixuns_truncsfdi2",
6422	"fixuns_truncsfsi2"): Merge.
6423	("fix_truncdfdi2", "fix_truncsfdi2"): Merge.
6424	("fix_truncdfdi2_ieee", "fix_truncdfsi2_ieee", "fix_truncsfdi2_ieee",
6425	"fix_truncsfsi2_ieee"): Merge.
6426
64272005-05-09  Adrian Straetling  <straetling@de.ibm.com>
6428
6429	* config/s390/s390.md: ("FPR") New mode macro.
6430	("de", "dee"): New mode attributes.
6431	("cmpdf", "cmpsf"): Merge.
6432	("*cmpdf_ccs_0", "*cmpsf_ccs_0"): Merge.
6433	("*cmpdf_ccs_0_ibm", "*cmpdf_ccs_0_ibm"): Merge.
6434	("*cmpdf_ccs", "*cmpsf_ccs"): Merge.
6435	("*cmpdf_ccs_ibm", "*cmpsf_ccs_ibm"): Merge.
6436	("floatdidf2", "floatdisf2"): Merge.
6437	("adddf3", "addsf3"): Merge.
6438	("*adddf3", "*addsf3"): Merge.
6439	("*adddf3_cc", "*addsf3_cc"): Merge.
6440	("*adddf3_cconly", "*addsf3_cconly"): Merge.
6441	("*adddf3_ibm", "*addsf3_ibm"): Merge.
6442	("subdf3", "subsf3"): Merge.
6443	("*subdf3", "*subsf3"): Merge.
6444	("*subdf3_cc", "*subsf3_cc"): Merge.
6445	("*subdf3_cconly", "*subsf3_cconly"): Merge.
6446	("*subdf3_ibm", "*subsf3_ibm"): Merge.
6447	("muldf3", "mulsf3"): Merge.
6448	("*muldf3", "*mulsf3" "): Merge.
6449	("*muldf3_ibm", "*mulsf3_ibm"): Merge.
6450	("*fmadddf", "*fmaddsf"): Merge.
6451	("*fmsubdf", "*fmsubsf"): Merge.
6452	("divdf3", "divsf3"): Merge.
6453	("*divdf3", "*divsf3"): Merge.
6454	("*divdf3_ibm", "*divsf3_ibm"): Merge.
6455	("negdf2", "negsf2"): Merge.
6456	("*negdf2_cc", "*negsf2_cc"): Merge.
6457	("*negdf2_cconly", "*negsf2_cconly"): Merge.
6458	("*negdf2", "*negsf2"): Merge.
6459	("*negdf2_ibm", "*negsf2_ibm"): Merge.
6460	("absdf2", "abssf2"): Merge.
6461	("*absdf2_cc", "*abssf2_cc"): Merge.
6462	("*absdf2_cconly", "*abssf2_cconly"): Merge.
6463	("*absdf2", "*abssf2"): Merge.
6464	("*absdf2_ibm", "*abssf2_ibm"): Merge.
6465	("*negabsdf2_cc", "*negabssf2_cc"): Merge.
6466	("*negabsdf2_cconly", "*negabssf2_cconly"): Merge.
6467	("*negabsdf2", "*negabssf2"): Merge.
6468	("sqrtdf2", "sqrtsf2"): Merge.
6469
64702005-05-09  Adrian Straetling  <straetling@de.ibm.com>
6471
6472	* config/s390/s390.c: (s390_adjust_priority): Adapt to changed
6473	attribute names.
6474	* config/s390/2084.md: ("x_fsimpd", "x_fsimps", "x_fdivd", "x_fdivs",
6475	"x_floadd", "x_floads", "x_fstored", "x_fstores"): Rename to
6476	("x_fsimpdf", "x_fsimpsf", "x_fdivdf", "x_fdivsf", "x_floaddf",
6477	"x_floadsf", "x_fstoredf", "x_fstoresf") and replace 'type'
6478	attribute names.
6479	* config/s390/s390.md: ("type"): Rename "fsimpd, fsimps, floadd, floads,
6480	fstored, fstores, fmuld, fmuls, fdivd, fdivs, fsqrtd, fsqrts" to
6481	"fsimpdf, fsimpsf, floaddf, floadsf, fstoredf, fstoresf, fmuldf,
6482	fmulsf, fdivdf, fdivsf, fsqrtdf, fsqrtsf".
6483	("*cmpdf_ccs_0", "*cmpdf_css_0_ibm", "*cmpdf_ccs",
6484	"*cmpdf_ccs_ibm", "*cmpsf_ccs_0", "*cmpsf_css_0_ibm",
6485	"*cmpsf_ccs", "*cmpsf_ccs_ibm", "*movdi_64", "*movdi_31",
6486	"*movsi_zarch", "*movsi_esa", "*movdf_64", "*movdf_31", "movsf",
6487	"*muldf3", "*muldf3_ibm", "*fmadddf", "*fmsubdf", "*mulsf3",
6488	"mulsf3_ibm", "*fmaddsf", "fmsubsf", "*divdf3", "*divdf3_ibm",
6489	"*negdf2_cc", "*negdf2_cconly", "*negdf2", "*negdf2_ibm",
6490	"*negsf2_cc", "*negsf2_cconly", "*negsf2", "*absdf2_cc",
6491	"*absdf2_cconly", "*absdf2", "*absdf2_ibm", "*abssf2_cc",
6492	"*abssf2_cconly", "*abssf2", "*abssf2_ibm", "*negabsdf2_cc",
6493	"*negabsdf2_cconly", "*negabsdf2", "*negabssf2_cc",
6494	"*negabssf2_cconly", "*negabssf2", "sqrtdf2", "sqrtsf2"): Rename
6495	'type' value.
6496	("*divsf3"): Additionally rename second pattern to
6497	"*divsf3_ibm".
6498	("truncdfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm",
6499	"*adddf3", "*adddf3_cc", "*adddf3_cconly", "*adddf3_ibm",
6500	"*addsf3", "*addsf3_cc", "*addsf3_cconly", "*subdf3",
6501	"subdf3_cc", "*subdf3_cconly", "*subdf3_ibm", "*subsf3",
6502	"subsf3_cc", "*subsf3_cconly", "*subsf3_ibm"): Merge identical
6503	'type values' and rename 'type' value.
6504	("*addsf3"): Additionally rename second pattern to
6505	"*addsf3_ibm".
6506
65072005-05-09  Adrian Straetling  <straetling@de.ibm.com>
6508
6509	* config/s390/s390.md: ("SHIFT"): New mode macro.
6510	("lr", "shift"): New mode attributes.
6511	("ashldi3", "lshrdi3"): Merge.
6512	("*ashldi3_31", "*lshrdi3"_31): Merge.
6513	("*ashldi3_64", "*lshrdi3"_64): Merge.
6514	("ashlsi3", "lshrsi3"): Merge.
6515
65162005-05-09  Adrian Straetling  <straetling@de.ibm.com>
6517
6518	* config/s390/s390.md: ("DSI", "SCOND"): New mode
6519	macros.
6520	("E", "g"): New mode attributes.
6521	("*adddi3_alc_cc", "*addsi3_alc_cc"): Merge.
6522	("*adddi3_alc", "*addsi3_alc"): Merge.
6523	("*subdi3_slb_cc", "*subsi3_slb_cc"): Merge.
6524	("*subdi3_slb", "*subsi3_slb"): Merge.
6525	("adddicc", "addsicc"): Merge.
6526	("*sconddi", "*scondsi"): Merge.
6527	("*sconddi_neg", "*scondsi_neg"): Merge.
6528	("sltu", "sgtu", "sleu", "sgeu"): Merge.
6529	("negdi2", "negsi2"): Extract expander pattern from
6530	"negsi2" and merge with "negdi2".
6531	("*negdi2"): Merge with instruction pattern of "negsi2".
6532	("*negdi2_cc", "*negsi2_cc"): Merge.
6533	("*negdi2_cconly", "*negsi2_cconly"): Merge.
6534	("rotldi3", "rotlsi3"): Merge.
6535
65362005-05-09  Adrian Straetling  <straetling@de.ibm.com>
6537
6538	* config/s390/s390.md: ("hc"): New mode attribute.
6539	("extendhidi2", "extendqidi2"): Merge.
6540	("*extendhidi2", "*extendqidi2"): Merge.
6541	("extendhisi2", "extendqisi2"): Merge.
6542	("zero_extendhidi2", "zero_extendqidi2"): Merge.
6543	("*zero_extendhidi2", "*zero_extendqidi2"): Merge.
6544	Merged 2 define_split.
6545	("*zero_extendhisi2", "*zero_extendqisi2"): Merge.
6546	("*zero_extendhisi2_64", "*zero_extendqisi2_64"): Merge.
6547
65482005-05-09  Adrian Straetling  <straetling@de.ibm.com>
6549
6550	* config/s390/s390.md: ("COMPARE"): New mode macro.
6551	("beq", "bne", "bgt", "bgtu", "blt", "bltu", "bge", "bgeu",
6552	"ble", "bleu", "bunordered", "bordered", "buneq", "bunlt",
6553	"bungt", "bunle", "bunge", "bltgt"): Merge.
6554
65552005-05-09  Adrian Straetling  <straetling@de.ibm.com>
6556
6557	* config/s390/s390.md: ("INT"): New mode macro.
6558	("one_cmpldi2", "one_cmplsi2", "one_cmplhi2", "one_cmplqi2"):
6559	Merge.
6560
65612005-05-09  Adrian Straetling  <straetling@de.ibm.com>
6562
6563	* config/s390/s390.md: ("GPR", "P"): New mode macros.
6564	("cmpdi", "cmpsi"): Merge.
6565	("strlendi", "strlensi"): Merge.
6566	("*strlendi", "*strlensi"): Merge.
6567	("movmemdi", "movmemsi"): Merge.
6568	("clrmemdi", "clrmemsi"): Merge.
6569
65702005-05-09  Adrian Straetling  <straetling@de.ibm.com>
6571
6572	* config/s390/s390.md: ("HQI"): New mode macro.
6573	("icm_lo", "icm_hi", "max_uint"): New mode attributes.
6574	("*tmhi_full", "*tmqi_full"): Merge.
6575	("*tsthiCCT", "*tstqiCCT"): Merge.
6576	("*tsthi", "*tstqi"): Merge.
6577	("*tsthi_cconly", "tstqi_cconly"): Merge.
6578	("*sethighhisi", "*sethighqisi"): Merge.
6579
65802005-05-09  Kazu Hirata  <kazu@cs.umass.edu>
6581
6582	* crtstuff.c, integrate.h, tree-scalar-evolution.h,
6583	config/alpha/unicosmk.h, config/arc/arc.md,
6584	config/arm/bpabi.h, config/arm/coff.h, config/arm/elf.h,
6585	config/arm/ieee754-df.S, config/arm/ieee754-sf.S,
6586	config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h,
6587	config/arm/semi.h, config/arm/uclinux-elf.h,
6588	config/arm/wince-pe.h, config/fr30/fr30.c,
6589	config/rs6000/altivec.h: Update copyright.
6590
65912005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
6592
6593	* config/pdp11/pdp11.c (pdp11_output_function_prologue): Use
6594	gcc_assert and gcc_unreachable as appropriate.
6595	(pdp11_output_function_epilogue, output_move_double,
6596	output_move_quad, print_operand_address, output_jump,
6597	output_addr_const_pdp11): Likewise.
6598	* config/pdp11/pdp11.h (FUNCTION_PROFILER,
6599	ASM_OUTPUT_ALIGN): Likewise.
6600	* config/pdp11/pdp11.md: Likewise.
6601	(extendhisi2, subhi3, subqi3): Likewise.
6602
66032005-05-09  David Edelsohn  <edelsohn@gnu.org>
6604
6605	PR middle-end/21237
6606	* dojump.c (do_jump, MINUS_EXPR): Build NE_EXPR and fall through
6607	to NE_EXPR case.
6608
66092005-05-09  Kazu Hirata  <kazu@cs.umass.edu>
6610
6611	* config/ia64/ia64.c: Fix a comment typo.
6612
66132005-05-09  Richard Earnshaw  <rearnsha@arm.com>
6614
6615	PR target/21397
6616	* arm.c (ARM_OPT_SET_CPU, ARM_OPT_SET_ARCH, ARM_OPT_SET_TUNE): Define.
6617	(arm_override_options): Use them instead of manifest constants.  Don't
6618	allow -march to override the -mtune setting.
6619
66202005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
6621
6622	* config/iq2000/iq2000.c (abort_with_insn): Use fancy_abort.
6623	(gen_int_relational): Use gcc_unreachable and gcc_assert as necessary.
6624	(function_arg_advance, function_arg, save_restore_insns,
6625	iq2000_expand_prologue, iq2000_output_conditional_branch,
6626	expand_one_builtin, print_operand):
6627	* config/iq2000/iq2000.md (tablejump): Likewise.
6628
66292005-05-09  David Ung  <davidu@mips.com>
6630
6631	* config/mips/mips.h (processor_type): Add names for the 24K.
6632	* config/mips/mips.c (mips_cpu_info_table): Add names for the 24K
6633	processor family.
6634	* config/mips/mips.md (cnv_mode): New attribute for recording the
6635	conversion types of float convert insns.
6636	(cpu): Add 24k and 24kx.
6637	(include): Include 24k.md file.
6638	(truncdfsf2, extendsfdf2, fix_truncdfsi2_insn, fix_truncdfsi2_macro)
6639	(fix_truncdfdi2, fix_truncsfdi2, floatsidf2, floatdidf2, floatsisf2)
6640	(floatdisf2): Setup cnv_mode.
6641	(fix_truncsfsi2_insn, fix_truncsfsi2_macro): Changed mode to SF and
6642	setup cnv_mode.
6643	* config/mips/24k.md: New file, contains 24k DFA pipeline
6644	description.
6645
66462005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
6647
6648	* config/sh/sh.c (print_operand_address): Use gcc_assert and
6649	gcc_unreachable as appropriate.
6650	(print_operand, prepare_move_operands, prepare_scc_operands,
6651	output_movedouble, output_branch, shift_insns_rtx, gen_shifty_op,
6652	gen_shl_and, shl_sext_kind, gen_datalabel_ref, dump_table,
6653	fixup_mova, gen_far_branch, sh_reorg, split_branches,
6654	final_prescan_insn, output_stack_adjust, sh_expand_epilogue,
6655	sh_set_return_address, sh_setup_incoming_varargs,
6656	initial_elimination_offset, sh_pch_valid_p, get_free_reg,
6657	sh_expand_builtin, sh_output_mi_thunk, extract_sfunc_addr,
6658	check_use_sfunc_addr): Likewise.
6659	* config/sh/netbsd-elf.h (FUNCTION_PROFILER): Likewise.
6660	* config/sh/sh.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise.
6661	* config/sh/symbian.c (sh_symbian_mark_dllexport,
6662	sh_symbian_mark_dllimport): Likewise.
6663	* config/sh/sh.md: Likewise.
6664	(movdicc, call_pop, call_value_pop, casesi_worker_1,
6665	casesi_worker_2, casesi_shift_media, casesi_load_media,
6666	return_media): Likewise.
6667
66682005-05-08  Roger Sayle  <roger@eyesopen.com>
6669
6670	PR inline-asm/8788
6671	* stmt.c (expand_asm_operands): Avoid calling force_reg on BLKmode
6672	operands.
6673
66742005-05-08  Richard Henderson  <rth@redhat.com>
6675
6676	* config/alpha/alpha.c (adjust_address): Fix typo last change.
6677
66782005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
6679
6680	* config/m68hc11/m68hc11.h (REG_VALID_P): A regno must be >= 0
6681	and -1 can happen in reg_renumber when no hard register is assigned.
6682
66832005-05-08  Steven Bosscher  <stevenb@suse.de>
6684	    Kazu Hirata  <kazu@cs.umass.edu>
6685
6686	PR tree-optimization/14841, tree-optimization/15838
6687	* tree-ssa-ccp.c (fold_const_aggregate_ref): New.
6688	(evaluate_stmt): Call it.
6689
66902005-05-08  Jakub Jelinek  <jakub@redhat.com>
6691
6692	* config/ia64/ia64.c (ia64_override_options): Don't set
6693	ia64_flag_var_tracking and clear flag_var_tracking here...
6694	(ia64_file_start): ... but here.
6695
66962005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
6697
6698	* config/m68hc11/m68hc11.c (m68hc11_emit_libcall): Use gcc_assert
6699	and gcc_unreachable as appropriate.
6700	(expand_prologue, expand_epilogue, m68hc11_gen_lowpart,
6701	m68hc11_gen_highpart, print_operand, print_operand_address,
6702	m68hc11_expand_compare, m68hc11_expand_compare_and_branch,
6703	m68hc11_gen_movhi): Likewise.
6704	* config/m68hc11/m68hc11.h (HARD_X_REGNUM): Reword comment.
6705	* config/m68hc11/m68hc11.md: Reword comment.
6706
67072005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
6708
6709	PR target/21281
6710	* config/m68hc11/predicates.md (splitable_operand): An immediate is
6711	allowed.
6712
67132005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
6714
6715	* config/m68hc11/predicates.md (reg_or_some_mem_operand): Do not allow
6716	the 68HC12 address indirect addressing mode as it is not supported by
6717	bset and bclr.
6718	* config/m68hc11/m68hc11-protos.h
6719	(m68hc11_valid_addressing_p): Declare.
6720	(m68hc11_add_mode): Declare.
6721	* config/m68hc11/m68hc11.c (m68hc11_valid_addressing_p): Rename from
6722	register_indirect_p and export it.
6723	(m68hc11_z_replacement): Use emit_insn_after when adding the save Z
6724	instruction so that it is part of the good BB.
6725	(m68hc11_gen_movhi): Fix invalid generation of indexed indirect
6726	addressing with movw.
6727	(m68hc11_gen_movqi): Use pula and pulb instead of lda and ldb for
6728	68HC12.
6729	* config/m68hc11/m68hc11.h (ADDR_STRICT, ADDR_INCDEC, ADDR_INDEXED,
6730	ADDR_OFFSET, ADDR_INDIRECT, ADDR__CONST): Moved from m68hc11.c.
6731	* config/m68hc11/m68hc11.md ("movhi_const0"): Use this pattern only
6732	for 68HC11.
6733	("*movhi_68hc12"): Handle movhi_const0.
6734	("*subhi3", "subqi3"): Use general_operand for operand 1.
6735	("*subhi3_zext"): Likewise.
6736
67372005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
6738
6739	PR target/19051
6740	* config/m68hc11/m68hc11.md ("mulqi3"): Use general_operand for
6741	operand 1 and fix constraints.
6742	("mulqihi3"): Use general_operand for operand 2.
6743
67442005-05-08  Julian Brown  <julian@codesourcery.com>
6745	    H.J. Lu  <hongjiu.lu@intel.com>
6746	    Paul Brook  <paul@codesourcery.com>
6747
6748	* configure.ac: Set ld_vers_major, ld_vers_minor and ld_vers_patch for
6749	GNU linker. Support linker version x.x.x.x.x. Require GNU linker
6750	20050308/2.16.0 or newer for comdat group.
6751	* configure: Regenerated.
6752	* config.in: Regenerated.
6753	* varasm.c (default_function_rodata_section): Put .rodata section in
6754	COMDAT group when necessary.
6755	(default_elf_asm_named_section): Rename HAVE_GAS_COMDAT_GROUP to
6756	HAVE_COMDAT_GROUP.
6757	(default_unique_section_1): Don't use .gnu.linkonce when COMDAT is
6758	available.
6759
67602005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
6761
6762	* tree-dfa.c (referenced_vars, add_referenced_var): Use VEC
6763	instead of VARRAY.
6764	* tree-flow.h (num_referenced_var, referenced_var): Likewise.
6765	* tree-into-ssa.c (mark_def_site_blocks): Likewise.
6766	* tree-ssa.c (init_tree_ssa, delete_tree_ssa): Likewise.
6767	* tree-tailcall.c (suitable_for_tail_opt_p): Likewise.
6768
67692005-05-08  Stephane Carrez  <stcarrez@nerim.fr>
6770
6771	PR target/16925
6772	* config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Handle split of
6773	64-bit constants on 64-bit hosts.
6774	(m68hc11_split_logical): Simplify.
6775	(m68hc11_split_move): Likewise.
6776
67772005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
6778	    Paolo Bonzini  <bonzini@gnu.org>
6779
6780	* Makefile.in (cs-tconfig.h): Pass USED_FOR_TARGET to mkconfig.sh
6781	* aclocal.m4 (GCC_TARGET_TEMPLATE, AH_TEMPLATE): New.
6782	* configure.ac (enable_checking): Fix typos in runtime_checking.
6783	(ENABLE_RUNTIME_CHECKING): Mark as target template.
6784	(xm_file): Prepend auto-host.h
6785	(HAVE_GAS_HIDDEN, HAVE_LD_EH_FRAME_HDR): Mark as target template.
6786	* mkconfig.sh: Do not automatically define USED_FOR_TARGET in
6787	tconfig.h.
6788	* crtstuff.c: Do not include auto-host.h.
6789	(IN_LIBGCC2): Do not define.
6790	* gcov-io.h: Include tconfig.h, not auto-host.h.
6791	* libgcc2.c: Do not include auto-host.h.
6792	(abort): Do not undefine.
6793	* libgcov.c: Remove unneeded comment about config.h.
6794	* unwind-dw2-fde-glibc.c: Do not inlude auto-host.h.
6795	* config.in, configure: Regenerated.
6796
67972005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
6798	    Falk Hueffner  <falk@debian.org>
6799
6800	* config/alpha/alpha.c (tls_symbolic_operand_1): Use gcc_assert
6801	and gcc_unreachable as appropriate.
6802	(get_aligned_mem, get_unaligned_address,
6803	alpha_emit_set_long_const, alpha_emit_conditional_branch,
6804	alpha_emit_setcc, alpha_emit_conditional_move,
6805	alpha_lookup_xfloating_lib_func, alpha_compute_xfloating_mode_arg,
6806	alpha_emit_xfloating_libcall, alpha_split_tfmode_pair,
6807	alpha_expand_unaligned_load, alpha_expand_block_move,
6808	alpha_expand_zap_mask, get_trap_mode_suffix,
6809	get_round_mode_suffix, get_some_local_dynamic_name,
6810	print_operand_address, function_arg, alpha_return_in_memory,
6811	function_value, alpha_expand_builtin,
6812	alpha_initial_elimination_offset, alpha_expand_epilogue,
6813	summarize_insn, alpha_handle_trap_shadows, alphaev5_insn_pipe,
6814	alphaev5_next_group, alpha_align_insns,
6815	unicosmk_initial_elimination_offset, unicosmk_unique_section,
6816	unicosmk_ssib_name): Likewise.
6817	* config/alpha/alpha.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
6818	* config/alpha/unicosmk.h (TRAMPOLINE_TEMPLATE,
6819	ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_DIFF_VEC): Likewise.
6820	* config/alpha/vms.h (INITIAL_ELIMINATION_OFFSET,
6821	ASM_OUTPUT_ADDR_DIFF_ELT): Likewise.
6822	* config/alpha/alpha.md (*divmodsi_internal_er,
6823	*divmoddi_internal_er, ashldi3, *insxl, sibcall, call_osf,
6824	call_nt, call_umk, call_vms, call_value, sibcall_value,
6825	call_value_osf, call_value_nt, call_value_vms, call_value_umk,
6826	*call_vms_1, *movmemdi_1, *clrmemdi_1, *call_value_vms_1): Likewise.
6827	* config/alpha/predicates.md (input_operand): Likewise.
6828
68292005-05-08  Nathan Sidwell  <nathan@codesourcery.com>
6830
6831	* config/frv/frv.c (frv_default_flags_for_cpu): Use gcc_assert and
6832	gcc_unreachable, as appropriate.
6833	(frv_function_prologue, frv_alloc_temp_reg,
6834	frv_initial_elimination_offset, frv_expand_block_move,
6835	frv_expand_block_clear, frv_print_operand_jump_hint,
6836	frv_legitimize_tls_address, unspec_got_name, frv_emit_move,
6837	frv_emit_movsi, frv_split_cond_move, frv_split_minmax,
6838	frv_ifcvt_modify_insn, frv_ifcvt_modify_final,
6839	frv_adjust_field_align, frv_insn_unit, frv_cond_flags,
6840	frv_sort_insn_group, frv_reorder_packet, frv_matching_accg_mode,
6841	frv_in_small_data_p, frv_asm_out_constructor,
6842	frv_asm_out_destructor, frv_output_dwarf_dtprel): Likewise.
6843	* config/frv/frv.md (reload_incc_fp, *cond_exec_si_binary1,
6844	*cond_exec_si_binary2, *cond_exec_si_divide, *cond_exec_si_unary1,
6845	*cond_exec_sf_conv, *cond_exec_sf_add, call, sibcall, call_value,
6846	sibcall_value, casesi): Likewise.
6847
6848	* config/mn10300/mn10300.c (print_operand): Use gcc_assert and
6849	gcc_unreachable as appropriate.
6850	(print_operand_address, mn10300_print_reg_list, expand_prologue,
6851	expand_epilogue, notice_update_cc, initial_offset,
6852	mn10300_address_cost_1): Likewise.
6853	* config/mn10300/mn10300.md: Likewise.
6854	(absdf2, abssf2, negdf2, negsf2): Likewise.
6855
68562005-05-08  Richard Sandiford  <rsandifo@redhat.com>
6857
6858	PR target/21416
6859	* config/mips/mips.c (mips_emit_compare): Don't reverse UNGE and UNGT
6860	comparisons.
6861	* config/mips/mips.md (swapped_fcond): New code macro and attribute.
6862	(sgt_<mode>, sge_<mode>): Generalize to all members of swapped_fcond,
6863	including sunge_<mode> and sungt_<mode>.
6864
68652005-05-08  Richard Sandiford  <rsandifo@redhat.com>
6866
6867	* integrate.h (get_hard_reg_initial_val): Change type of register
6868	parameter from int to unsigned int.
6869	(has_hard_reg_initial_val): Likewise.
6870	* integrate.c (get_hard_reg_initial_val): Likewise.
6871	(has_hard_reg_initial_val): Likewise.  Remove cast to unsigned int.
6872
68732005-05-08  Kazu Hirata  <kazu@cs.umass.edu>
6874
6875	* except.c (eh_status): Change the type of ttype_data to
6876	VEC(tree,gc)*.
6877	(add_ttypes_entry, assign_filter_values,
6878	output_function_exception_table): Use VEC instead of VARRAY.
6879
68802005-05-07  David Edelsohn  <edelsohn@gnu.org>
6881
6882	* config/rs6000/rs6000.md (popcount<mode>2): Fix non-C90 constant.
6883
68842005-05-07  Paul Brook  <paul@codesourcery.com>
6885
6886	* Makefile.in: Fix dependencies.
6887	(GCOV_IO_H, VARRAY_H): Set.
6888
68892005-05-07  Anthony Green  <green@redhat.com>
6890
6891	PR bootstrap/21403
6892	* configure.ac (STMP_FIXPROTO): Fix [ ] consumption problem in
6893	x$STMP_FIXPROTO test.
6894	* configure: Rebuilt.
6895
68962005-05-07  Joseph S. Myers  <joseph@codesourcery.com>
6897
6898	* config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Do not define
6899	inappropriate feature test macros if flag_iso.
6900
69012005-05-07  Joseph S. Myers  <joseph@codesourcery.com>
6902
6903	* config/ia64/hpux.h (NO_IMPLICIT_EXTERN_C): Define.
6904
69052005-05-07  Hans-Peter Nilsson  <hp@axis.com>
6906
6907	PR target/21441
6908	* config/cris/cris.md ("*movdi_insn", "*mov_sidesisf_biap")
6909	("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"):
6910	Handle moved operand being in special register.
6911	("smulsi3_highpart", "umulsi3_highpart"): Change .error into
6912	presumed working insn.
6913	(mover2side): Add FIXME.
6914
69152005-05-07  Richard Sandiford  <rsandifo@redhat.com>
6916
6917	* integrate.c (get_func_hard_reg_initial_val): Delete.
6918	(has_func_hard_reg_initial_val): Delete.
6919	(get_hard_reg_initial_val): Inline the old implementation of
6920	get_func_hard_reg_initial_val.  Use has_hard_reg_initial_val
6921	instead of has_func_hard_reg_initial_val to test for an existing
6922	pseudo.  Only create an rtx if a new initial value entry is needed.
6923	(has_hard_reg_initial_val): Scan the initial value list directly.
6924	Don't create an rtx.
6925
69262005-05-07  David Edelsohn  <edelsohn@gnu.org>
6927
6928	* config.gcc ({powerpc,rs6000}-ibm-aix*): Remove rs6000/aix.opt
6929	from extra_options.
6930	* config.in (HAVE_AS_POPCNTB): New.
6931	* configure.ac (HAVE_AS_MFCRF): Add .machine "pwr5" to AIX test.
6932	(HAVE_AS_POPCNTB): New.
6933	* configure: Regenerated.
6934	* config/rs6000/aix.h (TARGET_XL_COMPAT): Delete.
6935	* config/rs6000/rs6000.c (rs6000_override_options, power5): Add
6936	MASK_POPCNTB.  Uncomment rs6000_sched_restricted_insns_priority
6937	and rs6000_sched_costly_dep.
6938	* config/rs6000/rs6000.h (TARGET_POPCNTB): New.
6939	(TARGET_XL_COMPAT): Delete.
6940	* config/rs6000/rs6000.md (UNSPEC_POPCNTB): New.
6941	(popcount<mode>2): New.
6942	(popcntb<mode>2): New.
6943	* config/rs6000/rs6000.opt (mpopcntb): New.
6944
6945	* opt-functions.awk (var_set): Emit OPTION_MASK_ for InverseMask
6946	if variable name exists.
6947
69482005-05-07  Matt Kraai  <kraai@ftbfs.org>
6949
6950	* Makefile.in (c-gimplify.o): Depend on $(RTL_H) instead of rtl.h.
6951
69522005-05-07  Richard Henderson  <rth@redhat.com>
6953
6954	PR target/21412
6955	* config/rs6000/rs6000.c (rs6000_emit_move): Look for tls addresses
6956	with constant offsets.
6957
69582005-05-07  Nathan Sidwell  <nathan@codesourcery.com>
6959
6960	* config/v850/v850.c (print_operand): Use gcc_assert and
6961	gcc_unreachable, as appropriate.
6962	(print_operand_address, v850_handle_data_area_attribute,
6963	v850_encode_data_area, construct_restore_jr, construct_save_jarl,
6964	v850_insert_attributes, construct_prepare_instruction): Likewise.
6965	* config/v850/v850.h (INITIAL_ELIMINATION_OFFSET): Likewise.
6966	* config/v850/v850.md (movsicc, *sasf_1): Likewise.
6967
69682005-05-07  Kazu Hirata  <kazu@cs.umass.edu>
6969
6970	* tree-ssa-loop-ivcanon.c, config/i386/i386.c,
6971	config/rs6000/rs6000.h: Fix comment typos.
6972
69732005-05-07  Richard Sandiford  <rsandifo@redhat.com>
6974
6975	* doc/invoke.texi: Remove documentation for MIPS' -mint64 option.
6976	* config/mips/mips.c (TARGET_SCALAR_MODE_SUPPORTED_P): Delete.
6977	(mips_scalar_mode_supported_p): Delete.
6978
69792005-05-06  Eric Christopher  <echristo@redhat.com>
6980
6981	* config/mips/mips.opt: Remove -mint64 option.
6982	* config/mips/mips.c (override_options): Remove -mint64
6983	handling.
6984	* config/mips/mips.h (INT_TYPE_SIZE): Define to 32.
6985	* config/mips/linux.h (TARGET_OS_CPP_BUILTINS): Remove
6986	64-bit integer handling.
6987	* doc/invoke.texi (Option Summary): Remove -mint64 for
6988	mips.
6989
69902005-05-06  Zdenek Dvorak  <dvorakz@suse.cz>
6991
6992	PR tree-optimization/19401
6993	* tree-flow.h (tree_unroll_loops_completely): Declaration changed.
6994	* tree-ssa-loop-ivcanon.c (enum unroll_level): New.
6995	(estimated_unrolled_size): New function.
6996	(try_unroll_loop_completely, canonicalize_loop_induction_variables,
6997	tree_unroll_loops_completely): Always unroll loops if the code size
6998	does not increase.
6999	* tree-ssa-loop.c (tree_complete_unroll): Indicate whether all
7000	loops should be unrolled completely.
7001	(gate_tree_complete_unroll): Run complete unrolling unconditionally.
7002
70032005-05-06  Zdenek Dvorak  <dvorakz@suse.cz>
7004
7005	PR rtl-optimization/21254
7006	* loop-iv.c (iv_number_of_iterations): Simplify infiniteness
7007	assumptions for loops that otherwise do not roll.
7008	(find_simple_exit): Prefer # of iterations that is guaranteed
7009	not to be infinite.
7010	* loop-unroll.c (decide_peel_once_rolling,
7011	decide_peel_completely): Check whether the loop is infinite.
7012
70132005-05-06  Pat Haugen  <pthaugen@us.ibm.com>
7014
7015	* config/rs6000/sysv4.opt: Fix typo.
7016
70172005-05-06  Denis Vlasenko  <vda@port.imtp.ilyichevsk.odessa.ua>
7018	    Jakub Jelinek  <jakub@redhat.com>
7019
7020	PR target/21329
7021	* config/i386/i386.c (ix86_expand_movmem): Don't use rep; movsb
7022	for -Os if (movsl;)*(movsw;)?(movsb;)? sequence is shorter.
7023	Don't use rep; movs{l,q} if the repetition count is really small,
7024	instead use a sequence of movs{l,q} instructions.
7025
70262005-05-06  Jeff Law  <law@redhat.com>
7027
7028	PR tree-optimization/21380
7029	* tree-ssa-threadupdate.c (thread_through_all_blocks): Do not
7030	thread through a block with no preds.
7031
70322005-05-06  Kazu Hirata  <kazu@cs.umass.edu>
7033
7034	* tree-ssa-operands.c (clobbered_v_may_defs, clobbered_vuses,
7035	ro_call_vuse, fini_ssa_operands, add_call_clobber_ops,
7036	add_call_read_ops): Use VEC instead of VARRAY.
7037
70382005-05-06  Nathan Sidwell  <nathan@codesourcery.com>
7039
7040	* config/mcore/mcore.c (mcore_print_operand_address): Use
7041	gcc_assert and gcc_unreachable as appropriate.
7042	(mcore_print_operand, mcore_gen_compare_reg, mcore_output_call,
7043	mcore_output_andn, output_inline_const, mcore_output_move,
7044	mcore_output_movedouble, mcore_expand_block_move,
7045	layout_mcore_frame, mcore_initial_elimination_offset,
7046	mcore_expand_prolog, mcore_mark_dllexport,
7047	mcore_mark_dllimport): Likewise.
7048	* config/mcore/mcore.h (switch_to_section): Likewise.
7049	* config/mcore/mcore.md: Likewise.
7050
70512005-05-06  Aldy Hernandez  <aldyh@redhat.com>
7052
7053	* config/rs6000/linux64.h: Remove MASK_PROFILE_KERNEL, and
7054	TARGET_PROFILE_KERNEL.
7055
7056	* config/rs6000/rs6000.c (output_profile_hook): Add comment to
7057	TARGET_PROFILE_KERNEL use.
7058
70592005-05-06  Nathan Sidwell  <nathan@codesourcery.com>
7060
7061	* config/m32r/m32r.c (m32r_encode_section_info): Use gcc_assert
7062	and gcc_unreachable, as appropriate.
7063	(gen_compare, gen_split_move_double, m32r_setup_incoming_varargs,
7064	m32r_expand_prologue, m32r_output_function_epilogue,
7065	m32r_legitimize_pic_address, m32r_print_operand_address,
7066	emit_cond_move, m32r_function_symbol,
7067	m32r_output_block_move): Likewise.
7068	* config/m32r/m32r.h (INITIAL_ELIMINATION_OFFSET): Likewise.
7069	* config/m32r/m32r.md (	*movsi_insn, *zero_branch_insn,
7070	*rev_zero_branch_insn): Likewise.
7071
70722005-05-06  Jakub Jelinek  <jakub@redhat.com>
7073
7074	PR c++/20961
7075	* varasm.c (merge_weak): Remove NEWDECL from WEAK_DECLS chain
7076	if both NEWDECL and OLDDECL are already weak.
7077
70782005-05-06  Richard Sandiford  <rsandifo@redhat.com>
7079
7080	* config/rs6000/sysv4.h (EXTRA_SUBTARGET_SWITCHES): Delete.
7081
70822005-05-05  J"orn Rennecke  <joern.rennecke@st.com>
7083	    Kaz Kojima  <kkojima@gcc.gnu.org>
7084
7085	* config/sh/sh.c (sh_builtin_saveregs): Use copy_to_mode_reg
7086	and plus_constant.
7087
70882005-05-05  Aldy Hernandez  <aldyh@redhat.com>
7089	    David Edelsohn  <edelsohn@gnu.org>
7090
7091	* config.gcc: Add .opt magic for the rs6000 ports.
7092
7093	* doc/invoke.texi: Document -mabi= option properly.  Document
7094	-misel and -mno-sel.  Document -mspe and -mno-spe.  Document
7095	-mvrsave and -mno-vrsave.  Document deprecation of -mspe= and
7096	-misel=.
7097
7098	* config/rs6000/aix.h: Remove XL_COMPAT stuff.  Remove
7099	SUBTARGET_SWITCHES and SUBSUBTARGET_SWITCHES.  Define
7100	TARGET_XL_COMPAT.
7101
7102	* config/rs6000/aix.opt: New.
7103	* config/rs6000/aix41.opt: New.
7104	* config/rs6000/aix64.opt: New.
7105	* config/rs6000/darwin.opt: New.
7106	* config/rs6000/linux64.opt: New.
7107	* config/rs6000/rs6000.opt: New.
7108	* config/rs6000/sysv4.opt: New.
7109
7110	* config/rs6000/sysv4.h: Delete definitions of MASK_* and
7111	associated TARGET_*.  Remove SUBTARGET_OPTIONS,
7112	SUBTARGET_SWITCHES.
7113	Define TARGET_USES_SYSV4_OPT.
7114	* config/rs6000/aix41.h: Remove SUBSUBTARGET_SWITCHES.
7115	* config/rs6000/aix43.h: Remove SUBSUBTARGET_SWITCHES.  Define
7116	TARGET_USES_AIX64_OPT.
7117	* config/rs6000/aix51.h: Same.
7118	* config/rs6000/aix52.h: Same.
7119	* config/rs6000/darwin.h: Remove SUBTARGET_SWITCHES,
7120	MASK_MACHO_DYNAMIC_NO_PIC, TARGET_MACHO_DYNAMIC_NO_PIC.
7121	Use TARGET_ALTIVEC_VRSAVE instead of rs6000_altivec_vrsave.
7122	Define TARGET_DYNAMIC_NO_PIC as TARGET_MACHO_DYNAMIC_NO_PIC.
7123	* config/rs6000/linux64.h: Use
7124	rs6000_explicit_options.  Remove EXTRA_SUBTARGET_SWITCHES.
7125
7126	* config/rs6000/rs6000.c: Remove definitions of
7127	rs6000_sched_restricted_insns_priority,
7128	rs6000_long_double_size_string, rs6000_altivec_vrsave,
7129	rs6000_altivec_vrsave_string, rs6000_isel, rs6000_spe,
7130	rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
7131	rs6000_abi_string, rs6000_warn_altivec_long, rs6000_longcall,
7132	rs6000_alignment_string.  Define rs6000_explicit_options.
7133	(rs6000_parse_abi_options): Remove.
7134	(rs6000_parse_alignment_option): Remove.
7135	(rs6000_parse_float_gprs_option): Remove.
7136	(rs6000_handle_option): New.  Define TARGET_HANDLE_OPTION.  Define
7137	TARGET_DEFAULT_TARGET_FLAGS.
7138	(rs6000_override_options): Revamp to use new .opt machinery.
7139
7140	* config/rs6000/rs6000.h: Remove old MASK_* and TARGET_* in favor
7141	of new .opt machinery.  Remove target_flags.  Redefine
7142	TARGET_MFCRF and TARGET_POWERPC64.  Remove TARGET_SWITCHES,
7143	SUBTARGET_SWITCHES, TARGET_OPTIONS, SUBTARGET_OPTIONS,
7144	rs6000_float_gprs_string, rs6000_isel_string, rs6000_spe_string,
7145	rs6000_altivec_vrsave_string, rs6000_altivec_vrsave,
7146	rs6000_longcall_switch, rs6000_default_long_calls,
7147	rs6000_sched_costly_dep_str, rs6000_sched_costly_dep,
7148	rs6000_warn_altivec_long, rs6000_warn_altivec_long_switch, and
7149	TARGET_ALTIVEC_VRSAVE.
7150
71512005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
7152
7153	* config.gcc (hppa1.1-*-rtems*): Remove.
7154	* config/pa/rtems.h: Remove.
7155
71562005-05-05  Ralf Corsepius  <ralf.corsepius@rtems.org>
7157
7158	* config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY):
7159	Exclude roe/603e multilib variants.
7160
71612005-05-04  Denis Chertykov  <denisc@overta.ru>
7162
7163	PR target/21284
7164	* config/avr/avr.c (avr_output_addr_vec_elt): Use special section
7165	for output.
7166
71672005-05-05  Richard Sandiford  <rsandifo@redhat.com>
7168
7169	* config.gcc (arm*-wince-pe*, arm-*-pe*, strongarm-*-pe): Add
7170	arm/pe.opt to $extra_options.
7171	* config/arm/arm.h (target_flags, target_fpu_name, target_fpe_name)
7172	(target_float_abi_name, target_float_switch, target_abi_name)
7173	(ARM_FLAG_APCS_FRAME, ARM_FLAG_POKE, ARM_FLAG_FPE, ARM_FLAG_APCS_STACK)
7174	(ARM_FLAG_APCS_FLOAT, ARM_FLAG_APCS_REENT, ARM_FLAG_BIG_END)
7175	(ARM_FLAG_INTERWORK, ARM_FLAG_LITTLE_WORDS, ARM_FLAG_NO_SCHED_PRO)
7176	(ARM_FLAG_ABORT_NORETURN, ARM_FLAG_SINGLE_PIC_BASE)
7177	(ARM_FLAG_LONG_CALLS, ARM_FLAG_THUMB, THUMB_FLAG_BACKTRACE)
7178	(THUMB_FLAG_LEAF_BACKTRACE, THUMB_FLAG_CALLEE_SUPER_INTERWORKING)
7179	(THUMB_FLAG_CALLER_SUPER_INTERWORKING, CIRRUS_FIX_INVALID_INSNS)
7180	(TARGET_APCS_FRAME, TARGET_POKE_FUNCTION_NAME, TARGET_FPE)
7181	(TARGET_APCS_STACK, TARGET_APCS_FLOAT, TARGET_APCS_REENT)
7182	(TARGET_BIG_END, TARGET_INTERWORK, TARGET_LITTLE_WORDS)
7183	(TARGET_NO_SCHED_PRO, TARGET_ABORT_NORETURN, TARGET_SINGLE_PIC_BASE)
7184	(TARGET_LONG_CALLS, TARGET_THUMB, TARGET_CALLER_INTERWORKING)
7185	(TARGET_CIRRUS_FIX_INVALID_INSNS, SUBTARGET_SWITCHES, TARGET_SWITCHES)
7186	(TARGET_OPTIONS, arm_cpu_select, arm_select,  structure_size_string)
7187	(arm_pic_register_string): Delete.
7188	(TARGET_BACKTRACE): Redefine using TARGET_TPCS_LEAF_FRAME and
7189	TARGET_TPCS_FRAME.
7190	(TARGET_DEFAULT, CONDITIONAL_REGISTER_USAGE): Update mask names.
7191	* config/arm/coff.h (TARGET_DEFAULT): Likewise.
7192	* config/arm/elf.h (TARGET_DEFAULT): Likewise.
7193	* config/arm/netbsd-elf.h (TARGET_DEFAULT): Likewise.
7194	* config/arm/netbsd.h (TARGET_DEFAULT): Likewise.
7195	* config/arm/semi.h (TARGET_DEFAULT): Likewise.
7196	* config/arm/uclinux-elf.h (TARGET_DEFAULT): Likewise.
7197	* config/arm/wince-pe.h (TARGET_DEFAULT): Likewise.
7198	* config/arm/pe.h (TARGET_DEFAULT): Likewise.
7199	(TARGET_FLAG_NOP_FUN, TARGET_NOP_FUN_DLLIMPORT): Delete.
7200	(SUBTARGET_SWITCHES): Delete.
7201	* config/arm/arm.c (target_float_switch): Delete.
7202	(arm_cpu_select): Moved from config/arm/arm.h.
7203	(target_fpu_name, target_fpe_name, target_float_abi_name)
7204	(target_abi_name, structure_size_string, arm_pic_register_string)
7205	(arm_select): Make static.
7206	(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
7207	(arm_handle_option): New function.
7208	(arm_override_options): Update target_flags checks for new mask names.
7209	Remove target_float_switch code.
7210	(arm_expand_prologue, thumb_expand_prologue): Check
7211	!TARGET_SCHED_PROLOG instead of TARGET_NO_SCHED_PRO.
7212	* config/arm/arm.opt, config/arm/pe.opt: New files.
7213
72142005-05-05  Nathan Sidwell  <nathan@codesourcery.com>
7215
7216	* config/arc/arc.c (get_arc_condition_code): Use gcc_assert &
7217	gcc_unreachable as appropriate.
7218	(arc_double_limm_p, arc_setup_incoming_varargs,
7219	arc_compute_function_type, arc_output_function_prologue,
7220	arc_output_function_epilogue, arc_eligible_for_epilogue_delay,
7221	output_shift, arc_print_operand, arc_print_operand_address,
7222	arc_final_prescan_insn): Likewise.
7223	* config/arc/arc.md (*movdi_insn, *movdf_insn): Likewise.
7224
72252005-05-04  Geoffrey Keating  <geoffk@apple.com>
7226
7227	* config/rs6000/rs6000.md (P): Use TARGET_*BIT rather than
7228	comparing Pmode.
7229	(SDI): New.
7230	(cmp): Delete.
7231	(wd): New.
7232	(add<mode>3, add<mode>3_internal1, add<mode>3_internal2,
7233	add<mode>3_internal3, one_cmpl<mode>2, sub<mode>3, neg<mode>2,
7234	clz<mode>2, ctz<mode>2, ffs<mode>2): New.
7235	(addsi3, addsi3_internal1, addsi3_internal2, addsi3_internal3,
7236	(one_cmplsi2, subsi3, negsi2, clzsi2, ctzsi2, ffssi2): Remove.
7237	(adddi3, adddi3_internal1, adddi3_internal2, adddi3_internal3,
7238	(one_cmpldi2, subdi3, negdi2, clzdi2, ctzdi2, ffsdi2): Remove.
7239	(sync_compare_and_swap<mode>): Use <wd> rather than <cmp>.
7240
72412005-05-05  Paul Brook  <paul@codesourcery.com>
7242
7243	* Makefile.in: Replace dependencies on basic-block.h, c-pragma.h,
7244	cfgloop.h, diagnostic.h, insn-attr.h, langhooks-def.h, params.h,
7245	regs.h, system.h, tree-dump.h, tree-gimple.h, tree-scalar-evolution.h
7246	and tree-data-ref.h with *_H variables.
7247
72482005-05-05  Kelley Cook  <kcook@gcc.gnu.org>
7249
7250	* config/m32r/xm-m32r.h, config/m32r/xm-linux.h: Delete files.
7251
72522005-05-05  Kelley Cook  <kcook@gcc.gnu.org>
7253
7254	* system.h: Poison BYTEORDER and HOST_WORDS_BIG_ENDIAN.
7255
72562005-05-04  Gerald Pfeifer  <gerald@pfeifer.com>
7257
7258	* doc/contrib.texi (Contributors): Add Mostafa Hagog and Ayal Zaks.
7259
72602005-05-04 Fariborz Jahanian <fjahanian@apple.com>
7261
7262	* config/rs6000/rs6000.c (rs6000_emit_prologue): Emit
7263	setting of vrsave register for current function after
7264	call to save_world is emitted.
7265
72662005-05-05  Hans-Peter Nilsson  <hp@bitrange.com>
7267
7268	* config/mmix/predicates.md: New file.
7269	* config/mmix/mmix.c (mmix_symbolic_or_address_operand)
7270	(mmix_reg_or_constant_operand, mmix_reg_cc_operand)
7271	(mmix_foldable_comparison_operator, mmix_comparison_operator)
7272	(mmix_reg_or_0_operand, mmix_reg_or_8bit_operand): Remove.
7273	* config/mmix/mmix.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES):
7274	Don't define.
7275	* config/mmix/mmix.md: Include predicates.md.
7276	("call", "call_value"): Force address to register if it isn't a
7277	mmix_symbolic_or_address_operand.
7278
72792005-05-04  Andrew MacLeod  <amacleod@redhat.com>
7280
7281	* tree-flow-inline.h (op_iter_init_use, op_iter_init_def): Assert that
7282	the flags are of appropriate types.
7283	(num_ssa_operands): Generalize using the generic interface.
7284	* tree-ssa-dce.c (remove_dead_stmt): Don't ask for kills on a DEF
7285	iterator.
7286
72872005-05-04  Richard Sandiford  <rsandifo@redhat.com>
7288
7289	* protoize.c (version_flag, quiet_flag, nochange_flag, nosave_flag)
7290	(keep_flag, local_flag, global_flag, cplusplus_flag): Make extern.
7291
72922005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
7293
7294	* tree-outof-ssa.c (edge_leader, stmt_list,
7295	analyze_edges_for_bb): Use VEC instead of VARRAY.
7296	(init_analayze_edges_for_bb, fini_analayze_edges_for_bb): New.
7297	(perform_edge_inserts): Call init_analayze_edges_for_bb and
7298	fini_analayze_edges_for_bb.
7299
73002005-05-04  James E Wilson  <wilson@specifixinc.com>
7301
7302	PR driver/21112
7303	* gcc.c (process_command): In the second argv scan loop, ignore
7304	Xassembler and Xpreprocessor, along with their argument.
7305
73062005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
7307
7308	* tree-flow-inline.h, tree-ssa-operands.c,
7309	tree-ssa-operands.h, tree-ssa-opfinalize.h:
7310	Likewise. tree-vn.c: Fix comment typos.
7311	* doc/passes.texi, doc/tree-ssa.texi: Fix typos.
7312
73132005-05-04  Paolo Bonzini  <bonzini@gnu.org>
7314
7315	* doc/tm.texi (Target Hooks): Document
7316	TARGET_RESOLVE_OVERLOADED_BUILTIN.
7317
73182005-05-04  Paul Brook  <paul@codesourcery.com>
7319
7320	* Makefile.in: Change dependencies on target.h to $(TARGET_H).
7321
73222005-05-04  Kazu Hirata  <kazu@cs.umass.edu>
7323
7324	* dwarf2out.c (incomplete_types, retry_incomplete_types,
7325	gen_struct_or_union_type_die, dwarf2out_init): Use VEC instead
7326	of VARRAY.
7327
7328	* loop-unroll.c (var_to_expand, analyze_insn_to_expand_var,
7329	get_expansion, expand_var_during_unrolling,
7330	insert_var_expansion_initialization,
7331	combine_var_copies_in_loop_exit, release_var_copies): Use VEC
7332	instead of VARRAY.
7333
7334	* tree-ssa-loop-ivopts.c (rewrite_address_base): Don't call
7335	update_stmt.
7336
73372004-05-03  Andrew Pinski  <pinskia@physics.uc.edu>
7338
7339	PR middle-end/15618
7340	* fold-const.c (fold_widened_comparison): Treat BOOLEAN_TYPE
7341	the same as INTEGER_TYPE.
7342	(fold_binary): Fold "bool_var != 0" to bool_var.
7343	Fold "bool_var == 1" to bool_var.
7344
73452004-05-03  Richard Henderson  <rth@redhat.com>
7346
7347	PR middle-end/21318
7348	* function.c (instantiate_virtual_regs_in_insn): Use the mode
7349	from recog_data instead of insn_data.
7350
73512005-05-03  DJ Delorie  <dj@redhat.com>
7352
7353	* common.opt (fdiagnostics-show-option): No variable is needed.
7354	* diagnostic.h (diagnostic_context): Add show_option_requested flag.
7355	* diagnostic.c (diagnostic_initialize): Initialize show_option_requested.
7356	(diagnostic_report_diagnostic): Test for enabled diagnostics here.
7357	Save and restore original message format.  Use flag in context
7358	instead of global.
7359	(warning): Don't test for enabled warnings here.
7360	* opts.c (common_handle_option): Handle -fdiagnostics-show-option
7361	here.
7362
73632005-05-04  Kelley Cook  <kcook@gcc.gnu.org>
7364
7365	* config/m32r/xm-m32r.h: Don't define HOST_WORDS_BIG_ENDIAN.
7366	* config/m32r/xm-linux.h: Don't undefine HOST_WORDS_BIG_ENDIAN.
7367	* mips-tfile.c: Use WORDS_BIG_ENDIAN instead of HOST_WORDS_BIG_ENDIAN.
7368	* aclocal.m4: Don't include accross.m4.
7369	* configure.ac: Use AC_C_BIGENDIAN instead of AC_C_BIGENDIAN_CROSS.
7370	Use AC_CHECK_SIZEOF instead of AC_COMPILE_CHECK_SIZEOF.
7371	* configure, config.in: Regenerate.
7372
73732005-05-04  Jakub Jelinek  <jakub@redhat.com>
7374
7375	PR middle-end/21265
7376	* expr.h (enum block_op_methods): Add BLOCK_OP_TAILCALL.
7377	(clear_storage): Add argument.
7378	* expr.c (emit_block_move_via_libcall, clear_storage_via_libcall):
7379	Add tailcall argument, set CALL_EXPR_TAILCALL of the CALL_EXPR to
7380	tailcall.
7381	(emit_block_move): Handle BLOCK_OP_TAILCALL method.
7382	(clear_storage): Add method argument, handle BLOCK_OP_TAILCALL.
7383	(store_expr, store_constructor): Adjust callers.
7384	* builtins.c (expand_builtin_memcpy): Pass BLOCK_OP_TAILCALL
7385	to emit_block_move if CALL_EXPR_TAILCALL (exp).
7386	(expand_builtin_memmove): Add ORIG_EXP argument, copy
7387	CALL_EXPR_TAILCALL from ORIG_EXP to the new CALL_EXPR.
7388	(expand_builtin_bcopy): Replace ARGLIST and TYPE arguments
7389	with EXP.  Pass EXP to expand_builtin_memmove.
7390	(expand_builtin_memset): Add ORIG_EXP argument, pass
7391	BLOCK_OP_TAILCALL to clear_storage if CALL_EXPR_TAILCALL (orig_exp).
7392	(expand_builtin_bzero): Replace ARGLIST argument with EXP.
7393	Pass EXP to expand_builtin_memset.
7394	(expand_builtin_strcmp): Copy CALL_EXPR_TAILCALL from EXP to
7395	the new CALL_EXPR.
7396	(expand_builtin_strncmp): Likewise.
7397	(expand_builtin_printf): Replace ARGLIST argument with EXP.
7398	Copy CALL_EXPR_TAILCALL from EXP to the new CALL_EXPR.
7399	(expand_builtin_fprintf): Likewise.
7400	(expand_builtin): Adjust calls to
7401	expand_builtin_{memmove,bcopy,memset,bzero,{,f}printf}.
7402
7403	* config/i386/i386.c (ix86_expand_vector_set): Fix setting 3rd and 4th
7404	item in V4SF mode.
7405
7406	PR rtl-optimization/21239
7407	* combine.c (combine_simplify_rtx) <case VEC_SELECT>: Fix a typo.
7408
74092005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
7410
7411	* tree-flow.h (tree_ann_common_d): Move aux to ...
7412	(stmt_ann_d): ... here.
7413	* tree-ssa-loop-im.c (LIM_DATA, determine_invariantness_stmt,
7414	move_computations_stmt, schedule_sm): Update references to
7415	aux.
7416	* tree-vectorizer.h (set_stmt_info, vinfo_for_stmt): Likewise.
7417
7418	* tree-cfg.c (remove_bb): Remove a redundant call to
7419	set_bb_for_stmt.
7420	* tree-if-conv.c (replace_phi_with_cond_modify_expr):
7421	Likewise.
7422
74232005-05-03  Richard Henderson  <rth@redhat.com>
7424
7425	* config/rs6000/rs6000.c: Remove conflict markers.
7426
7427	* cfg.c (dump_flow_info): Use max_reg_num, not max_regno.
7428
74292005-05-03  James E Wilson  <wilson@specifixinc.com>
7430
7431	* dwarf2out.c (lookup_filename): Call maybe_emit_file.
7432
74332005-05-03  DJ Delorie  <dj@redhat.com>
7434
7435	* c-decl.c (store_parm_decls_oldstyle): Let diagnostic machinery
7436	decide if the warning will be printed.
7437	* calls.c (expand_call): Likewise.
7438	* function.c (init-function_start): Likewise.
7439
7440	* common.opt (-fdiagnostics-show-option): New.
7441	* opts.c (option_enabled): Accept the option index instead of a
7442	pointer to the option descriptor.
7443	* opts.h (option_enabled): Likewise.
7444	* toplev.c (print_switch_values): Pass option index, not option
7445	descriptor.
7446	* diagnostic.h (diagnostic_info): Add option_index.
7447	* diagnostic.c: Include opts.h.
7448	(diagnostic_set_info): Initialize option_index.
7449	(diagnostic_report_diagnostic): Amend option name if appropriate.
7450	(warning): Check to see if the specified warning is enabled.
7451	Store option index.
7452	* doc/invoke.texi (-fdiagnostics-show-options): Document.
7453
74542005-05-03  Richard Henderson  <rth@redhat.com>
7455
7456	* config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Fix ALL_REGS and
7457	SPEC_OR_GEN_REGS definitions.
7458
74592005-05-03  Alexandre Oliva  <aoliva@redhat.com>
7460
7461	PR target/16888
7462	* config/i386/i386.h (CONDITIONAL_REGISTER_USAGE): Clear reg names
7463	for unavailable registers.
7464
74652005-05-03  Kazu Hirata  <kazu@cs.umass.edu>
7466
7467	* tree-cfg.c (tree_forwarder_block_p): Fix a typo.
7468
7469	* cfglayout.c (block_locators_blocks,
7470	insn_locators_initialize, insn_scope): Use VEC instead of
7471	VARRAY.
7472
7473	* tree-mudflap.c (deferred_static_decls, mudflap_enqueue_decl,
7474	mudflap_finish_file, mudflap_finish_file): Use VEC instead of
7475	VARRAY.
7476
74772005-05-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
7478
7479	* config/sparc/predicates.md (const_compl_high_operand): New.
7480	* config/sparc/sparc.c (sparc_emit_set_safe_HIGH64): Rename into
7481	gen_safe_HIGH64.
7482	(sparc_emit_set_const64_quick1): Adjust for above change.
7483	(sparc_emit_set_const64_quick2): Likewise.
7484	(sparc_emit_set_const64_longway): Likewise.
7485	(sparc_emit_set_const64): Likewise.
7486	* config/sparc/sparc.md (movhi_const64_special, movsi_const64_special,
7487	movdi_const64_special): Delete.
7488	(logical constant splitters): Use const_compl_high_operand.
7489
74902005-05-03  Richard Guenther  <rguenth@gcc.gnu.org>
7491
7492	* tree-ssa-ccp.c (maybe_fold_stmt_indirect): Use STRIP_TYPE_NOPS
7493	rather than STRIP_NOPS.
7494
74952005-05-03  Jakub Jelinek  <jakub@redhat.com>
7496
7497	PR rtl-optimization/21330
7498	* loop-unswitch.c (may_unswitch_on): Set *cinsn only when
7499	returning non-NULL.
7500	(unswitch_single_loop): Clear cinsn when retrying.
7501
7502	PR target/21297
7503	* config/i386/i386.c (legitimize_address): When canonicalizing
7504	ASHIFT into MULT, multiply by 1 << shift_count instead of
7505	1 << log2 (shift_count).
7506
75072005-05-03  Andrew MacLeod  <amacleod@redhat.com>
7508
7509	* lambda-code.c (gcc_loop_to_lambda_loop,
7510	lambda_loopnest_to_gcc_loopnest, phi_loop_edge_uses_def,
7511	stmt_is_bumper_for_loop, perfect_nest_p, replace_uses_of_x_with_y): Use
7512	generic operand interface.
7513	* tree-data-ref.c (find_data_references_in_loop): Use generic interface.
7514	* tree-dfa.c (collect_dfa_stats_r, mark_new_vars_to_rename): Use
7515	generic operand interface.
7516	* tree-flow-inline.h (delink_imm_use, link_imm_use_to_list,
7517	link_imm_use, link_imm_use_stmt, relink_imm_use, relink_imm_use_stmt,
7518	next_safe_imm_use, has_zero_uses, has_single_use, single_imm_use,
7519	num_imm_uses): Use ssa_use_operand_t.
7520	(get_def_ops, get_use_ops, get_v_may_def_ops, get_vuse_ops,
7521	get_v_must_def_ops): Delete.
7522	(get_def_from_ptr, get_phi_result_ptr): Get def directly now.
7523	(get_use_op_ptr, get_def_op_ptr, get_v_may_def_result_ptr,
7524	get_v_may_def_op_ptr, get_vuse_op_ptr, get_v_must_def_result_ptr,
7525	get_v_must_def_kill_ptr): Delete.
7526	(delink_stmt_imm_use): Move and use new operand interface.
7527	(op_iter_next_use, op_iter_next_def, op_iter_next_tree, op_iter_init,
7528	op_iter_next_tree): Use new operand implementation.
7529	(clear_and_done_ssa_iter): New.  Initialize a blank operand iterator.
7530	(op_iter_init_use, op_iter_init_def, op_iter_init_tree): Add iterator
7531	type check.
7532	(op_iter_next_mustdef, op_iter_next_maydef,
7533	op_iter_next_must_and_may_def): Delete. Replace with...
7534	(op_iter_next_maymustdef): New.  Combine must and may next operations.
7535	(op_iter_init_maydef, op_iter_init_mustdef,
7536	op_iter_init_must_and_may_def): Use new interface.
7537	(single_ssa_tree_operand ): New.  Process single operands only as trees.
7538	(single_ssa_use_operand): New.  Process single operands only as uses.
7539	(single_ssa_def_operand): New.  Process single operands only as defs.
7540	(zero_ssa_operands): New.  Return TRUE if there are zero operands of the
7541	specified types.
7542	(num_ssa_operands): New.  Count the number of specified operands.
7543	(compare_ssa_operands_equal): New.  Compare two statements' operands.
7544	(single_phi_def): New.  Return true if PHI has one def of the specified
7545	operand type.
7546	(op_iter_init_phiuse): New.  Initialize the iterator for PHI arguments.
7547	(op_iter_init_phidef): New.  Initialize the iterator for the PHI def.
7548	* tree-flow.h (struct immediate_use_iterator_d): Use ssa_use_operand_t.
7549	(struct stmt_ann_d): Operands field no longer require GTY().
7550	(vn_compute, vn_lookup_or_add, vn_add, vn_lookup): Change prototype.
7551	* tree-into-ssa.c (mark_def_sites): Use SSA_OP_VMUSTKILL.
7552	* tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
7553	dump_replaceable_exprs, rewrite_trees): Use generic interface.
7554	* tree-phinodes.c (make_phi_node, release_phi_node, resize_phi_node):
7555	Use use_operand_p instead of ssa_imm_use_t *.
7556	* tree-pretty-print.c (dump_vops): check if operands are active before
7557	dumping virtual operands.
7558	* tree-sra.c (sra_walk_function): Use ZERO_SSA_OPERANDS.
7559	* tree-ssa-ccp.c (likely_value): Use ZERO_SSA_OPERANDS.
7560	(ccp_fold): Use new interface.
7561	(ccp_visit_stmt): Remove unused variables and code.
7562	(convert_to_gimple_builtin): Insert statements before calling
7563	mark_new_vars_to_rename.
7564	* tree-ssa-copy.c (stmt_may_generate_copy): Use ZERO_SSA_OPERANDS.
7565	(copy_prop_visit_cond_stmt): Use generic interface.
7566	* tree-ssa-dom.c (struct expr_hash_elt): Use stmt pointer, not the
7567	annotation in table.
7568	(thread_across_edge): Use generic interface.
7569	(initialize_hash_element): Initialzie with stmt, not annotation.
7570	(eliminate_redundant_computations): Use generic interface.
7571	(record_equivalences_from_stmt): Pass stmt, not annotation.
7572	(avail_expr_hash, real_avail_expr_hash, avail_expr_eq): Use generic
7573	interface.
7574	* tree-ssa-dse.c (dse_optimize_stmt): Use ZERO_SSA_OPERANDS.
7575	* tree-ssa-loop-ivopts.c (find_invariants_stmt,
7576	find_interesting_uses_stmt, protect_loop_closed_ssa_form_use): Use
7577	generic operand interface.
7578	* tree-ssa-loop-niter.c (chain_of_csts_start, get_val_for): Use generic
7579	interface.
7580	* tree-ssa-loop-unswitch.c (tree_may_unswitch_on): Use Generic operand
7581	Interface.
7582	* tree-ssa-operands.c (struct opbuild_list_d): New.  Operand build type.
7583	(build_defs, build_uses, build_v_may_defs, build_vuses,
7584	build_v_must_defs): Change type to struct opbuild_list_d.
7585	(ops_active): New.  Operands active boolean.
7586	(operand_memory, operand_memory_index): New.  Operand memory managers.
7587	(allocate_def_optype, allocate_use_optype, allocate_v_may_def_optype,
7588	allocate_vuse_optype, allocate_v_must_def_optype): Delete.
7589	(free_uses, free_defs, free_vuses, free_v_may_defs, free_v_must_defs):
7590	Change from functions to static variable list heads.
7591	(opbuild_initialize_virtual): New.  Initialize a virtual build list.
7592	(opbuild_initialize_real): New.  Initialize a virtual build list.
7593	(opbuild_free): New.  Free a build list.
7594	(opbuild_num_elems): New.  Number of items in a list.
7595	(opbuild_append_real): New.  Add a real (tree *) operand.
7596	(opbuild_append_virtual): New.  Add and sort a virtual (tree) operand.
7597	(opbuild_first): New.  Return first element index in a list.
7598	(opbuild_next): New.  Return next element in a list.
7599	(opbuild_elem_real): New.  Return real element.
7600	(opbuild_elem_virtual): New.  Return virtual element.
7601	(opbuild_elem_uid): New.  Return UID of virtual element.
7602	(opbuild_clear): New.  Reset an operand list.
7603	(opbuild_remove_elem): New.  Remove an element form a list.
7604	(ssa_operands_active): New.  Return true if operand cache is active.
7605	(init_ssa_operands, fini_ssa_operands): Initialize new implementation.
7606	(ssa_operand_alloc): New.  Allocate memory from an operand chunk.
7607	(correct_use_link): Use use_operand_p.
7608	(finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_defs,
7609	finalize_ssa_vuses, finalize_ssa_v_must_defs): New implmentation.
7610	(cleanup_v_may_defs): Use new implmentation.
7611	(finalize_ssa_stmt_operands, start_ssa_stmt_operands): New
7612	implementation.
7613	(append_def, append_use, append_v_may_def, append_vuse,
7614	append_v_must_def): Call opbuild_append routine instead of using varray.
7615	(build_ssa_operands): Simplify to simply use stmt, don't maintain a
7616	global parse_old_ops variable.
7617	(free_ssa_operands): New implementation.
7618	(update_stmt_operands): Move.  Change argument to build_ssa_operands.
7619	(copy_virtual_operands): Move. New generic implementation.
7620	(create_ssa_artficial_load_stmt): Move. New implementation.
7621	(swap_tree_operands): Update for new implementation.
7622	(get_expr_operands): Add stmt parameter to calls to swap_tree_operands.
7623	(add_call_clobber_ops, add_call_read_ops): Initialize opbuild list
7624	rather than a varray.
7625	(verify_imm_links): Use use_operand_p.
7626	(dump_immediate_uses_for): If the immediate use variable is a virtual
7627	variable, show the virtual ops in the stmt.
7628	* tree-ssa-operands.h (def_operand_p): No longer a structure.
7629	(NULL_DEF_OPERAND_P): Now a #define.
7630	(def_optype_d, use_optype_d, v_def_use_operand_type, v_may_def_optype_d,
7631	vuse_operand_type, vuse_optype_d, v_must_def_optype_d): Delete.
7632	(def_optype_d, use_optype_d, maydef_optype_d, vuse_optype_d,
7633	mustdef_optype_d): New.  Use Linked list representation.
7634	(SSA_OPERAND_MEMORY_SIZE): New.  Size of operand memory chunk.
7635	(struct ssa_operand_memory_d): New.  Allocated Chunk node.
7636	(struct stmt_operands_d): Change to new pointers that are not GTY.
7637	(STMT_USE_OPS, NUM_USES, SET_USE_OP, STMT_DEF_OPS, NUM_DEFS, SET_DEF_OP,
7638	STMT_V_MAY_DEF_OPS, NUM_V_MAY_DEFS, SET_V_MAY_DEF_RESULT,
7639	SET_V_MAY_DEF_OP, STMT_VUSE_OPS, NUM_VUSES, SET_VUSE_OP,
7640	STMT_V_MUST_DEF_OPS, NUM_V_MUST_DEFS, SET_V_MUST_DEF_RESULT,
7641	SET_V_MUST_DEF_KILL): Delete.
7642	(V_MAY_DEF_OPS, V_MAY_DEF_RESULT_PTR, V_MAY_DEF_RESULT,
7643	V_MAY_DEF_OP_PTR, V_MAY_DEF_OP): Rename to MAYDEF_*.
7644	(V_MUST_DEF_OPS, V_MUST_DEF_RESULT_PTR, V_MUST_DEF_RESULT,
7645	V_MUST_DEF_KILL_PTR, V_MUST_DEF_KILL): Rename to MUSTDEF_*.
7646	(enum ssa_op_iter_type): Operand iterator typechecking values.
7647	(struct ssa_operand_iterator_d): Use linked lists of operands.
7648	(SSA_OP_VMUSTDEFKILL): Rename to SSA_OP_VMUSTKILL.
7649	(FOR_EACH_SSA_MAYDEF_OPERAND, FOR_EACH_SSA_MUSTDEF_OPERAND,
7650	FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): Use op_iter_next_maymustdef.
7651	(FOR_EACH_PHI_ARG): New.  Iterate over PHI arguments.
7652	(FOR_EACH_PHI_OR_STMT_USE): New.  Iterate over PHI or stmt uses.
7653	(FOR_EACH_PHI_OR_STMT_DEF): New.  Iterate over PHI or stmt defs.
7654	(SINGLE_SSA_TREE_OPERAND, SINGLE_SSA_USE_OPERAND,
7655	SINGLE_SSA_DEF_OPERAND, ZERO_SSA_OPERANDS, NUM_SSA_OPERANDS): New.
7656	* tree-ssa-opfinalize.h: New.  Function templates for expansion.
7657	(FINALIZE_ALLOC): Expands into alloc_def, alloc_use, alloc_maydef,
7658	alloc_vuse, and alloc_mustdef.
7659	(FINALIZE_FUNC): Expands into finalize_ssa_def_ops,
7660	finalize_ssa_use_ops, finalize_ssa_v_may_def_ops, finalize_ssa_vuse_ops,
7661	and finalize_ssa_v_must_def_ops.
7662	* tree-ssa-pre.c (add_to_sets): Pass tree to vn_add.
7663	(create_value_expr_from): Use stmt not vuse_optype as a parameter. Pass
7664	stmt around.
7665	(compute_avail): Use generic iterator interface.
7666	* tree-ssa-propagate.c (first_vdef): Use generic operand interface.
7667	(stmt_makes_single_load, stmt_makes_single_store): Use
7668	ZERO_SSA_OPERANDS.
7669	* tree-ssa-sink.c (is_hidden_global_store): Use ZERO_SSA_OPERANDS.
7670	(statement_sink_location): Use generic interface.
7671	* tree-ssa.c (verify_ssa):  Use %p in fprintf.  Use generic interface.
7672	(delete_tree_ssa): Don't call release_defs.  Call release_ssa_name and
7673	reset the immediate use link nodes.
7674	(stmt_references_memory_p): Use ZERO_SSA_OPERANDS.
7675	* tree-ssanames.c (make_ssa_name): Use use_operand_p.
7676	* tree-tailcall.c (find_tail_calls): Use ZERO_SSA_OPERANDS.
7677	(eliminate_tail_call): Use generic operand interface.
7678	* tree-vect-analyze.c (vect_analyze_data_refs): Use ZERO_SSA_OPERANDS.
7679	(vect_mark_relevant, vect_mark_stmts_to_be_vectorized): Use generic
7680	interface.
7681	* tree-vect-transform.c (update_vuses_to_preheader): Use generic
7682	interface.
7683	* tree-vectorizer.c (rename_variables_in_bb): Use generic interface.
7684	* tree-vn.c (struct val_expr_pair_d): Cache statment pointer instead of
7685	vuse_optype.
7686	(vn_compute, val_expr_pair_hash, vn_add, vn_lookup, vn_lookup_or_add):
7687	Use statement pointer instead of vuse_optype.  Use generic interface.
7688	* tree-vrp.c (maybe_add_assert_expr): Use generic interface.
7689	(stmt_interesting_for_vrp, vrp_visit_stmt): Use ZERO_SSA_OPERANDS.
7690	* tree.h (struct ssa_imm_use_d): Renamed to ssa_use_operand_d.
7691	(tree_ssa_name, phi_arg_d): Use ssa_use_operand_d.
7692	* doc/tree-ssa.texi: Update documentation for operand interface.
7693
76942005-05-03  Nathan Sidwell  <nathan@codesourcery.com>
7695
7696	* config/darwin.c (machopic_define_symbol): Use gcc_assert or
7697	gcc_unreachable as appropriate.
7698	(machopic_function_base_name, machopic_indirect_data_reference,
7699	machopic_legitimize_pic_address, darwin_non_lazy_pcrel): Likewise.
7700	* config/host-darwin.c (darwin_gt_pch_use_address): Likewise
7701	* config/rs6000/altivec.md (*mov<mode>_internal,
7702	build_vector_mask_for_load): Likewise.
7703	* config/rs6000/darwin.md (movdf_low_si, movdf_low_di,
7704	*call_nonlocal_darwin64, *call_value_nonlocal_darwin64,
7705	*sibcall_symbolic_64, *sibcall_value_symbolic_64): Likewise.
7706	* config/rs6000/predicates.md (easy_fp_constant,
7707	logical_operand): Likewise.
7708	* config/rs6000/rs6000.c (spe_expand_predicate_builtin,
7709	compute_save_world_info, rs6000_emit_prologue,
7710	rs6000_output_mi_thunk): Reword comments to avoid 'abort'.
7711	* config/rs6000/host-darwin.c (segv_handler): Use fancy_abort
7712	directly.
7713
77142005-05-03  Uros Bizjak  <uros@kss-loka.si>
7715
7716	PR middle-end/21282
7717	* convert.c (convert_to_integer): Convert ceil and floor in
7718	c99 mode only.
7719
77202005-04-29  Geoffrey Keating  <geoffk@apple.com>
7721
7722	PR target/20813
7723	* config/rs6000/rs6000.md (floatsidf2_internal): Merge to create
7724	define_insn_and_split.  Split only when memory operand is
7725	offsettable.  Use adjust_address rather than plus_constant.
7726	(floatunssidf2_internal): Likewise.
7727	(fix_truncdfsi2_internal): Split only when memory operand is
7728	offsettable.  Use adjust_address rather than plus_constant.
7729	(fix_trunctfsi2_internal): Likewise.
7730	(floatsidf2_internal): Likewise.
7731
77322005-05-02  Diego Novillo  <dnovillo@redhat.com>
7733
7734	* tree-vrp.c (set_value_range_to_nonnull): Declare inline.
7735	(set_value_range_to_null): Likewise.
7736	(set_value_range_to_varying): New function.  Use it in all
7737	call sites that used to call set_value_range (vr, VR_VARYING, ...).
7738	(extract_range_from_assert): If the integral type has a
7739	super-type, and LIMIT is not within MIN and MAX values of that
7740	type, set the resulting range to VR_VARYING.
7741
77422005-05-02  Hans-Peter Nilsson  <hp@bitrange.com>
7743
7744	* config/mmix/mmix.opt: New file.
7745	* config/mmix/mmix.h: Move options-related comments to mmix.opt.
7746	(mmix_cc1_ignored_option): Don't declare.
7747	(TARGET_OPTIONS, TARGET_MASK_LIBFUNCS, TARGET_MASK_ABI_GNU)
7748	(TARGET_MASK_FCMP_EPSILON, TARGET_MASK_ZERO_EXTEND)
7749	(TARGET_MASK_KNUTH_DIVISION, TARGET_MASK_TOPLEVEL_SYMBOLS)
7750	(TARGET_MASK_BRANCH_PREDICT, TARGET_MASK_USE_RETURN_INSN)
7751	(TARGET_MASK_BASE_ADDRESSES, TARGET_LIBFUNC, TARGET_ABI_GNU,
7752	(TARGET_FCMP_EPSILON, TARGET_ZERO_EXTEND, TARGET_KNUTH_DIVISION)
7753	(TARGET_TOPLEVEL_SYMBOLS, TARGET_BRANCH_PREDICT)
7754	(TARGET_BASE_ADDRESSES, TARGET_USE_RETURN_INSN, TARGET_SWITCHES):
7755	Don't define.
7756	(TARGET_DEFAULT): Change TARGET_MASK_... to MASK_...
7757	* config/mmix/mmix.c (mmix_cc1_ignored_option): Remove.
7758	(TARGET_DEFAULT_TARGET_FLAGS): Override default.
7759
77602005-05-02  Joseph S. Myers  <joseph@codesourcery.com>
7761
7762	PR c/15698
7763	* c-tree.h (C_DECL_BUILTIN_PROTOTYPE): New.
7764	* c-decl.c (current_function_prototype_built_in,
7765	current_function_prototype_arg_types): New.
7766	(merge_decls): Keep source location of prototype followed by
7767	nonprototype declaration.  Update C_DECL_BUILTIN_PROTOTYPE.
7768	(builtin_function): Set C_DECL_BUILTIN_PROTOTYPE.
7769	(start_function): Always set current_function_prototype_locus,
7770	current_function_prototype_built_in and
7771	current_function_prototype_arg_types.  Check for external
7772	prototype whether or not visible for external function and set
7773	current_function_prototype_arg_types accordingly.
7774	(store_parm_decls_oldstyle): Use
7775	current_function_prototype_arg_types for checking old-style
7776	definition against prototype.  Give warnings only if
7777	current_function_prototype_built_in).
7778
77792005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
7780
7781	* ggc.h (ggc_alloc_zone_pass_stat): New macro.
7782	(ggc_alloc_zone_stat): Don't define.
7783	* ggc-zone.c (ggc_alloc_typed_stat, ggc_alloc_stat): Use
7784	ggc_alloc_zone_pass_stat.
7785	* rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Likewise.
7786	* tree.c (make_node_stat, copy_node_stat, make_tree_binfo_stat)
7787	(make_tree_vec_stat, tree_cons_stat, build1_stat): Likewise.
7788
77892005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
7790
7791	* calls.c (expand_call): Handle current_function_pretend_args_size
7792	when checking for sibcalls.
7793
77942005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
7795
7796	PR tree-optimization/21294
7797	* tree-vrp.c (vrp_expr_computes_nonzero): New.
7798	(extract_range_from_expr): Call vrp_expr_computes_nonzero.
7799
78002005-05-02  Janis Johnson  <janis187@us.ibm.com>
7801
7802	PR 19985
7803	* gcov-io.h: Declare gcov external functions hidden.
7804
78052005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
7806
7807	* tree-ssa-uncprop.c (equiv_hash_elt, remove_equivalence,
7808	record_equiv, tree_ssa_uncprop, uncprop_into_successor_phis):
7809	Use VEC instead of VARRAY.
7810	(equiv_free): New.
7811
7812	* tree-ssa-sink.c (nearest_common_dominator_of_uses): Factor
7813	out common code.
7814
78152005-05-02  Paolo Bonzini  <bonzini@gnu.org>
7816
7817	* c-common.c (resolve_overloaded_builtin): Forward to target
7818	hook for BUILT_IN_MD built-ins.
7819	* c-typeck.c (finish_call_expr): Call resolve_overloaded_builtin
7820	for all types of built-in.
7821	* target-def.h (TARGET_RESOLVE_OVERLOADED_BUILTIN): New.  Use it
7822	in the definition of the target hooks struct.
7823	* target.h (struct gcc_target): Add resolve_overloaded_builtin.
7824	* config/rs6000/altivec.h: Rewritten.
7825	* config/rs6000/rs6000-c.c (struct altivec_builtin_types,
7826	altivec_resolve_overloaded_builtin, altivec_build_resolved_builtin,
7827	rs6000_builtin_type, rs6000_builtin_type_compatible,
7828	altivec_overloaded_builtins, rs6000_builtin_type,
7829	rs6000_builtin_type_compatible): New.
7830	* config/rs6000/rs6000.c (rs6000_builtin_types, rs6000_builtin_decls):
7831	New.
7832	(def_builtin): Turn into a function.  Check for duplicates and store
7833	the builtin into rs6000_builtin_decls.
7834	(bdesc_3arg, bdesc_dst, bdesc_altivec_preds, bdesc_2arg,
7835	bdesc_1arg): Add overloaded builtins.
7836	(altivec_expand_builtin): Check for unresolved overloaded builtins,
7837	do not support ALTIVEC_COMPILETIME_ERROR.
7838	(rs6000_init_builtins): Add opaque 128-bit vector, and internal
7839	nodes to represent front-end types.
7840	(altivec_init_builtins, rs6000_common_init_builtins): Create builtins
7841	with opaque arguments and/or return values.
7842	* config/rs6000/rs6000.h (enum rs6000_builtins): Remove
7843	ALTIVEC_COMPILETIME_ERROR and add Altivec overloaded builtins.
7844	(rs6000_builtin_type_index): New.
7845	(is_ev64_opaque_type): Rename to...
7846	(rs6000_is_opaque_type): ... this.
7847	(rs6000_cpu_cpp_builtins): Install the resolve_overloaded_builtin
7848	target hook.
7849
78502005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
7851
7852	* function.c (reorder_blocks, reorder_blocks_1): Use VEC
7853	instead of VARRAY.
7854
78552005-05-02  Nathan Sidwell  <nathan@codesourcery.com>
7856	    Bernd Schmidt  <bernd.schmidt@analog.com>
7857
7858	* config/bfin/bfin.c (emit_link_insn, effective_address_32bit_p,
7859	print_address_operand, print_operand, legitimize_pic_address,
7860	asm_conditional_branch, bfin_gen_compare, output_push_multiple,
7861	output_pop_multiple): Use gcc_assert or gcc_unreachable as
7862	appropriate.
7863	* config/bfin/bfin.md (movsf splitter, beq, bne): Likewise.
7864
78652005-05-02  Dorit Naishlos  <dorit@il.ibm.com>
7866
7867	* doc/passes.texi: Document vectorization pass.
7868
78692005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
7870
7871	* tree-scalar-evolution.c (get_exit_conditions_rec,
7872	select_loops_exit_conditions,
7873	number_of_iterations_for_all_loops,
7874	analyze_scalar_evolution_for_all_loop_phi_nodes,
7875	scev_analysis): Use VEC instead of VARRAY.
7876
78772005-05-02  Michael Matz  <matz@suse.de>
7878
7879	PR c++/19542
7880	* c-common.c (c_common_nodes_and_builtins): Create global null_node.
7881	(warn_strict_null_sentinel): Define.
7882	(check_function_sentinel): Check for null_node as valid sentinel too.
7883	* c-common.h (c_tree_index): Added CTI_NULL.
7884	(null_node) Define global_tree[CTI_NULL].
7885	(warn_strict_null_sentinel): Declare.
7886	* c-opts.c: (c_common_handle_option): Handle -Wstrict-null-sentinel.
7887	* c.opt: (Wstrict-null-sentinel): New C++ option.
7888	* doc/invoke.texi (C++ Options): Document -Wstrict-null-sentinel.
7889
78902005-05-01  Kazu Hirata  <kazu@cs.umass.edu>
7891
7892	* gimplify.c (gimplify_compound_lval): Use VEC instead of
7893	VARRAY.
7894
7895	* global.c (calculate_reg_pav): Use VEC instead of VARRAY.
7896
7897	* dwarf2out.c (decl_scope_table, push_decl_scope,
7898	pop_decl_scope, scope_die_for, dwarf2out_init): Use VEC
7899	instead of VARRAY.
7900
79012005-05-01  Mark Mitchell  <mark@codesourcery.com>
7902
7903	PR C++/14391
7904	* c-cppbuiltin.c (c_cpp_builtins): Do not define __GXX_WEAK__ to 1
7905	if !flag_weak.
7906	* doc/cpp.texi (__DEPRECATED): Document.
7907	(__EXCEPTIONS): Likewise.
7908	(__GXX_WEAK__): Likewise.
7909
7910	* function.c (INVOKE__main): Do not define.
7911	(expand_main_function): Check HAS_INIT_SECTION when determining
7912	whether or not to call __main.
7913
79142005-05-01  Kazu Hirata  <kazu@cs.umass.edu>
7915
7916	* tree-ssa-loop-ivopts.c: Fix a comment typo.
7917
79182005-01-05  Paul Brook  <paul@codesourcery.com>
7919
7920	* config/arm/arm.h (ARM_EMIT_TRAMPOLINE_CACHE_CLEAR): Define.
7921	(INITIALIZE_TRAMPOLINE): Use it.
7922	* config/arm/linux-gas.h (INITIALIZE_TRAMPOLINE): Remove.
7923	* config/arm/netbsd.h (INITIALIZE_TRAMPOLINE): Remove.
7924	* config/arm/netbsd-elf.h (INITIALIZE_TRAMPOLINE): Remove.
7925
79262005-05-01  Gerald Pfeifer  <gerald@pfeifer.com>
7927
7928	* doc/install.texi (Specific): Omit dots in the @anchors names
7929	for i?86-*-sco3.2v5*, i?86-*-solaris2.10, and sparc-sun-solaris2.7.
7930	Omit underscores for x86_64-*-* and the "all ELF targets" entry.
7931
79322005-05-01  Zdenek Dvorak  <dvorakz@suse.cz>
7933
7934	PR tree-optimization/18316
7935	PR tree-optimization/19126
7936	* tree.c (build_int_cst_type): Avoid shift by size of type.
7937	* tree-scalar-evolution.c (simple_iv): Add allow_nonconstant_step
7938	argument.
7939	* tree-scalar-evolution.h (simple_iv): Declaration changed.
7940	* tree-ssa-loop-ivopts.c (struct iv_cand): Add depends_on
7941	field.
7942	(dump_cand): Dump depends_on information.
7943	(determine_biv_step): Add argument to simple_iv call.
7944	(contains_abnormal_ssa_name_p): Handle case expr == NULL.
7945	(find_bivs, find_givs_in_stmt_scev): Do not require step to be a
7946	constant.
7947	(add_candidate_1): Record depends_on for candidates.
7948	(tree_int_cst_sign_bit, constant_multiple_of): New functions.
7949	(get_computation_at, get_computation_cost_at, may_eliminate_iv):
7950	Handle ivs with nonconstant step.
7951	(iv_ca_set_remove_invariants, iv_ca_set_add_invariants): New functions.
7952	(iv_ca_set_no_cp, iv_ca_set_cp): Handle cand->depends_on.
7953	(create_new_iv): Unshare the step before passing it to create_iv.
7954	(free_loop_data): Free cand->depends_on.
7955	(build_addr_strip_iref): New function.
7956	(find_interesting_uses_address): Use build_addr_strip_iref.
7957	(strip_offset_1): Split the recursive part from strip_offset.
7958	Strip constant offset component_refs and array_refs.
7959	(strip_offset): Split the recursive part to strip_offset_1.
7960	(add_address_candidates): Removed.
7961	(add_derived_ivs_candidates): Do not use add_address_candidates.
7962	(add_iv_value_candidates): Add candidates with stripped constant
7963	offset.  Consider all candidates with initial value 0 important.
7964	(struct affine_tree_combination): New.
7965	(aff_combination_const, aff_combination_elt, aff_combination_scale,
7966	aff_combination_add_elt, aff_combination_add,
7967	tree_to_aff_combination, add_elt_to_tree, aff_combination_to_tree,
7968	fold_affine_sum): New functions.
7969	(get_computation_at): Use fold_affine_sum.
7970	* tree-ssa-loop-manip.c (create_iv): Handle ivs with nonconstant step.
7971	* tree-ssa-loop-niter.c (number_of_iterations_exit): Add argument
7972	to simple_iv call.
7973
79742005-04-30  Michael Matz  <matz@suse.de>
7975
7976	* config/i386/i386.md (movmemsi): Also active when
7977	TARGET_INLINE_ALL_STRINGOPS.
7978
79792005-04-30  Eric Botcazou  <ebotcazou@libertysurf.fr>
7980
7981	PR bootstrap/20633
7982	* config/freebsd-spec.h (FBSD_CPP_SPEC): Add %(cpp_arch).
7983
79842005-04-30  Paul Brook  <paul@codesourcery.com>
7985
7986	* config/arm/bpabi.h (RENAME_LIBRARY_SET): Always use .thumb_set in
7987	thumb mode.
7988	* config/arm/ieee754-df.S: Use __INTERWORKING_STUBS__.
7989	* config/arm/ieee754-sf.S: Ditto.
7990	* config/arm/lib1funcs.asm: Define and use __INTERWORKING_STUBS__.
7991	(FUNC_ALIAS): Use .thumb_set for thumb routines.
7992
79932005-04-30  Kazu Hirata  <kazu@cs.umass.edu>
7994
7995	* tree-ssanames.c: Fix a comment typo.
7996	* doc/options.texi: Fix a typo.
7997
79982005-04-30  Nathan Sidwell  <nathan@codesourcery.com>
7999
8000	* config/h8300/h8300.c (byte_reg): Use gcc_assert and
8001	gcc_unreachable as appropriate.
8002	(split_adds_subs, cond_string, print_operand,
8003	h8300_initial_elimination_offset, h8300_classify_operand,
8004	h8300_unary_length, h8300_short_immediate_length,
8005	h8300_bitfield_length, h8300_binary_length,
8006	h8300_insn_length_from_table, compute_mov_length, output_plussi,
8007	compute_plussi_length, compute_plussi_cc, output_logical_op,
8008	compute_logical_op_length, compute_logical_op_cc,
8009	output_h8sx_shift, get_shift_alg, h8300_shift_needs_scratch_p,
8010	output_a_shift, compute_a_shift_length, compute_a_shift_cc,
8011	output_a_rotate, compute_a_rotate_length, fix_bit_operand,
8012	h8300_regs_ok_for_stm): Likewise.
8013	* config/h8300/h8300.md (*movsi_h8300, *movsf_h8300,
8014	monitor_prologue): Likewise.
8015
80162005-04-30  Kazu Hirata  <kazu@cs.umass.edu>
8017
8018	* loop-invariant.c (invariants, create_new_invariant,
8019	get_inv_cost, best_gain_for_invariant,
8020	find_invariants_to_move, move_invariants,
8021	init_inv_motion_data, free_inv_motion_data): Use VEC instead
8022	of VARRAY.
8023
80242005-04-29  Richard Henderson  <rth@redhat.com>
8025
8026	* function.c (instantiate_decls): Remove valid_only argument.
8027	(instantiate_decls_1, instantiate_decl): Likewise.
8028	(instantiate_virtual_regs_1): Delete.
8029	(instantiate_virtual_regs_lossage): Delete.
8030	(instantiate_virtual_regs_in_rtx): New.
8031	(safe_insn_predicate): New.
8032	(instantiate_virtual_regs_in_insn): New.
8033	(instantiate_virtual_regs): Update to match all that.  Only run
8034	instantiate_decls once.
8035
80362005-04-29  Richard Henderson  <rth@redhat.com>
8037	    Daniel Jacobowitz  <dan@codesourcery.com>
8038
8039	* gengtype.c (write_func_for_structure): Split out ...
8040	(output_type_enum): ... new function.  Fix thinko accessing
8041	TYPE_PARAM_STRUCT data.
8042
80432005-04-29  Tom Tromey  <tromey@redhat.com>
8044
8045	* tree.c (build_block): Removed unused 'tags' argument.
8046	* tree.h (build_block): Removed argument.
8047
80482005-04-29  Michael Matz  <matz@suse.de>
8049
8050	PR rtl-optimization/21144
8051	* postreload.c (reload_cse_move2add): Check for VOIDmode.
8052
80532005-04-29  Bob Wilson  <bob.wilson@acm.org>
8054
8055	* config/xtensa/xtensa.h (OPTIMIZATION_OPTIONS): Define to disable
8056	flag_reorder_blocks.
8057
80582005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
8059
8060	PR tree-optimization/21030
8061	* tree-vrp.c (adjust_range_with_scev): Do not create invalid
8062	ranges where VR->MAX is smaller than VR->MIN.
8063
80642005-04-29  Devang Patel  <dpatel@apple.com>
8065
8066	PR tree-optimization/21272
8067	PR tree-optimization/21266
8068	* tree-if-conv.c (find_phi_replacement_condition): Fix think-o.
8069
80702005-04-29  Kazu Hirata  <kazu@cs.umass.edu>
8071
8072	* tree-flow-inline.h: Fix a comment typo.
8073	* doc/tree-ssa.texi: Fix a typo.
8074
8075	* tree-flow-inline.h, tree-ssa-operands.c: Fix comment typos.
8076
80772005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
8078
8079	* config/fr30/fr30.c (fr30_expand_prologue): Use gcc_assert and
8080	gcc_unreachable as appropriate.
8081	(fr30_expand_epilogue, fr30_setup_incoming_varargs,
8082	fr30_print_operand, fr30_move_double): Likewise.
8083	* config/fr30/fr30.md (*movsi_internal, *movsf_internal): Likewise.
8084
80852005-04-29  Mark Mitchell  <mark@codesourcery.com>
8086
8087	* config/arm/arm.h (ARM_EABI_CTORS_SECTION_OP): Do not define if a
8088	definition has already been provided.
8089	(ARM_EABI_DTORS_SECTION_OP): Likewise.
8090	* config/arm/symbian.h (ARM_EABI_CTORS_SECTION_OP): Define.
8091	(ARM_EABI_DTORS_SECTION_OP): Likewise.
8092
80932005-04-29  Jim Tison  <jtison@us.ibm.com>
8094
8095	* config/s390/s390.md ("prologue_tpf", "epilogue_tpf"): Alter
8096	trace hooks calls to improve performance.
8097
80982005-04-29  Julian Brown  <julian@codesourcery.com>
8099	    Mark Mitchell  <mark@codesourcery.com>
8100	    Paul Brook  <paul@codesourcery.com>
8101
8102	* crtstuff.c: Handle targets that use .init_array.
8103	* function.c (HAS_INIT_SECTION): Do not define. Instead, make sure
8104	that INVOKE__main is set correctly.
8105	(expand_main_function): Test INVOKE__main.
8106	* libgcc2.c: Do not define __main when using .init_array.
8107	* config/arm/arm.c (arm_elf_asm_constructor): New function.
8108	* config/arm/arm.h (CTORS_SECTION_ASM_OP): Define, with specialized
8109	libgcc version.
8110	(DTORS_SECTION_ASM_OP): Likewise.
8111	(CTOR_LIST_BEGIN): Define specially when in libgcc.
8112	(CTOR_LIST_END): Likewise.
8113	(DTOR_LIST_BEGIN): Likewise.
8114	(DTOR_LIST_END): Likewise.
8115	* config/arm/bpapi.h (INIT_SECTION_ASM_OP): Do not define it.
8116	(FINI_SECTION_ASM_OP): Likewise.
8117	(INIT_ARRAY_SECTION_ASM_OP): Define.
8118	(FINI_ARRAY_SECTION_ASM_OP): Likewise.
8119	* config/arm/elf.h (TARGET_ASM_CONSTRUCTOR): Define.
8120	(SUPPORTS_INIT_PRIORITY): Evaluate to false for EABI based targets.
8121	* doc/tm.texi (INIT_ARRAY_SECTION_ASM_OP): Document.
8122	(FINI_ARRAY_SECTION_ASM_OP): Likewise.
8123
81242005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
8125
8126	* config/m68k/m68k.c (m68k_initial_elimination_offset): Use
8127	gcc_assert and gcc_unreachable as appropriate.
8128	(output_dbcc_and_branch, output_scc_di, legitimize_pic_address,
8129	const_int_cost, output_move_const_into_data_reg,
8130	output_move_qimode, output_move_double, find_addr_reg,
8131	print_operand, print_operand_address): Likewise.
8132	* config/m68k/m68k.md (adddi3, subdi3, negsf2, negdf2, abssf2,
8133	absdf2, sordered, sunordered, suneq, sunge, sungt, sunle, sunlt,
8134	sltgt, bordered, bunordered, buneq, bunge, bungt, bunle, bunlt,
8135	bltgt, *bordered_rev, *bunordered_rev, *buneq_rev, *bunge_rev,
8136	*bunle_rev, *bunlt_rev, *bltgt_rev, negxf2, absxf2,
8137	conditional_trap): Likewise.
8138	* config/m68k/m68kelf.h (ASM_OUTPUT_ALIGN): Remove unreachable code.
8139
81402005-04-29  Nathan Sidwell  <nathan@codesourcery.com>
8141
8142	* config/xtensa/xtensa.c (gen_int_relational): Use gcc_assert and
8143	gcc_unreachable as appropriate.
8144	(gen_conditional_move, xtensa_split_operand_pair,
8145	xtensa_split_operand_pair, xtensa_copy_incoming_a7,
8146	xtensa_copy_incoming_a7, xtensa_copy_incoming_a7,
8147	xtensa_copy_incoming_a7, xtensa_output_literal,
8148	xtensa_output_literal, xtensa_output_literal): Likewise.
8149	* config/xtensa/xtensa.h (INITIAL_ELIMINATION_OFFSET): Likewise.
8150	* config/xtensa/xtensa.md (*btrue, *bfalse, *ubtrue, *ubfalse,
8151	*bittrue, *bitfalse, *masktrue, *maskfalse, movsicc_internal0,
8152	movsicc_internal1, movsfcc_internal0,
8153	movsfcc_internal1): Likewise.
8154
81552005-04-28  James E Wilson  <wilson@specifixinc.com>
8156
8157	* config/i386/i386.h (HI_REGISTER_NAMES): Fix typos in comment.
8158	(ADDITIONAL_REGISTER_NAMES): Delete obsolete mmx register entries.
8159
81602005-04-28  DJ Delorie  <dj@redhat.com>
8161
8162	* opt-functions.awk (var_set): Emit proper initializer for
8163	non-target bitfields.
8164
81652005-04-28  Devang Patel  <dpatel@apple.com>
8166
8167	* dbxout.c (have_used_extensions): Remove.
8168	(dbxout_type_fileds, dbxout_type, dbxout_symbol): Remove use of
8169	have_used_extensions.
8170
81712005-04-28  James E Wilson  <wilson@specifixinc.com>
8172
8173	* doc/install.texi: Update -enable-languages info.  Correct path to
8174	html docs.
8175
81762005-04-28  DJ Delorie  <dj@redhat.com>
8177
8178	* optc-gen.awk (END): Make sure no variable is defined more
8179	than once.
8180	* opth-gen.awk (END): Allocate bits on a per-variable basis.
8181	Allow for bitfield variables other than target_flags.
8182	* doc/options.text (Mask): Document that you may specify a
8183	variable other than target_flags.
8184
81852005-04-28  Martin Koegler <mkoegler@auto.tuwien.ac.at>
8186
8187	PR rtl-optimization/18877
8188	* reload.c (decompose) <case REG, case SUBREG>: Handle pseudo reg
8189	number in val.start.
8190
81912005-04-28  David Edelsohn  <edelsohn@gnu.org>
8192
8193	PR target/20813
8194	* config/rs6000/aix43.h (SUBSUBTARGET_SWITCHES, aix64): Add
8195	MASK_PPC_GFXOPT.
8196	* config/rs6000/aix51.h (SUBSUBTARGET_SWITCHES, aix64): Same.
8197	* config/rs6000/aix52.h (SUBSUBTARGET_SWITCHES, aix64): Same.
8198	* config/rs6000/sysv4.h (SUBTARGET_SWITCHES, 64): Same.
8199
82002005-04-28  Richard Earnshaw  <richard.earnshaw@arm.com>
8201
8202	* arm.c (legitimize_pic_address): Fix sense of assertion test for
8203	creating pseudos when the base offset is too large.
8204
82052005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
8206
8207	* global.c (earlyclobber_regclass): Change the type to
8208	VEC(int,heap).
8209	(check_earlyclobber): Update uses of earlyclobber_regclass.
8210	(mark_reg_use_for_earlyclobber): Likewise.
8211	(calculate_local_reg_bb_info): Allocate and free
8212	earlyclobber_regclass using the VEC API.
8213
82142005-04-28  Nathan Sidwell  <nathan@codesourcery.com>
8215
8216	* tree-ssa-alias.c (push_fields_onto_fieldstack): Remove bogus
8217	assert.
8218
82192005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
8220
8221	* modulo-sched.c, tree-stdarg.c: Use targetm.foo instead of
8222	(*targetm.foo).
8223
8224	* config.gcc: Obsolete c4x-* and tic4x-*.
8225
8226	* tree.h (edge_def): Remove.
8227
8228	* bt-load.c, cfgexpand.c, dwarf2out.c, emit-rtl.c, expr.c,
8229	function.c, global.c, lcm.c, loop-invariant.c, optabs.c,
8230	reorg.c, resource.c, tree-ssa-loop-ivopts.c, value-prof.c: Use
8231	JUMP_P, LABEL_P, REG_P, MEM_P, NONJUMP_INSN_P, and INSN_P
8232	where appropriate.
8233
8234	* attribs.c, c-pragma.c, caller-save.c, cfghooks.h,
8235	coverage.c, cselib.h, domwalk.c, domwalk.h, errors.c,
8236	errors.h, gcov-dump.c, gcov-io.c, gcov-io.h, gen-protos.c,
8237	genattrtab.h, genextract.c, gthr-win32.h, insn-notes.def,
8238	integrate.c, lambda-mat.c, lambda.h, libgcov.c, local-alloc.c,
8239	machmode.def, mips-tfile.c, params.c, pretty-print.c,
8240	print-rtl.c, protoize.c, regmove.c, sched-vis.c, tree-chrec.h,
8241	tree-data-ref.h, vec.h, config/darwin-c.c, config/sol2-c.c,
8242	config/sol2.c, config/arm/arm-cores.def, config/arm/cirrus.md,
8243	config/arm/symbian.h, config/c4x/c4x.c, config/c4x/c4x.h,
8244	config/i386/cygming.h, config/i386/djgpp.h,
8245	config/i386/lynx.h, config/i386/netware.c,
8246	config/i386/winnt.c, config/ia64/ia64-c.c,
8247	config/iq2000/iq2000.c, config/m32r/little.h,
8248	config/m68k/m68k-protos.h, config/m68k/m68k.h,
8249	config/m68k/m68k.md, config/mcore/mcore.c,
8250	config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.md,
8251	config/mn10300/mn10300-protos.h, config/mn10300/mn10300.c,
8252	config/mn10300/mn10300.h, config/ns32k/netbsd.h,
8253	config/ns32k/ns32k.c, config/ns32k/ns32k.h,
8254	config/pa/pa-hpux11.h, config/pdp11/pdp11.c,
8255	config/pdp11/pdp11.h, config/rs6000/darwin.h,
8256	config/rs6000/default64.h, config/rs6000/rs6000-c.c,
8257	config/s390/2064.md, config/s390/2084.md,
8258	config/s390/s390-modes.def, config/s390/s390-protos.h,
8259	config/s390/tpf.h, config/sh/sh.h, config/sh/symbian.c,
8260	config/stormy16/stormy16.c, config/vax/vax-protos.h,
8261	config/vax/vax.c, config/vax/vax.h,
8262	config/xtensa/lib1funcs.asm, config/xtensa/xtensa.md: Update
8263	copyright.
8264
82652005-04-28  Joseph S. Myers  <joseph@codesourcery.com>
8266
8267	* c-typeck.c (build_compound_expr): Correct logic in last change.
8268
82692005-04-27  James E. Wilson  <wilson@specifixinc.com>
8270
8271	* config/ia64/ia64.c (update_set_flags): Delete ppred and pcond
8272	parameters.  Replace conditional move code with assert checking for
8273	ar.lc.  Delete obsolete comments.
8274	(set_src_needs_barrier): Delete cond parameter, and code using it.
8275	(rtx_needs_barrier): Delete initialization of cond.  Fix typo in
8276	assert checking for PR_REGS.  Fix calls to update_set_flags and
8277	set_src_needs_barrier.
8278	(group_barrier_needed): Renamed from group_barrier_needed_p.  Fix all
8279	callers.  Rewrite explanatory comment before the function.
8280	(safe_group_barrier_needed): Renamed from safe_group_barrier_needed_p.
8281	Fix all callers.
8282
82832005-04-27  Mike Stump  <mrs@apple.com>
8284
8285	* doc/cpp.texi: gcc now implements universal character names.
8286
82872005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
8288
8289	PR c/21159
8290	* c-typeck.c (build_compound_expr): Don't warn for left-hand side
8291	being a compound expression whose right-hand side is cast to void.
8292
82932005-04-27  Caroline Tice  <ctice@apple.com>
8294
8295	* bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
8296	Remove targetm.have_named_sections test.
8297	(fix_edges_for_rarely_executed_code): Likewise.
8298	(insert_section_boundary_note): Likewise.
8299	(reorder_basic_blocks): Check partitioning flag before calling
8300	verify_hot_cold_block_grouping.
8301	* dbxout.c (dbxout_function_end): Get hot/cold section labels from
8302	the function struct rather than global variables.
8303	* dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
8304	(COLD_END_LABEL): Likewise
8305	(cold_text_section_label): New static global variable.
8306	(cold_end_label): Likewise.
8307	(dwarf2out_switch_text_section): Get hot/cold section labels from
8308	the function struct rather than global variables; test to make sure
8309	cfun is defined.
8310	(output_aranges): Use cold_text_section_label and cold_end_label;
8311	check partitioning flag before putting out delta.
8312	(output_ranges): Remove incorrect code attempting to use
8313	hot/cold labels.
8314	(output_line_info): Get cold section label from function struct; test
8315	to make sure cfun is defined.
8316	(add_location_or_const_value_attribute): Likewise.
8317	(dwarf2out_var_location): Likewise.
8318	(dwarf2out_init): Generate cold_text_section_label and cold_end_label;
8319	write out cold_text_section_label if partition flag is set.
8320	(dwarf2out_finish): Write out cold_end_label if partition flag is set;
8321	* function.h (struct function): Add new fields to point to hot/cold
8322	section labels: hot_section_label, cold_section_label,
8323	hot_section_end_label and cold_section_end_label; also add new field
8324	for cold text section name, unlikely_text_section_name.
8325	* opts.c (decode_options): Turn off partitioning flag if
8326	!targetm.have_named_sections.
8327	* output.h (hot_section_label): Remove.
8328	(hot_section_end_label): Remove.
8329	(cold_section_end_label): Remove.
8330	(unlikely_section_label): Remove.
8331	(unlikely_text_section_name): Remove.
8332	* passes.c (rest_of_handle_final):  Remove extra blank line.
8333	* varasm.c (unlikely_section_label): Remove.
8334	(hot_section_label): Remove.
8335	(hot_section_end_label): Remove.
8336	(cold_section_end_label): Remove.
8337	(unlikely_text_section_name):  Remove.
8338	(initialize_cold_section_name): Modify to call
8339	targetm.strip_name_encoding; to store cold section name in current
8340	function struct, if it exists; and to only use the decl_section_name
8341	if flag_named_sections is true.
8342	(unlikely_text_section): Modify to get section name out of current
8343	function struct, if there is one; otherwise build it from
8344	UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
8345	(in_unlikely_text_section): Likewise.
8346	(named_section): Modify to get/put cold section name in current function
8347	struct, if there is one.
8348	(function_section):  Change 'bool unlikely' to 'int reloc'; check
8349	targetm.have_named_sections before calling named_section.
8350	(current_function_section): Likewise.
8351	(assemble_start_function): Modify to get/put unlikely_text_section_name
8352	in current function struct; modify to get hot/cold section labels
8353	from function struct; initialize labels using
8354	ASM_GENERATE_INTERNAL_LABEL;
8355	test partitioning flag before writing out hot section label.
8356	(assemble_end_function): Test partitioning flag before writing out
8357	hot/cold section labels.
8358	(default_section_type_flags_1):  Get cold text section name from
8359	function struct if there is one; Set flags correctly for
8360	cold text section if there is not a current function struct.
8361
83622005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
8363
8364	* tree-ssa-propagate.c (set_rhs): Revert last change.
8365
83662005-04-27  Steve Ellcey  <sje@cup.hp.com>
8367
8368	* explow.c (convert_memory_address): Add gcc_assert.
8369
83702005-04-27  Mark Mitchell  <mark@codesourcery.com>
8371
8372	* configure.ac: Check for ld --sysroot support.
8373	* gcc.c: Document %R specifier for specs.
8374	(SYSROOT_SPEC): New macro.
8375	(sysroot_spec): New variable.
8376	(static_specs): Add sysroot_spec.
8377	(main): Pass the sysroot spec to the linker if appropriate.
8378	* configure: Regenerated.
8379	* config.in: Likewise.
8380
83812005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
8382
8383	* fold-const.c (fold_binary): Use build_fold_addr_expr
8384	for address calculation and INDIRECT_REF handling.
8385
83862005-04-27  Andrew Haley  <aph@redhat.com>
8387
8388	* postreload-gcse.c (hash_scan_set): Remove bogus assertion.
8389
83902005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
8391
8392	* config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Reserve arm frame
8393	pointer when thumb backtracing is on.
8394
8395	* config/fp-bit.c (abort): Revert change.
8396
83972005-04-27  Ian Lance Taylor  <ian@airs.com>
8398
8399	* c-semantics.c (add_stmt): Don't test STATEMENT_CODE_P.
8400
84012005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
8402
8403	* tree-ssa-dce.c: Fix a comment typo.
8404
84052005-04-27  David S. Miller  <davem@davemloft.net>
8406
8407	* explow.c (allocate_dynamic_stack_space SETJMP_VIA_SAVE_AREA):
8408	Kill setjmpless_size.  current_function_calls_setjmp is completely
8409	computed when we are called, so just use the optimized size value
8410	instead of using REG_SAVE_AREA notes.
8411	(optimize_save_area_alloca): Delete....
8412	* rtl.h (optimize_save_area_alloca): Likewise...
8413	* passes.c (rest_of_compilation): and don't call it any more.
8414	* reg-notes.def (SAVE_AREA): Delete.
8415
84162005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
8417
8418	* config/fp-bit.c (abort): Add noreturn attribute.
8419
8420	* config/avr/avr.c (avr_naked_function_p): Use gcc_assert and
8421	gcc_unreachable as appropriate.
8422	(ptrreg_to_str, cond_string, avr_normalize_condition): Likewise.
8423	* config/avr/avr.h (ASM_OUTPUT_REG_PUSH,
8424	ASM_OUTPUT_REG_POP): Likewise.
8425
84262005-04-27  Paolo Bonzini  <bonzini@gnu.org>
8427
8428	* tree-complex.c (expand_vector_operations_1): Do not build
8429	VIEW_CONVERT_EXPR's for the lhs.
8430
84312005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
8432
8433	* config/pa/pa.h (PRINT_OPERAND_ADDRESS): Use gcc_assert, remove
8434	unnecessary noncanonical RTL handling.
8435	* config/pa/pa64-linux.h (INITIAL_ELIMINATION_OFFSET): Use
8436	gcc_assert and gcc_unreachable.
8437
8438	* config/arm/arm.h (ARM_PRINT_OPERAND_ADDRESS): Use gcc_assert and
8439	gcc_unreachable as appropriate.
8440	(THUMB_PRINT_OPERAND_ADDRESS): Likewise.
8441	* config/arm/arm.c (arm_override_options, arm_compute_func_type,
8442	use_return_insn, const_ok_for_op, arm_gen_constant,
8443	arm_canonicalize_comparison, legitimize_pic_address,
8444	thumb_find_work_register, arm_load_pic_register, arm_rtx_costs_1,
8445	arm_cirrus_insn_p, cirrus_reorg, minmax_code,
8446	load_multiple_sequence, emit_ldm_seq, store_multiple_sequence,
8447	emit_stm_seq, arm_gen_movmemqi, arm_select_dominance_cc_mode,
8448	arm_select_cc_mode, arm_reload_in_hi, arm_reload_out_hi,
8449	move_minipool_fix_forward_ref, move_minipool_fix_backward_ref,
8450	dump_minipool, create_fix_barrier, push_minipool_fix, arm_reorg,
8451	fp_immediate_constant, fp_const_from_val, vfp_output_fstmx,
8452	output_call, output_mov_long_double_fpa_from_arm,
8453	output_mov_long_double_arm_from_fpa,
8454	output_mov_double_fpa_from_arm, output_mov_double_arm_from_fpa,
8455	output_move_double, arithmetic_instr, shift_op, int_log2,
8456	output_return_instruction, arm_output_function_prologue,
8457	arm_output_epilogue, arm_output_function_epilogue,
8458	emit_multi_reg_push, arm_get_frame_offsets,
8459	arm_compute_initial_elimination_offset, arm_expand_prologue,
8460	arm_print_operand, arm_assemble_integer, get_arm_condition_code,
8461	arm_final_prescan_insn, arm_init_iwmmxt_builtins,
8462	arm_expand_binop_builtin, thumb_pushpop, thumb_far_jump_used_p,
8463	thumb_compute_initial_elimination_offset,
8464	thumb_output_function_prologue, thumb_load_double_from_address,
8465	thumb_output_move_mem_multiple, thumb_reload_out_hi,
8466	arm_emit_vector_const, arm_dbx_register_number): Likewise.
8467	* config/arm/pe.c (arm_mark_dllexport, arm_mark_dllimport): Likewise.
8468	* config/arm/arm.md (thumb_extendhisi2,
8469	*thumb_extendhisi2_insn_v6, *thumb_extendqisi2,
8470	*thumb_extendqisi2_v6, movhi, *thumb_movhi_insn,
8471	thumb_movhi_clobber, movqi, *arm_buneq, *arm_bltgt,
8472	*arm_buneq_reversed, *arm_bltgt_reversed, suneq, sltgt): Likewise.
8473	* config/arm/cirrus.md (*cirrus_arm_movdi,
8474	*cirrus_movdf_hard_insn): Likewise.
8475	* config/arm/vfp.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
8476
84772005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
8478
8479	* tree-flow.h (ssa_names): Change the type to VEC(tree,gc).
8480	(num_ssa_names): Use VEC_length.
8481	(ssa_names): Use VEC_index.
8482	* tree-ssanames.c (ssa_names): Change the type to
8483	VEC(tree,gc).
8484	(init_ssanames, fini_ssa_names, make_ssanames,
8485	release_ssa_name): Update uses of ssa_names.
8486
8487	* dojump.c, emit-rtl.c, expmed.c, expr.c, stmt.c, stor-layout.c:
8488	Use fold_buildN instead of fold (buildN (...)).
8489
84902005-04-27  Devang Patel <dpatel@apple.com>
8491
8492	* dbxout.c (dbxout_type): Check use_gnu_debug_info_extensions.
8493
84942005-04-27  Matt Thomas <matt@3am-software.com>
8495	    Jan-Benedict Glaw <jbglaw@microdata-pos.de>
8496
8497	* config/vax/vax.c (vax_rtx_costs): Whitespace cleanup.
8498	(vax_output_mi_thunk): Ditto.
8499	(vax_notice_cc_update): Ditto.
8500	(INDEX_REGISTER_P): Add trailing \.
8501	(BASE_REGISTER_P): Add trailing \.
8502	(legitimate_address_p): Whitespace cleanup.  Remove trailing \.
8503
85042005-04-27  Richard Guenther  <rguenth@gcc.gnu.org>
8505
8506	* tree-ssa-propagate.c (set_rhs): Check operand of
8507	ADDR_EXPR for gimpliness, too.
8508
85092005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
8510
8511	* tree-ssa-pre.c: Fix a comment typo.
8512
85132005-04-27  Zdenek Dvorak  <dvorakz@suse.cz>
8514
8515	PR tree-optimization/21171
8516	* tree-ssa-loop-ivopts.c (find_interesting_uses_address): Do not
8517	record address uses if the reference is volatile.
8518
85192004-04-27  Paolo Bonzini  <bonzini@gnu.org>
8520
8521	* tree-complex.c (expand_vector_operation): New, extracted from
8522	expand_vector_operations_1.
8523	(tree_vec_extract): Build a NOP_EXPR.
8524	(expand_vec_parallel): Do not care about returning the correct type.
8525	(expand_vector_operations_1): Call expand_vector_operation.
8526	Build the VIEW_CONVERT_EXPR on the left side of MODIFY_EXPRs.
8527
8528	* tree-complex.c (gate_expand_vector_operations): New.
8529	(pass_lower_vector_ssa): Use it.
8530	* tree-optimize.c (init_tree_optimization_passes): Include
8531	pass_lower_vector_ssa.
8532	* tree-vect-transform.c (vect_min_worthwhile_factor): New.
8533	(vectorizable_operation): Use it.
8534	* tree-vectorizer.c (get_vectype_for_scalar_type): Accept
8535	integer modes for the vector type.
8536
8537	* defaults.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
8538	* tree-vect-analyze.c (vect_enhance_data_refs_alignment):
8539	Do not cope with UNITS_PER_SIMD_WORD == 0.
8540	* tree-vectorizer.c (get_vectype_for_scalar_type): Check
8541	if the scalar type is not bigger than UNITS_PER_SIMD_WORD.
8542	(vectorize_loops): Do not check that UNITS_PER_SIMD_WORD > 0.
8543	* config/i386/i386.h (UNITS_PER_SIMD_WORD): Default to UNITS_PER_WORD.
8544	* config/mips/mips.h (UNITS_PER_SIMD_WORD): Likewise.
8545	* config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Likewise.
8546	* config/sparc/sparc.h (UNITS_PER_SIMD_WORD): Likewise.
8547
8548	* config/alpha/alpha.h (UNITS_PER_SIMD_WORD): Remove.
8549	* config/bfin/bfin.h (UNITS_PER_SIMD_WORD): Remove.
8550	* config/ia64/ia64.h (UNITS_PER_SIMD_WORD): Remove.
8551
8552	* doc/tm.texi (UNITS_PER_WORD): Rephrase more accurately.
8553	(UNITS_PER_SIMD_WORD): New.
8554
85552005-04-27  Nathan Sidwell  <nathan@codesourcery.com>
8556
8557	* config/ia64/ia64.c (ia64_encode_addr_area): Use gcc_assert and
8558	gcc_unreachable as appropriate.
8559	(ia64_expand_load_address, ia64_expand_tls_address,
8560	ia64_split_tmode, ia64_split_tmode_move, ia64_expand_compare,
8561	ia64_expand_vecint_compare, ia64_expand_vecint_minmax,
8562	next_scratch_gr_reg, ia64_initial_elimination_offset,
8563	ia64_expand_prologue, ia64_expand_epilogue,
8564	ia64_output_dwarf_dtprel, ia64_print_operand,
8565	ia64_register_move_cost, first_instruction, rws_access_regno,
8566	update_set_flags, rtx_needs_barrier, group_barrier_needed_p,
8567	ia64_sched_init, ia64_variable_issue,
8568	ia64_first_cycle_multipass_dfs_lookahead_guard,
8569	ia64_dfa_new_cycle, issue_nops_and_insn, get_template, bundling,
8570	ia64_st_address_bypass_p, ia64_ld_address_bypass_p, process_set,
8571	process_for_unwind_directive, ia64_hpux_file_end): Likewise.
8572	* config/ia64/ia64.h (ASM_OUTPUT_ADDR_VEC_ELT): Likewise.
8573	* config/ia64/ia64.md (*arm_movdi_vfp, *movdf_vfp): Likewise.
8574	* config/ia64/predicates.md (got_symbolic_operand,
8575	sdata_symbolic_operand): Likewise.
8576	* config/ia64/vect.md (vcondv2sf): Likewise.
8577
85782005-04-27  Matt Thomas <matt@3am-software.com>
8579
8580	* config/vax/vax.c (legitimate_constant_address_p): New.  Formerly
8581	CONSTANT_ADDRESS_P in config/vax/vax.h
8582	(legitimate_constant_p): Added.  Formerly CONSTANT_P in vax.h.
8583	(INDEX_REGISTER_P): New.
8584	(BASE_REGISTER_P): New.
8585	(indirectable_constant_address_p): New.  Adapted from
8586	INDIRECTABLE_CONSTANT_ADDRESS_P in vax.h. Use SYMBOL_REF_LOCAL_P.
8587	(indirectable_address_p): New.  Adapted from
8588	INDIRECTABLE_ADDRESS_P in vax.h.
8589	(nonindexed_address_p): New.  Adapted from
8590	GO_IF_NONINDEXED_ADDRESS in vax.h.
8591	(index_temp_p): New.  Adapted from INDEX_TERM_P in vax.h.
8592	(reg_plus_index_p): New.  Adapted from GO_IF_REG_PLUS_INDEX in vax.h.
8593	(legitimate_address_p): New.  Adapted from
8594	GO_IF_LEGITIMATE_ADDRESS in vax.h.
8595	(vax_mode_dependent_address_p): New.  Adapted from
8596	GO_IF_MODE_DEPENDENT_ADDRESS in vax.h.
8597	* config/vax/vax.h (CONSTANT_ADDRESS_P): Use
8598	legitimate_constant_address_p.
8599	(CONSTANT_P): Use legitimate_constant_p.
8600	(INDIRECTABLE_CONSTANT_ADDRESS_P): Removed.
8601	(INDIRECTABLE_ADDRESS_P): Removed.
8602	(GO_IF_NONINDEXED_ADDRESS): Removed.
8603	(INDEX_TEMP_P): Removed.
8604	(GO_IF_REG_PLUS_INDEX): Removed.
8605	(GO_IF_LEGITIMATE_ADDRESS): Use legitimate_address_p. Two
8606	definitions, depending on whether REG_OK_STRICT is defined.
8607	(GO_IF_MODE_DEPENDENT_ADDRESS): Use vax_mode_dependent_address_p.
8608	Two definitions, depending on whether REG_OK_STRICT is defined.
8609	* config/vax/vax-protos.h (legitimate_constant_address_p): Prototype
8610	added.
8611	(legitimate_constant_p): Prototype added.
8612	(legitimate_address_p): Prototype added.
8613	(vax_mode_dependent_address_p): Prototype added.
8614
86152005-04-27  Kazu Hirata  <kazu@cs.umass.edu>
8616
8617	* tree.h (phi_arg_d): Expand a comment in phi_arg_d.
8618
86192005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
8620
8621	PR c/21213
8622	* c-decl.c (finish_struct): Don't dereference NULL TYPE_FIELDS of
8623	transparent union.
8624
86252005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
8626
8627	PR c/20740
8628	* c-format.c (init_dynamic_asm_fprintf_info): Give errors, not
8629	assertion failures, if __gcc_host_wide_int__ is not properly
8630	defined.
8631	(init_dynamic_diag_info): Give errors, not assertion failures, if
8632	location_t, tree or __gcc_host_wide_int__ are not properly
8633	defined.
8634
86352005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
8636
8637	* tree-ssa-loop-ivopts.c (ivopts_data, decl_rtl_to_reset,
8638	n_iv_uses, iv_use, n_iv_cands, iv_cand,
8639	tree_ssa_iv_optimize_init, record_use, add_candidate_1,
8640	prepare_decl_rtl, free_loop_data,
8641	tree_ssa_iv_optimize_finalize): Use the VEC API instead of
8642	VARRAY.
8643
8644	* tree.h (tree_phi_node): Add a comment about the order of PHI
8645	arguments.
8646
86472005-04-26  Paul Brook  <paul@codesourcery.com>
8648
8649	* config/arm/arm.md (thumb_mulsi3): Use two-operand assembly form.
8650
86512005-04-26  Nathan Sidwell  <nathan@codesourcery.com>
8652
8653	* config/mips.mips.c (mips_legitimize_tls_address): Use
8654	gcc_unreachable.
8655
8656	* config/mmix/mmix.c (mmix_assemble_integer): Use gcc_assert.
8657	* config/mmix/crti.asm (_init): Reword comment to avoid 'abort'.
8658	* config/mmix/mmix.md (nonlocal_goto_receiver): Likewise.
8659
8660	* config/sparc/sparc.h (enum reg_class): Reword comment to avoid
8661	'abort'.
8662
86632005-04-26  Jeff Law  <law@redhat.com>
8664
8665	* tree-flow-inline.h (op_iter_next_must_and_may_def): New.
8666	(op_iter_init_must_and_may_def): Likewise.
8667	(unmodifiable_var_p): Move to a later point in the file.
8668	* tree-ssa-operands.h (FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): New.
8669	* tree-ssa-dse.c (need_imm_uses_for): Remove, no longer needed.
8670	(dse_record_phis): Directly check for virtual operands rather than
8671	using need_imm_uses_for.
8672	(dse_optimize_stmt): Handle V_MUST_DEF operands.  Handle case where
8673	store has multiple V_{MAY,MUST}_DEF operands.
8674
86752005-04-26  Andrew MacLeod  <amacleod@redhat.com>
8676
8677	* tree-cfg.c (bsi_replace): Delink immediate uses for the original
8678	stmt.
8679
86802005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
8681
8682	* tree-cfg.c (lv_adjust_loop_header_phi): Speed up moving a
8683	call to find_edge outside a loop to go through a PHI chain.
8684
86852004-04-26  Richard Guenther  <rguenth@gcc.gnu.org>
8686
8687	PR tree-optimization/17598
8688	* fold-const.c (fold_binary): Fold comparisons of addresses
8689	of COMPONENT_REFs which reference the same field to
8690	comparisons of the addresses of the base objects.
8691
86922005-04-26  Julian Brown  <julian@codesourcery.com>
8693
8694	* config/arm/arm.c (arm_return_in_msb): New function.
8695	(arm_must_pass_in_stack): New function.
8696	(TARGET_RETURN_IN_MSB): Define target hook.
8697	(TARGET_MUST_PASS_IN_STACK): Define target hook.
8698	(arm_function_value): Pad small aggregate return.
8699	(arm_pad_arg_upward): New function.
8700	(arm_pad_reg_upward): New function.
8701	* config/arm/arm.h (PROMOTE_FUNCTION_MODE): Include complex values.
8702	(FUNCTION_ARG_PADDING): Define macro.
8703	(BLOCK_REG_PADDING): Define macro.
8704	(PAD_VARARGS_DOWN): Correct padding for AAPCS.
8705	* config/arm/arm-protos.h (arm_pad_arg_upward): Declare function.
8706	(arm_pad_reg_upward): Declare function.
8707
87082005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
8709
8710	* basic-block.h (ei_cond): New.
8711	(FOR_EACH_EDGE): Call ei_cond.
8712
8713	PR tree-optimization/21047
8714	* fold-const.c (fold_binary): Abort on ASSERT_EXPR.
8715	(fold): Don't handle ASSERT_EXPR.
8716
87172005-04-25  Roger Sayle  <roger@eyesopen.com>
8718
8719	* sched-deps.c (sched_analyze_1): On STACK_REGS targets, x87, treat
8720	all writes to any stack register as a read/write dependency on
8721	FIRST_STACK_REG.
8722	(sched_analyze_2): Likewise, for reads from any stack register.
8723
87242005-04-25  Richard Henderson  <rth@redhat.com>
8725
8726	* final.c (output_addr_const): Revert 2005-04-09 change.
8727
87282005-04-25  Mike Stump  <mrs@apple.com>
8729
8730	* config/darwin.c (darwin_encode_section_info): Always set
8731	MACHO_SYMBOL_STATIC for all ! TREE_PUBLIC symbols.
8732
87332005-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8734
8735	* collect2.c, gcc.c, gcov-dump.c, gcov.c, gen-protos.c,
8736	gensupport.c, protoize.c, toplev.c: Replace calls to
8737	`unlock_stream' with `unlock_std_streams'.
8738
87392005-04-25  Devang Patel <dpatel@apple.com>
8740
8741	* dbxout.c (dbxout_type): Emit attribute vector.
8742
87432005-04-05  Paul Brook  <paul@codesourcery.com>
8744
8745	* target-def.h (TARGET_CXX_USE_AEABI_ATEXIT): Define.
8746	* target.h (struct gcc_target): Add cxx.use_aeabi_atexit.
8747	* config/arm/arm.c (arm_cxx_atexit_name): New function.
8748	(TARGET_CXX_USE_AEABI_ATEXIT): New macro.
8749	* cp/decl.c (get_atexit_node): Reorder arguments for __aeabi_atexit.
8750	(register_dtor_fn): Likewise.
8751	* doc/tm.texi: Document TARGET_CXX_USE_AEABI_ATEXIT.
8752
87532005-04-25  Ian Lance Taylor  <ian@airs.com>
8754
8755	* c-common.def (EXPR_STMT): Remove, moved to C++ frontend.
8756	* c-common.h (EXPR_STMT_EXPR): Don't define.
8757	(c_common_stmt_codes): Don't define.
8758	* c-dump.c (c_dump_tree): Remove EXPR_STMT case.
8759	* c-gimplify.c (gimplify_expr_stmt): Remove.
8760	(c_gimplify_expr): Remove EXPR_STMT case.
8761	* c-objc-common.c (c_objc_common_init): Remove stmt_codes and call
8762	to INIT_STATEMENT_CODES.
8763	* c-pretty-print.c (pp_c_statement): Just call dump_generic_node.
8764
87652005-04-25  Jan Hubicka  <jh@suse.cz>
8766
8767	* tree-cfg.c (tree_duplicate_bb): Duplicate EH region too.
8768
8769	* except.c: Include diagnostic.h
8770	(dump_eh_tree, verify_eh_tree): New functions.
8771	* except.h (verify_eh_tree, dump_eh_tree, verify_eh_edges): Declare.
8772	* tree-cfg.c (tree_verify_flow_info): verify eh edges.
8773	(dump_function_to_file): dump eh tree.
8774	* tree-eh.c (mark_eh_edge): New function.
8775	(mark_eh_edge_found_error): New static variable.
8776	(verify_eh_edges): New function.
8777
87782005-04-25  Nathan Sidwell  <nathan@codesourcery.com>
8779
8780	* tree-ssa-alias.c (fieldoff_t): Remove.
8781	(fieldoff_s): typedef the structure itself.  Create a vector of
8782	objects.
8783	(push_fields_onto_fieldstack): Return count of fields pushed.
8784	Remove peeling of first field.  Adjust.
8785	(fieldoff_compare): Adjust.
8786	(create_overlap_variables_for): Adjust.
8787
87882005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
8789
8790	* doc/invoke.texi (Blackfin Options): Avoid empty @opindex line.
8791
87922005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
8793
8794	PR bootstrap/21215
8795	* doc/install.texi: Document correct assembler and linker to use
8796	on i?86-*-solaris2.10.
8797
87982005-04-25  Steven Bosscher  <stevenb@suse.de>
8799
8800	Fix PR tree-optimization/21173
8801
8802	* tree-ssa-pre.c (create_expression_by_pieces): Simplify code.
8803	Unshare expression we pass to force_gimple_operand.
8804
88052005-04-25  J"orn Rennecke <joern.rennecke@st.com>
8806	    Stephen Clarke <stevec@superh.com>
8807	    Roger Sayle <roger@eyesopen.com>
8808
8809	PR rtl-optimization/20413
8810	* cfgrtl.c (redirect_edge_and_branch): Use Pmode instead of
8811	VOIDmode for LABEL_REF.
8812	* final.c (shorten_branches): Likewise.
8813	* jump.c (mark_all_labels, redirect_exp_1): Likewise.
8814	* loop.c (reg_dead_after_loop): Likewise.
8815	* varasm.c (decode_addr_const): Likewise.
8816	* doc/rtl.texi: Document mode requirement for LABEL_REF.
8817
88182005-04-25  Ralf Corsepius  <ralf.corsepius@rtems.org>
8819
8820	* config.gcc (avr-*-*): Remove redundant "case".
8821
88222005-04-25  Kazu Hirata  <kazu@cs.umass.edu>
8823
8824	* tree-vect-analyze.c (vect_mark_relevant): Take
8825	VEC(tree,heap) instead of varray_type as an argument.
8826	(vect_mark_stmts_to_be_vectorized): Change the type of
8827	worklist to VEC(tree,heap).  Adjust uses of worklist.
8828
88292005-04-24  Devang Patel  <dpatel@apple.com>
8830
8831	*  config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
8832
88332005-04-24  Ian Lance Taylor  <ian@airs.com>
8834
8835	* c-semantics.c (build_stmt): Remove test of specific tree codes
8836	for TREE_SIDE_EFFECTS handling.
8837
88382005-04-24  Per Bothner  <per@bothner.com>
8839
8840	* c-opts.c (finish_options):  Make the line-number of the <built-in>
8841	location 0, as assumed elsewhere, rather than 1.
8842
88432005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
8844
8845	* tree-ssa-uncprop.c (equiv_stack): Change the type o
8846	VEC(tree,heap).
8847	(tree_ssa_uncprop, uncprop_finalize_block,
8848	uncprop_initialize_block): Update uses of equiv_stack.
8849
88502005-04-24  Richard Henderson  <rth@redhat.com>
8851
8852	PR rtl-opt/21163
8853	* simplify-rtx.c (simplify_binary_operation) <IOR>: Check
8854	for SCALAR_INT_MODE_P instead of not MODE_CC before returning
8855	constm1_rtx.
8856	<AND, LSHIFTRT, UMIN>: Use CONST0_RTX.
8857	<UDIV, UMOD>: Use CONST0_RTX and CONST1_RTX.
8858	<DIV, MOD>: Likewise.
8859
88602005-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
8861
8862	* collect2.c (main): Unlock the stdio streams.
8863	* gcc.c (main): Likewise.
8864	* gcov-dump.c (main): Likewise.
8865	* gcov.c (main): Likewise.
8866	* gen-protos.c (main): Likewise.
8867	* gensupport.c (init_md_reader_args_cb): Likewise.
8868	* protoize.c (main): Likewise.
8869	* toplev.c (general_init): Likewise.
8870
88712005-04-24  Jakub Jelinek  <jakub@redhat.com>
8872
8873	PR middle-end/20991
8874	* cgraph.h (cgraph_local_info): Add vtable_method field.
8875	* varasm.c (mark_decl_referenced): If cgraph_global_info_ready
8876	and node is vtable_method, finalized and not reachable, don't do
8877	anything.
8878
88792005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
8880
8881	* tree-ssa-copy.c (copy_prop_visit_cond_stmt): Use
8882	COMPARISON_CLASS_P.
8883	* tree-ssa-pre.c (create_value_expr_from): Use
8884	CONSTANT_CLASS_P and REFERENCE_CLASS_P.
8885	* tree-ssa-propagate.c (stmt_makes_single_load,
8886	stmt_makes_single_store): Use REFERENCE_CLASS_P.
8887	* tree-vect-transform.c (vect_is_simple_cond): Use
8888	COMPARISON_CLASS_P.
8889	* tree-vrp.c (extract_range_from_assert,
8890	build_assert_expr_for, fp_predicate, has_assert_expr): Use
8891	COMPARISON_CLASS_P.
8892
8893	* tree-ssa-live.c (build_tree_conflict_graph): Change the type
8894	of tpa_to_clear to VEC(int,heap).  Update uses of
8895	tpa_to_clear.  Free tpa_to_clear at the end.
8896
88972005-04-24  Andrew Pinski  <pinskia@physics.uc.edu>
8898
8899	* tree.h (TREE_THIS_VOLATILE): Document the effect on a
8900	function decl.
8901
89022005-04-24  Nathan Sidwell  <nathan@codesourcery.com>
8903
8904	* config/rs6000/rs6000.c (rs6000_override_options): Use gcc_assert
8905	and gcc_unreachable as appropriate.
8906	(num_insns_constant, output_vec_const_move,
8907	build_mask64_2_operands, rs6000_output_dwarf_dtprel,
8908	rs6000_emit_set_const, rs6000_emit_move,
8909	spe_build_register_parallel, function_arg,
8910	rs6000_move_block_from_reg, altivec_expand_predicate_builtin,
8911	spe_expand_predicate_builtin, spe_expand_evsel_builtin,
8912	rs6000_expand_builtin, spe_init_builtins, altivec_init_builtins,
8913	rs6000_common_init_builtins, expand_block_clear,
8914	expand_block_move, validate_condition_mode, ccr_bit, extract_MB,
8915	extract_ME, rs6000_get_some_local_dynamic_name,
8916	rs6000_output_function_entry, print_operand,
8917	print_operand_address, rs6000_generate_compare, rs6000_emit_sCOND,
8918	output_cbranch, output_e500_flip_gt_bit,
8919	rs6000_emit_vector_compare, rs6000_emit_vector_compare,
8920	rs6000_emit_cmove, rs6000_emit_minmax, rs6000_split_multireg_move,
8921	compute_save_world_info, rs6000_stack_info,
8922	rs6000_emit_load_toc_table, rs6000_frame_related,
8923	spe_synthesize_frame_save, rs6000_emit_epilogue,
8924	rs6000_output_function_epilogue, rs6000_hash_constant, output_toc,
8925	output_function_profiler, rs6000_trampoline_size,
8926	rs6000_initialize_trampoline, find_addr_reg,
8927	rs6000_machopic_legitimize_pic_address,
8928	rs6000_initial_elimination_offset,
8929	rs6000_dbx_register_number): Likewise.
8930	* config/rs6000/rs6000.md (*fix_truncdfsi2_internal,
8931	*movdf_hardfloat32, *movdf_softfloat32, *fix_trunctfsi2_internal,
8932	*movti_power, *movti_string, call, call_value, sibcall,
8933	sibcall_value): Likewise.
8934	* config/rs6000/spe.md (*movdf_e500_double,
8935	*movv2si_internal): Likewise.
8936	* config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Remove 'abort'
8937	from comment.
8938
89392005-04-24  Richard Henderson  <rth@redhat.com>
8940
8941	PR target/21101
8942	* config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Move guts to ...
8943	* config/i386/i386.c (ix86_cannot_change_mode_class): ... here.
8944	Deny modes smaller than 4 bytes.
8945	* config/i386/i386-protos.h: Update.
8946
89472005-04-24  Ralf Corsepius  <ralf.corsepius@rtems.org>
8948
8949	* config.gcc (h8300-*-rtems*): Add h8300-*-rtemscoff*.
8950	Switch h8300-*-rtems* to ELF.
8951
89522005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
8953
8954	* vec.h (VEC_safe_grow): Replace grow with safe_grow.
8955
89562005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
8957
8958	* ipa-inline.c, tree-ssa-operands.h: Fix comment typos.
8959
89602005-04-23  Richard Guenther  <rguenth@gcc.gnu.org>
8961
8962	PR middle-end/21082
8963	* fold-const.c: Fold &a[i]-&a[j] to i-j.
8964
89652005-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
8966
8967	* tree-ssa-loop-niter.c (tree_simplify_using_condition): Expand simple
8968	definitions of ssa names in condition.  Split recusive part to ...
8969	(tree_simplify_using_condition_1): New function.
8970	(expand_simple_operations): New function.
8971
89722005-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
8973
8974	* tree-ssa-loop-ivopts.c (struct cost_pair): Add value field.
8975	(find_interesting_uses_cond): Do not use integer_zerop and
8976	integer_nonzerop to check for integer constants.
8977	(set_use_iv_cost): Record the value field.
8978	(determine_use_iv_cost_generic, determine_use_iv_cost_address,
8979	determine_use_iv_cost_outer): Set the value field of the cost pair.
8980	(may_eliminate_iv): Do not return the comparison code.
8981	(iv_elimination_compare): New function.
8982	(determine_use_iv_cost_condition): Set the value field.  Record
8983	noneliminable invariants correctly.
8984	(rewrite_use_compare, rewrite_use_outer): Use the value field.
8985
89862005-04-23  DJ Delorie  <dj@redhat.com>
8987
8988	* diagnostic.c (warning): Accept parameter to classify warning option.
8989	(warning0): New, for when a pointer to an error() like function is needed.
8990	* errors.c (warning): Likewise.
8991	* errors.h (warning, warning0): Adjust prototypes.
8992	* toplev.h (warning, warning0): Likewise.
8993
8994	* attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
8995	c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
8996	c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
8997	fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
8998	genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
8999	reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
9000	tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
9001	tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.
9002
9003	* config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
9004	config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
9005	config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
9006	config/darwin.c, config/darwin.h, config/h8300/h8300.c,
9007	config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
9008	config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
9009	config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
9010	config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
9011	config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
9012	config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
9013	config/rs6000/aix52.h, config/rs6000/darwin.h,
9014	config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
9015	config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
9016	config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
9017	config/stormy16/stormy16.c, config/v850/v850-c.c,
9018	config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
9019	callers.
9020
90212005-04-23  Richard Henderson  <rth@redhat.com>
9022
9023	PR rtl-opt/21102
9024	* simplify-rtx.c (simplify_binary_operation): Fix mode check before
9025	performing some integral scalar simplifications.
9026
90272005-04-23  Richard Henderson  <rth@redhat.com>
9028
9029	PR target/21099
9030	* config/i386/i386.c (ix86_split_to_parts): Use proper mode when
9031	simplifying CONST_VECTOR.
9032
90332005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
9034
9035	* tree-ssa-live.c (live_worklist): Take a stack allocated on
9036	heap as an argument.  Update uses of stack.
9037	(calculate_live_on_entry): Allocate stack on heap.
9038
9039	* tree-ssa-live.c (build_tree_conflict_graph): Allocate
9040	partition_link and tpa_nodes on heap.
9041
9042	* tree-ssa-dce.c (worklist): Change to VEC(tree,heap).
9043	(mark_stmt_necessary, propagate_necessity,
9044	mark_really_necessary_kill_operand_phis): Update uses of
9045	worklist.
9046	(tree_dce_init): Allocate worklist using VEC_alloc.
9047	(tree_dce_done): Free worklist using VEC_free.
9048
90492005-04-23  Mike Stump  <mrs@apple.com>
9050
9051	* config/darwin.c (machopic_indirection_name): Don't use
9052	quotes needlessly.
9053	(darwin_emit_unwind_label): Use user_label_prefix instead of
9054	"_".
9055
90562005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
9057
9058	* final.c, ipa-inline.c, varasm.c: Fix comment typos.
9059
90602005-04-23  Hans-Peter Nilsson  <hp@axis.com>
9061
9062	* config.gcc <cris-*>: Specify .opt files.
9063	* config/cris/cris.opt, config/cris/elf.opt, config/cris/aout.opt,
9064	config/cris/linux.opt: New files.
9065	* config/cris/aout.h (CRIS_SUBTARGET_SWITCHES)
9066	(CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
9067	(TARGET_ELF): Override to 0.
9068	(CRIS_SUBTARGET_HANDLE_OPTION): Override to handle -melinux and
9069	-melinux-stacksize=N.
9070	* config/cris/cris.c: (cris_handle_option): New function.
9071	(TARGET_DEFAULT_TARGET_FLAGS): Override.
9072	(TARGET_HANDLE_OPTION): Override to cris_handle_option.
9073	(cris_override_options): Use MASK_*, not TARGET_MASK_*.
9074	* config/cris/cris.h (TARGET_MASK_SVINTO, TARGET_SVINTO,
9075	(TARGET_MASK_CCINIT, TARGET_CCINIT, TARGET_MASK_PDEBUG)
9076	(TARGET_PDEBUG, TARGET_MASK_SIDE_EFFECT_PREFIXES)
9077	(TARGET_SIDE_EFFECT_PREFIXES, TARGET_MASK_EXPAND_MUL)
9078	(TARGET_EXPAND_MUL, TARGET_MASK_STACK_ALIGN, TARGET_STACK_ALIGN)
9079	(TARGET_MASK_CONST_ALIGN, TARGET_CONST_ALIGN)
9080	(TARGET_MASK_DATA_ALIGN, TARGET_DATA_ALIGN)
9081	(TARGET_MASK_PROLOGUE_EPILOGUE, TARGET_PROLOGUE_EPILOGUE)
9082	(TARGET_MASK_ETRAX4_ADD, TARGET_ETRAX4_ADD)
9083	(TARGET_MASK_ALIGN_BY_32, TARGET_ALIGN_BY_32, TARGET_MASK_ELF)
9084	(TARGET_ELF, TARGET_MASK_LINUX, TARGET_LINUX)
9085	(TARGET_MASK_AVOID_GOTPLT, TARGET_AVOID_GOTPLT)
9086	(TARGET_MASK_MUL_BUG, TARGET_MUL_BUG, TARGET_SWITCHES)
9087	(CRIS_SUBTARGET_SWITCHES, TARGET_OPTIONS)
9088	(CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
9089	(TARGET_LINUX): Define 0.
9090	(TARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
9091	(CRIS_SUBTARGET_DEFAULT): Define to 0, not TARGET_MASK_ELF.
9092	(CRIS_SUBTARGET_DEFAULT): New empty default macro.
9093	* config/cris/linux.h (CRIS_SUBTARGET_SWITCHES): Don't define.
9094	(TARGET_LINUX): Override to 1.
9095	(CRIS_SUBTARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
9096
90972005-04-23  Nathan Sidwell  <nathan@codesourcery.com>
9098
9099	* haifa-sched.c (schedule_block): Fix thinko in previous
9100	assertification patch.
9101
91022005-04-23  Richard Sandiford  <rsandifo@redhat.com>
9103
9104	* config.gcc (hppa[12]*-*-hpux10*): Add pa/pa-hpux.opt to
9105	$extra_options.  Also add pa/pa-hpux1010.opt for hpux10.[1-9]*.
9106	(hppa*64*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file.  Add
9107	pa/pa-hpux.opt, pa/pa-hpux1010.opt and pa/pa64-hpux.opt to
9108	$extra_options.  Also add pa/pa-hpux1111.opt for hpux11.[1-9]*.
9109	(hppa[12]*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file.  Add
9110	pa/pa-hpux.opt to $extra_options.  Also add pa/pa-hpux1111.opt
9111	for hpux11.[1-9]*.
9112	* config/pa/pa.h (architecture_type, rtx_def, pa_arch_string, pa_arch)
9113	(pa_fixed_range_string, pa_cpu_string, pa_unix_string, target_flags)
9114	(MASK_PA_11, MASK_DISABLE_FPREGS, TARGET_DISABLE_FPREGS)
9115	(MASK_NO_SPACE_REGS, TARGET_NO_SPACE_REGS, MASK_JUMP_IN_DELAY)
9116	(TARGET_JUMP_IN_DELAY, MASK_DISABLE_INDEXING, TARGET_DISABLE_INDEXING)
9117	(MASK_PORTABLE_RUNTIME, TARGET_PORTABLE_RUNTIME, MASK_GAS, TARGET_GAS)
9118	(MASK_SOFT_FLOAT, TARGET_SOFT_FLOAT, MASK_LONG_LOAD_STORE)
9119	(TARGET_LONG_LOAD_STORE, MASK_FAST_INDIRECT_CALLS)
9120	(TARGET_FAST_INDIRECT_CALLS, MASK_BIG_SWITCH, TARGET_BIG_SWITCH)
9121	(MASK_PA_20, MASK_SIO, TARGET_SIO, MASK_GNU_LD, TARGET_GNU_LD)
9122	(MASK_LONG_CALLS, TARGET_LONG_CALLS, TARGET_PA_11, TARGET_PA_20)
9123	(TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS)
9124	(SUBTARGET_OPTIONS): Delete.
9125	(TARGET_PA_10): Redefine in terms of TARGET_PA_11 and TARGET_PA_20.
9126	(TARGET_SCHED_DEFAULT): Define to a PROCESSOR_* enum (PROCESSOR_8000)
9127	instead of a string.
9128	* config/pa/pa.c (pa_arch, pa_arch_string, pa_fixed_range_string)
9129	(pa_cpu_string, pa_unix_string): Delete.
9130	(pa_cpu): Initialize to TARGET_SCHED_DEFAULT.
9131	(flag_pa_unix): Initialize based on TARGET_HPUX_11_11 and
9132	TARGET_HPUX_10_10.
9133	(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
9134	(pa_handle_option): New function.
9135	(override_options): Remove handling of -march=, -mfixed-range=,
9136	-mschedule= and -munix=.
9137	* config/pa/pa-hpux.h (SUBTARGET_SWITCHES): Delete.
9138	* config/pa/pa-hpux1010.h (SUBTARGET_OPTIONS): Delete.
9139	* config/pa/pa-hpux10.h (SUBTARGET_OPTIONS): Delete.
9140	* config/pa/pa-hpux1111.h (SUBTARGET_OPTIONS): Delete.
9141	* config/pa/pa-hpux11.h (SUBTARGET_OPTIONS): Delete.
9142	* config/pa/pa64-hpux.h (SUBTARGET_SWITCHES): Delete.
9143	* config/pa/pa64-start.h (TARGET_PA_11, TARGET_PA_20): #undef before
9144	redefining.
9145	* config/pa/pa.opt: New file.
9146	* config/pa/pa-hpux.opt: New file.
9147	* config/pa/pa-hpux1010.opt: New file.
9148	* config/pa/pa-hpux1111.opt: New file.
9149	* config/pa/pa64-hpux.opt: New file.
9150
91512005-04-22  David S. Miller  <davem@davemloft.net>
9152
9153	* rtl.h (CONST_DOUBLE): Fix comment, a CONST_DOUBLE holds an
9154	integer when it's mode is VOIDmode not DImode.
9155
91562005-04-22  Geoffrey Keating  <geoffk@apple.com>
9157
9158	* config/rs6000/rs6000.md (sync_add<mode>_internal,
9159	sync_addshort_internal, sync_sub<mode>_internal, sync_andsi_internal,
9160	sync_anddi_internal, sync_boolsi_internal, sync_booldi_internal,
9161	sync_boolc<mode>_internal, sync_boolc<mode>_internal2,
9162	sync_boolcc<mode>_internal, sync_lock_test_and_set<mode>): Use
9163	"bne- $-xxx" rather than local labels.
9164	(sync_lock_release<mode>): Add second operand.
9165	(lwsync): Use .long rather than a more meaningful opcode.
9166	* doc/md.texi (Standard Names): Add description of second
9167	parameter to sync_lock_test_and_set.
9168
91692005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
9170
9171	PR tree-optimization/21088
9172	* fold-const.c (fold_unary, fold_binary, fold_ternary):
9173	Export.
9174	* tree-vrp.c (compare_values): Use fold_binary to compare
9175	pointers.  Use boolean_type_node as the type of a comparison
9176	expression being folded.
9177	* tree.h: Add prototypes for fold_unary, fold_binary,
9178	fold_ternary.
9179
9180	* tree-ssa-dom.c: Fix formatting.
9181
91822005-04-22  Diego Novillo  <dnovillo@redhat.com>
9183
9184	* Makefile.in (tree-into-ssa.o): Add dependency on PARAMS_H.
9185	* lambda-code.c (perfect_nestify): Mark virtual operands in
9186	the moved statement for renaming.
9187	* params.def (PARAM_MIN_VIRTUAL_MAPPINGS): Define.
9188	(PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
9189	* params.h (MIN_VIRTUAL_MAPPINGS): Define.
9190	(VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
9191	* tree-flow.h (struct var_ann_d): Update comments.
9192	(rewrite_to_new_ssa_names_bb, rewrite_to_new_ssa_names,
9193	allocate_ssa_names, find_phi_node_for, dump_tree_ssa,
9194	debug_tree_ssa, debug_def_blocks, dump_tree_ssa_stats,
9195	debug_tree_ssa_stats, rewrite_ssa_into_ssa,
9196	dump_repl_tbl, debug_repl_tbl, dump_names_replaced_by,
9197	debug_names_replaced_by): Remove declarations.
9198	(delete_update_ssa, get_current_def, set_current_def): Declare.
9199	(rewrite_into_loop_closed_ssa): Add new argument.  Update
9200	all callers.
9201	* tree-into-ssa.c: Include params.h.
9202	(old_virtual_ssa_names): Remove.  Update all users.
9203	(need_to_replace_names_p): Remove.  Update all users.
9204	(struct update_ssa_stats_d): Declare.
9205	(update_ssa_stats): New local.
9206	(dump_tree_ssa, debug_tree_ssa, debug_def_blocks,
9207	dump_tree_ssa_stats, debug_tree_ssa_stats,
9208	dump_update_ssa, debug_update_ssa,
9209	dump_names_replaced_by, debug_names_replaced_by): Declare.
9210	(get_current_def, set current_def): Make extern.
9211	(is_old_name, is_new_name): Protect against references
9212	past the end of the sets.
9213	(add_new_name_mapping): Assert that OLD and NEW are
9214	different SSA names for the same symbol.
9215	When adding a virtual mapping, update stats for virtual
9216	mapping heuristic.
9217	(insert_phi_nodes_for): If UPDATE_P is true, create the
9218	LHS of the new PHI by duplicating SSA name VAR.
9219	(insert_phi_nodes_1): Remove.  Update all users.
9220	(insert_phi_nodes): Remove second argument.  Update all
9221	users.
9222	(maybe_replace_use, maybe_replace_def): New.
9223	(rewrite_update_stmt): Call them.
9224	(mark_def_interesting): Remove calls to is_gimple_reg.
9225	(prepare_phi_args_for_update): Remove.  Update all users.
9226	(prepare_block_for_update): Only process virtual operands
9227	and GIMPLE registers in normal form.
9228	(prepare_use_sites_for): New.
9229	(prepare_names_to_update): Rename from prepare_def_sites.
9230	Call prepare_use_sites_for.
9231	(dump_update_ssa): Rename from dump_repl_tbl.
9232	Update all users.
9233	Show statistics for virtual mapping heuristic.
9234	(debug_update_ssa): Rename from debug_debug_repl_tbl.
9235	(init_update_ssa): Initialize UPDATE_SSA_STATS.
9236	(delete_update_ssa): Make extern.
9237	(mark_set_for_renaming): If the set is empty, do nothing.
9238	(release_ssa_name_after_update_ssa): Update comment.
9239	(insert_updated_phi_nodes_for): Do not remove existing
9240	PHI nodes for symbols.
9241	(switch_virtuals_to_full_rewrite_p): New.
9242	(switch_virtuals_to_full_rewrite): New.
9243	(update_ssa): Call them.
9244	Clear REWRITE_THIS_STMT and REGISTER_DEFS_IN_THIS_STMT
9245	for every statement before updating.
9246	If all the names in NEW_SSA_NAMES have been marked for
9247	removal, do nothing.
9248	Only start at the top of the CFG if there are symbols in
9249	SYMS_TO_RENAME.
9250	(ssa_rewrite_finalize_block): Remove.
9251	(ssa_register_new_def): Remove.
9252	(ssa_rewrite_stmt): Remove.
9253	(ssa_rewrite_phi_arguments): Remove.
9254	(ssa_rewrite_initialize_block): Remove.
9255	(ssa_mark_def_sites): Remove.
9256	(ssa_mark_def_sites_initialize_block): Remove.
9257	(ssa_mark_phi_uses): Remove.
9258	(rewrite_ssa_into_ssa): Remove.
9259	* tree-phinodes.c (find_phi_node_for): Remove.
9260	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
9261	Call update_ssa.
9262	* tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops):
9263	Remove calls to verify_dominators and
9264	verify_loop_structure.
9265	(tree_unswitch_single_loop): Call update_ssa.
9266	* tree-ssa.c (verify_ssa): Assert that need_ssa_update_p
9267	returns false.
9268	Call verify_stmts.
9269	(delete_tree_ssa): Assert that need_ssa_update_p returns
9270	false.
9271	* tree-vect-transform.c (vect_transform_loop): Call update_ssa.
9272	* tree-vectorizer.c (allocate_new_names, rename_def_op,
9273	free_new_names): Remove.  Update all users.
9274	(rename_use_op): Call get_current_def.
9275	(rename_variables_in_bb): Do not handle any real or
9276	virtual definition.
9277	(slpeel_update_phis_for_duplicate_loop): Call
9278	get_current_def and set_current_def instead of using
9279	SSA_NAME_AUX.
9280	(slpeel_update_phi_nodes_for_guard2): Reformat comments.
9281	(slpeel_can_duplicate_loop_p): Call need_ssa_update_p,
9282	ssa_names_to_replace and delete_update_ssa.
9283	* doc/invoke.texi: Document --param min-virtual-mappings
9284	and --param virtual-mappings-ratio.
9285
92862005-04-22  Diego Novillo  <dnovillo@redhat.com>
9287
9288	* tree-cfg.c (tree_duplicate_bb): Call create_new_def_for
9289	for newly created PHI nodes.
9290	Call create_new_def_for for every new V_MAY_DEF and
9291	V_MUST_DEF on the copied statement.
9292	(struct ssa_name_map_entry): Remove.
9293	(ssa_name_map_entry_hash): Remove.
9294	(ssa_name_map_entry_eq): Remove.
9295	(allocate_ssa_names): Remove.
9296	(rewrite_to_new_ssa_names_def): Remove.
9297	(rewrite_to_new_ssa_names_use): Remove.
9298	(rewrite_to_new_ssa_names_bb): Remove.
9299	(rewrite_to_new_ssa_names): Remove.
9300	(tree_duplicate_sese_region): Remove variables ver,
9301	definitions, phi, ssa_name_map and bi.
9302	Call need_ssa_update_p instead of any_marked_for_rewrite_p.
9303	Call update_ssa.
9304	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
9305	update_ssa instead of rewrite_ssa_into_ssa.
9306	* tree-ssa-loop-manip.c (add_exit_phis_edge): Call
9307	create_new_def_for.
9308	(find_uses_to_rename_use): Add argument 'need_phis'.
9309	(find_uses_to_rename_stmt): Do not scan virtual operands.
9310	(find_uses_to_rename): Only scan PHI nodes for
9311	non-virtual names.
9312	(rewrite_into_loop_closed_ssa): Call update_ssa.
9313	(check_loop_closed_ssa_use): Ignore virtual operands.
9314	(check_loop_closed_ssa_stmt): Likewise.
9315	(verify_loop_closed_ssa): Do nothing if CURRENT_LOOPS is
9316	NULL.
9317	(rename_variables, set_phi_def_stmts): Remove.
9318	(tree_duplicate_loop_to_header_edge): Reformat comment.
9319	Remove variables BB, I and DEFINITIONS.
9320	Call need_ssa_update_p.
9321	Call update_ssa.
9322	(lv_adjust_loop_header_phi): Reformat comment.
9323	* tree-ssanames.c (ssa_names_to_rewrite): Remove.
9324	(marked_for_rewrite_p, any_marked_for_rewrite_p,
9325	mark_for_rewrite, unmark_all_for_rewrite,
9326	marked_ssa_names): Remove.  Update all users.
9327	(release_ssa_name): If VAR has been registered for SSA
9328	updating, do nothing.
9329	* tree-vrp.c (new_ssa_names, old_ssa_names): Remove.
9330	(build_assert_expr_for): Call register_new_name_mapping.
9331	(insert_range_assertions): Update call to update_ssa.
9332	* tree.h (mark_for_rewrite, unmark_all_for_rewrite,
9333	marked_for_rewrite_p, any_marked_for_rewrite_p,
9334	marked_ssa_names): Remove.
9335
93362005-04-22  Jeff Law  <law@redhat.com>
9337
9338	* tree-ssa-dom.c (block_defs_stack): Remove, no longer needed.
9339	(restore_currdefs_to_original_value): Likewise.
9340	(register_definitions_for_stmt): Likewise.
9341	(tree_ssa_dominator_optimize): No longer initialize CURRENT_DEF
9342	for each variable.  Do not allocate/free block_defs_stack either.
9343	Do not iterate if we just thread jumps.  Only iterate if the
9344	tree_cleanup_cfg does useful work (temporary).
9345	(dom_opt_initialize_block): No longer push a marker on
9346	BLOCK_DEFS_STACK.
9347	(dom_opt_finalize_block): Removal call to restore currdefs.
9348	Relax restrictions for recording edge equivalences.
9349	(record_equivalences_from_phis): No longer need to track
9350	CURRENT_DEF.
9351	(optimize_stmt): Similarly.
9352	(thread_across_edge): Simplify by removing the requirement that
9353	statements in the block we are threading through must be nops.
9354	(initialize_hash_element): Handle GOTO_EXPR.
9355
93562005-04-22  David S. Miller  <davem@davemloft.net>
9357
9358	* sched-vis.c (print_value): Use CONST_DOUBLE_LOW and
9359	CONST_DOUBLE_HIGH.
9360	* config/sparc/sparc.c (sparc_rtx_costs): Likewise, and
9361	fix check on CONST_DOUBLE mode.  It should be VOIDmode
9362	when it is representing an integer.
9363
93642005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
9365
9366	* builtins.c (gimplify_va_arg_expr): Reword comments to avoid
9367	'abort'. Use gcc_assert and gcc_unreachable as appropriate.
9368	* c-format.c (get_constant, decode_format_attr, get_flag_spec,
9369	find_char_info_specifier_index,
9370	find_length_info_modifier_index): Likewise.
9371	* c-typeck.c (composite_type, pop_init_level): Likewise.
9372	* combine.c (cant_combine_insn_p, try_combine): Likewise.
9373	* cse.c (cse_insn): Likewise
9374	* dominance.c (calc_dfs_tree): Likewise
9375	dwarf2out.c (loc_descriptor_from_tree_1,
9376	add_abstract_origin_attribute, force_decl_die,
9377	force_type_die): Likewise
9378	emit-rtl.c (operand_subword_force): Likewise
9379	explow.c (hard_function_value): Likewise
9380	expmed.c (store_bit_field, expand_divmod,
9381	emit_store_flag_force): Likewise
9382	expr.c (emit_move_multi_word, store_expr,
9383	expand_expr_real_1): Likewise
9384	final.c (this_is_asm_operands, shorten_branches, final_scan_insn,
9385	output_operand): Likewise
9386	flow.c (recompute_reg_usage): Likewise
9387	* function.c (assign_stack_temp_for_type, assign_temp,
9388	handle_epilogue_set): Likewise
9389	* genextract.c (main): Likewise
9390	* gimplify.c (mostly_copy_tree_r, gimplify_return_expr,
9391	gimplify_modify_expr_rhs, gimplify_expr): Likewise
9392	* haifa-sched.c (ready_lastpos, ready_remove_first, ready_element,
9393	ready_remove, rm_line_notes, rm_other_notes,
9394	schedule_block): Likewise
9395	mips-tfile.c (copy_object, out_of_bounds): Likewise
9396
93972005-04-22 David Edelsohn  <edelsohn@gnu.org>
9398
9399	PR target/20813
9400	* config/rs6000/default64.h (TARGET_DEFAULT): Add MASK_PPC_GFXOPT.
9401	* config/rs6000/rs6000.c (processor_target_table): Rename rs64a to
9402	rs64.  Add MASK_PPC_GFXOPT to powerpc64 and rs64.
9403	(rs6000_init_libfuncs): Set TFmode optabs to xlq names if
9404	TARGET_XL_COMPAT.
9405	* doc/invoke.texi (PowerPC options): Change rs64a to rs64.
9406
94072005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
9408
9409	* lambda-code.c: Define VEC(int,heap), VEC(lambda_loop,heap).
9410	(gcc_tree_to_linear_expression): Convert to heap allocated
9411	vectors.
9412	(gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
9413	lbv_to_gcc_expression, lle_to_gcc_expression,
9414	lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
9415	perfect_nestify): Likewise.
9416	lambda.h (gcc_loopnest_to_lambda_loopnest,
9417	lambda_loopnest_to_gcc_loopnest): Likewise.
9418	tree-loop-linear.c (linear_transform_loops): Likewise.
9419
94202005-04-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
9421
9422	* config/sparc/predicates.md (arith_double_operand): Use
9423	trunc_int_for_mode if HOST_BITS_PER_WIDE_INT >=64.
9424	* config/sparc/sparc.md (movqi, movhi, movsi, movqi): Use gen_int_mode.
9425	(DImode, DFmode constant splitters): Likewise.  Remove code for
9426	TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT < 64.
9427	(logical constant splitters): Use const_int_operand predicate.
9428	(lshrsi3_extend): Remove code for TARGET_ARCH64 &&
9429	HOST_BITS_PER_WIDE_INT < 64.
9430
94312005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
9432
9433	* config/pa/pa.c (legitimize_pic_address): Use gcc_assert and
9434	gcc_unreachable as appropriate.
9435	(force_mode, emit_move_sequence, singlemove_string,
9436	output_move_double, output_fp_move_double, find_addr_reg,
9437	output_block_move, output_block_clear, output_and,
9438	output_64bit_and, output_ior, output_64bit_ior, store_reg_modify,
9439	pa_adjust_cost, pa_issue_rate, print_operand,
9440	output_global_address, output_arg_descriptor, output_cbranch,
9441	output_lbranch, output_bb, output_bvb, output_dbra, output_movb,
9442	output_call): Likewise.
9443	* config/pa/pa.md (call, call_value, sibcall, sibcall_value,
9444	prefetch, prefetch_cc, prefetch_nocc): Likewise.
9445
94462005-04-22  Zdenek Dvorak  <dvorakz@suse.cz>
9447
9448	* Makefile.in (LIBGCOV): Add _gcov_interval_profiler,
9449	_gcov_pow2_profiler and _gcov_one_value_profiler.
9450	(tree-profile.o): Add GGC_H and gt-tree-profile.h dependency.
9451	(GTFILES): Add $(srcdir)/tree-profile.c.
9452	* gcov-io.h (__gcov_interval_profiler, __gcov_pow2_profiler,
9453	__gcov_one_value_profiler): Declare.
9454	* gimplify.c (force_gimple_operand): Check whether the statements
9455	should be produced in ssa form.
9456	(force_gimple_operand_bsi): New function.
9457	* libgcov.c (__gcov_interval_profiler, __gcov_pow2_profiler,
9458	__gcov_one_value_profiler): New functions.
9459	* rtl-profile.c (rtl_gen_pow2_profiler): Only measure whether
9460	the profiled value is a power of two or not.
9461	* tree-cfg.c (tree_block_ends_with_condjump_p): Handle empty blocks.
9462	* tree-flow.h (in_ssa_p): Declare.
9463	(force_gimple_operand_bsi): Declare.
9464	* tree-into-ssa.c (in_ssa_p): New variable.
9465	(rewrite_into_ssa): Set in_ssa_p.
9466	* tree-outof-ssa.c (rewrite_out_of_ssa): Set in_ssa_p.
9467	* tree-profile.c: Include ggc.h and gt-tree-profile.h.
9468	(gcov_type_node, tree_interval_profiler_fn, tree_pow2_profiler_fn,
9469	tree_one_value_profiler_fn): New variables.
9470	(tree_init_edge_profiler): Initialize the profiler function decls.
9471	(tree_gen_edge_profiler): Use global gcov_type_node.
9472	(prepare_instrumented_value): New function.
9473	(tree_gen_interval_profiler, tree_gen_interval_profiler,
9474	tree_gen_one_value_profiler): Call the library functions instead of
9475	creating instrumentation code.
9476	* tree.c (build_fn_decl): New function.
9477	* tree.h (build_fn_decl): Declare.
9478	* value-prof.c (rtl_divmod_values_to_profile,
9479	rtl_find_values_to_profile, rtl_mod_pow2_value_transform,
9480	tree_mod_pow2_value_transform, tree_find_values_to_profile):
9481	Do not handle may_be_other and precise values of exponents at pow2
9482	profiler.
9483	(tree_mod_subtract_transform): Reflect that value field of
9484	histogram has changed meaning.
9485	(tree_divmod_values_to_profile): Record the values correctly.
9486	(tree_values_to_profile): Update comment.
9487	* value-prof.h (struct histogram_value_t): Remove pow2 data.
9488
94892005-04-22  Joseph S. Myers  <joseph@codesourcery.com>
9490
9491	* varasm.c (do_assemble_alias): Return early if TREE_ASM_WRITTEN
9492	(decl).
9493
94942005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
9495
9496	* config/i386/i386.md (length_immediate): Use gcc_assert or
9497	gcc_unreachable, as appropriate.
9498	(*movsi_1, *movqi_1, reload_outqi, *movdi_1_rex64, *pushsf,
9499	*pushsf_rex64, *truncxfsf2_mixed, *truncxfsf2_i387,
9500	*truncxfdf2_mixed, *truncxfdf2_i387, *adddi_1_rex64,
9501	*adddi_2_rex64, *adddi_3_rex64, *adddi_4_rex64, *adddi_5_rex64,
9502	*addsi_1, addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
9503	*addsi_3_zext, *addsi_4, *addsi_5, *addhi_1_lea, *addhi_1,
9504	*addhi_2, *addhi_3, *addhi_4, *addhi_5, *addqi_1_lea, *addqi_1,
9505	*addqi_1_slp, *addqi_2, *addqi_3, *addqi_4, *addqi_5, addqi_ext_1,
9506	*addqi_ext_1_rex64, *anddi_1_rex64, *andsi_1, *andhi_1,
9507	*ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashlsi3_1, *ashlsi3_1_zext,
9508	*ashlsi3_cmp, *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1,
9509	*ashlhi3_cmp, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
9510	pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64,
9511	pro_epilogue_adjust_stack_rex64_2, prefetch, *prefetch_sse,
9512	*prefetch_sse_rex): Likewise.
9513	* config/i386/predicates.md (x86_64_immediate_operand,
9514	x86_64_zext_immediate_operand, symbolic_operand,
9515	no_seg_address_operand, aligned_operand,
9516	memory_displacement_operand): Likewise.
9517	* config/i386/sse.md (*mov<mode>_internal,
9518	*movv2df_internal): Likewise.
9519
95202005-04-22  Jan Hubicka  <jh@suse.cz>
9521
9522	* Makefile.in (ipa.o, ipa-inline.o): New files.
9523	* cgraph.h (cgraph_remove_unreachable_nodes, cgraph_postorder,
9524	cgraph_decide_inlining_incrementally, cgraph_clone_inlined_nodes,
9525	cgraph_mark_inline_edge, cgraph_default_inline_p): Declare.
9526	* cgraphunit.c (cgraph_default_inline_p,
9527	cgraph_decide_inlining_incrementally,  ncalls_inlined,
9528	nfunctions_inlined, initial_insns, overall_insns,
9529	cgraph_estimate_size_after_inlining, cgraph_estimate_growth,
9530	cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
9531	cgraph_mark_inline, cgraph_check_inline_limits,
9532	cgraph_default_inline_p, cgraph_recursive_inlining_p,
9533	update_callee_keys, lookup_recursive_calls,
9534	cgraph_decide_recursive_inlining, cgraph_set_inline_failed,
9535	cgraph_decide_inlining_of_small_functions, cgraph_decide_inlining,
9536	cgraph_decide_inlining_incrementally, cgraph_gate_inlining,
9537	pass_ipa_inline): Move to ipa-inline.c
9538	(cgraph_postorder, cgraph_remove_unreachable_nodes): Move to ipa.c
9539	* ipa.c: New file.
9540	* ipa-inline.c: New file.
9541
95422005-04-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
9543
9544	* doc/invoke.texi (SPARC options): Document that -mapp-regs
9545	is turned off by default on Solaris.
9546
95472005-04-21  Roger Sayle  <roger@eyesopen.com>
9548
9549	* c-common.h (objc_build_method_signature): Update prototype.
9550	* stub-objc.c (objc_build_method_signature): Update the stub
9551	implementation to accept and ignore additional parameter.
9552	* c-parser.c (c_parser_objc_method_decl): Reorgnize to pass
9553	the value of ellipsis to objc_build_method_signature instead
9554	of setting TREE_OVERFLOW on the parms TREE_LIST node.
9555
95562005-04-21  Geoffrey Keating  <geoffk@apple.com>
9557
9558	* config/rs6000/rs6000-protos.h (rs6000_emit_sync): New.
9559	* config/rs6000/rs6000.c (rs6000_emit_vector_compare): Use
9560	gen_rtx_* not gen_rtx_fmt_*.
9561	(rs6000_emit_vector_select): Likewise.
9562	(rs6000_emit_sync): New.
9563	* config/rs6000/rs6000.md (GPR, INT, INT1): New mode macros.
9564	(larx, stcx, cmp): New mode substitutions.
9565	(UNSPEC_SYNC, UNSPEC_SYNC_OP, UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC,
9566	UNSPEC_ISYNC): New constants.
9567	(rlwinm): Give name.
9568	(memory_barrier, isync, lwsync): New insns.
9569	(sync_compare_and_swap<mode>, sync_lock_test_and_set<mode>): New insn.
9570	(sync_lock_release<mode>): New expander.
9571	(sync_add<mode>, sync_sub<mode>, sync_ior<mode>, sync_and<mode>,
9572	sync_xor<mode>, sync_nand<mode>, sync_old_add<mode>,
9573	sync_old_sub<mode>, sync_old_ior<mode>, sync_old_and<mode>,
9574	sync_old_xor<mode>, sync_old_nand<mode>, sync_new_add<mode>,
9575	sync_new_sub<mode>, sync_new_ior<mode>, sync_new_and<mode>,
9576	sync_new_xor<mode>, sync_new_nand<mode>): New expanders.
9577	(sync_add<mode>_internal, sync_addshort_internal,
9578	sync_sub<mode>_internal, sync_andsi_internal, sync_anddi_internal,
9579	sync_boolsi_internal, sync_booldi_internal, sync_boolc<mode>_internal,
9580	sync_boolc<mode>_internal2, sync_boolcc<mode>_internal): New insns.
9581
9582	* doc/md.texi (Standard Names): sync_compare_and_swap's operand 0
9583	is the memory before, not after, the operation.  Clarify
9584	barrier requirements.
9585
95862005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
9587
9588	* cfghooks.h (struct cfg_hooks): Reword comments to avoid 'abort'.
9589	* lambda.h (lambda_vector_min_nz): Likewise.
9590	* langhooks.h (struct lang_hooks_for_types,
9591	struct lang_hooks): Likewise.
9592	* output.h (assemble_integer, this_is_asm_operands): Likewise.
9593	* tree.h: Likewise.
9594	* vec.h: Likewise.
9595	* tree-flow-inline.h (relink_imm_use): Use gcc_assert.
9596
9597	* optabs.c (prepare_cmp_insn, emit_cmp_and_jump_insns): Reword
9598	comments to avoid 'abort'.  Use gcc_assert as necessary.
9599	* opts.c (common_handle_option): Likewise.
9600	* pretty-print.c (pp_base_format_text): Likewise.
9601	* print-rtl.c (print_rtx): Likewise.
9602	* read-rtl.c (read_rtx_filename, read_rtx_1): Likewise.
9603	* regmove.c (try_auto_increment): Likewise.
9604	* reload.c (find_valid_class, find_reloads_toplev,
9605	find_equiv_reg): Likewise.
9606	* reload1.c (reload, forget_old_reloads_1, function_invariant_p,
9607	merge_assigned_reloads): Likewise.
9608	* tree-inline.c (inline_forbidden_p_1,
9609	estimate_num_insns_1): Likewise.
9610	* tree-optimize.c (execute_todo): Likewise.
9611	* tree-outof-ssa.c (eliminate_phi): Likewise.
9612	* tree-ssa-alias.c (add_pointed_to_expr): Likewise.
9613	* tree-ssa-ccp.c (maybe_fold_stmt_indirect): Likewise.
9614	* tree-ssa-operands.c (parse_ssa_operands,
9615	get_indirect_ref_operands, create_ssa_artficial_load_stmt): Likewise.
9616	* tree-ssa-pre.c (find_or_generate_expression): Likewise.
9617	* tree-ssanames.c (release_ssa_name): Likewise.
9618	* tree.c (int_bit_position, int_byte_position, tree_low_cst,
9619	walk_tree): Likewise.
9620
9621	* tree-ssa-operands.c (verify_abort): Fold into ..
9622	(verify_imm_links): ... here.
9623
96242005-04-21  Richard Henderson  <rth@redhat.com>
9625
9626	* config/alpha/sync.md (sync_new_nand<I48MODE>): Fix constraints
9627	on non-memory operand for previous inversion.
9628
96292005-04-21  Devang Patel  <dpatel@apple.com>
9630
9631	PR optimization/20994
9632	* tree-if-conv.c (find_phi_replacement_condition): Avoid generating
9633	x = !(a == b) : p , q;.
9634	(pass_if_conversion): Verify stmts and flow.
9635
96362005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
9637
9638	* optabs.c (gen_conditional_trap): Restore #define.
9639
9640	* alias.c (true_dependence): Remove 'abort' from comments. Use
9641	gcc_assert and gcc_unreachable as appropriate.
9642	(canon_true_dependence): Likewise.
9643	* bb-reorder.c (connect_traces): Likewise.
9644	* c-common.c (c_add_case_label): Likewise.
9645	* c-decl.c (finish_function): Likewise.
9646	* caller-save.c (insert_restore, insert_save): Likewise.
9647	* cfg.c (update_bb_profile_for_threading): Likewise.
9648	* cfganal.c (flow_active_insn_p): Likewise.
9649	* cfgexpand.c (add_reg_br_prob_note): Likewise.
9650	* cfgrtl.c (rtl_redirect_edge_and_branch_force, rtl_split_edge,
9651	cfg_layout_merge_blocks): Likewise.
9652	* ifcvt.c (cond_exec_process_insns, merge_if_block,
9653	find_if_block): Likewise.
9654	* integrate.c (allocate_initial_values): Likewise.
9655	* jump.c (reverse_condition, reverse_condition_maybe_unordered,
9656	swap_condition, unsigned_condition, signed_condition,
9657	mark_jump_label, invert_jump_1, rtx_renumbered_equal_p,
9658	reg_or_subregno): Likewise.
9659	* lambda-code.c (lambda_compute_auxillary_space,
9660	lambda_transform_legal_p): Likewise.
9661	* lambda-mat.c (lambda_matrix_inverse_hard): Likewise.
9662	* langhooks.c (lhd_set_decl_assembler_name, lhd_type_promotes_to,
9663	lhd_incomplete_type_error, lhd_expand_expr,
9664	lhd_types_compatible_p, lhd_tree_size): Likewise.
9665	* lcm.c (create_pre_exit, optimize_mode_switching): Likewise.
9666	* local-alloc.c (update_equiv_regs): Likewise.
9667	* loop-unroll.c (peel_loop_completely
9668	unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
9669	peel_loop_simple, unroll_loop_stupid,
9670	analyze_iv_to_split_insn): Likewise.
9671	* loop.c (gen_prefetch, find_and_verify_loops,
9672	basic_induction_var): Likewise.
9673	* modulo-sched.c (normalize_sched_times, check_nodes_order): Likewise.
9674	* value-prof.c (tree_find_values_to_profile): Likewise.
9675	* varasm.c (named_section, default_assemble_integer,
9676	decode_addr_const): Likewise.
9677
96782005-04-21 Alan Modra  <amodra@bigpond.net.au>
9679	   Fariborz Jahanian <fjahanian@apple.com>
9680
9681	* config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Fix size of
9682	portion of argument passed in fpr.
9683	* expr.c (emit_push_insn): Fix computation of 'offset' used to
9684	decide on partial argument save on stack.
9685
96862005-04-21  Kazu Hirata  <kazu@cs.umass.edu>
9687
9688	* config/sparc/predicates.md, config/sparc/sparc.md: Fix
9689	comment typos.
9690
96912005-04-21  Jan Hubicka  <jh@suse.cz>
9692
9693	* cgraphunit.c: Include tree-pass.h
9694	(cgraph_decide_recursive_inlining,
9695	cgraph_decide_inlining_of_small_function, cgraph_set_inline_failed,
9696	cgraph_decide_inlining): Dump goes to dump_file.
9697	(cgraph_optimize): Call ipa passes instead of inliner.
9698	(cgraph_gate_inlining, pass_ipa_inline): New.
9699	* tree-optimize.c (all_ipa_passes): New static variable.
9700	(register_one_dump_file): Dead with IPA passes.
9701	(register_dump_files): Likewise.
9702	(init_tree_optimization_passes): Initialize IPA passes.
9703	(execute_todo): Do cgraph dump when asked to, do not dump function body
9704	for IPA pass.
9705	* tree-pass.h (TODO_dump_cgraph): New macro.
9706	(ipa_passes): Declare.
9707	* Makefile.in (cgraphunit.o): Add dependency on cgraphunit.h
9708
97092005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
9710
9711	* config/i386/i386.c (type_natural_mode): Use gcc_unreachable and
9712	gcc_assert instead of abort.
9713	(classify_argument, examine_argument, construct_container,
9714	contains_128bit_aligned_vector_p, ix86_check_movabs,
9715	standard_80387_constant_opcode, standard_80387_constant_rtx,
9716	ix86_initial_elimination_offset, ix86_compute_frame_layout,
9717	pro_epilogue_adjust_stack, ix86_expand_epilogue,
9718	ix86_address_cost, legitimate_address_p, legitimize_pic_address,
9719	legitimize_tls_address, output_pic_addr_const,
9720	i386_output_dwarf_dtprel, put_condition_code, print_reg,
9721	get_some_local_dynamic_name, print_operand, print_operand_address,
9722	output_387_binary_op, emit_i387_cw_initialization,
9723	output_fix_trunc, output_fp_compare, ix86_output_addr_vec_elt,
9724	ix86_expand_clear, ix86_expand_binary_operator,
9725	ix86_expand_unary_operator, ix86_match_ccmode, ix86_cc_mode,
9726	ix86_cc_modes_compatible, ix86_fp_comparison_codes,
9727	ix86_fp_comparison_arithmetics_cost, ix86_expand_fp_compare,
9728	ix86_expand_branch, ix86_expand_setcc,
9729	ix86_expand_carry_flag_compare, ix86_expand_fp_movcc,
9730	ix86_expand_int_addcc, ix86_split_to_parts, ix86_split_long_move,
9731	ix86_expand_movmem, ix86_expand_call, assign_386_stack_local,
9732	memory_address_length, ix86_attr_length_immediate_default,
9733	ix86_attr_length_address_default, ix86_agi_dependant,
9734	x86_initialize_trampoline, ix86_init_mmx_sse_builtins,
9735	ix86_expand_binop_builtin, ix86_force_to_memory,
9736	ix86_secondary_memory_needed, ix86_avoid_jump_misspredicts,
9737	x86_emit_floatuns): Likewise.
9738	* config/i386/netware.c (gen_regparm_prefix,
9739	i386_nlm_strip_name_encoding): Likewise.
9740	* config/i386/winnt.c (i386_pe_mark_dllexport): Likewise.
9741
97422005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
9743
9744	* optabs.c (gen_condiational_trap): Remove #define.
9745	(add_equal_note): Assertify. Remove explicit indirection from
9746	call via function pointer.
9747	(expand_ternary_op, expand_simple_binop, expand_binop,
9748	expand_twoval_unop, expand_twoval_binop,
9749	expand_twoval_binop_libfunc, expand_simple_unop expand_unop,
9750	emit_unop_insn,  emit_no_conflict_block,  prepare_cmp_insn,
9751	prepare_operand emit_cmp_and_jump_insn_1, emit_cmp_and_jump_insns,
9752	prepare_float_lib_cmp, emit_conditional_move,
9753	emit_conditional_add, gen_add2_insn, gen_add3_insn,
9754	have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn,
9755	expand_float, expand_fix, debug_optab_libfuncs, gen_cond_trap,
9756	vector_compare_rtx, expand_vec_cond_expr): Likewise.
9757
97582005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
9759
9760	* vec.h: Update API to separate allocation mechanism from type.
9761	(VEC_safe_grow): New.
9762	* vec.c (calculate_allocation): New.
9763	(vec_gc_o_reserve, vec_heap_o_reserve): Adjust.
9764	(vec_gc_free, vec_heap_free): Remove.
9765	* gengtype-lex.l (DEF_VEC_): Process mult-argument macros.  Adjust.
9766	(VEC): Likewise.
9767	(mangle_macro_name): New.
9768	(struct macro_def): New.
9769	(struct macro): Add multiple argument values.
9770	(macro_expans_end): New.
9771	(push_macro_expansion):  Chain on new macro. Process multiple
9772	args, create follow on expansion. Return follow on argument.
9773	(macro_input): Deal with multiple arguments.
9774
9775	* tree.h: Define VEC(tree,heap) and VEC(tree,gc).
9776	(struct tree_binfo): Adjust.
9777	* basic-block.h: Define VEC(edge,gc).
9778	(struct edge_def): Adjust.
9779	(struct basic_block_def, struct edge_iterator): Likewise.
9780	(ei_container, ei_start_1, ei_last_1): Likewise.
9781	* cfg.c (connect_src, connect_dest): Likewise.
9782	* cfgrtl.c (force_nonfallthru_and_redirect)
9783	* dbxout.c (dbxout_type)
9784	* dwarf2out.c (gen_member_die)
9785	* lambda-code.c: Define VEC(int,gc), VEC(lambda_loop,gc).
9786	(gcc_tree_to_linear_expression): Adjust.
9787	(gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
9788	lbv_to_gcc_expression, lle_to_gcc_expression,
9789	lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
9790	perfect_nestify): Likewise.
9791	* lambda.h (gcc_loopnest_to_lambda_loopnest,
9792	lambda_loopnest_to_gcc_loopnest): Adjust prototypes.
9793	* profile.c (instrument_values): Adjust.
9794	* tree-cfg.c (modified_noreturn_calls): Adjust.
9795	(remove_fallthru_edge): Likewise.
9796	* tree-dump.c (dequeue_and_dump): Adjust.
9797	* tree-flow-inline.h (mark_stmt_modified): Adjust.
9798	* tree-flow.h (modified_noreturn_calls): Adjust.
9799	(tree_on_heap): Remove. (yay!)
9800	(register_new_def): Adjust.
9801	* tree-into-ssa.c: Define VEC(int,heap).
9802	(block_defs_stack): Adjust.
9803	(find_idf, insert_phi_nodes, register_new_def,
9804	rewrite_initialize_block, rewrite_finalize_block,
9805	register_new_update_single, rewrite_update_init_block,
9806	rewrite_update_fini_block, rewrite_blocks,
9807	ssa_rewrite_finalize_block, ssa_register_new_def,
9808	ssa_rewrite_initialize_block, rewrite_ssa_into_ssa): Likewise.
9809	* tree-loop-linear.c (linear_transform_loops): Adjust.
9810	* tree-ssa-alias.c: Define VEC(fieldoff_t,heap).
9811	(push_fields_onto_fieldstack, create_overlap_variables_for): Adjust.
9812	* tree-ssa-dom.c (avail_exprs_stack, block_defs_stack,
9813	stmts_to_rescan, const_and_copies_stack, nonzero_vars_stack,
9814	vrp_variables_stack): Adjust declarations.
9815	(tree_ssa_dominator_optimize): Adjust.
9816	(dom_opt_initialize_block, remove_local_expressions_from_table,
9817	restore_nonzero_vars_to_original_value,
9818	restore_vars_to_original_value,
9819	restore_currdefs_to_original_value, dom_opt_finalize_block,
9820	record_var_is_nonzero, record_cond, record_const_or_copy_1,
9821	optimize_stmt, update_rhs_and_lookup_avail_expr,
9822	lookup_avail_expr, record_range): Likewise.
9823	* tree-ssa-pre.c: Define VEC(basic_block,heap).
9824	(compute_antic_aux): Adjust.
9825	(inserted_exprs, create_expression_by_pieces,
9826	insert_into_preds_of_block, eliminate, mark_operand_necessary,
9827	remove_dead_inserted_code, fini_pre): Likewise.
9828	* tree-ssa-propagate.c (interesting_ssa_edges): Adjust.
9829	(varying_ssa_edges, add_ssa_edge, process_ssa_edge_worklist.
9830	ssa_prop_init): Likewise.
9831	* tree-ssa.c: Define VEC(bitmap,heap).
9832	(verify_name_tags): Adjust.
9833	* value-prof.c (rtl_divmod_values_to_profile): Adjust.
9834	(insn_prefetch_values_to_profile, rtl_find_values_to_profile,
9835	tree_divmod_values_to_profile, tree_find_values_to_profile,
9836	value_profile_transformations): Likewise.
9837	* value-prof.h: Define VEC(histogram_value,heap).
9838	* varasm.c: Remove alias_pair pointer typedef, define
9839	VEC(alias_pair,gc).
9840	(finish_aliases_1, finish_aliases_2, assemble_alias): Adjust.
9841
9842	* config/pa/pa.c (typedef extern_symbol): Typedef the structure,
9843	not a pointer to it.  Create an object vector.
9844	(extern_symbols): Turn into an object vector.
9845	(pa_hpux_asm_output_external, pa_hpux_file_end): Adjust.
9846
98472005-04-21  Sebastian Pop  <pop@cri.ensmp.fr>
9848
9849	PR/20742
9850	* Makefile.in (tree-chrec.o): Depend on params.h.
9851	* params.def (PARAM_SCEV_MAX_EXPR_SIZE): New parameter with
9852	default value 20.
9853	* tree-chrec.c: Depend on params.h.  Replace build with buildN,
9854	and fold build with fold_buildN.
9855	(chrec_fold_plus_1): Fail with a chrec_don_know when the size of
9856	the expression exceeds PARAM_SCEV_MAX_EXPR_SIZE.
9857	(tree_contains_chrecs): Compute an estimation of the size of the
9858	given expression.
9859	* tree-chrec.h (tree_contains_chrecs): Modify its declaration.
9860	(tree_does_not_contain_chrecs): Update the use of tree_contains_chrecs.
9861	* tree-scalar-evolution.c (simple_iv): Ditto.
9862	* doc/invoke.texi (scev-max-expr-size): Documented.
9863
98642005-04-21  Richard Sandiford  <rsandifo@redhat.com>
9865
9866	* config.gcc (*-*-darwin*): Add darwin.opt to $extra_options.
9867	(i[34567]86-pc-msdosdjgpp*): Likewise i386/djgpp.opt.
9868	(i[34567]86-*-lynxos*, powerpc-*-lynxos*): Likewise lynx.opt.
9869	(i[34567]86-*-sco3.2v5*): Likewise i386/sco5.opt.
9870	(i[34567]86-*-pe, i[34567]86-*-cygwin*, i[34567]86-*-mingw32*)
9871	(i[34567]86-*-uwin*): Likewise i386/cygming.opt.
9872	* config/darwin.h (darwin_one_byte_bool, darwin_fix_and_continue)
9873	(darwin_fix_and_continue_switch, SUBTARGET_OPTIONS): Delete.
9874	* config/darwin.c (darwin_one_byte_bool, darwin_fix_and_continue)
9875	(darwin_fix_and_continue_switch): Delete.
9876	* config/lynx.h (SUBTARGET_OS_LYNX_SWITCHES): Delete.
9877	(SUBTARGET_SWITCHES): Delete.
9878	* config/i386/i386.h (target_flags, MASK_80387, MASK_RTD)
9879	(MASK_ALIGN_DOUBLE, MASK_SVR3_SHLIB, MASK_IEEE_FP, MASK_FLOAT_RETURNS)
9880	(MASK_NO_FANCY_MATH_387, MASK_OMIT_LEAF_FRAME_POINTER)
9881	(MASK_STACK_PROBE, MASK_NO_ALIGN_STROPS, MASK_INLINE_ALL_STROPS)
9882	(MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS, MASK_MMX)
9883	(MASK_SSE, MASK_SSE2, MASK_SSE3, MASK_3DNOW, MASK_3DNOW_A)
9884	(MASK_128BIT_LONG_DOUBLE, MASK_64BIT, MASK_MS_BITFIELD_LAYOUT)
9885	(MASK_TLS_DIRECT_SEG_REFS, MASK_NO_RED_ZONE, TARGET_80387)
9886	(TARGET_RTD, TARGET_ALIGN_DOUBLE, TARGET_PUSH_ARGS)
9887	(TARGET_ACCUMULATE_OUTGOING_ARGS, TARGET_SVR3_SHLIB, TARGET_IEEE_FP)
9888	(TARGET_128BIT_LONG_DOUBLE, TARGET_NO_FANCY_MATH_387)
9889	(TARGET_USE_FANCY_MATH_387, TARGET_OMIT_LEAF_FRAME_POINTER)
9890	(TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Delete.
9891	(TARGET_FLOAT_RETURNS_IN_80387): Make an alias of TARGET_FLOAT_RETURNS.
9892	(TARGET_64BIT): Undef before redefining.
9893	(TARGET_TLS_DIRECT_SEG_REFS, TARGET_STACK_PROBE)
9894	(TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS, TARGET_SSE)
9895	(TARGET_SSE2, TARGET_SSE3, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A)
9896	(TARGET_RED_ZONE, TARGET_USE_MS_BITFIELD_LAYOUT, TARGET_SWITCHES)
9897	(TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS)
9898	(ix86_fpmath_string, ix86_tls_dialect_string, ix86_cmodel_string)
9899	(ix86_asm_string, ix86_regparm, ix86_regparm_string)
9900	(ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
9901	(ix86_debug_arg_string, ix86_debug_addr_string)
9902	(ix86_align_loops_string, ix86_align_jumps_string)
9903	(ix86_align_funcs_string): Delete.
9904	* config/i386/cygming.h (MASK_NOP_FUN_DLLIMPORT)
9905	(TARGET_NOP_FUN_DLLIMPORT, SUBTARGET_SWITCHES): Delete.
9906	* config/i386/djgpp.h (MASK_BNU210, SUBTARGET_SWITCHES): Delete.
9907	(SUBTARGET_OVERRIDE_OPTIONS): Check TARGET_BNU210.
9908	* config/i386/lynx.h (SUBTARGET_SWITCHES): Delete.
9909	* config/i386/sco5.h (MASK_COFF, TARGET_ELF)
9910	(SUBTARGET_SWITCHES): Delete.
9911	* config/i386/i386.c (ix86_debug_arg_string): Delete.
9912	(ix86_debug_addr_string): Delete.
9913	(ix86_cmodel_string, ix86_asm_string, ix86_tls_dialect_string)
9914	(ix86_fpmath_string, ix86_regparm_string, ix86_regparm)
9915	(ix86_align_loops_string, ix86_align_jumps_string)
9916	(ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
9917	(ix86_align_funcs_string): Make static.
9918	(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
9919	(ix86_handle_option): New function.
9920	(TARGET_USE_MS_BITFIELD_LAYOUT): Delete.
9921	(ix86_ms_bitfield_layout_p): Check TARGET_MS_BITFIELD_LAYOUT.
9922	* config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove handling
9923	of darwin_fix_and_continue_switch.
9924	(darwin_one_byte_bool): Delete.
9925	* config/rs6000/lynx.h (EXTRA_SUBTARGET_SWITCHES): Delete.
9926	* config/rs6000/rs6000.c (rs6000_override_options): Update assignment
9927	to darwin_one_byte_bool.
9928	* config/darwin.opt, config/lynx.opt, config/i386/cygming.opt,
9929	* config/i386/djgpp.opt, config/i386/i386.opt,
9930	* config/i386/sco5.opt: New files.
9931
99322005-04-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
9933
9934	* config/sparc/sparc.c (reg_or_0_operand, const1_operand,
9935	fp_zero_operand, fp_register_operand, intreg_operand,
9936	fcc_reg_operand, fcc0_reg_operand, icc_or_fcc_reg_operand,
9937	call_operand, call_operand_address, tgd_symbolic_operand,
9938	tld_symbolic_operand, tie_symbolic_operand, tle_symbolic_operand,
9939	symbolic_operand, symbolic_memory_operand, label_ref_operand,
9940	sp64_medium_pic_operand, data_segment_operand,
9941	text_segment_operand, splittable_symbolic_memory_operand,
9942	reg_or_nonsymb_mem_operand, splittable_immediate_memory_operand,
9943	eq_or_neq, normal_comp_operator, noov_compare_op,
9944	noov_compare64_op, v9_regcmp_op, extend_op, cc_arithop,
9945	cc_arithopn, arith_operand, arith_4096_operand, arith_add_operand,
9946	const64_operand, const64_high_operand, arith11_operand,
9947	arith10_operand, arith_double_operand, arith_double_4096_operand,
9948	arith_double_add_operand, arith11_double_operand,
9949	arith10_double_operand, small_int, small_int_or_double,
9950	uns_small_int, uns_arith_operand, clobbered_register,
9951	input_operand, compare_operand): Delete.
9952	(sparc_emit_set_const32): Use predicates in assertion.  Remove special
9953	code for TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT != 64.
9954	(sparc_emit_set_const64): Call gcc_unreachable if H_B_P_W_I == 32.
9955	(GEN_HIGHINT64, GEN_INT64): Delete.
9956	(sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
9957	gen_safe_XOR64): Adjust for above deletion.
9958	(sparc_emit_set_const64): Support only H_B_P_W_I == 64 and CONST_INTs.
9959	Use 'unsigned HOST_WIDE_INT' instead of 'long' for bitmask.
9960	(legitimate_constant_p): Use const_zero_operand instead.
9961	(sparc_extra_constraint_check): Likewise.
9962	* config/sparc/sparc.h (CONST_DOUBLE_OK_FOR_LETTER_P): Remove 'O'.
9963	(PREFERRED_RELOAD_CLASS): Use const_zero_operand.
9964	(PREDICATE_CODES): Delete.
9965	* config/sparc/sparc.md: Include predicates.md.
9966	(All patterns): Adjust for new predicate names.
9967	(cmpdi, cmpdi_sp64): Use arith_operand predicate.
9968	(movhi_const64_special, movsi_const64_special): Add 'K' constraint.
9969	(movdi): Use general_operand predicate.
9970	(movdi_sp64_dbl): Delete.
9971	(movdi_const64_special): Add 'N' constraint.
9972	(movdicc): Use arith10_operand predicate.
9973	(movdi_cc_sp64, movdi_cc_sp64_trunc): Use arith11_operand predicate.
9974	(movdi_cc_reg_sp64): Use arith10_operand predicate.
9975	(movdi_cc_reg_sp64_trunc): Delete.
9976	(cmp_zero_extract, cmp_zero_extract_sp64): Use small_int_operand.
9977	(adddi3_sp64, cmp_ccx_plus, cmp_ccx_plus_set): Use arith_operand.
9978	(subdi3_sp32): Delete.
9979	(subdi3_insn_sp32): Change to define_insn_and_split.
9980	(subdi3_sp64, cmp_minus_ccx, cmp_minus_ccx_set): Use arith_operand.
9981	(muldi3, muldi3_sp64, muldi3_v8plus): Likewise.
9982	(smulsi3_highpart_v8plus, const_smulsi3_highpart_v8plus,
9983	umulsi3_highpart_v8plus, const_umulsi3_highpart_v8plus): Use
9984	small_int_operand predicate.
9985	(divdi3, udivdi3): Use arith_operand predicate.
9986	(udivsi3, udivsi3_sp32, udivsi3_sp64): Use nonimmediate_operand.
9987	(and<V64I>3_sp64, ior<V64I>3_sp64, xor<V64I:mode>3_sp64,
9988	xor_not_<V64I:mode>_sp64) : Use arith_operand predicate.
9989	(xordi3_sp64_dbl): Delete.
9990	(cmp_ccx_arith_op, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
9991	cmp_ccx_xor_not_set, cmp_ccx_arith_op_not, cmp_ccx_arith_op_not_set,
9992	cmp_ccx_neg, cmp_ccx_set_neg, one_cmpl<V64I>2_sp64, cmp_ccx_not,
9993	cmp_ccx_set_not): Use arith_operand predicate.
9994	(ashrsi3_extend2, lshrsi3_extend2 et al.): Use small_int_operand.
9995	* config/sparc/predicates.md: New file.
9996
99972005-04-21  Kazu Hirata  <kazu@cs.umass.edu>
9998
9999	PR tree-optimization/14846
10000	* fold-const.c (fold_single_bit_test_into_sign_test): New,
10001	split out from ...
10002	(fold_single_bit_test): ... here.
10003	(fold_binary): Call fold_single_bit_test_into_sign_test
10004	instead of fold_single_bit_test.
10005
100062005-04-20  James E Wilson  <wilson@specifixinc.com>
10007
10008	PR c++/20805
10009	* dwarf2out.c (gen_variable_die): Don't emit a specification if this
10010	is another declaration.
10011
100122005-04-21  Hans-Peter Nilsson  <hp@axis.com>
10013
10014	* config/cris/predicates.md: New file.
10015	* config/cris/cris-protos.h (cris_store_multiple_op_p)
10016	(cris_movem_load_rest_p): Declare.
10017	* config/cris/cris.c (cris_store_multiple_op): Return bool, not int.
10018	(cris_movem_load_rest_p): Ditto.  Globalize.
10019	(cris_bdap_operand, cris_bdap_biap_operand,
10020	cris_orthogonal_operator, cris_commutative_orth_op,
10021	cris_operand_extend_operator,
10022	cris_additive_operand_extend_operator, cris_extend_operator,
10023	cris_plus_or_bound_operator, cris_mem_op,
10024	cris_general_operand_or_symbol,
10025	cris_general_operand_or_gotless_symbol,
10026	cris_general_operand_or_plt_symbol, cris_mem_call_operand,
10027	cris_load_multiple_op): Remove predicate functions.
10028	(cris_symbol, cris_gotless_symbol) <case UNSPEC>: Return 0, don't
10029	abort, for UNSPECs other than CRIS_UNSPEC_PLT.
10030	* config/cris/cris.h (PREDICATE_CODES): Don't define.
10031	* config/cris/cris.md: Include predicates.md.
10032	("call", "call_value"): Generate CONSTs of Pmode, not VOIDmode.
10033
100342005-04-20  Ian Lance Taylor  <ian@airs.com>
10035
10036	* c-common.def: Remove STMT_EXPR (moved to cp/cp-tree.def).
10037	* c-common.h (STMT_EXPR_STMT): Don't define.
10038	(STMT_EXPR_NO_SCOPE): Don't define.
10039	* c-dump.c (c_dump_tree): Don't handle STMT_EXPR.
10040	* c-pretty-print.c (pp_c_primary_expression): Likewise.
10041	(pp_c_expression): Likewise.
10042
100432005-04-20  Richard Henderson  <rth@redhat.com>
10044
10045	PR target/21100
10046	* config/i386/mmx.md (push<MMXMODE>1): Fix predicate thinko.
10047
100482005-04-20  Jeff Law  <law@redhat.com>
10049
10050	* reload1.c (reload): Ignore equivalences between pseudos and
10051	read only memory.
10052
100532005-04-20  Joseph S. Myers  <joseph@codesourcery.com>
10054
10055	PR c/12913
10056	* c-tree.h (struct c_label_list): Update comment.
10057	(struct c_label_context): Rename to struct c_label_context_se.
10058	(label_context_stack): Rename to label_context_stack_se.
10059	(C_DECL_UNJUMPABLE_VM, C_DECL_UNDEFINABLE_VM, struct
10060	c_label_context_vm, label_context_stack_vm, c_begin_vm_scope,
10061	c_end_vm_scope): New.
10062	(C_DECL_DECLARED_BUILTIN, C_DECL_USED): Use FUNCTION_DECL_CHECK.
10063	* c-decl.c (pop_scope): Call c_end_vm_scope.
10064	(pushdecl): Call c_begin_vm_scope for variably modified
10065	declarations.
10066	(define_label): Check for jumping into scope of identifier with
10067	variably modified type.  Push label on stack for those defined at
10068	current context of identifiers with variably modified type.
10069	(start_function): Create stack level for context of identifiers
10070	with variably modified type.
10071	(finish_function): Pop stack level for context of identifiers with
10072	variably modified type.
10073	* c-typeck.c (label_context_stack): Rename to
10074	label_context_stack_se.
10075	(label_context_stack_vm, c_begin_vm_scope, c_end_vm_scope): New.
10076	(c_finish_goto_label): Check for jumping into scope of identifier
10077	with variably modified type.  Push label on stack for those jumped
10078	to from current context of identifiers with variably modified
10079	type.
10080	(struct c_switch): Add blocked_vm.
10081	(c_start_case): Initialize blocked_vm.
10082	(do_case): Check blocked_vm.
10083	(c_finish_case): Add comment.
10084	(c_begin_stmt_expr, c_finish_stmt_expr): Update for renamed
10085	variable label_context_stack.
10086
100872005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
10088
10089	* tree-ssa-phiopt.c (tree_ssa_phi_opt): Update calls to
10090	conditional_replacement, value_replacement, abs_replacement,
10091	minmax_replacement.
10092	(replace_phi_edge_with_variable): Remove argument BB.
10093	(conditional_replacement, value_replacement,
10094	minmax_replacement, abs_replacement): Remove argument PHI_BB.
10095	Update a call to replace_phi_edge_with_variable.
10096
10097	* tree-ssa-phiopt.c: Fix comments.
10098
100992005-04-20  Michael Matz  <matz@suse.de>
10100
10101	PR20973
10102	* reload.c (push_reload, find_dummy_reload): Check for uninitialized
10103	pseudos.
10104
101052005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
10106
10107	* tree-ssa-phiopt.c: Fix comment typos.
10108
10109	PR tree-optimization/21116
10110	* tree-ssa-phiopt.c: Fix a typo.
10111
101122005-04-19  Richard Henderson  <rth@redhat.com>
10113
10114	* builtins.c (expand_builtin_sync_operation): Revert last change.
10115	* optabs.c (expand_bool_compare_and_swap): Compare vs old value,
10116	not vs new value.
10117	(expand_compare_and_swap_loop): Likewise.
10118	(expand_sync_operation): Remove fallback from NAND to AND; invert
10119	memory operand when expanding from cmpxchg.
10120	(expand_sync_fetch_operation): Likewise.
10121	* doc/extend.texi (Atomic Builtins): Fix docs for nand and
10122	compare-and-swap.
10123
10124	* config/alpha/alpha.c (alpha_split_atomic_op): Invert memory operand
10125	when implementing NAND.  Fix double-add for AFTER.
10126	* config/alpha/sync.md (sync_nand<I48MODE>): Invert memory operand.
10127	(sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
10128	(sync_compare_and_swap<I48MODE>): Fix compare vs zero.  Return old
10129	memory value.
10130	(sync_lock_test_and_set<I48MODE>): Remove extra label and last
10131	memory barrier.
10132
10133	* config/i386/sync.md (sync_compare_and_swap<IMODE>): Fix pattern
10134	to return old memory value.
10135	(sync_compare_and_swap_cc<IMODE>): Likewise.
10136
10137	* config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Early
10138	return pre-reload.  Don't consider output or anti dependencies.
10139	* config/ia64/sync.md (IMODE): New.
10140	(modesuffix): Add QI and HI.
10141	(memory_barrier): Simplify expansion.
10142	(sync_compare_and_swap<IMODE>): Use IMODE, not I48MODE.
10143	(cmpxchg_acq_<IMODE>): Likewise.
10144	(sync_lock_test_and_set<IMODE>): Likewise.
10145	(sync_lock_release<IMODE>): Likewise.
10146
101472005-04-19  James A. Morrison  <phython@gcc.gnu.org>
10148
10149	* fold-const.c (fold_binary): Fold ~(X ^ Y) to ~X ^ Y or X ^ ~Y if
10150	~X or ~Y simplify.
10151
101522005-04-19  James A. Morrison  <phython@gcc.gnu.org>
10153
10154	* fold-const (fold_binary):  Fold ~X ^ ~ Y to X ^ Y.
10155
101562005-04-20  Michael Pogue  <michael.pogue@sun.com>
10157	    Joseph S. Myers  <joseph@codesourcery.com>
10158
10159	* c.opt (Wint-to-pointer-cast, Wpointer-to-int-cast): New options.
10160	* c-typeck.c (build_c_cast): Check these options.
10161	* doc/invoke.texi: Document these options.
10162
101632005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
10164
10165	* tree-ssa-phiopt.c: Update a comment about the pass.
10166
101672005-04-19  Kazu Hirata  <kazu@cs.umass.edu>
10168
10169	* tree-ssa-phiopt.c, config/arm/arm.c, config/fr30/fr30.md,
10170	config/mcore/mcore.c: Fix comment typos.
10171
101722005-04-19  Daniel Jacobowitz  <dan@codesourcery.com>
10173
10174	* Makefile.in (libgcc.mk): Pass GCC_FOR_TARGET.
10175	* mklibgcc.in: Use $GCC_FOR_TARGET instead of ./xgcc.
10176
101772005-04-19  Paul Brook  <paul@codesourcery.com>
10178
10179	* config/arm/arm.c (arm_init_libfuncs): Clear mod optabs.
10180
101812005-04-19  Andrew Haley  <aph@redhat.com>
10182
10183	PR java/21022
10184	* dbxout.c (dbxout_type_fields): Check DECL_IGNORED_P before
10185	looking at a field's bitpos.
10186
101872005-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
10188
10189	* system.h (fopen, fdopen, freopen): Define these to the unlocked
10190	libiberty functions.
10191
101922005-04-19  Kazu Hirata  <kazu@cs.umass.edu>
10193
10194	PR tree-optimization/21096
10195	* tree-ssa-copy.c (fini_copy_prop): Free cached_last_copy_of.
10196
101972005-04-19  Alan Modra  <amodra@bigpond.net.au>
10198
10199	PR target/21098
10200	* config/rs6000/rs6000.c (rs6000_elf_end_indicate_exec_stack): New.
10201	* config/rs6000/linux64.h (TARGET_ASM_FILE_END): Use the above.
10202
102032005-04-19  Alexandre Oliva  <aoliva@redhat.com>
10204
10205	* tree-cfg.c (dump_function_to_file): Use cfun info only if it
10206	refers to the function being dumped.
10207
102082005-04-18  Daniel Jacobowitz  <dan@codesourcery.com>
10209
10210	* varasm.c (assemble_start_function): Remove reset of in_section.
10211
102122005-04-18  James A. Morrison  <phython@gcc.gnu.org>
10213
10214	PR tree-optimization/21085
10215	* fold-const (fold_binary): Don't change X % -C to X % C if C has
10216	overflowed.
10217
102182005-04-19  Ben Elliston  <bje@au.ibm.com>
10219
10220	* doc/invoke.texi (Optimize Options): Refer to the correct
10221	optimisation flag -ftree-dominator-opts, not -ftree-dom.
10222
102232005-04-18  Christopher Jaillet <christophe.jaillet@wanadoo.fr>
10224
10225	* config/rs6000/rs6000.c (machopic_output_stub):  Increase
10226	alloca argument to be big enough.
10227
102282005-04-18  Alexandre Oliva  <aoliva@redhat.com>
10229
10230	PR middle-end/21049
10231	* tree-cfg.c (dump_function_to_file): Do not crash if cfun or
10232	cfun->cfg are NULL.
10233
102342005-04-18  Tom Tromey  <tromey@redhat.com>
10235
10236	* cgraphunit.c (cgraph_finalize_compilation_unit): Fix a comment
10237	typo.
10238
102392005-04-18  Richard Henderson  <rth@redhat.com>
10240
10241	* config/alpha/alpha.c (alpha_split_atomic_op): New.
10242	(alphaev5_insn_pipe): Add LD_L, ST_C, MB types.
10243	(alphaev4_insn_pipe): Likewise.  Correct IST and LDSYM pipes.
10244	* config/alpha/alpha-protos.h: Update.
10245	* config/alpha/alpha.md (UNSPECV_MB, UNSPECV_LL, UNSPECV_SC): New.
10246	(UNSPECV_ATOMIC, UNSPECV_CMPXCHG, UNSPECV_XCHG): New.
10247	(attr type): Add ld_l, st_c, mb.
10248	(andsi_internal, andnotsi3, iorsi_internal, one_cmplsi_internal,
10249	iornotsi3, xorsi_internal, xornotsi3): New.
10250	* config/alpha/ev4.md (ev4_ld): Add ld_l.
10251	(ev4_ist_c, ev4_mb): New.
10252	* config/alpha/ev5.md (ev5_st): Add st_c, mb.
10253	(ev5_ld_l): New.
10254	* config/alpha/ev6.md (ev6_ild): Add ld_l.
10255	(ev6_ist): Add st_c.
10256	(ev6_mb): New.
10257	* config/alpha/sync.md: New file.
10258
102592005-04-18  Richard Henderson  <rth@redhat.com>
10260
10261	* builtins.c (expand_builtin_sync_operation): Fold nand to and
10262	for constants.
10263
10264	* optabs.c (expand_sync_operation): Fix typo expanding nand to and.
10265
102662005-04-18  Devang Patel  <dpatel@apple.com>
10267
10268	* config/rs6000/atlivec.md (mulv4si3): New pattern.
10269
102702005-04-18  James A. Morrison  <phython@gcc.gnu.org>
10271
10272	PR tree-optimization/20922
10273	* fold-const.c (fold_binary): Fold X - c > X and X + c < X to false.
10274	Fold X + c >= X and fold X - c <= X to true.
10275
102762005-04-18  James A. Morrison  <phython@gcc.gnu.org>
10277
10278	* config/ia64/unwind-ia64.c (emergency_reg_state_free): Make an
10279	unsigned int.
10280	(emergency_labeled_state_free): Likewise.
10281
102822005-04-18  Nick Clifton  <nickc@redhat.com>
10283
10284	* config/h8300/h8300.md (jump): Remove prescan parameter from
10285	calls to final_scan_insn.
10286
10287	* config/arc/arc.c (arc_output_function_epilogue): Remove prescan
10288	parameter from calls to final_scan_insn.
10289
10290	* config.gcc (m68hc12): Use the m68hc11.opt file for target
10291	specific options.
10292	(v850e, v850e1): Use the v850.opt file for target specific
10293	options.
10294
102952005-04-18  Kazu Hirata  <kazu@cs.umass.edu>
10296
10297	PR tree-optimization/21001
10298	* tree-optimize.c (init_tree_optimization_passes): Move the
10299	first pass_forwprop immediately before pass_vrp.
10300
103012005-04-17  Ian Lance Taylor  <ian@airs.com>
10302
10303	* c-common.def (SIZEOF_EXPR, ARROW_EXPR, ALIGNOF_EXPR): Remove.
10304	* c-common.c (c_sizeof_or_alignof_type): Change second parameter
10305	from enum tree_code op to bool is_sizeof.
10306	* c-common.h (c_sizeof_or_alignof_type): Update declaration.
10307	(c_sizeof, c_alignof): Update calls to c_sizeof_or_alignof_type.
10308	* c-pretty-print.c (pp_c_postfix_expression): Remove ARROW_EXPR
10309	case.
10310	(pp_c_unary_expression): Remove SIZEOF_EXPR and ALIGNOF_EXPR
10311	cases.
10312	(pp_c_expression): Remove ARROW_EXPR, SIZEOF_EXPR, and
10313	ALIGNOF_EXPR cases.
10314
103152005-04-17  Ian Lance Taylor  <ian@airs.com>
10316
10317	* system.h: Poison DONT_ACCESS_GBLS_AFTER_EPILOGUE.
10318
103192005-04-17  Richard Henderson  <rth@redhat.com>
10320
10321	* config/alpha/alpha.c (va_list_skip_additions): Only define if
10322	TARGET_ABI_OSF.
10323	(TARGET_STDARG_OPTIMIZE_HOOK): Likewise.
10324	(alpha_stdarg_optimize_hook): Likewise.  Allow for one more round
10325	of indirection through ssa names while looking for the gpr counter
10326	field.
10327	(alpha_setup_incoming_varargs) <TARGET_ABI_OSF>: Make use of the
10328	saved va_list_gpr_size and va_list_fpr_size.
10329
103302005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
10331
10332	* tree-vrp.c (compare_values): Check that VAL1 and VAL2 are
10333	both pointers or both integers.
10334
10335	* tree-vrp.c (maybe_add_assert_expr): Don't assert
10336	ASSERT_EXPRs for single-use variable.
10337
10338	* tree-into-ssa.c: Fix a comment typo.
10339
103402005-04-17  Richard Sandiford  <rsandifo@redhat.com>
10341
10342	* config/mips/iris6.h (DRIVER_SELF_SPECS): Check -march as well as
10343	-mipsN before forcing a default of -mips2.
10344
103452005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
10346
10347	* predict.h (IS_TAKEN): Remove.
10348	* rtl.h (NOTE_PREDICTION): Likewise.
10349
10350	* modulo-sched.c (CFG_HOOKS): Remove.
10351
10352	* c-parser.c (N_C_TTYPES): Remove.
10353
10354	* tree-flow-inline.h (get_stmt_operands): Remove.
10355	* lambda-code.c, tree-ssa-loop-unswitch.c,
10356	tree-ssa-operands.c, tree-ssa-pre.c, tree-ssa-propagate.c,
10357	tree-ssa-sink.c, tree-ssa.c, tree-tailcall.c,
10358	tree-vect-transform.c, tree-vectorizer.c, tree-vrp.c): Remove
10359	calls to get_stmt_operands.
10360	* doc/tree-ssa.texi: Don't mention get_stmt_operands.
10361
103622005-04-17  Richard Henderson  <rth@redhat.com>
10363
10364	PR target/20375
10365	* config/alpha/alpha.c (alpha_setup_incoming_varargs): Advance a copy
10366	of CUMULATIVE_ARGS past the last named argument.
10367	(alpha_va_start): Expect pretend_args_size only if strictly less than
10368	6 named arguments.
10369
103702005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
10371
10372	PR middle-end/21024
10373	* builtins.c (expand_builtin_strcat): Convert the result of
10374	strlen to the right type.
10375	* fold-const.c (fold_binary) <PLUS_EXPR>: Use fold_convert to
10376	avoid creating type mismatches.
10377	<GE_EXPR>: Pass op0 and op1 to fold_build2 to avoid creating
10378	type mismatches.
10379
10380	* c-lex.c (WCHAR_TYPE_SIZE, WCHAR_BYTES): Remove.
10381
103822005-04-16  Richard Henderson  <rth@redhat.com>
10383
10384	PR target/21051
10385	* builtins.c (expand_builtin) <BUILT_IN_BOOL_COMPARE_AND_SWAP_*>:
10386	Use the mode of boolean_type_node when the user doesn't provide one.
10387	* config/ia64/sync.md (sync_lock_release<I48MODE>): Use operand 1.
10388
103892005-04-16  Alexandre Oliva  <aoliva@redhat.com>
10390
10391	PR target/20126
10392	* loop.c (loop_givs_rescan): Handle non-replaceable (plus (reg)
10393	(const)).
10394
10395	* tree-scalar-evolution.c (interpret_rhs_modify_expr): Fix typo in
10396	comment.
10397
103982005-04-16  Roger Sayle  <roger@eyesopen.com>
10399	    Steven Bosscher  <stevenb@suse.de>
10400
10401	* fold-const.c (fold_binary_to_constant): Delete obsolete comment.
10402	(fold_unary_to_constant): Likewise.
10403
104042005-04-16  Kazu Hirata  <kazu@cs.umass.edu>
10405
10406	* basic-block.h: Adjust the value of PROP_SCAN_DEAD_STORES,
10407	PROP_ASM_SCAN.
10408
104092005-04-16  Gerald Pfeifer  <gerald@pfeifer.com>
10410
10411	* doc/install.texi (Specific): Avoid using asterisks in @anchor
10412	names related to target triplets.
10413	Remove i?86-*-esix from platform directory.
10414	Remove powerpc-*-eabiaix from platform directory.
10415
104162005-04-16  Joseph S. Myers  <joseph@codesourcery.com>
10417
10418	PR middle-end/20491
10419	* config/ia64/ia64.c (rtx_needs_barrier): Recurse instead of
10420	falling through from SUBREG case to REG.
10421
104222005-04-15  Roger Sayle  <roger@eyesopen.com>
10423
10424	* fold-const.c (fold_relational_hi_lo): Delete function and prototype.
10425	(fold_binary): Update comment mentioning fold_relational_hi_lo.
10426	(fold_binary_to_constant): Simplify using fold_binary.
10427	(fold_unary_to_constant): Likewise, simplify using fold_unary.
10428
104292005-04-15  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
10430
10431	* gthr-posix.c (pthread_cancel): Define.
10432	(pthread_mutexattr_init): Likewise.
10433	(pthread_mutexattr_settype): Likewise.
10434	(pthread_mutexattr_destroy): Likewise.
10435
104362005-04-15  David S. Miller  <davem@davemloft.net>
10437
10438	PR target/20673
10439	* config/sparc/sparc.h (sparc_hard_reg_printed): Mark as GTY(()).
10440
104412005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
10442
10443	PR tree-optimization/21031
10444	* tree-ssa-forwprop.c (ssa_name_defined_by_comparison_p): New.
10445	(forward_propagate_into_cond_1): Call it.  Forward propagate
10446	integer-integer casts into COND_EXPRs.
10447
104482005-04-15  Dave Korn  <dave.korn@artimi.com>
10449
10450	* gcc.c (default_compilers): Clarify obscure error message when
10451	reading from standard input.
10452
104532005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
10454
10455	* basic-block.h (PROP_EQUAL_NOTES): Remove.
10456	* flow.c (propagate_one_insn): Don't use PROP_EQUAL_NOTES.
10457
10458	* tree-ssa-alias.c (init_alias_info): Remove a call to
10459	get_stmt_operands.
10460
104612005-04-15  Andrew MacLeod  <amacleod@redhat.com>
10462
10463	* tree-vect-analyze.c (vect_stmt_relevant_p): Process immediate uses
10464	of non-virtual PHI nodes like we use to.
10465
104662005-05-15  Paolo Bonzini  <bonzini@gnu.org>
10467
10468	* genattrtab.c (ATTR_EQ_ATTR_P): Remove.
10469	(attr_copy_rtx): Do not use it.
10470
104712005-04-15  Andrew Macleod  <amacleod@redhat.com>
10472
10473	* doc/tree-ssa.texi: Grammer/abbreviation updates.
10474
104752005-04-15  Diego Novillo  <dnovillo@redhat.com>
10476
10477	* tree-vect-transform.c (vectorizable_store): Mark necessary
10478	objects in the vectorized store needing renaming.  Update the
10479	SSA graph for V_MAY_DEF operands in the original store.
10480
104812005-04-14  Daniel Berlin <dberlin@dberlin.org>
10482
10483	* tree-ssa-pre.c (compute_avail): It's okay to have
10484	TREE_INVARIANT's here, and value number the resulting expressions.
10485	(create_expression_by_pieces): Make sure operands that were
10486	min_invariant when we started, stay that way.
10487
104882005-04-15  David Edelsohn  <edelsohn@gnu.org>
10489
10490	* doc/install.texi (*-ibm-aix*): Add comment about system limits.
10491
104922005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
10493
10494	PR tree-optimization/20936.
10495	* tree-ssa-ccp.c (visit_assignment): Fix a typo.
10496
104972005-04-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
10498
10499	* doc/invoke.texi: Fix typos.
10500	* doc/md.texi: Likewise.
10501	* doc/rtl.texi: Likewise.
10502	* doc/sourcebuild.texi: Likewise.
10503	* doc/tm.texi: Likewise.
10504
105052005-04-15  Uros Bizjak  <uros@kss-loka.si>
10506
10507	PR tree-optimization/21004
10508	* convert.c (convert_to_integer): Convert ceilf, ceill, floorf
10509	and floorl in c99 mode only.
10510	* builtins.c (expand_builtin_int_roundingfn): Assert that
10511	fallback_fndecl is not NULL_TREE.
10512
105132005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
10514
10515	* cfgrtl.c (purge_all_dead_edge): Remove an unused argument.
10516	* basic-block.h: Update the prototype for
10517	purge_all_dead_edges.
10518	* cfgexpand.c (tree_expand_cfg): Update a call to
10519	purge_all_dead_edges.
10520	* combine.c (combine_instructions): Likewise.
10521	* passes.c (rest_of_handle_old_regalloc, rest_of_handle_cse,
10522	rest_of_handle_cse2, rest_of_handle_gcse,
10523	rest_of_handle_postreload): likewise.
10524
105252005-04-15  Alexandre Oliva  <aoliva@redhat.com>
10526
10527	PR middle-end/20739
10528	* gimplify.c (gimplify_addr_expr): Compensate for removal of
10529	e.g. cv-qualification conversions.
10530
105312005-04-14  Mike Stump  <mrs@apple.com>
10532
10533	* config/darwin-c.c (framework_construct_pathname): We must
10534	find all headers of a framework in the first instance of it
10535	found in the seach path.
10536
105372005-04-14  Kazu Hirata  <kazu@cs.umass.edu>
10538
10539	PR tree-optimization/21021
10540	* tree-vrp.c (compare_values): Work around a bug in the front
10541	end that produces a comparison of mismatched types.
10542
105432004-04-14  Richard Henderson  <rth@redhat.com>
10544
10545	* config/ia64/ia64.h (enum fetchop_code): Remove.
10546	(enum ia64_builtins): Move ...
10547	* config/ia64/ia64.c (enum ia64_builtins): ... here.  Remove all
10548	members except BSP and FLUSHRS.
10549	(ia64_init_builtins): Remove __sync builtins.
10550	(ia64_expand_builtin): Likewise.
10551	(ia64_expand_fetch_and_op, ia64_expand_op_and_fetch): Remove.
10552	(ia64_expand_compare_and_swap, ia64_expand_lock_test_and_set): Remove.
10553	(ia64_expand_lock_release): Remove.
10554	* config/ia64/ia64.md (mf): Move to sync.md.
10555	(mf_internal, fetchadd_acq_si, fetchadd_acq_di, cmpxchg_acq_si,
10556	cmpxchg_acq_di, xchgsi, xchgdi): Likewise.
10557	* config/ia64/sync.md: New file.
10558	(memory_barrier): Rename from mf.
10559	(fetchadd_acq_<I48MODE>): Macroize from _si/_di patterns.
10560	(cmpxchg_acq_<I48MODE>): Likewise.
10561	(sync_lock_test_and_set<I48MODE>): Likewise.
10562
10563	* config/ia64/ia64intrin.h: Define nothing for C; limit #defines
10564	to c++.  Remove __sync* declarations.  s/_si/_4/.  s/_di/_8/.
10565
105662004-04-14  Richard Henderson  <rth@redhat.com>
10567
10568	* config/i386/i386.c (x86_cmpxchg, x86_xadd): New.
10569	(ix86_compare_emitted): New.
10570	(ix86_expand_compare): Use ix86_compare_emitted if set.
10571	(ix86_expand_setcc): Only emit REG_EQUAL if both ix86_compare_op0
10572	and ix86_compare_op0 are set.
10573	* config/i386/i386.h (x86_cmpxchg, x86_xadd): Declare.
10574	(TARGET_CMPXCHG, TARGET_XADD): New.
10575	(ix86_compare_emitted): Declare.
10576	* config/i386/i386.md: Include sync.md
10577	(UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2): New.
10578	(UNSPECV_XCHG, UNSPECV_LOCK): New.
10579	* config/i386/sync.md: New file.
10580
105812004-04-14  Richard Henderson  <rth@redhat.com>
10582
10583	PR middle-end/14311
10584	* builtin-types.def (BT_BOOL, BT_VOLATILE_PTR, BT_I1, BT_I2,
10585	BT_I4, BT_I8, BT_FN_VOID_VPTR, BT_FN_I1_VPTR_I1, BT_FN_I2_VPTR_I2,
10586	BT_FN_I4_VPTR_I4, BT_FN_I8_VPTR_I8, BT_FN_BOOL_VPTR_I1_I1,
10587	BT_FN_BOOL_VPTR_I2_I2, BT_FN_BOOL_VPTR_I4_I4, BT_FN_BOOL_VPTR_I8_I8,
10588	BT_FN_I1_VPTR_I1_I1, BT_FN_I2_VPTR_I2_I2, BT_FN_I4_VPTR_I4_I4,
10589	BT_FN_I8_VPTR_I8_I8): New.
10590	* builtins.def (DEF_SYNC_BUILTIN): New.
10591	(BUILT_IN_FETCH_AND_ADD_N, BUILT_IN_FETCH_AND_ADD_1,
10592	BUILT_IN_FETCH_AND_ADD_2, BUILT_IN_FETCH_AND_ADD_4,
10593	BUILT_IN_FETCH_AND_ADD_8, BUILT_IN_FETCH_AND_SUB_N,
10594	BUILT_IN_FETCH_AND_SUB_1, BUILT_IN_FETCH_AND_SUB_2,
10595	BUILT_IN_FETCH_AND_SUB_4, BUILT_IN_FETCH_AND_SUB_8,
10596	BUILT_IN_FETCH_AND_OR_N, BUILT_IN_FETCH_AND_OR_1,
10597	BUILT_IN_FETCH_AND_OR_2, BUILT_IN_FETCH_AND_OR_4,
10598	BUILT_IN_FETCH_AND_OR_8, BUILT_IN_FETCH_AND_AND_N,
10599	BUILT_IN_FETCH_AND_AND_1, BUILT_IN_FETCH_AND_AND_2,
10600	BUILT_IN_FETCH_AND_AND_4, BUILT_IN_FETCH_AND_AND_8,
10601	BUILT_IN_FETCH_AND_XOR_N, BUILT_IN_FETCH_AND_XOR_1,
10602	BUILT_IN_FETCH_AND_XOR_2, BUILT_IN_FETCH_AND_XOR_4,
10603	BUILT_IN_FETCH_AND_XOR_8, BUILT_IN_FETCH_AND_NAND_N,
10604	BUILT_IN_FETCH_AND_NAND_1, BUILT_IN_FETCH_AND_NAND_2,
10605	BUILT_IN_FETCH_AND_NAND_4, BUILT_IN_FETCH_AND_NAND_8,
10606	BUILT_IN_ADD_AND_FETCH_N, BUILT_IN_ADD_AND_FETCH_1,
10607	BUILT_IN_ADD_AND_FETCH_2, BUILT_IN_ADD_AND_FETCH_4,
10608	BUILT_IN_ADD_AND_FETCH_8, BUILT_IN_SUB_AND_FETCH_N,
10609	BUILT_IN_SUB_AND_FETCH_1, BUILT_IN_SUB_AND_FETCH_2,
10610	BUILT_IN_SUB_AND_FETCH_4, BUILT_IN_SUB_AND_FETCH_8,
10611	BUILT_IN_OR_AND_FETCH_N, BUILT_IN_OR_AND_FETCH_1,
10612	BUILT_IN_OR_AND_FETCH_2, BUILT_IN_OR_AND_FETCH_4,
10613	BUILT_IN_OR_AND_FETCH_8, BUILT_IN_AND_AND_FETCH_N,
10614	BUILT_IN_AND_AND_FETCH_1, BUILT_IN_AND_AND_FETCH_2,
10615	BUILT_IN_AND_AND_FETCH_4, BUILT_IN_AND_AND_FETCH_8,
10616	BUILT_IN_XOR_AND_FETCH_N, BUILT_IN_XOR_AND_FETCH_1,
10617	BUILT_IN_XOR_AND_FETCH_2, BUILT_IN_XOR_AND_FETCH_4,
10618	BUILT_IN_XOR_AND_FETCH_8, BUILT_IN_NAND_AND_FETCH_N,
10619	BUILT_IN_NAND_AND_FETCH_1, BUILT_IN_NAND_AND_FETCH_2,
10620	BUILT_IN_NAND_AND_FETCH_4, BUILT_IN_NAND_AND_FETCH_8,
10621	BUILT_IN_BOOL_COMPARE_AND_SWAP_N, BUILT_IN_BOOL_COMPARE_AND_SWAP_1,
10622	BUILT_IN_BOOL_COMPARE_AND_SWAP_2, BUILT_IN_BOOL_COMPARE_AND_SWAP_4,
10623	BUILT_IN_BOOL_COMPARE_AND_SWAP_8, BUILT_IN_VAL_COMPARE_AND_SWAP_N,
10624	BUILT_IN_VAL_COMPARE_AND_SWAP_1, BUILT_IN_VAL_COMPARE_AND_SWAP_2,
10625	BUILT_IN_VAL_COMPARE_AND_SWAP_4, BUILT_IN_VAL_COMPARE_AND_SWAP_8,
10626	BUILT_IN_LOCK_TEST_AND_SET_N, BUILT_IN_LOCK_TEST_AND_SET_1,
10627	BUILT_IN_LOCK_TEST_AND_SET_2, BUILT_IN_LOCK_TEST_AND_SET_4,
10628	BUILT_IN_LOCK_TEST_AND_SET_8, BUILT_IN_LOCK_RELEASE_N,
10629	BUILT_IN_LOCK_RELEASE_1, BUILT_IN_LOCK_RELEASE_2,
10630	BUILT_IN_LOCK_RELEASE_4, BUILT_IN_LOCK_RELEASE_8,
10631	BUILT_IN_SYNCHRONIZE: New.
10632	* builtins.c (called_as_built_in): Rewrite from CALLED_AS_BUILT_IN
10633	as a function.  Accept __sync_ as a prefix as well.
10634	(expand_builtin_sync_operation, expand_builtin_compare_and_swap,
10635	expand_builtin_lock_test_and_set, expand_builtin_synchronize,
10636	expand_builtin_lock_release): New.
10637	(expand_builtin): Call them.
10638	* c-common.c (DEF_BUILTIN): Don't require __builtin_ prefix if
10639	neither BOTH_P nor FALLBACK_P are defined.
10640	(builtin_type_for_size): New.
10641	(sync_resolve_size, sync_resolve_params, sync_resolve_return): New.
10642	(resolve_overloaded_builtin): New.
10643	* c-common.h (resolve_overloaded_builtin): Declare.
10644	(builtin_type_for_size): Declare.
10645	* c-typeck.c (build_function_call): Invoke resolve_overloaded_builtin.
10646	* expr.c (sync_add_optab, sync_sub_optab, sync_ior_optab,
10647	sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab,
10648	sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab,
10649	sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab,
10650	sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab,
10651	sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap,
10652	sync_compare_and_swap_cc, sync_lock_test_and_set,
10653	sync_lock_release): New.
10654	* optabs.h: Declare them.
10655	* expr.h (expand_val_compare_and_swap, expand_bool_compare_and_swap,
10656	expand_sync_operation, expand_sync_fetch_operation,
10657	expand_sync_lock_test_and_set): Declare.
10658	* genopinit.c (optabs): Add sync optabs.
10659	* optabs.c (init_optabs): Initialize sync optabs.
10660	(expand_val_compare_and_swap_1, expand_val_compare_and_swap,
10661	expand_bool_compare_and_swap, expand_compare_and_swap_loop,
10662	expand_sync_operation, expand_sync_fetch_operation,
10663	expand_sync_lock_test_and_set): New.
10664	* doc/extend.texi (Atomic Builtins): New section
10665	* doc/md.texi (Standard Names): Add sync patterns.
10666
106672005-04-14  Alexandre Oliva  <aoliva@redhat.com>
10668
10669	* tree-eh.c (lower_try_finally_copy): Generate new code in
10670	response to goto_queue entries as if the queue was sorted by
10671	index, not pointers.
10672	(lower_try_finally_switch): Likewise.
10673
106742005-04-14  Richard Henderson  <rth@redhat.com>
10675
10676	* config/i386/i386.c (ix86_expand_sse_cmp): Split out from ...
10677	(ix86_expand_sse_movcc): ... here.  Take cmp as a pre-computed
10678	register.
10679	(ix86_expand_fp_movcc): Update to match.
10680	(ix86_expand_fp_vcond, ix86_expand_int_vcond): New.
10681	* config/i386/i386-protos.h: Update.
10682	* config/i386/sse.md (vcondv4sf, vcondv2df): New.
10683	(vcond<SSEMODE124>, vcondu<SSEMODE12>): New.
10684
106852005-04-14  Joseph S. Myers  <joseph@codesourcery.com>
10686
10687	* doc/cpp.texi, doc/install.texi: Change references to GCC 3.5 to
10688	refer to 4.0.
10689
106902005-04-14  Julian Brown  <julian@codesourcery.com>
10691
10692	* Revert elfos.h part of my patch from 2005-04-13 for causing libstdc++
10693	link failures on ppc64 Linux.
10694
106952005-04-14  Andreas Krebbel  <krebbel1@de.ibm.com>
10696
10697	* config.gcc: Set cpu_type for s390.
10698
106992005-04-14  Daniel Berlin  <dberlin@dberlin.org>
10700
10701	Fix PR tree-optimization/20963
10702	* tree-ssa-pre.c (compute_avail): Remove special case for
10703	TREE_INVARIANT.
10704	(create_expression_by_pieces): Add value numbers for forced out
10705	statements.
10706
107072005-04-14  Hans-Peter Nilsson  <hp@axis.com>
10708
10709	* config/cris/cris.md: Replace references to (reg:SI 16) with
10710	(reg:SI CRIS_SRP_REGNUM).
10711
107122005-04-14  Kazu Hirata  <kazu@cs.umass.edu>
10713
10714	PR tree-optimization/20657
10715	* tree-vrp.c (extract_range_from_expr): Notice INTEGER_CST to
10716	create an appropriate range from it.
10717
107182005-04-14  Uros Bizjak  <uros@kss-loka.si>
10719
10720	* reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST_FLOOR> and
10721	<UNSPEC_FIST_CEIL> case.
10722
10723	* config/i386/i386.md (UNSPEC_FIST_FLOOR, UNSPEC_FIST_CEIL): New.
10724	(*fist<mode>2_floor_1, fistdi2_floor, fistdi2_floor_with_temp)
10725	(fist<mode>2_floor, fist<mode>2_floor_with_temp): New isns patterns
10726	to implement lfloor and llfloor built-ins as x87 intrinsic function.
10727	(fistdi2_floor, fist<mode>2_floor splitters): New splitters.
10728	(lfloor<mode>2): New expanders.
10729	(*fist<mode>2_ceil_1, fistdi2_ceil, fistdi2_ceil_with_temp)
10730	(fist<mode>2_ceil, fist<mode>2_ceil_with_temp): New isns patterns
10731	to implement lceil and llceil built-ins as x87 intrinsic function.
10732	(fistdi2_ceil, fist<mode>2_ceil splitters): New splitters.
10733	(lceil<mode>2): New expanders.
10734
107352005-04-14  Uros Bizjak  <uros@kss-loka.si>
10736
10737	* convert.c (convert_to_integer): Convert (long int)trunc{,f,l},
10738	and (long long int)ceil{,f,l} into FIX_TRUNC_EXPR.
10739
107402005-04-14  Ulrich Weigand  <uweigand@de.ibm.com>
10741
10742	PR target/20927
10743	* config/s390/s390-modes.def: Define TFmode.
10744
107452005-04-13  Richard Sandiford  <rsandifo@redhat.com>
10746
10747	* config/mips/mips.h (ASM_OUTPUT_CASE_LABEL): Delete.
10748	(JUMP_TABLES_IN_TEXT_SECTION): Define.
10749	* config/mips/mips.c (mips16_insn_length): Remove reference to
10750	JUMP_TABLES_IN_TEXT_SECTION.
10751
107522005-04-13 Fariborz Jahanian <fjahanian@apple.com>
10753
10754	* simplify-rtx.c (simplify_binary_operation_1): Return
10755	scalar or vector of constant 0, depending on the xor's
10756	mode.
10757
107582005-04-13  Dale Johannesen  <dalej@apple.com>
10759
10760	* objc/Make-lang.in (objc-lang.o):  Depend on tree-gimple.h.
10761	(objc-act.o):  Ditto.
10762	* objc/objc-act.c (objc_gimplify_expr):  New.
10763	(objc_get_callee_fndecl):  New.
10764	* objc/objc-act.h:  Include tree-gimple.h.  Declare new functions.
10765	* objc/objc-lang.c (LANG_HOOKS_GIMPLIFY_EXPR):  Define.
10766	(LANG_HOOKS_GET_CALLEE_FNDECL):  Define.
10767
107682005-04-13  Devang Patel  <dpatel@apple.com>
10769
10770	* tree-if-conv.c (tree_if_convert_cond_expr): Do not create extra
10771	temp variables.
10772
107732005-04-13  Hans-Peter Nilsson  <hp@axis.com>
10774
10775	CRIS prologue as RTL.
10776	* config/cris/cris-protos.h (cris_emit_movem_store)
10777	(cris_expand_prologue): Prototype.
10778	* config/cris/cris.c (struct machine_function): New member
10779	stdarg_regs.
10780	(cfa_label_num, cris_target_asm_function_prologue): Remove.
10781	(TARGET_ASM_FUNCTION_PROLOGUE): Don't override.
10782	(cris_general_operand_or_gotless_symbol): Accept CRIS_UNSPEC_GOT.
10783	(cris_load_multiple_op, cris_return_address_on_stack)
10784	(cris_return_address_on_stack_for_return): ISO-Cify.
10785	(cris_store_multiple_op): New predicate function.
10786	(cris_expand_prologue, cris_emit_movem_store): New functions.
10787	(cris_print_operand) <case 'O'>: Handle modifications other than
10788	post-increment.
10789	(cris_symbol, cris_got_symbol): Return 0 for CRIS_UNSPEC_GOT.
10790	(cris_gotless_symbol): Return 1 for CRIS_UNSPEC_GOT.
10791	(cris_gen_movem_load): Rearrange slightly to make local variable
10792	src a parameter, removing osrc.
10793	(cris_setup_incoming_varargs): Set machine_function member
10794	stdarg_regs to correspond to the number of registers that need to
10795	be saved.
10796	* config/cris/cris.h (EXTRA_CONSTRAINT_S): Accept
10797	CRIS_UNSPEC_GOT.
10798	(PREDICATE_CODES): Add cris_store_multiple_op.  Make
10799	cris_general_operand_or_gotless_symbol accept UNSPEC.
10800	* config/cris/cris.md (CRIS_UNSPEC_GOT): New constant.
10801	("*movsi_internal") <alternative 8>: Handle CRIS_UNSPEC_GOT.
10802	("*cris_store_multiple"): New pattern.  Tweak common comment above
10803	this and "*cris_load_multiple".
10804	("prologue"): New define_expand.
10805
10806	* config/cris/cris.md ("epilogue"): Conditionalize on
10807	TARGET_PROLOGUE_EPILOGUE.
10808
108092005-04-13  Steve Ellcey  <sje@cup.hp.com>
10810
10811	PR target/20924
10812	* config/ia64/ia64.md (divsf3_internal_lat): Generate frcpa with
10813	fpsr 0 instead of fpsr 1.
10814	(divsf3_internal_thr): Ditto.
10815	(divdf3_internal_lat): Ditto.
10816	(divdf3_internal_thr): Ditto.
10817	(divxf3_internal_lat): Ditto.
10818	(divxf3_internal_thr): Ditto.
10819
108202005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
10821
10822	PR tree-optimization/20913
10823	* tree-ssa-copy.c (copy_prop_visit_cond_stmt): Fold COND_EXPR.
10824
10825	PR tree-optimization/20702
10826	* tree-vrp.c (maybe_add_assert_expr): Recurse into
10827	dominator children that haven't been walked into.
10828
108292005-04-13  Julian Brown  <julian@codesourcery.com>
10830
10831	* config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK from
10832	being used for symbols with vague linkage when HAVE_GAS_COMDAT_GROUP
10833	is true.
10834
108352005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
10836
10837	* basic-block.h, tree-ssa-uncprop.c, varasm.c,
10838	config/i386/sse.md: Fix comment typos.
10839
10840	* genattrtab.c (NULL_ATTR): Remove.
10841	* ifcvt.c (NULL_EDGE): Likewise.
10842
10843	* rtl.h (RTX_EXPR_FIRST, RTX_EXPR_LAST): Remove.
10844
10845	* rtl.h (NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS,
10846	NOTE_PREDICT): Remove.
10847
108482005-04-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
10849
10850	* configure.ac (gcc_AC_CHECK_DECLS): Add vsnprintf.
10851	* configure: Regenerate.
10852	* config.in: Likewise.
10853	* system.h: Declare vsnprintf if not already declared.
10854
108552005-04-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
10856
10857	* optc-gen.awk: Handle stand-alone Mask records.
10858	* opth-gen.awk: Likewise.
10859	* doc/options.texi (Option file format): Document them.
10860	* config.gcc (sparc-*-netbsdelf*, sparc-*-linux*, sparc64-*-freebsd*,
10861	sparc64-*-linux*, sparc64-*-netbsd*): Add long-double-switch.opt.
10862	(sparc64-*-openbsd*, sparc64-*-elf*): Add little-endian.opt.
10863	* config/sparc/sparc.h (MASK_FPU, MASK_UNALIGNED_DOUBLES,
10864	MASK_V8, MASK_SPARCLITE, MASK_SPARCLET, MASK_V9,
10865	MASK_DEPRECATED_V8_INSNS, MASK_IMPURE_TEXT, MASK_APP_REGS,
10866	MASK_HARD_QUAD, MASK_LITTLE_ENDIAN, MASK_PTR64, MASK_64BIT,
10867	MASK_STACK_BIAS, MASK_FPU_SET, MASK_VIS, MASK_V8PLUS,
10868	MASK_FASTER_STRUCTS, MASK_LONG_DOUBLE_128): Delete.
10869	(TARGET_FPU, TARGET_UNALIGNED_DOUBLES, TARGET_V8, TARGET_SPARCLITE,
10870	TARGET_SPARCLET, TARGET_V9, TARGET_DEPRECATED_V8_INSNS,
10871	TARGET_IMPURE_TEXT, TARGET_APP_REGS, MASK_HARD_QUAD,
10872	TARGET_LITTLE_ENDIAN, TARGET_PTR64, TARGET_64BIT, MASK_STACK_BIAS,
10873	TARGET_FPU_SET, TARGET_VIS, TARGET_V8PLUS, TARGET_FASTER_STRUCTS,
10874	TARGET_LONG_DOUBLE_128): Likewise.
10875	(TARGET_SWITCHES, SUBTARGET_SWITCHES): Likewise.
10876	(TARGET_OPTIONS, SUBTARGET_OPTIONS): Likewise.
10877	* config/sparc/freebsd.h (SUBTARGET_SWITCHES): Likewise.
10878	* config/sparc/linux.h (SUBTARGET_SWITCHES): Likewise.
10879	* config/sparc/linux64.h (SUBTARGET_SWITCHES): Likewise.
10880	* config/sparc/netbsd-elf.h (SUBTARGET_SWITCHES): Likewise.
10881	* config/sparc/sp64-elf.h (SUBTARGET_SWITCHES): Likewise.
10882	* config/sparc/sparc.c (fpu_option_set): New global.
10883	(sparc_handle_option): New function.
10884	(sparc_override_options): Test fpu_option_set.
10885	(TARGET_DEFAULT_TARGET_FLAGS): Set to TARGET_DEFAULT.
10886	(TARGET_HANDLE_OPTION): Set to sparc_handle_option.
10887	* config/sparc/sparc.opt: New file.
10888	* config/sparc/little-endian.opt: Likewise.
10889	* config/sparc/long-double-switch.opt: Likewise.
10890
108912005-04-13  Bernd Schmidt  <bernd.schmidt@analog.com>
10892
10893	* config/bfin/bfin.c (bfin_lib_id_given): New static variable.
10894	(bfin_handle_options): Set it if -mshared-library-id= is seen.
10895	* config/bfin/bfin.opt (mshared-library-id=): Lose
10896	Var(bfin_lib_id_given).
10897
108982005-04-13  Matt Thomas  <matt@3am-software.com>
10899
10900	* config/rs6000/sysv4.h (NO_IMPLICIT_EXTERN_C): undefine before
10901	defining.
10902
109032005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
10904
10905	* rtl.h (CLEAR_RTX_FLAGS): Remove.
10906
10907	* cgraphunit.c (INSNS_PER_CALL): Remove.
10908
10909	* tree-ssa-forwprop.c (vars,
10910	record_single_argument_cond_exprs,
10911	substitute_single_use_vars): Remove.
10912	(forward_propagate_into_cond_1, forward_propagate_into_cond):
10913	New.
10914	(tree_ssa_forward_propagate_single_use_vars): Call
10915	forward_propagate_into_cond for each COND_EXPR.
10916
10917	* tree-inline.c (INSNS_PER_STMT): Remove.
10918
109192005-04-12  Richard Henderson  <rth@redhat.com>
10920
10921	* config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Split ...
10922	(ix86_expand_sse_fp_minmax): ... from ...
10923	(ix86_expand_fp_movcc): ... here.
10924	(ix86_expand_sse_movcc): Rewrite from ix86_split_sse_movcc.
10925	* config/i386/i386-protos.h: Update.
10926	* config/i386/i386.md (UNSPEC_IEEE_MIN, UNSPEC_IEEE_MAX): New.
10927	(sse_setccsf, sse_setccdf): Allow before reload.
10928	(movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): Remove.
10929	(movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): Remove.
10930	(ieee_sminsf3, ieee_smaxsf3, ieee_smindf3, ieee_smaxdf3): New.
10931	* config/i386/sse.md (andsf3, nandsf3, iorsf3, xorsf3): New.
10932	(anddf3, nanddf3, iordf3, xordf3): New.
10933
109342005-04-12  Jeff Law  <law@redhat.com>
10935
10936	* Makefile.in (OBJS-common): Add tree-ssa-uncprop.o.
10937	(tree-ssa-uncprop.o): Add dependencies.
10938	* tree-cfg.c (remove_useless_stmts_bb, remove_useless_stmts): Remove.
10939	* tree-flow.h (remove_useless_stmts): Remove prototype.
10940	* tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
10941	remove_useless_stmts.
10942	* timevar.def (TV_TREE_SSA_UNCPROP): New timevar.
10943	* tree-optimize.c (init_tree_optimization_passes): Add uncprop pass.
10944	* tree-pass.h (pass_uncprop): Declare.
10945	* tree-ssa-uncprop.c: New file.
10946
109472005-04-12  James E. Wilson  <wilson@specifixinc.com>
10948
10949	PR target/20670
10950	* unwind-ia64.c (uw_intall_context): Add missing load of r27.
10951
109522005-04-12  Caroline Tice  <ctice@apple.com>
10953
10954	Temporary fix for partitioning problems.
10955	* passes.c (rest_of_handle_final): Remove code that
10956	frees unlikely_text_section_name,
10957	* varasm.c (assemble_start_function): Test for partitioning
10958	flag before writing out section labels.
10959	(assemble_end_function): Test for partitioning flag before
10960	writing out section labels.
10961
109622005-04-12  Steven Bosscher  <stevenb@suse.de>
10963	    Stuart Hastings <stuart@apple.com>
10964	    Jan Hubicka  <jh@suse.cz>
10965
10966	* Makefile.in: Add function.h to BASIC_BLOCK_H.  Remove all
10967	references to gt-tree-cfg.h.
10968	* basic-block.h (struct basic_block_def): Don't skip rbi
10969	for garbage collection.
10970	(struct reorder_block_def): Make GTY-able.
10971	(struct control_flow_graph): New structure.
10972	(n_edges, n_basic_blocks, last_basic_block, basic_block_info,
10973	BASIC_BLOCK, EXIT_BLOCK_PTR, ENTRY_BLOCK_PTR): No longer vars,
10974	but instead defines to the control_flow_graph for cfun.
10975	(label_to_block_map): New define, points to the label map of
10976	the control_flow_graph for cfun.
10977	(n_edges_for_function, n_basic_blocks_for_function,
10978	last_basic_block_for_function, basic_block_info_for_function,
10979	EXIT_BLOCK_PTR_FOR_FUNCTION, ENTRY_BLOCK_PTR_FOR_FUNCTION,
10980	basic_block_info_for_function, label_to_block_map_for_function):
10981	Counterparts for the above, taking a struct function as an extra
10982	argument.
10983	(alloc_rbi_pool, free_rbi_pool): Remove prototypes.
10984	* cfg.c: (n_edges, n_basic_blocks, last_basic_block,
10985	basic_block_info, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Remove.
10986	(alloc_rbi_pool, free_rbi_pool): Remove.
10987	(initialize_bb_rbi): Use ggc_alloc_cleared instead of pool_alloc.
10988	* cfglayout.c: (cfg_layout_initialize): Don't allocate the rbi pool
10989	here...
10990	(cfg_layout_finalize) ... and don't free it here.
10991	* cfgrtl.c (cfg_layout_delete_block): Zero out rbi so it gets
10992	garbage collected.
10993	* flow.c (free_basic_block_vars): Set label_to_block_map and
10994	n_edges to zero too.
10995	* function.h (struct function): Add cfg field.
10996	* function.c (allocate_struct_function): Allocate the cfg.
10997	* tree-cfg.c (label_to_block_map): Remove.
10998	(build_tree_cfg): Don't allocate the rbi pool here...
10999	(delete_tree_cfg_annotations): ...and don't free it here.
11000	Also don't nullify label_to_block_map for cfun.
11001
110022005-04-12  Caroline Tice  <ctice@apple.com>
11003
11004	* bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
11005	Revert my patch from April 9.
11006	(fix_edges_for_rarely_executed_code): Revert my patch from April 9.
11007	(reorder_basic_blocks): Revert my patch from April 9.
11008	(insert_section_boundary_note): Revert my patch from April 9.
11009	* dbxout.c (dbxout_function_end): Revert my patch from April 9.
11010	* dwarf2out.c (COLD_TEXT_SECTION_LABEL): Revert my patch from April 9.
11011	(COLD_END_LABEL):  Revert my patch from April 9.
11012	(cold_text_section_label):  Revert my patch from April 9.
11013	(cold_end_label): Revert my patch from April 9.
11014	(dwarf2out_switch_text_section): Revert my patch from April 9.
11015	(output_aranges): Revert my patch from April 9.
11016	(output_ranges):  Revert my patch from April 9.
11017	(output_line_info): Revert my patch from April 9.
11018	(add_location_or_const_value_attribute):  Revert my patch from April 9.
11019	(dwarf2out_var_location): Revert my patch from April 9.
11020	(dwarf2out_init):  Revert my patch from April 9.
11021	(dwarf2out_finish): Revert my patch from April 9.
11022	* function.h (struct function): Revert my patch from April 9.
11023	* opts.c (decode_options): Revert my patch from April 9.
11024	* output.h (unlikely_section_label, hot_section_label,
11025	hot_section_end_label, cold_section_end_label,
11026	unlikely_text_section_name): Revert my patch from April 9.
11027	* passes.c (rest_of_handle_final): Revert my patch from April 9.
11028	* varasm.c (unlikely_section_label, hot_section_label,
11029	hot_section_end_label, cold_section_end_label,
11030	unlikely_text_section_name): Revert my patch from April 9.
11031	(initialize_cold_section_name): Revert my patch from April 9.
11032	(unlikely_text_section): Revert my patch from April 9.
11033	(in_unlikely_text_section): Revert my patch from April 9.
11034	(named_section): Revert my patch from April 9.
11035	(function_section): Revert my patch from April 9.
11036	(current_function_section): Revert my patch from April 9.
11037	(assemble_start_function): Revert my patch from April 9.
11038	(assemble_end_function): Revert my patch from April 9.
11039	(default_section_type_flags_1): Revert my patch from April 9.
11040
110412005-04-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
11042
11043	* config/sparc/sparc.h (APPLY_RESULT_SIZE): Set to 24 in 64-bit mode.
11044	* config/sparc/sparc.md (untyped_call): Save the registers manually.
11045
11046	* config/sparc/sparc.c (legitimate_address_p): Use TARGET_ARCH32.
11047
110482005-04-12  Ulrich Weigand  <uweigand@de.ibm.com>
11049
11050	PR middle-end/20917
11051	* config/s390/s390.md ("*set_tp"): Use SET in pattern.
11052	("set_tp_64", "set_tp_31"): Adapt expanded pattern.
11053
110542004-04-12  Richard Henderson  <rth@redhat.com>
11055
11056	* config/i386/i386.md (UNSPEC_FIX, UNSPEC_MOVA, UNSPEC_SHUFFLE,
11057	UNSPEC_PSHUFLW, UNSPEC_PSHUFHW, UNSPEC_ADDSUB, UNSPEC_HADD,
11058	UNSPEC_HSUB, UNSPEC_MOVSHDUP, UNSPEC_MOVSLDUP, UNSPEC_MOVDDUP): Remove.
11059	(UNSPEC_*, UNSPECV_*): Renumber.
11060
110612005-04-12  Frank Ch. Eigler  <fche@redhat.com>
11062
11063	PR mudflap/19266
11064	From Richard Henderson <rth@redhat.com>:
11065	* tree-mudflap.c (mf_build_check_statement_for): Correct block
11066	splitting logic.
11067
110682005-04-12  Dorit Naishlos  <dorit@il.ibm.com>
11069
11070	* tree-cfg.c (tree_verify_flow_info): Use LABEL_EXPR_LABEL.
11071
110722005-04-12  Bernd Schmidt  <bernd.schmidt@analog.com>
11073
11074	* config/bfin/bfin.c (bfin_library_id_string): Remove.
11075	(bfin_library_id): New variable.
11076	(bfin_expand_prologue): Use bfin_library_id and bfin_lib_id_given
11077	instead of bfin_library_id_string.
11078	(bfin_handle_option): New function.
11079	(override_options): Remove most code to deal with shared library IDs,
11080	just check they aren't used without -mid-shared-library.
11081	(TARGET_HANDLE_OPTION): Define.
11082	* config/bfin/bfin.h (TARGET_OPTIONS): Delete macro.
11083	* config/bfin/bfin.opt (mshared-library-id=): New.
11084
110852005-04-12  Kazu Hirata  <kazu@cs.umass.edu>
11086
11087	* tree-vect-transform.c: Fix comment typos.
11088
110892005-04-12 Mostafa Hagog <mustafa@il.ibm.com>
11090
11091	* postreload-gcse.c (eliminate_partially_redundant_load): Don't
11092	split critical edges when not possible/profitable.
11093
110942005-04-12  Richard Sandiford  <rsandifo@redhat.com>
11095
11096	* config/ns32k/ns32k.h (target_flags, MASK_32081, MASK_RTD)
11097	(MASK_REGPARM, MASK_32532, MASK_32332, MASK_NO_SB, MASK_NO_BITFIELD)
11098	(MASK_HIMEM, MASK_32381, MASK_MULT_ADD, MASK_SRC, MASK_IEEE_COMPARE)
11099	(TARGET_32081, TARGET_32381, TARGET_MULT_ADD, TARGET_RTD)
11100	(TARGET_REGPARM, TARGET_32532, TARGET_32332, TARGET_SB, TARGET_HIMEM)
11101	(TARGET_BITFIELD, TARGET_IEEE_COMPARE, TARGET_SWITCHES): Delete.
11102	(OVERRIDE_OPTIONS): Clear MASK_SB instead of setting MASK_NO_SB.
11103	* config/ns32k/netbsd.h (TARGET_DEFAULT): Remove MASK_NO_SB and
11104	MASK_NO_BITFIELD.
11105	* config/ns32k/ns32k.c (ns32k_handle_option): New function.
11106	(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
11107	* config/ns32k/ns32k.opt: New file.
11108
111092005-04-12  Richard Sandiford  <rsandifo@redhat.com>
11110
11111	* config.gcc (m68k-*-linux*): Add m68k/ieee.opt to $extra_options.
11112	* config/m68k/m68k.h (target_flags, MASK_68020, TARGET_68020)
11113	(MASK_68030, TARGET_68030, MASK_68040, TARGET_68040, MASK_68040_ONLY)
11114	(TARGET_68040_ONLY, MASK_68060, TARGET_68060, MASK_5200, TARGET_5200)
11115	(MASK_CFV3, TARGET_CFV3, MASK_CFV4, TARGET_CFV4, MASK_528x)
11116	(TARGET_528x, MASK_CF_HWDIV, TARGET_CF_HWDIV, MASK_68881, TARGET_68881)
11117	(MASK_BITFIELD, TARGET_BITFIELD, MASK_SHORT, TARGET_SHORT)
11118	(MASK_ALIGN_INT, TARGET_ALIGN_INT, MASK_PCREL, TARGET_PCREL)
11119	(MASK_NO_STRICT_ALIGNMENT, TARGET_STRICT_ALIGNMENT, MASK_RTD)
11120	(TARGET_RTD, MASK_SEP_DATA, TARGET_SEP_DATA, MASK_ID_SHARED_LIBRARY)
11121	(TARGET_ID_SHARED_LIBRARY, MASK_ALL_CF_BITS, TARGET_SWITCHES)
11122	(TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Delete.
11123	(MASK_COLDFIRE): Formatting fixes.
11124	(TARGET_COLDFIRE): Turn into a boolean value for consistency.
11125	* config/m68k/linux.h (SUBTARGET_SWITCHES): Delete.
11126	* config/m68k/m68k.c (m68k_library_id_string): Initialize to
11127	"_current_shared_library_a5_offset_".
11128	(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
11129	(MASK_ALL_CPU_BITS): New macro.
11130	(m68k_handle_option): New function.
11131	(override_options): Remove handling of m68k_library_id_string.
11132	* config/m68k/m68k.opt: New file.
11133	* config/m68k/ieee.opt: New file.
11134
111352005-04-11  Mark Mitchell  <mark@codesourcery.com>
11136
11137	* target-def.h (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
11138	(TARGET_CXX_DETERMINE_CLASS_VISIBILITY): New macro.
11139	(TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
11140	(TARGET_CXX): Adjust accordingly.
11141	* target.h (struct gcc_target): Remove epxort_class_data.  Add
11142	determine_class_data_visibility and class_data_always_comdat.
11143	* doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
11144	(TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Document.
11145	(TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
11146	* config/arm/arm.c (arm_cxx_export_class_data): Remove.
11147	(arm_cxx_determine_class_data_visibility): New.
11148	(arm_cxx_class_data_always_comdat): Likewise.
11149	(TARGET_CXX_EXPORT_CLASS_DATA): Remove.
11150	(TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
11151	(TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
11152	* config/arm/arm.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P): Define.
11153	* config/arm/symbian.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P):
11154	Define.
11155
111562005-04-11  Devang Patel  <dpatel@apple.com>
11157
11158	* tree-data-ref.c (build_classic_dist_vector,
11159	compute_subscript_distance): Make externally visible.
11160	* tree-data-ref.h (build_classic_dist_vector,
11161	compute_subscript_distance): Same.
11162	* tree-vect-analyze.c (vect_analyze_data_ref_dependence):
11163	Check distance vector against vectorization factor.
11164	(vect_analyze_loop): Determine vectorizaion factor before
11165	analyzing data dependences.
11166	* tree-vectorizer.c (loops_num): Make it externally visible and
11167	rename ...
11168	* tree-vectorizer.c (vect_loops_num): ... new name.
11169	* tree-vectorizer.h  (vect_loops_num): New.
11170
111712005-04-11  Devang Patel  <dpatel@apple.com>
11172
11173	* tree-vect-analyze.c (vect_analyze_operations): Check
11174	vectorizable codition.
11175	* tree-vect-transform.c (vect_is_simple_cond): New function.
11176	(vectorizable_condition): New function.
11177	(vect_transform_stmt): Handle condition_vec_info_type.
11178	* tree-vectorizer.h (enum stmt_vec_info_type): Add
11179	condition_vec_info_type.
11180	(vectorizable_condition): New.
11181
111822005-04-11  Geoffrey Keating  <geoffk@apple.com>
11183
11184	* config/i386/i386.h (TARGET_FPMATH_DEFAULT): New.
11185	* config/i386/darwin.h (TARGET_FPMATH_DEFAULT): New.
11186	* config/i386/i386.c (override_options): Use TARGET_FPMATH_DEFAULT.
11187
11188	* config/i386/darwin.h (ASM_SPEC): Use -arch i386 not -arch i686.
11189	(SUBTARGET_EXTRA_SPECS): Always 'i386'.
11190
11191	* dwarf2out.c (output_line_info): Don't try to dereference
11192	a NULL current_function_decl.
11193
11194	* config/t-slibgcc-darwin: Don't put shared libraries in
11195	directories other than $(slibdir).
11196	* config/rs6000/darwin.h: Find -m64 libgcc under the name the
11197	OS uses for it.
11198
111992005-04-11  Diego Novillo  <dnovillo@redhat.com>
11200
11201	PR tree-optimization/20933
11202	* tree-ssa-alias.c (compute_flow_insensitive_aliasing): Move
11203	logic to reject aliases between read-only and writable
11204	variables ...
11205	(may_alias_p): ... here.
11206	(get_tmt_for): Do not associate read-only tags to pointers
11207	whose pointed-to type is not read-only.
11208	* tree-ssa.c (verify_ssa): Check that memory stores have at
11209	least one V_MAY_DEF or V_MUST_DEF.
11210
112112005-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11212
11213	PR/17092
11214	* configure.ac (gcc_UNLOCKED_FUNCS): New.
11215	(AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for gcc_UNLOCKED_FUNCS.
11216	* system.h (putchar, getc, getchar, clearerr, feof, fileno,
11217	fflush, fgetc, fgets, ferror, fread): Redefine to the associated
11218	_unlocked function.
11219	(fwrite_unlocked): Fix prototype.
11220
11221	* configure, config.in: Regenerate.
11222
112232005-04-11  David Edelsohn  <edelsohn@gnu.org>
11224
11225	* tree-ssa-loop-im.c: Include real.h.
11226	(determine_invariantness_stmt): If real division divisor is
11227	invariant and flag_unsafe_math_optimizations enabled, generate
11228	invariant reciprocal for hoisting.
11229	* Makefile.in (tree-ssa-loop-im.o): Add real.h dependency.
11230
112312005-04-11  Daniel Berlin  <dberlin@dberlin.org>
11232
11233	Fix PR tree-optimization/20926
11234
11235	* tree-ssa-alias.c (add_type_alias): Handle subvars.
11236
112372005-04-11  Devang Patel  <dpatel@apple.com>
11238
11239	* config/rs6000.c (rs6000_emit_vector_select): Fix vector select
11240	operand ordering.
11241
112422005-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
11243
11244	* fold-const.c (fold_binary_op_with_conditional_arg):
11245	use fold_buildN instead of "fold (buildN" in some
11246	non obvious places.
11247	(fold_unary): Likewise.
11248	(fold_binary): Likewise.
11249
112502005-04-11  Daniel Berlin  <dberlin@dberlin.org>
11251
11252	Fix PR tree-optimization/20612
11253	* lambda-code.c (lambda_loopnest_to_gcc_loopnest): Fix increment
11254	handling
11255	(perfect_nestify): preheaderbb is *not* part of loop of the
11256	old destination.
11257
112582005-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
11259
11260	* tree-ssa-alias.c (may_alias_p): If the variable
11261	is a global variable and the pointer is parameter
11262	and -fargument-noalias-global is used, then
11263	the pointer cannot alias the variable.
11264
112652005-04-11  James A. Morrison  <phython@gcc.gnu.org>
11266
11267	* config/sparc/sparc.c: Use gcc_assert and gcc_unreachable.
11268	* config/sparc/sparc.h: Likewise.
11269	* config/sparc/sparc.md: Likewise.
11270
112712005-04-11  Kazu Hirata  <kazu@cs.umass.edu>
11272
11273	* tree-vrp.c (maybe_add_assert_expr): Move a comment.
11274
11275	* tree-vrp.c: Fix a comment typo.
11276
112772005-04-11  Diego Novillo  <dnovillo@redhat.com>
11278
11279	PR tree-optimization/20920
11280	* tree-pretty-print.c (dump_generic_node): Show '(ab)' if an
11281	SSA_NAME flows through an abnormal edge.
11282	* tree-vrp.c (infer_value_range): Ignore SSA names that flow
11283	through abnormal edges.
11284	(maybe_add_assert_expr): Likewise.
11285
112862005-04-11  Richard Sandiford  <rsandifo@redhat.com>
11287
11288	* config/s390/s390.h (s390_tune_string, s390_arch_string)
11289	(s390_warn_framesize_string, s390_warn_dynamicstack_string)
11290	(s390_stack_size_string, s390_stack_guard_string, target_flags)
11291	(MASK_HARD_FLOAT, MASK_SMALL_EXEC, MASK_DEBUG_ARG, MASK_64BIT)
11292	(MASK_ZARCH, MASK_MVCLE, MASK_TPF_PROFILING, MASK_NO_FUSED_MADD)
11293	(MASK_BACKCHAIN, MASK_PACKED_STACK, TARGET_HARD_FLOAT)
11294	(TARGET_SOFT_FLOAT, TARGET_SMALL_EXEC, TARGET_DEBUG_ARG)
11295	(TARGET_64BIT, TARGET_ZARCH, TARGET_MVCLE, TARGET_TPF_PROFILING)
11296	(TARGET_NO_FUSED_MADD, TARGET_FUSED_MADD, TARGET_BACKCHAIN)
11297	(TARGET_PACKED_STACK, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
11298	* config/s390/s390.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
11299	(TARGET_HANDLE_OPTION): Likewise.
11300	(s390_tune): Initialize to PROCESSOR_max.
11301	(s390_arch_string): Make static.
11302	(s390_tune_string, s390_warn_framesize_string): Delete.
11303	(s390_warn_dynamicstack_string, s390_stack_size_string): Delete.
11304	(s390_stack_guard_string, s390_warn_dynamicstack_p): Delete.
11305	(s390_handle_arch_option, s390_handle_option): New functions.
11306	(override_options): Remove parsing of option strings.
11307	* config/s390/s390.opt: New file.
11308
113092005-04-11  Paolo Bonzini  <bonzini@gnu.org>
11310
11311	* tree-complex.c (expand_vector_operations): Call
11312	update_stmt_if_modified.
11313
113142005-04-11  Paolo Bonzini  <bonzini@gnu.org>
11315
11316	* tree-vect-analyze (vect_determine_vectorization_factor):
11317	Do not use GET_MODE_NUNITS.
11318	* tree-vect-transform.c (vect_get_vec_def_for_operand,
11319	(vectorizable_load, vect_transform_loop): Likewise.
11320
113212005-04-11  Uros Bizjak  <uros@kss-loka.si>
11322
11323	* builtins.def (BUILT_IN_LCEIL, BUILT_IN_LCEILF, BUILT_IN_LCEILL)
11324	(BUILT_IN_LLCEIL, BUILT_IN_LLCEILF, BUILT_IN_LLCEILL): New.
11325	* optabs.h (enum optab_index): Add new OTI_lceil.
11326	(lceil_optab): Define corresponding macro.
11327	* optabs.c (init_optabs): Initialize lceil_optab.
11328	* genopinit.c (optabs): Implement lceil_optab using lceilsi2
11329	and lceildi2 patterns.
11330	* builtins.c (expand_builtin_int_roundingfn): Handle
11331	BUILT_IN_LCEIL{,F,L} and BUILT_IN_LLCEIL{,F,L}.
11332	(fold_builtin_int_roundingfn): Handle BUILT_IN_LCEIL{,F,L} and
11333	BUILT_IN_LLCEIL{,F,L}.
11334	(fold_builtin_1): Fold BUILT_IN_LCEIL{,F,L} and
11335	BUILT_IN_LLCEIL{,F,L} using fold_builtin_int_roundingfn.
11336	(mathfn_built_in): Handle BUILT_IN LCEIL and BUILT_IN_LLCEIL.
11337	(expand_builtin): Expand BUILT_IN_LCEIL{,F,L} and
11338	BUILT_IN_LLCEIL{,F,L} using expand_builtin_int_roundingfn.
11339	* convert.c (convert_to_integer): Convert (long int)ceil{,f,l},
11340	into lceil built-in function and (long long int)ceil{,f,l} into
11341	llceil built-in function.
11342	* fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LCEIL and
11343	BUILT_IN_LLCEIL.
11344
113452005-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
11346
11347	* pa/quadlib.c (_U_Qfneg): Toggle sign bit instead of subtracting from
11348	zero.
11349
113502005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
11351
11352	* config/arm/arm.c: Fix a comment typo.
11353	* doc/tree-ssa.texi: Fix a typo.
11354
113552005-04-10  Steven Bosscher  <stevenb@suse.de>
11356
11357	* cselib.c (clear_table): Rename to cselib_clear_table.
11358	* cselib.h (cselib_clear_table): Add prototype.
11359	* gcse.c (gcse_main): Make 'f' argument unused.
11360	(alloc_gcse_mem): Do not walk the insn chain, walk the contents
11361	of each basic block instead.
11362	(compute_sets, compute_hash_table_work): Likewise.
11363	(constprop_register): Change int 'alter_jumps' argument to bool.
11364	(do_local_cprop): Likewise.
11365	(local_cprop_pass): Likewise.  Also walk basic blocks instead of
11366	the insn chain.  Explicitly clear the cselib tables after finishing
11367	one basic block.  Make sure there are no unterminated libcall blocks.
11368	Update compute_sets call.
11369	(cprop): Walk basic blocks instead of the insn chain.
11370	(one_cprop_pass, compute_ld_motion_mems, compute_store_table):
11371	Likewise.
11372	(bypass_jumps): Update alloc_gcse_mem, compute_sets, and
11373	one_cprop_pass calls.
11374
113752005-04-10  Richard Sandiford  <rsandifo@redhat.com>
11376
11377	* combine.c (combine_simplify_rtx): Remove a transformation that
11378	relies on an invalid assumption about rtl sign-extension semantics.
11379
113802005-04-10  Richard Sandiford  <rsandifo@redhat.com>
11381
11382	* value-prof.c (tree_divmod_fixed_value_transform): Fix arguments
11383	to build_int_cst_wide.
11384
113852005-04-09  Alexandre Oliva  <aoliva@redhat.com>
11386
11387	PR target/20126
11388	* loop.c (loop_givs_rescan): If replacement of DEST_ADDR failed,
11389	set the original address pseudo to the correct value before the
11390	original insn, if possible, and leave the insn alone, otherwise
11391	create a new pseudo, set it and replace it in the insn.
11392	* recog.c (validate_change_maybe_volatile): New.
11393	* recog.h (validate_change_maybe_volatile): Declare.
11394
113952005-04-09  Caroline Tice  <ctice@apple.com>
11396
11397	* bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
11398	Remove targetm.have_named_sections test.
11399	(fix_edges_for_rarely_executed_code): Likewise.
11400	(insert_section_boundary_note): Likewise.
11401	(reorder_basic_blocks): Check partitioning flag before calling
11402	verify_hot_cold_block_grouping.
11403	* dbxout.c (dbxout_function_end): Get hot/cold section labels from
11404	the function struct rather than global variables.
11405	* dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
11406	(COLD_END_LABEL): Likewise
11407	(cold_text_section_label): New static global variable.
11408	(cold_end_label): Likewise.
11409	(dwarf2out_switch_text_section): Get hot/cold section labels from
11410	the function struct rather than global variables.
11411	(output_aranges): Use cold_text_section_label and cold_end_label;
11412	check partitioning flag before putting out delta.
11413	(output_ranges): Remove incorrect code attempting to use
11414	hot/cold labels.
11415	(output_line_info): Get cold section label from function struct.
11416	(add_location_or_const_value_attribute): Likewise.
11417	(get_subprogram_die): Get hot/cold section labels from function struct.
11418	(dwarf2out_var_location): Likewise.
11419	(dwarf2out_init): Generate cold_text_section_label and cold_end_label;
11420	write out cold_text_section_label if partition flag is set.
11421	(dwarf2out_finish): Write out cold_end_label if partition flag is set;
11422	* function.h (struct function): Add new fields to point to hot/cold
11423	section labels: hot_section_label, cold_section_label,
11424	hot_section_end_label and cold_section_end_label; also add new field
11425	for cold text section name, unlikely_text_section_name.
11426	* opts.c (decode_options): Turn off partitioning flag if
11427	!targetm.have_named_sections.
11428	* output.h (hot_section_label): Remove.
11429	(hot_section_end_label): Remove.
11430	(cold_section_end_label): Remove.
11431	(unlikely_section_label): Remove.
11432	(unlikely_text_section_name): Remove.
11433	* passes.c (rest_of_handle_final):  Remove code that frees
11434	unlikely_text_section_name.
11435	* varasm.c (unlikely_section_label): Remove.
11436	(hot_section_label): Remove.
11437	(hot_section_end_label): Remove.
11438	(cold_section_end_label): Remove.
11439	(unlikely_text_section_name):  Remove.
11440	(initialize_cold_section_name): Modify to call
11441	targetm.strip_name_encoding; to store cold section name in current
11442	function struct, if it exists; and to only use the decl_section_name
11443	if flag_named_sections is true.
11444	(unlikely_text_section): Modify to get section name out of current
11445	function struct, if there is one; otherwise build it from
11446	UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
11447	(in_unlikely_text_section): Likewise.
11448	(named_section): Modify to get/put cold section name in current function
11449	struct, if there is one.
11450	(function_section):  Change 'bool unlikely' to 'int reloc'; check
11451	targetm.have_named_sections before calling named_section.
11452	(current_function_section): Likewise.
11453	(assemble_start_function): Modify to get/put unlikely_text_section_name
11454	in current function struct; modify to get hot/cold section labels
11455	from function struct; initialize labels using
11456	ASM_GENERATE_INTERNAL_LABEL;
11457	test partitioning flag before writing out hot section label.
11458	(assemble_end_function): Test partitioning flag before writing out
11459	hot/cold section labels.
11460	(default_section_type_flags_1):  Modify to use array instead of
11461	 char* for unlikely_text_section_name; set flags correctly for
11462	 cold text section if there is not a current function decl.
11463
114642005-04-09  Jakub Jelinek  <jakub@redhat.com>
11465
11466	* tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
11467	and TI_VA_LIST_FPR_COUNTER_FIELD.
11468	(va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
11469	* tree-pass.h (pass_stdarg): Add.
11470	* tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
11471	* tree-stdarg.c: New file.
11472	* tree-stdarg.h: New file.
11473	* Makefile.in (OBJS-common): Add tree-stdarg.o.
11474	(tree-stdarg.o): Add dependencies.
11475	* function.h (struct function): Add va_list_gpr_size and
11476	va_list_fpr_size fields.
11477	* function.c (allocate_struct_function): Initialize them.
11478	* target.h (struct gcc_target): Add stdarg_optimize_hook.
11479	* target-def.h (TARGET_STDARG_OPTIMIZE_HOOK): Define.
11480	(TARGET_INITIALIZER): Add it.
11481
11482	* config/i386/i386.c (ix86_build_builtin_va_list): Initialize
11483	va_list_{g,f}pr_counter_field.
11484	(ix86_setup_incoming_varargs): Don't do anything if reg_save
11485	area will not be used.  Only save registers that tree-stdarg.c
11486	detected they need saving.
11487	(ix86_va_start): Don't set up fields that won't be used.
11488
11489	* config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
11490	va_list_{g,f}pr_counter_field.
11491	(setup_incoming_varargs): Don't do anything if reg_save
11492	area will not be used.  Only save registers that tree-stdarg.c
11493	detected they need saving.
11494	(rs6000_va_start): Don't set up fields that won't be used.
11495
11496	* config/alpha/alpha.c: Include tree-flow.h and tree-stdarg.h.
11497	(alpha_build_builtin_va_list): Initialize va_list_gpr_counter_field.
11498	(va_list_skip_additions, alpha_stdarg_optimize_hook): New functions.
11499	(TARGET_STDARG_OPTIMIZE_HOOK): Define.
11500
115012005-04-09  Jakub Jelinek  <jakub@redhat.com>
11502
11503	PR target/20795
11504	* config/i386/i386.c (construct_container): Pass empty aligned
11505	struct, union or class in memory.
11506
115072005-04-09  Kazu Hirata  <kazu@cs.umass.edu>
11508
11509	* dominance.c, gthr-win32.h, reg-stack.c, tree-ssa-copy.c,
11510	tree-ssa-operands.c, tree-ssa.c, tree-vrp.c, varasm.c,
11511	config/alpha/alpha.c, config/arm/arm.c, config/m32r/m32r.h,
11512	config/rs6000/predicates.md: Fix comment typos.
11513
11514	* sched-int.h (haifa_insn_data): Remove blockage and units.
11515	(INSN_UNIT, INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK,
11516	ENCODE_BLOCKAGE, UNIT_BLOCKED, BLOCKAGE_RANGE,
11517	MIN_BLOCKAGE_COST, MAX_BLOCKAGE_COST): Remove.
11518
115192005-04-09  Jan Hubicka  <jh@suse.cz>
11520	    Steven Bosscher  <stevenb@suse.de>
11521
11522	* cfglayout.c (copy_bbs): Rename n_edges to num_edges.
11523	* cfgloop.c (get_loop_exit_edges): Likewise.
11524	* cfgloopmanip.c (fix_irreducible_loops): Likewise.
11525	(unloop): Likewise.
11526	* loop-unroll.c (analyze_insns_in_loop): Likewise.
11527	* tree-cfg.c (dump_cfg_status): Likewise.
11528
115292005-04-09  David Edelsohn  <edelsohn@gnu.org>
11530
11531	* config/rs6000/predicates.md (altivec_register_operand): Remove
11532	redundant match_code test.
11533	(gpc_reg_operand): Same.
11534	(cc_reg_operand): Same.
11535	(cc_reg_not_cr0_operand): Same.
11536
115372005-04-09  Jan Hubicka  <jh@suse.cz>
11538
11539	Forgotten hunk from my last merge patch:
11540	* final.c (output_addr_const): Do not call mark_referenced.
11541
115422005-04-09  Andrew MacLeod  <amacleod@redhat.com>
11543
11544	* doc/tree-ssa.texi: Add immediate use documentation.
11545
115462005-04-09  Richard Earnshaw <richard.earnshaw@arm.com>
11547
11548	* arm.c (FL_WBUF): Define.
11549	(arm_tune_strongarm): Renamed from arm_is_strong.  All uses changed.
11550	(arm_is_6_or_7): Delete.
11551	(arm_tune_wbuf): New.
11552	(arm_override_options): Set arm_tune_wbuf.
11553	* arm.h (arm_tune_strongarm): Renamed from arm_is_strong.
11554	(arm_is_6_or_7): Delete declaration.
11555	(arm_tune_wbuf): New declartion.
11556	* arm.md (is_strongarm): Derive from arm_tune_strongarm.
11557	(model_wbuf): Derive from arm_tune_wbuf.
11558	* arm-cores.def (arm600, arm610, arm620, arm700, arm700i, arm710)
11559	(arm720, arm710c, arm7100, arm7500, arm7500fe, arm710t, arm720t)
11560	(arm740t): Mark CPUs as having a write buffer.
11561
115622005-04-09  Uros Bizjak  <uros@kss-loka.si>
11563
11564	* config/i386/i386.md (*fp_jcc_7_387): Use 'const0_operand' instead
11565	of 'const_double_operand' in operand 2 constraints.  Update enable
11566	condition.
11567
115682005-04-09  Uros Bizjak  <uros@kss-loka.si>
11569
11570	* builtins.def (BUILT_IN_LFLOOR, BUILT_IN_LFLOORF, BUILT_IN_LFLOORL)
11571	(BUILT_IN_LLFLOOR, BUILT_IN_LLFLOORF, BUILT_IN_LLFLOORL): New.
11572	* optabs.h (enum optab_index): Add new OTI_lfloor.
11573	(lfloor_optab): Define corresponding macro.
11574	* optabs.c (init_optabs): Initialize lfloor_optab.
11575	* genopinit.c (optabs): Implement lfloor_optab using lfloorsi2
11576	and lfloordi2 patterns.
11577	* builtins.c (expand_builtin_int_roundingfn): New prototype.
11578	(expand_builtin_int_roundingfn): New function.
11579	(fold_builtin_int_roundingfn): New prototype.
11580	(fold_builtin_int_roundingfn): New function, renamed from
11581	fold_builtin_lround.
11582	Handle BUILT_IN_LROUND{,F,L}, BUILT_IN_LLROUND{,F,L} and
11583	BUILT_IN_LFLOOR{,F,L}, BUILT_IN_LLFLOOR{,F,L}.
11584	(fold_builtin_1): Fold BUILT_IN_LFLOOR{,F,L} and
11585	BUILT_IN_LLFLOOR{,F,L} using fold_builtin_int_roundingfn.
11586	(mathfn_built_in): Handle BUILT_IN LFLOOR and BUILT_IN_LLFLOOR.
11587	(expand_builtin): Expand BUILT_IN_LFLOOR{,F,L} and
11588	BUILT_IN_LLFLOOR{,F,L} using expand_builtin_int_roundingfn.
11589	* convert.c (convert_to_integer): Convert (long int)floor{,f,l},
11590	into lfloor built-in function and (long long int)floor{,f,l} into
11591	llfloor built-in function.
11592	* fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LFLOOR and
11593	BUILT_IN_LLFLOOR.
11594
115952005-04-08  Ian Lance Taylor  <ian@airs.com>
11596
11597	* c-common.def: Move FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
11598	CONTINUE_STMT, and SWITCH_STMT to cp/cp-tree.def.
11599	* c-common.h (WHILE_COND, WHILE_BODY): Move to cp/cp-tree.h.
11600	(DO_COND, DO_BODY): Likewise.
11601	(FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Likewise.
11602	(SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Likewise.
11603	(c_common_stmt_codes): Remove FOR_STMT, WHILE_STMT, DO_STMT,
11604	BREAK_STMT, CONTINUE_STMT, and SWITCH_STMT.
11605	(build_continue_stmt, build_break_stmt): Don't declare.
11606	(c_do_switch_warnings): Update declaration.
11607	* c-gimplify.c (enum bc_t): Remove.
11608	(struct c_gimplify_ctx, ctxp): Remove.
11609	(push_context, pop_context): Remove static functions.
11610	(c_genericize): Don't call push_context or pop_context.
11611	(begin_bc_block, finish_bc_block): Remove static functions.
11612	(build_bc_goto): Likewise.
11613	(gimplify_c_loop): Likewise.
11614	(gimplify_for_stmt, gimplify_while_stmt): Likewise.
11615	(gimplify_do_stmt, gimplify_switch_stmt): Likewise.
11616	(c_gimplify_expr): Remove handling of FOR_STMT, WHILE_STMT,
11617	DO_STMT, SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
11618	* c-common.c (c_do_switch_warnings): Rename from
11619	c_do_switch_warnings_1.
11620	(c_do_switch_warnings) [old version]: Remove.
11621	(c_do_switch_expr_warnings): Remove.
11622	* c-typeck.c (c_finish_case): Call new c_do_switch_warnings
11623	function instead of c_do_switch_expr_warnings.
11624	* c-dump.c (c_dump_tree): Remove handling of BREAK_STMT,
11625	CONTINUE_STMT, DO_STMT, FOR_STMT, SWITCH_STMT, and WHILE_STMT.
11626	* c-pretty-print.c (pp_c_statement): Likewise.
11627	* c-semantics.c (build_break_stmt, build_continue_stmt): Remove.
11628
116292005-04-08  Devang Patel  <dpatel@apple.com>
11630
11631	* tree-if-conv.c (find_phi_replacement_condition): New parameter, loop.
11632	While selecting replacement condition pay attention to loop header.
11633
116342005-04-08  Diego Novillo  <dnovillo@redhat.com>
11635
11636	Merge from tree-cleanup-branch: VRP, store CCP, store
11637	    copy-prop, incremental SSA updating of FUD chains and
11638	    newly exposed symbols.
11639
11640	* Makefile.in (tree-ssa-copy.o): Depend on tree-ssa-propagate.h.
11641	(OBJS-common): Add tree-vrp.o.
11642	(tree-vrp.o): New rule.
11643	* basic-block.h (nearest_common_dominator_for_set): Declare.
11644	* common.opt (ftree-store-ccp): New flag.
11645	(ftree-copy-prop): New flag.
11646	(ftree-vrp): New flag.
11647	(ftree-store-copy-prop): New flag.
11648	* dominance.c (nearest_common_dominator_for_set): New.
11649	* domwalk.c (walk_dominator_tree): Only traverse
11650	statements in blocks marked in walk_data->interesting_blocks.
11651	* domwalk.h (struct dom_walk_data): Add field interesting_blocks.
11652	* fold-const.c (fold): Handle ASSERT_EXPR.
11653	* opts.c (decode_options): Set flag_tree_copy_prop at -O1.
11654	Set flag_tree_store_ccp, flag_tree_store_copy_prop and
11655	flag_tree_vrp at -O2.
11656	* timevar.def (TV_TREE_VRP): Define.
11657	(TV_TREE_COPY_PROP): Define.
11658	(TV_TREE_STORE_COPY_PROP): Define.
11659	(TV_TREE_SSA_INCREMENTAL): Define.
11660	(TV_TREE_STORE_CCP): Define.
11661	* tree-cfg.c (tree_can_merge_blocks_p): Remove reference
11662	to kill_redundant_phi_nodes from comment.
11663	(verify_expr): Handle ASSERT_EXPR.
11664	* tree-dfa.c (mark_new_vars_to_rename): Remove second
11665	argument.  Update all users.
11666	(mark_call_clobbered_vars_to_rename): Remove.  Update all
11667	users.
11668	* tree-flow-inline.h (unmodifiable_var_p): New.
11669	* tree-flow.h (enum value_range_type): Declare.
11670	(struct value_range_def): Declare.
11671	(value_range): Declare.
11672	(remove_all_phi_nodes_for): Remove.  Update all users.
11673	(find_phi_node_for): Declare.
11674	(add_type_alias): Declare.
11675	(count_uses_and_derefs): Declare.
11676	(kill_redundant_phi_nodes): Remove.
11677	(rewrite_into_ssa): Remove.
11678	(rewrite_def_def_chains): Remove.
11679	(update_ssa, register_new_name_mapping, create_new_def_for,
11680	need_ssa_update_p, name_registered_for_update_p,
11681	release_ssa_name_after_update_ssa, dump_repl_tbl,
11682	debug_repl_tbl, dump_names_replaced_by,
11683	debug_names_replaced_by, mark_sym_for_renaming,
11684	mark_set_for_renaming, get_current_def, set_current_def,
11685	get_value_range, dump_value_range, debug_value_range,
11686	dump_all_value_ranges, debug_all_value_ranges,
11687	expr_computes_nonzero, loop_depth_of_name,
11688	unmodifiable_var_p): Declare.
11689	* tree-gimple.c (is_gimple_formal_tmp_rhs): Handle
11690	ASSERT_EXPR.
11691	* tree-into-ssa.c (block_defs_stack): Update comment.
11692	(old_ssa_names, new_ssa_names, old_virtual_ssa_names,
11693	syms_to_rename, names_to_release, repl_tbl,
11694	need_to_initialize_update_ssa_p, need_to_update_vops_p,
11695	need_to_replace_names_p): New locals.
11696	(NAME_SETS_GROWTH_FACTOR): Define.
11697	(struct repl_map_d): Declare.
11698	(struct mark_def_sites_global_data): Add field
11699	interesting_blocks.
11700	(enum rewrite_mode): Declare.
11701	(REGISTER_DEFS_IN_THIS_STMT): Define.
11702	(compute_global_livein): Use last_basic_block instead of
11703	n_basic_blocks.
11704	(set_def_block): Remove last argument.  Update all callers.
11705	(prepare_use_operand_for_rename): Remove.  Update all callers.
11706	(prepare_def_operand_for_rename): Remove.  Update all callers.
11707	(symbol_marked_for_renaming): New.
11708	(is_old_name): New.
11709	(is_new_name): New.
11710	(repl_map_hash): New.
11711	(repl_map_eq): New.
11712	(repl_map_free): New.
11713	(names_replaced_by): New.
11714	(add_to_repl_tbl): New.
11715	(add_new_name_mapping): New.
11716	(mark_def_sites): Assume that all the operands in the
11717	statement are in normal form.
11718	(find_idf): Assert that the block in the stack is valid.
11719	(get_default_def_for): New.
11720	(insert_phi_nodes_for): Add new argument 'update_p'.
11721	Add documentation.
11722	If update_p is true, add a new mapping between the LHS of
11723	each new PHI and the name that it replaces.
11724	(insert_phi_nodes_1): Only call find_idf if needed.
11725	(get_reaching_def): Call get_default_def_for.
11726	(rewrite_operand): Remove.
11727	(rewrite_stmt): Do nothing if REGISTER_DEFS_IN_THIS_STMT
11728	and REWRITE_THIS_STMT are false.
11729	Assume that all the operands in the statement are in
11730	normal form.
11731	(rewrite_add_phi_arguments): Don't use PHI_REWRITTEN.
11732	(rewrite_virtual_phi_arguments): Remove.
11733	(invalidate_name_tags): Remove.
11734	(register_new_update_single, register_new_update_set,
11735	rewrite_update_init_block, replace_use,
11736	rewrite_update_fini_block, rewrite_update_stmt,
11737	rewrite_update_phi_arguments): New.
11738	rewrite_blocks): Remove argument 'fix_virtual_phis'.
11739	Add arguments 'entry', 'what' and 'blocks'.
11740	Initialize the dominator walker according to 'what' and
11741	'blocks'.
11742	Start the dominator walk at 'entry'.
11743	(mark_def_site_blocks): Add argument 'interesting_blocks'.
11744	Use it to configure the dominator walker.
11745	(rewrite_into_ssa): Remove argument 'all'.
11746	Make internal.
11747	(rewrite_all_into_ssa): Remove.
11748	(rewrite_def_def_chains): Remove.
11749	(mark_def_interesting, mark_use_interesting,
11750	prepare_phi_args_for_update, prepare_block_for_update,
11751	prepare_def_site_for, prepare_def_sites,
11752	dump_names_replaced_by, debug_names_replaced_by,
11753	dump_repl_tbl, debug_repl_tbl, init_update_ssa,
11754	delete_update_ssa, create_new_def_for,
11755	register_new_name_mapping, mark_sym_for_renaming,
11756	mark_set_for_renaming, need_ssa_update_p,
11757	name_registered_for_update_p, ssa_names_to_replace,
11758	release_ssa_name_after_update_ssa,
11759	insert_updated_phi_nodes_for, update_ssa): New.
11760	* tree-loop-linear.c (linear_transform_loops): Call
11761	update_ssa instead of rewrite_into_ssa.
11762	* tree-optimize.c (vars_to_rename): Remove.
11763	Update all users.
11764	(init_tree_optimization_passes): Replace
11765	pass_redundant_phi with pass_copy_prop.
11766	Add pass_vrp.
11767	Replace pass_ccp with pass_store_ccp.
11768	Add pass_store_copy_prop after pass_store_ccp.
11769	(execute_todo): If the TODO_ flags don't include updating
11770	the SSA form, assert that it does not need to be updated.
11771	Call update_ssa instead of rewrite_into_ssa and
11772	rewrite_def_def_chains.
11773	If TODO_verify_loops is set, call verify_loop_closed_ssa.
11774	(tree_rest_of_compilation):
11775	* tree-pass.h (TODO_dump_func, TODO_ggc_collect,
11776	TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts,
11777	TODO_cleanup_cfg): Renumber.
11778	(TODO_verify_loops, TODO_update_ssa,
11779	TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
11780	TODO_update_ssa_only_virtuals): Define.
11781	(pass_copy_prop, pass_store_ccp, pass_store_copy_prop, pass_vrp):
11782	Declare.
11783	* tree-phinodes.c (make_phi_node): Update documentation.
11784	(remove_all_phi_nodes_for): Remove.
11785	(find_phi_node_for): New.
11786	* tree-pretty-print.c (dump_generic_node): Handle ASSERT_EXPR.
11787	* tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Likewise.
11788	(interpret_rhs_modify_expr): Likewise.
11789	* tree-sra.c (decide_instantiations): Mark all symbols in
11790	SRA_CANDIDATES for renaming.
11791	(mark_all_v_defs_1): Rename from mark_all_v_defs.
11792	(mark_all_v_defs): New function.  Update all users to call it
11793	with the whole list of scalarized statements, not just the
11794	first one.
11795	* tree-ssa-alias.c (count_ptr_derefs): Make extern.
11796	(compute_flow_insensitive_aliasing): If the tag is
11797	unmodifiable and the variable isn't or vice-versa, don't
11798	make them alias of each other.
11799	(setup_pointers_and_addressables): If the type tag for
11800	VAR is about to change, mark the old one for renaming.
11801	(add_type_alias): New.
11802	* tree-ssa-ccp.c: Document SSA-CCP and STORE-CCP.
11803	(ccp_lattice_t): Rename from latticevalue.
11804	(value): Remove.  Update all users.
11805	(const_val): New local variable.
11806	(do_store_ccp): New local variable.
11807	(dump_lattice_value): Handle UNINITIALIZED.
11808	(debug_lattice_value): New.
11809	(get_default_value): Re-write.
11810	(set_lattice_value): Re-write.
11811	(def_to_varying): Remove.  Update all users.
11812	(likely_value): Return VARYING for statements that make
11813	stores when STORE_CCP is false.
11814	Return VARYING for any statement other than MODIFY_EXPR,
11815	COND_EXPR and SWITCH_EXPR.
11816	(ccp_initialize): Re-write.
11817	(replace_uses_in, replace_vuse_in, substitute_and_fold):
11818	Move to tree-ssa-propagate.c.
11819	(ccp_lattice_meet): Handle memory stores when
11820	DO_STORE_CCP is true.
11821	(ccp_visit_phi_node): Likewise.
11822	(ccp_fold): Likewise.
11823	(evaluate_stmt): Likewise.
11824	(visit_assignment): Likewise.
11825	(ccp_visit_stmt): Likewise.
11826	(execute_ssa_ccp): Add argument 'store_ccp'.  Copy it
11827	into DO_STORE_CCP.
11828	(do_ssa_ccp): New.
11829	(pass_ccp): Use it.
11830	(do_ssa_store_ccp): New.
11831	(gate_store_ccp): New.
11832	(pass_store_ccp): Declare.
11833	* tree-ssa-copy.c: Include tree-ssa-propagate.h.
11834	(may_propagate_copy): Reformat.
11835	Don't abort if ORIG is a virtual and DEST isn't.
11836	If NEW does not have alias information but DEST does,
11837	copy it.
11838	(copy_of, cached_last_copy_of, do_store_copy_prop, enum
11839	copy_prop_kind, which_copy_prop): Declare.
11840	(stmt_may_generate_copy, get_copy_of_val,
11841	get_last_copy_of, set_copy_of_val, dump_copy_of,
11842	copy_prop_visit_assignment, copy_prop_visit_cond_stmt,
11843	copy_prop_visit_stmt, copy_prop_visit_phi_node,
11844	init_copy_prop, fini_copy_prop, execute_copy_prop,
11845	gate_copy_prop, do_copy_prop, gate_store_copy_prop,
11846	store_copy_prop): New.
11847	(pass_copy_prop, pass_store_copy_prop): Declare.
11848	* tree-ssa-dom.c (struct opt_stats_d): Add fields
11849	'num_const_prop' and 'num_copy_prop'.
11850	(cprop_operand): Update them.
11851	(dump_dominator_optimization_stats): Dump them.
11852	(tree_ssa_dominator_optimize): Call update_ssa instead of
11853	rewrite_into_ssa.
11854	(loop_depth_of_name): Declare extern.
11855	(simplify_cond_and_lookup_avail_expr): Guard against NULL
11856	values for LOW or HIGH.
11857	(cprop_into_successor_phis): Only propagate if NEW != ORIG.
11858	(record_equivalences_from_stmt): Call expr_computes_nonzero.
11859	(cprop_operand): Only propagate if VAL != OP.
11860	* tree-ssa-dse.c (dse_optimize_stmt): Mark symbols in removed
11861	statement for renaming.
11862	* tree-ssa-loop-im.c (move_computations): Call update_ssa.
11863	* tree-ssa-loop-ivopts.c (rewrite_address_base): Call
11864	add_type_alias if necessary.
11865	Call mark_new_vars_to_rename.
11866	(tree_ssa_iv_optimize): If new symbols need to be renamed,
11867	mark every statement updated, call update_ssa and
11868	rewrite_into_loop_closed_ssa.
11869	* tree-ssa-loop-manip.c (add_exit_phis): Do not remove DEF_BB
11870	from LIVEIN if VAR is a virtual.
11871	* tree-ssa-loop.c (tree_loop_optimizer_init): Call update_ssa.
11872	* tree-ssa-operands.c (get_expr_operands): Handle ASSERT_EXPR.
11873	(get_call_expr_operands): Reformat statement.
11874	(add_stmt_operand): Don't create V_MAY_DEFs for read-only
11875	symbols.
11876	* tree-ssa-propagate.c (ssa_prop_init): Initialize
11877	SSA_NAME_VALUE for every name.
11878	(first_vdef, stmt_makes_single_load, stmt_makes_single_store,
11879	get_value_loaded_by): New.
11880	(replace_uses_in, replace_vuses_in, replace_phi_args_in,
11881	substitute_and_fold): Move from tree-ssa-ccp.c.
11882	* tree-ssa-propagate.h (struct prop_value_d, prop_value_t,
11883	first_vdef, stmt_makes_single_load, stmt_makes_single_store,
11884	get_value_loaded_by, replace_uses_in, substitute_and_fold):
11885	Declare.
11886	* tree-ssa.c (verify_use): Fix error message.
11887	(propagate_into_addr, replace_immediate_uses, get_eq_name,
11888	check_phi_redundancy, kill_redundant_phi_nodes,
11889	pass_redundant_phi): Remove.  Update all users.
11890	* tree-vect-transform.c (vect_create_data_ref_ptr): Call
11891	add_type_alias, if necessary.
11892	* tree-vectorizer.h (struct _stmt_vect_info): Update
11893	documentation for field 'memtag'.
11894	* tree-vrp.c: New file.
11895	* tree.def (ASSERT_EXPR): Define.
11896	* tree.h (ASSERT_EXPR_VAR): Define.
11897	(ASSERT_EXPR_COND): Define.
11898	(SSA_NAME_VALUE_RANGE): Define.
11899	(struct tree_ssa_name): Add field 'value_range'.
11900	(PHI_REWRITTEN): Remove.
11901	(struct tree_phi_node): Remove field 'rewritten'.
11902	* doc/invoke.texi (-fdump-tree-storeccp, -ftree-copy-prop,
11903	-ftree-store-copy-prop): Document.
11904	* doc/tree-ssa.texi: Remove broken link to McCAT's compiler.
11905	Document usage of update_ssa.
11906
119072005-04-08  David Edelsohn  <edelsohn@gnu.org>
11908
11909	PR target/20814
11910	* config/rs6000/predicates.md (altivec_register_operand): Accept
11911	SUBREG.
11912	(and64_operand): Do not limit CONST_INT to mask64_operand.
11913	(and64_2_operand): Do not limit CONST_INT to mask64_1or2_operand.
11914	(and_operand): Do not limit CONST_INT to mask_operand.
11915
119162005-04-09  Hans-Peter Nilsson  <hp@axis.com>
11917
11918	PR rtl-optimization/20466
11919	* flow.c (invalidate_mems_from_set): Handle a MEM by checking it
11920	for overlap of the address of each list member.
11921	(mark_set_1): Call invalidate_mems_from_set for MEMs too.
11922
119232005-04-08  Mike Stump  <mrs@apple.com>
11924
11925	* config/darwin.c (indirect_data): Fix typo in strncmp logic.
11926
11927	* config/rs6000/rs6000.c (rs6000_emit_prologue): Use 5 nops,
11928	instead of 4.
11929
119302005-04-08  Kazu Hirata  <kazu@cs.umass.edu>
11931
11932	* c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Remove.
11933
11934	* function.c (push_function_context_to): Don't set
11935	contains_functions.
11936	* function.h (function): Remove contains_functions.
11937	(current_function_contains_functions): Remove.
11938
11939	* function.h (function): Remove instrument_entry_exit.
11940	(current_function_instrument_entry_exit): Remove.
11941
11942	* function.h (nonlocal_labels): Remove.
11943
11944	* tree.h (STRIP_MAIN_TYPE_NOPS): Remove.
11945
11946	* genattrtab.c (attr_desc): Remove negative_ok and unsigned_p.
11947	(check_attr_value, write_attr_get, write_expr_attr_cache,
11948	find_attr, make_internal_attr): Don't reference negative_ok or
11949	unsigned_p.
11950	* genattrtab.h (ATTR_NEGATIVE_OK, ATTR_UNSIGNED,
11951	ATTR_FUNC_UNITS, ATTR_BLOCKAGE): Remove.
11952	(ATTR_STATIC): Adjust the value.
11953
11954	* c-common.h (C_ARTIFICIAL_STRING_P): Remove.
11955
119562005-04-08  Ulrich Weigand  <uweigand@de.ibm.com>
11957
11958	* config/s390/tpf.h (ASM_SPEC): Define.
11959
119602005-04-08  Kazu Hirata  <kazu@cs.umass.edu>
11961
11962	* tree-flow.h: Remove the prototype for
11963	redirect_immediate_uses.
11964	(TDFA_USE_OPS, TDFA_USE_VOPS): Remove.
11965
119662005-04-08  Richard Earnshaw  <richard.earnshaw@arm.com>
11967
11968	* arm.c (arm_const_double_by_parts): New function.
11969	* arm-protos.h (arm_const_double_by_parts): Add prototype.
11970	* arm.md (define_split for 64-bit constants): Add another one.
11971
119722005-04-08  Andrew MacLeod  <amacleod@redhat.com>
11973
11974	* tree-ssa-operands.c (correct_use_link): Remove linear scan.
11975
119762005-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11977
11978	* system.h: Revert last change.
11979
119802005-04-08  Richard Sandiford  <rsandifo@redhat.com>
11981
11982	* config/xtensa/xtensa.h (target_flags, MASK_NO_FUSED_MADD)
11983	(MASK_CONST16, TARGET_NO_FUSED_MADD, TARGET_CONST16)
11984	(TARGET_SWITCHES): Delete.
11985	* config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
11986	* config/xtensa/xtensa.md (muladdsf3, mulsubsf3): Check
11987	TARGET_FUSED_MADD instead of !TARGET_NO_FUSED_MADD.
11988	* config/xtensa/xtensa.opt: New file.
11989
119902005-04-08  Ben Elliston  <bje@au.ibm.com>
11991
11992	* config/fp-bit.c: Include L_mul_tf in #endif comment.
11993	* config/fp-bit.h: Tidy comments.
11994
119952005-04-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
11996
11997	* system.h: Poison PARAMS.
11998
119992005-04-07  Richard Sandiford  <rsandifo@redhat.com>
12000
12001	* config/vax/vax.h (target_flags, MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
12002	(MASK_G_FLOAT, TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT)
12003	(TARGET_SWITCHES): Delete.
12004	* config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
12005	* config/vax/vax.opt: New file.
12006
120072005-04-07  Daniel Berlin  <dberlin@dberlin.org>
12008
12009	* tree-ssa-dse.c (dse_optimize_stmt): Fix incorrect comment.
12010
120112005-04-07  Ian Lance Taylor  <ian@airs.com>
12012
12013	* config/iq2000/iq2000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Don't
12014	define.
12015	* config/mips/mips.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise.
12016	* config/sparc/sparc.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE):
12017	Likewise.
12018
120192005-04-07  Kazu Hirata  <kazu@cs.umass.edu>
12020
12021	* tree-ssa-sink.c (nearest_common_dominator_of_uses): Consider
12022	all immediate uses in PHI nodes.
12023
120242005-04-07  Richard Earnshaw  <richard.earnshaw@arm.com>
12025
12026	* arm.c (arm_const_double_inline_cost): Handle any constant by
12027	using gen_lowpart and gen_highpart_mode.
12028	(note_invalid_constants): All constants in an RTX with a constraint
12029	that permits memory are now pushed to the constant pool.
12030	(output_move_double): Delete code to handle reg to reg and
12031	constant to reg moves.
12032	(const_double_needs_minipool, output_mov_immediate): Delete.
12033	* arm.h (EXTRA_CONSTRAINT_STR_ARM): All 'D' variants now handle
12034	CONST_INT and CONST_VECTOR.
12035	* arm.md (ANY64): New mode macro.
12036	(arm_movdi): Split reg-reg and const-reg moves.  Simplify constraints.
12037	(movdf_soft_insn): Split reg-reg and const-reg moves.
12038	(split patterns for 64-bit constant and register moves): New.
12039	* cirrus.md (cirrus_arm_movdi): Split reg-reg and const-reg moves.
12040	(cirrus_movdf_hard_insn): Likewise.
12041	* fpa.md (movdf_fpa): Likewise.
12042	* iwmmxt.md (iwmmxt_arm_movdi): Likewise.
12043	(movv8qi_internal, movv4hi_internal, movv2si_internal): Fix
12044	constraints.
12045	(movv2si_internal_2): Likewise.
12046	* vfp.md (arm_movdi_vfp): Split reg-reg and const-reg moves.
12047	(movdf_vfp): Likewise.
12048	* arm-protos.h (output_mov_immediate): Delete prototype.
12049
120502005-04-07  Joseph S. Myers  <joseph@codesourcery.com>
12051
12052	PR target/20093
12053	* simplify-rtx.c (simplify_unary_operation_1): Check
12054	SUBREG_PROMOTED_UNSIGNED_P (op) > 0 for zero-extension.
12055
120562005-04-06  James E Wilson  <wilson@specifixinc.com>
12057
12058	PR target/20717
12059	* cgraphunit.c (record_call_1, case FDESC_EXPR): Handle same as
12060	ADDR_EXPR.
12061
120622004-04-06  Richard Sandiford  <rsandifo@redhat.com>
12063
12064	* coverage.h (GCOV_TYPE_NODE): Delete.
12065	* coverage.c (coverage_counter_alloc, tree_coverage_counter_ref)
12066	(build_ctr_info_type): Use get_gcov_type () instead of GCOV_TYPE_NODE.
12067	* tree-profile.c (tree_gen_edge_profiler, tree_gen_interval_profiler)
12068	(tree_gen_pow2_profiler, tree_gen_one_value_profiler): Likewise.
12069	* value-prof.c (tree_divmod_fixed_value_transform): Delete.
12070
120712004-04-06  Richard Sandiford  <rsandifo@redhat.com>
12072
12073	PR other/20792
12074	* Makefile.in (gcc.pot): Remove options.c dependency.
12075	* optc-gen.awk: Don't quote help strings with N_().
12076
120772005-04-06  James A. Morrison  <phython@gcc.gnu.org>
12078
12079	* c-common.c (handle_malloc_atttribute): Only set DECL_IS_MALLOC if
12080	the function returns a pointer type.
12081
120822005-04-06  Daniel Berlin  <dberlin@dberlin.org>
12083
12084	* params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): New
12085	* params.h (SALIAS_MAX_IMPLICIT_FIELDS): New
12086	* doc/invoke.texi: Documnet salias-max-implicit-fields.
12087	* tree-ssa-alias.c (struct used_part): Add implicit_uses and
12088	explicit_uses members.
12089	(get_or_create_used_part_for): Initialize new fields.
12090	(fieldoff_compare): New function.
12091	(create_overlap_variables_for): Count number of fields, use
12092	heuristic to determine whether to create subvars for vars with
12093	only implicit uses.
12094	Sort the field list by offset and avoid creating duplicate SFT's.
12095
120962005-04-06  Richard Sandiford  <rsandifo@redhat.com>
12097
12098	* c.opt (-F): Remove trailing whitespace from help string.
12099	(-finput-charset): Use a tab to separate the switch name and help
12100	string.
12101	* common.opt (-fsched-stalled-insns, -fsched-stalled-insns-dep)
12102	(-ftree-vectorizer-verbose): Likewise.
12103
121042005-04-06  Kazu Hirata  <kazu@cs.umass.edu>
12105
12106	* tree-ssa-sink.c (nearest_common_dominator_of_uses): Look at
12107	a PHI argument where a use occurs instead of all PHI arguments.
12108
121092005-04-06  Joseph S. Myers  <joseph@codesourcery.com>
12110
12111	* c-decl.c (finish_decl): Apply pending #pragma weak regardless of
12112	scope.
12113
121142005-04-06  Kazu Hirata  <kazu@cs.umass.edu>
12115
12116	* cse.c, tree-flow-inline.h, tree-flow.h, tree-ssa-operands.c,
12117	tree-ssa-sink.c, tree.h, config/bfin/bfin.c,
12118	config/bfin/bfin.h: Fix comment typos.
12119
121202005-04-06  Ranjit Mathew  <rmathew@hotmail.com>
12121
12122	* doc/install.texi: Update the URL for Jacks.
12123	* doc/sourcebuild.texi: Likewise.
12124
121252005-04-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
12126
12127	PR target/17245
12128	* config/sparc/sparc.c (legitimate_address_p): Remove 'imm2'.
12129	Revert 2004-10-08 patch.  Reject TFmode LO_SUM in 32-bit mode.
12130
121312005-04-06  Kelley Cook  <kcook@gcc.gnu.org>
12132
12133	* Makefile.in (LIBGCC2_CFLAGS): Revert -pipe change.
12134
121352005-04-06  Richard Sandiford  <rsandifo@redhat.com>
12136
12137	* config/v850/v850-protos.h (override_options): Delete.
12138	* config/v850/v850.h (target_flags, MASK_GHS, MASK_LONG_CALLS, MASK_EP)
12139	(MASK_PROLOG_FUNCTION, MASK_DEBUG, MASK_V850, MASK_V850E)
12140	(MASK_SMALL_SLD, MASK_BIG_SWITCH, MASK_NO_APP_REGS, MASK_DISABLE_CALLT)
12141	(MASK_STRICT_ALIGN, MASK_US_BIT_SET, MASK_US_MASK_SET, TARGET_GHS)
12142	(TARGET_LONG_CALLS, TARGET_EP, TARGET_PROLOG_FUNCTION, TARGET_V850)
12143	(TARGET_BIG_SWITCH, TARGET_DEBUG, TARGET_V850E, TARGET_US_BIT_SET)
12144	(TARGET_SMALL_SLD, TARGET_DISABLE_CALLT, TARGET_NO_APP_REGS)
12145	(TARGET_STRICT_ALIGN, TARGET_SWITCHES, TARGET_OPTIONS)
12146	(OVERRIDE_OPTIONS): Delete.
12147	(MASK_CPU): Redefine as MASK_V850 | MASK_V850E.
12148	(small_memory_info): Remove the value field.
12149	(CONDITIONAL_REGISTER_USAGE): Check !TARGET_APP_REGS rather than
12150	TARGET_NO_APP_REGS.
12151	* config/v850/v850.c (small_memory): Remove the value field.
12152	(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
12153	(override_options): Delete.
12154	(v850_handle_memory_option, v850_handle_option): New functions.
12155	* config/v850/v850.opt: New file.
12156
121572005-04-06  Geoffrey Keating  <geoffk@apple.com>
12158
12159	* config.host: Add a section for generic hosts, and a subsection
12160	for Darwin.  Add a case for x86-darwin.  Update ppc-darwin case.
12161	* config/host-darwin.c: New, split out of config/rs6000/host-darwin.c.
12162	* config/host-darwin.h: New.
12163	* config/x-darwin: New.
12164	* config/i386/host-i386-darwin.c: New.
12165	* config/i386/x-darwin: New.
12166	* config/rs6000/host-darwin.c: Include host-darwin.h.
12167	(darwin_rs6000_gt_pch_get_address): Move to config/host-darwin.c.
12168	(darwin_rs6000_gt_pch_use_address): Likewise.
12169	* config/rs6000/x-darwin: Change name of .o built, update
12170	dependencies for changes to rs6000/host-darwin.c.
12171
121722005-04-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
12173
12174	PR target/17824
12175	* config/c4x/c4x.h (ASM_PROG, LD_PROG): Remove.
12176
121772005-04-06  Dorit Naishlos  <dorit@il.ibm.com>
12178
12179	* tree-vect-analyze.c (vect_analyze_loop_form): Call
12180	split_loop_exit_edge instead of loop_split_edge_with.
12181
121822005-04-06  Paolo Bonzini  <bonzini@gnu.org>
12183
12184	* config/rs6000/altivec.md (UNSPEC_VSLW, UNSPEC_SUBS,
12185	UNSPEC_SET_VSCR): New constants, used throughout.
12186	(*andc3_v4sf): New.
12187	(altivec_vspltisb, altivec_vsplitish, altivec_vsplitisw):
12188	Replace with...
12189	(altivec_vspltis<VI_char>): ... this pattern, using
12190	a QImode const_int_operand for the immediate.
12191	(abs<mode>2, absv4sf2, altivec_abss_<mode>): Rewrite as
12192	define_expands.
12193
121942005-04-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
12195
12196	PR target/17822
12197	* config/avr/t-avr (AR_FOR_TARGET,RANLIB_FOR_TARGET): Remove.
12198
121992005-04-06  Kelley Cook  <kcook@gcc.gnu.org>
12200
12201	* Makefile.in (LIBGCC2_CFLAGS): Compile with -pipe.
12202
122032005-04-06  Ben Elliston  <bje@au.ibm.com>
12204
12205	* gcc.c: Correct comment about DEFAULT_SWITCH_TAKES_ARG and
12206	DEFAULT_WORD_SWITCH_TAKES_ARG which incorrectly reported these
12207	macros as living in "this file" and not gcc.h.
12208
122092005-04-06  Ben Elliston  <bje@au.ibm.com>
12210
12211	* doc/invoke.texi (Optimize Options): Mention -ftree-lrs, not
12212	-ftree-live_range_split.  Perhaps renamed at some point?
12213
122142005-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
12215
12216	PR target/20625
12217	* tree-ssa-loop-ivopts.c (generic_type_for): New function.
12218	(add_candidate_1): Use generic_type_for instead of unsigned_type_for.
12219
122202005-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
12221
12222	* tree-flow.h (number_of_iterations_cond): Declaration removed.
12223	* tree-ssa-loop-niter.c (number_of_iterations_cond): Made static.
12224	(number_of_iterations_special): New function.
12225	(number_of_iterations_exit): Use number_of_iterations_special.
12226	Use simplify_using_outer_evolutions only at -O3.
12227	(number_of_iterations_cond, tree_simplify_using_condition,
12228	simplify_using_initial_conditions, loop_niter_by_eval,
12229	compare_trees, can_count_iv_in_wider_type_bound,
12230	simplify_using_outer_evolutions): Use fold_build.
12231
122322005-04-05  Thomas Fitzsimmons  <fitzsim@redhat.com>
12233
12234	* doc/install.texi (Configuration): Document --with-java-home.
12235
122362005-04-05  Richard Henderson  <rth@redhat.com>
12237
12238	PR target/20342
12239	PR target/20447
12240	* config/i386/i386.c (print_operand): Handle vector zeros.
12241	(ix86_split_to_parts): Handle CONST_VECTOR.
12242	(ix86_hard_regno_mode_ok): Allow MMX modes in general regs.
12243	(ix86_modes_tieable_p): Use ix86_hard_regno_mode_ok to decide
12244	what modes to tie for MMX and SSE registers.
12245	* config/i386/i386.h (MMX_REG_MODE_P): Remove.
12246	* config/i386/i386.md: Extend move 0 -> xor peephole to apply
12247	to vector modes as well.
12248	* config/i386/predicates.md (const0_operand): Handle VOIDmode
12249	properly as an input mode.
12250
122512005-04-05  Andrew MacLeod  <amacleod@redhat.com>
12252
12253	* tree-ssa-operands.c (verify_abort): Use %p for pointers.
12254
122552005-04-05  Andrew MacLeod  <amacleod@redhat.com>
12256
12257	* tree-pretty-print.c (dump_generic_node): Use %p for pointer.
12258
122592005-04-05  Jakub Jelinek  <jakub@redhat.com>
12260
12261	* config/i386/i386.c (init_cumulative_args): For -m32 -mfpmath=sse
12262	and local functions, set sse_nregs to 8 and float_in_sse.
12263	(function_arg_advance, function_arg): If float_in_sse, pass
12264	SFmode and DFmode arguments in SSE registers.
12265	* config/i386/i386.h (CUMULATIVE_ARGS): Add float_in_sse field.
12266
12267	* config/i386/i386.c (ix86_value_regno): Only optimize local functions
12268	of -funit-at-a-time.
12269
122702005-04-05  Paolo Bonzini  <bonzini@gnu.org>
12271
12272	* config/i386/i386-protos.h (ix86_function_value): Accept two
12273	arguments, like the target macro.
12274	* config/i386/i386.h (FUNCTION_VALUE): Pass both arguments.
12275	* config/i386/i386.c (ix86_function_value): Accept the second
12276	argument of the target macro.
12277	(ix86_function_ok_for_sibcall): Pass a function pointer to
12278	ix86_function_value.
12279	(ix86_function_value, ix86_libcall_value) [!TARGET_64BIT]: Adjust
12280	call to ix86_value_regno).
12281	(ix86_value_regno): Add support for returning floating point values
12282	in SSE registers.
12283
122842005-04-05  Jakub Jelinek  <jakub@redhat.com>
12285
12286	PR tree-optimization/20076
12287	* tree-inline.c (inline_forbidden_p_1): Prevent inlining functions
12288	that call __builtin_return or __builtin_apply_args.
12289
122902005-04-05  Andrew MacLeod  <amacleod@redhat.com>
12291
12292	* lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use update_stmt.
12293	Use immediate use iterator.
12294	(stmt_is_bumper_for_loop): Use immediate use iterator.
12295	* predict.c (strip_builtin_expect): Use update_stmt.
12296	* tree-cfg.c (update_modified_stmts): New. Call update_stmt_if_modified
12297	on all elements of a STATEMENT_LIST.
12298	(bsi_insert_before, bsi_insert_after): Call update_modified_stmts.
12299	(bsi_remove): Remove imm_use links and mark the stmt as modified.
12300	(bsi_replace): Mark stmt as modified and the update it.
12301	* tree-complex.c (update_complex_assignment): Call mark_stmt_modified.
12302	(expand_complex_libcal): Call update_stmt.
12303	(expand_complex_comparison): Call mark_stmt_modified.
12304	(expand_complex_operations_1): Call update_stmt_if_modified.
12305	(expand_vector_operations_1): Call mark_stmt_modified.
12306	* tree-dfa.c (compute_immediate_uses, free_df_for_stmt, free_df,
12307	compute_immediate_uses_for_phi, compute_immediate_uses_for_stmt,
12308	add_immediate_use, redirect_immediate_use,
12309	redirect_immediate_uses, dump_immediate_uses, debug_immediate_uses,
12310	dump_immediate_uses_for, debug_immediate_uses_for): Delete.
12311	(mark_new_vars_to_rename): Call update_stmt.
12312	* tree-dump.c (dump_option_value_in): Add "stmtaddr".
12313	* tree-flow-inline.h (modify_stmt): Rename to mark_stmt_modified.
12314	Ignore PHI nodes.
12315	(unmodify_stmt): Delete.
12316	(update_stmt): New.  Force an update of a stmt.
12317	(update_stmt_if_modified): update a stmt if it is out of date.
12318	(get_stmt_operands): Verify stmt is NOT modified.
12319	(stmt_modified_p): Update comment.
12320	(delink_imm_use): Remove a use node from its immuse list.
12321	(link_imm_use_to_list): Link a use node to a specific list.
12322	(link_imm_use): Link a node to the correct list.
12323	(set_ssa_use_from_ptr): Set a use node to a specific value, and insert
12324	it in the correct list, if appropriate.
12325	(link_imm_use_stmt): Link a use node, and set the stmt pointer.
12326	(relink_imm_use): Link a use node in place of another node in a list.
12327	(relink_imm_use_stmt): LInk a node in place of another node, and set
12328	the stmt pointer.
12329	(end_safe_imm_use_traverse): New.  Terminate a safe immuse iterator.
12330	(end_safe_imm_use_p): New.  Check for the end of a safe immuse iterator.
12331	(first_safe_imm_use): New.  Initialize a safe immuse iterator.
12332	(next_safe_imm_use): New.  Proceed to next safe immuse iterator value.
12333	(end_readonly_imm_use_p): New.  Check for end of a fast immuse iterator.
12334	(first_readonly_imm_use): New.  Initialize a fast immuse iterator.
12335	(next_readonly_imm_use): New.  Get the next fast immuse iterator value.
12336	(has_zero_uses): New.  Return true if there are no uses of a var.
12337	(has_single_use): New.  Return true if there is only a single use of a
12338	variable.
12339	(single_imm_use): New.  Return the simgle immediate use.
12340	(num_imm_uses): New.  Return the number of immediate uses.
12341	(get_v_must_def_ops): Use is now a pointer.
12342	(use_operand_p, get_v_may_def_op_ptr, get_vuse_op_ptr,
12343	get_v_must_def_kill_ptr, get_phi_arg_def_ptr): Return the address of
12344	the use node.
12345	(get_immediate_uses, num_immediate_uses, immediate_use): Delete.
12346	(delink_stmt_imm_use): Delink all immuses from a stmt.
12347	(phi_arg_index_from_use): New.  Return a phi arg index for a use.
12348	* tree-flow.h (struct dataflow_d): Delete.
12349	(immediate_use_iterator_d): New.  Immediate use iterator struct.
12350	(FOR_EACH_IMM_USE_FAST): New.  Macro for read only immuse iteration.
12351	(FOR_EACH_IMM_USE_SAFE): New.  Macro for write-safe immuse iteration.
12352	(BREAK_FROM_SAFE_IMM_USE): New.  Macro for earlyu exit from write-safe
12353	iteration.
12354	(struct stmt_ann_d): Remove dataflow_t from struct.
12355	* tree-if-conv.c (tree_if_conversion).  Don't call free_df.
12356	(if_convertible_phi_p): Use FAST immuse iterator.
12357	(if_convertible_loop_p): Don't call compute_immediate_uses.
12358	(replace_phi_with_cond_modify_expr): Call update_stmt.
12359	* tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites): Call
12360	update_stmt_if_modified.
12361	(rewrite_all_into_ssa): Initialize ssa operands.
12362	* tree-loop-linear.c (linear_transform_loops): Don't call free_df or
12363	compute_immediate_uses.
12364	* tree-optimize.c (execute_todo): Call verify_ssa whenever the
12365	ssa_property is available.
12366	(execute_one_pass):  Change parameters passed to execute_todo.
12367	* tree-outof-ssa.c (rewrite_trees): Don't call modify_stmt.
12368	(remove_ssa_form): Call fini_ssa_operands.
12369	(insert_backedge_copies): Delete call to modify_stmt.
12370	* tree-phinodes.c (make_phi_node): Initialize use nodes.
12371	(release_phi_node): Delink any use nodes before releasing.
12372	(resize_phi_node): Relink any use nodes.
12373	(remove_phi_arg_num): Delink the use node.
12374	(remove_phi_node): Release the ssa_name AFTER releasing the phi node.
12375	(remove_all_phi_nodes_for): Release phi node first.
12376	* tree-pretty-print.c (dump_generic_node): Print stmt address.
12377	* tree-sra.c (mark_all_v_defs): Call update_stmt_if_modified.
12378	(scalarize_use, scalarize_copy): Call update_stmt.
12379	* tree-ssa-alias.c (compute_may_aliases): Update all modified stmts.
12380	(compute_points_to_and_addr_escape): Call mark_stmt_modified.
12381	* tree-ssa-cpp.c (need_imm_uses_for): Delete.
12382	(ccp_initialize): Remove call to compute_immediate_uses.
12383	(substitute_and_fold, execute_fold_all_builtins): Call update_stmt.
12384	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Update all modified
12385	stmts.
12386	(simplify_cond_and_lookup_avail_expr): Call mark_stmt_modified.
12387	(simplify_switch_and_lookup_avail_expr): Call mark_stmt_modified.
12388	(eliminate_redundant_computations): Call mark_stmt_modified.
12389	(cprop_operand): Call mark_stmt_modified.
12390	(optimize_stmt): Call update_stmt_if_modified and mark_stmt_modified.
12391	* tree-ssa-dse.c (fix_phi_uses, fix_stmt_v_may_defs): Delete.
12392	(dse_optimize_stmt): Use new immuse interface.
12393	(tree_ssa_dse): Remove calls to compute_immediate_uses and free_df.
12394	* tree-ssa-forwprop.c (need_imm_uses_for): Delete.
12395	(substitute_single_use_vars): Use new immuse interface.
12396	(tree_ssa_forward_propagate_single_use_vars): Remove calls to free_df
12397	and compute_immediate_uses.
12398	* tree-ssa-loop-im.c (single_reachable_address): Use new immuse
12399	interface.
12400	(rewrite_mem_refs): Call update_stmt.
12401	(determine_lsm): Remove call to compute_imm_uses and free_df.
12402	* tree-ssa-loop-ivcanon.c (create_canonical_iv): Call update_stmt.
12403	(try_unroll_loop_completely): Call update_stmt.
12404	* tree-ssa-loop-ivopts.c (rewrite_address_base): Call update_stmt.
12405	(rewrite_use_compare): Call update_stmt.
12406	(compute_phi_arg_on_exit): Insert each stmt before trying to process.
12407	(rewrite_use) : Call update_stmt.
12408	* tree-ssa-loop-manip.c (verify_loop_closed_ssa): Add arg to call.
12409	* tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Call
12410	update_stmt.
12411	* tree-ssa-operands.c (NULL_USE_OPERAND_P): Remove declaration.
12412	(allocate_use_optype, allocate_vuse_optype): Adjust allocation size.
12413	(free_uses, free_vuses, free_v_may_defs, free_v_must_defs): Delink
12414	use nodes.
12415	(initialize_vuse_operand): New.  Initialize a vuse operand.
12416	(initialize_v_may_def_operand): New.  Initialize a maydef operand.
12417	(initialize_v_must_def_operand): New.  Initialize a mustdef operand.
12418	(finalize_ssa_defs): Use stmt parameter.
12419	(correct_use_link): Ensure a use node is in the correct list, and has
12420	the correct stmt pointer.
12421	(finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_vuses,
12422	finalize_ssa_v_must_defs): Also initialize use nodes.
12423	(finalize_ssa_stmt_operands): Pass extra stmt operands.
12424	(build_ssa_operands): Seperate parsing from final operand construction.
12425	(parse_ssa_operands): New.  Parse entry point for operand building.
12426	(swap_tree_operands): New.  Swap 2 tree operands.
12427	(update_stmt_operands): Ranamed from get_stmt_operands.  Always builds
12428	operands.
12429	(get_expr_operands): Call swap_tree_operands when needed.
12430	(copy_virtual_operands): Use initialize routines for virtual use ops.
12431	(create_ssa_artficial_load_stmt): Add extra stmt parameter.
12432	(verify_abort): New.  Issue imm_use error.
12433	(verify_imm_links): New Verify imm_use links for a var.
12434	(dump_immediate_uses_for): New.  Dump imm_uses for a var to file.
12435	(dump_immediate_uses): New.  Dump imm_uses for all vars to file.
12436	(debug_immediate_uses): New.  Dump imm_uses for all vars to stderr.
12437	(debug_immediate_uses_for): New.  Dump imm_uses for a var to stderr.
12438	* tree-ssa-operands.h (struct use_operand_ptr): Delete.
12439	(NULL_USE_OPERAND_P) Define.
12440	(use_optype_d, v_def_use_operand_type, vuse_optype_d): Add immediate
12441	use node.
12442	(struct vuse_operand_type): New struct.
12443	(SET_USE): Call set_ssa_use_from_ptr.
12444	(USE_STMT): Define.
12445	(PHI_ARG_INDEX_FROM_USE): Define.
12446	* tree-ssa-phiopt.c (replace_phi_edge_with_variable): Set the phi
12447	argument via SET_USE, not PHI_ARG_DEF_TREE.
12448	* tree-ssa-pre.c (eliminate): Call update_stmt.
12449	* tree-ssa-propagate.c (cfg_blocks_get): Use imm_use iterators.  Don't
12450	call free_df.
12451	* tree-ssa-sink.c (all_immediate_uses_same_place): Use imm_use iterator.
12452	(nearest_common_dominator_of_uses): Use imm_use iterator.
12453	(statement_sink_location): Use imm_use iterator and interface.
12454	(execute_sink_code): Don't call compute_immediate_uses or free-df.
12455	* tree-ssa-threadupdate.c (create_edge_and_update_destination_phis): Use
12456	PHI_ARG_DEF, not PHI_ARG_DEF_TREE.
12457	* tree-ssa.c (verify_use, verify_phi_args): Verify some imm_use info.
12458	(verify_ssa): Ensure no stmt is marked modify after optimization pass
12459	if new parameter is true.
12460	(init_tree_ssa): Don't initialize operand cache here.
12461	(delete_tree_ssa): Don't destroy operand cache here.
12462	(propagate_into_addr): Pass in a use pointer, return true if anything
12463	was changed.
12464	(replace_immediate_uses): Use imm_use iterator, call update_stmt.
12465	(check_phi_redundancy): Use imm_use iterator.
12466	(kill_redundant_phi_nodes): Don't call compute_immediate_uses or
12467	free_df.
12468	* tree-ssanames.c (make_ssa_name): Initialize imm_use node.
12469	(release_ssa_name): Delink node and all elements in its imm_use list.
12470	* tree-tailcall.c (adjust_return_value): Call update_stmt.
12471	* tree-vect-analyze.c (vect_stmt_relevant_p): Use imm_use iterator.
12472	* tree-vectorizer.c (need_imm_uses_for): Delete.
12473	(vectorize_loops): Dont call compute_immediate_uses or free_df.
12474	* tree.h (struct ssa_imm_use_d): Define.
12475	(SSA_NAME_IMM_USE_NODE): Define.
12476	(struct tree_ssa_name): Add imm_use node.
12477	(PHI_DF): Delete.
12478	(PHI_ARG_IMM_USE_NODE): Define.
12479	(struct phi_arg_d): Add imm_use node.
12480	(struct tree_phi_node): Remove struct dataflow_d element.
12481	(TDF_STMTADDR): Define.
12482
124832005-04-05  Dale Johannesen  <dalej@apple.com>
12484
12485	* doc/invoke.texi (Optimization Options):  Remove
12486	duplicate -fcse-follow-jumps.  Add -fweb.
12487	(-ftree-lim):  Fix spelling (-ftree-loop-im, invariants).
12488	(-fivcanon):  Fix spelling (-ftree-loop-ivcanon).
12489
124902005-04-05  Per Bothner  <per@bothner.com>
12491
12492	* tree-ssa.c (execute_early_warn_uninitialized): Pass context node
12493	to talk_tree as 'data' parameter, rather than EXPR_LOCUS.
12494	(warn_uninit): Get EXPR_LOCUS from context now instead.
12495	This fixes a USE_MAPPED_LOCATION testsuite failure.
12496
12497	* tree-ssa.c (warn_uninitialized_var): Remove useless local.
12498
124992005-04-05  Per Bothner  <per@bothner.com>
12500
12501	* c-decl.c (finish_function): If USE_MAPPED_LOCATION set the location
12502	of the artification 'return 0' in main() to BUILTINS_LOCATION.
12503	* tree-cfg.c (remove_bb): Check that location isn't BUILTINS_LOCATION
12504	before warning.
12505
125062004-04-05  Devang Patel  <dpatel@apple.com>
12507
12508	* config/rs600/altivec.md (altivec_vsr<VI_char>): Rename to ..
12509	(lhsr<mode>3): ... new name.
12510	(altivec_vsra<VI_char>): Rename to ..
12511	(ashr<mode>3): ... new name.
12512	* config/rs6000/rs6000.c (builtin_description): Rename shift
12513	operations.
12514
125152004-04-05  Paolo Bonzini  <bonzini@gnu.org>
12516
12517	* combine.c (RTL_HOOKS_GEN_LOWPART_NO_EMIT): Use
12518	gen_lowpart_for_combine.
12519	* cse.c (gen_lowpart_if_possible): Move...
12520	* rtlhooks.c (gen_lowpart_if_possible): ... here.  Also try
12521	gen_lowpart_SUBREG.
12522	(gen_lowpart_no_emit_general): Use it.
12523
125242005-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
12525
12526	* config/sparc/sparc.c (TARGET_ASM_FILE_END): Undefine before
12527	overriding.
12528
125292005-04-05  Paolo Bonzini  <bonzini@gnu.org>
12530
12531	* system.h: Fix typo.
12532
125332005-04-05  Bernd Schmidt  <bernd.schmidt@analog.com>
12534
12535	* config/bfin/bfin-modes.def: New file.
12536	* config/bfin/bfin-protos.h: New file.
12537	* config/bfin/bfin.c: New file.
12538	* config/bfin/bfin.h: New file.
12539	* config/bfin/bfin.md: New file.
12540	* config/bfin/bfin.opt: New file.
12541	* config/bfin/crti.s: New file.
12542	* config/bfin/crtn.s: New file.
12543	* config/bfin/elf.h: New file.
12544	* config/bfin/lib1funcs.asm: New file.
12545	* config/bfin/predicates.md: New file.
12546	* config/bfin/t-bfin: New file.
12547	* config/bfin/t-bfin-elf: New file.
12548	* doc/extend.texi (exception_handler, kspisusp, nesting, nmi_handler):
12549	Document new attributes.
12550	(interrupt, interrupt_handler, saveall): Update documentation for
12551	these attributes.
12552	* doc/install.texi (Specific): Add entry for the Blackfin.
12553	* doc/invoke.texi (Blackfin Options): New section.
12554	* doc/md.texi (Blackfin family): New section to document constraints.
12555	* config.gcc: Add bfin*-* and bfin*-elf configurations.
12556
125572005-04-05  Olivier Hainque  <hainque@adacore.com>
12558
12559	* config/mips/iris6.h (DWARF_FRAME_RETURN_COLUMN): Redefine to
12560	match what the system unwinder expects.
12561	* config/mips/mips.c (mips_frame_set): If we're saving the return
12562	address register and the dwarf return address column number differs
12563	from the hard register number, adjust the note reg to refer to the
12564	former.
12565
125662004-04-05  Richard Sandiford  <rsandifo@redhat.com>
12567
12568	* config/mn10300/mn10300-protos.h (mn10300_override_options): Declare.
12569	* config/mn10300/mn10300.h (target_flags, TARGET_MULT_BUG)
12570	(TARGET_SWITCHES, TARGET_DEFAULT): Delete.
12571	(processor_type): New enum.
12572	(mn10300_processor): New variable.
12573	(TARGET_AM33, TARGET_AM33_2): Redefine in terms of mn10300_processor.
12574	(PROCESSOR_DEFAULT, OVERRIDE_OPTIONS): New macros.
12575	* config/mn10300/linux.h (TARGET_SWITCHES, TARGET_DEFAULT): Delete.
12576	(PROCESSOR_DEFAULT): New macro.
12577	* config/mn10300/mn10300.c (mn10300_processor): New variable.
12578	(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
12579	(mn10300_handle_option, mn10300_override_options): New functions.
12580	* config/mn10300/mn10300.opt: New file.
12581
125822005-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
12583	    Sebastian Pop <sebastian.pop@cri.ensmp.fr>
12584
12585	PR tree-optimization/19903
12586	* tree-chrec.c (chrec_convert): Return chrec_dont_know for constants
12587	that don't fit in their type after conversion.
12588
125892005-04-05  Uros Bizjak <uros@kss-loka.si>
12590
12591	PR target/20421
12592	* config/i386/i386.md (frndintxf2_floor, frndintxf2_ceil)
12593	(frndintxf2_trunc, frndintxf2_mask_pm): Add FLAGS_REG clobber.
12594	Allocate local stack slots here.  Set ix86_optimize_mode_switching.
12595	flag here. Implement using define_insn_and_split.
12596	(frndintxf2_floor_i387, frndintxf2_ceil_i387, frndintxf2_trunc_i387)
12597	(frndintxf2_mask_pm_i387): New insn patterns.
12598	(floorsf2, floordf2, floorxf2): Remove local stack slot allocations.
12599	Do not set ix86_optimize_mode_switching flag.
12600	(ceilsf2, ceildf2, ceilxf2): Same.
12601	(btruncsf2, btruncdf2, btruncxf2): Same.
12602	(nearbyintsf2, nearbyintdf2, nearbyintxf2): Same.
12603
126042005-04-05  Ian Lance Taylor  <ian@airs.com>
12605
12606	PR debug/9963
12607	* config/i386/cygming.h (ASM_OUTPUT_EXTERNAL): Pass DECL to
12608	i386_pe_record_external_function.
12609	(i386_pe_record_external_function): Update declaration.
12610	* config/i386/winnt.c (struct extern_list): Add decl field.
12611	(i386_pe_record_external_function): Add decl parameter.
12612	(i386_pe_file_end): Check TREE_ASM_WRITTEN on decl, not
12613	identifier.
12614	* config/i386/i386-protos.h (i386_pe_record_external_function):
12615	Update declaration.
12616
126172005-04-05  Kazu Hirata  <kazu@cs.umass.edu>
12618
12619	* config/m68k/m68k-protos.h: Add a prototype for
12620	valid_dbcc_comparison_p_2.
12621	* config/m68k/m68k.c (not_sp_operand, symbolic_operand,
12622	extend_operator, const_uint32_operand, const_sint32_operand,
12623	general_src_operand, nonimmediate_src_operand,
12624	memory_src_operand, post_inc_operand, pre_dec_operand,
12625	pcrel_address): Move to predicates to predicates.md.
12626	* config/m68k/m68k.h (PREDICATE_CODES): Remove.
12627	* config/m68k/m68k.md: Include predicates.md.
12628	* config/m68k/predicates.md: New.
12629
126302005-04-04  Roger Sayle  <roger@eyesopen.com>
12631
12632	* config/i386/i386.md (*truncdfsf2_i387_1): New pattern.
12633
12634	* fold-const.c (maybe_lvalue_p): Delete orphaned comment.
12635
126362005-04-04  Ian Lance Taylor  <ian@airs.com>
12637
12638	* c-typeck.c (struct c_switch): Rename switch_stmt field to
12639	switch_expr.
12640	(c_start_case): Build SWITCH_EXPR, not SWITCH_STMT.
12641	(do_case): Use SWITCH_COND rather than SWITCH_STMT_COND.
12642	(c_finish_case): Use SWITCH_BODY rather than SWITCH_STMT_BODY.
12643	Call c_do_switch_expr_warnings rather than c_do_switch_warnings.
12644	* c-common.c (c_do_switch_warnings_1): New static function broken
12645	out of c_do_switch_warnings.
12646	(c_do_switch_warnings): Call c_do_switch_warnings_1.
12647	(c_do_switch_expr_warnings): New function.
12648	* c-common.h (c_do_switch_expr_warnings): Declare.
12649
126502005-04-04  David Edelsohn  <edelsohn@gnu.org>
12651	    Daniel Jacobowitz  <dan@codesourcery.com>
12652
12653	* tree-eh.c (tree_could_trap_p): Allow non-constant floating point
12654	trapping divide.
12655	* rtlanal.c (may_trap_p): Same.
12656
126572005-04-04  Dale Johannesen  <dalej@apple.com>
12658
12659	* ChangeLog:  remove reference to ChangeLog.12.
12660
126612005-04-05  Hans-Peter Nilsson  <hp@axis.com>
12662
12663	CRIS epilogue as RTL.
12664	* config/cris/cris.md: Change all 0 in unspec 0 to
12665	CRIS_UNSPEC_PLT.
12666	(CRIS_UNSPEC_PLT, CRIS_UNSPEC_FRAME_DEALLOC): New constants.
12667	("*cris_load_multiple", "cris_frame_deallocated_barrier"): New
12668	patterns.
12669	("return"): Change to define_expand.  Call cris_expand_return for
12670	actual expansion.
12671	("*return_expanded"): New pattern.
12672	("epilogue"): New define_expand.
12673	* config/cris/cris.h (PREDICATE_CODES): Add
12674	cris_load_multiple_op.
12675	* config/cris/cris.c (ASSERT_PLT_UNSPEC): Correct test for unspec
12676	type.
12677	(enum cris_retinsn_type): New.
12678	(struct machine_function): New member return_type.
12679	(TARGET_ASM_FUNCTION_EPILOGUE): Don't override.
12680	(cris_target_asm_function_epilogue): Remove, moving RTLified
12681	contents to...
12682	(cris_expand_epilogue): New function.
12683	(cris_reg_saved_in_regsave_area, cris_movem_load_rest_p,
12684	(cris_gen_movem_load, cris_load_multiple_op)
12685	(cris_return_address_on_stack_for_return, cris_expand_return): New
12686	functions.
12687	(cris_target_asm_function_prologue)
12688	(cris_initial_frame_pointer_offset): Call
12689	cris_reg_saved_in_regsave_area instead of complicated expression.
12690	Call cris_return_address_on_stack instead of an expression.
12691	(cris_print_operand) <case 'o', case 'O'>: New cases.
12692	(cris_return_address_on_stack): Change return-type to bool.
12693	(cris_simple_epilogue): Ditto.  Return false if registers are
12694	saved.
12695	* config/cris/cris-protos.h (cris_simple_epilogue)
12696	(cris_return_address_on_stack): Adjust prototype return type.
12697	(cris_gen_movem_load, cris_expand_epilogue, cris_expand_return)
12698	(cris_return_address_on_stack_for_return): New prototypes.
12699
127002005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
12701
12702	* config/frv/frv.h (PREDICATE_CODES): Add CONST to
12703	gpr_or_int12_operand.
12704
12705	* config/frv/frv-protos.h: Add a prototype to
12706	frv_legitimate_memory_operand and frv_const_unspec_p.
12707	(frv_unspec): Move from frv.c.
12708	* config/frv/frv.c (frv_unspec): Move to frv-protos.h.
12709	(frv_const_unspec_p, frv_legitimate_memory_operand_): Export.
12710	(ldd_address_operand, fdpic_fptr_operand, frv_load_operand,
12711	gpr_or_fpr_operand, gpr_or_int12_operand,
12712	gpr_fpr_or_int12_operand, fpr_or_int6_operand,
12713	gpr_or_int10_operand, gpr_or_int_operand, int12_operand,
12714	int6_operand, int5_operand, uint5_operand, uint4_operand,
12715	uint1_operand, int_2word_operand, uint16_operand,
12716	upper_int16_operand, integer_register_operand,
12717	gpr_no_subreg_operand, fpr_operand, even_reg_operand,
12718	odd_reg_operand, even_gpr_operand, odd_gpr_operand,
12719	quad_fpr_operand, even_fpr_operand, odd_fpr_operand,
12720	dbl_memory_one_insn_operand, dbl_memory_two_insn_operand,
12721	move_destination_operand, movcc_fp_destination_operand,
12722	frv_function_symbol_referenced_p, move_source_operand,
12723	condexec_dest_operand, condexec_source_operand,
12724	reg_or_0_operand, lr_operand, fdpic_operand, got12_operand,
12725	const_unspec_operand, gpr_or_memory_operand,
12726	gpr_or_memory_operand_with_scratch, fpr_or_memory_operand,
12727	icc_operand, fcc_operand, cc_operand, icr_operand,
12728	fcr_operand, cr_operand, call_operand, sibcall_operand,
12729	symbolic_operand, relational_operator,
12730	integer_relational_operator, float_relational_operator,
12731	ccr_eqne_operator, minmax_operator,
12732	condexec_si_binary_operator, condexec_si_media_operator,
12733	condexec_si_divide_operator, condexec_si_unary_operator,
12734	condexec_sf_conv_operator, condexec_sf_add_operator,
12735	condexec_memory_operand, intop_compare_operator, acc_operand,
12736	even_acc_operand, quad_acc_operand, accg_operand: Move to
12737	predicates.md.
12738	* config/frv/frv.h (PREDICATE_CODES): Remove.
12739	* config/frv/frv.md: Include predicates.md.
12740	* config/frv/predicates.md: New.
12741
127422004-04-04  Richard Sandiford  <rsandifo@redhat.com>
12743
12744	PR target/19537
12745	* Makefile.in (tree-ssa-loop-ivopts.o): Depend on langhooks.h.
12746	* tree-ssa-loop-ivopts.c: Include langhooks.h.
12747	(add_standard_iv_candidates_for_size): New function, extracting code
12748	from add_standard_iv_candidates and parameterizing it by type size.
12749	(add_standard_iv_candidates): Use add_standard_iv_candidates_for_size.
12750
127512004-04-04  Richard Sandiford  <rsandifo@redhat.com>
12752
12753	* system.h (GCOV_SIZE_TYPE): Unposion.
12754	* gcov-io.h (GCOV_TYPE_NODE): Delete, replacing with...
12755	(GCOV_TYPE_SIZE): ...this new macro.
12756	* coverage.h (get_gcov_type, GCOV_TYPE_NODE): Declare.
12757	* coverage.c (get_gcov_type, get_gcov_unsigned_t): New functions.
12758	(rtl_coverage_counter_ref): Use GCOV_TYPE_SIZE.
12759	(build_fn_info_type, build_fn_info_value, build_ctr_info_type)
12760	(build_ctr_info_value, build_gcov_info): Use get_gcov_unsigned_t
12761	instead of unsigned_intSI_type_node.
12762	* rtl-profile.c (rtl_gen_interval_profiler, rtl_gen_pow2_profiler)
12763	(rtl_gen_one_value_profiler_no_edge_manipulation)
12764	(rtl_gen_const_delta_profiler): Use GCOV_TYPE_SIZE.
12765	* value-prof.c: Include coverage.h.
12766
127672005-04-02  Daniel Berlin  <dberlin@dberlin.org>
12768	    Diego Novillo <dnovillo@redhat.com>
12769
12770	Fix PR tree-optimization/20703
12771	Fix PR tree-optimization/20725
12772
12773	* tree-ssa-pre.c (phi_translate): Handle tcc_comparison.
12774	(create_expression_by_pieces): Ditto.
12775	(valid_in_set): Ditto. Also handle tcc_declaration.
12776	(find_or_generate_expression): Handle comparison class.
12777	(insert_into_preds_of_block): Ditto.
12778	(insert_aux): Ditto.
12779	(create_value_expr_from): Handle comparison class, recursively
12780	handle reference nodes.
12781	(compute_avail): Handle comparison classes, rewrite a little cleaner.
12782	(execute_pre): Fix spacing.
12783	(do_fre): Renamed to execute_fre.
12784
127852005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
12786
12787	* doc/invoke.texi (SPARC options): Document that
12788	-mlittle-endian is not supported on Linux either.
12789
127902005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
12791
12792	PR target/4198
12793	PR target/12027
12794	* config.gcc (Obsolete configurations): Remove
12795	sparclite-*-coff*, sparclite-*-elf* and sparc86x-*-elf*.
12796	(sparclite-*-coff*): Delete.
12797	(sparclite-*-elf*): Likewise.
12798	(sparc86x-*-elf*): Likewise.
12799	(target_cpu_default) <sparc*-*-*>: Remove sparc86x.
12800	* config/sparc/lite.h: Delete.
12801	* config/sparc/litecoff.h: Likewise.
12802	* config/sparc/liteelf.h: Likewise.
12803	* config/sparc/sp86x-elf.h: Likewise.
12804	* config/sparc/t-sparclite: Likewise.
12805	* config/sparc/t-sp86x: Likewise.
12806
128072005-04-04  Adrian Straetling  <straetling@de.ibm.com>
12808
12809	* config/s390/s390-protos.h: (s390_comparison,
12810	s390_alc_comparison, s390_slb_comparison, const0_operand,
12811	consttable_operand, larl_operand, s_operand,
12812	shift_count_operand, bras_sym_operand, load_multiple_operation,
12813	store_multiple_operation, s390_plus_operand): Remove prototypes.
12814	(s390_legitimate_address_without_index_p): New prototype.
12815	* config/s390/s390.c: (SYMBOL_FLAG_ALIGN1, DISP_IN_RANGE): Move
12816	to s390.h.
12817	(s390_comparison, s390_alc_comparison, s390_slb_comparison,
12818	const0_operand, consttable_operand, larl_operand, s_operand,
12819	shift_count_operand, bras_sym_operand, load_multiple_operation,
12820	store_multiple_operation, s390_plus_operand): Move to
12821	predicates.md.
12822	(check_mode): Remove.
12823	(s390_branch_condition_mask): Remove 'static'. Move prototype to
12824	s390-protos.h.
12825	(s390_legitimate_address_without_index_p): New.
12826	* config/s390/s390.h (PREDICATE_CODES): Remove.
12827	* config/s390/s390.md: Include predicates.md.
12828	* config/s390/predicates.md: New.
12829
128302005-04-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
12831
12832	PR target/20446
12833	* config/sparc/sparc.h (NEED_INDICATE_EXEC_STACK): Define to 0.
12834	* config/sparc/linux.h (TARGET_ASM_FILE_END): Delete.
12835	(NEED_INDICATE_EXEC_STACK): Define to 1.
12836	* config/sparc/linux64.h (TARGET_ASM_FILE_END): Delete.
12837	(NEED_INDICATE_EXEC_STACK): Define to 1.
12838	* config/sparc/sparc.c (TARGET_ASM_FILE_END): Set to sparc_file_end.
12839	(add_pc_to_pic_symbol): Rename into pic_helper_symbol.
12840	(add_pc_to_pic_symbol_name): Rename into pic_helper_symbol_name.
12841	(pic_helper_emitted_p): New global.
12842	(emit_pic_helper): New function extracted from...
12843	(load_pic_register): ...here.  Add 'delay_pic_helper' parameter.
12844	Do not call emit_pic_helper if delay_pic_helper is true.
12845	(sparc_expand_prologue): Pass 'false' to load_pic_register.
12846	(sparc_output_mi_thunk): Pass 'true' to load_pic_register.
12847	(sparc_file_end): New function.
12848
128492005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
12850
12851	* config/mcore/mcore-protos.h: Remove the prototypes for
12852	mcore_arith_reg_operand, mcore_general_movsrc_operand,
12853	mcore_general_movdst_operand, mcore_reload_operand,
12854	mcore_arith_J_operand, mcore_arith_K_operand,
12855	mcore_arith_K_operand_not_0, mcore_arith_M_operand,
12856	mcore_arith_K_S_operand, mcore_arith_imm_operand,
12857	mcore_arith_any_imm_operand, mcore_arith_O_operand,
12858	mcore_literal_K_operand, mcore_addsub_operand,
12859	mcore_compare_operand, mcore_load_multiple_operation,
12860	mcore_store_multiple_operation, mcore_call_address_operand.
12861	Add a prototype for const_ok_for_mcore.
12862	* config/mcore/mcore.c (mcore_call_address_operand,
12863	mcore_general_movsrc_operand, mcore_general_movdst_operand,
12864	mcore_arith_reg_operand, mcore_reload_operand,
12865	mcore_arith_J_operand, mcore_arith_K_operand,
12866	mcore_arith_K_operand_not_0, mcore_arith_K_S_operand,
12867	mcore_arith_M_operand, mcore_arith_imm_operand,
12868	mcore_arith_any_imm_operand, mcore_arith_O_operand,
12869	mcore_literal_K_operand, mcore_addsub_operand,
12870	mcore_compare_operand, mcore_load_multiple_operation,
12871	mcore_store_multiple_operation): Move to predicates.md.
12872	(const_ok_for_mcore): Export.
12873	* config/mcore/mcore.h (PREDICATE_CODES): Remove.
12874	* config/mcore/mcore.md: Include predicates.md.
12875	* config/mcore/predicates.md: New.
12876
12877	* config/mcore/predicates.md: Fix a comment typo.
12878
128792005-04-04  Andreas Krebbel  <krebbel1@de.ibm.com>
12880	    Adrian Straetling  <straetling@de.ibm.com>
12881
12882	* config/s390/2064.md ("z_mul", "z_inf"): New insn reservations.
12883	* config/s390/2084.md ("x_mul_hi", "x_mul_sidi", "x_div"): Likewise.
12884	* config/s390/s390.md ("imulhi", "imulsi", "imuldi"): Added to "type"
12885	attribute.
12886	("imul"): Removed from "type" attribute.
12887	("*muldi3_sign", "muldi3"): Changed type to imuldi.
12888	("mulsi3/1", "mulsi3/3", "mulsi/4", "mulsidi3", "umulsidi3"):
12889	Changed type to imulsi.
12890	("*mulsi3_sign", "mulsi3/2"): Changed type to imulhi.
12891
128922005-04-04  Richard Sandiford  <rsandifo@redhat.com>
12893
12894	* config/mcore/mcore.h (target_flags, HARDLIT_BIT, ALIGN8_BIT, DIV_BIT)
12895	(RELAX_IMM_BIT, W_FIELD_BIT, OVERALIGN_FUNC_BIT, CGDATA_BIT)
12896	(SLOW_BYTES_BIT, LITTLE_END_BIT, M340_BIT, TARGET_HARDLIT)
12897	(TARGET_DIV, TARGET_RELAX_IMM, TARGET_W_FIELD, TARGET_OVERALIGN_FUNC)
12898	(TARGET_CG_DATA, TARGET_SLOW_BYTES, TARGET_LITTLE_END, TARGET_M340)
12899	(TARGET_SWITCHES, mcore_stack_increment_string)
12900	(TARGET_OPTIONS): Delete.
12901	(TARGET_DEFAULT, OPTIMIZATION_OPTIONS): Use MASK_* constants rather
12902	than *_BIT constants.
12903	(TARGET_8ALIGN): #undef old definition before redefining to 1.
12904	* config/mcore/mcore.c (mcore_stack_increment_string): Delete.
12905	(TARGET_DEFAULT_TARGET_FLAGS): Override default to TARGET_DEFAULT.
12906	(mcore_override_options): Delete mcore_stack_increment code.
12907	Change use of M340_BIT to MASK_M340.
12908	* config/mcore/mcore.opt: New file.
12909
129102005-04-04  Ian Lance Taylor  <ian@airs.com>
12911
12912	* config/arm/arm.c (replace_symbols_in_block): Remove static
12913	function.
12914
129152005-04-04  Kazu Hirata  <kazu@cs.umass.edu>
12916
12917	* config/fr30/fr30-protos.h: Remove the prototypes for
12918	stack_add_operand, add_immediate_operand,
12919	high_register_operand, low_register_operand, call_operand,
12920	di_operand, and nonimmediate_di_operand.
12921	* config/fr30/fr30.c (stack_add_operand,
12922	add_immediate_operand, high_register_operand,
12923	low_register_operand, call_operand, di_operand,
12924	nonimmediate_di_operand): Move to predicates.md.
12925	* config/fr30/fr30.h (PREDICATE_CODES): Remove.
12926	* config/fr30/fr30.md: Include predicates.md.
12927	* config/fr30/predicates.md: New.
12928
12929	* config/mcore/mcore.h (PREDICATE_CODES): Add SYMBOL_REF and
12930	LABEL_REF to mcore_general_movsrc_operand.  Add SYMBOL_REF to
12931	mcore_call_address_operand.
12932
12933	* config/sh/sh.h (PREDICATE_CODES): Add CONST to
12934	general_movsrc_operand.
12935
129362005-04-04  Alan Modra  <amodra@bigpond.net.au>
12937
12938	* passes.c (rest_of_handle_final): NULL unlikely_text_section_name
12939	after freeing.
12940
129412005-04-04  Richard Earnshaw  <richard.earnshaw@arm.com>
12942
12943	PR target/14812
12944	* arm.c (arm_select_cc_mode): Return CC_Zmode when comparing against
12945	a negated value.
12946
129472005-04-04  Richard Henderson  <rth@redhat.com>
12948	    Jakub Jelinek  <jakub@redhat.com>
12949
12950	PR rtl-optimization/16104
12951	* fold-const.c (fold_unary): Fix folding of vector conversions.
12952
129532005-04-04  Richard Sandiford  <rsandifo@redhat.com>
12954
12955	* config.gcc (xstormy16-*-elf): Set extra_options.
12956	* config/stormy16/stormy16.h (target_flags, TARGET_SWITCHES): Delete.
12957	* config/stormy16/stormy16.opt: New file.
12958
129592005-04-04  Richard Sandiford  <rsandifo@redhat.com>
12960
12961	* config/pdp11/pdp11.h (target_flags, TARGET_SWITCHES, TARGET_DEFAULT)
12962	(TARGET_FPU, TARGET_SOFT_FLOAT, TARGET_AC0, TARGET_NO_AC0, TARGET_45)
12963	(TARGET_BCOPY_BUILTIN, TARGET_INT16, TARGET_INT32, TARGET_FLOAT32)
12964	(TARGET_FLOAT64, TARGET_ABSHI_BUILTIN, TARGET_BRANCH_EXPENSIVE)
12965	(TARGET_BRANCH_CHEAP, TARGET_SPLIT, TARGET_NOSPLIT)
12966	(TARGET_UNIX_ASM): Delete.
12967	(TARGET_40_PLUS): Redefine in terms of TARGET_40 and TARGET_45.
12968	* config/pdp11/2bsd.h (TARGET_UNIX_ASM_DEFAULT): Use MASK_UNIX_ASM.
12969	* config/pdp11/pdp11.c (pdp11_handle_option): New function.
12970	(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
12971	* config/pdp11/pdp11.opt: New file.
12972
129732005-04-03  Roger Sayle  <roger@eyesopen.com>
12974	    Alexandre Oliva  <aoliva@redhat.com>
12975
12976	PR c++/19199
12977	* fold-const.c (non_lvalue): Split tests into...
12978	(maybe_lvalue_p): New function.
12979	(fold_cond_expr_with_comparison): Preserve lvalue-ness for the
12980	C++ front-end prior to lowering into gimple form.
12981
129822005-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
12983
12984	* builtins.def (BUILT_IN_STPNCPY, BUILT_IN_STRCASECMP,
12985	BUILT_IN_STRNCASECMP): New.
12986	* doc/extend.texi: Document stpncpy, strcasecmp, strncasecmp
12987	and strndup.
12988
129892005-04-03  Richard Earnshaw  <richard.earnshaw@arm.com>
12990
12991	PR target/14812
12992	* arm.md (addsi3_compare0_for_combiner): Delete.
12993	(addsi3_compare0_scratch_for_combiner): Delete.
12994	(cmpsi_neg_shiftsi): Delete.
12995	(compare_negsi_si): New pattern.
12996	(cmpsi_negshiftsi_si): New pattern.
12997	(negated_cbranchsi4): Restrict to equality_operator.
12998
12999	* arm.md (movhi_insn_arch4): delete trailing white space from assembler
13000	template.
13001
130022005-04-03  Kazu Hirata  <kazu@cs.umass.edu>
13003
13004	* cfghooks.c, cfgrtl.c, modulo-sched.c, config/i386/winnt.c:
13005	Fix comment typos.
13006
13007	* doc/install.texi: Fix a typo.
13008
130092005-04-03  Steven Bosscher  <stevenb@suse.de>
13010
13011	PR middle-end/20648
13012	* bb-reorder.c (duplicate_computed_gotos): Do not unfactor
13013	a computed goto if the edge to the computed goto block has
13014	incoming abnormal edges.  Clarify how the function works.
13015
130162005-04-03  Nathan Sidwell  <nathan@codesourcery.com>
13017
13018	* params.c (set_param_value): Use gcc_assert & gcc_unreachable.
13019	* passes.c (open_dump_file, rest_of_handle_final): Likewise.
13020	* postreload-gcse.c (expr_equiv_p, oprs_unchanged_p,
13021	hash_scan_set, reg_set_between_after_reload_p,
13022	reg_used_between_after_reload_p, get_avail_load_store_reg,
13023	eliminate_partially_redundant_load): Likewise.
13024	* postreload.c (reload_cse_simplify_set,
13025	reload_combine_note_use): Likewise.
13026	* predict.c (predict_insn, expected_value_to_br_prob,
13027	propagate_freq, expensive_function_p): Likewise.
13028	* print-rtl.c (print_rtx): Likewise.
13029	* profile.c (instrument_edges, instrument_values,
13030	compute_branch_probabilities, branch_prob, union_groups,
13031	tree_register_profile_hooks, rtl_register_profile_hooks): Likewise.
13032	* protoize.c (in_system_include_dir, file_could_be_converted,
13033	file_normally_convertible, gen_aux_info_file, seek_to_line,
13034	do_cleaning): Likewise.
13035	* tree-ssa-alias.c (collect_points_to_info_r): Likewise.
13036	* tree-ssa-ccp.c (execute_fold_all_builtins): Likewise.
13037	* tree-ssa-loop-ivopts.c (produce_memory_decl_rtl): Likewise.
13038
130392005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
13040
13041	* cfg.c (clear_bb_flags): Don't clear BB_DISABLE_SCHEDULE.
13042	* modulo-sched.c (undo_replace_buff_elem): New structure.
13043	(kernel_number_of_cycles, ps_unschedule_node,
13044	undo_generate_reg_moves,free_undo_replace_buff,
13045	undo_permute_partial_schedule,	loop_single_full_bb_p,
13046	SIMPLE_SMS_LOOP_P, loop_canon_p, canon_loop,
13047	build_loops_structure, get_sched_window): New.
13048	(generate_reg_moves): Return undo_replace_buff_elem and other
13049	fixes.
13050	(generate_prolog_epilog): Remove old loop versioning.
13051	(sms_schedule): Use loop information and loop_version.
13052	(sms_schedule_by_order): Split part of it to get_sched_window.
13053	* passes.c (rest_of_handle_sms): call cfg_layout_initialize
13054	cfg_layout_finalize and free_dominance_info before/after SMS.
13055
130562005-04-03 Mostafa Hagog <mustafa@il.ibm.com>
13057
13058	* cfghooks.c (lv_flush_pending_stmts,
13059	cfg_hook_duplicate_loop_to_header_edge, extract_cond_bb_edges,
13060	lv_adjust_loop_header_phi, lv_add_condition_to_bb): New.
13061	* cfghooks.h (cfg_hook_duplicate_loop_to_header_edge,
13062	lv_add_condition_to_bb,
13063	lv_adjust_loop_header_phi, extract_cond_bb_edges,
13064	flush_pending_stmts): New in cfg_hooks structure.
13065	(cfg_hook_duplicate_loop_to_header_edge, lv_flush_pending_stmts,
13066	extract_cond_bb_edges, lv_adjust_loop_header_phi,
13067	lv_add_condition_to_bb): New declarations.
13068	* cfgloop.h (duplicate_loop_to_header_edge): Change return type to
13069	bool.
13070	(loop_version): Declare.
13071	* cfgloopmanip.c (cfghooks.h): Include.
13072	(duplicate_loop_to_header_edge): Change return type to bool.
13073	(loop_version, lv_adjust_loop_entry_edge): Move here.
13074	* cfgrtl.c (cfgloop.h): Include.
13075	(rtl_verify_flow_info_1): Fix.
13076	(rtl_lv_add_condition_to_bb, rtl_extract_cond_bb_edges): New.
13077	(rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Add hooks to
13078	initialization.
13079	* tree-cfg.c (tree_lv_adjust_loop_header_phi,
13080	tree_lv_add_condition_to_bb): New.
13081	(tree_cfg_hooks): Add new hooks to initialization.
13082	* tree-ssa-loop-manip.c (lv_adjust_loop_header_phi,
13083	lv_adjust_loop_entry_edge, tree_ssa_loop_version): Remove.
13084
130852005-04-03  Kazu Hirata  <kazu@cs.umass.edu>
13086
13087	* config/stormy16/stormy16.h (PREDICATE_CODES): Add SUBREG to
13088	xstormy16_below100_or_register,
13089	xstormy16_splittable_below100_or_register, and
13090	nonimmediate_nonstack_operand.
13091
13092	* config/stormy16/stormy16-protos.h: Remove the prototypes for
13093	xstormy16_ineqsi_operator, equality_operator,
13094	inequality_operator, shift_operator,
13095	xstormy16_below100_operand, xstormy16_below100_or_register,
13096	xstormy16_splittable_below100_or_register,
13097	xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand.
13098	* config/stormy16/stormy16.c (xstormy16_ineqsi_operator,
13099	equality_operator, inequality_operator,
13100	xstormy16_below100_operand, xstormy16_below100_or_register,
13101	xstormy16_splittable_below100_or_register,
13102	xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand,
13103	nonimmediate_nonstack_operand, shift_operator): Move to
13104	predicates.md.
13105	* config/stormy16/stormy16.h (PREDICATE_CODES): Remove.
13106	* config/stormy16/stormy16.md: Include predicates.md.
13107	* config/stormy16/predicates.md: New.
13108
131092005-04-02  Kazu Hirata  <kazu@cs.umass.edu>
13110
13111	* config/iq2000/iq2000.c (uns_arith_operand, arith_operand,
13112	small_int, large_int, reg_or_0_operand, simple_memory_operand,
13113	equality_op, cmp_op, pc_or_label_operand, call_insn_operand,
13114	move_operand, power_of_2_operand): Move to predicates.md.
13115	* config/iq2000/iq2000.h (SPECIAL_MODE_PREDICATES,
13116	PREDICATE_CODE): Remove.
13117	* config/iq2000/iq2000.md: Include predicates.md.
13118	* config/iq2000/predicates.md: New.
13119
131202005-04-02  Richard Sandiford  <rsandifo@redhat.com>
13121
13122	* config/m68hc11/m68hc11.h (target_flags, MASK_SHORT)
13123	(MASK_AUTO_INC_DEC, MASK_M6811, MASK_M6812, MASK_M68S12)
13124	(MASK_NO_DIRECT_MODE, MASK_MIN_MAX, MASK_LONG_CALLS)
13125	(TARGET_SHORT, TARGET_M6811, TARGET_M6812, TARGET_M68S12)
13126	(TARGET_AUTO_INC_DEC, TARGET_MIN_MAX, TARGET_NO_DIRECT_MODE)
13127	(TARGET_LONG_CALLS, TARGET_SWITCHES, TARGET_OPTIONS)
13128	(SUBTARGET_SWITCHES, SUBTARGET_OPTIONS, m68hc11_regparm_string)
13129	(m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
13130	(TARGET_M68HC11): Delete.
13131	(TARGET_DEFAULT): Change the default setting from MASK_M6811 to 0.
13132	* config/m68hc11/m68hc12.h (TARGET_M68HC12): Delete.
13133	* config/m68hc11/m68hc11.c (m68hc11_regparm_string)
13134	(m68hc11_reg_alloc_order, m68hc11_soft_reg_count)
13135	(nb_soft_regs): Delete.
13136	(TARGET_DEFAULT_TARGET_FLAGS): Override default with TARGET_DEFAULT.
13137	(m68hc11_override_options): Remove the code that caters for MASK_M6811
13138	and MASK_M6812 being set simultaneously.  Change the code that sets
13139	the default m68hc11_soft_reg_count to use integers instead of strings.
13140	(m68hc11_conditional_register_usage, hard_regno_mode_ok): Use
13141	m68hc11_soft_reg_count (which now has an int type) as the number
13142	of soft registers.
13143	* config/m68hc11/m68hc11.opt: New file.
13144
131452005-04-02  Kazu Hirata  <kazu@cs.umass.edu>
13146
13147	* config/fr30/fr30.h (PREDICATE_CODES): Remove
13148	fp_displacement_operand, sp_displacement_operand.
13149
13150	* config/m68hc11/m68hc11-protos.h: Add a prototype for
13151	m68hcc_auto_inc_p.
13152	Remove the prototypes for tst_operand, cmp_operand,
13153	stack_register_operand, d_register_operand,
13154	hard_addr_reg_operand, splitable_operand,
13155	m68hc11_logical_operator, m68hc11_arith_operator,
13156	m68hc11_non_shift_operator, m68hc11_shift_operator,
13157	m68hc11_unary_operator, m68hc11_eq_compare_operator,
13158	non_push_operand, hard_reg_operand, and
13159	reg_or_some_mem_operand.
13160	* config/m68hc11/m68hc11.c (m68hcc_auto_inc_p): Make it
13161	extern.
13162	(tst_operand, cmp_operand, non_push_operand,
13163	splitable_operand, reg_or_some_mem_operand,
13164	stack_register_operand, d_register_operand,
13165	hard_addr_reg_operand, hard_reg_operand,
13166	m68hc11_eq_compare_operator, m68hc11_logical_operator,
13167	m68hc11_arith_operator, m68hc11_non_shift_operator,
13168	m68hc11_shift_operator, m68hc11_unary_operator): Move to
13169	predicates.md.
13170	* config/m68hc11/m68hc11.h (PREDICATE_CODES): Remove.
13171	* config/m68hc11/m68hc11.md: Include predicates.md.
13172	* config/m68hc11/predicates.md: New.
13173
131742005-04-02  Alexandre Oliva  <aoliva@redhat.com>
13175
13176	PR debug/19345
13177	* dwarf2out.c (add_abstract_origin_attribute): Revert accidental
13178	change checked in along with 2005-03-03's patch for debug/20253.
13179	* tree-inline.c (remap_type): Remap TYPE_STUB_DECL.
13180	(remap_decl): Insert type decl in map earlier.
13181
131822005-04-02  Alexandre Oliva  <aoliva@redhat.com>
13183
13184	PR tree-optimization/20640
13185	* tree-ssa-dce.c (remove_dead_stmt): Don't redirect edge to
13186	post-dominator if it has phi nodes.
13187	(eliminate_unnecessary_stmts): Remove dead phis in all blocks
13188	before dead statements.
13189
131902005-04-02  Alexandre Oliva  <aoliva@redhat.com>
13191
13192	PR middle-end/20491
13193	* final.c (alter_subreg): Don't call subreg_regno for a non-REG.
13194
131952005-04-02  Alexandre Oliva  <aoliva@redhat.com>
13196
13197	PR rtl-optimization/20290
13198	* loop.c (for_each_insn_in_loop): Don't assume the loop body runs
13199	in every iteration if the entry point is the exit test.
13200
132012005-04-02  Hans-Peter Nilsson  <hp@axis.com>
13202
13203	* config/cris/cris.md (attribute "length"): Define.
13204
132052005-04-02  Geoffrey Keating  <geoffk@apple.com>
13206
13207	* config/rs6000/predicates.md (indexed_or_indirect_operand): New.
13208	(word_offset_memref_operand): New.
13209	* config/rs6000/rs6000-protos.h (word_offset_memref_operand): Delete.
13210	(indexed_or_indirect_operand): Delete.
13211	* config/rs6000/rs6000.c (word_offset_memref_operand): Delete.
13212	(indexed_or_indirect_operand): Delete.
13213
13214	* config/rs6000/t-darwin8: Comment out ppc64 multilib.
13215
13216	PR 20650
13217	* config/rs6000/rs6000.md (fix_truncdfsi2): Make destination
13218	a register.
13219
13220	* config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Add -pipe.
13221	* config/t-darwin (TARGET_LIBGCC2_CFLAGS): Likewise.
13222
132232005-04-01  Jan-Benedict Glaw  <jbglaw@lug-owl.de>
13224
13225	* gcc/config/vax/vax.md: Spellcheck, fix whitespace.
13226
132272005-04-01  Ian Lance Taylor  <ian@airs.com>
13228
13229	* gcc.c: Don't include <sys/resource.h> or declare getrusage.
13230	(rus, prus): Remove static variables.
13231	(execute): Use pex_run/pex_get_status rather than pexecute/pwait.
13232	(process_command): Permit report_times and use_pipes together.
13233
132342005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
13235
13236	* c-decl.c (validate_proto_after_old_defn): Look at
13237	TYPE_MAIN_VARIANT of argument types.
13238
132392005-04-01  Paul Brook  <paul@codesourcery.com>
13240
13241	* config/arm/arm.c (thumb_call_via_label): Include space for SP.
13242	(arm_output_function_epilogue): Allow call_via_SP.
13243	(thumb_call_via_reg, arm_file_end): Ditto.
13244	* config/arm/arm.h (struct machine_function): Include space for SP.
13245	(thumb_call_via_label): Update declaration.
13246
132472005-04-01  Ian Lance Taylor  <ian@airs.com>
13248
13249	* final.c (final_scan_insn): Revert part of 2005-03-30 patch: when
13250	doing a peephole optimization, once again put any notes in the
13251	proper position.
13252
132532005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
13254
13255	* bb-reorder.c, fold-const.c, varasm.c: Fix comment typos.
13256
132572005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
13258
13259	* local-alloc.c (update_equiv_regs): Use gcc_assert, gcc_unreachable.
13260	(block_alloc, find_free_reg): Likewise.
13261	* loop-doloop.c (doloop_modify): Likewise.
13262	* loop-invariant.c (record_use): Likewise.
13263	* loop-iv.c (get_biv_step_1, get_biv_step, iv_analyze,
13264	get_iv_value, canon_condition, eliminate_implied_condition,
13265	eliminate_implied_condition, simplify_using_initial_values,
13266	shorten_into_mode, canonicalize_iv_subregs,
13267	iv_number_of_iterations): Likewise.
13268	* loop-unroll.c (expand_var_during_unrolling): Likewise.
13269	* loop-unswitch.c (compare_and_jump_seq, unswitch_single_loop,
13270	unswitch_loop): Likewise.
13271	* loop.c (INSN_LUID, loop_optimize, rtx_equal_for_loop_p,
13272	move_movables, replace_call_address, find_and_verify_loops,
13273	rtx_equal_for_prefetch_p, fold_rtx_mult_add, loop_iterations,
13274	record_giv, final_giv_value, general_induction_var,
13275	simplify_giv_expr, extension_within_bounds_p, try_copy_prop,
13276	loop_giv_dump): Likewise.
13277
13278	* gcov-io.h (GCOV_CHECK, GCOV_CHECK_READING,
13279	GCOV_CHECK_WRITING): Remove.
13280	(gcov_position, gcov_rewrite): Use gcc_assert.
13281	* gcov-io.c (gcov_open, gcov_write_words, gcov_write_length,
13282	gcov_read_words, gcov_sync, gcov_seek): Use gcc_assert.
13283	* libgcov.c (__gcov_merge_single, __gcov_merge_delta): Use
13284	gcc_assert.
13285
132862005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
13287
13288	* tree-inline.c: Fix a typo.
13289
132902005-04-01  Nathan Sidwell  <nathan@codesourcery.com>
13291
13292	* configure.ac (enable-checking): Explicitly set all variables for
13293	collective switch values.  Alphabetize variables. Rename
13294	ac_checking_valgrind to ac_valgrind_checking.  Allow 'none' as
13295	synonym for 'no'.
13296	* doc/install.texi (enable-checking): Update documentation.
13297	* configure: Rebuilt.
13298
132992005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
13300
13301	* tree-inline.c (copy_body_r): Use CONSTANT_CLASS_P where
13302	possible.
13303
133042005-04-01  Richard Earnshaw  <richard.earnshaw@arm.com>
13305
13306	* arm.c (adjacent_mem_locations): Reject volatile memory refs.
13307	Also reject cases where this pattern will cause load delay stalls
13308	unless optimizing for size and it will produce a shorter sequence.
13309	* arm.md (arith_adjacent_mem): Make better use of ldm addressing
13310	variants to avoid pre-adjusting the base when possible.
13311
133122005-04-01  Richard Earnshaw  <richard.earnshaw@arm.com>
13313
13314	* arm.md (minmax_arithsi): Reject all eliminable registers, not just
13315	the frame and argument pointers.
13316	(strqi_preinc, strqi_predec, loadqi_preinc, loadqi_predec): Likewise.
13317	(loadqisi_preinc, loadqisi_predec, strsi_preinc): Likewise.
13318	(strsi_predec, loadsi_preinc, loadsi_predec): Likewise.
13319	(strqi_shiftpreinc, strqi_shiftpredec, loadqi_shiftpreinc): Likewise.
13320	(loadqi_shiftpredec, strsi_shiftpreinc, strsi_shiftpredec): Likewise.
13321	(loadsi_shiftpreinc, loadsi_shiftpredec): Likewise.
13322
133232005-04-01  Danny Smith  <dannysmith@users.sourceforge.net>
13324
13325	* config/i386/cygming.h (SUBTARGET_ATTRIBUTE_TABLE): Define,
13326	with entry for selectany attribute.
13327	* config/i386/i386-protos.h (ix86_handle_selectany_attribute):
13328	Declare.
13329	* config/i386/winnt.c (ix86_handle_selectany_attribute): Define.
13330	(i386_pe_asm_named_section): Handle sections generated by
13331	selectany attribute.
13332	* doc/extend.texi (selectany): Document attribute.
13333
133342005-04-01  Paolo Bonzini  <bonzini@gnu.org>
13335	    Jan Hubicka  <jh@suse.cz>
13336
13337	* config/i386/i386.c (ix86_decompose_address): Look inside SUBREGs
13338	to fix addresses involving EBP and ESP.
13339	(aligned_operand, legitimate_address_p, ix86_address_cost): Be prepared
13340	for SUBREGed registers.
13341	(legitimate_address_p): Accept SUBREGed registers.
13342
133432005-04-01  Jakub Jelinek  <jakub@redhat.com>
13344
13345	PR c++/19406
13346	* dwarf2out.c (gen_type_die_for_member): Handle FIELD_DECL.
13347	(dwarf2out_imported_module_or_decl): Use gen_type_die_for_member
13348	for FIELD_DECLs.
13349
133502005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
13351
13352	* doc/contrib.texi, doc/invoke.texi, doc/tm.texi: Fix typos.
13353
133542005-04-01  James E Wilson  <wilson@specifixinc.com>
13355
13356	PR c++/20505
13357	* dwarf2out.c (rtl_for_decl_init): New function.
13358	(rtl_for_decl_location): Extracted from here.
13359	(tree_add_const_value_attribute): Call rtl_for_decl_init and
13360	add_const_value_attribute.  Delete initializer_constant_valid_p call.
13361
133622005-04-01  Kazu Hirata  <kazu@cs.umass.edu>
13363
13364	* cgraphunit.c, dbxout.c, flow.c, gcse.c, gimplify.c,
13365	lambda-code.c, loop.c, machmode.def, mips-tfile.c,
13366	modulo-sched.c, passes.c, postreload-gcse.c, tree-eh.c,
13367	tree-ssa-ccp.c, varasm.c, config/frv/frv.c, config/frv/frv.h,
13368	config/frv/frv.md, config/i386/i386.c, config/i386/i386.h,
13369	config/i386/i386.md, config/rs6000/predicates.md,
13370	config/rs6000/rs6000.c, config/s390/fixdfdi.h,
13371	config/s390/s390.c, config/stormy16/stormy16.c,
13372	config/stormy16/stormy16.md, config/vax/vax.md: Fix comment
13373	typos.
13374
133752005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
13376
13377	PR c/17855
13378	* gimplify.c (gimplify_expr): Create a temporary for lvalue
13379	COND_EXPR and CALL_EXPR.
13380
133812005-03-31  Vladimir Makarov  <vmakarov@redhat.com>
13382
13383	PR target/20632
13384	* genautomata.c (first_cycle_unit_presence): Check all alternative
13385	states for unit presence.
13386
13387	* doc/md.texi: Remove remark about impossibility to query unit
13388	presence in non nondeterministic automaton state.
13389
13390	* config/ia64/ia64.c (get_template): Change order of unit querying.
13391
133922005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
13393
13394	* tree-ssa-dom.c (cprop_into_successor_phis): Remove an
13395	obsolete comment.
13396
133972005-03-31  Zdenek Dvorak  <dvorakz@suse.cz>
13398
13399	* cfgloopanal.c (mark_loop_exit_edges): Clean EDGE_LOOP_EXIT
13400	flag for edges outside any loops.
13401
134022005-03-31  Janis Johnson  <janis187@us.ibm.com>
13403
13404	* doc/sourcebuild.texi (Test Directives): Describe cleanup-* procs.
13405
134062005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
13407
13408	* tree-ssa-alias.c: Follow spelling conventions.
13409	* doc/tree-ssa.texi: Fix a typo.
13410
134112005-03-31  J"orn Rennecke <joern.rennecke@st.com>
13412
13413	* postreload-gcse.c: Include target.h.
13414	(gcse_after_reload_main): Return early if we cannot modify jumps.
13415	* Makefile.in (postreload-gcse.o): Depend on $(TARGET_H).
13416
134172005-03-31  David Edelsohn  <edelsohn@gnu.org>
13418
13419	* tree-ssa-loop-im.c (stmt_cost): Add RDIV_EXPR to list of
13420	expensive operations.
13421
134222005-03-31  Ian Lance Taylor  <ian@airs.com>
13423
13424	* collect2.c (lderrout): New variable.
13425	(collect_exit): Dump ldout to stdout.  Dump and unlink lderrout,
13426	if it is set, to stderr.
13427	(handler): Unlink lderrout if it is set.
13428	(dump_file): Add "to" parameter.  Change all callers.
13429	(main): Initialize lderrout.
13430	(collect_execute): Add errname parameter.  Change all callers.
13431	Rename redir parameter to outname.  Never pass
13432	PEX_STDERR_TO_STDOUT to pex_run.
13433	* collect2.h (collect_execute, dump_file): Update declarations.
13434	* tlink.c (tlink_execute): Add errname parameter.  Change all
13435	callers.
13436	(do_tlink): Check lderrout as well as ldout.
13437
134382005-03-31  Caroline Tice  <ctice@apple.com>
13439
13440	* Makefile.in (varasm.o): Add basic-block.h to list of requirements.
13441	(bb-reorder.o): Add errors.h to list of requirements.
13442	(STAGEFEEDBACK_FLAGS_TO_PASS): Add -freorder-blocks-and-partition to
13443	profiledbootstrap flags.
13444	* bb-reorder.c (errors.h): Add new include.
13445	(struct bbro_basic_block_data_def): Add new field, in_trace.
13446	(add_unlikely_executed_notes):  Remove function.
13447	(mark_bb_for_unlikely_executed_section): Remove function.
13448	(insert_section_boundary_note): New function.
13449	(verify_hot_cold_block_grouping): New function.
13450	(push_to_next_round_p): Remove variables and tests that push all
13451	cold blocks to last round.
13452	(find_traces): Remove code that added extra round of trace finding
13453	when doing partitioning.
13454	(find_traces_1_round) :  Remove variable last_round;  add code to
13455	update new struct field, in_trace; correct trace_length where it was
13456	incorrect before (after call to copy_bb); change code that pushed all
13457	cold blocks to last round. Instead verify that all blocks going into
13458	a trace belong in the same partition.
13459	(connect_traces): Modify to connect the traces in two passes, if the
13460	function contains both hot and cold blocks.  The first pass connects
13461	all the traces for blocks in the partition that the first block in
13462	the function belongs to; the second pass connnects all the traces
13463	containing blocks that belong in the other partition.
13464	(find_rarely_executed_basic_blocks_and_crossing_edges):  Remove
13465	code that automatically put the first block in a function into the
13466	hot partition if the function had any hot blocks.
13467	(fix_crossing_unconditional_branches): Check number of succ edges
13468	before attempting to get one.
13469	(fix_edges_for_rarely_executed_code):  Update comment describing
13470	function.
13471	(reorder_basic_blocks):  Add code to initialize new field (in_trace);
13472	remove call to add_unlikely_executed_notes; add call to
13473	verify_hot_cold_block_grouping.
13474	(duplicate_computed_gotos): Don't change computed goto if it's a
13475	crossing edge.
13476	(partition_hot_cold_basic_blocks):  Update function comment.
13477	* cfgcleanup.c (try_simplify_condjump): Remove redundacy from
13478	condition.
13479	(try_forward_edges): Likewise.
13480	(merge_blocks_move_predecessor_nojumps): Likewise.
13481	(merge_blocks_move_successor_nojumps): Likewise.
13482	(merge_blocks_move): Likewise.
13483	(try_crossjump_bb): Likewise.
13484	* cfglayout.c (update_unlikely_executed_notes): Remove function.
13485	(fixup_reorder_chain): Remove code for adding UNLIKELY_EXECUTED_CODE
13486	notes to cold bb's; remove call to update_unlikely_executed_notes.
13487	(duplicate_insn_chain):  change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
13488	NOTE_INSN_SWITCH_TEXT_SECTIONS.
13489	* cfglayout.h (scan_ahead_for_unlikely_executed_note): Remove
13490	function declaration.
13491	* cfgrtl.c (can_delete_note_p): Remove UNLIKELY_EXECUTED_CODE note
13492	from consideration.
13493	(rtl_can_merge_blocks): Remove redundancy from condition.
13494	(try_redirect_by_replacing_jump): Likewise.
13495	(force_nonfallthru_and_redirect): Remove code for adding
13496	UNLIKELY_EXECUTED_CODE notes to cold bb's.
13497	(commit_one_edge_insertion): Likewise.
13498	(cfg_layout_can_merge_blocks_p): Remove redundancy from condition.
13499	* dbxout.c (FORCE_TEXT): Replace function_section with
13500	current_function_section.
13501	(struct dbx_debug_h): Add do_nothing function for new debug_hooks
13502	function, switch_text_section.
13503	(struct xcoff_debug): Likewise.
13504	(dbxout_function_end): Add code to put out label diffs for both
13505	hot and cold sections.
13506	* debug.c (struct do_nothing_debug_hooks): Add do_nothing function
13507	for new debug_hooks funciton, switch_text_section..
13508	* debug.h (struct gcc_debug_hooks):  Add new function to debug_hooks,
13509	switch_text_section.
13510	* dwarf2out.c (struct dw_fde_struct):  Add five new fields:
13511	dw_fde_hot_section_label, dw_fde_hot_section_end_label,
13512	dw_fde_unlikely_section_label, dw_fde_unlikely_section_end_label and
13513	dw_fde_switched_sections.
13514	(output_call_frame_info):  Add test to see if function switches text
13515	sections in the middle; if so, use appropriate extra hot and cold
13516	section labels to compute size deltas for the hot and cold sections.
13517	(dwarf2out_begin_prologue): Add code to initialize new fields in
13518	dw_fde_struct.
13519	(dwarf2out_switch_text_section): New function (invoked through
13520	debug_hook); updates new fields in dw_fde_struct appropriately and
13521	increments separate_line_info_table_in_use.
13522	(dwarf2_debug_hooks): Initialize switch_text_section function to be
13523	dwarf2out_switch_text_section.
13524	(struct var_loc_node): Add new field, section_label.
13525	(output_aranges): Add code to check whether in hot or cold section and
13526	use the appropriate label in calculating deltas.
13527	(output_ranges): Likewise.
13528	(output_line_info): Add code to check which section we're in and
13529	use appropriate hot/cold label.
13530	(add_location_or_constant_value_attribute): Likewise.
13531	(gen_subprogam_die): Modify arange attributes to use correct labels.
13532	(dwarf2out_begin_block): Change call to function_section into call to
13533	current_function_section.
13534	(dwarf2out_end_block): Likewise.
13535	(dwarf2out_source_line): Likewise.
13536	(dwarf2out_var_location): Add code to check whether in hot or cold
13537	section and use the appropriate label.
13538	* except.c (output_function_exception_table): Change call to
13539	function_section into call to current_function_section.
13540	* final.c (profile_function): Likewise.
13541	(scan_ahead_for_unlikely_executed_note): Remove function.
13542	(final_scan_insn):  Remove calls to
13543	scan_ahead_for_unlikely_executed_note, and related code for switching
13544	to cold section, except for the single time
13545	NOTE_INSN_SWITCH_TEXT_SECTIONS may be encountered;  add calls to
13546	debug_hooks->switch_text_sections; replace appropriate calls to
13547	function_section with calls to current_function_section.
13548	* ifcvt.c (find_if_case_1): Remove redundancy from condition, add
13549	test_bb to condition.
13550	(find_if_case_2): Likewise.
13551	* insn-notes.def: Change NOTE_INSN_UNLIKELY_EXECUTED_CODE to
13552	NOTE_INSN_SWITCH_TEXT_SECTIONS.  Update comment appropriately.
13553	* opts.c (decode_options): Change warning about hot/cold partitioning
13554	with exceptionss to inform (so as not to cause bootstrap failures);
13555	remove warning about partitioning with DWARF debug info.
13556	* output.h (current_function_section): Add new function decl.
13557	(insert_section_boundary_note): Likewise.
13558	(enum in_section): Move this declaration here from varasm.c.
13559	(unlikely_section_label): Likewise.
13560	(unlikely_text_section_name): Likewise.
13561	(last_text_section_name): New global variable.
13562	(last_text_section): Likewise.
13563	(hot_section_label): Likewise.
13564	(hot_section_end_label): Likewise.
13565	(cold_section_end_label): Likewise.
13566	* passes.c (rest_of_handle_final): Free unlikely_text_section_name.
13567	* print-rtl.c (print_rtx): Change NOTE_INSN_UNLIKELY_EXECUTED_CODE
13568	to NOTE_INSN_SWITCH_TEXT_SECTIONS.
13569	* reg-stack.c (emit_swap_insn): Remove UNLIKELY_EXECUTED_CODE note
13570	insn from consideration.
13571	* sdbout.c (sdb_debug_hooks): Add do_nothing for new function,
13572	switch_text_section.
13573	* varasm.c (basic-block.h): Add new include.
13574	(unlikely_section_label_printed): Remove global variable.
13575	(unlikely_section_label): Make global variable not be static any more.
13576	(unlikely_text_section_name): Likewise.
13577	(hot_section_end_label): New global variable (not static)
13578	(first_function_block_is_cold): Likewise.
13579	(hot_section_label): Likewise.
13580	(cold_section_end_label): Likewise..
13581	(last_text_section): New global variable, not static.
13582	(last_text_section_name): New global variable, not static.
13583	(initialize_cold_section_name): New function.
13584	(enum in_section): Move declaration to output.h.
13585	(text_section): Update last_text_section.
13586	(unlikely_text_section): Replace code to determine cold section name
13587	with call to initialize_cold_section_name; Add code to update
13588	last_text_section; remove code for printing out label.
13589	(named_section_real): Add code to update last_text_section and
13590	last_text_section_name as appropriate.
13591	(function_section): Change test for 'unlikely' to depend on
13592	first_function_block_is_cold (moved old test to
13593	current_function_section).
13594	(current_function_section): New function.
13595	(assemble_start_function): Move code that frees
13596	unlikely_text_section_name; initialize hot_section_end_label;
13597	print hot and cold section labels at the start of the function;
13598	set first_function_block_is_cold, if appropriate; initialize l
13599	ast_text_section; add call to insert_section_boundary_note.
13600	(assemble_end_function):  Add code to write out hot and cold section
13601	end labels.
13602	*vmsdbgout.c (vmsdbg_debug_hooks): Add do_nothing for new function,
13603	switch_text_section.
13604	* config/darwin.c (machopic_select_section): Replace incorrect
13605	function in base_funs; update reloc for cold sections if necessary.
13606	* config/darwin.h (SECTION_FUNCTION):  Add code to update
13607	last_text_section if appropriate.
13608	(text_unlikely_section): Remove.
13609	* config/sparc/sparc.c (sparc_output_deferred_case_vectors): Likewise.
13610	* config/stormy16/stormy16.c (stormy_16_output_addr_vec): Likewise.
13611	* config/xtensa/xtensa.c (override_options): Turn off hot/cold
13612	partitioning for this architecture.
13613
136142005-03-31  Olivier Hainque  <hainque@adacore.com>
13615
13616	* dwarf2out.c (dwarf2out_frame_finish): Honor DWARF2_FRAME_INFO
13617	defined and non-zero.
13618
136192005-03-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
13620
13621	PR c++/18644
13622	* doc/invoke.texi (-Wsynth): Don't document, as it now is void of
13623	semantics.
13624
136252005-03-31  Alan Modra  <amodra@bigpond.net.au>
13626
13627	PR target/20611
13628	* config/rs6000/rs6000.md (load_toc_v4_PIC_1b): Remove inline
13629	label operand.  Remove (use (unspec..)).  Don't emit a label on
13630	the offset word.
13631	* config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Don't
13632	generate inline label for load_toc_v4_PIC_1b.
13633	(rs6000_emit_load_toc_table): Likewise.
13634
136352005-03-31  Kazu Hirata  <kazu@cs.umass.edu>
13636
13637	* config.gcc: Obsolete i860-*-sysv4*, ip2k-*-elf,
13638	ns32k-*-netbsdelf*, and ns32k-*-netbsd*.
13639
136402005-03-29  Devang Patel  <dpatel@apple.com>
13641
13642	* tree-sra.c (decide_block_copy): Disable scalarization of
13643	sub-elements.
13644
136452005-03-30  Stuart Hastings  <stuart@apple.com>
13646	    Dale Johannesen  <dalej@apple.com>
13647
13648	* Makefile.in (print-tree.o):  Depend on tree-iterator.h.
13649	* print-tree.c (print_node):  Add case STATEMENT_LIST.
13650
136512005-03-31  Alan Modra  <amodra@bigpond.net.au>
13652
13653	* config.gcc (cpu_is_64bit): Set for 64-bit powerpc cpus.
13654	(powerpc64-*-linux*): Use it.  Rearrange tm_file assignment.
13655	(powerpc-*-linux*): Build a biarch compiler when --enable-targets
13656	is given with "powerpc64*" or "all", or when --with-cpu chooses
13657	a 64-bit cpu.
13658
136592005-03-30  James E. Wilson  <wilson@specifixinc.com>
13660
13661	PR debug/20268
13662	* dwarf2out.c (add_high_low_attributes): New function, extracted from
13663	gen_lexical_block_die.
13664	(gen_lexical_block_die, gen_inlined_subroutine_die): Call it.
13665
136662005-03-31  Jan Hubicka  <jh@suse.cz>
13667
13668	2004-11-02  Jan Hubicka  <jh@suse.cz>
13669
13670	* cgraph.c (cgraph_varpool_node_name): New function.
13671	(dump_cgraph_varpool_node): New function.
13672	(dump_varpool): New function.
13673	* cgraphunit.c (cgraph_optimize): Dump varpool.
13674
13675	2004-10-16  Jan Hubicka  <jh@suse.cz>
13676
13677	* cgraph.c (decide_is_variable_needed): New function.
13678	(cgraph_varpool_finalize_decl): Use it.
13679	* cgraphunit.c (cgraph_optimize): Assemble_pending_decls when not doing
13680	unit-at-a-time.
13681	* final.c (output_addr_const): Do not call mark_referenced.
13682	* passes.c (rest_of_decl_compilation): ifdef out DECL_RTL_SET_P hack;
13683	always go via cgraph.
13684	* toplev.c (wrapup_global_declarations): Kill non-unit-at-a-time code.
13685	(check_global_declarations): Ifdef out code clearing DECL_RTL.
13686	* tree-optimize.c (execute_inline): Mark functions called.
13687	* i386.c (output_pic_addr_const): Do not call mark_decl_referenced.
13688
13689	2004-10-11  Jan Hubicka  <jh@suse.cz>
13690
13691	* cgraph.c (cgraph_varpool_first_unanalyzed_node): New global voriable
13692	(cgraph_varpool_last_needed_node): New static variable.
13693	(enqueue_needed_varpool_node): Break out from ...; add items to the
13694	end of queue; update first pointers.
13695	(cgraph_varpool_mark_needed_node): ... here.
13696	(cgraph_varpool_finalize_decl): Use enqueue_needed_varpool_node.
13697	(cgraph_varpool_assemble_pending_decls): Move to cgraphunit.c
13698	* cgraph.h (cgraph_varpool_node): Add analyzed field.
13699	(cgraph_varpool_first_unanalyzed_node): Declare.
13700	* cgraphunit.c: Include output.h.
13701	(cgraph_varpool_analyze_pending_decls): New function.
13702	(cgraph_varpool_assemble_pending_decls): Move from cgraph.c; bail out
13703	for errors, analyze pending decls.
13704	(cgraph_finalize_compilation_unit): Only analyze decls.
13705	(cgraph_optimize): Assemble the decls after expanding.
13706
137072005-03-30  Daniel Berlin  <dberlin@dberlin.org>
13708
13709	* tree-ssa-alias.c (compute_flow_insensitive_aliasing): Make sure
13710	subvars get marked properly in tags for grouping.
13711	(add_pointed_to_var): Mark only actual pointed to
13712	variables/subvars in addresses needed.
13713	(create_overlap_variables_for): Clear call clobbered on original
13714	variable.
13715	* tree-ssa-operands.c (get_asm_expr_operands): Don't let regular
13716	addresable vars with subvars into list.
13717	* tree-ssa.c (verify_ssa_name): Verify original is not used where
13718	subvar should be.
13719
137202005-03-30  Richard Henderson  <rth@redhat.com>
13721
13722	* cgraph.h (struct cgraph_node): Add alias.
13723	* varasm.c (assemble_alias): Set it.
13724	* cgraphunit.c (cgraph_assemble_pending_functions): Check it and
13725	avoid calling cgraph_expand_function.
13726
137272005-03-30  Tom Tromey  <tromey@redhat.com>
13728
13729	* tree.def (FILE_TYPE): Removed.
13730	* typeclass.h (enum type_class): Removed file_type_class.
13731	* dwarf2out.c (is_base_type): Updated.
13732	(gen_type_die): Likewise.
13733	* dbxout.c (dbxout_type): Updated.
13734	* builtins.c (type_to_class): Updated.
13735	* tree.c (type_contains_placeholder_1): Updated.
13736	* config/sparc/sparc.c (sparc_type_code): Updated.
13737	* config/ia64/ia64.c (hfa_element_mode): Updated.
13738	* expr.c (count_type_elements): Updated.
13739	* stor-layout.c (layout_type): Updated.
13740	* tree-inline.c (remap_type): Updated.
13741	* tree-pretty-print.c (dump_generic_node): Updated.
13742
137432005-03-30 Fariborz Jahanian <fjahanian@apple.com>
13744
13745	* builtins.c (expand_builtin_powi): Fix mode of
13746	2nd argument to match int.
13747	* libgcc2.h (__powisf2, __powidf2, __powixf2, __powitf2): Change
13748	2nd argument type to int.
13749	* libgcc2.c: Change prototype of __powi* functions to use
13750	int.
13751
137522005-03-30  Dale Johannesen  <dalej@apple.com>
13753
13754	PR middle-end/19225
13755	* calls.c (expand_call):  Flush pending deferrals before
13756	throwing call.
13757
137582005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
13759
13760	PR c/772
13761	PR c/17913
13762	* c-tree.h (C_DECL_UNJUMPABLE_STMT_EXPR,
13763	C_DECL_UNDEFINABLE_STMT_EXPR, struct c_label_list, struct
13764	c_label_context, label_context_stack): New.
13765	* c-decl.c (define_label): Check for jumps into statement
13766	expressions.  Add label to list of defined labels.
13767	(start_function): Push context on label_context_stack.
13768	(finish_function): Pop context from label_context_stack.
13769	* c-typeck.c (label_context_stack): New.
13770	(c_finish_goto_label): Check for jumps into statement
13771	expressions.  Add label to list of jumped to labels.
13772	(struct c_switch): Add blocked_stmt_expr.
13773	(c_start_case): Initialize it.
13774	(do_case): Check it.
13775	(c_finish_case): Verify !blocked_stmt_expr.
13776	(c_begin_stmt_expr):  Push context on label_context_stack.
13777	Increment blocked_stmt_expr.  Mark labels jumped to from outside
13778	as undefinable.
13779	(c_finish_stmt_expr): December blocked_stmt_expr.  Mark labels
13780	defined in the statement expression and no longer jumpable to.
13781	Mark labels jumped to from just outside the statement expression
13782	as again definable.  Pop context from label_context_stack.
13783	* doc/extend.texi (Statement Exprs): Update.
13784
137852005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
13786
13787	PR c/20368
13788	* c-decl.c (start_function): Check for old_decl being
13789	error_mark_node.
13790
137912005-03-30  Ian Lance Taylor  <ian@airs.com>
13792
13793	* final.c (final): Remove prescan parameter.  Change all callers.
13794	(final_scan_insn): Remove prescan parameter.  Change all callers.
13795
137962005-03-30  Kazu Hirata  <kazu@cs.umass.edu>
13797
13798	* tree-vectorizer.c: Fix comment typos.
13799
138002005-03-30  Sebastian Pop  <pop@cri.ensmp.fr>
13801
13802	* tree-scalar-evolution.c (instantiate_parameters_1): Return
13803	as soon as a chrec_dont_know is detected.
13804
138052005-03-31  Danny Smith  <dannysmith@users.sourceforge.net>
13806
13807	Merge from csl-arm-branch.
13808	2004-02-12  Mark Mitchell  <mark@codesourcery.com>
13809
13810	* tlink.c (recompile_files): Do not assume that "rename" can
13811	overwrite an existing file.
13812
138132005-03-31  Paolo Bonzini  <bonzini@gnu.org>
13814
13815	* gcc/configure.ac (TL_AC_GNU_MAKE_GCC_LIB_PATH): Remove.
13816	* gcc/configure: Regenerate.
13817
138182005-03-30  Alan Modra  <amodra@bigpond.net.au>
13819
13820	* doc/install.texi: Update binutils requirement for powerpc*-linux.
13821
13822	* config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Update comments.
13823
13824	* calls.c (struct arg_data): Update "partial" comment.
13825	(load_register_parameters): Update "nregs" comment.
13826
138272005-03-30  Richard Sandiford  <rsandifo@redhat.com>
13828
13829	* config/iq2000/iq2000.h (target_flags, MASK_GPOPT, MASK_EMBEDDED_DATA)
13830	(MASK_UNINIT_CONST_IN_RODATA, TARGET_EMBEDDED_DATA, TARGET_SWITCHES)
13831	(TARGET_DEFAULT, TARGET_CPU_DEFAULT, SUBTARGET_TARGET_OPTIONS)
13832	(TARGET_OPTIONS, iq2000_cpu_string, iq2000_arch_string): Delete.
13833	(TARGET_DEBUG_MODE, TARGET_DEBUG_A_MODE, TARGET_DEBUG_B_MODE)
13834	(TARGET_DEBUG_C_MODE, TARGET_DEBUG_D_MODE): Define to 0 rather
13835	than target_flags & 0.
13836	* config/iq2000/iq2000.c (iq2000_cpu_string, iq2000_arch_string)
13837	(iq2000_arch, iq2000_parse_cpu): Delete.
13838	(TARGET_HANDLE_OPTION): Override default.
13839	(iq2000_handle_option): New function.
13840	(override_options): Remove -march= and -mcpu= handling.
13841	* config/iq2000/iq2000.opt: New file.
13842
138432005-03-30  Richard Sandiford  <rsandifo@redhat.com>
13844
13845	* config/c4x/c4x-protos.h (c4x_rpts_cycles, c4x_cpu_version): Delete.
13846	* config/c4x/c4x.h (SMALL_MEMORY_FLAG, MPYI_FLAG, FAST_FIX_FLAG)
13847	(RPTS_FLAG, C3X_FLAG, TI_FLAG, PARANOID_FLAG, MEMPARM_FLAG, DEVEL_FLAG)
13848	(RPTB_FLAG, BK_FLAG, DB_FLAG, DEBUG_FLAG, HOIST_FLAG)
13849	(LOOP_UNSIGNED_FLAG, FORCE_FLAG, PRESERVE_FLOAT_FLAG)
13850	(PARALLEL_INSN_FLAG, PARALLEL_MPY_FLAG, ALIASES_FLAG, C30_FLAG)
13851	(C31_FLAG, C32_FLAG, C33_FLAG, C40_FLAG, C44_FLAG, TARGET_SWITCHES)
13852	(TARGET_DEFAULT, TARGET_SMALL, TARGET_MPYI, TARGET_FAST_FIX)
13853	(TARGET_RPTS, TARGET_TI, TARGET_PARANOID, TARGET_MEMPARM, TARGET_DEVEL)
13854	(TARGET_RPTB, TARGET_BK, TARGET_DB, TARGET_DEBUG, TARGET_HOIST)
13855	(TARGET_LOOP_UNSIGNED, TARGET_FORCE, TARGET_PRESERVE_FLOAT)
13856	(TARGET_PARALLEL, TARGET_PARALLEL_MPY, TARGET_ALIASES)
13857	(c4x_rpts_cycles_string, c4x_cpu_version_string)
13858	(TARGET_OPTIONS): Delete.
13859	(c4x_rpts_cycles, c4x_cpu_version): Declare.
13860	(TARGET_C3X, TARGET_C30, TARGET_C31, TARGET_C32, TARGET_C33)
13861	(TARGET_C40, TARGET_C44): Redefine in terms of c4x_cpu_version.
13862	* config/c4x/c4x.c (c4x_rpts_cycles_string): Delete.
13863	(c4x_cpu_version_string): Delete.
13864	(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
13865	(c4x_handle_option): New function.  Map -m3x and -m4x options to the
13866	equivalent -mcpu= option.
13867	(c4x_override_options): Remove -mrpts= and -mcpu= handling from here.
13868	Deal with the extra conditions in the old TARGET_MPYI, TARGET_RPTB,
13869	TARGET_DB, TARGET_PARALLEL and TARGET_PARALLEL_MPY macros by setting
13870	or clearing the appropriate MASK_* bit.
13871	(c4x_file_start): Use c4x_cpu_version.
13872	* config/c4x/c4x.opt: New file.
13873
138742005-03-30  Richard Sandiford  <rsandifo@redhat.com>
13875
13876	* doc/options.texi: Document the new MaskExists flag.
13877	* opth-gen.awk: Don't output MASK and TARGET macros for Mask(...)
13878	if the option has the MaskExists flag.
13879
138802005-03-30  Richard Sandiford  <rsandifo@redhat.com>
13881
13882	* opt-functions.awk (flag_set_p, test_flag): New functions.
13883	(switch_flags): Use them.
13884	* opth-gen.awk: Use flag_set_p to check for flags.
13885	* optc-gen.awk: Likewise.  Use opt_args to check for Init(...) flags.
13886
138872005-03-30  Ian Lance Taylor  <ian@airs.com>
13888
13889	* config.host (i[34567]86-*-mingw32*): Don't set
13890	host_can_use_collect2 to no.
13891
138922005-03-30  Alan Modra  <amodra@bigpond.net.au>
13893
13894	PR target/20203
13895	* builtins.c (get_memory_rtx): Expand address exp using EXPAND_NORMAL.
13896	Remove convert_memory_address call duplicating that in memory_address.
13897
138982005-03-29  Richard Henderson  <rth@redhat.com>
13899
13900	PR c/20519
13901	* c-decl.c (c_finish_incomplete_decl): Update complete_array_type call.
13902	(build_compound_literal): Likewise.  Propagate decl type into the
13903	initializer.
13904	(finish_decl): Likewise.  Use new return value from complete_array_type
13905	for zero sized arrays.
13906	(complete_array_type): Move ...
13907	* c-common.c (complete_array_type): ... here.  Change first argument
13908	to pointer-to-type-node.  Consistently use sizetype for the index
13909	except for zero sized arrays.  Detect zero sized arrays for pedantic
13910	mode diagnostics.  Create a new type node instead of modifying the
13911	old node in place.
13912	* c-tree.h (complete_array_type): Move decl ...
13913	* c-common.h (complete_array_type): ... here.
13914
139152005-03-29  Richard Henderson  <rth@redhat.com>
13916
13917	PR tree-opt/19108
13918	* tree-sra.c (generate_element_init_1): Handle RANGE_EXPR.
13919
139202005-03-29  Kazu Hirata  <kazu@cs.umass.edu>
13921
13922	* builtin-types.def, c-convert.c, c-format.c, ddg.c, debug.c,
13923	debug.h, et-forest.c, et-forest.h, gcov.c, rtl-profile.c,
13924	rtlhooks-def.h, rtlhooks.c, sdbout.c, tree-inline.h,
13925	tree-profile.c, tsystem.h, value-prof.h: Update copyright.
13926
139272005-03-29  Eric Christopher  <echristo@redhat.com>
13928
13929	* config/mips/mips.c (mips_gimplify_va_arg_expr): Update for
13930	truthvalue conversion removal.
13931
139322005-03-29  Ian Lance Taylor  <ian@airs.com>
13933
13934	PR bootstrap/14316
13935	* collect2.c: Never include <vfork.h>.
13936	(VFORK_STRING, vfork): Don't define.
13937	(pid): Remove global variable.
13938	(handler): Call raise instead of kill (getpid(), ...).
13939	(collect_wait): Add pex parameter.  Change all callers.  Use
13940	pex_get_status rather than pwait.
13941	(do_wait): Add pex parameter.  Change all callers.
13942	(collect_execute): Return struct pex_obj * rather than void.  Use
13943	pex routines rather than pexecute.
13944	(fork_execute): Get pex_obj from collect_execute, and pass it to
13945	do_wait.
13946	(scan_prog_file): Use pex routines rather than pipe/vfork/exec.
13947	Only declare quit_handler if SIGQUIT is defined.
13948	(scan_libraries): Likewise.
13949	* collect2.h (collect_execute): Update declaration.
13950	(collect_wait): Update declaration.
13951	* tlink.c (tlink_execute): Get pex_obj from collect_execute, and
13952	pass it to collect_wait.
13953
139542005-03-29  Joseph S. Myers  <joseph@codesourcery.com>
13955
13956	PR c/20672
13957	* c-parser.c (c_parser_compound_statement_nostart): Give error
13958	message for EOF instead of just setting parser->error.
13959
139602005-03-29  Dorit Naishlos  <dorit@il.ibm.com>
13961
13962	* tree-vectorizer.c (slpeel_update_phi_nodes_for_guard): Removed.
13963	(slpeel_update_phi_nodes_for_guard1): New function.
13964	(slpeel_update_phi_nodes_for_guard2): New function.
13965	(slpeel_tree_peel_loop_to_edge): Call above new functions instead
13966	of slpeel_update_phi_nodes_for_guard.
13967	(vectorize_loops): Remove call to loop_closed_rewrite.
13968	* tree-vect-transform.c (vect_update_ivs_after_vectorizer): Remove
13969	assertion.
13970
139712005-03-29  Richard Sandiford  <rsandifo@redhat.com>
13972
13973	* config/m32r/little.h (TARGET_ENDIAN_DEFAULT): Delete.
13974	(TARGET_LITTLE_ENDIAN): New macro.
13975	* config/m32r/m32r.h (SUBTARGET_SWITCHES, target_flags)
13976	(TARGET_RELAX_MASK, TARGET_DEBUG_MASK, TARGET_DEBUG)
13977	(TARGET_ALIGN_LOOPS_MASK, TARGET_ALIGN_LOOPS)
13978	(TARGET_LOW_ISSUE_RATE_MASK, TARGET_LOW_ISSUE_RATE)
13979	(TARGET_BRANCH_COST_MASK, TARGET_BRANCH_COST, TARGET_M32RX_MASK)
13980	(TARGET_M32RX, TARGET_M32R2_MASK, TARGET_M32R2, LITTLE_ENDIAN_BIT)
13981	(TARGET_ENDIAN_DEFAULT, SUBTARGET_SWITCHES, TARGET_DEFAULT)
13982	(TARGET_SWITCHES, m32r_model_string, m32r_sdata_string)
13983	(m32r_cache_flush_trap_string, SUBTARGET_OPTIONS)
13984	(TARGET_OPTIONS): Delete.
13985	(M32R_MODEL_DEFAULT, M32R_SDATA_DEFAULT): Turn into enums.
13986	(CACHE_FLUSH_TRAP): Turn into an integer.
13987	(TARGET_LITTLE_ENDIAN): Define to 0 by default.
13988	(INITIALIZE_TRAMPOLINE): Check m32r_cache_trap >= 0 to see if
13989	-mflush-trap is in use.
13990	* config/m32r/m32r.c (m32r_model_string, m32r_sdata_string)
13991	(m32r_cache_flush_trap_string): Delete.
13992	(m32r_model) Initialize to M32R_MODEL_DEFAULT.
13993	(m32r_sdata): Likewise M32R_SDATA_DEFAULT.
13994	(m32r_cache_trap): Likewise CACHE_FLUSH_TRAP.
13995	(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
13996	(m32r_handle_option): New function.  Move -mflush-trap=, -mflush-func=,
13997	-mmodel= and -msdata= handling from...
13998	(m32r_init): ...here.
13999	* config/m32r/m32r.opt: New file.
14000
140012005-03-29  Keith Besaw  <kbesaw@us.ibm.com>
14002
14003	* tree-ssanames.c (duplicate_ssa_name_ptr_info): New function.
14004	(duplicate_ssa_name): Call duplicate_ssa_name_ptr_info.
14005	* tree-vect-analyze.c (vect_object_analysis): additional parm
14006	pass back a "struct ptr_info_def *" with the points-to info.
14007	(vect_analyze_data_refs): set the STMT_VINFO_PTR_INFO for the
14008	statement using info returned from vect_object_analysis.
14009	* tree-vect-transform.c (update_vuses_to_preheader): New function.
14010	(vect_create_data_ref_ptr): Remove updates to vars_to_rename
14011	for virtual uses and defs when creating a replacement vector
14012	reference.  Call duplicate_ssa_name_ptr_info to define points-to
14013	info for vector pointer replacement using STMT_VINFO_PTR_INFO.
14014	(vectorizable_store): copy_virtual_operands and update
14015	definition statements.
14016	(vectorizable_load): copy_virtual_operands.  Remove call to
14017	mark_call_clobbered_vars_to_rename for call to "const" builtin.
14018	* tree-vectorizer.c (vectorize_loops): Remove calls to
14019	rewrite_into_ssa and bitmap_clear (vars_to_rename).
14020	(new_stmt_vec_info): initialize STMT_VINFO_PTR_INFO for stmt.
14021	* tree-vectorizer.h (_stmt_vec_info): add field ptr_info and
14022	define macro STMT_VINFO_PTR_INFO for use in accessing.
14023	* tree.h add export of duplicate_ssa_name_ptr_info.
14024	* rs6000.c (altivec_init_builtins): Declare builtin function
14025	__builtin_altivec_mask_for_load to be "const".
14026
140272005-03-29  Jakub Jelinek  <jakub@redhat.com>
14028
14029	PR middle-end/20622
14030	* cgraph.h (struct cgraph_varpool_node): Add alias field.
14031	* cgraph.c (cgraph_varpool_assemble_pending_decls): Don't call
14032	assemble_variable on aliases.
14033	* varasm.c (assemble_alias): Set node->alias.
14034	* toplev.c (wrapup_global_declarations): Don't call
14035	rest_of_decl_compilation on aliases again.
14036
140372005-03-29  Paul Brook  <paul@codesourcery.com>
14038
14039	* config/arm/arm-protos.h (arm_dbx_register_number): Add prototype.
14040	* config/arm/arm.c (arm_dbx_register_number): New function.
14041	* config/arm/arm.h (IS_FPA_REGNUM, DBX_REGISTER_NUMBER): Define.
14042
140432005-03-29  Eric Botcazou  <ebotcazou@libertysurf.fr>
14044
14045	PR middle-end/20263
14046	* varasm.c (make_decl_rtl) [ASM_DECLARE_REGISTER_GLOBAL]: Use
14047	the DECL_NAME, not the DECL_ASSEMBLER_NAME.
14048
140492005-03-29  Dale Johannesen <dalej@apple.com>
14050
14051	* Makefile.in (value-prof.o): New dependencies on $(DIAGNOSTIC_H)
14052	$(TREE_H) and $(COVERAGE_H).
14053	* coverage.c (compute_checksum): Use DECL_NAME not DECL_ASSEMBLER_NAME.
14054	* opts.c (common_handle_option): Enable tree-based value transforms.
14055	* toplev.c (process_options): Ditto.
14056	* value-prof.h (struct histogram_value_t): Redefine. "Adjust" below
14057	refers to references to this type.
14058	* tree-flow.h: (struct stmt_ann_d): Add histograms field.
14059	* rtl-profile.c (rtl_gen_interval_profiler): Adjust. Remove checks
14060	for may_be_more, may_be_less.
14061	(rtl_gen_pow2_profiler): Adjust.
14062	(rtl_gen_one_value_profiler_no_edge_manip): Adjust.
14063	(rtl_gen_one_value_profiler): Adjust.
14064	(rtl_gen_const_delta_profiler): Adjust.
14065	* tree-profile.c (tree_gen_interval_profiler): Implement.
14066	(tree_gen_pow2_profiler): Ditto.
14067	(tree_gen_one_value_profiler): Ditto.
14068	(tree_profiling): New.
14069	(pass_tree_profile): Reference it.
14070	* value-prof.c: Include tree-flow.h, tree-flow-inline.h, diagnostic.h,
14071	tree.h, gcov-io.h.
14072	(insn_divmod_values_to_profile): Rename to
14073	rtl_divmod_values_to_profile. Adjust.
14074	(insn_values_to_profile): Rename to rtl_values_to_profile. Adjust.
14075	(insn_prefetch_values_to_profile): Adjust.
14076	(rtl_value_profile_transformations): Adjust.
14077	(gen_divmod_fixed_value): Rename to rtl_divmod_fixed_value.
14078	(gen_mod_pow2): Rename to rtl_mod_pow2.
14079	(gen_mod_subtract): Rename to rtl_mod_subtract.
14080	(divmod_fixed_value_transform): Rename to
14081	rtl_divmod_fixed_value_transform.
14082	(mod_pow2_value_transform): Rename to rtl_mod_pow2_value_transform.
14083	(mod_subtract_transform): Rename to rtl_mod_subtract_transform.
14084	(rtl_find_values_to_profile): Adjust.
14085	(tree_value_profile_transformations): Implement.
14086	(tree_divmod_values_to_profile): New.
14087	(tree_values_to_profile): New.
14088	(tree_divmod_fixed_value): New.
14089	(tree_mod_pow2): New.
14090	(tree_mod_subtract): New.
14091	(tree_divmod_fixed_value_transform): New.
14092	(tree_mod_pow2_value_transform): New.
14093	(tree_mod_subtract_transform): New.
14094	(tree_find_values_to_profile): Implement.
14095	* profile.c (instrument_values):  Free histograms.
14096	(compute_value_histograms): Adjust. Implement tree version.
14097
140982005-03-29  Uros Bizjak  <uros@kss-loka.si>
14099
14100	* reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST> case.
14101	* config/i386/i386.c (output_fix_trunc): Add new round_mode
14102	variable.  Output "fldcw" depending on round_mode.
14103	* config/i386/i386.md (UNSPEC_FIST): New.
14104	(fistdi2, fistdi2_with_temp, fist<mode>2, fist<mode>2_with_temp):
14105	New isns patterns to implement lrint and llrint built-ins as x87
14106	intrinsic function.
14107	(fistdi2, fist<mode>2 splitters): New splitters.
14108	(lrint<mode>2): New expanders.
14109
141102005-03-28  Ian Lance Taylor  <ian@airs.com>
14111
14112	* config/arc/arc.c (arc_output_function_epilogue): Pass prescan as
14113	0 when calling final_scan_insn.
14114
141152005-03-28  Jan Hubicka  <jh@suse.cz>
14116
14117	PR middle-end/20635
14118	* varasm.c (mark_decl_referenced): Do not mark extern inline functions
14119	as needed.
14120
14121	* tree-inline.c (estimate_num_insns_1): Use declaration to discover argument
14122	types where possible.
14123
141242005-03-26  Per Bothner  <per@bothner.com>
14125
14126	Make -f[no-]show-column also control non-cpp diagnostics.
14127	* c.opt (fshow-column): Move option from here ...
14128	* common.opt (fshow-column): ... to here.
14129	* diagnostic.c (diagnostic_build_prefix): Only print column number
14130	if flag_show_column.
14131
141322005-03-27  Steven Bosscher  <stevenb@suse.de>
14133
14134	* vax-protos.h (vax_output_int_move, vax_output_int_add,
14135	vax_output_conditional_branch): New prototypes.
14136	* vax.c (vax_output_int_move, vax_output_int_add): New functions,
14137	extracted from vax.md mov and add patterns.
14138	(vax_output_conditional_branch): New function to output conditional
14139	branch instructions.
14140	* vax.md: Use mode macros for arithmetic and mov patterns.
14141	Use code macros for the jump patterns.
14142
141432005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>
14144
14145	* Makefile.in (libbackend.o): Depend on version files;
14146	add custom generation command.
14147
141482005-03-26  Andrew Pinski  <pinskia@physics.uc.edu>
14149
14150	PR target/20636
14151	* config/rs6000/rs6000.md (extendsfdf2_fpr): Check to make
14152	sure that we have a REG before getting its REGNO.
14153
141542005-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
14155
14156	* builtin-types.def (BT_FN_STRING_CONST_STRING_SIZE): New.
14157	* builtins.def (BUILT_IN_STRNDUP): New.
14158
141592005-03-25  Pat Haugen  <pthaugen@us.ibm.com>
14160
14161	PR tree-optimization/20470
14162	* fold-const.c (fold_cond_expr_with_comparison): Recognize/fold
14163	ABS(x-y).
14164
141652005-03-25  Mike Stump  <mrs@apple.com>
14166
14167	* config/darwin.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Don't allow 0
14168	sized objects.
14169
141702005-03-25  Geoffrey Keating  <geoffk@apple.com>
14171
14172	* config/rs6000/darwin-fallback.c: Don't include <ucontext.h>.
14173	Use our own structure definitions.
14174
14175	* config/rs6000/rs6000.md (UNSPEC constants): Add UNSPEC_STFIWX.
14176	(fix_truncdfsi2): Allow registers or memory as destination.
14177	When TARGET_PPC_GFXOPT, generate simplified pattern.
14178	(fix_truncdfsi2_internal): Use define_insn_and_split.
14179	(fix_truncdfsi2_internal_gfxopt): New.
14180	(fctiwz): Don't confuse register allocation by giving it no choices.
14181	(stfiwx): New.
14182	* config/rs6000/rs6000.h (EXTRA_CONSTRAINT): Add 'Z'.
14183	(EXTRA_MEMORY_CONSTRAINT): Likewise.
14184	* config/rs6000/rs6000.c (indexed_or_indirect_operand): New.
14185	* config/rs6000/rs6000-protos.h (indexed_or_indirect_operand): New.
14186
141872005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
14188
14189	* dominance.c (free_dominance_info): Speed up by freeing et
14190	data structures without maintaining other nodes.
14191	* et-forest.c (et_free_tree_force): New.
14192	* et-forest.h: Add a prototype for et_free_tree_force.
14193
14194	* tree.c (get_set_constructor_bits,
14195	get_set_constructor_bytes): Remove.
14196	* tree.h: Remove the corresponding prototypes.
14197
141982005-03-25  John David Anglin  <dave.anglin@nrc-crnc.gc.ca>
14199
14200	PR target/15491
14201	* vax.c (vax_rtx_costs_1): Merge with vax_rtx_costs.
14202	(vax_rtx_costs): Return false when passed unsupported rtx's.  Handle
14203	FLOAT_EXTEND, FLOAT_TRUNCATE and TRUNCATE.  Fix costs for POST_INC,
14204	PRE_DEC, NEG and NOT.
14205
142062005-03-25  Kazu Hirata  <kazu@cs.umass.edu>
14207
14208	* fold-const.c: Convert uses of fold (build (...)) to
14209	fold_buildN.
14210
142112005-03-25  Zdenek Dvorak  <dvorakz@suse.cz>
14212
14213	PR rtl-optimization/20249
14214	* cse.c (insert_regs): Do not record equivalence of registers in
14215	different modes.
14216
142172005-03-24  Kazu Hirata  <kazu@cs.umass.edu>
14218
14219	* emit-rtl.c (reverse_comparison): Remove.
14220	* rtl.h: Remove the corresponding prototype.
14221
142222005-03-24  James E Wilson  <wilson@specifixinc.com>
14223
14224	* doc/install.texi (--enable-altivec): Delete docs.
14225
142262005-03-24  David Edelsohn  <edelsohn@gnu.org>
14227
14228	* config/rs6000/predicates.md (easy_fp_constant): Return 0 for
14229	SFmode and DFmode before reload when
14230	flag_unsafe_math_optimizations not enabled.
14231
142322005-03-24  Geoffrey Keating  <geoffk@apple.com>
14233
14234	* c.opt (fvisibility-inlines-hidden): Allow for ObjC++.
14235
14236	* config/i386/darwin.h (TARGET_SUBTARGET_DEFAULT): Add
14237	MASK_128BIT_LONG_DOUBLE, MASK_ALIGN_DOUBLE.
14238
142392005-03-24  Nathan Sidwell  <nathan@codesourcery.com>
14240
14241	* configure.ac (enable-checking): Add 'runtime' option.
14242	* doc/install.texi (enable-checking): Document 'runtime' checking.
14243	* tsystem.h (gcc_assert, gcc_unreachable): Define.
14244	* config.in: Regenerated.
14245	* configure: Regenerated.
14246
142472005-03-23  Uros Bizjak  <uros@kss-loka.si>
14248
14249	* optabs.h (enum optab_index): Remove OTI_llrint.
14250	(llrint_optab): Remove macro.
14251	* optabs.c (init_optabs): Remove llrint_optab initialization.
14252	* genopinit.c (optabs): Remove llrint_optab implementation.
14253	* builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LLRINT{,F,L}
14254	using lrint_optab.
14255
142562005-03-24  Alexandre Oliva  <aoliva@redhat.com>
14257
14258	PR rtl-optimization/20532
14259	* simplify-rtx.c (simplify_binary_operation_1): Protect from
14260	overflow when adding coefficients for PLUS or MINUS.
14261	(simplify_binary_operation_1): Handle CONST_DOUBLE exact power of
14262	two as multiplier.
14263
142642005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
14265
14266	* langhooks.h (truthvalue_conversion): Remove.
14267	* langhooks-def.h (LANG_HOOKS_INITIALIZER): Remove
14268	LANG_HOOKS_TRUTHVALUE_CONVERSION.
14269	* system.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Poison.
14270	* gimplify.c (gimple_boolify): Don't use truthvalue_conversion.
14271	* c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove.
14272
142732005-03-23  Kazu Hirata  <kazu@cs.umass.edu>
14274
14275	* params.def: Fix a typo.
14276	* config/mips/mips.c: Follow the spelling convensions.
14277	* doc/invoke.texi: Fix typos.
14278
142792005-03-23  Daniel Berlin  <dberlin@dberlin.org>
14280
14281	Fix PR tree-optimization/20601
14282
14283	* tree-ssa-pre.c (insert_aux): Add missing condition to
14284	constification.
14285
142862005-03-23  Ian Lance Taylor  <ian@airs.com>
14287
14288	* final.c (final_scan_insn): Don't remove no-op instructions.
14289	* reload1.c (reload): Remove simple no-op instructions even when
14290	not optimizing.
14291
142922005-03-23  Dorit Naishlos  <dorit@il.ib.com>
14293
14294	PR tree-optimization/20501
14295	* tree-vect-analyze.c (vect_enhance_data_refs_alignment): Debug print
14296	reporting that peeling for alignment is applied moved to...
14297	* (vect_analyze_data_refs_alignment): Here.
14298
142992005-03-23  Ian Lance Taylor  <ian@airs.com>
14300
14301	* reorg.c (dbr_schedule): Remove #if 0 code to call final.
14302
143032005-03-23  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
14304
14305	* config.gcc (alpha*-dec-osf[45]*): Remove target_cpu_default.
14306	Define TARGET_SUPPORT_ARCH except on Tru64 UNIX V4.0A.
14307
143082005-03-23  Hans-Peter Nilsson  <hp@axis.com>
14309
14310	* doc/tm.texi (TARGET_MD_ASM_CLOBBERS): Adjust wording to not
14311	imply that this is called once, independent of asms in code.
14312	Adjust to now being pased output and input lists.  Mention helper
14313	function decl_overlaps_hard_reg_set_p.
14314	* hooks.c (hook_tree_tree_tree_tree_3rd_identity): Rename from
14315	hook_tree_tree_identity and to take three trees, returning third.
14316	* hooks.h (hook_tree_tree_tree_tree_3rd_identity): Adjust the
14317	prototype.
14318	* stmt.c: include hard-reg-set.h before tree.h.
14319	(decl_overlaps_hard_reg_set_p): New function, broken out from...
14320	(decl_conflicts_with_clobbers_p): Call
14321	decl_overlaps_hard_reg_set_p.
14322	(expand_asm_operands): Pass output and input lists in call to
14323	targetm.md_asm_clobbers.
14324	* target-def.h (TARGET_MD_ASM_CLOBBERS): Define as
14325	hook_tree_tree_tree_tree_3rd_identity.
14326	* target.h (struct gcc_target.md_asm_clobbers): Take three tree
14327	parameters.
14328	* tree.h [HARD_CONST] (decl_overlaps_hard_reg_set_p): Prototype.
14329	* config/i386/i386.c (ix86_md_asm_clobbers): Adjust to three
14330	parameters, first two unused.
14331	* config/cris/cris.c (cris_md_asm_clobbers): Adjust to added
14332	parameters.  Only add MOF to clobbers if there's no 'h' mentioned
14333	in constraint letters and MOF is not mentioned as a asm-declared
14334	register in neither of the input and output lists.
14335
143362005-03-23  DJ Delorie  <dj@redhat.com>
14337
14338	* optabs.c (expand_binop): Make sure the first subword's result
14339	gets stored.
14340
143412005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
14342
14343	* c-common.c (c_common_truthvalue_conversion): Adjust comment.
14344	Call c_common_truthvalue_conversion rather than
14345	lang_hooks.truthvalue_conversion.
14346	* c-convert.c (convert): Call c_objc_common_truthvalue_conversion.
14347	* c-objc-common.c (c_objc_common_truthvalue_conversion): Move to
14348	c-typeck.c.
14349	* c-objc-common.h (LANG_HOOKS_TRUTHVALUE_CONVERSION): Change to
14350	c_common_truthvalue_conversion.
14351	* c-parser.c (c_parser_paren_condition, c_parser_for_statement,
14352	c_parser_conditional_expression, c_parser_binary_expression): Call
14353	c_objc_common_truthvalue_conversion.
14354	* c-typeck.c (build_unary_op): Call
14355	c_objc_common_truthvalue_conversion.
14356	(build_conditional_expr): Do not call
14357	lang_hooks.truthvalue_conversion.
14358	(build_binary_op): Call c_common_truthvalue_conversion.
14359	(c_objc_common_truthvalue_conversion): Moved from
14360	c-objc-common.c.  Call default_function_array_conversion instead
14361	of default_conversion.
14362
143632005-03-23  Joseph S. Myers  <joseph@codesourcery.com>
14364
14365	* c-common.h (default_conversion): Remove.
14366	(perform_integral_promotions): Add.
14367	* c-tree.h (default_conversion): Add.
14368	* c-typeck.c (perform_integral_promotions): New, split out from
14369	default_conversion.
14370	* c-common.c (check_case_value): Use perform_integral_promotions,
14371	not default_conversion.
14372	(c_add_case_label): Don't continue processing case label after
14373	found to be pointer.
14374
143752005-03-23  Mark Mitchell  <mark@codesourcery.com>
14376
14377	* gcc.c (do_spec_1): Do not add a -L path for a directory in
14378	the prefix list if we have already added a multilib directory
14379	based on that path.
14380	(main): Do not add MD_EXEC_PREFIX to the list of directories to
14381	search with -L.
14382
143832005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
14384
14385	* reload1.c (indirect_symref_ok, reload_obstack): Make them
14386	static.
14387	* reload.h: Remove the prototype for indirect_symref_ok.
14388
14389	* reload1.c (indirect_symref_ok): Make it global.
14390	* reload.h: Add a prototype for indirect_symref_ok.
14391
143922005-03-22  Kaz Kojima  <kkojima@gcc.gnu.org>
14393
14394	* config/sh/sh.md (ashlhi3): Rename to *ashlhi3_n and add a new
14395	ashlhi3 expander.
14396
143972005-03-22  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
14398
14399	* tree.h (DECL_IGNORED_P, DECL_IN_SYSTEM_HEADER): Clarify comments.
14400
144012005-03-22  Daniel Berlin  <dberlin@dberlin.org>
14402
14403	* c-opts.c (c_common_parse_file): Only start/end main source file
14404	if debug hooks says the writer wants it.
14405	* dbxout.c (dbx_debug_hooks): Add start_end_main_source_file
14406	member.
14407	(xcoff_debug_hooks): Ditto.
14408	* debug.c (do_nothing_hooks): Ditto.
14409	* debug.h (gcc_debug_hooks): Ditto.
14410	* dwarf2out.c (dwarf2_debug_hooks): Ditto.
14411	* sdbout.c (sdb_debug_hooks): Ditto.
14412	* vmsdbgout.c (vmsdbg_debug_hooks): Ditto.
14413
144142005-03-22  Mark Mitchell  <mark@codesourcery.com>
14415
14416	* doc/extend.texi: Deprecate C++ min/max operators.
14417
144182005-03-22  Zdenek Dvorak  <dvorakz@suse.cz>
14419
14420	* tree-ssa-loop-ivopts.c (determine_iv_cost): Do not try to preserve
14421	artificial original candidates.
14422
144232005-03-22  Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
14424	    Jan Hubicka  <jh@suse.cz>
14425	    Steven Bosscher <stevenb@suse.de>
14426
14427	* cgraphunit.c (cgraph_estimate_size_after_inlining): Compute
14428	call cost based on argument sizes.
14429	(cgraph_mark_inline_edge): Avoid inline unit from shrinking by
14430	inlining.
14431	* params.def: (max-inline-inssn-single): Set to 450.
14432	(max-inline-insns-auto): Set to 90.
14433	(max-inline-insns-recursive): Set to 450
14434	(max-inline-insns-recursive-auto): Set to 450.
14435	(large-function-insns): Set to 2700.
14436	(inline-call-cost): New parameter.
14437	* tree-inline.c (estimate_move_cost): New function.
14438	(estimate_num_insns_1): Compute move sizes costs by estimate_move_cost
14439	for non-gimple-regs, set cost to 0 for gimple-regs.  Compute call size
14440	based on arguments.
14441	* tree-inline.h (estimate_move_cost): Declare.
14442	* invoke.texi: (max-inline-inssn-single): Change default to 450.
14443	(max-inline-insns-auto): Change default to 90.
14444	(max-inline-insns-recursive): Change default to 450
14445	(max-inline-insns-recursive-auto): Change default to 450.
14446	(large-function-insns): Change default to 2700.
14447	(inline-call-cost): Document new parameter.
14448
144492005-03-22  Richard Sandiford  <rsandifo@redhat.com>
14450
14451	* config/i860/i860.h (target_flags, TARGET_XP, TARGET_SWITCHES)
14452	(TARGET_DEFAULT): Delete.
14453	* config/i860/i860.opt: New file.
14454
144552005-03-22  Richard Sandiford  <rsandifo@redhat.com>
14456
14457	* config/frv/frv-protos.h (frv_branch_cost_string, frv_branch_cost_int)
14458	(frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
14459	(frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
14460	(frv_sched_lookahead): Delete.
14461	* config/frv/frv.h (MASK_DEFAULT_ALLOC_CC): Move to frv.c.
14462	(target_flags, MASK_GPR_32, MASK_FPR_32, MASK_SOFT_FLOAT)
14463	(MASK_ALLOC_CC, MASK_DWORD, MASK_DOUBLE, MASK_MEDIA, MASK_MULADD)
14464	(MASK_LIBPIC, MASK_ACC_4,  MASK_PACK, MASK_LONG_CALLS)
14465	(MASK_ALIGN_LABELS, MASK_LINKED_FP, MASK_BIG_TLS, MASK_DEBUG_ARG)
14466	(MASK_DEBUG_ADDR, MASK_DEBUG_STACK, MASK_DEBUG, MASK_DEBUG_LOC)
14467	(MASK_DEBUG_COND_EXEC, MASK_NO_COND_MOVE, MASK_NO_SCC)
14468	(MASK_NO_COND_EXEC, MASK_NO_VLIW_BRANCH, MASK_NO_MULTI_CE)
14469	(MASK_FDPIC, MASK_INLINE_PLT, MASK_GPREL_RO, MASK_DEFAULT)
14470	(TARGET_GPR_32, TARGET_FPR_32, TARGET_SOFT_FLOAT, TARGET_ALLOC_CC)
14471	(TARGET_DWORD, TARGET_DOUBLE, TARGET_MEDIA, TARGET_MULADD)
14472	(TARGET_LIBPIC, TARGET_ACC_4, TARGET_DEBUG_ARG, TARGET_DEBUG_ADDR)
14473	(TARGET_DEBUG_STACK, TARGET_DEBUG, TARGET_DEBUG_LOC)
14474	(TARGET_DEBUG_COND_EXEC, TARGET_NO_COND_MOVE, TARGET_NO_SCC)
14475	(TARGET_NO_COND_EXEC, TARGET_NO_VLIW_BRANCH, TARGET_NO_MULTI_CE)
14476	(TARGET_NO_NESTED_CE, TARGET_FDPIC, TARGET_INLINE_PLT, TARGET_BIG_TLS)
14477	(TARGET_GPREL_RO, TARGET_PACK, TARGET_LONG_CALLS, TARGET_ALIGN_LABELS)
14478	(TARGET_LINKED_FP, TARGET_GPR_64, TARGET_FPR_64, TARGET_HARD_FLOAT)
14479	(TARGET_FIXED_CC, TARGET_COND_MOVE, TARGET_SCC, TARGET_COND_EXEC)
14480	(TARGET_VLIW_BRANCH, TARGET_MULTI_CE, TARGET_NESTED_CE, TARGET_ACC_8)
14481	(TARGET_SWITCHES, TARGET_OPTIONS, DEFAULT_CONDEXEC_TEMPS)
14482	(DEFAULT_BRANCH_COST, DEFAULT_CONDEXEC_INSNS): Delete.
14483	* config/frv/frv.c (frv_branch_cost_string, frv_branch_cost_int)
14484	(frv_cpu_string, frv_condexec_insns_str, frv_condexec_insns)
14485	(frv_condexec_temps_str, frv_condexec_temps, frv_sched_lookahead_str)
14486	(frv_sched_lookahead): Delete.
14487	(MASK_DEFAULT_ALLOC_CC): Moved from frv.h.
14488	(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
14489	(frv_handle_option): New function.  Move -mcpu= handling from...
14490	(frv_override_options): ...here.  Remove handling of other
14491	TARGET_OPTIONS.
14492	(frv_ifcvt_modify_tests): Check !TARGET_COND_EXEC instead of
14493	TARGET_NO_COND_EXEC and !TARGET_NESTED_CE to TARGET_NO_NESTED_CE.
14494	(frv_ifcvt_modify_multiple_tests): Likewise !TARGET_MULTI_CE
14495	and TARGET_NO_MULTI_CE.
14496	(frv_for_each_packet): Likewise TARGET_NO_VLIW_BRANCH and
14497	!TARGET_VLIW_BRANCH.
14498	* config/frv/frv.opt: New file.
14499
145002005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
14501
14502	* fold-const.c (fold_ternary): Take decomposed arguments of
14503	CALL_EXPR.
14504	(fold): Update a call to fold_ternary.
14505
14506	* fold-const.c (fold_build1, fold_build2, fold_build3): New.
14507	* tree.h: Add corresponding prototypes.
14508
145092005-03-22  Jakub Jelinek  <jakub@redhat.com>
14510
14511	PR target/20561
14512	* cfglayout.c (reemit_insn_block_notes): Don't put block notes in
14513	between jump table and its label.
14514	* final.c (shorten_branches): Handle notes in between ADDR_VEC
14515	resp. ADDR_DIFF_VEC and the label preceeding it.
14516	(final_scan_insn): Likewise.  Ensure ADDR_VEC resp. ADDR_DIFF_VEC
14517	is emitted in the right section.
14518
145192005-03-22  Kazu Hirata  <kazu@cs.umass.edu>
14520
14521	* fold-const.c (fold_unary, fold_binary): Update comments
14522	about arguments.
14523
145242005-03-22  Hans-Peter Nilsson  <hp@axis.com>
14525
14526	PR rtl-optimization/20527
14527	* combine.c (can_combine_p) [AUTO_INC_DEC]: When INSN has an
14528	REG_INC note, test that the register also isn't mentioned in PRED
14529	or SUCC.
14530
145312005-03-22  Ben Elliston  <bje@au.ibm.com>
14532
14533	* dwarf2out.c (dwarf_type_encoding_name): Remove unused prototype
14534	and definition.
14535
145362005-03-21  Mike Stump  <mrs@apple.com>
14537
14538	* varasm.c (default_assemble_visibility): Remove extra ().
14539
145402005-03-21  Roger Sayle  <roger@eyesopen.com>
14541
14542	PR middle-end/20557
14543	* bb-reorder.c (duplicate_computed_gotos): Use can_duplicate_block_p
14544	to determine whether a block can be duplicated, rather than test
14545	whether the block contains noncopyable insns ourselves.
14546
145472005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
14548
14549	* config/i860/i860.h (PREDICATE_CODES): Remove nonexistent
14550	predicates.
14551
145522005-03-21  Richard Sandiford  <rsandifo@redhat.com>
14553
14554	* config/ip2k/ip2k.h (target_flags, TARGET_SWITCHES): Delete.
14555
145562005-03-21  Richard Sandiford  <rsandifo@redhat.com>
14557
14558	* config/fr30/fr30.h (TARGET_SMALL_MODEL_MASK, TARGET_SMALL_MODEL)
14559	(TARGET_DEFAULT, target_flags, TARGET_SWITCHES): Delete.
14560	* config/fr30/fr30.opt: New file.
14561
145622005-03-18  Daniel Berlin  <dberlin@dberlin.org>
14563
14564	Fix PR tree-optimization/20542
14565
14566	* tree-flow-inline.h (overlap_subvar): Move to here.
14567	* tree-ssa-operands.c: From here.
14568	* tree-flow.h (overlap_subvar): Declare.
14569	* tree-ssa-alias.c (add_pointed_to_var): Use overlap_subvar here.
14570	* tree-ssa-loop-im.c (is_call_clobbered_ref): Return proper answer
14571	for variables with subvars.
14572
145732005-03-21 Mostafa Hagog <mustafa@il.ibm.com>
14574
14575	PR middle-end/20177
14576	* ddg.c (create_ddg_dependence): Ignore reg-anti dependency.
14577	* modulo-sched.c (const_iteration_count): Return on NULL
14578	pre-header.
14579	(print_node_sched_params): Return on NULL dump_file.
14580	(generate_reg_moves): Handle reg-anti dependencies and disregard
14581	closing branch when generating register moves.
14582	(sms_schedule): Mark the SMSed block dirty.
14583	* passes.c (rest_of_handle_sms): Call update_life_info for all
14584	basic-blocks.
14585	* testsuite/gcc.dg/20050321-1.c: New test.
14586
145872005-03-21  Bob Wilson  <bob.wilson@acm.org>
14588
14589	* config/xtensa/lib1funcs.asm (__mulsi3): Use symbolic name for ACCLO.
14590	* config/xtensa/xtensa.md (movsi_internal, movhi_internal,
14591	movqi_internal): Likewise.
14592
145932005-03-21  Bob Wilson  <bob.wilson@acm.org>
14594
14595	* config/xtensa/xtensa-protos.h: (xtensa_simm7, xtensa_uimm8,
14596	xtensa_uimm8x2, xtensa_uimm8x4, xtensa_ai4const, xtensa_lsi4x4,
14597	xtensa_b4const): Delete prototypes.
14598	(xtensa_simm8, xtensa_simm8x256, xtensa_simm12b, xtensa_b4constu,
14599	xtensa_mask_immediate, xtensa_mem_offset): Update prototypes.
14600	(xtensa_b4const_or_zero, xtensa_const_ok_for_letter_p,
14601	xtensa_extra_constraint): New prototypes.
14602	(add_operand, arith_operand, nonimmed_operand, mem_operand,
14603	mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
14604	lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
14605	move_operand, const_float_1_operand, fpmem_offset_operand,
14606	branch_operator, ubranch_operator, boolean_operator): Delete prototypes.
14607	* config/xtensa/xtensa.c (b4const_or_zero): Rename to ...
14608	(xtensa_b4const_or_zero): ...this.  Change return type to bool and
14609	argument type to HOST_WIDE_INT.
14610	(xtensa_simm8, xtensa_simm8x256, xtensa_simm12b,
14611	xtensa_mask_immediate): Likewise.
14612	(xtensa_uimm8, xtensa_uimm8x2, xtensa_uimm8x4, xtensa_b4const):
14613	Likewise.  Also make these functions static.
14614	(xtensa_simm7, xtensa_ai4const, xtensa_lsi4x4): Delete.
14615	(xtensa_const_ok_for_letter_p): New.
14616	(add_operand, arith_operand, nonimmed_operand, mem_operand,
14617	mask_operand, extui_fldsz_operand, sext_operand, sext_fldsz_operand,
14618	lsbitnum_operand, branch_operand, ubranch_operand, call_insn_operand,
14619	move_operand, const_float_1_operand, fpmem_offset_operand,
14620	branch_operator, ubranch_operator, boolean_operator): Move to
14621	predicates.md.
14622	(smalloffset_mem_p): Inline code from xtensa_lsi4x4.
14623	(xtensa_mem_offset): Change return type to bool.
14624	(xtensa_extra_constraint): New.
14625	(gen_int_relational): Update type of const_range_p function pointer.
14626	Use xtensa_b4const_or_zero.
14627	* config/xtensa/xtensa.h (CONST_OK_FOR_LETTER_P): Define to
14628	xtensa_const_ok_for_letter_p.  Update comments.
14629	(EXTRA_CONSTRAINT): Define to xtensa_extra_constraint.
14630	(PREDICATE_CODES): Delete.
14631	* config/xtensa/xtensa.md: Include predicates.md.
14632	* config/xtensa/predicates.md: New file.
14633
146342005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
14635
14636	* config/v850/v850-protos.h: Remove the prototypes for
14637	reg_or_int9_operand, reg_or_const_operand,
14638	pattern_is_ok_for_prepare, pattern_is_ok_for_dispose,
14639	reg_or_0_operand, reg_or_int5_operand, call_address_operand,
14640	movsi_source_operand, power_of_two_operand,
14641	not_power_of_two_operand, special_symbolref_operand,
14642	pattern_is_ok_for_prologue, pattern_is_ok_for_epilogue, and
14643	register_is_ok_for_epilogue.
14644	* config/v850/v850.c (reg_or_0_operand, reg_or_int5_operand,
14645	reg_or_int9_operand, reg_or_const_operand,
14646	call_address_operand, special_symbolref_operand,
14647	movsi_source_operand, power_of_two_operand,
14648	not_power_of_two_operand, register_is_ok_for_epilogue,
14649	pattern_is_ok_for_epilogue, pattern_is_ok_for_prologue,
14650	pattern_is_ok_for_dispose, pattern_is_ok_for_prepare): Move to
14651	predicates.md.
14652	* config/v850/v850.h (PREDICATE_CODES): Remove.
14653	* config/v850/v850.md: Include predicates.md.
14654	* config/v850/predicates.md: New.
14655
146562005-03-21  Zack Weinberg  <zack@codesourcery.com>
14657
14658	* Makefile.in (BASEVER, DEVPHASE, DATESTAMP)
14659	(BASEVER_c, DEVPHASE_c, DATESTAMP_c)
14660	(BASEVER_s, DEVPHASE_s, DATESTAMP_s, version): Set with :=.
14661	(itoolsdir, itoolsdatadir): Move definition above new first use.
14662	(install-itoolsdirs): New rule.
14663	(install-mkheaders): Depend on install-itoolsdirs, not
14664	install-include-dir.
14665
146662005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
14667
14668	* tree-into-ssa.c: Remove obsolete comments.
14669
146702005-03-21  Richard Guenther  <rguenth@gcc.gnu.org>
14671
14672	* tree-ssa-loop.c (gate_tree_complete_unroll): Run complete
14673	unrolling if -fpeel-loops is specified, too.
14674	* tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
14675	Remove superfluous check for flag_unroll_loops.
14676
146772005-03-21  Uros Bizjak  <uros@kss-loka.si>
14678
14679	* optabs.h (enum optab_index): Add new OTI_lrint and OTI_llrint.
14680	(lrint_optab, llrint_optab): Define corresponding macros.
14681	* optabs.c (init_optabs): Initialize lrint_optab and llrint_optab.
14682	* genopinit.c (optabs): Implement lrint_optab using lrintsi2
14683	pattern and llrint_optab using llrintdi2 patterns.
14684	* builtins.c (expand_builtin_mathfn): Handle BUILT_IN_LRINT{,F,L}
14685	using lrint_optab and BUILT_IN_LLRINT{,F,L} using llrint_optab.
14686	(expand_builtin): Expand BUILT_IN_LRINT{,F,L} and
14687	BUILT_IN_LLRINT{,F,L} using expand_builtin_mathfn if
14688	flag_unsafe_math_optimizations is set.
14689
146902005-03-21  Paolo Bonzini  <bonzini@gnu.org>
14691
14692	* combine.c (combine_simplify_rtx, simplify_if_then_else,
14693	simplify_logical, if_then_else_cond, known_cond,
14694	simplify_comparison): Adjust calls to reverse_comparison.
14695	Don't use combine_reversed_comparison_code).
14696	(combine_reversed_comparison_code): Remove.
14697	(reversed_comparison): Using reversed_comparison_code, move it...
14698	* jump.c (reversed_comparison): ... here.
14699	* rtl.h (reversed_comparison): Add prototype.
14700
147012005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
14702
14703	* builtins.c (fold_builtin): Take decomposed arguments of
14704	CALL_EXPR.
14705	* fold-const.c (fold_ternary): Update a call to fold_builtin.
14706	* gimplify.c (gimplify_call_expr): Likewise.
14707	* tree-ssa-ccp.c (ccp_fold, ccp_fold_builtin): Likewise.
14708	* tree.h: Update the prototype of fold_builtin.
14709
147102005-03-21  Paolo Bonzini  <bonzini@gnu.org>
14711
14712	* rtl.h (struct rtx_hooks): Add gen_lowpart_no_emit.
14713	* rtlhooks.c (gen_lowpart_no_emit_general): New.
14714	* rtlhooks-def.h (gen_lowpart_no_emit_general): Declare.
14715	(RTL_HOOKS_GEN_LOWPART_NO_EMIT): New.
14716	* simplify-rtx.c (simplify_binary_operation_1): Use it.
14717
147182005-03-21  Kazu Hirata  <kazu@cs.umass.edu>
14719
14720	* builtins.c (fold_builtin_1): Take decomposed arguments of
14721	CALL_EXPR.
14722	(fold_builtin): Update a call to fold_builtin_1.
14723
147242005-03-21  Nathan Sidwell  <nathan@codesourcery.com>
14725
14726	PR other/20564
14727	* gcov.c (output_lines): Only output function block summary when
14728	outputting branch information.
14729	* doc/gcov.texi: Document format of preamble and additional block
14730	information lines.
14731
147322005-03-21  Richard Sandiford  <rsandifo@redhat.com>
14733
14734	* libgcc2.h (LIBGCC2_HAS_SF_MODE): New macro.
14735	(LIBGCC2_HAS_DF_MODE, LIBGCC2_HAS_TF_MODE, LIBGCC2_HAS_XF_MODE): Make
14736	the defaults false if BITS_PER_UNIT != 8.
14737	(SFtype, SCtype, __fixsfdi, __floatdisf, __fixunssfSI, __fixunssfDI)
14738	(__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE rather
14739	than BITS_PER_UNIT != 8.
14740	(L_fixdfdi, L_fixsfdi, L_fixtfdi, L_fixunsdfdi, L_fixunsdfsi)
14741	(L_fixunssfdi, L_fixunssfsi, L_fixunstfdi, L_fixunsxfdi, L_fixunsxfsi)
14742	(L_fixxfdi, L_floatdidf, L_floatdisf, L_floatditf, L_floatdixf): Remove
14743	#undefs.
14744	* libgcc2.c (__fixunssfDI, __fixsfdi, __floatdisf, __fixunssfSI)
14745	(__powisf2, __divsc3, __mulsc3): Guard with LIBGCC2_HAS_SF_MODE.
14746
147472005-03-20  Roger Sayle  <roger@eyesopen.com>
14748
14749	PR middle-end/20539
14750	* fold-const.c (fold_binary): Fix type mismatch between
14751	TRUTH_{AND,OR,XOR}_EXPR nodes an their operands' types.
14752	(fold_binary) <TRUTH_XOR_EXPR>: Avoid calling invert_truthvalue
14753	for non-truth-valued expressions.
14754
14755	* c-common.c (c_common_truthvalue_conversion): Handle ERROR_MARK
14756	and FUNCTION_DECL in the main switch.
14757	<TRUTH_ANDIF_EXPR, TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR,
14758	TRUTH_XOR_EXPR>: When changing the result type of these tree nodes,
14759	we also need to convert their operands to match.
14760	<TRUTH_NOT_EXPR>: Likewise.
14761
147622005-03-21  Joseph S. Myers  <joseph@codesourcery.com>
14763
14764	* c-common.c (lvalue_or_else): Replace by lvalue_error; only give
14765	diagnostic without checking whether an lvalue.
14766	* c-common.h (lvalue_p): Remove.
14767	(enum lvalue_use): Update comment.
14768	(lvalue_or_else): Replace by lvalue_error.
14769	* c-typeck.c (lvalue_p): Make static.
14770	(lvalue_or_else): New.  Call lvalue_error.
14771
147722005-03-21  Alan Modra  <amodra@bigpond.net.au>
14773
14774	* config/rs6000/rs6000.c (rs6000_parm_start): New function.
14775	(function_arg_advance): Use rs6000_parm_start.
14776	(function_arg, rs6000_arg_partial_bytes): Likewise.
14777
147782005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
14779
14780	* c-common.c (check_case_value): Adjust comment about stripping
14781	NOPs.
14782	(handle_vector_size_attribute): Don't strip NON_LVALUE_EXPR.
14783	* c-typeck.c (default_conversion, convert_arguments,
14784	build_modify_expr, convert_for_assignment, store_init_value,
14785	digest_init): Use STRIP_TYPE_NOPS instead of stripping nops
14786	manually.  Remove inaccurate comments.
14787
147882005-03-20  Roger Sayle  <roger@eyesopen.com>
14789	    Joseph S. Myers  <joseph@codesourcery.com>
14790
14791	* varasm.c (do_assemble_alias): Restore comment describing function.
14792	Annotate the target parameter as potentially unused.
14793
147942005-03-20  Marek Michalkiewicz  <marekm@amelek.gda.pl>
14795
14796	PR target/18551
14797	* config/avr/avr.c (avr_output_function_prologue): Do not use
14798	current_function_name() in a label, use a local label instead.
14799
148002005-03-20  David Edelsohn  <edelsohn@gnu.org>
14801
14802	* config/rs6000/rs6000.c (rs6000_generate_compare): Test
14803	flag_finite_math_only, not flag_unsafe_math_optimizations.
14804
148052005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
14806
14807	* builtins.c (fold_builtin_1): Update a call to
14808	targetm.fold_builtin.
14809	* hooks.c (hook_tree_tree_bool_null): Rename to
14810	hook_tree_tree_tree_bool_null.  Take one more argument of type
14811	tree.
14812	* hooks.h: Update the prototype of hook_tree_tree_bool_null.
14813	* target-def.h (TARGET_FOLD_BUILTIN): Define it as
14814	hook_tree_tree_tree_bool_null.
14815	* target.h (gcc_target): Update the prototype of fold_builtin.
14816	* config/alpha/alpha.c (alpha_fold_builtin): Take decomposed
14817	arguments of CALL_EXPR.
14818	* doc/tm.texi (TARGET_FOLD_BUILTIN): Update.  Mention the
14819	new prototype.
14820
148212005-03-20  Jan Hubicka  <jh@suse.cz>
14822
14823	* cgraph.h (cgraph_node): Add prev_clone pointer.
14824	* cgraph.c (cgraph_remove_node): Remove from doubly linked chain.
14825	(cgraph_clone_node): Produce doubly linked chain.
14826
148272005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
14828
14829	* c-common.c (handle_aligned_attribute, check_function_sentinel,
14830	get_nonnull_operand, handle_sentinel_attribute,
14831	check_function_arguments_recurse): Do not strip NOPS from
14832	INTEGER_CSTs.
14833	* c-decl.c (check_bitfield_type_and_width, build_enumerator):
14834	Likewise.
14835	* c-format.c (get_constant): Likewise.
14836	* c-parser.c (c_parser_postfix_expression): Likewise.
14837	* c-typeck.c (set_init_index): Likewise.
14838	(convert_arguments): Don't check for NOP_EXPR containing integer
14839	constant.
14840
148412005-03-20  Kazu Hirata  <kazu@cs.umass.edu>
14842
14843	* builtins.c (fold_fixed_mathfn, fold_builtin_trunc,
14844	fold_builtin_floor, fold_builtin_ceil, fold_builtin_lround):
14845	Take decomposed arguments of CALL_EXPR.
14846	(fold_builtin_1): Update calls to the functions mentioned
14847	above.
14848
148492005-03-20  Joseph S. Myers  <joseph@codesourcery.com>
14850
14851	* c-decl.c (check_bitfield_type_and_width): Require bit-field
14852	width to have integer type.
14853	(build_enumerator): Require enumerator value to have integer type.
14854
148552005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
14856
14857	* doc/extend.texi (__builtin_inf): Move statement about INFINITY
14858	to __builtin_inff.
14859
148602005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
14861
14862	* c.opt (ansi, std=iso9899:1990, std=iso9899:1999,
14863	std=iso9899:199x): Correct descriptions.
14864
148652005-03-19  Joseph S. Myers  <joseph@codesourcery.com>
14866
14867	* config.gcc: Consistently use solaris2.1[0-9]* instead of
14868	solaris2.1[0-9].
14869
148702005-03-19  Kazu Hirata  <kazu@cs.umass.edu>
14871
14872	* builtins.c (fold_builtin_memcpy): Take decomposed arguments
14873	of CALL_EXPR.
14874	(expand_builtin_memcpy, fold_builtin_1): Update calls to
14875	fold_builtin_memcpy.
14876
14877	* builtins.c (fold_trunc_transparent_mathfn): Take decomposed
14878	arguments of CALL_EXPR.
14879	(fold_builtin_trunc, fold_builtin_floor, fold_builtin_ceil,
14880	fold_builtin_found, fold_builtin_1): Update calls to
14881	fold_trunc_transparent_mathfn.
14882
148832005-03-19  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
14884
14885	PR middle-end/20493
14886	* fold-const.c (fold_widened_comparison): Don't optimize casts of
14887	function pointers on targets that require function pointer
14888	canonicalization.
14889	(fold_sign_changed_comparison): Likewise.
14890
148912005-03-19  Bernd Schmidt  <bernd.schmidt@analog.com>
14892
14893	* combine.c (try_combine): When changing the mode of a hard reg, make
14894	sure that doing so is valid.
14895
148962005-03-19  Richard Sandiford  <rsandifo@redhat.com>
14897
14898	* config/avr/avr.c (avr_init_stack, avr_mcu_name): Make static.
14899	(TARGET_HANDLE_OPTION): Override default.
14900	(avr_handle_option): New function.
14901	* config/avr/avr.h (MASK_ALL_DEBUG, MASK_ORDER_1, MASK_INSN_SIZE_DUMP)
14902	(MASK_ORDER_2, MASK_NO_TABLEJUMP, MASK_INT8, MASK_NO_INTERRUPTS)
14903	(MASK_CALL_PROLOGUES, MASK_TINY_STACK, MASK_SHORT_CALLS)
14904	(TARGET_ORDER_1, TARGET_ORDER_2, TARGET_INT8, TARGET_NO_INTERRUPTS)
14905	(TARGET_INSN_SIZE_DUMP, TARGET_CALL_PROLOGUES, TARGET_TINY_STACK)
14906	(TARGET_NO_TABLEJUMP, TARGET_SHORT_CALLS, TARGET_ALL_DEBUG)
14907	(TARGET_SWITCHES, avr_init_stack, avr_mcu_name)
14908	(TARGET_OPTIONS): Delete.
14909	* config/avr/avr.opt: New file.
14910
149112005-03-18  2005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
14912
14913	* config/m32r/m32r-protos.h: Remove the prototypes for
14914	call_address_operand, symbolic_operand, seth_add3_operand,
14915	cmp_int16_operand, uint16_operand, reg_or_int16_operand,
14916	reg_or_uint16_operand, reg_or_cmp_int16_operand,
14917	two_insn_const_operand, move_src_operand,
14918	move_double_src_operand, move_dest_operand,
14919	eqne_comparison_operator, signed_comparison_operator,
14920	large_insn_p, conditional_move_operand, carry_compare_operand,
14921	m32r_block_immediate_operand, extend_operand,
14922	reg_or_eq_int16_operand, int8_operand, and
14923	reg_or_zero_operand.
14924	* config/m32r/m32r.c (call_address_operand, symbolic_operand,
14925	seth_add3_operand, int8_operand, cmp_int16_operand,
14926	uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
14927	reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
14928	reg_or_zero_operand, two_insn_const_operand, move_src_operand,
14929	move_double_src_operand, move_dest_operand,
14930	eqne_comparison_operator, signed_comparison_operator,
14931	extend_operand, small_insn_p, large_insn_p,
14932	conditional_move_operand, carry_compare_operand,
14933	m32r_block_immediate_operand): Move to predicates.md.
14934	(MAX_MOVE_BYTES): Move to m32r.h.
14935	* config/m32r/m32r.h (PREDICATE_CODES): Remove.
14936	* config/m32r/m32r.md: Include predicates.md.
14937	* config/m32r/predicates.md: New.
14938
149392005-03-18  James E Wilson  <wilson@specifixinc.com>
14940
14941	PR c++/19769
14942	* dwarf2out.c (declare_in_namespace): Ignore decls with an abstract
14943	origin.
14944
149452005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
14946
14947	* config/mn10300/mn10300-protos.h: Remove the prototypes for
14948	call_address_operand, const_8bit_operand.
14949	* config/mn10300/mn10300.c (call_address_operand,
14950	const_8bit_operand, const_1f_operand): Move to predicates.md.
14951	* config/mn10300/mn10300.h (PREDICATE_CODES): Remove.
14952	* config/mn10300/mn10300.md: Include predicates.md.
14953	* config/mn10300/predicates.md: New.
14954
149552005-03-18  Joseph S. Myers  <joseph@codesourcery.com>
14956
14957	* c-common.c, c-decl.c, c-format.c, c-typeck.c: Use %D for
14958	declarations in diagnostics and %E for identifiers, not %s.
14959
149602005-03-18  Jan Hubicka  <jh@suse.cz>
14961	    Dale Johannesen  <dalej@apple.com>
14962
14963	* basic-block.h (scale_bbs_frequencies_int,
14964	scale_bbs_frequencies_gcov_type): Declare.
14965	* cfg.c (RDIV): New macro.
14966	(update_bb_frequency_for_threading): Fix.
14967	* basic-block.h (scale_bbs_frequencies_int,
14968	scale_bbs_frequencies_gcov_type): New.
14969	* cfgloopmanip.c (scale_bbs_frequencies): Kill.
14970	(scale_loop_frequencies, duplicate_loop_to_header_edge): Use
14971	scale_bbs_frequencies_int.
14972	* tree-ssa-loop-ch.c (copy_loop_headers): Fix profiling info.
14973
149742005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
14975
14976	* config/m32r/m32r-protos.h: Remove the prototypes for
14977	call_address_operand, symbolic_operand, seth_add3_operand,
14978	cmp_int16_operand, uint16_operand, reg_or_int16_operand,
14979	reg_or_uint16_operand, reg_or_cmp_int16_operand,
14980	two_insn_const_operand, move_src_operand,
14981	move_double_src_operand, move_dest_operand,
14982	eqne_comparison_operator, signed_comparison_operator,
14983	large_insn_p, conditional_move_operand, carry_compare_operand,
14984	m32r_block_immediate_operand, extend_operand,
14985	reg_or_eq_int16_operand, int8_operand, and
14986	reg_or_zero_operand.
14987	* config/m32r/m32r.c (call_address_operand, symbolic_operand,
14988	seth_add3_operand, int8_operand, cmp_int16_operand,
14989	uint16_operand, reg_or_int16_operand, reg_or_uint16_operand,
14990	reg_or_eq_int16_operand, reg_or_cmp_int16_operand,
14991	reg_or_zero_operand, two_insn_const_operand, move_src_operand,
14992	move_double_src_operand, move_dest_operand,
14993	eqne_comparison_operator, signed_comparison_operator,
14994	extend_operand, small_insn_p, large_insn_p,
14995	conditional_move_operand, carry_compare_operand,
14996	m32r_block_immediate_operand): Move to predicates.md.
14997	(MAX_MOVE_BYTES): Move to m32r.h.
14998	* config/m32r/m32r.h (PREDICATE_CODES): Remove.
14999	* config/m32r/m32r.md: Include predicates.md.
15000	* config/m32r/predicates.md: New.
15001
15002	* config/pa/pa-protos.h: Add prototypes for magic_milli and
15003	shadd_constant_p.
15004	* config/pa/pa.c (reg_or_0_operand, call_operand_address,
15005	symbolic_operand, symbolic_memory_operand,
15006	reg_or_0_or_nonsymb_mem_operand, reg_before_reload_operand,
15007	indexed_memory_operand, move_dest_operand, move_src_operand,
15008	prefetch_cc_operand, prefetch_nocc_operand,
15009	reg_or_cint_move_operand, pic_label_operand, fp_reg_operand,
15010	arith_operand, arith11_operand, pre_cint_operand,
15011	post_cint_operan, arith_double_operand, ireg_or_int5_operand,
15012	ireg_operand, int5_operand, uint5_operand, int11_operand,
15013	uint32_operand, arith5_operand, and_operand, ior_operand,
15014	lhs_lshift_operand, lhs_lshift_cint_operand, arith32_operand,
15015	pc_or_label_operand, div_operand, plus_xor_ior_operator,
15016	shadd_operand, movb_comparison_operator,
15017	cmpib_comparison_operator): Move to predicates.md.
15018	(magic_milli, shadd_constant_p): Make it extern.
15019	* config/pa/pa.h (PREDICATE_CODES): Remove.
15020	* config/pa/pa.md: Include predicates.md.
15021	* config/pa/predicates.md: New.
15022
15023	* config/v850/v850.h (PREDICATE_CODES): Remove a nonexistent
15024	predicate.
15025
150262005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
15027
15028	* hooks.c, hooks.h, intl.c, opts.h, prefix.c, tree-gimple.c,
15029	config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md,
15030	config/alpha/freebsd.h, config/alpha/linux.h,
15031	config/alpha/netbsd.h, config/alpha/osf5.h,
15032	config/alpha/vms.h, config/arc/arc.c, config/arc/arc.h,
15033	config/h8300/h8300-protos.h, config/h8300/h8300.c,
15034	config/h8300/h8300.h, config/ia64/unwind-ia64.c,
15035	doc/cppopts.texi: Update copyright.
15036
150372005-03-18  Jan Hubicka  <jh@suse.cz>
15038
15039	PR middle-end/20225
15040	* cgraph.c (cgraph_mark_reachable_node): Assert that it is not called
15041	too late.
15042	* varasm.c (find_decl_and_mark_needed): Mark needed only when not
15043	called too late.
15044
150452005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
15046
15047	* tree-into-ssa.c (find_idf): Use VEC_quick_push instead of
15048	VEC_safe_push.
15049
150502005-03-18  Paolo Bonzini  <bonzini@gnu.org>
15051
15052	* combine.c (gen_binary): Remove.
15053	(known_cond, simplify_shift_const, find_split_point,
15054	combine_simplify_rtx, simplify_if_then_else, simplify_set,
15055	simplify_logical, expand_field_assignment, extract_left_shift,
15056	force_to_mode, if_then_else_cond, apply_distributive_law,
15057	simplify_and_const_int, simplify_shift_const, gen_lowpart_for_combine,
15058	simplify_comparison, reversed_comparison): Replace with
15059	simplify_gen_binary, simplify_gen_relational or
15060	distribute_and_simplify_rtx.
15061	(distribute_and_simplify_rtx): New function.
15062
150632005-03-18  Alexey Neyman  <alex.neyman@auriga.ru>
15064	    Paolo Bonzini  <gcc.gnu.org>
15065
15066	* calls.c (setjmp_call_p, special_function_p): Update comments
15067	at the head of the functions.
15068
150692005-03-18  Jan Hubicka  <jh@suse.cz>
15070
15071	* tree-cfg.c (fold_cond_expr_cond): Use boolean types for condition.
15072
15073	* cgraph.c (cgraph_remove_node): Avoid loop in code deciding whether
15074	function body should be released; do not proactively release function
15075	bodies in non-unit-at-a-time mode.
15076
150772005-03-18  Ralf Corsepius  <ralf.corsepius@rtems.org>
15078
15079	* config/i386/t-rtems-i386 (MULTILIBS): Remove k6, athlon,
15080	mno-fp-ret-in-387 multilib variants.
15081
150822005-03-18  Richard Sandiford  <rsandifo@redhat.com>
15083
15084	* common.opt (m): Remove.
15085	* opts.c (handle_option): Pass 'm' options to set_target_switch if
15086	table lookup fails.
15087	(common_handle_option): Remove OPT_m case.
15088
150892005-03-18  Kazu Hirata  <kazu@cs.umass.edu>
15090
15091	* builtins.c (fold_builtin_bitop): Take decomposed arguments
15092	of CALL_EXPR.
15093	(fold_builtin_1): Update a call to fold_builtin_bitop.
15094
15095	* builtins.c (fold_builtin_signbit): Take decomposed arguments
15096	of CALL_EXPR.
15097	(fold_builtin_1): Update a call to fold_builtin_signbit.
15098
150992005-03-17  Dorit Naishlos  <dorit@il.ibm.com>
15100
15101	PR tree-optimization/20474
15102	* tree-vect-analyze.c (vect_analyze_pointer_ref_access): Check the
15103	size_type of the relevant pointer. Check for COMPLETE_TYPE_P.
15104
151052005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
15106
15107	* config/h8300/h8300-protos.h: Remove prototypes for
15108	general_operand_src, general_operand_dst, single_one_operand,
15109	single_zero_operand, call_insn_operand,
15110	two_insn_adds_subs_operand, small_call_insn_operand,
15111	jump_address_operand, bit_operand, bit_memory_operand,
15112	stack_pointer_operand, const_int_gt_2_operand,
15113	const_int_ge_8_operand, const_int_qi_operand,
15114	const_int_hi_operand, incdec_operand, bit_operator,
15115	nshift_operator, eqne_operator, gtle_operator,
15116	gtuleu_operator, iorxor_operator.
15117	Add prototypes for h8sx_shift_type h8sx_classify_shift and
15118	h8300_ldm_stm_parallel.
15119	* config/h8300/h8300.c (h8sx_shift_type,): Move to
15120	h8300-protos.h.
15121	(SYMBOL_FLAG_FUNCVEC_FUNCTION, SYMBOL_FLAG_EIGHTBIT_DATA,
15122	SYMBOL_FLAG_TINY_DATA): Move to h8300.h.
15123	(h8300_ldm_stm_parallel): Make it extern.
15124	(h8300_ldm_parallel, h8300_stm_parallel,
15125	h8300_return_parallel, general_operand_src,
15126	general_operand_dst, h8300_dst_operand, h8300_src_operand,
15127	nibble_operand, reg_or_nibble_operand, single_one_operand,
15128	single_zero_operand, call_insn_operand,
15129	two_insn_adds_subs_operand, small_call_insn_operand,
15130	jump_address_operand, bit_operand, bit_memory_operand,
15131	stack_pointer_operand, const_int_gt_2_operand,
15132	const_int_ge_8_operand, const_int_qi_operand,
15133	const_int_hi_operand, incdec_operand, eqne_operator,
15134	gtle_operator, gtuleu_operator, iorxor_operator, bit_operator,
15135	h8sx_binary_memory_operator, h8sx_unary_memory_operator,
15136	h8sx_unary_shift_operator, h8sx_binary_shift_operator,
15137	nshift_operator): Move to predicates.md.
15138	* config/h8300/h8300.h (PREDICATE_CODES): Remove.
15139	* config/h8300/h8300.md: Include predicates.md.
15140	* config/h8300/predicates.md: New.
15141
151422005-03-17  Richard Henderson  <rth@redhat.com>
15143
15144	* config.gcc (ia64*-*-hpux*): Add extra_options.
15145	* config/ia64/hpux.h (SUBTARGET_SWITCHES): Remove.
15146	(TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
15147	* config/ia64/ia64.c (ia64_fixed_range_string): Remove.
15148	(ia64_tls_size_string, ia64_tune_string): Remove.
15149	(ia64_tune): Init to PROCESSOR_ITANIUM2.
15150	(TARGET_DEFAULT_TARGET_FLAGS): New.
15151	(TARGET_HANDLE_OPTION): New.
15152	(ia64_override_options): Move options parsing ...
15153	(ia64_handle_option): ... here.  New.
15154	* config/ia64/ia64.h (target_flags, MASK_BIG_ENDIAN, MASK_GNU_AS,
15155	MASK_GNU_LD, MASK_NO_PIC, MASK_VOL_ASM_STOP, MASK_ILP32,
15156	MASK_REG_NAMES, MASK_NO_SDATA, MASK_CONST_GP, MASK_AUTO_PIC,
15157	MASK_INLINE_FLOAT_DIV_LAT, MASK_INLINE_FLOAT_DIV_THR,
15158	MASK_INLINE_INT_DIV_LAT, MASK_INLINE_INT_DIV_THR,
15159	MASK_INLINE_SQRT_LAT, MASK_INLINE_SQRT_THR, MASK_DWARF2_ASM,
15160	MASK_EARLY_STOP_BITS, TARGET_BIG_ENDIAN, TARGET_GNU_AS, TARGET_GNU_LD,
15161	TARGET_NO_PIC, TARGET_VOL_ASM_STOP, TARGET_ILP32, TARGET_REG_NAMES,
15162	TARGET_NO_SDATA, TARGET_CONST_GP, TARGET_AUTO_PIC,
15163	TARGET_INLINE_FLOAT_DIV_LAT, TARGET_INLINE_FLOAT_DIV_THR,
15164	TARGET_INLINE_INT_DIV_LAT, TARGET_INLINE_INT_DIV_THR,
15165	TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_INT_DIV, TARGET_INLINE_SQRT_LAT,
15166	TARGET_INLINE_SQRT_THR, TARGET_INLINE_SQRT, TARGET_DWARF2_ASM,
15167	TARGET_EARLY_STOP_BITS): Remove.
15168	(TARGET_ILP32): Default false.
15169	(TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS): Remove.
15170	(enum ia64_inline_type): New.
15171	(TARGET_DEFAULT): Remove MASK_INLINE_FLOAT_DIV_THR.
15172	* config/ia64/ia64.md: Update for new definitions of
15173	TARGET_INLINE_INT_DIV, TARGET_INLINE_FLOAT_DIV, TARGET_INLINE_SQRT.
15174	* config/ia64/ia64.opt: New file.
15175	* config/ia64/ilp32.opt: New file.
15176
151772005-03-17  H.J. Lu  <hongjiu.lu@intel.com>
15178
15179	PR target/18380
15180	* config/ia64/unwind-ia64.c (_Unwind_FindTableEntry): Removed.
15181
151822005-03-17  Kazu Hirata  <kazu@cs.umass.edu>
15183
15184	* config/h8300/h8300.c (h8300_init_once): Use MASK_H8300S_1
15185	instead of MASK_H8300S.
15186	* config/h8300/h8300.h (target_flags, MASK_H8300S, MASK_MAC,
15187	MASK_INT32, MASK_ADDRESSES, MASK_QUICKCALL, MASK_SLOWBYTE,
15188	MASK_NORMAL_MODE, MASK_RELAX, MASK_H8300H, MASK_ALIGN_300,
15189	MASK_H8300SX, TARGET_INT32, TARGET_ADDRESSES,
15190	TARGET_QUICKCALL, TARGET_SLOWBYTE, TARGET_H8300H,
15191	TARGET_H8300XS, TARGET_NORMAL_MODE, TARGET_ALIGN_300,
15192	TARGET_SWITCHES): Remove.
15193	(TARGET_H8300S): Redefine interms of TARGET_H8300S_1 and
15194	TARGET_H8300SX.
15195	* config/h8300/h8300.opt: New.
15196
15197	* config/alpha/alpha.opt, config/arc/arc.opt,
15198	config/h8300/h8300.opt, config/mips/mips.opt: Add copyright
15199	notices.
15200
152012005-03-17  Ian Lance Taylor  <ian@airs.com>
15202
15203	* gmon.c: Remove.
15204
152052005-03-17  Richard Sandiford  <rsandifo@redhat.com>
15206
15207	* config/arc/arc.c (arc_cpu_string): Make static.  Default to "base"
15208	(arc_text_string, arc_data_string, arc_rodata_string): Make static.
15209	(TARGET_HANDLE_OPTION): Override default.
15210	(arc_handle_option): New function.
15211	(arc_init): Remove code to set arch_cpu_string.
15212	* config/arc/arc.h (target_flags, TARGET_MASK_MANGLE_CPU)
15213	(TARGET_MANGLE_CPU, TARGET_MASK_MANGLE_CPU_LIBGCC)
15214	(TARGET_MANGLE_CPU_LIBGCC, TARGET_MASK_ALIGN_LOOPS, TARGET_ALIGN_LOOPS)
15215	(TARGET_MASK_BIG_ENDIAN, TARGET_BIG_ENDIAN, TARGET_MASK_NO_COND_EXEC)
15216	(TARGET_NO_COND_EXEC, TARGET_SWITCHES, TARGET_DEFAULT)
15217	(SUBTARGET_SWITCHES, arc_cpu_string, arc_text_string, arc_data_string)
15218	(arc_rodata_string, TARGET_OPTIONS): Delete.
15219	* config/arc/arc.opt: New file.
15220
152212005-03-17  Richard Henderson  <rth@redhat.com>
15222
15223	* doc/extend.texi (Weak Pragmas): New section.
15224	(attribute alias): Clarify that target must be in the same
15225	translation unit.
15226
152272005-03-17  Richard Henderson  <rth@redhat.com>
15228
15229	* config/alpha/alpha.opt: New file.
15230	* config/alpha/alpha.c (alpha_tune): New.  Rename all existing uses
15231	of alpha_cpu.
15232	(alpha_cpu_string, alpha_tune_string, alpha_tp_string,
15233	alpha_fprm_string, alpha_fptm_string): Make static.
15234	(alpha_tls_size_string): Remove.
15235	(alpha_handle_option): New.
15236	(override_options): Update for alpha_cpu/alpha_tune split.
15237	(alpha_file_start): Likewise.
15238	(TARGET_DEFAULT_TARGET_FLAGS): New.
15239	(TARGET_HANDLE_OPTION): New.
15240	* config/alpha/alpha.h (alpha_tune): Declare.
15241	(MASK_FP, MASK_FPREGS, TARGET_FPREGS, MASK_GAS, TARGET_GAS,
15242	MASK_IEEE_CONFORMANT, TARGET_IEEE_CONFORMANT, MASK_IEEE, TARGET_IEEE,
15243	MASK_IEEE_WITH_INEXACT, TARGET_IEEE_WITH_INEXACT, MASK_BUILD_CONSTANTS,
15244	TARGET_BUILD_CONSTANTS, MASK_FLOAT_VAX, TARGET_FLOAT_VAX, MASK_BWX,
15245	TARGET_BWX, MASK_MAX, TARGET_MAX, MASK_FIX, TARGET_FIX, MASK_CIX,
15246	TARGET_CIX, MASK_EXPLICIT_RELOCS, TARGET_EXPLICIT_RELOCS,
15247	MASK_SMALL_DATA, TARGET_SMALL_DATA, MASK_TLS_KERNEL, TARGET_TLS_KERNEL,
15248	MASK_SMALL_TEXT, TARGET_SMALL_TEXT, MASK_LONG_DOUBLE_128,
15249	TARGET_LONG_DOUBLE_128, MASK_CPU_EV5, TARGET_CPU_EV5, MASK_CPU_EV6,
15250	TARGET_CPU_EV6, MASK_SUPPORT_ARCH): Remove.
15251	(TARGET_SWITCHES, TARGET_OPTIONS): Remove.
15252	(TARGET_DEFAULT): Remove MASK_FP.
15253	(TARGET_FP): Redefined based on TARGET_SOFT_FP.
15254	(TARGET_SUPPORT_ARCH): Default on if HAVE_AS_EXPLICIT_RELOCS.
15255	(alpha_cpu_string, alpha_tune_string, alpha_fprm_string,
15256	alpha_fptm_string, alpha_tp_string, alpha_mlat_string,
15257	alpha_tls_size_string): Remove.
15258	* config/alpha/alpha.md (prefetch): Use alpha_cpu.
15259	(attribute tune): Rename from attribute cpu.
15260	* config/alpha/ev4.md: Update to match.
15261	* config/alpha/ev5.md, config/alpha/ev6.md: Likewise.
15262	* config/alpha/freebsd.h (TARGET_DEFAULT): Remove MASK_FP.
15263	* config/alpha/linux.h (TARGET_DEFAULT): Likewise.
15264	* config/alpha/netbsd.h (TARGET_DEFAULT): Likewise.
15265	* config/alpha/osf5.h (TARGET_DEFAULT): Likewise.
15266	* config/alpha/vms.h (TARGET_DEFAULT): Likewise.
15267
152682005-03-16  James E. Wilson  <wilson@specifixinc.com>
15269
15270	* config/ia64/ia64.c (issue_nops_and_insn): Check first_insn attribute,
15271	and return without creating new state if before_nops_num is nonzero.
15272	* config/ia64/ia64.md (first_insn): New attribute.
15273	(alloc): Set it to yes.
15274
152752005-03-16  Daniel Berlin  <dberlin@dberlin.org>
15276
15277	* tree-vectorizer.c (new_vec_stmt_info): Initialize
15278	STMT_VINFO_SUBVARS to NULL.
15279	* tree-vect-analyze.c (vect_analyze_data_refs): Ditto.
15280
152812005-03-16 Dale Johannesen  <dalej@apple.com>
15282
15283	* rtlanal.c (find_first_parameter_load):  Rewrite to
15284	return actual first param load or the call if none,
15285	instead of first in block, when not all loads exist.
15286
152872005-03-16  Roger Sayle  <roger@eyesopen.com>
15288
15289	* optabs.c (expand_copysign_absneg): Make static.
15290	* optabs.h (expand_copysign_absneg): Delete prototype.
15291	* config/rs6000/rs6000.md (copysigntf3): Delete pattern.
15292
152932005-03-16  Richard Henderson  <rth@redhat.com>
15294
15295	PR middle-end/15700
15296	* varasm.c (struct alias_pair): Rename from struct output_def_pair.
15297	(alias_pairs): Rename from output_defs.
15298	(find_decl_and_mark_needed): Split out from assemble_alias.
15299	(do_assemble_alias): New.
15300	(assemble_output_def): Remove.
15301	(finish_aliases_1, finish_aliases_2): New.
15302	(process_pending_assemble_output_defs): Remove.
15303	(assemble_alias): Defer aliases for which we don't yet have a
15304	non-external decl for the target symbol.
15305	* passes.c (rest_of_decl_compilation): Register variables with cgraph.
15306	* cgraphunit.c (cgraph_finalize_compilation_unit): Use finish_aliases_1.
15307	* toplev.c (compile_file): Use finish_aliases_2 instead of
15308	process_pending_assemble_output_defs.
15309	* tree.h (finish_aliases_1, finish_aliases_2): Declare.
15310	(process_pending_assemble_output_defs): Remove.
15311
153122005-03-16  Daniel Berlin  <dberlin@dberlin.org>
15313
15314	Fix PR tree-optimization/20489
15315
15316	* tree-ssa-alias.c (push_fields_onto_fieldstack): DTRT
15317	for empty structures.
15318
153192005-03-16  Daniel Berlin  <dberlin@dberlin.org>
15320
15321	Fix PR tree-optimization/20490
15322
15323	* tree-ssa-pre.c (create_expression_by_pieces): Use
15324	force_gimple_operand on result of fold.
15325
153262005-03-16  Andrew Pinski  <pinskia@physics.uc.edu>
15327
15328	* config/i386/emmintrin.h (_mm_extract_epi16): Correct the number
15329	of closing parenthesis.
15330
153312005-03-16  Kazu Hirata  <kazu@cs.umass.edu>
15332
15333	* builtins.c (expand_movstr): Update a call to
15334	fold_builtin_strcpy.
15335	(expand_builtin_strncpy): Update a call to
15336	fold_builtin_strncpy.
15337	(fold_builtin_strcpy, fold_builtin_strncpy): Take decomosed
15338	arguments of CALL_EXPR.
15339	(fold_builtin_1): Update calls to fold_builtin_strcpy and
15340	fold_builtin_strncpy.
15341	* tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
15342	* tree.h: Update the prototypes of fold_builtin_strcpy and
15343	fold_builtin_strncpy.
15344
153452005-03-16  Steven Bosscher  <stevenb@suse.de>
15346	    Dorit Naishlos  <dorit@il.ibm.com>
15347
15348	* tree-vect-analyze.c (vect_enhance_data_refs_alignment): Copy
15349	UNITS_PER_SIMD_WORD to a local variable to avoid a "division by zero"
15350	error.
15351
153522005-03-16  Steven Bosscher  <stevenb@suse.de>
15353
15354	* tree-inline.c (walk_type_fields, walk_tree,
15355	walk_tree_without_duplicates): Move from here...
15356	* tree.c: ...to here.
15357
153582005-03-15  Zack Weinberg  <zack@codesourcery.com>
15359
15360	* BASE-VER, DATESTAMP, DEV-PHASE: New files.
15361	* Makefile.in (gcc_version, gcc_version_trigger, ): Delete.
15362	(BASEVER, DEVPHASE, DATESTAMP, BASEVER_c, DEVPHASE_c, DATESTAMP_c)
15363	(BASEVER_s, DEVPHASE_s, DATESTAMP_s): New variables.
15364	(version): Define using $(BASEVER_c).
15365	(Makefile, config.status, build/gcov-iov.o): No longer depends on
15366	version.c.
15367	(version.o): Depend on version files; add custom generation command.
15368	(prefix.o): Define BASEVER on command line.
15369	(s-iov): Depend on version files; adjust command.
15370	(TEXI_CPP_FILES, TEX_IGCC_FILES, TEXI_GCCINT_FILES, TEXI_CPPINT_FILES):
15371	Add gcc-vers.texi.
15372	(gcc-vers.texi): New rule.
15373	(doc/%.info, doc/%.dvi): Add -I . to command line.
15374	(doc/gccinstall.dvi): Likewise.
15375	(PACKAGE): Delete.  All uses replaced with "gcc".
15376	* aclocal.m4: Do not include gcc-version.m4.
15377	* configure.ac: Do not invoke TL_AC_GCC_VERSION.
15378	Do not AC_SUBST nor AC_DEFINE PACKAGE or VERSION.
15379	Set is_release based on contents of DEV-PHASE.
15380	Set gcc_version based on contents of BASE-VER.
15381	Define WIN32_REGISTRY_KEY only if the user overrode the default.
15382	* config.in, configure: Regenerate.
15383	* gccbug.in: Determine version of GCC in use at runtime.
15384	* gcov-iov.c: Get version number and development phase from
15385	command line, not by including version.c.
15386	* intl.c: Replace all uses of PACKAGE with "gcc".
15387	* libada-mk.in: Delete unused "gcc_version" variable.
15388	* prefix.c: Default WIN32_REGISTRY_KEY to BASEVER.
15389	* version.c: (VERSUFFIX): New hook for redistributors; adjust
15390	commentary to match.
15391	(version_string): Put together from pieces.
15392	* config/alpha/x-vms: Do not use $(gcc_version).
15393	* config/i386/t-nwld: Likewise.
15394	* doc/include/gcc-common.texi: Include gcc-vers.texi for
15395	version-GCC and DEVELOPMENT.
15396
153972005-03-15  Roger Sayle  <roger@eyesopen.com>
15398
15399	PR tree-optimization/17454
15400	* tree.c (tree_size): Add case for TREE_BINFO.
15401	* fold-const.c (fold_checksum_tree): Only clear the overloaded
15402	field TYPE_CACHED_VALUES if TYPE_CACHED_VALUES_P is set.
15403
154042005-03-15  Roger Sayle  <roger@eyesopen.com>
15405
15406	* optabs.c (expand_doubleword_mult): Avoid clobbering op0 and
15407	op1 whilst expanding the signed widenening multiply variant.
15408
154092005-03-15  Richard Sandiford  <rsandifo@redhat.com>
15410
15411	* toplev.c (display_target_options): Avoid unused variable warning if
15412	TARGET_SWITCHES and TARGET_OPTIONS are both undefined.
15413	* config/mips/mips.c (mips_arch_string, mips_tune_string): Make static.
15414	(mips_isa_string, mips_abi_string, mips_fix_vr4130_string): Delete.
15415	(mips_isa): Initialize to MIPS_ABI_DEFAULT.
15416	(mips_isa_info): New variable.
15417	(mips_parse_cpu): Remove the first argument and leave the caller
15418	to report errors.
15419	(TARGET_HANDLE_OPTION): Override default.
15420	(mips_handle_option): New function.  Move option validation code from...
15421	(override_options): ...here.  Update calls to mips_parse_cpu.
15422	* config/mips/mips.h (mips_arch_string, mips_tune_string)
15423	(mips_isa_string, mips_abi_string, TARGET_OPTIONS)
15424	(SUBTARGET_TARGET_OPTIONS): Delete.
15425	* config/mips/mips.opt (mabi=, march=, mflush-func=, mips)
15426	(mno-flush-func, mtune=): New options.
15427
154282005-03-15  Roger Sayle  <roger@eyesopen.com>
15429	    Richard Henderson  <rth@redhat.com>
15430
15431	* real.c (c4x_single_format, c4x_extended_format): Provide values
15432	for signbit_ro for c4x's single and extended floating point formats.
15433	* optabs.c (expand_copysign): Use the floating point format's
15434	signbit_ro for expanding via expand_copysign_absneg, and it's
15435	signbit_rw field for expanding via expand_copysign_bit.
15436
154372005-03-15  Dorit Naishlos  <dorit@il.ibm.com>
15438
15439	* tree-vectorizer.h (unknown_alignment_for_access_p): Replaced by
15440	known_alignment_for_access_p.
15441	(known_alignment_for_access_p): New.
15442	(do_peeling_for_alignment): Field made int instead of bool and renamed
15443	to peeling_for_alignment.
15444	(LOOP_DO_PEELING_FOR_ALIGNMENT): Renamed to LOOP_PEELING_FOR_ALIGNMENT.
15445	* tree-vect-analyze.c (vect_determine_vectorization_factor): New. This
15446	functionality used to be in vect_analyze_operations.
15447	(vect_analyze_operations): Code to determine vectorization factor was
15448	moved to vect_determine_vectorization_factor.
15449	(vect_enhance_data_refs_alignment): Update to correct alignment when it
15450	is known instead of -1.  Set LOOP_PEELING_FOR_ALIGNMENT to peeling
15451	factor.
15452	(vect_analyze_loop): Call vect_determine_vectorization_factor (used to
15453	be part of vect_analyze_operations).
15454	* tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Use fold when
15455	creating the guard condition, as the number of iterations may be
15456	constant.
15457	(slpeel_tree_peel_loop_to_edge): Use new name of
15458	LOOP_DO_PEELING_FOR_ALIGNMENT. Set it to 0 instead of false.
15459	* tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Handle known
15460	alignment case more efficiently. Use LOOP_PEELING_FOR_ALIGNMENT.
15461	(vect_do_peeling_for_alignment): Use fold.
15462	(vect_transform_loop): Use new name of LOOP_DO_PEELING_FOR_ALIGNMENT.
15463
15464	(vect_update_inits_of_dr): Renamed to
15465	vect_update_init_of_dr.
15466	(vect_update_inits_of_drs): Use new name of vect_update_inits_of_dr.
15467	(vectorizable_store): Fix assertion to use == instead of =.
15468
154692005-03-15  Daniel Jacobowitz  <dan@codesourcery.com>
15470
15471	* config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't clear
15472	call_used_regs for wCG registers.
15473
154742005-03-15  Ulrich Weigand  <uweigand@de.ibm.com>
15475
15476	* config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
15477	for non-offsettable memory references to cope with outstanding reload
15478	replacements, take 2.
15479
154802005-03-15  Uros Bizjak  <uros@kss-loka.si>
15481
15482	PR target/18668
15483	* config/i386/i386.h (x86_fisttp): New.
15484	(TARGET_FISTTP): New macro.
15485	* config/i386/i386.c (x86_fisttp): Set for NOCONA.
15486	(output_fix_trunc): Add fisttp parameter.  Generate fisttp x87
15487	instruction when fisttp flag is set.
15488	* config/i386/i386-protos.h (output_fix_trunc): Change declaration.
15489
15490	* config/i386/i386.md (type attribute): Add fisttp.
15491	(unit attribute): Set to i387 for fisttp type.
15492	(X87MODEF, X87MODEI, SSEMODEF, SSEMODEI24): New mode macros.
15493	(fix_truncxfdi2, fix_truncxfsi2): Generate fisttp patterns for
15494	TARGET_FISTTP.
15495	(fix_truncdfdi2, fix_truncsfdi2, fix_truncdfsi2, fix_truncsfsi2):
15496	Generate fisttp patterns for TARGET_FISTTP. Implement using mode
15497	macros.
15498	(fix_truncxfhi2, fix_truncdfhi2, fix_truncsfhi2): Generate fisttp
15499	patterns for TARGET_FISTTP.  Enable patterns for
15500	(TARGET_FISTTP && !TARGET_SSE_MATH). Implement using mode macros.
15501	(fix_trunc<mode>_i387_fisttp_1, fix_trunc<mode>_i387_fisttp,
15502	fix_trunc<mode>_i387_fisttp_with_temp): New instruction patterns to
15503	implement fisttp x87 insn.
15504	(fix_trunc*_i387_fisttp splitters): New patterns.
15505	(*fix_truncdi_i387, *fix_truncsi_i387, *fix_trunchi_i387):
15506	Rename to *fix_trunc<mode>_i387_1.  Implement using mode macros.
15507	Disable patterns for TARGET_FISTTP.  Add comment about FLAGS_REG
15508	clobber.
15509	(fix_truncdi_memory, fix_truncdi_nomemory, fix_trunchi_nomemory):
15510	Rename to fix_trunc<mode>_i387 and fix_trunc<mode>_i387_with_temp.
15511	Implement using mode macros. Disable patterns for TARGET_FISTTP.
15512	(fix_truncsi_memory, fix_truncsi_nomemory, fix_trunchi_memory,
15513	fix_trunchi_nomemory): Rename to fix_trunc<mode>_i387 and
15514	fix_trunc<mode>_i387_with_temp. Implement using mode macros.
15515	Disable patterns for TARGET_FISTTP.
15516	(fix_trunc*_i387 splitters): Implement usign mode macros.
15517	(fix_truncdfdi_sse, fix_truncsfdi_sse, fix_truncdfsi_sse,
15518	fix_truncsfsi_sse): Disable for (TARGET_FISTTP && !TARGET_SSE_MATH).
15519	(fix_trunx*_sse peephole2s): Implement using mode macros.
15520
155212005-03-15  J"orn Rennecke <joern.rennecke@st.com>
15522
15523	PR rtl-optimization/20291
15524	* combine.c (try_combine): If splitting fails, re-try with
15525	original combined pattern, i.e. before clobber stripping.
15526
155272005-03-14  Eric Christopher  <echristo@redhat.com>
15528
15529	* config/mips/mips.h (DWARF_CIE_DATA_ALIGNMENT): Change for
15530	STACK_GROWS_DOWNWARD.
15531
155322005-03-14  Roger Sayle  <roger@eyesopen.com>
15533
15534	* real.h (struct real_format): Split the signbit field into two
15535	two fields, signbit_ro and signbit_rw.
15536	* real.c (ieee_single_format, mips_single_format, ieee_double_format,
15537	mips_double_format, ieee_extended_motorola_format,
15538	ieee_extended_intel_96_format, ieee_extended_intel_96_round_53_format,
15539	ieee_extended_intel_128_format, ibm_extended_format,
15540	mips_extended_format, ieee_quad_format, mips_quad_format,
15541	vax_f_format, vax_d_format, vax_g_format, i370_single_format,
15542	i370_double_format, c4x_single_format, c4x_extended_format,
15543	real_internal_format): Update initializers for new field.
15544	* builtins.c (expand_builtin_signbit): Use signbit_ro field of the
15545	real_format structure.
15546	* optabs.c (expand_absneg_bit, expand_copysign): Use signbit_rw
15547	field of the real_format structure.
15548
155492005-03-14  Daniel Berlin <dberlin@dberlin.org>
15550
15551	Fix PR tree-optimization/20458
15552
15553	* tree-flow-inline.h (mark_call_clobbered): Don't fiddle
15554	DECL_EXTERNAL on STRUCT_FIELD tags.
15555	(clear_call_clobbered): Ditto.
15556	* tree-ssa-operands.c (note_addressable): Make sure the original
15557	variable doesn't slip into the addressable list if we have
15558	subvars.
15559	* tree-tailcall.c (suitable_for_tail_opt_p): Look at STRUCT_FIELD
15560	tags too.
15561
155622005-03-14  Geoffrey Keating  <geoffk@apple.com>
15563
15564	* doc/cppopts.texi (-fexec-charset): Add concept index entry.
15565	(-fwide-exec-charset): Likewise.
15566	(-finput-charset): Likewise.
15567	* doc/invoke.texi (Warning Options): Document -Wnormalized=.
15568	* c-opts.c (c_common_handle_option): Handle -Wnormalized=.
15569	* c.opt (Wnormalized): New.
15570
155712005-03-14  Devang Patel  <dpatel@apple.com>
15572
15573	* doc/invoke.texi: Add reference to Visibility document.
15574
155752005-03-14  Richard Sandiford  <rsandifo@redhat.com>
15576
15577	* config.gcc (mips*-*-*): Rename MASK_SPLIT_ADDRS to
15578	MASK_SPLIT_ADDRESSES.
15579	* config/mips/mips.h (target_flags, mips_fix_vr4130_string): Delete.
15580	(MASK_INT64, MASK_LONG64, MASK_SPLIT_ADDR, MASK_NO_FUSED_MADD)
15581	(MASK_EXPLICIT_RELOCS, MASK_MEMCPY, MASK_SOFT_FLOAT)
15582	(MASK_FLOAT64, MASK_ABICALLS, MASK_XGOT, MASK_LONG_CALLS)
15583	(MASK_64BIT, MASK_EMBEDDED_DATA, MASK_BIG_ENDIAN)
15584	(MASK_SINGLE_FLOAT, MASK_MAD, MASK_4300_MUL_FIX, MASK_MIPS16)
15585	(MASK_NO_CHECK_ZERO_DIV, MASK_BRANCHLIKELY)
15586	(MASK_UNINIT_CONST_IN_RODATA, MASK_FIX_R4000, MASK_FIX_R4400)
15587	(MASK_FIX_SB1, MASK_FIX_VR4120, MASK_VR4130_ALIGN)
15588	(MASK_FP_EXCEPTIONS, MASK_DIVIDE_BREAKS, MASK_PAIRED_SINGLE)
15589	(MASK_MIPS3D, MASK_SYM32, MASK_DEBUG, MASK_DEBUG_D)
15590	(MASK_MIPS_TFILE, TARGET_INT64, TARGET_LONG64, TARGET_FLOAT64)
15591	(TARGET_64BIT, TARGET_SPLIT_ADDRESSES, TARGET_DEBUG_MODE)
15592	(TARGET_DEBUG_D_MODE, TARGET_MEMCPY, TARGET_ABICALLS)
15593	(TARGET_XGOT, TARGET_SOFT_FLOAT, TARGET_HARD_FLOAT)
15594	(TARGET_LONG_CALLS, TARGET_EMBEDDED_DATA)
15595	(TARGET_UNINIT_CONST_IN_RODATA, TARGET_BIG_ENDIAN)
15596	(TARGET_SINGLE_FLOAT, TARGET_DOUBLE_FLOAT, TARGET_MAD)
15597	(TARGET_FUSED_MADD, TARGET_4300_MUL_FIX, TARGET_CHECK_ZERO_DIV)
15598	(TARGET_DIVIDE_TRAPS, TARGET_BRANCHLIKELY, TARGET_FIX_SB1)
15599	(TARGET_FIX_R4000, TARGET_FIX_R4400, TARGET_FIX_VR4120)
15600	(TARGET_FIX_VR4130, TARGET_VR4130_ALIGN, TARGET_FP_EXCEPTIONS)
15601	(TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D, TARGET_SYM32)
15602	(TARGET_EXPLICIT_RELOCS): Delete.
15603	(TARGET_SWITCHES, SUBTARGET_TARGET_SWITCHES): Delete.
15604	(TARGET_OPTIONS): Remove entry for -mfix-vr4130.
15605	* config/mips/mips.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
15606	(override_options): Set MASK_LONG64 if -mint64 is given and no
15607	-mlongXX option is.  Complain about -mint64 -mlong32.
15608	(override_options, CMP_BUILTINS, mips_bdesc, sb1_desc): Rename
15609	MASK_PAIRED_SINGLE to MASK_PAIRED_SINGLE_FLOAT.
15610	* config/mips/mips.opt: New file.
15611
156122005-03-14  Richard Sandiford  <rsandifo@redhat.com>
15613
15614	* config.gcc (extra_options): New variable for listing option files.
15615	Add ${cpu_type}/${cpu_type}.opt to it if that file exists.
15616	* configure.ac (extra_opt_files): New AC_SUBST variable.
15617	(tm_file_list, tm_include_list): Include options.h first.
15618	* configure: Regenerate.
15619	* Makefile.in (extra_opt_files, ALL_OPT_FILES): New variables.
15620	(s-options): Use $(ALL_OPT_FILES) instead of $(lang_opt_files)
15621	(s-options-h): New rule.
15622	(options.h): Depend on it.
15623	(TEXI_GCCINT_FILES): Add options.texi.
15624	* hooks.h (hook_bool_size_t_constcharptr_int_true): Declare.
15625	* hooks.c (hook_bool_size_t_constcharptr_int_true): New function.
15626	* target.h (gcc_target): Add default_target_flags and handle_option.
15627	* target-def.h (TARGET_DEFAULT_TARGET_FLAGS)
15628	(TARGET_HANDLE_OPTION): New macros.
15629	(TARGET_INITIALIZER): Include them.
15630	* opt-functions.awk (opt_args, nth_arg): New functions.
15631	(switch_flags): Handle the "Target" flag.
15632	(var_args): Delete.
15633	(var_name): Use opt_args and nth_arg.
15634	(var_set, var_ref): Likewise.  Handle "Mask" and "InverseMask".
15635	* opth-gen.awk: Declare target_flags.  Declare MASK_* and TARGET_*
15636	macros for the "Mask" and "InverseMask" options.
15637	* opts.h (cl_var_cond): New enum.
15638	(cl_option): Replace the "has_set_value" and "set_value" fields with
15639	"var_cond" and "var_value".
15640	(CL_TARGET): New macro.
15641	(option_enabled, print_filtered_help): Declare.
15642	(decode_options): Move definition.
15643	* opts.c (handle_option): Search for the original option before
15644	removing any "no-" prefix.  Handle CL_TARGET.  Adjust for the new
15645	var_cond and var_value fields.  Use targetm.handle_option to handle
15646	target options.
15647	(decode_options): Set target_flags to targetm.default_target_flags.
15648	(print_filtered_help): Make global.  Handle CL_TARGET.
15649	(option_enabled): New function.
15650	* toplev.c (target_switches): Guard with #ifdef TARGET_SWITCHES.
15651	(display_target_options, set_target_switch, print_switch_values)
15652	(default_pch_valid_p): Guard uses of target_switches with
15653	#ifdef TARGET_SWITCHES.  Also...
15654	(display_target_options): Display the CL_TARGET entries in cl_options.
15655	(set_target_option): Don't complain about the "" option when
15656	TARGET_SWITCHES is undefined.
15657	(print_switch_values): Use option_enabled.
15658	(default_pch_valid_p): Check cl_options[] when looking for something
15659	that has changed the value of target_flags.
15660	* c.opt: Remove documentation from top of file.
15661	* doc/gccint.texi: Add an "Options" chapter.  Include options.texi.
15662	* doc/sourecebuild.texi: Refer to the new options documentation
15663	instead of c.opt.  Document machine-specific .opt files.
15664	* doc/tm.texi (target_flags): Say that this variable is declared
15665	by options.h.
15666	(TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Document.
15667	(TARGET_SWITCHES, TARGET_OPTIONS): Refer to the option files as
15668	an alternative.
15669	* doc/options.texi: New file.
15670
156712005-03-14  Alexandre Oliva  <aoliva@redhat.com>
15672
15673	PR middle-end/18628
15674	* cse.c (fold_rtx_mem): Don't fold a load from a jumptable into a
15675	register.
15676
156772005-03-14  Alexandre Oliva  <aoliva@redhat.com>
15678
15679	PR c++/20280
15680	* gimplify.c (gimplify_cond_expr): Add fallback argument.  Use a
15681	temporary variable of pointer type if an lvalues is required.
15682	(gimplify_modify_expr_rhs): Request an rvalue from it.
15683	(gimplify_expr): Pass fallback on.
15684
156852005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
15686
15687	* cfgbuild.c: Update comments.
15688
156892005-03-14  Roger Sayle  <roger@eyesopen.com>
15690
15691	PR rtl-optimization/17236
15692	* optabs.c (expand_doubleword_mult): New helper function split out
15693	from expand_binop.  Permute the order in which instructions are
15694	emitted to minimize the number of simultaneously live registers.
15695	(expand_binop): Call expand_doubleword_mult to synthesize a double
15696	word multiplication.
15697
156982005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
15699
15700	* basic-block.h: Update the prototypes of cached_make_edge and
15701	rtl_make_eh_edge.
15702	* cfg.c (cached_make_edge): Take edge_cache representing one
15703	row of the adjacency matrix of edges.
15704	* cfgbuild.c (make_label_edge, rtl_make_eh_edge): Likewise.
15705	(make_edges): Initialize edge_cache to represent one row of
15706	the adjacency matrix of edges.
15707
157082005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
15709
15710	* tree-ssa-phiopt.c (minmax_replacement, blocks_in_phiopt_order):
15711	New functions.
15712	(tree_ssa_phiopt): Use blocks_in_phiopt_order and minmax_replacement.
15713	Remove unused removed_phis variable.
15714	(conditional_replacement): Use build1/build2.
15715	(abs_replacement): Use last_and_only_stmt and build1/build2.
15716
157172005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
15718
15719	* builtin-attrs.def (ATTR_NOVOPS, ATTR_NOVOPS_LIST,
15720	ATTR_PURE_NOTHROW_NOVOPS_LIST): New.
15721	* builtins.def (ATTR_MATHFN_FPROUNDING): Use NOVOPS.
15722	(BUILT_IN_PREFETCH): Set the NOVOPS attribute.
15723	* c-common.c (handle_novops_attribute): New function.
15724	(c_common_attribute_table): Add "no vops" entry.
15725	* c-decl.c (merge_decls): Copy DECL_IS_NOVOPS.
15726	* calls.c (flags_from_decl_or_type): Set ECF_NOVOPS.
15727	* tree-ssa-operands.c (get_call_expr_operands): Do not
15728	create virtual operands for calls with ECF_NOVOPS flag.
15729	* tree.h (DECL_IS_NOVOPS): New macro.
15730	(struct tree_decl): Add novops_flag.
15731	(ECF_NOVOPS): New constant.
15732
157332005-03-14  Uros Bizjak  <uros@kss-loka.si>
15734
15735	PR target/17688
15736	* config/i386/i386.c (x86_use_himode_fiop): New.
15737	(x86_use_simode_fiop): Rename from x86_use_fiop.
15738	* config/i386/i386.h (x86_use_himode_fiop): Declare.
15739	(TARGET_USE_HIMODE_FIOP): New.
15740	(x86_use_simode_fiop): Rename from x86_use_fiop.
15741	(TARGET_USE_SIMODE_FIOP): Rename from TARGET_USE_FIOP.
15742
15743	* config/i386/i386.md (X87MODEI12): New mode macro define.
15744	(*cmpfp_<mode>): Rename from *cmpfp_si.  Use X87MODEI12 mode macro
15745	to implement x87 FP compare with HImode input operands.
15746	(*fp_jcc_8<mode>_387, splitter): Rename from *fp_jcc_8_387.
15747	Use X87MODEI12 mode macro to handle HImode input operands.
15748	(*fop_sf_2<mode>_i387, *fop_sf_3<mode>_i387, *fop_df_2<mode>_i387,
15749	*fop_df_3<mode>_i387, *fop_xf_2<mode>_i387, *fop_xf_3<mode>_i387):
15750	Renamed from *fop_sf_2_i387, *fop_sf_3_i387, *fop_df_2_i387,
15751	*fop_df_3_i387, *fop_xf_2_i387, *fop_xf_3_i387. Use X87MODEI12 mode
15752	macro to implement x87 operators with HImode input operands.
15753	(fop splitters): Use X87MODEI12 mode macro to handle HImode
15754	input operands.
15755
157562005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
15757
15758	* tree-cfg.c (find_taken_edge_cond_expr): Use zero_p instead of
15759	integer_zerop.
15760	* tree-gimple.c (is_gimple_min_invariant): Consider overflowed
15761	constants invariant.
15762
157632005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
15764
15765	* basic-block.h (BB_VISITED): Removed.
15766	* cfganal.c (dfs_enumerate_from): Do not use BB_VISITED flag.
15767
157682005-03-14  Falk Hueffner  <falk@debian.org>
15769
15770	PR bootstrap/20424
15771	* config/alpha/alpha.c (alpha_fold_builtin_cmpbge): Fix typo.
15772
157732005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
15774
15775	* ggc-zone.c: Fix comment typos.
15776
15777	* alloc-pool.c, except.h, ggc-common.c, ggc-zone.c, ggc.h,
15778	stringpool.c, config/mips/mips-protos.h: Update copyright.
15779
157802005-03-14  Alan Modra  <amodra@bigpond.net.au>
15781
15782	* config/rs6000/rs6000-protos.h: Replace "struct rtx_def *"
15783	throughout with its typedef, "rtx".
15784	* config/rs6000/rs6000.c: Likewise.  Formatting fixes.
15785	(rs6000_tls_symbol_ref_1): Remove inline keyword.
15786	* config/rs6000/rs6000.h (REG_ALLOC_ORDER): Formatting.  Reorder
15787	regs in comment to match code.
15788
157892005-03-14  Kazu Hirata  <kazu@cs.umass.edu>
15790
15791	* except.c (check_handled): Make it static.
15792	* except.h: Remove the corresponding prototype.
15793
15794	* function.c (get_func_frame_size): Make it static.
15795	* function.h: Remove the corresponding type.
15796
15797	* regclass.c (reg_class_superclasses, reg_class_subclasses):
15798	Make them static.
15799	* hard-reg-set.h: Remove the corresponding declarations.
15800
15801	* tree-cfg.c (verify_stmts): Check that
15802	bb_for_stmt (stmt) == bb for every PHI node and statement.
15803
158042005-03-14  Alan Modra  <amodra@bigpond.net.au>
15805
15806	* config.gcc: Remove excess indentation.
15807	(powerpc*-*-*, rs6000-*-*): Accept --with-cpu/tune power5 and 8548.
15808
158092005-03-13  Roger Sayle  <roger@eyesopen.com>
15810
15811	PR middle-end/19331
15812	* tree.c (get_unwidened): Treat CONVERT_EXPR and NOP_EXPR identically.
15813	* fold-const.c (fold_sign_changed_comparison): Likewise.
15814	(fold_binary): Optimize comparisons against widened operands if
15815	the extension is represented by a CONVERT_EXPR, same as a NOP_EXPR.
15816
158172005-03-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
15818
15819	* config/sparc/sparc.c (struct_value_alias_set): New global variable.
15820	(sparc_override_options): Initialize it.
15821	(sparc_struct_value_rtx): Set it on the MEM to be returned.
15822
158232005-03-13  David Edelsohn  <edelsohn@gnu.org>
15824
15825	* config/rs6000/predicates.md (mem_or_easy_const_operand): Delete.
15826	(reg_or_none500mem_operand): New predicate.
15827	(zero_reg_mem_operand): New predicate.
15828	* config/rs6000/rs6000.md (extendsfdf2): Change operand1 predicate
15829	to reg_or_none500mem_operand.
15830	(extendsfdf2_fpr): Add MEM alternative.
15831	(extenddftf2_internal): Change operand2 predicate to
15832	zero_reg_mem_operand.
15833
158342005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
15835
15836	* ggc-zone.c: Rewritten.
15837
15838	* alloc-pool.c (dump_alloc_pool_statistics): Don't print statistics
15839	if there are none.
15840	* configure.ac: Define GGC_ZONE for --with-gc=zone.
15841	* config.in: Regenerated.
15842	* configure: Regenerated.
15843	* gengtype.c (write_types_process_field, write_func_for_structure):
15844	Pass new argument to gt_pch_note_object.
15845	* ggc-common.c (struct ptr_data): Add TYPE.
15846	(gt_pch_note_object): Take TYPE argument and save it.
15847	(call_count): Update call to ggc_pch_count_object.
15848	(call_alloc): Update call to ggc_pch_alloc_object.
15849	(gt_pch_save): Call ggc_pch_prepare_write after paddng the PCH
15850	file.
15851	* ggc-none.c (rtl_zone, garbage_zone, ggc_alloc_zone_stat): Delete.
15852	* ggc-page.c (rtl_zone, tree_zone, garbage_zone)
15853	(ggc_alloc_zone_stat): Delete.
15854	(ggc_pch_count_object, ggc_pch_alloc_object): Add TYPE argument.
15855	* ggc.h (gt_pch_note_object, ggc_pch_count_object)
15856	(ggc_pch_alloc_object): Update prototypes.
15857	(garbage_zone): Delete.
15858	(tree_zone, rtl_zone, ggc_alloc_zone_stat, ggc_alloc_zone): Move to
15859	GGC_ZONE conditional.  Update.  Change tree_zone and rtl_zone into
15860	pointers.
15861	(tree_id_zone): New variable.
15862	(ggc_alloc_cleared_zone): Remove unused.
15863	(ggc_alloc_zone): Define.
15864	(ggc_alloc_rtvec, ggc_alloc_tree): Update to use ggc_alloc_zone.
15865	* rtl.c (rtx_alloc_stat, shallow_copy_rtx_stat): Use
15866	ggc_alloc_zone_stat.
15867	* stringpool.c (gt_pch_n_S): Update call to gt_pch_note_object.
15868	* tree.c (copy_node_stat, make_tree_binfo_stat, make_tree_vec_stat)
15869	(tree_cons_stat, build1_stat): Update call to ggc_alloc_zone_stat.
15870	(make_node_stat): Likewise.  Use tree_id_zone.
15871
158722005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
15873	    Joseph S. Myers  <joseph@codesourcery.com>
15874
15875	* configure.ac: Check for MIPS TLS.
15876	* configure: Regenerated.
15877	* config/mips/mips-protos.h (enum mips_symbol_type): Add
15878	SYMBOL_TLS, SYMBOL_TLSGD, SYMBOL_TLSLDM, SYMBOL_DTPREL,
15879	SYMBOL_GOTTPREL, and SYMBOL_TPREL.
15880	* config/mips/mips.c (mips_regno_to_class): Handle V1_REG.
15881	(TARGET_HAVE_TLS, TARGET_CANNOT_FORCE_CONST_MEM): Define.
15882	(mips_classify_symbol, mips_symbolic_constant_p)
15883	(mips_symbolic_address_p, mips_symbol_insns): Handle TLS symbols.
15884	(mips_tls_operand_p, mips_call_tls_get_addr)
15885	(mips_legitimize_tls_address, mips_cannot_force_const_mem)
15886	(mips_tls_symbol_ref_1): New functions.
15887	(mips_legitimize_address, mips_legitimize_const_move): Call
15888	mips_legitimize_tls_address.
15889	(override_options): Handle V1_REG and TLS symbols.  Disable TLS
15890	for MIPS16.
15891	* config/mips/mips.h (enum reg_class, REG_CLASS_NAMES)
15892	(REG_CLASS_CONTENTS, GR_REG_CLASS_P): Include V1_REG.
15893	(mips_char_to_class): Document V1_REG.
15894	(HAVE_AS_TLS): Provide default.
15895	* config/mips/mips.md (UNSPEC_TLS_LDM, UNSPEC_TLS_GET_TP): New
15896	constants.
15897	(load_got<mode>): Renamed from *load_got<mode>.  Allow when
15898	!TARGET_ABICALLS.
15899	(tls_get_tp_<mode>): New instruction.
15900
159012005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
15902
15903	* configure.ac: Update checks for target tools.
15904	* configure: Regenerated.
15905
159062005-03-13  Daniel Jacobowitz  <dan@codesourcery.com>
15907
15908	* varasm.c (decl_tls_model): Check flag_shlib instead of flag_pic.
15909
159102005-03-13  Roger Sayle  <roger@eyesopen.com>
15911
15912	* expmed.c (expand_mult): Use synthetic multiplication sequences for
15913	more classes of DImode multiplication by constant.  Allow both
15914	multiplication by small negative constants (by performing a
15915	multiplication by a positive constant and negating the result) and
15916	multiplications by large powers of two, by using a left shift.
15917
159182005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
15919
15920	* tree-into-ssa.c (find_idf): Speed up by putting the indexes
15921	of basic blocks into work_stack.
15922
15923	* builtin-attrs.def, c-lex.c, c-pragma.h, reg-stack.c,
15924	config/mips/vr.h: Update copyright.
15925
15926	* c-decl.c (c_init_decl_processing): Remove useless calls to
15927	build_function_type.
15928
15929	* builtins.c (fold_trunc_transparent_mathfn,
15930	fold_fixed_mathfn, fold_builtin_atan, fold_builtin_trunc,
15931	fold_builtin_floor, fold_builtin_ceil, fold_builtin_round,
15932	fold_builtin_lround, fold_builtin_bitop, fold_builtin_memcpy,
15933	fold_builtin_strcpy, fold_builtin_strncpy,
15934	fold_builtin_signbit): Use TYPE (TYPE (fndecl)) instead of
15935	TREE_TYPE (exp).
15936
15937	* builtins.c (expand_builtin_mathfn_3): Remove local variable
15938	before_call.
15939
15940	* lambda-code.c (lambda_compute_auxillary_space): Remove local
15941	variable determinant.
15942
15943	* tree-cfg.c (group_case_labels): Remove local variable type.
15944
15945	* tree-ssa-live.c (build_tree_conflict_graph): Remove local
15946	variable ann.
15947
15948	* tree-ssa-phiopt.c (value_replacement): Remove local variable
15949	result.
15950
159512005-03-13  Andy Hutchinson  <HutchinsonAndy@netscape.net>
15952
15953	PR target/18251
15954	* config/avr/avr.md (movmemhi): Rewrite as RTL loop.
15955	(*movmemqi_insn): Delete.
15956	(*movmemhi): Delete.
15957
159582005-03-13  Kazu Hirata  <kazu@cs.umass.edu>
15959
15960	* builtins.c (fold_builtin_classify): Take decomposed
15961	arguments of CALL_EXPR.
15962	(fold_builtin_1): Update a call to fold_builtin_classify.
15963
159642005-03-13  Joseph S. Myers  <joseph@codesourcery.com>
15965
15966	PR c/20402
15967	* c-parser.c (c_parser_struct_or_union_specifier): Don't fall
15968	through into call to parser_xref_tag after parse error.
15969	(c_parser_struct_declaration): Consistently return NULL_TREE on
15970	error.
15971
159722005-03-12  Daniel Berlin  <dberlin@dberlin.org>
15973
15974	* tree-flow-inline.h (ref_contains_array_ref): New function.
15975	(lookup_subvars_for_var): Ditto.
15976	(get_subvars_for_var): Ditto.
15977	(var_can_have_subvars): Ditto.
15978
15979	* tree-flow.h (mem_tag_kind): Add STRUCT_FIELD.
15980	(struct subvar): New type.
15981
15982	* tree-dfa.c (okay_component_ref_for_subvars): New function.
15983
15984	* tree-optimize.c (init_tree_optimization_passes): Call
15985	pass_create_structure_vars.
15986
15987	* tree-ssa-alias.c: Include vec.h.
15988	(init_alias_info): Don't auto-clear call clobbered on struct-field
15989	tags.
15990	(compute_flow_insensitive_aliasing): Handle subvars.
15991	(group_aliases): Handle STRUCT_FIELD aliases.
15992	(setup_pointers_and_addressables): Ditto.
15993	Don't mark variables non-addressable if they still have
15994	addressable subvars.
15995	Also mark subvars addressable when the real variable is marked
15996	addressable.
15997	(add_pointed_to_var): Try to prune the pointed-to set by only
15998	pointing to subvars when possible.
15999	Otherwise, make sure we set addresses_needed and pt_vars to
16000	properly include subvars.
16001	(bitpos_of_field): New function.
16002	(push_fields_onto_fieldstack): Ditto.
16003	(get_or_create_used_part_for): Ditto.
16004	(create_overlap_variables_for): Ditto.
16005	(find_used_portions): Ditto.
16006	(create_structure_vars): Ditto.
16007	(pass_create_structure_vars): New structure.
16008
16009	* tree-ssa-operands.c (finalize_ssa_v_must_defs): Remove assert.
16010	(get_expr_operands): Handle subvars.  Also try to turn
16011	COMPONENT_REF accesses into must-defs now that we can accurately
16012	portray it.
16013	(note_addressable): Try to only mark as addressable those subvars
16014	we know a COMPONENT_REF touches.
16015	(overlap_subvar): New function.
16016
16017	* tree-vect-analyze.c (vect_object_analysis): Add new parameter.
16018	Handle subvar storing.
16019	(vect_address_analysis): Update caller of vect_object_analysis.
16020
16021	* tree-vect-transform.c (vect_create_data_ref_ptr): Copy subvars.
16022
16023	* tree-vectorizer.h (struct _stmt_vec_info): Add subvars member.
16024	(STMT_VINFO_SUBVARS): New macro.
16025
16026	* common.opts: add flag_tree_salias.
16027
16028	* opts.c (decode_options): flag_tree_salias defaults to on.
16029
16030	* doc/invoke.texi: Document fdump-tree-svars and -ftree-salias.
16031
16032	* doc/tree-ssa.texi: Document structural alias analysis.
16033
160342005-03-12  Steven Bosscher  <stevenb@suse.de>
16035
16036	* tree-cfg.c (make_goto_expr_edges): Don't use error_mark_node.
16037	* tree-ssa-dce.c (mark_stmt_necessary): Don't check for it.
16038	* tree-ssa-operands.c (get_expr_operands): Likewise.
16039	(get_expr_operands): Likewise for ERROR_MARK.
16040
160412005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
16042
16043	* tree-ssa.c (kill_redundant_phi_nodes): Remove local variable
16044	var.
16045
16046	* tree-ssa-phiopt.c (tree_ssa_phiopt): Remove local variable
16047	removed_phis.
16048
16049	* tree-ssa-pre.c (compute_avail): Remove local variable val.
16050	(mark_operand_necessary): Remove local variable ver.
16051
16052	* tree-vect-transform.c (vect_get_new_vect_var): Remove local
16053	variable prefix_len.
16054
16055	* value-prof.c (mod_subtract_transform): Remove local variable
16056	value.
16057
16058	* builtins.c (fold_builtin_exponent): Take decomposed
16059	arguments of CALL_EXPR.
16060	(fold_builtin_1): Update a call to fold_builtin_exponent.
16061
16062	* builtins.c (fold_builtin_logarithm): Take decomposed
16063	arguments of CALL_EXPR.
16064	(fold_builtin_1): Update a call to fold_builtin_logarithm.
16065
16066	* c-decl.c (c_init_decl_processing): Remove local variables
16067	ptr_ftype_void and ptr_ftype_ptr.
16068
16069	* gimplify.c (gimplify_expr): Remove local variables r0 and
16070	r1.
16071
16072	* reg-stack.c (move_for_stack_reg): Remove local variable
16073	push_insn.
16074	(compare_for_stack_reg): Remove local variable flags_user.
16075	(convert_regs_1): Remove local variable deleted.
16076
16077	* tree-if-conv.c (tree_if_convert_cond_expr): Remove local
16078	variable new_cond.
16079	(combine_blocks): Remove local variables exits and new_e.
16080
16081	* tree-inline.c (expand_call_inline): Remove local variable
16082	decl.
16083
16084	* tree-ssa-live.c (create_ssa_var_map,
16085	calculate_live_on_entry): Remove local variable snn.
16086
160872005-03-12  Geoffrey Keating  <geoffk@apple.com>
16088
16089	* c-lex.c (c_lex_with_flags): Add parameter to call to
16090	cpp_spell_token.
16091
160922005-03-11  Per Bothner  <per@bothner.com>
16093
16094	* c-tree.h (struct c_declarator): New id_loc field.
16095	* c-pragma.h (c_lex_with_flags): Take position reference.
16096	* c-lex.c (c_lex_with_flags): Set passed-in location from cpp token,
16097	iff USE_MAPPED_LOCATION. (Type doesn't match otherwise.)
16098	(c_lex): Pass dummy location to c_lex_with_flags.
16099	* c-parser.c (c_lex_one_token): Set c_token's location using
16100	c_lex_with_flags, instead of input_location, which might be "ahead".
16101	(c_parser_direct_declarator): Set declarator's id_loc from
16102	c_token's id_loc.
16103	* c-decl.c (grokdeclarator): Set DECL_SOURCE_LOCATION from
16104	declarator's id_loc, rather than probably-imprecise input_location.
16105	(build_id_declarator): Initialize c_declarator's id_loc field.
16106
161072005-03-11  Roger Sayle  <roger@eyesopen.com>
16108
16109	PR middle-end/20419
16110	* builtins.c (expand_builtin_signbit): Force the signbit's word
16111	into an integer register to avoid SUBREGs of floating point modes.
16112
161132005-03-12  Kazu Hirata  <kazu@cs.umass.edu>
16114
16115	* cfglayout.c, loop-doloop.c, profile.c, target-def.h,
16116	target.h, targhooks.c, tracer.c, tree-ssa-loop-ch.c,
16117	tree-ssa-loop-unswitch.c, tree-ssa-loop.c, vec.c, vmsdbgout.c,
16118	config/m32r/m32r.md, config/xtensa/xtensa.h: Update copyright.
16119
161202005-03-11  David Edelsohn  <edelsohn@gnu.org>
16121
16122	PR rtl-optimization/20306
16123	* expr.c (emit_move_complex): Set try_int false if mode is
16124	MODE_COMPLEX_FLOAT and mov_optab exists for inner mode.  Only try
16125	emit_block_move if try_int is true.
16126
161272005-03-11  Richard Henderson  <rth@redhat.com>
16128
16129	PR target/20415
16130	* config/i386/mmx.md (vec_dupv4hi): Fix predicate.
16131	* config/i386/i386.c (ix86_expand_vector_init_duplicate): Update
16132	to match.
16133
161342005-03-11  Richard Sandiford  <rsandifo@redhat.com>
16135
16136	* config/mips/mips.h (mips_fix_vr4130_string): Declare.
16137	(TARGET_FIX_VR4130): New macro.
16138	(TARGET_OPTIONS): Add -mfix-vr4130.
16139	(ISA_HAS_MACCHI): New macro.
16140	(ASM_SPEC): Add -mfix-vr4130.
16141	* config/mips/mips.c (mips_fix_vr4130_string): New variable.
16142	(override_options): Handle mips_fix_vr4130_string.
16143	(mips_avoid_hazards): Clear all_noreorder_p
16144	if we're working around VR4130 errata and the macc alternatives
16145	are not available.
16146	* config/mips/mips.md (mfhilo_<mode>): Turn into a define_expand.
16147	(*mfhilo_<mode>, *mfhilo_<mode>_macc): New insns.
16148	* config/mips/vr.h (DEFAULT_VR_ARCH): Set to mfix-vr4130.
16149	(MULTILIB_DEFAULTS): Remove leading "march=".
16150	(DRIVER_SELF_SPECS): Likewise.  Make -mfix-vr4130 imply -march=vr4130
16151	if no architecture option is given.
16152	* config/mips/t-vr (MULTILIB_OPTIONS): Use -mfix-vr4130 for the
16153	VR4130 multilibs.
16154	(MULTILIB_MATCHES): Map -march=vr4130 to the -mfix-vr4130 multilibs.
16155	* doc/invoke.texi: Document -mfix-vr4130.
16156
161572005-03-11  Richard Sandiford  <rsandifo@redhat.com>
16158
16159	* config/mips/mips.c (override_options): Only warn about -mint64
16160	deprecation if TARGET_INT64.
16161
161622005-03-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16163
16164	* builtin-attrs.def (ATTR_NONNULL_LIST, ATTR_NOTHROW_NONNULL,
16165	ATTR_CONST_NOTHROW_NONNULL, ATTR_PURE_NOTHROW_NONNULL,
16166	ATTR_MALLOC_NOTHROW_NONNULL): New "nonnull" attribute lists which
16167	are non-specific regarding the nonnull parameter positions.
16168	(ATTR_NONNULL_1_2, ATTR_NONNULL_1_4, ATTR_NOTHROW_NONNULL_1_2,
16169	ATTR_NOTHROW_NONNULL_1_4, ATTR_CONST_NOTHROW_NONNULL_1,
16170	ATTR_PURE_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1_2,
16171	ATTR_MALLOC_NOTHROW_NONNULL_1): Delete.
16172
16173	* builtins.def: Use the non-specific "nonnull" attibute lists.
16174
161752005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
16176
16177	* basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
16178	single_pred_edge, single_succ, single_pred): Improve comments.
16179
161802005-03-11  Zdenek Dvorak  <dvorakz@suse.cz>
16181
16182	* basic-block.h (single_succ_p, single_pred_p, single_succ_edge,
16183	single_pred_edge, single_succ, single_pred): New inline functions.
16184	* bb-reorder.c (rotate_loop, find_traces_1_round,
16185	add_labels_and_missing_jumps, fix_up_fall_thru_edges,
16186	duplicate_computed_gotos): Use the single_succ/pred functions.
16187	* cfganal.c (forwarder_block_p): Ditto.
16188	* cfgbuild.c (compute_outgoing_frequencies): Ditto.
16189	* cfgcleanup.c (try_simplify_condjump, try_forward_edges,
16190	outgoing_edges_match, try_crossjump_to_edge, try_optimize_cfg,
16191	merge_seq_blocks): Ditto.
16192	* cfghooks.c (split_edge, tidy_fallthru_edges): Ditto.
16193	* cfglayout.c (fixup_reorder_chain): Ditto.
16194	* cfgloop.c (mark_single_exit_loops, update_latch_info,
16195	canonicalize_loop_headers, verify_loop_structure): Ditto.
16196	* cfgloopmanip.c (remove_path, unloop, loop_delete_branch_edge,
16197	mfb_update_loops, create_preheader, force_single_succ_latches,
16198	create_loop_notes): Ditto.
16199	* cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump,
16200	force_nonfallthru_and_redirect, rtl_tidy_fallthru_edge,
16201	commit_one_edge_insertion, purge_dead_edges,
16202	cfg_layout_can_merge_blocks_p): Ditto.
16203	* except.c (sjlj_emit_function_enter): Ditto.
16204	* flow.c (init_propagate_block_info): Ditto.
16205	* function.c (thread_prologue_and_epilogue_insns): Ditto.
16206	* gcse.c (find_implicit_sets, bypass_conditional_jumps,
16207	insert_insn_end_bb): Ditto.
16208	* ifcvt.c (merge_if_block, find_if_block, find_if_case_1,
16209	find_if_case_2): Ditto.
16210	* lambda-code.c (perfect_nestify): Ditto.
16211	* lcm.c (optimize_mode_switching): Ditto.
16212	* loop-doloop.c (doloop_modify): Ditto.
16213	* loop-init.c (loop_optimizer_init): Ditto.
16214	* loop-iv.c (simplify_using_initial_values): Ditto.
16215	* loop-unroll.c (unroll_loop_runtime_iterations): Ditto.
16216	* loop-unswitch.c (unswitch_loop): Ditto.
16217	* modulo-sched.c (generate_prolog_epilog): Ditto.
16218	* predict.c (combine_predictions_for_insn, estimate_probability,
16219	tree_estimate_probability, last_basic_block_p,
16220	estimate_bb_frequencies): Ditto.
16221	* profile.c (branch_prob): Ditto.
16222	* regrename.c (copyprop_hardreg_forward): Ditto.
16223	* sched-rgn.c (is_cfg_nonregular, find_rgns, update_live): Ditto.
16224	* tracer.c (layout_superblocks): Ditto.
16225	* tree-cfg.c (tree_can_merge_blocks_p, tree_merge_blocks,
16226	cfg_remove_useless_stmts_bb, cleanup_control_flow,
16227	cleanup_control_expr_graph, disband_implicit_edges,
16228	tree_find_edge_insert_loc, bsi_commit_edge_inserts,
16229	tree_verify_flow_info, tree_make_forwarder_block,
16230	tree_forwarder_block_p, remove_forwarder_block,
16231	remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
16232	* tree-if-conv.c (tree_if_conversion): Ditto.
16233	* tree-mudflap.c (mf_build_check_statement_for): Ditto.
16234	* tree-ssa-dce.c (remove_dead_stmt): Ditto.
16235	* tree-ssa-dom.c (dom_opt_finalize_block): Ditto.
16236	* tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
16237	copy_loop_headers): Ditto.
16238	* tree-ssa-loop-im.c (loop_commit_inserts): Ditto.
16239	* tree-ssa-loop-ivopts.c (compute_phi_arg_on_exit): Ditto.
16240	* tree-ssa-loop-manip.c (split_loop_exit_edge, ip_normal_pos,
16241	lv_adjust_loop_entry_edge, tree_ssa_loop_version): Ditto.
16242	* tree-ssa-loop-niter.c (simplify_using_initial_conditions): Ditto.
16243	* tree-ssa-loop-unswitch.c (simplify_using_entry_checks): Ditto.
16244	* tree-ssa-phiopt.c (tree_ssa_phiopt, value_replacement): Ditto.
16245	* tree-ssa-pre.c (compute_antic_aux, insert_aux, init_pre): Ditto.
16246	* tree-ssa-threadupdate.c (redirect_edges): Ditto.
16247	* tree-tailcall.c (independent_of_stmt_p, find_tail_calls,
16248	eliminate_tail_call, tree_optimize_tail_calls_1): Ditto.
16249	* tree-vect-analyze.c (vect_analyze_loop_form): Ditto.
16250	* tree-vect-transform.c (vect_update_ivs_after_vectorizer): Ditto.
16251	* tree-vectorizer.c (slpeel_update_phi_nodes_for_guard,
16252	slpeel_add_loop_guard): Ditto.
16253
162542005-03-11  James A. Morrison  <phython@gcc.gnu.org>
16255
16256	PR tree-optimization/15784
16257	* fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
16258	and -1 - A to ~A.
16259
16260	* stmt.c (expand_case): Don't change index_type.  Convert minval
16261	to the proper type.
16262
16263	PR tree-optimization/20130
16264	* fold-const.c (fold): Fold x * -1 into -x.
16265
162662005-03-11  Kaz Kojima  <kkojima@gcc.gnu.org>
16267
16268	PR rtl-optimization/20331
16269	* rtlanal.c (modified_between_p): Check its address first for MEM.
16270	(modified_in_p): Likewise.
16271
162722005-03-11  Joseph S. Myers  <joseph@codesourcery.com>
16273
16274	* config.gcc (hppa*64*-*-hpux11*): Use pa/t-hpux-shlib.
16275
162762005-03-10  Steven Bosscher  <stevenb@suse.de>
16277
16278	* expr.c (expand_expr_real_1): If possible, use a conditional
16279	move for expanding MIN_EXPR and MAX_EXPR.
16280	Use temp for moving around rtx-en.
16281
162822005-03-10  Andrew Pinski  <pinskia@physics.uc.edu>
16283
16284	PR rtl-opt/20412
16285	* simplify-rtx.c (simplify_relational_operation_1): Fix typo - check the
16286	correct mode.
16287
162882005-03-10  Roger Sayle  <roger@eyesopen.com>
16289
16290	* builtins.c (expand_builtin_signbit): Extend to handle floating
16291	point modes wider than the largest integer type, using the
16292	operand_subword_force function to obtain the signbit's word.
16293
162942005-03-10  Jakub Jelinek  <jakub@redhat.com>
16295
16296	PR target/20322
16297	* combine.c (try_combine): If recog_for_combine added CLOBBERs
16298	to NEWI2PAT, fail to combine if they are used by NEWPAT.
16299
163002005-03-10  Aldy Hernandez  <aldyh@redhat.com>
16301
16302	* doc/invoke.texi: Add 8540 to list of cpus in rs6000 cpu section.
16303
163042005-03-10  Kazu Hirata  <kazu@cs.umass.edu>
16305
16306	* tree-outof-ssa.c (analyze_edges_for_bb): Make the return
16307	type void.
16308	(perform_edge_inserts): Unconditionally call
16309	free_dominator_info.
16310
16311	* tree-outof-ssa.c (analyze_edges_for_bb): Update a comment.
16312
163132005-03-10  Bob Wilson  <bob.wilson@acm.org>
16314
16315	* config/xtensa/xtensa.h (MEMBER_TYPE_FORCES_BLK): Define.
16316
163172005-03-10  Nathan Sidwell  <nathan@codesourcery.com>
16318
16319	* bitmap.c (bitmap_copy): Remove manual loop unrolling.
16320
16321	* value-prof.c (rtl_find_values_to_profile): Use gcc_assert and
16322	gcc_unreachable.
16323	(rtl_register_value_prof_hooks,
16324	tree_value_profile_transformations,
16325	tree_register_value_prof_hooks): Likewise.
16326	* var-tracking.c (stack_adjust_offset_pre_post,
16327	variable_htab_free, variable_union, dataflow_set_different_2,
16328	count_uses, variable_was_changed, set_frame_base_location,
16329	set_variable_part, emit_note_insn_var_location, vt_emit_notes,
16330	vt_add_function_parameters): Likewise.
16331	* varasm.c (named_section_real, named_section, make_decl_rtl,
16332	asm_emit_uninitialised, assemble_integer, decode_addr_const,
16333	const_hash_1, compare_constant, copy_constant, force_const_mem,
16334	output_constant_pool_2, output_constant_pool_1, output_constant,
16335	output_constructor, make_decl_one_only, decl_tls_model,
16336	default_no_named_section, default_elf_select_section_1,
16337	default_unique_section_1): Likewise.
16338	* vec.c (vec_gc_o_reserve, vec_heap_o_reserve): Likewise.
16339	* vmsdbgout.c (addr_const_to_string): Likewise.
16340
16341	PR c++/20375
16342	* function.c (struct assign_parm_data_one): Remove last_named
16343	field.
16344	(assign_parm_find_data_types): Don't determine last_named.
16345	Reorder named_parm determination.
16346	(assign_parms): Only setup varargs on the last non-varadic
16347	parameter.
16348
163492005-03-10  Kazuhiro Inaoka  <inaoka.lazuhiro@renesas.com>
16350
16351	* config/m32r/m32r.md (load_sda_base_32): New pattern.  Loads
16352	sda base address on medium model.
16353
163542005-03-10  Zdenek Dvorak  <dvorakz@suse.cz>
16355
16356	* Makefile.in (tree-optimize.o): Add CFGLOOP_H dependence.
16357	* cfgloop.c (flow_loop_nodes_find): Export.
16358	* cfgloop.h (flow_loop_nodes_find, fix_loop_structure):
16359	Declare.
16360	* cfgloopmanip.c (fix_loop_structure): New function.
16361	* predict.c (predict_loops): Clean up the loops information.
16362	* tree-cfg.c (cleanup_tree_cfg_loop): New function.
16363	(tree_can_merge_blocks_p, remove_bb, tree_forwarder_block_p): Respect
16364	loop structure.
16365	* tree-flow.h (cleanup_tree_cfg_loop): Declare.
16366	(rewrite_into_loop_closed_ssa): Declaration changed.
16367	* tree-loop-linear.c (linear_transform_loops): Add argument to
16368	rewrite_into_loop_closed_ssa call.
16369	* tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
16370	* tree-ssa-loop-im.c (move_computations): Ditto.
16371	* tree-ssa-loop.c (tree_loop_optimizer_init): Ditto.
16372	* tree-vectorizer.c (vectorize_loops): Ditto.
16373	* tree-optimize.c: Include cfgloop.h.
16374	(execute_todo): Choose whether to call cleanup_tree_cfg or
16375	cleanup_tree_cfg_loop.
16376	* tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables,
16377	(tree_unroll_loops_completely): Enable cleanup_tree_cfg_loop call.
16378	* tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops): Enable
16379	cleanup_tree_cfg_loop call.
16380	* tree-ssa-loop-manip.c (find_uses_to_rename_bb): New function.
16381	(find_uses_to_rename, rewrite_into_loop_closed_ssa): Support
16382	work on part of cfg.
16383
163842005-03-10  Jakub Jelinek  <jakub@redhat.com>
16385
16386	PR inline-asm/20314
16387	* gimplify.c (gimplify_asm_expr): Handle input/output constraints
16388	with multiple alternatives.
16389
16390	* stmt.c (parse_output_constraint): Fix a typo.
16391
163922005-03-09  Bob Wilson  <bob.wilson@acm.org>
16393
16394	* config/xtensa/xtensa.h (TRAMPOLINE_TEMPLATE): Use "no-transform"
16395	assembly directive instead of deprecated "no-generics".
16396
163972005-03-09  Ulrich Weigand  <uweigand@de.ibm.com>
16398
16399	* config/s390/s390.c (s390_secondary_output_reload_class): Adapt check
16400	for non-offsettable memory references to cope with outstanding reload
16401	replacements.
16402	* config/s390/s390.md ("reload_outti"): Call find_replacement to
16403	avoid losing outstanding address reloads.
16404	("reload_outdi", "reload_outdf"): Likewise.
16405
164062005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16407
16408	* builtins.c (fold_builtin_cbrt, fold_builtin_pow): Rearrange
16409	code.  Add more cbrt transformations.
16410
164112005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
16412
16413	* fold-const.c (fold_unary_to_constant): Add FIX_ROUND_EXPR case.
16414
164152005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
16416
16417	* fold-const.c (fold_unary, fold_binary, fold_ternary): Return
16418	NULL_TREE when a given tree is not simplified.
16419	(fold): Return the original tree when any of the functions
16420	mentioned above NULL_TREE.
16421
16422	* fold-const.c (fold_unary, fold_binary): Take decomposed
16423	arguments, code, type, op0, and op1 in case of fold_binary.
16424	(fold): Update calls to fold_unary and fold_binary.
16425
164262005-03-09  Roger Sayle  <roger@eyesopen.com>
16427
16428	* builtins.c (fold_builtin_unordered_cmp): Change prototype to take
16429	a fndecl and an arglist instead of a CALL_EXPR, exp.
16430
164312005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
16432
16433	* cfglayout.c (fixup_reorder_chain): Remove old_bb.
16434
16435	* cfgrtl.c (cfg_layout_merge_blocks): Remove new_e.
16436
16437	* expr.c (expand_assignment): Remove orig_to_rtx.
16438
16439	* fold-const.c (int_const_binop): Remove no_overflow.
16440
16441	* ifcvt.c (noce_emit_move_insn): Remove inmode.
16442
16443	* loop-iv.c (get_biv_step_1): Remove lhs.
16444
16445	* loop-unroll.c (analyze_insns_in_loop): Remove preheader.
16446
16447	* real.c (real_nan): Remove neg.
16448
16449	* function.c (thread_prologue_and_epilogue_insns): Remove i
16450	and newinsn.
16451
16452	* tree-data-ref.c (array_base_name_differ_p): Remove ta and
16453	tb.
16454
16455	* tree-eh.c (tree_could_trap_p): Remove idx.
16456
16457	* tree-into-ssa.c (ann): Remove ann.
16458
16459	* tree-outof-ssa.c (num_nodes): Remove num_nodes.
16460
16461	* tree-sra.c (decide_block_copy): Remove inst_count.
16462
16463	* tree-ssa-alias.c (may_alias_p): Remove v_ann.
16464
16465	* tree-ssa-loop-im.c (lhs): Remove.
16466
16467	* cfgbuild.c (state, STATE, SET_STATE,
16468	BLOCK_USED_BY_TABLEJUMP, FULL_STATE): Move just before
16469	make_edges.
16470	(make_edges): Speed up by skipping blocks with BLOCK_ORIGINAL.
16471	(find_basic_blocks): Set the state of each basic block to
16472	BLOCK_NEW.
16473
164742005-03-08  Jeff Law  <law@redhat.com>
16475
16476	* tree-cfg.c (cleanup_control_flow): If removal of a computed
16477	goto results in the removal of edges in the CFG, then we need
16478	to recompute dominators.
16479
164802005-03-09  Ben Elliston  <bje@au.ibm.com>
16481
16482	* c-common.c (c_do_switch_warnings): Comment fix.
16483
164842005-03-08  Julian Brown  <julian@codesourcery.com>
16485
16486	* Patch from 2005-03-08 reverted for causing regressions and
16487	ppc-darwin bootstrap failure.
16488
164892005-03-08  Fariborz Jahanian <fjahanian@apple.com>
16490
16491	* config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn):
16492	Define the real function for ppc-darwin.
16493	* c-typeck.c (convert_arguments): Check for target-specific
16494	invalid argument call to unprototyped function.
16495	* target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN):
16496	New Macro.
16497	* target.h (invalid_arg_for_unprototyped_fn): New field
16498	in struct calls.
16499	* targhooks.c (hook_invalid_arg_for_unprototyped_fn): New
16500	default target hook.
16501	* targhooks.h (hook_invalid_arg_for_unprototyped_fn):
16502	Declare.
16503
165042005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
16505
16506	* c-typeck.c (constructor_stack, constructor_range_stack,
16507	initializer_stack): Make them static.
16508
16509	* cfg.c (rbi_pool): Make it static.
16510
16511	* gimple-low.c (lower_stmt_body): Make it static.
16512	* tree-flow.h: Remove the corresponding prototype.  Don't
16513	declare lower_data.
16514
16515	* sched-deps.c (cache_size): Make it static.
16516
16517	* stor-layout.c (lang_adjust_rli): Make it static.
16518
165192005-03-08  Julian Brown  <julian@codesourcery.com>
16520
16521	* config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
16522	from being used for symbols with vague linkage when
16523	HAVE_GAS_COMDAT_GROUP is true.
16524
165252005-03-08  J"orn Rennecke <joern.rennecke@st.com>
16526
16527	* jump.c (invert_jump_1): Don't call redirect_jump_1 with
16528	nlabel == JUMP_LABEL (jump).
16529
165302005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
16531
16532	* c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
16533	gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
16534	tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
16535	tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.
16536
165372005-03-08  Alexey Neyman  <alex.neyman@auriga.ru>
16538
16539	PR c/14411
16540	* calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
16541	* c-common.c (handle_returns_twice): New function.
16542	(c_common_attribute_table): Declare eturns_twice' attribute.
16543	* doc/extend.texi: Document eturns_twice' attribute.
16544	* tree.h (DECL_IS_RETURNS_TWICE): New macro.
16545	(struct tree_decl): Add returns_twice_flag.
16546
165472005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
16548
16549	* tree-ssa-phiopt.c: Fix a comment typo.
16550
16551	* c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
16552	loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
16553	config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
16554	copyright.
16555
165562005-03-08  Richard Henderson  <rth@redhat.com>
16557
16558	* config/alpha/alpha.c (code_for_builtin): Replace special-case
16559	builtin codes with ctzdi2, clzdi2, popcountdi2.
16560	(struct alpha_builtin_def): Add is_const.
16561	(zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
16562	(alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
16563	(alpha_init_builtins): Init them.  Set nothrow and const attributes
16564	on builtins.
16565	(alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot,
16566	alpha_fold_builtin_extxx, alpha_fold_builtin_insxx,
16567	alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh,
16568	alpha_fold_vector_minmax, alpha_fold_builtin_perr,
16569	alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
16570	alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
16571	alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
16572	alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
16573	(TARGET_FOLD_BUILTIN): New.
16574	* config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
16575	(UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
16576	(ffsdi2): Use ctz.
16577	(cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.
16578
165792005-03-08  Ira Rosen  <irar@il.ibm.com>
16580
16581	PR tree-optimization/20122
16582	* tree-vect-analyze.c (vect_object_analysis): Analyze initial
16583	condition of access function instead of base.
16584
165852005-03-07  Jeff Law  <law@redhat.com>
16586	    Steven Bosscher  <stevenb@suse.de>
16587
16588	* tree-cfg.c (find_taken_edge_computed_goto): New function.
16589	(find_taken_edge): Call find_taken_edge_computed_goto as
16590	appropriate.  Allow any gimple invariant rather than just
16591	INTEGER_CST for VAL.
16592	(cleanup_control_flow): Cleanup a computed goto which has turned
16593	into a simple goto.
16594	(tree_merge_blocks): If block B has any forced labels, move
16595	them to the start of block A.
16596	* tree-ssa-dom.c (thread_across_edge): Allow threading across
16597	computed gotos as well.
16598	* tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
16599	removal of unnecessary computed gotos too.
16600	(lookup_redirection_data): Fix type of INSERT argument.  Callers
16601	updated.
16602
166032005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
16604
16605	* tree-ssa-phiopt.c: Update copyright.  Fix indentations.
16606	Remove trailing spaces.
16607
16608	* gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
16609	unshare_all_trees): Make them static.
16610	* tree-gimple.h: Remove the corresponding prototypes.
16611
16612	* diagnostic.h: Remove unused prototype
16613	debug_output_buffer.
16614	* modulo-sched.c: Remove unused prototype
16615	set_row_column_for_ps.
16616
16617	* tree-ssa-phiopt.c (tree_ssa_phiopt,
16618	replace_phi_edge_with_variable): Remove unused variable i.
16619
166202005-03-07  Per Bothner  <per@bothner.com>
16621
16622	* tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
16623
166242005-03-06  Andrew Pinski  <pinskia@physics.uc.edu>
16625
16626	PR tree-opt/17671
16627	* tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
16628	bbs on the COND_EXPR instead of the PHI_NODEs.
16629	(candidate_bb_for_phi_optimization): Remove.
16630	(replace_phi_with_stmt): Rename to ...
16631	(replace_phi_edge_with_variable): this and change so that we
16632	replace the phi argument instead of removing the PHI.
16633	(conditional_replacement): Change so we deal with PHI with more
16634	than two arguments.
16635	(value_replacement): Likewise.
16636	(abs_replacement): Likewise.
16637
166382005-03-07  Aldy Hernandez  <aldyh@redhat.com>
16639
16640	* config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
16641	output_e500_flip_gt_bit.
16642
16643	* config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
16644	as bit 31.
16645	(rs6000_generate_compare): Fix logic to look at the correct bits.
16646	(output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
16647	Look at GT bit.
16648	(rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
16649	gen_e500_flip_gt_bit.  Rename gen_move_from_CR_eq_bit to
16650	gen_move_from_CR_gt_bit.
16651
16652	* config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
16653	("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
16654	(UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
16655
16656	* config/rs6000/spe.md ("e500_cr_ior_compare"): New.
16657	(E500_CR_IOR_COMPARE): New constant.
16658
166592005-03-08  Earl Chew <earl_chew@agilent.com>
16660	    David Billinghurst <David.Billinghurst@riotinto.com>
16661
16662	* config/i386/host-cygwin.c: New file to support precompiled
16663	headers on cygwin
16664	* config/i386/x-cygwin: Use host-cygwin.c on cygwin host
16665	* config.host: Use above files for cygwin host.
16666
166672005-03-07  David Edelsohn  <edelsohn@gnu.org>
16668
16669	* fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
16670	ordering ops from earlier change.
16671
166722005-03-07  Per Bothner  <per@bothner.com>
16673
16674	Various fixes to allow us to again build if --enable-mapped-location:
16675	* c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
16676	unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
16677	* tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
16678	local variable loc. Change logic appropriately.
16679	* tree-vect-transform.c (vect_finish_stmt_generation): Use
16680	EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.
16681	* c-parser.c (c_parser_for_statement): Initialize loc variable.
16682	* tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
16683	DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
16684
166852005-03-07  Richard Sandiford  <rsandifo@redhat.com>
16686
16687	PR rtl-optimization/19683
16688	* reload1.c (choose_reload_regs): Pass the number of bits, not the
16689	number of bytes, to smallest_int_for_mode.  Fix arguments to
16690	REG_CANNOT_CHANGE_MODE_P.
16691
166922005-03-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
16693
16694	* reorg.c (relax_delay_slots): Check that the jump is
16695	conditional before trying to invert it.
16696
166972005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
16698
16699	* bb-reorder.c (max_entry_frequency, max_entry_frequency):
16700	Make them static.
16701
16702	* calls (stack_arg_under_construction): Make it static.
16703
16704	* flow.c (regs_live_at_setjmp): Make it static.
16705	* flow.h: Remove the corresponding prototype.
16706
16707	* reload1.c (reload_startobj, reload_firstobj,
16708	something_needs_operands_changed, reload_inherited,
16709	reload_inheritance_insn, reload_override_in,
16710	reload_spill_index): Make them static.
16711
16712	* recog.c (verify_changes): Make it static.
16713	* recog.h: Remove the corresponding prototype.
16714
16715	* cfgbuild.c (find_sub_basic_blocks): Remove.
16716	* basic-block.h: Remove the corresponding prototype.
16717	* cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
16718	in comments.
16719	* doc/cfg.texi: Don't mention find_sub_basic_blocks.
16720
16721	* tree-ssa-operands.c (check_build_stmt): Remove.
16722
16723	* stor-layout.c (set_alignment): Remove.
16724	* tree.h: Remove the corresponding prototype.
16725
16726	* tree-ssa-pre.c (has_abnormal_preds): Make it static.
16727
16728	* tree-ssa-dce.c (control_dependence_map,
16729	visited_control_parents): Make them static.
16730
16731	* cfghooks.c (verify_flow_info): Remove local variable
16732	num_bb_notes.
16733
16734	* cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
16735	last_bb_seen.
16736
16737	* loop-unswitch.c (unswitch_loop): Remove local variable src.
16738
167392005-03-07  David Billinghurst <David.Billinghurst@riotinto.com>
16740
16741	* config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
16742
167432005-03-07  Joseph S. Myers  <joseph@codesourcery.com>
16744
16745	* config/ia64/hpux.h (LINK_SPEC): Add -z.
16746	* config/ia64/ia64.c (ia64_function_value): Return a REG not a
16747	PARALLEL for an empty structure.
16748
167492005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
16750
16751	* fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
16752
16753	* fold-const.c (fold_binary): Unroll the very first "for"
16754	loop.
16755
167562005-03-06  David Edelsohn  <edelsohn@gnu.org>
16757
16758	* config/rs6000/predicates.md (branch_comparison_operator): Remove
16759	redundant match_code test.
16760	(scc_comparison_operator): Swap match_operand and match_code
16761	tests.
16762	(branch_positive_comparison_operator): Same.
16763	(trap_comparison_operator): Use comparison_operator and swap with
16764	match_code test.
16765
167662005-03-06  Marek Michalkiewicz  <marekm@amelek.gda.pl>
16767
16768	PR target/20288
16769	* config/avr/avr.c (print_operand): Add 'p' and 'r'.
16770	(out_movhi_r_mr): Read low byte of volatile MEM first.
16771	(out_movhi_mr_r): Write high byte of volatile MEM first.
16772
167732005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
16774
16775	* cselib.c (reg_values, reg_values_size): Make them static.
16776
16777	* cse.c (cse_reg_info_table): Make it static.
16778
16779	* fold-const.c (fold_unary): Use build1 instead of copy_node.
16780
167812005-03-06  Zdenek Dvorak  <dvorakz@suse.cz>
16782
16783	* cse.c (find_best_addr): Use canon_for_address.
16784
167852005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
16786
16787	* cse.c (fold_rtx_subreg, fold_rtx_mem): New.
16788	(fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
16789	SUBREG and MEM, respectively.
16790
16791	* fold-const.c (fold_binary): Use code instead of t.
16792
16793	* fold-const.c (optimize_minmax_comparison): Take decomposed
16794	arguments code, type, op0, and op1 instead of t.
16795	(fold_binary): Update a call to optimize_minmax_comparison.
16796
16797	* fold-const.c (fold_range_test): Take decomposed arguments
16798	code, type, op0, and op1 instead of t.
16799	(fold_binary): Update a call to fold_range_test.
16800
16801	* fold-const.c (fold_binary_op_with_conditional_arg): Take
16802	decomposed arguments code, type, op0, and op1 instead of t.
16803	(fold_binary): Update a call to fold_range_test.
16804
168052005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
16806
16807	* fold-const.c (fold_binary): Avoid directly using the original
16808	expression t as much as possible.
16809
168102005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
16811
16812	* c-semantics.c (build_stmt): Use TYPE_P instead of
16813	IS_NON_TYPE_CODE_CLASS.
16814	* tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
16815	(NON_TYPE_CHECK): Use TYPE_P instead of
16816	IS_NON_TYPE_CODE_CLASS.
16817
16818	* fold-const.c (fold): Remove handling of binary expressions.
16819
168202005-03-05  James A. Morrison  <phython@gcc.gnu.org>
16821
16822	* doc/c-tree.texi: Wrap comments in @r{}.
16823	* doc/cpp.texi: Likewise.
16824	* doc/cppinternals.texi: Likewise.
16825	* doc/extend.texi: Likewise.
16826	* doc/md.texi: Likewise.
16827	* doc/objc.texi: Likewise.
16828	* doc/sourcebuild.texi: Likewise.
16829	* doc/tm.texi: Likewise.
16830	* doc/tree-ssa.texi
16831
168322005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
16833
16834	* predict.c (apply_return_prediction): Standardize PHI chain
16835	walking.
16836	* tree-ssa.c (ssa_redirect_edge): Likewise.
16837
16838	* genattrtab.c, genemit.c, genoutput.c, genrecog.c,
16839	gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
16840	Update copyright.
16841
16842	* tree-phinodes.c (remove_phi_node): Drop the last argument.
16843	* tree-flow.h: Adjust the prototype for remove_phi_node.
16844	* lambda-code.c (perfect_nestify): Adjust a call to
16845	remove_phi_node.
16846	* tree-cfg.c
16847	(remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
16848	* tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
16849	Likewise.
16850	* tree-ssa-dce.c (remove_dead_phis): Likewise.
16851	* tree-ssa-loop-ivopts.c (remove_statement): Likewise.
16852	* tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
16853	* tree-ssa.c (kill_redundant_phi_nodes): Likewise.
16854
16855	* combine.c (simplify_and_const_int): Use gen_int_mode instead
16856	of GEN_INT (trunc_int_for_mode (...)).
16857	* loop-iv.c (iv_number_of_iterations): Likewise.
16858	* postreload.c (reload_cse_move2add): Likewise.
16859	* simplify-rtx.c (simplify_const_unary_operation,
16860	simplify_const_binary_operation): Likewise.
16861	* stor-layout.c (get_mode_bounds): Likewise.
16862
16863	* fold-const.c (fold_binary): New.
16864	(fold): Call fold_binary on binary expressions.
16865
168662005-03-05  Richard Sandiford  <rsandifo@redhat.com>
16867
16868	* doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
16869	* config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
16870	(TARGET_SWITCHES): Add -msym32 and -mno-sym32.
16871	(ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
16872	(ASM_SPEC): Pass down -msym32 and -mno-sym32.
16873
168742005-03-04  Devang Patel  <dpatel@apple.com>
16875
16876	PR tree-optimization/18815
16877	* tree-if-conv.c (combine_blocks): Adjust loop header edges for
16878	loops with zero exit edges.
16879
168802005-03-04  Devang Patel  <dpatel@apple.com>
16881
16882	* doc/invoke.texi: Remove reference to webpage that does not exist.
16883
168842005-03-04  John David Anglin  <dave.danglin@nrc-cnrc.gc.ca>
16885	    Joseph S. Myers  <joseph@codesourcery.com>
16886
16887	PR c++/19797
16888	* pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
16889	(ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
16890	* pa-protos.h (pa_hpux_asm_output_external): Add prototype.
16891	* pa.c (get_plabel): Change argument to symbol_ref.  Call
16892	maybe_get_identifier instead of get_identifier.
16893	(pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
16894	(struct deferred_plabel): Replace name field with symbol field.
16895	(TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
16896	ASM_OUTPUT_EXTERNAL_REAL is defined.
16897	(output_global_address): Use output_addr_const for output of all
16898	symbol_refs.
16899	(output_deferred_plabels): Use symbol_ref instead of name for address
16900	output.
16901	* pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
16902	ASM_OUTPUT_SYMBOL_REF): New macros.
16903	* som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw.  Update
16904	comment.
16905	(ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
16906	label.
16907
169082005-03-05  Joseph S. Myers  <joseph@codesourcery.com>
16909
16910	* config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
16911	*-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
16912
169132005-03-04  Jeff Law  <law@redhat.com>
16914
16915	* basic-block.h (rediscover_loops_after_threading): Declare.
16916	* tree-ssa-dom.c: Include cfgloop.h.
16917	(tree_ssa_dominator_optimize): Discover loops and some basic
16918	properties.  Remove forwarder blocks recreated by loop header
16919	canonicalization.  Also mark backedges in the CFG.
16920	* tree-ssa-threadupdate.c: Include cfgloop.h
16921	(rediscover_loops_after_threading): Define.
16922	(struct local_info): New field, JUMP_THREADED.
16923	(prune_undesirable_thread_requests): New function.
16924	(redirect_edges): Clear EDGE_ABNORMAL.  If edges were threaded
16925	then record that fact for the callers of redirct_edges.
16926	(thread_block): If BB has incoming backedges, then call
16927	prune_undesirable_thraed_requests.    Note when we are
16928	going to have to rediscover loop information.  Return a
16929	boolean indicating if any jumps were threaded.
16930	(thread_through_all_blocks): Bubble up boolean indicating
16931	if any jumps were threaded.
16932	* Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
16933	(tree-ssa-threadupdate.o): Similarly.
16934
169352005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
16936
16937	* fold-const.c (fold_ternary): Unroll the "for" loop to
16938	extract operands.
16939
169402005-03-04  Andrew Haley  <aph@redhat.com>
16941
16942	* unwind-dw2-fde-glibc.c (struct
16943	unw_eh_callback_data.check_cache): New field.
16944	(frame_hdr_cache): New.
16945	(_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
16946	Cache frame header info.
16947
169482005-03-04  Richard Sandiford  <rsandifo@redhat.com>
16949
16950	* rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
16951	(print_c_condition): Declare.
16952	* read-rtl.c (ptr_loc): New structure.
16953	(ptr_locs, ptr_loc_obstack, joined_conditions)
16954	(joined_conditions_obstack): New variables.
16955	(leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
16956	(get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
16957	(join_c_conditions, print_c_condition): New functions.
16958	(apply_macro_to_string): Associate the new string with the same
16959	source location as the old one.
16960	(add_condition_to_string): Use join_c_conditions.
16961	(read_string): Use set_rtx_ptr_loc to record a filename and line
16962	number for the string.
16963	(read_rtx): Initialize the new variables above.
16964	* genattrtab.c (write_test_expr, write_attr_value): Use
16965	print_c_condition.
16966	* genconditions.c (write_header): Don't define MAYBE_EVAL.  Move its
16967	comment above the GCC_VERSION check.
16968	(write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
16969	Inline the definition of MAYBE_EVAL.
16970	* genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
16971	* genoutput.c (process_template): Likewise.
16972	* genpreds.c (write_predicate_subfunction): Likewise.
16973	(write_predicate_expr): Use print_c_condition.
16974	* genrecog.c (write_cond): Likewise.
16975	* gensupport.c (process_rtx): Use join_c_conditions to join the
16976	conditions of a define_insn_and_split.  Record a source location
16977	for the string after the "&&".
16978	(alter_test_for_insn): Use join_c_conditions.
16979
169802005-03-04  Andrew Pinski  <pinskia@physics.uc.edu>
16981
16982	Revert for now:
16983	2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
16984	PR tree-optimization/15784
16985	* fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
16986	and -1 - A to ~A.
16987
169882005-03-04  Ben Elliston  <bje@au.ibm.com>
16989
16990	* gcc.c (option_map): Add --coverage.
16991	(LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
16992	(cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
16993	* config/darwin.h: Pass -lgcov for `coverage'.
16994	* doc/invoke.texi (Debugging Options): Document --coverage.
16995
169962005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
16997
16998	* gcse.c (bypass_block): Use find_edge wherever possible.
16999
170002005-03-03  Daniel Berlin <dberlin@dbrelin.org>
17001
17002	Fix PR debug/20253
17003
17004	* c-opts.c (c_common_parse_file): Call start_source_file
17005	and end_source_file at the approriate times.
17006
17007	* dwarf2out.c (dwarf2out_finish): Don't auto-end
17008	the main file, it will be done for us now.
17009
170102005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
17011
17012	* fold-const.c (fold_ternary): New.
17013	(fold): Call fold_ternary on ternary expressions.  Remove
17014	handling of ternary expressions.
17015
170162005-03-03  James A. Morrison  <phython@gcc.gnu.org>
17017
17018	PR tree-optimization/15784
17019	* fold-const.c (fold): Fold ~A + 1 to -A.  Fold -A - 1
17020	and -1 - A to ~A.
17021
170222005-03-03  David Edelsohn  <edelsohn@gnu.org>
17023
17024	* config/rs6000/predicates.md (branch_comparison_operator):
17025	Convert from C block to conditional format.
17026
170272005-03-03  Jan Hubicka  <jh@suse.cz>
17028
17029	* tree-dfa.c (add_referenced_var): Don't walk initializer of external
17030	and non-constant public variables.
17031
170322005-03-03  Kazu Hirata  <kazu@cs.umass.edu>
17033
17034	* tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
17035	with LABEL_EXPR.
17036
17037	* cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
17038	EDGE_I.
17039
17040	* tree-phinodes.c (remove_phi_node): Clean up by factoring out
17041	calls to release_ssa_name and release_phi_node.
17042
17043	* fold-const.c (fold): Remove handling of unary expressions.
17044
17045	* fold-const.c (fold_unary): Avoid directly using the original
17046	expression t as much as possible.
17047
170482005-03-03  Roger Sayle  <roger@eyesopen.com>
17049	    Andrew Pinski  <pinskia@physics.uc.edu>
17050
17051	* jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
17052	RETURN rtx, and not a LABEL_REF containing a NULL pointer.
17053
170542005-03-03  Hans-Peter Nilsson  <hp@axis.com>
17055
17056	Describe special registers SRP and MOF as allocatable registers.
17057	* config/cris/cris.c (cris_md_asm_clobbers): New function.
17058	(TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
17059	(cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
17060	TARGET_HAS_MUL_INSNS.
17061	(cris_print_operand) <case 'd'>: New case.
17062	<case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
17063	* config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
17064	define.
17065	(FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
17066	(REG_ALLOC_ORDER): Update for MOF.
17067	(enum reg_class): New members MOF_REGS, GENERAL_REGS and
17068	SPECIAL_REGS.
17069	(GENERAL_REGS): No longer a define of ALL_REGS.
17070	(REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
17071	(PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
17072	Adjust accordingly.
17073	(CRIS_SPECIAL_REGS_CONTENTS): New macro.
17074	(REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
17075	(SECONDARY_RELOAD_CLASS): Define.
17076	(STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
17077	(FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
17078	(ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
17079	(STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
17080	(REGISTER_MOVE_COST): Define.
17081	(PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
17082	* config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
17083	(CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
17084	(CRIS_MOF_REGNUM): New define_constants.
17085	("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
17086	special registers.
17087	("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
17088	New patterns.
17089	("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
17090	("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
17091	Adjust for MOF being properly described as a register.
17092	(indir_to_reg_split): Name this split.  Conditionalize on the
17093	destination register being a general register.
17094	(movei): Conditionalize on on operands 0 and 1 having the same
17095	register class.
17096
170972005-03-03  Alan Modra  <amodra@bigpond.net.au>
17098
17099	PR target/20277
17100	* config/rs6000/rs6000.c (rs6000_override_options): Don't allow
17101	-mcpu to override any other explicitly given flags.
17102
171032005-03-02  J"orn Rennecke <joern.rennecke@st.com>
17104
17105	* recog.c (verify_changes, confirm_change_group): New functions,
17106	broken out of apply_change_group.
17107	(apply_change_group): Use them.
17108	* recog.h (verify_change, confirm_change_group): Declare.
17109	* rtl.h (redirect_jump_2): Declare.
17110	* jump.c (redirect_exp, invert_exp): Delete.
17111	(invert_exp_1): Take second parameter.  Return value.  Changed caller.
17112	(redirect_jump_2): New function, broken out of redirect_jump.
17113	(redirect_jump): Use redirect_jump_1 and redirect_jump_2.
17114	(invert_jump): Use invert_jump_1 and redirect_jump_2.
17115	* ifcvt.c (dead_or_predicable): Use redirect_jump_2.
17116
171172005-03-02  Geoffrey Keating  <geoffk@apple.com>
17118
17119	* varasm.c (named_section): Use xstrdup rather than doing it by
17120	hand.
17121
17122	* config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
17123
171242005-03-02  Devang Patel  <dpatel@apple.com>
17125
17126	Undo PR tree-optimization/18815 fix.
17127
171282005-03-02  Devang Patel  <dpatel@apple.com>
17129
17130	PR tree-optimization/18815
17131	* tree-if-conv.c (combine_blocks): Adjust loop header edges for
17132	loops with zero exit edges.
17133
171342005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
17135
17136	* cfg.c (connect_src, connect_dest, disconnect_src,
17137	disconnct_dest): New.
17138	(unchecked_make_edge, remove_edge, redirect_edge_succ,
17139	redirect_edge_pred): Use the new functions.
17140
17141	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
17142	free_dominance_info only when needed.
17143
171442005-03-02  David Edelsohn  <edelsohn@gnu.org>
17145
17146	PR target/20276
17147	* config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
17148	(reg_or_sub_cint64_operand): Same.
17149
171502005-03-02  Jeff Law  <law@redhat.com>
17151
17152	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
17153	CFG_ALTERED in the main DOM iteration loop.
17154
171552005-03-02  Mark Mitchell  <mark@codesourcery.com>
17156
17157	PR c++/19916
17158	* varasm.c (initializer_constant_valid_p): Allow conversions
17159	between OFFSET_TYPEs.  Tidy.
17160
171612005-03-02  Hans-Peter Nilsson  <hp@axis.com>
17162
17163	* config/cris/cris.md ("return"): Remove epilogue delay list
17164	sanity check.
17165
171662005-03-02  Daniel Jacobowitz  <dan@codesourcery.com>
17167
17168	* config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
17169	for Thumb.
17170	* config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
17171
171722005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
17173
17174	* cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
17175	loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
17176	config/m68k/m68k.c, config/mips/mips.h,
17177	config/rs6000/rs6000-protos.h, doc/contrib.texi,
17178	doc/include/gcc-common.texi: Update copyright.
17179
17180	PR middle-end/18029 and PR middle-end/18030
17181	* expr.c (optimize_bitfield_assignment_op): Add a special case
17182	to handle BIT_IOR_EXPR and BIT_XOR_EXPR.
17183
17184	* fold-const.c (fold_unary): New.
17185	(fold): Call fold_unary on unary expressions.
17186
171872005-03-02  Richard Guenther  <rguenth@gcc.gnu.org>
17188
17189	* cgraph.h (struct cgraph_edge): Add prev_caller and
17190	prev_callee fields.
17191	(cgraph_node_remove_callees): Export.
17192	* cgraph.c (cgraph_create_edge): Initialize prev_caller
17193	and prev_callee.
17194	(cgraph_edge_remove_callee): New function.
17195	(cgraph_edge_remove_caller): Likewise.
17196	(cgraph_remove_edge): Use.
17197	(cgraph_redirect_edge_callee): Likewise.
17198	(cgraph_node_remove_callees): New function.
17199	(cgraph_node_remove_callers): Likewise.
17200	(cgraph_remove_node): Use.
17201	* tree-optimize.c (tree_rest_of_compilation): Use
17202	cgraph_node_remove_callees instead of manual loop.
17203	* cgraphunit.c (cgraph_finalize_function): Likewise.
17204	(cgraph_expand_function): Likewise.
17205	(cgraph_remove_unreachable_nodes): Likewise.
17206
172072005-03-02  Joseph S. Myers  <joseph@codesourcery.com>
17208
17209	PR c/8927
17210	* c-tree.h (undeclared_variable, build_external_ref): Add extra
17211	argument.
17212	* c-decl.c (undeclared_variable): Take location as argument.
17213	* c-typeck.c (build_external_ref): Likewise.
17214	* c-parser.c (c_parser_postfix_expression): Pass location of
17215	identifier to build_external_ref.
17216
172172005-03-01  David Edelsohn  <edelsohn@gnu.org>
17218
17219	* config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
17220	CCEQ mode for branch_positive_comparison_operator test.
17221	* config/rs6000/predicates (branch_comparison_operator): Revert to
17222	define_predicate.
17223	(scc_comparison_operator): Same.
17224	(branch_positive_comparison_operator): Same.
17225
172262005-03-01  Hans-Peter Nilsson  <hp@axis.com>
17227
17228	* config/cris/cris.c (cris_eligible_for_epilogue_delay)
17229	(cris_delay_slots_for_epilogue): Remove.
17230	(save_last): Move into cris_target_asm_function_epilogue.
17231	(cris_target_asm_function_epilogue): Remove tests for file being
17232	NULL.
17233	* config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
17234	(cris_delay_slots_for_epilogue): Remove prototypes.
17235	* config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
17236	(ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.
17237
172382005-03-01  David Edelsohn  <edelsohn@gnu.org>
17239
17240	* config/rs6000/predicates.md (branch_comparison_operator): Change
17241	to define_special_predicate.
17242	(scc_comparison_operator): Same.
17243	(branch_positive_comparison_operator): Same.
17244
172452005-03-01  Daniel Berlin <dberlin@dberlin.org>
17246
17247	* Makefile.in (tree-ssa-sink.o): New.
17248	(OBJS-common): Add tree-ssa-sink.o.
17249	* common.opt: Add -ftree-sink
17250	* opts.c (decode_options): flag_tree_sink is set at O1 or higher.
17251	* timevar.def (TV_TREE_SINK): new timevar.
17252	* tree-flow.h (is_hidden_global_store): Prototype.
17253	* tree-optimize.c (init_tree_optimization_passes): Add
17254	pass_sink_code.
17255	* tree-pass.h (pass_sink_code): New.
17256	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
17257	for non-obvious global store store to is_hidden_global_store, and
17258	call that new function.
17259	* tree-ssa-sink.c: New file.
17260	* doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
17261	* doc/passes.texi: Document forward store motion.
17262	* testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
17263	* testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
17264	* testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
17265	* testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
17266
172672005-03-01  Per Bothner  <per@bothner.com>
17268
17269	* diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
17270	and we have a non-zero column-number, add it to the message.
17271	Also factor out the diagnostic_kind_text.
17272
172732005-03-01  Zdenek Dvorak  <dvorakz@suse.cz>
17274
17275	* cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
17276	flow_loop_pre_header_scan, flow_loop_pre_header_find,
17277	flow_loop_scan): Removed.
17278	(flow_loop_dump): Do not dump removed fields.
17279	(flow_loop_free): Do not free removed fields.
17280	(flow_loops_find): Flags argument removed.  Do not call flow_loop_scan.
17281	(loop_exit_edge_p): New function.
17282	* cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
17283	num_pre_header_edges, entry_edges, num_entries, exit_edges,
17284	num_exits, exits_doms.
17285	(LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
17286	LOOP_EDGES, LOOP_ALL): Removed.
17287	(flow_loop_scan): Declaration removed.
17288	(loop_exit_edge_p, mark_loop_exit_edges): Declare.
17289	* cfgloopmanip.c (create_loop_notes): Do not pass flags to
17290	flow_loops_find.
17291	* ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
17292	(if_convert): Call flow_loops_find and flow_loops_free
17293	when calling mark_loop_exit_edges.
17294	* cfgloopanal.c (mark_loop_exit_edges): Moved from
17295	ifcvt.c.  Removed the flow_loops_find, flow_loops_free and
17296	free_dominance_info calls.
17297	* loop-init.c (flow_loops_find): Ditto.
17298	* passes.c (rest_of_handle_branch_prob): Ditto.
17299	* lambda-code.c (perfect_nestify): Do not call flow_loops_find.
17300	* loop-unroll.c (analyze_insns_in_loop): Do not use
17301	EDGE_LOOP_EXIT.
17302	* predict.c (predict_loops): Do not call flow_loop_scan.
17303	Use get_loop_exit_edges.
17304	(tree_estimate_probability): Do not pass flags to flow_loops_find.
17305	* tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
17306	Do not use EDGE_LOOP_EXIT.
17307	(tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
17308	to bb_with_exit_edge_p.
17309	(if_convertible_loop_p): Do not call flow_loop_scan.  Use
17310	loop->single_exit.  Do not use EDGE_LOOP_EXIT.  Pass loop
17311	to bb_with_exit_edge_p.
17312	(combine_blocks): Pass loop to bb_with_exit_edge_p.  Do not use
17313	EDGE_LOOP_EXIT.
17314	* tree-loop-linear.c (linear_transform_loops): Do not call
17315	flow_loop_scan.  Use loop->single_exit.
17316	* tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
17317	(vect_analyze_loop_form): Do not call flow_loop_scan.
17318	* tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
17319	loop->single_exit.
17320	(vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
17321	loop->single_exit.
17322	* tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
17323	slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
17324	slpeel_tree_duplicate_loop_to_edge_cfg,
17325	slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
17326	Use loop_preheader_edge and loop->single_exit.  Do not call
17327	flow_loop_scan.
17328
173292005-03-01  Nick Clifton  <nickc@redhat.com>
17330
17331	* config/arm/arm.c (thumb_find_work_register): Check all of the
17332	argument registers to see if they are free, and a couple of
17333	special cases where the last argument register but can be proved
17334	to be available during the function's prologue.
17335	(print_multi_reg, arm_compute_save_reg0_reg12_mask,
17336	output_return_instruction, emit_multi_reg_push, thumb_pushpop,
17337	thumb_unexpanded_epilogue): Use unsigned long as the type for the
17338	register bit-mask.
17339	(thumb_compute_save_reg_mask): Likewise.  Also use
17340	thumb_find_work_register() to ensure that there is agreement about
17341	which work register is going to be used in the prologue.
17342	(thumb_output_function_prologue): Use unsigned long as the type
17343	for the register bit-mask.  Also delay pushing the link register if
17344	other high registers are going to be pushed.
17345	(thumb_compute_save_reg_mask, emit_multi_reg_push,
17346	print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
17347	redundant prototypes.
17348
173492005-02-28  John David Anglin  <dave.anglin#nrc-cnrc.gc.ca>
17350
17351	PR target/19819
17352	* pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
17353	and after reload in REG+REG indexed addresses without REG_POINTER
17354	set in the base and not set in the index.
17355
173562005-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
17357
17358	* config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
17359	Don't undefine here.
17360	(HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
17361	(NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
17362	(TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
17363	(LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
17364	LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
17365	Delete.
17366	* config.gcc (sh*-*-linux*): Use config/linux.h.
17367
173682005-02-28  Dale Johannesen  <dalej@apple.com>
17369	    Stan Shebs  <shebs@apple.com>
17370
17371	Rewrite of 64-bit Darwin structure-by-value pass/return.
17372	* config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
17373	intoffset, use_stack, named.
17374	* config/rs6000/rs6000.c (rs6000_darwin64_function_arg):  Remove.
17375	(rs6000_darwin64_record_arg_advance_flush):  New.
17376	(rs6000_darwin64_record_arg_advance_recurse): New.
17377	(rs6000_darwin64_record_arg_flush):  New.
17378	(rs6000_darwin64_record_arg_recurse):  New.
17379	(rs6000_darwin64_record_arg):  New.
17380	(rs6000_return_in_memory):  Remove AGGREGATE_TYPE_P check.
17381	(function_arg_boundary):  Handle 128-bit aligned structs.
17382	(function_arg_advance):  Rewrite darwin64 struct handling.
17383	(function_arg):  Call rs6000_darwin64_record_arg.
17384	(function_arg_partial_nregs):  Handle darwin64 structs.
17385	(rs6000_darwin64_function_value):  Remove.
17386	(rs6000_function_value):  Call rs6000_darwin64_record_arg.
17387
173882005-02-28  Roger Sayle  <roger@eyesopen.com>
17389
17390	PR tree-optimization/20216
17391	* tree-chrec.c (tree_fold_factorial): Delete.
17392	(tree_fold_binomial): Change argument list to take a return type
17393	and change the type of K to unsigned int.  Rewrite to avoid explicit
17394	evaluation of factorials, and (recursively) calling fold to perform
17395	compile-time arithmetic.  Return NULL on (internal) overflow.
17396	(chrec_evaluate): Change type of K to an unsigned int.  Avoid
17397	calling tree_fold_binomial unnecessarily.  Return chrec_dont_know
17398	if any intermediate calculation overflows.
17399	(chrec_apply): Update call to chrec_evaluate.
17400
174012005-02-28  James E Wilson  <wilson@specifixinc.com>
17402
17403	* config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
17404
174052005-02-28  Joseph S. Myers  <joseph@codesourcery.com>
17406
17407	PR c/20245
17408	* c-parser.c (c_parser_compound_statement): Return error_mark_node
17409	instead of NULL_TREE on error.
17410
174112005-02-28  David Edelsohn  <edelsohn@gnu.org>
17412
17413	* config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
17414	(EASY_VECTOR_15_ADD_SELF): Remove.
17415	(num_insns_constant_wide): Not static.
17416	(validate_condition_mode): Not static.
17417	(toc_relative_expr_p): Not static.
17418	(legitimate_indirect_address_p): Not static.
17419	(macho_lo_sum_memory_operand): Not static.
17420	(invalid_e500_subreg): Not static.
17421	(easy_vector_same): Not static.
17422	(easy_vector_splat_const): Not static.
17423	(RS6000_SYMBOL_REF_TLS_P): Remove.
17424	(any_operand): Delete.
17425	(any_parallel_operand): Delete.
17426	(count_register_operand): Delete.
17427	(altivec_register_operand): Delete.
17428	(xer_operand): Delete.
17429	(s8bit_cint_operand): Delete.
17430	(short_cint_operand): Delete.
17431	(u_short_cint_operand): Delete.
17432	(non_short_cint_operand): Delete.
17433	(exact_log2_cint_operand): Delete.
17434	(gpc_reg_operand): Delete.
17435	(cc_reg_operand): Delete.
17436	(cc_reg_not_cr0_operand): Delete.
17437	(reg_or_short_operand): Delete.
17438	(reg_or_neg_short_operand): Delete.
17439	(reg_or_aligned_short_operand): Delete.
17440	(reg_or_u_short_operand): Delete.
17441	(reg_or_cint_operand): Delete.
17442	(reg_or_arith_cint_operand): Delete.
17443	(reg_or_add_cint64_operand): Delete.
17444	(reg_or_sub_cint64_operand): Delete.
17445	(reg_or_logical_cint_operand): Delete.
17446	(got_operand): Delete.
17447	(got_no_const_operand): Delete.
17448	(easy_fp_constant): Delete.
17449	(easy_vector_constant): Delete.
17450	(easy_vector_constant_add_self): Delete.
17451	(zero_constant): Delete.
17452	(zero_fp_constant): Delete.
17453	(volatile_mem_operand): Delete.
17454	(offsettable_mem_operand): Delete.
17455	(mem_or_easy_const_operand): Delete.
17456	(add_operand): Delete.
17457	(non_add_cint_operand): Delete.
17458	(logical_operand): Delete.
17459	(non_logical_cint_operand): Delete.
17460	(mask_operand): Delete.
17461	(mask_operand_wrap): Delete.
17462	(mask64_operand): Delete.
17463	(mask64_2_operand): Delete.
17464	(and64_operand): Delete.
17465	(and64_2_operand): Delete.
17466	(and_operand): Delete.
17467	(reg_or_mem_operand): Delete.
17468	(lwa_operand): Delete.
17469	(symbol_ref_operand): Delete.
17470	(call_operand): Delete.
17471	(current_file_function_operand): Delete.
17472	(input_operand): Delete.
17473	(rs6000_nonimmediate_operand): Delete.
17474	(rs6000_tls_symbol_ref): Delete.
17475	(save_world_operation): Delete.
17476	(restore_world_operation): Delete.
17477	(load_multiple_operation): Delete.
17478	(store_multiple_operation): Delete.
17479	(vrsave_operation): Delete.
17480	(mfcr_operation): Delete.
17481	(mtcrf_operation): Delete.
17482	(lmw_operation): Delete.
17483	(stmw_operation): Delete.
17484	(branch_comparison_operator): Delete.
17485	(branch_positive_comparison_operator): Delete.
17486	(scc_comparison_operator): Delete.
17487	(trap_comparison_operator): Delete.
17488	(boolean_operator): Delete.
17489	(boolean_or_operator): Delete.
17490	(min_max_operator): Delete.
17491	* config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
17492	(EASY_VECTOR_15): Moved to here.
17493	(EASY_VECTOR_15_ADD_SELF): Move to here.
17494	(PREDICATE_CODES): Delete.
17495	* config/rs6000/rs6000-protos.h: Delete predicate functions.
17496	Declare functions no longer static.
17497	* config/rs6000/predicates.md: New.
17498	* config/rs6000/rs6000.md: Include predicates.md
17499
175002005-02-28  Kazu Hirata  <kazu@cs.umass.edu>
17501
17502	* calls.c (emit_call_1): Don't use  REG_ALWAYS_RETURN.
17503	(emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
17504	REG_ALWAYS_RETURN.
17505	* cfgrtl.c (need_fake_edge_p): Likewise.
17506	* combine.c (distribute_notes): Likewise.
17507	* emit-rtl.c (try_split): Likewise.
17508	* recog.c (peephole2_opimize): Likewise.
17509	* reg-notes.def (ALWAYS_RETURN): Remove.
17510	* rtl.h (LCT_ALWAYS_RETURN): Remove.
17511	* tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
17512	* tree.h (ECF_ALWAYS_RETURN): Remove.
17513
175142005-02-28  Roger Sayle  <roger@eyesopen.com>
17515
17516	PR middle-end/19874
17517	* tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
17518	between different machine modes is never a "useless" conversion.
17519
175202005-02-28  Geert Bosch  <bosch@gnat.com>
17521
17522	PR ada/15977
17523	* doc/contrib.texi: List contributors for Ada front end
17524
175252005-02-28 Paolo Bonzini <bonzini@gnu.org>
17526
17527	* simplify-rtx.c (simplify_unary_operation_1,
17528	simplify_const_unary_operation): New, extracted from...
17529	(simplify_unary_operation): ... this one.
17530	(simplify_binary_operation_1,
17531	simplify_const_binary_operation): New, extracted from...
17532	(simplify_binary_operation): ... this one.
17533	* rtl.h (simplify_const_unary_operation,
17534	simplify_const_binary_operation): Add prototypes.
17535
175362005-02-28  Julian Brown  <julian@codesourcery.com>
17537
17538	* config/elfos.h: Revert my patch from 2005-02-25 since it broke
17539	building libjava and caused PR regression/20228.
17540
175412005-02-28  Paolo Bonzini  <bonzini@gnu.org>
17542
17543	PR bootstrap/17383
17544	* Makefile.in (host_subdir): New.
17545	(build_objdir): New.  Replace ../$(build_subdir) with it throughout.
17546	* configure: Regenerate.
17547
175482005-02-27  Zack Weinberg  <zack@codesourcery.com>
17549
17550	* config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
17551	* config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
17552	installation directory first.
17553
175542005-02-28  Hans-Peter Nilsson  <hp@axis.com>
17555
17556	PR target/19065.
17557	* config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
17558	not including (reg). Do not check for reg being CRIS_PC_REGNUM.
17559	(EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
17560	* config/cris/cris.md: Tweak comments referring to Q.
17561	("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
17562	("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
17563	("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
17564	("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
17565	("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
17566	Insert spaces in constraints to align alternatives vertically for
17567	readability.
17568	("cmphi"): Ditto.  Add separate alternative for operand 0 "r",
17569	operand 1: "M".
17570
175712005-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17572
17573	PR rtl-optimization/17728
17574	* pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
17575	operand 0 from general_operand to move_dest_operand.
17576
175772005-02-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17578
17579	* pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
17580	instead of trying to save and restore TREE_SYMBOL_REFERENCED.
17581	* pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
17582	(ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
17583
175842005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
17585
17586	* configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
17587	* configure: Regenerate.
17588	* libada-mk.in: Remove CC; rename
17589	cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.
17590
175912005-02-26  Andrew Pinski  <pinskia@physics.uc.edu>
17592
17593	PR tree-opt/20188
17594	* tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
17595	for the lhs, also walk over the tree.  Likewise for rhs.
17596
175972005-02-26  Zdenek Dvorak  <dvorakz@suse.cz>
17598
17599	* tree-ssa-dom.c (simple_iv_increment_p): New function.
17600	(simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
17601	Do not propagate value of iv before increment over the increment.
17602
176032005-02-25  Joseph S. Myers  <joseph@codesourcery.com>
17604
17605	* c-parser.c: New file.
17606	* c-parse.in: Remove.
17607	* Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
17608	Remove.
17609	(c-parser.o): Add dependencies.
17610	(C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
17611	maintainer-clean, TAGS): Update.
17612	* c-config-lang.in (gtfiles): Update.
17613	* gengtype-lex.l: Don't handle "@@".
17614	* stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt,
17615	objc_build_synchronized, objc_begin_try_stmt,
17616	objc_begin_catch_clause, objc_finish_catch_clause,
17617	objc_build_finally_clause, objc_finish_try_stmt): New.
17618	* c-tree.h (struct c_declspecs): Add declspecs_seen_p and
17619	type_seen_p.
17620	(c_parse_init): Update comment.
17621	* c-decl.c (c_init_decl_processing): Update comment.
17622	(build_null_declspecs, declspecs_add_qual, declspecs_add_type,
17623	declspecs_add_scspec, declspecs_add_attrs): Initialize and update
17624	new c_declspecs members.
17625
176262005-02-25  Julian Brown  <julian@codesourcery.com>
17627
17628	* config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
17629	from being used for symbols with vague linkage when
17630	HAVE_GAS_COMDAT_GROUP is true.
17631
176322005-02-25  Mark Mitchell  <mark@codesourcery.com>
17633
17634	* doc/include/gcc-common.texi (version-GCC): Update to 4.1.
17635
176362005-02-25  Steve Ellcey  <sje@cup.hp.com>
17637
17638	PR target/19930
17639	* doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
17640	(LIBGCC2_HAS_DF_MODE): New.
17641	(LIBGCC2_HAS_XF_MODE): New.
17642	(LIBGCC2_HAS_TF_MODE): New.
17643	* libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
17644	(LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
17645	* libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
17646	(LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
17647	(LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
17648	* config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
17649	and add _fixtfdi, _fixunstfdi, _floatditf
17650	* lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
17651	L_fixunstfdi, L_floatditf.
17652	* config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
17653	(LIBGCC2_HAS_TF_MODE): Define.
17654
176552005-02-25  Diego Novillo  <dnovillo@redhat.com>
17656
17657	PR tree-optimization/20204
17658	* tree-into-ssa.c (insert_phi_nodes_for): Do not use
17659	REWRITE_THIS_STMT markers on PHI nodes.
17660	(rewrite_initialize_block): Likewise.
17661
176622005-02-25  Mark Mitchell  <mark@codesourcery.com>
17663
17664	* version.c (version_string): Update to 4.1.
17665
176662005-02-25  Paolo Carlini  <pcarlini@suse.de>
17667
17668	* doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
17669	Clarify that the alternative way doesn't work in GNU C++.
17670
176712005-02-25  Zdenek Dvorak  <dvorakz@suse.cz>
17672
17673	PR tree-optimization/19937
17674	* tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
17675	to the type of the induction variable.
17676
176772005-02-25  Kaz Kojima  <kkojima@gcc.gnu.org>
17678
17679	PR rtl-optimization/20117
17680	* bb-reorder.c (duplicate_computed_gotos): Don't duplicate
17681	the block including noncopyable insn.
17682
176832005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
17684
17685	* cse.c (delete_trivially_dead_insns): Speed up by minimizing
17686	calls to find_reg_note.
17687
176882005-02-24  Richard Henderson  <rth@redhat.com>
17689
17690	PR tree-opt/20127
17691	* tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
17692	the type.
17693
176942005-02-24  Fariborz Jahanian <fjahanian@apple.com>
17695
17696	* config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
17697	vector types if to use base reg for misaligned non-word ld/std.
17698
176992005-02-24  Hans-Peter Nilsson  <hp@axis.com>
17700
17701	PR target/14619
17702	* config/cris/cris.c (cris_target_asm_function_prologue): Create
17703	dwarf2 label manually and put it after, not before the prologue.
17704
177052005-02-24  David Edelsohn  <edelsohn@gnu.org>
17706
17707	PR target/19019
17708	* reload.c (operands_match_p): Only increment register number for
17709	SCALAR_INT_MODE_P modes in multiple hard registers.
17710
17711	* config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
17712	Fix formatting.
17713
177142005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
17715
17716	* ChangeLog.5: Fix log message typo(s).
17717	* ChangeLog.7: Likewise.
17718	* ChangeLog.tree-ssa: Likewise.
17719	* cfgexpand.c: Fix comment typo(s).
17720	* conflict.c: Likewise.
17721	* defaults.h: Likewise.
17722	* dwarf2out.c: Likewise.
17723	* gcse.c: Likewise.
17724	* ggc-page.c: Likewise.
17725	* tree-eh.c: Likewise.
17726	* tree-ssa-dom.c: Likewise.
17727
177282005-02-24  Jakub Jelinek  <jakub@redhat.com>
17729
17730	PR target/19019
17731	* mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
17732	* config/rs6000/darwin-ldouble.c: Only use the .symver directives
17733	if SHARED is defined.
17734
17735	PR target/20196
17736	* config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
17737	allow splitting only if operands 0 and 3 don't overlap.
17738
177392005-02-24  Richard Henderson  <rth@redhat.com>
17740
17741	PR middle-end/19953
17742	* builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
17743	(fold_builtin_1): Call them.
17744	* fold-const.c (fold_complex_mult_parts): Split out from ...
17745	(fold_complex_mult): ... here.  Fix typo in both imaginary case.
17746	(fold_complex_div_parts, fold_complex_div): New.
17747	(fold): Use them.
17748	* tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
17749
177502005-02-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
17751
17752	* tree-ssa-ccp.c (visit_assignment): Verify that result of
17753	VIEW_CONVERT_EXPR is_gimple_min_invariant.
17754
17755	* print-tree.c (print_node_brief): Print LABEL_DECL_UID.
17756	(print_node): Likewise.
17757	Print TYPE_SIZES_GIMPLIFIED.
17758
177592005-02-24  Hans-Peter Nilsson  <hp@axis.com>
17760
17761	* config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
17762	("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
17763	operands as commutative in constraints.
17764
177652005-02-24  Diego Novillo  <dnovillo@redhat.com>
17766
17767	* tree-into-ssa.c: Re-organize internal functions.
17768
177692005-02-24  Richard Henderson  <rth@redhat.com>
17770
17771	PR middle-end/18902
17772	* c-opts.c (c_common_post_options): Set flag_complex_method to 2
17773	for c99.
17774	* common.opt (fcx-limited-range): New.
17775	* opts.c (set_fast_math_flags): Set flag_cx_limited_range.
17776	* toplev.c (flag_complex_method): Initialize to 1.
17777	(process_options): Set flag_complex_method to 0 if
17778	flag_cx_limited_range.
17779	* doc/invoke.texi (-fcx-limited-range): New.
17780
177812005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
17782
17783	* cse.c (delete_trivially_dead_insns): Speed up by using
17784	NEXT_INSN and PREV_INSN directly instead of next_real_insn and
17785	prev_real_insn.
17786
177872005-02-24  Andrea Tarani  <andrea.tarani@gilbarco.com>
17788
17789	* config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
17790	functions when -mid-shared-library is being used.
17791
177922005-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
17793
17794	* doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
17795	(LINK_LIBGCC_SPECIAL_1): Don't mention it.
17796	* gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
17797	* system.h: Poison LINK_LIBGCC_SPECIAL.
17798
177992005-02-23  James E Wilson  <wilson@specifixinc.com>
17800
17801	* gengtype.c (note_insn_name): Make 1 element larger.
17802
178032005-02-23  Roger Sayle  <roger@eyesopen.com>
17804
17805	PR target/20018
17806	PR rtl-optimization/20097
17807	* simplify-rtx.c (simplify_relational_operation_1): Avoid creating
17808	BImode SUBREGs of SImode registers which confuse the ia64 backend.
17809
178102005-02-23  David Edelsohn  <edelsohn@gnu.org>
17811
17812	* t-aix43 (SHLIB_INSTALL): Create directory for shared library.
17813	* t-aix52 (SHLIB_INSTALL): Same.
17814
178152005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
17816
17817	* genpreds.c: Update copyright.
17818
178192005-02-23  Michael Beach  <michaelb@ieee.org>
17820
17821	PR target/20159
17822	* config/sparc/t-elf (startup files): Assemble with CPP.
17823
178242005-02-23  Paolo Bonzini  <bonzini@gnu.org>
17825
17826	* genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
17827	(write_predicate_expr): Likewise.
17828
178292005-02-22  Diego Novillo  <dnovillo@redhat.com>
17830
17831	PR tree-optimization/20100
17832	PR tree-optimization/20115
17833	* tree-optimize.c (init_tree_optimization_passes): Remove
17834	pass_maybe_create_global_var.
17835	* tree-pass.h (pass_maybe_create_global_var): Remove.
17836	* tree-ssa-alias.c (aliases_computed_p): Declare.
17837	(struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
17838	(count_calls_and_maybe_create_global_var): Remove.
17839	(pass_maybe_create_global_var): Remove.
17840	(init_alias_info): Do not declare aliases_computed_p.
17841	(maybe_create_global_var): If the function contains no
17842	call-clobbered variables and a mix of pure/const and regular
17843	function calls, create .GLOBAL_VAR.
17844	Mark all call-clobbered variables for renaming.
17845	(merge_pointed_to_info): Update comment.
17846	(add_pointed_to_var): Likewise.
17847	(is_escape_site): Likewise.
17848	Accept struct alias_info * instead of size_t *.
17849	Update all users.
17850	Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
17851	as necessary.
17852	* tree-ssa-operands.c (get_call_expr_operands): If
17853	ALIASES_COMPUTED_P is false, do not add call-clobbering
17854	operands.
17855	* tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
17856	(delete_tree_ssa): Likewise.
17857
178582005-02-22  James E Wilson  <wilson@specifixinc.com>
17859
17860	* toplev.c (backend_init): Don't call init_adjust_machine_modes here.
17861	(do_compile): Do call it here.
17862
178632005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
17864
17865	PR rtl-optimization/20017.
17866	* passes.c (rest_of_handle_combine, rest_of_handle_cse,
17867	rest_of_handle_cse2, rest_of_handle_gcse): Call
17868	delete_dead_jumptables immediately before calling cleanup_cfg.
17869
178702005-02-22  Devang Patel  <dpatel@apple.com>
17871
17872	PR 19952
17873	* tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
17874	all labels
17875
178762005-02-22  David Edelsohn  <edelsohn@gnu.org>
17877
17878	* config/rs6000/aix.h (WINT_TYPE): Define.
17879
178802005-02-22  Stan Shebs  <shebs@apple.com>
17881
17882	* config/rs6000/rs6000.c (rs6000_override_options): Default to
17883	natural alignment for 64-bit Darwin.
17884	(rs6000_parse_alignment_option): Warn about uses of -malign-power
17885	on 64-bit Darwin.
17886	* doc/invoke.texi: Document this.
17887
178882005-02-22  DJ Delorie  <dj@redhat.com>
17889
17890	* c-common.c (c_common_type_for_mode): Pass the mode's precision
17891	to make_[un]signed_type, not the mode itself.
17892
178932005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
17894
17895	* cfg.c (cached_make_edge): Call make_edge if edge cache is
17896	not available.  Use tail calls wherever possible.
17897	(make_edge): Call unchecked_make_edge to create an edge.
17898
17899	* tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
17900	(coalesce_ssa_name): Don't check for
17901	SSANORM_USE_COALESCE_LIST.
17902	(rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.
17903
179042005-02-22  Diego Novillo  <dnovillo@redhat.com>
17905
17906	* tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
17907	(rewrite_into_ssa): ... here.
17908
179092005-02-21  Alexandre Oliva  <aoliva@redhat.com>
17910
17911	PR tree-optimization/19786
17912	* tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
17913	tag to another's may-alias bitmap when adding to the other's list.
17914
179152005-02-21  DJ Delorie  <dj@redhat.com>
17916
17917	* tree-ssa-loop-ivopts.c (computation_cost): Start register
17918	numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
17919	registers in unsupported ways.
17920	* expmed.c (init_expmed): Likewise.
17921
179222005-02-21  Stan Cox  <scox@redhat.com>
17923
17924	* config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
17925
179262005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
17927
17928	* tree-cfg.c (fold_cond_expr_cond): New.
17929	(make_edges): Call fold_cond_expr_cond.
17930	(find_taken_edge): Accept nothing but INTEGER_CST.
17931	(find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
17932	and 1.
17933	(find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
17934
17935	* flow.c (delete_dead_jumptables): Speed up by scanning insns
17936	that do not belong to any basic block.
17937
179382005-02-21  Jeff Law  <law@redhat.com>
17939
17940	* cfganal.c (find_unreachable_blocks): Manually CSE load of
17941	e->dest.
17942
179432005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
17944
17945	* tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
17946	(SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
17947	Adjust their definitions.
17948	(remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
17949	(rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
17950
17951	* c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
17952	genautomata.c, langhooks.c, langhooks.h, system.h,
17953	config/arm/lib1funcs.asm: Update copyright.
17954
179552005-02-21  Ulrich Weigand  <uweigand@de.ibm.com>
17956
17957	* dbxout.c (dbxout_function_end): Emit Lscope label always.
17958
179592005-02-21  Richard Guenther  <rguenth@gcc.gnu.org>
17960
17961	PR bootstrap/13770
17962	* doc/install.texi: Document --with-gc.
17963
179642005-02-21  Paolo Bonzini  <bonzini@gnu.org>
17965
17966	* simplify-rtx.c (simplify_unary_operation): Add a missing
17967	"break" statement.
17968
179692005-02-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
17970
17971	PR tree-optimization/18663
17972	* tree-ssa-dom.c (extract_range_from_cond): Return 0
17973	if the type has variable bounds.
17974
179752005-02-20  Kazu Hirata  <kazu@cs.umass.edu>
17976
17977	* gcse.c: Remove an obsolete comment.
17978
17979	* cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.
17980
179812005-02-20  Hans-Peter Nilsson  <hp@axis.com>
17982
17983	* doc/extend.texi (Function Attributes) <Attribute const>: The
17984	attribute "pure" is below this text, not above.
17985
179862005-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
17987
17988	* pa.c (pa_assemble_integer, get_plabel): Small cleanups.
17989	(pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
17990	* som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.
17991
179922005-02-20  Zack Weinberg  <zack@codesourcery.com>
17993
17994	PR 18785
17995	* langhooks.h (struct lang_hooks): Add to_target_charset.
17996	* langhooks.c (lhd_to_target_charset): New function.
17997	* langhooks-def.h: Declare lhd_to_target_charset.
17998	(LANG_HOOKS_TO_TARGET_CHARSET): New macro.
17999	(LANG_HOOKS_INITIALIZER): Update.
18000	* c-common.c (c_common_to_target_charset): New function.
18001	* c-common.h: Declare it.
18002	* c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
18003	c_common_to_target_charset.
18004
18005	* defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
18006	(TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
18007	Delete definitions.
18008	* system.h: Poison them.
18009	* doc/tm.texi: Don't discuss them.
18010	* builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
18011	* c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
18012	(pp_c_char): Do not attempt to generate letter escapes for
18013	newline, tab, etc.
18014	* config/arm/arm.c (output_ascii_pseudo_op): Likewise.
18015	* config/mips/mips.c (mips_output_ascii): Likewise.
18016
180172005-02-20  Dorit Naishlos  <dorit@il.ibm.com>
18018
18019	PR tree-optimization/19951
18020	* tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
18021	is abnormal.
18022
180232005-02-19  Steven Bosscher  <stevenb@suse.de>
18024
18025	PR middle-end/19698
18026	* function.h (struct function): New field `max_loop_depth'.
18027	* cfgloop.c (establish_preds): Update maximum loop depth seen so far.
18028	(flow_loops_find): Reset the max loop depth count before finding loops.
18029	* flow.c (MAX_LIVENESS_ROUNDS): New constant.
18030	(update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
18031	(calculate_global_regs_live): Make sure the loop will terminate
18032	when the initial sets are not empty.
18033
180342005-02-19  Zack Weinberg  <zack@codesourcery.com>
18035
18036	* mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
18037	object inside.
18038	* config/ia64/hpux.h: Don't define LIBGCC_SPEC.
18039
180402005-02-19  Richard Sandiford  <rsandifo@redhat.com>
18041
18042	PR other/19525
18043	* doc/invoke.texi: Remove documentation of %M spec.
18044	* gcc.c: Likewise.
18045	(init_spec): Remove %M suffix from -lgcc_s.
18046	(do_spec_1): Remove 'M' case.
18047	* mklibgcc.in: Remove SHLIB_MULTILIB handling.  Expect SHLIB_LINK
18048	to put shared libraries in the multilib directory.  Remove the
18049	shlib_so_soname substitution variable.  Don't add a multilib encoding
18050	to shlib_base_name.  Set shlib_slibdir_qual to the full pathname
18051	reported by -print-multi-os-directory.  Pass @multilib_dir@ to
18052	SHLIB_INSTALL as well as SHLIB_LINK.
18053	* config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
18054	(SHLIB_NAME): Delete.
18055	(SHLIB_DIR): New macro.
18056	(SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
18057	(SHLIB_INSTALL): Adjust accordingly.
18058	* config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
18059	* config/t-slibgcc-sld: Likewise.
18060	* config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
18061	(SHLIBUNWIND_SONAME): Use @shlib_base_name@.
18062	(SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
18063	in $(SHLIB_DIR).
18064	(SHLIBUNWIND_INSTALL): Adjust accordingly.
18065	* config/i386/t-nwld (SHLIB_SONAME): Delete.
18066	(SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
18067	Use @shlib_base_name@ instead of @shlib_so_name@.
18068	* config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
18069	and @shlib_base_name@.so in @multilib_dir@.
18070	(SHLIB_INSTALL): Adjust accordingly.  Add @shlib_slibdir_qual@
18071	to the install path.
18072	* config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
18073	(SHLIB_LINK): Remove previous workaround.
18074	* config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
18075	(SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
18076	(SHLIB_INSTALL): Adjust accordingly.  Add $(SHLIB_SLIBDIR_QUAL) to
18077	the install path.
18078	* config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
18079	@multilib_dir@.  Use @multilib_dir@ to check for threading libraries.
18080	(SHLIB_INSTALL): Adjust accordingly.
18081	(SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
18082	* config/rs6000/t-aix52: As for config/rs6000/t-aix43.
18083	* config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
18084	config/t-slibgcc-elf-ver.
18085
180862005-02-19  Zdenek Dvorak  <dvorakz@suse.cz>
18087	    Jakub Jelinek  <jakub@redhat.com>
18088
18089	PR tree-optimization/19828
18090	* tree-ssa-loop-im.c: Add a TODO comment.
18091	(movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
18092	without side-effects.
18093
180942005-02-18  James A. Morrison  <phython@gcc.gnu.org>
18095
18096	* tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
18097	call fold_convert.
18098
180992005-02-18  James E. Wilson  <wilson@specifixinc.com>
18100
18101	* doc/invoke.texi (IA-64 Options): Delete -mb-step.
18102	* config/ia64/ia64.c (last_group, group_idx): Delete variables.
18103	(errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
18104	functions.
18105	(ia64_reorg): Delete fixup_errata call.
18106	* config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
18107	(TARGET_SWITCHES): Delete -mb-step entry.
18108
181092005-02-19  Jakub Jelinek  <jakub@redhat.com>
18110
18111	PR c/20043
18112	* c-typeck.c (composite_type): Handle quals in transparent unions.
18113	(type_lists_compatible_p): Likewise.
18114
181152005-02-18  Stan Shebs  <shebs@apple.com>
18116
18117	* config/darwin.c (machopic_select_rtx_section): Don't put relocatable
18118	expressions in the .literal8 section.
18119
181202005-02-18  Geoffrey Keating  <geoffk@apple.com>
18121
18122	* config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.
18123
181242005-02-18  Roger Sayle  <roger@eyesopen.com>
18125
18126	* fold-const.c (constant_boolean_node): Always create values of the
18127	specified type, don't bother calling truthvalue_conversion.
18128
181292005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
18130
18131	* except.c (output_function_exception_table): Call
18132	assemble_external_libcall (eh_personality_libfunc).
18133
181342005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
18135
18136	PR target/19886
18137	* config/ia64/ia64.h (struct machine_function): Add state_num.
18138	* config/ia64/ia64.c (process_epilogue,
18139	process_for_unwind_directive): Use new unwind state numbers each
18140	time rather than state 1.
18141
181422005-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
18143
18144	PR target/20054
18145	* config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
18146	before the "*llgt_didi" pattern.
18147
181482005-02-18  Jason Merrill  <jason@redhat.com>
18149
18150	* gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.
18151
181522005-02-18  Richard Earnshaw  <rearnsha@arm.com>
18153
18154	* arm/lib1funcs.asm (FUNC_ALIAS): New macro.
18155	(div0): Use it in place of ARM_FUNC_ALIAS.
18156	(lshrdi3, ashrdi3, ashlrdi3): Likewise.
18157
181582005-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
18159
18160	PR middle-end/20030
18161	* fold-const.c (fold_indirect_ref_1): Use the correct index for zero
18162	access, the lower bound of the array type if it exists.
18163
181642005-02-18  Alexandre Oliva  <aoliva@redhat.com>
18165
18166	PR c++/20008
18167	* stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
18168	cases that are out-of-range for the index type.
18169
181702005-02-18  James A. Morrison  <phython@gcc.gnu.org>
18171
18172	* stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
18173	(estimate_case_costs): Don't call convert.
18174	* expmed.c (expand_shift): Likewise.
18175	(make_tree): Call fold_convert instead of convert.
18176
181772005-02-18  Jakub Jelinek  <jakub@redhat.com>
18178
18179	PR c++/19813
18180	* emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
18181	that ref to be marked MEM_READONLY_P doesn't have base that needs
18182	constructing.
18183
181842005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
18185
18186	* genautomata.c (output_get_cpu_unit_code_func,
18187	output_cpu_unit_reservation_p): Don't generate old-style function
18188	definitions.
18189
181902005-02-18  Jakub Jelinek  <jakub@redhat.com>
18191
18192	PR c++/20023
18193	PR tree-optimization/20009
18194	* convert.c (convert_to_integer): Revert 2005-02-16 change.
18195
18196	PR tree-optimization/18947
18197	* cgraphunit.c (cgraph_finalize_function): When redefining an extern
18198	inline, remove all nodes that are inlined into the extern inline
18199	being redefined.
18200
182012005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
18202
18203	* bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
18204	loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
18205	tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
18206	config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
18207	Update copyright.
18208
182092005-02-17  Roger Sayle  <roger@eyesopen.com>
18210
18211	PR tree-optimization/19917
18212	* tree-eh.c (tree_could_trap_p): Consider calls to weak functions
18213	to be potentially trapping.
18214
182152005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
18216
18217	* libgcc2.c, tree-vect-analyze.c: Fix comment typos.
18218
182192005-02-17  Andreas Krebbel  <krebbel1@de.ibm.com>
18220
18221	* builtins.c (expand_builtin_return_addr): Remove tem parameter.
18222	tem becomes a local variable which is set to the value of the
18223	back end defined INITIAL_FRAME_ADDRESS macro.
18224	(expand_builtin_frame_address): Omit the base parameter to
18225	expand_builtin_return_addr.
18226	(expand_builtin_profile_func): Likewise.
18227	* config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
18228	(DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
18229	* doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.
18230
182312005-02-17  Jakub Jelinek  <jakub@redhat.com>
18232
18233	* config/s390/s390.c (s390_alloc_pool, s390_free_pool,
18234	s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
18235	* config/frv/frv.c (frv_function_epilogue): Likewise.
18236
182372005-02-17  Daniel Berlin  <dberlin@dberlin.org>
18238
18239	* lambda-code (perfect_nestify): Remove mark/unmark
18240	for rewriting hack.
18241	* tree-loop-linear.c (linear_transform_loops): Add
18242	rewrite_into_ssa call so that ssa is correct for
18243	rewriting into loop closed.
18244
182452005-02-17  Nathan Sidwell  <nathan@codesourcery.com>
18246
18247	* bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
18248	* bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
18249	BITMAP_FREE.
18250	* bt-load.c (btr_def_live_range, combine_btr_defs,
18251	migrate_btr_def, migrate_btr_defs): Likewise.
18252	* cfgcleanup.c (thread_jump): Likewise.
18253	* cfgloop.c (get_loop_body_in_bfs_order): Likewise.
18254	* df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
18255	df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
18256	df_rd_local_compute, df_reg_info_compute): Likewise.
18257	* dominance.c (init_dom_info, free_dom_info): Likewise.
18258	* flow.c (init_propagate_block_info,
18259	free_propagate_block_info): Likewise.
18260	* gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
18261	* global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
18262	modify_reg_pav): Likewise.
18263	* loop-invariant.c (find_defs, find_invariant_insn,
18264	find_invariants, free_inv_motion_data): Likewise.
18265	* predict.c (tree_predict_by_opcode,
18266	estimate_bb_frequencies): Likewise.
18267	* stmt.c (expand_case): Likewise.
18268	* tree-cfg.c (tree_duplicate_sese_region): Likewise.
18269	* tree-dfa.c (mark_new_vars_to_rename): Likewise.
18270	* tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
18271	* tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
18272	get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
18273	rewrite_ssa_into_ssa): Likewise.
18274	* tree-optimize.c (tree_rest_of_compilation): Likewise.
18275	* tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
18276	analyze_edges_for_bb, perform_edge_inserts): Likewise.
18277	* tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
18278	* tree-sra.c (tree_sra): Likewise.
18279	* tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
18280	* tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
18281	* tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
18282	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
18283	* tree-ssa-dse.c (tree_ssa_dse): Likewise.
18284	* tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
18285	Likewise.
18286	* tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
18287	calculate_live_on_entry, calculate_live_on_exit,
18288	build_tree_conflict_graph): Likewise.
18289	* tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
18290	record_important_candidates, set_use_iv_cost, find_depends,
18291	determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
18292	tree_ssa_iv_optimize_finalize): Likewise.
18293	* tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
18294	find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
18295	tree_duplicate_loop_to_header_edge): Likewise.
18296	* tree-ssa-pre.c (init_pre, fini_pre): Likewise.
18297	* tree-ssa.c (verify_flow_insensitive_alias_info,
18298	verify_name_tags, verify_ssa, init_tree_ssa,
18299	delete_tree_ssa): Likewise.
18300	* tree-ssanames.c (marked_ssa_names, init_ssanames,
18301	fini_ssanames): Likewise.
18302	* tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.
18303
183042005-02-17  Ralf Corsepius  <ralf.corsepius@rtems.org>
18305
18306	* config/rs6000/t-rtems: Completely reworked.
18307
183082005-02-17  Ira Rosen  <irar@il.ibm.com>
18309
18310	* tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.
18311
183122005-02-17  Ira Rosen  <irar@il.ibm.com>
18313
18314	* tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
18315	POINTER_TYPE_P when checking that type is a pointer.
18316	(vect_get_memtag): Remove.
18317	(vect_address_analysis): Use POINTER_TYPE_P. Call
18318	vect_object_analysis with dummy parameter for memtag.
18319	(vect_object_analysis): Extract memtag (functionality that
18320	used to be in vect_get_memtag and moved here). Fix printings.
18321	(vect_analyze_data_refs): Fix comment. Call vect_object_analysis
18322	with correct parameters. Remove call to vect_get_memtag.
18323
183242005-02-17  Dorit Naishlos  <dorit@il.ibm.com>
18325
18326	* Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
18327	(tree-vectorizer.o): Added missing dependencies.
18328
18329	* tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
18330	decleration.
18331	(slpeel_tree_peel_loop_to_edge): Function externalized (had a static
18332	declaration in tree-vectorizer.c, now has an extern declaration in
18333	tree-vectorizer.h).
18334	(slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
18335	slpeel_verify_cfg_after_peeling, vect_strip_conversion,
18336	get_vectype_for_scalar_type, vect_is_simple_use,
18337	vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
18338	vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
18339	new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
18340	vectorizable_store, vectorizable_operation, vectorizable_assignment,
18341	vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
18342	find_loop_location): Likewise.
18343
18344	* tree-vectorizer.c (langhooks.h): #include removed.
18345	(slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
18346	moved to tree-vectorized.h.
18347	(slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
18348	slpeel_verify_cfg_after_peeling, vect_strip_conversion,
18349	get_vectype_for_scalar_type, vect_is_simple_use,
18350	vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
18351	vect_supportable_dr_alignment, new_loop_vec_info,
18352	destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
18353	vect_set_verbosity_level, find_loop_location): Likewise.
18354
18355	(vect_analyze_loop): Function externalized. Declaration moved to
18356	tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
18357	(vect_analyze_loop_form): Moved to tree-vect-analyze.c.
18358	(vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
18359	vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
18360	vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
18361	vect_enhance_data_refs_alignment, vect_analyze_operations,
18362	exist_non_indexing_operands_for_use_p, vect_mark_relevant,
18363	vect_stmt_relevant_p, vect_get_loop_niters,
18364	vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
18365	vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
18366	vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
18367	vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
18368	vect_get_memtag): Likewise.
18369
18370	(vectorizable_load): Function externalized. Declaration moved to
18371	tree-vectorized.h. Function definition moved to tree-vect-transform.c.
18372	(vectorizable_store, vectorizable_operation, vectorizable_assignment,
18373	vect_transform_loop): Likewise.
18374	(vect_transform_stmt): Moved to tree-vect-transform.c.
18375	(vect_align_data_ref, vect_create_destination_var,
18376	vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
18377	vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
18378	vect_get_vec_def_for_operand, vect_init_vector,
18379	vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
18380	vect_build_loop_niters, vect_update_ivs_after_vectorizer,
18381	vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
18382	vect_update_inits_of_drs, vect_do_peeling_for_alignment,
18383	vect_do_peeling_for_loop_bound): Likewise.
18384
18385	* tree-vect-analyze.c: New file.
18386	* tree-vect-transform.c: New file.
18387
183882005-02-17  Jason Merrill  <jason@redhat.com>
18389
18390	PR mudflap/19319, c++/19317
18391	* gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
18392	slot explicit.
18393
183942005-02-17  Gerald Pfeifer  <gerald@pfeifer.com>
18395
18396	* doc/install.texi (Specific): Update link for Darwin-specific
18397	tool binary site.
18398
183992005-02-16  James A. Morrison  <phython@gcc.gnu.org>
18400
18401	* fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
18402	constant_boolean_node.
18403
184042005-02-16  David Edelsohn  <edelsohn@gnu.org>
18405
18406	PR target/19019
18407	* config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
18408	* config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.
18409
184102005-02-16  Richard Henderson  <rth@redhat.com>
18411
18412	PR 19920
18413	* libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
18414	with W_TYPE_SIZE.
18415	(HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
18416	replace uses with Wtype_MAXp1_F.
18417	(L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
18418	L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
18419	L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
18420	L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
18421	and HAVE_TFMODE as appropriate.
18422	(__fixunssfDI): Provide an implementation that doesn't need DFmode.
18423	(__floatdisf): Likewise.
18424	* libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
18425	(HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
18426	(Wtype_MAXp1_F): New.
18427	(DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
18428	__powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.
18429
184302005-02-16  Richard Earnshaw  <rearnsha@arm.com>
18431
18432	* PR target/19162
18433	* arm.c (arm_apply_result_size): New function.
18434	* arm.h (APPLY_RESULT_SIZE): Define.
18435	* arm-protos.h (arm_apply_result_size): Add prototype.
18436	* arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
18437	(movxf): New expand.
18438	(ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
18439	(call_value_symbol): Remove predicate for operand 0.
18440	(call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
18441	(untyped_call): Rework to correclty return values for any type.
18442	(untyped_return): New expand.
18443	* fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.
18444
184452005-02-16  Stan Shebs  <shebs@apple.com>
18446
18447	* config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
18448	* config/rs6000/t-darwin8: New, for 64-bit multilib.
18449
184502005-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
18451
18452	* doc/install.texi (sparc-sun-solaris2*): Document required GMP
18453	configure settings on Solaris 7 and later.
18454
184552005-02-16  Diego Novillo  <dnovillo@redhat.com>
18456
18457	PR tree-optimization/19865
18458	* tree-optimize.c (init_tree_optimization_passes): Run
18459	pass_may_alias after pass_sra.
18460
184612005-02-16  Richard Henderson  <rth@redhat.com>
18462	    Stuart Hastings  <stuart@apple.com>
18463
18464	PR debug/19521
18465	* dbxout.c (dbxout_function_end): Take decl parameter; update callers.
18466	Do nothing if debug info suppressed for this function.
18467	(dbxout_begin_function): Early exit if debug info suppressed for
18468	this function.
18469
184702005-02-16  Kazu Hirata  <kazu@cs.umass.edu>
18471
18472	PR target/20007
18473	* config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
18474	find_basic_blocks.
18475	* config/sh/sh.c (sh_output_mi_thunk): Likewise.
18476
18477	PR tree-optimization/19967
18478	* builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
18479	expand_builtin_strchr, expand_builtin_strrchr): Take a new
18480	argument TYPE.  Adjust calls to fold_builtin_XXX.
18481	(expand_builtin, fold_builtin_1): Adjust calls to
18482	expand_builtin_XXX.
18483	(fold_builtin_strchr, fold_builtin_strpbrk,
18484	fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
18485	result to a requested type TYPE.
18486
184872005-02-16  Jakub Jelinek  <jakub@redhat.com>
18488
18489	PR middle-end/19857
18490	* fold-const.c (fold): Don't optimize (T)(x & cst) to
18491	(T)x & (T)cst if (T)cst overflows.
18492	* convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
18493	TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.
18494
184952005-02-15  Jeff Law  <law@redhat.com>
18496
18497	* gcse.c (blocks_with_calls): New bitmap.
18498	(alloc_gcse_mem): Allocate it.
18499	(free_gcse_mem): Free it.
18500	(clear_modifY_mem_tables): Clear it.
18501	(record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
18502	when we encounter CALL_INSNs.
18503	(compute_transp, case MEM): Handle blocks with calls separate
18504	from blocks without calls.  Use bitmap iterators rather than
18505	FOR_EACH_BB.
18506
185072005-02-15  Peter O'Gorman  <peter@pogma.com>
18508
18509	PR bootstrap/18810
18510	* mklibgcc.in (vis_hide): Use a temporary object file, not
18511	-o /dev/null.
18512
185132005-02-15  Andy Hutchinson  <HutchinsonAndy@netscape.net>
18514
18515	PR target/19924
18516	* config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
18517	access optimization.
18518
185192005-02-15  David Edelsohn  <edelsohn@gnu.org>
18520	    Alan Modra  <amodra@bigpond.net.au>
18521
18522	PR target/19019
18523	* config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd.
18524	(_xlqsub): Rename to __gcc_qsub.
18525	(_xlqmul): Rename to __gcc_qmul.
18526	(_xlqdiv): Rename to __gcc_qdiv.
18527	Provide versioned symbol aliases with old names.
18528	* config/rs6000/libgcc-ppc64.ver: Rename symbols.
18529	* config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols.
18530	* config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New.
18531	* config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New.
18532	* config/rs6000/t-newas (LIB2FUNCS_EXTRA): New.
18533
185342005-02-15  James A. Morrison  <phython@gcc.gnu.org>
18535
18536	* fold-const.c (fold): Fold -(~A) to A + 1.  Fold ~(-A) to A - 1.
18537	Fold ~(A - 1) and ~(A + -1) to -A.
18538
185392005-02-15  James A. Morrison  <phython@gcc.gnu.org>
18540
18541	PR pch/14940
18542	PR target/19300
18543	* config/host-linux.c (linux_gt_pch_use_address): Copy from
18544	config/pa/pa-host.c:pa_gt_pch_use_address.
18545
185462005-02-15  Daniel Berlin  <dberlin@dberlin.org>
18547
18548	* tree-vn.c (get_value_handle): Make sure that given an
18549	is_gimple_min_invariant expression, we always return it.
18550
185512005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
18552
18553	* passes.c (rest_of_handle_gcse): Fix a comment.
18554
185552005-02-15  Jeff Law  <law@redhat.com>
18556
18557	* gcse.c (canon_modify_mem_set_list_set): Kill unnecessary
18558	bitmap.
18559	(alloc_gcse_mem, free_gcse_mem): Corresponding changes.
18560	(canon_list_insert, record_last_mem_set_info): Similarly.
18561	(clear_modify_mem_tables): Similarly.
18562
185632005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
18564
18565	* bitmap.c, bitmap.h, lambda-code.c, tree-dfa.c, tree-dump.c,
18566	tree-dump.h, tree-ssa-loop-manip.c, value-prof.c,
18567	config/mips/mips.md, config/rs6000/aix.h,
18568	config/rs6000/beos.h, config/rs6000/sysv4.h: Update copyright.
18569
185702005-02-15  Richard Henderson  <rth@redhat.com>
18571
18572	* bb-reorder.c (find_traces_1_round): Force fallthru edge from a
18573	call to be best_edge.
18574
185752005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
18576
18577	* basic-block.h: Adjust the prototype for find_basic_blocks.
18578	* cfgbuild.c (find_basic_blocks): Remove unused arguments.
18579	* passes.c (rest_of_handle_loop_optimize): Adjust the call to
18580	find_basic_blocks.
18581
18582	* flow.c (recompute_reg_usage): Remove all arguments.
18583	* passes.c (rest_of_compilation): Adjust the call to
18584	recompute_reg_usage.
18585	* rtl.h: Adjust the prototype for recompute_reg_usage.
18586
185872005-02-14  Daniel Berlin  <dberlin@dberlin.org>
18588
18589	* tree-dump.c (dump_files): Update to reflect new member
18590	of dump_file_info.
18591	(dump_register): Add new argument.
18592	Set glob name.
18593	(dump_switch_p_1): Check against glob name if doglob was passed.
18594	(dump_switch_p): Check against regular first, then glob if
18595	we didn't have any hits on the dump name.
18596	* tree-optimize.c (register_one_dump_file):
18597	Pass in glob name as well.
18598	* tree-pass.h (struct dump_file_info): Add glob
18599	member.
18600
186012005-02-14  Joseph S. Myers  <joseph@codesourcery.com>
18602
18603	PR preprocessor/16323
18604	* doc/invoke.texi: Document that -Wendif-labels is on by default.
18605
186062005-02-14  David Edelsohn  <edelsohn@gnu.org>
18607
18608	PR target/19019
18609	* config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
18610	(trunctfdf2_internal1): New.
18611	(trunctfdf2_internal2): Renamed from trunctfdf2.
18612
186132005-02-14  Diego Novillo  <dnovillo@redhat.com>
18614
18615	PR tree-optimization/19853
18616	* tree-dfa.c (add_referenced_var): Always examine DECL_INITIAL.
18617
186182005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
18619
18620	* passes.c (rest_of_handle_loop_optimize): Remove calls to
18621	delete_dead_jumptables and cleanup_cfg.
18622
186232005-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
18624
18625	* reload.c (find_reloads): Swap address_reloaded flags when
18626	swapping commutative operands.
18627
186282005-02-14  Sebastian Pop  <pop@cri.ensmp.fr>
18629
18630	* lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
18631	Use standard_iv_increment_position for computing the bsi position
18632	for create_iv.
18633	* tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
18634	the bsi position.
18635
186362005-02-13  Zdenek Dvorak  <dvorakz@suse.cz>
18637
18638	PR target/17428
18639	* cfgrtl.c (safe_insert_insn_on_edge): Avoid extending
18640	life range of hard registers.
18641	* value-prof.c (insn_prefetch_values_to_profile): Only
18642	scan normal insns.
18643
18644	* value-prof.c (rtl_find_values_to_profile): Do not look for values to
18645	profile in libcalls.
18646
186472005-02-13  Nathan Sidwell  <nathan@codesourcery.com>
18648
18649	* bitmap.h (bitmap_and_compl_into): Return bool.
18650	* bitmap.c (bitmap_and_compl_into): Return changed flag.
18651
186522005-02-13  James A. Morrison  <phython@gcc.gnu.org>
18653
18654	PR tree-optimization/19944
18655	* fold-const.c (fold): Re-add ABS_EXPR folding.
18656
186572005-02-13  David Edelsohn  <edelsohn@gnu.org>
18658
18659	PR target/19019
18660	* config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
18661	{TARGET,MASK}_XL_COMPAT.
18662	(SUBTARGET_SWITCHES): Rename xl-call to xl-compat.  Use
18663	MASK_XL_COMPAT.
18664	* config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
18665	* config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
18666	TARGET_XL_COMPAT.
18667	(rs6000_arg_partial_bytes): Same.
18668	(rs6000_generate_compare): Generate PARALLEL for compare if TFmode
18669	and XL compatibility enabled.
18670	* config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
18671	* config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
18672	test to final condition.
18673	(cmptf_internal2): New.
18674	* doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
18675	xl-compat.  Add TFmode information to description.
18676
186772005-02-13  Kazu Hirata  <kazu@cs.umass.edu>
18678
18679	* flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.
18680
186812005-02-13  Jason Merrill  <jason@redhat.com>
18682
18683	PR c++/16405
18684	* fold-const.c (fold_indirect_ref_1): Split out from...
18685	(build_fold_indirect_ref): Here.
18686	(fold_indirect_ref): New fn.
18687	* tree.h: Declare it.
18688	* gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
18689	(gimplify_modify_expr_rhs): Likewise.
18690	(gimplify_expr): Likewise.
18691
186922005-02-13  James A. Morrison  <phython@gcc.gnu.org>
18693
18694	PR tree-optimization/14303
18695	PR tree-optimization/15784
18696	* fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
18697	Fold ABS_EXPR<x> < 0 to false.  Fold ABS_EXPR<x> == 0 to x == 0 and
18698	ABS_EXPR<x> != 0 to x != 0.
18699
187002005-02-12  Kazu Hirata  <kazu@cs.umass.edu>
18701
18702	* c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
18703	simplify-rtx.c, tree-ssa-live.h: Fix comment typos.  Follow
18704	spelling conventions.
18705
18706	* passes.c (rest_of_handle_gcse): Don't run cse_main and
18707	delete_trivially_dead_insns too many times.
18708
18709	* passes.c (rest_of_handle_gcse): Remove dead assignments to
18710	tem and tem2.
18711
187122005-02-12  Ira Rosen  <irar@il.ibm.com>
18713
18714	* tree-vectorizer.c (vect_get_base_and_offset): Remove.
18715	(vect_is_simple_iv_evolution): Remove redundant parameter
18716	and step check.
18717	(vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
18718	without last parameter.
18719	(vect_analyze_pointer_ref_access): Get access_fn as parameter.
18720	Return pointer step. Call vect_is_simple_iv_evolution without
18721	last parameter. Check only that the step is multiple of size
18722	type. Remove stmt_vinfo updates.
18723	(vect_get_memtag_and_dr): Remove.
18724	(vect_get_memtag): New function.
18725	(vect_address_analysis): New function.
18726	(vect_object_analysis): New function.
18727	(vect_analyze_data_refs): Call vect_object_analysis and
18728	vect_get_memtag. Update stmt_vinfo fields.
18729
187302005-02-12  Ira Rosen  <irar@il.ibm.com>
18731
18732	* tree-data-ref.c (array_base_name_differ_p): Check that the bases
18733	exist and are objects. Remove checks for pointer.
18734	* tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
18735	STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
18736	(vect_create_data_ref_ptr): Likewise.
18737	(vect_base_addr_differ_p): New function.
18738	(vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
18739	(vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
18740	Don't set the DR_BASE_NAME field of data-ref.
18741	(vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.
18742
187432005-02-12  Uros Bizjak  <uros@kss-loka.si>
18744
18745	* optabs.h (enum optab_index): Add new OTI_ldexp.
18746	(ldexp_optab): Define corresponding macro.
18747	* optabs.c (init_optabs): Initialize ldexp_optab.
18748	* genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
18749	patterns.
18750	* builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
18751	using ldexp_optab.
18752	(expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
18753	expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.
18754
18755	* config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
18756	to implement ldexpf, ldexp and ldexpl built-ins as inline x87
18757	intrinsics.
18758
187592005-02-12  Ira Rosen  <irar@il.ibm.com>
18760
18761	* tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
18762	to base_address.
18763	* tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
18764	stmt_vec_info.
18765	(vect_get_base_and_offset): Always return an address.
18766	(vect_create_addr_base_for_vector_ref): Remove treatment for
18767	different data reference types.
18768	(vect_compute_data_ref_alignment): Rename base to base_address in
18769	stmt_vec_info. Get the object in order to force its alignment.
18770	(vect_get_memtag_and_dr): Rename base to base_address in
18771	stmt_vec_info. Extract the object for memtag analysis.
18772
187732005-02-12  Hans-Peter Nilsson  <hp@axis.com>
18774
18775	PR regression/19898.
18776	* config/cris/cris.c (cris_notice_update_cc): When testing if insn
18777	changes cc_status, use apply modified_in_p to part of cc_status
18778	and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
18779	body.
18780
187812005-02-11  Richard Henderson  <rth@redhat.com>
18782
18783	* tree-complex.c (expand_complex_libcall): New.
18784	(expand_complex_multiplication): Use it for c99 compliance.
18785	(expand_complex_division): Likewise.
18786	* fold-const.c (fold_complex_add, fold_complex_mult): New.
18787	(fold): Call them.
18788	* builtins.c (built_in_names): Remove const.
18789	* tree.c (build_common_builtin_nodes): Build complex arithmetic
18790	builtins.
18791	* tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
18792	(BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
18793	(built_in_names): Remove const.
18794	* c-common.c (c_common_type_for_mode): Handle complex modes.
18795	* flags.h, toplev.c (flag_complex_method): Rename from
18796	flag_complex_divide_method.
18797	* libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
18798	__mulsc3, __muldc3, __mulxc3, __multc3): New.
18799	* libgcc2.h: Declare them.
18800	* libgcc-std.ver: Export them.
18801	* mklibgcc.in (lib2funcs): Build them.
18802
188032005-02-11  Steven Bosscher  <stevenb@suse.de>
18804
18805	PR tree-optimization/19876
18806	Partially revert my change from 2005-01-14
18807	* tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
18808	(compute_antic): ...and remove the loop here.
18809
188102005-02-11  Jakub Jelinek  <jakub@redhat.com>
18811
18812	PR middle-end/19858
18813	* fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
18814	is number of inner's bits, avoid creating a BIT_FIELD_REF.
18815
18816	* config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
18817	crtend.o if -pie.  Use %{x:a;:b} spec syntax.
18818
188192005-02-11  Daniel Jacobowitz  <dan@codesourcery.com>
18820
18821	* config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
18822	offsets for the big-endian 32-bit case.
18823
188242005-02-11  Joseph S. Myers  <joseph@codesourcery.com>
18825
18826	* config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
18827
188282005-02-11  Dale Johannesen  <dalej@apple.com>
18829
18830	* cselib.c (cselib_process_insn):  Clear out regs where
18831	HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
18832	* reload.c (find_equiv_reg): Ditto.
18833
188342005-02-11  Ian Lance Taylor  <ian@airs.com>
18835
18836	* read-rtl.c (read_rtx_1): Give fatal error if we see a vector
18837	with no elements.
18838
18839	* tree.c (build_function_type_list): Work correctly if there are
18840	no arguments.
18841
188422005-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
18843
18844	* config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
18845	"*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
18846	("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
18847	TARGET_ZARCH instead of TARGET_64BIT.
18848
188492005-02-11  Ralf Corsepius  <ralf.corsepius@rtems.org>
18850
18851	* config/rs6000/t-rtems:
18852	(MULTILIB_OPTIONS): Remove mcpu=602.
18853	(MUTLILIB_DIRNAMES): Remove m602.
18854	(MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
18855	Let mcpu=602 match mcpu=603.
18856	(MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.
18857
188582005-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
18859
18860	* pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
18861	signal trampolines.
18862
188632005-02-10  David Daney  <ddaney@avtrex.com>
18864
18865	* config/alpha/linux-unwind.h: Add exception clause to copyright.
18866	* config/i386/linux-unwind.h: Likewise.
18867	* config/ia64/linux-unwind.h: Likewise.
18868	* config/mips/linux-unwind.h: Likewise.
18869	* config/pa/linux-unwind.h: Likewise.
18870	* config/rs6000/linux-unwind.h: Likewise.
18871	* config/s390/linux-unwind.h: Likewise.
18872	* config/sh/linux-unwind.h: Likewise.
18873	* config/sparc/linux-unwind.h: Likewise.
18874
188752005-02-10  Steven Bosscher  <stevenb@suse.de>
18876
18877	PR tree-optimization/17549
18878	* tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
18879	TER to replace a DEF with its expression if the DEF and the
18880	rhs of the expression we replace into have the same root
18881	variable.
18882
188832005-02-10  Richard Sandiford  <rsandifo@redhat.com>
18884
18885	* config/mips/mips.md: Fix the placement of the match_scratch in the
18886	lea64 peephole2.
18887
188882005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
18889
18890	* cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
18891	Fix comment typos.
18892
188932005-02-10  Zdenek Dvorak  <dvorakz@suse.cz>
18894
18895	* tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
18896	(strip_offset): Handle addresses.
18897	(add_address_candidates): Use strip_offset.
18898	(difference_cost): Reflect strip_offset change.
18899	(force_var_cost, difference_cost): Strip nops.
18900
189012005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
18902
18903	* df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.
18904
18905	* builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
18906	tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
18907	config/cris/cris-protos.h, config/cris/cris.c: Update
18908	copyright.
18909
189102005-02-10  Jeff Law  <law@redhat.com>
18911
18912	* tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
18913	(lookup_avail_expr): Similarly.
18914
189152005-02-10  Richard Guenther  <rguenth@gcc.gnu.org>
18916
18917	* builtins.c (fold_builtin_powi): New function.
18918	(fold_builtin_1): Call it.
18919
189202005-02-10  Steven Bosscher  <stevenb@suse.de>
18921
18922	PR documentation/19309
18923	* doc/cpp.texi: The __GNUC__ and related predefined macros
18924	are also defined for the "standalone" cpp.
18925	Some non-GCC compilers may also define __GNUC__.
18926
189272005-02-10  Jakub Jelinek  <jakub@redhat.com>
18928
18929	PR c/19342
18930	* c-typeck.c (common_type): New routine.  Old common_type renamed
18931	to...
18932	(c_common_type): ...this.
18933	(build_conditional_expr, build_binary_op): Use c_common_type instead
18934	of common_type.
18935
189362005-02-10  Steven Bosscher  <stevenb@suse.de>
18937
18938	* doc/md.texi: Replace @samp{length} with @code{length}.
18939
189402005-02-09  Zdenek Dvorak  <dvorakz@suse.cz>
18941
18942	PR tree-optimization/18687
18943	* tree-flow.h (find_loop_niter): Declare.
18944	* tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
18945	Try using scev even for loops with more than one exit.
18946	* tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
18947	(struct ivopts_data): Added niters field.
18948	(struct nfe_cache_elt): New.
18949	(nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
18950	functions.
18951	(tree_ssa_iv_optimize_init): Initialize niters cache.
18952	(determine_number_of_iterations): Removed.
18953	(find_induction_variables): Do not call determine_number_of_iterations.
18954	Access niters for single exit through niter_for_single_dom_exit.
18955	(add_iv_outer_candidates): Access niters for single exit through
18956	niter_for_single_dom_exit.
18957	(may_eliminate_iv): Take data argument.  Use niter_for_exit.  Do not use
18958	number_of_iterations_cond.
18959	(iv_period): New function.
18960	(determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
18961	(may_replace_final_value): Take data argument.  Use
18962	niter_for_single_dom_exit.
18963	(determine_use_iv_cost_outer): Pass data to may_replace_final_value.
18964	(rewrite_use_compare): Pass data to may_eliminate_iv.
18965	(rewrite_use_outer): Pass data to may_replace_final_value.
18966	(free_loop_data): Clean up the niters cache.
18967	(tree_ssa_iv_optimize_finalize): Free the niters cache.
18968	(tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
18969	* tree-ssa-loop-niter.c (find_loop_niter): New function.
18970	(find_loop_niter_by_eval): Use tree_int_cst_lt.
18971	(num_ending_zeros): Moved to tree.c.
18972	* tree.h (num_ending_zeros): Declare.
18973	* tree.c (num_ending_zeros): Moved from tree.c.
18974
189752005-02-09  Richard Henderson  <rth@redhat.com>
18976
18977	* builtins.c (DEF_BUILTIN): Add COND argument.
18978	* tree.h (DEF_BUILTIN): Likewise.
18979	* builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
18980	DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
18981	match.
18982	(DEF_BUILTIN_STUB): New.
18983	(BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
18984	BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
18985	BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
18986	* c-common.c (DEF_BUILTIN): Add COND argument.
18987	* tree.c (local_define_builtin): New.
18988	(build_common_builtin_nodes): New.
18989
189902005-02-09  Roger Sayle  <roger@eyesopen.com>
18991
18992	* fold-const.c (fold_strip_sign_ops): New function to simplify a
18993	floating point expression ignoring the sign of the result.
18994	(fold) <ABS_EXPR>: Use it to simplify fabs(x).
18995	(fold) <MULT_EXPR>: Use it to simplify x*x.
18996	* tree.h (fold_strip_sign_ops): Prototype here.
18997	* builtins.c (fold_builtin_copysign): Take an additional FNDECL
18998	argument.  Use fold_strip_sign_ops to simplify the first argument.
18999	(fold_builtin_pow):  Use fold_strip_sign_ops to simplify the
19000	first argument when the second argument is an even integer
19001	constant, but only with -funsafe_math_optimizations.
19002	(fold_builtin_1): Update call to fold_builtin_copysign.
19003
190042005-02-09  Ian Lance Taylor  <ian@airs.com>
19005
19006	PR middle-end/19583
19007	* gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
19008	just check whether EH_FILTER_FAILURE falls through.
19009
190102005-02-09  Andreas Krebbel  <krebbel1@de.ibm.com>
19011
19012	* gcc/haifa-sched.c (schedule_block): Make queued sched group
19013	insns return to ready list in the next turn.
19014
190152005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
19016
19017	PR middle-end/19402
19018	* builtins.def: New __builtin_powi[lf].
19019	* builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
19020	(expand_builtin_powi): New function.
19021	(expand_builtin): Dispatch to expand_builtin_powi.
19022	* libgcc2.h: Add prototypes for __builtin_powi[lf].
19023	* libgcc2.c: Add __builtin_powi[lf] implementation.
19024	* mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
19025	* optabs.h: Add powi_optab.
19026	* optabs.c (init_optabs): Initialize powi_optab.
19027	* doc/extend.texi: Document __builtin_powi[lf].
19028
190292005-02-09  Dorit Naishlos  <dorit@il.ibm.com>
19030
19031	* tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
19032	exists.
19033
190342005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
19035
19036	PR middle-end/19854
19037	* fold-const.c (try_move_mult_to_index): Remove redundant
19038	type argument.  Create ADDR_EXPR with correct type.
19039	(fold): Update callers of try_move_mult_to_index.  Convert
19040	result to the appropriate type.
19041
190422005-02-09  Roger Sayle  <roger@eyesopen.com>
19043
19044	PR target/19597
19045	* config/avr/avr.c (default_rtx_costs): Delete.
19046	(avr_operand_rtx_cost): New function.
19047	(avr_rtx_costs): Completely rewrite.
19048
190492005-02-08  Hans-Peter Nilsson  <hp@axis.com>
19050
19051	PR target/19806
19052	* config/cris/cris.c (in_code): New variable.
19053	(cris_output_addr_const): Now a static function, a wrapper for
19054	output_addr_const.
19055	(cris_asm_output_symbol_ref): New function, broken out SYMBOL_REF
19056	case from old cris_output_addr_const.
19057	(cris_asm_output_label_ref): Similar for LABEL_REF.
19058	(cris_output_addr_const_extra): Similar for UNSPEC.
19059	* config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA)
19060	(ASM_OUTPUT_SYMBOL_REF, ASM_OUTPUT_LABEL_REF): Define.
19061	* config/cris/cris-protos.h (cris_output_addr_const): Remove
19062	declaration.
19063	(cris_asm_output_symbol_ref, cris_output_addr_const_extra)
19064	(cris_asm_output_label_ref): Declare.
19065
190662005-02-08  Paolo Bonzini  <bonzini@gnu.org>
19067
19068	PR preprocessor/19801
19069	* doc/cppinternals.texi (Conventions, Lexer, Files): Adjust
19070	filenames that changed when libcpp was moved to the toplevel.
19071
190722005-02-07  Roger Sayle  <roger@eyesopen.com>
19073
19074	* simplify-rtx.c (simplify_relational_operation_1): Avoid creating
19075	zero extensions of BImode operands.  Call lowpart_subreg instead
19076	of gen_lowpart_common and gen_lowpart_SUBREG.
19077
190782005-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
19079
19080	PR ada/19489
19081	* libada-mk.in: Use cc_for_cross_gnattools, not cc_set_by_configure.
19082	* configure.ac: Set cc_for_cross_gnattools.
19083	* configure: Regenerate.
19084
190852005-02-08  Alan Modra  <amodra@bigpond.net.au>
19086
19087	PR target/19803
19088	* predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%.
19089
190902005-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
19091
19092	PR debug/19327
19093	* dbxout.c (dbxout_symbol) <FUNCTION_DECL>: Skip inline instance
19094	of nested functions.
19095
190962005-02-07  Jonathan Wakely  <redi@gcc.gnu.org>
19097
19098	* doc/extend.texi: Document deprecated extensions allowing
19099	static floating-point members to have initializers and allowing
19100	floating-point literals in integral constant expressions.
19101
191022005-02-07  Kazu Hirata  <kazu@cs.umass.edu>
19103
19104	* cfgcleanup.c, df.h, diagnostic.c, rtl.c, tree-vectorizer.h,
19105	config/darwin7.h, config/mips/mips.c,
19106	config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm:
19107	Update copyright.
19108
19109	* cse.c: Update comments.
19110
191112005-02-07  Richard Guenther  <rguenth@gcc.gnu.org>
19112
19113	PR middle-end/19775
19114	* builtins.c (fold_builtin_sqrt): Transform
19115	sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not
19116	pow(x,y*0.5).
19117
191182005-02-07  Leehod Baruch  <leehod@il.ibm.com>
19119	    Dorit Naishlos  <dorit@il.ibm.com>
19120
19121	* doc/invoke.texi (ftree-vectorizer-verbose): New.
19122	* opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
19123	* common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
19124	was added.
19125	* tree.h (vect_set_verbosity_level): New extern function declaration
19126	added.
19127	* tree-vectorizer.h (verbosity_levels): New enum type.
19128	* tree-vectorizer.c (vect_debug_stats): Function removed.
19129	(vect_debug_details): Likewise.
19130	(vect_verbosity_level): Global variable was defined and initialized.
19131	(vect_dump): Global variable definition.
19132	(vect_print_dump_info): New function.
19133	(vect_set_dump_settings): New function.
19134	(vect_set_verbosity_level): New function.
19135	(vectorize_loops): Add call to vect_set_dump_settings.
19136
19137	(slpeel_make_loop_iterate_ntimes): Dump condition was changed.
19138	(slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
19139	(slpeel_tree_peel_loop_to_edge): Likewise.
19140
19141	(vect_analyze_offset_expr): Call to vect_print_dump_info with
19142	appropriate verbosity level instead of call to vect_debug_details
19143	or vect_debug_stats.
19144	(vect_get_base_and_offset):
19145	(vect_create_addr_base_for_vector_ref):
19146	(get_vectype_for_scalar_type):
19147	(vect_create_data_ref_ptr):
19148	(vect_init_vector):
19149	(vect_get_vec_def_for_operand):
19150	(vect_finish_stmt_generation):
19151	(vectorizable_assignment):
19152	(vectorizable_operation):
19153	(vectorizable_store):
19154	(vectorizable_load):
19155	(vect_transform_stmt):
19156	(vect_update_ivs_after_vectorizer):
19157	(vect_do_peeling_for_loop_bound):
19158	(vect_update_inits_of_drs):
19159	(vect_do_peeling_for_alignment):
19160	(vect_transform_loop):
19161	(vect_is_simple_use):
19162	(vect_analyze_operations):
19163	(vect_is_simple_iv_evolution):
19164	(vect_analyze_scalar_cycles):
19165	(vect_analyze_data_ref_dependence):
19166	(vect_analyze_data_ref_dependences):
19167	(vect_compute_data_ref_alignment):
19168	(vect_enhance_data_refs_alignment):
19169	(vect_analyze_data_refs_alignment):
19170	(vect_analyze_data_ref_access):
19171	(vect_analyze_data_ref_accesses):
19172	(vect_analyze_pointer_ref_access):
19173	(vect_get_memtag_and_dr):
19174	(vect_analyze_data_refs):
19175	(vect_mark_relevant):
19176	(vect_stmt_relevant_p):
19177	(vect_mark_stmts_to_be_vectorized):
19178	(vect_can_advance_ivs_p):
19179	(vect_get_loop_niters):
19180	(vect_analyze_loop_form):
19181	(vect_analyze_loop):
19182	(vectorize_loops): Likewise.
19183
19184	(vect_do_peeling_for_loop_bound): Dump format slightly changed.
19185	(vect_update_inits_of_drs):
19186	(vect_do_peeling_for_alignment):
19187	(vect_transform_loop):
19188	(vect_analyze_operations):
19189	(vect_analyze_scalar_cycles):
19190	(vect_analyze_data_ref_dependences):
19191	(vect_analyze_data_refs_alignment):
19192	(vect_analyze_data_ref_accesses):
19193	(vect_analyze_data_refs):
19194	(vect_mark_stmts_to_be_vectorized):
19195	(vect_get_loop_niters):
19196	(vect_analyze_loop_form):
19197	(vect_analyze_loop): Likewise.
19198	(vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.
19199
192002005-02-07  Richard Sandiford  <rsandifo@redhat.com>
19201
19202	PR bootstrap/19796
19203	Revert:
19204	2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
19205	* config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
19206	either -ffast-math or -funsafe-math-optimizations is in use.
19207
19208	2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
19209	* config/mips/irix-csr.c: New file.
19210	* config/mips/t-iris6 (irix-csr.o): New rule to build it.
19211	(EXTRA_MULTILIB_PARTS): Add irix-csr.o.
19212	* config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
19213	executables.
19214
192152005-02-07  Alexandre Oliva  <aoliva@redhat.com>
19216
19217	* config/mn10300/linux.h (LIB_SPEC, STARTFILE_SPEC): Remove
19218	redundant, incorrect definitions.
19219
19220	* config/frv/frv.md ("tls_indirect_call"): Turn into libcall-like
19221	expand.
19222	("*tls_indirect_call"): New, reference hard regs directly.
19223	* config/frv/frv.c (gen_inlined_tls_plt): Adjust.
19224
192252005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
19226
19227	* config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
19228	Let !-mhard-float !-msoft-float imply -mfpu=softfpa.
19229
192302005-02-06  Roger Sayle  <roger@eyesopen.com>
19231
19232	PR rtl-optimization/19800
19233	* simplify_rtx.c (simplify_relational_operation_1): Explicitly
19234	call gen_lowpart_common and gen_lowpart_SUBREG instead of calling
19235	gen_lowpart.
19236
192372005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
19238
19239	* config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200.
19240
192412005-02-07  Joseph S. Myers  <joseph@codesourcery.com>
19242
19243	PR other/17135
19244	* doc/invoke.texi: Correct documentation of -freorder-functions.
19245
192462005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
19247
19248	PR other/14402
19249	* doc/invoke.texi: Don't mention gccbug.
19250
192512005-02-06  Roger Sayle  <roger@eyesopen.com>
19252	    Andrew Pinski  <pinskia@physics.uc.edu>
19253	    Paolo Bonzini  <paolo.bonzini@lu.unisi.ch>
19254
19255	* simplify-rtx.c (simplify_relational_operation_1): Simplify
19256	(ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))
19257	into just (zero_extract:SI FOO (const_int 1) BAR).
19258
192592005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
19260
19261	* doc/cpp.texi: Include gcc-common.texi.  Don't define gcctabopt
19262	macro locally.  Don't give last revision date.  Use GCC version
19263	number from gcc-common.texi.
19264	* doc/cppinternals.texi: Include gcc-common.texi.  Don't give last
19265	revision date.  Use GCC version number from gcc-common.texi.
19266	Describe being a library as current state rather than as 3.x
19267	history.
19268	* doc/gcc.texi: Remove last update date.
19269	* doc/gccint.texi: Likewise.  Update copyright dates.
19270	* doc/install.texi: Update copyright dates.
19271
192722005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
19273
19274	PR other/7549
19275	* doc/invoke.texi: Mention for each option included in -Wall that
19276	it is included in -Wall.
19277	* doc/gcc.texi: Update copyright and last modification date.
19278
192792005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
19280
19281	* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Do not add
19282	unnecessary cast to original induction variable increments.
19283
192842005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
19285
19286	PR tree-optimization/18219
19287	* tree-ssa-loop-ivopts.c (get_computation_at): Produce computations
19288	in distributed form.
19289
192902005-02-06  Richard Sandiford  <rsandifo@redhat.com>
19291
19292	* expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
19293	Set bitpos and offset later in the function.  Do nothing if the
19294	target is a register and if the bitfield lies completely outside
19295	that register.
19296	(extract_bit_field): Make the same SUBREG, bitpos and offset changes
19297	here.  Return an uninitialised register if the source value is stored
19298	in a register and the bitfield lies completely outside that register.
19299
193002005-02-06  Steven Bosscher  <stevenb@suse.de>
19301
19302	* df.c (df_insn_refs_record): Use XEXP to get the operand of a USE,
19303	not SET_DEST.
19304
193052005-02-06  Marcin Dalecki  <martin@dalecki.de>
19306
19307	* diagnostic.c (default_diagnostic_finalizer): Fix use of attribute.
19308
193092005-02-06  Geoffrey Keating  <geoffk@apple.com>
19310
19311	* config.gcc (*-*-darwin*): Separate darwin7 and darwin8 configs.
19312	* config/darwin8.h: New.
19313	* config/darwin7.h: Update comment.
19314
193152005-02-03  Leehod Baruch  <leehod@il.ibm.com>
19316	    Dorit Naishlos  <dorit@il.ibm.com>
19317
19318	* tree-vectorizer.h (LOC): New type.
19319	(UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
19320	(loop_line_number): New field in struct _loop_vec_info.
19321	(LOOP_VINFO_LOC, LOOP_LOC): New macros.
19322
19323	* tree-vectorizer.c (input.h): Included.
19324	(find_loop_location): New function.
19325	(vect_debug_stats): Argument changed from loop to LOC. Computation of
19326	loop line number removed.
19327	(vect_debug_details): Likewise.
19328	(new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.
19329
19330	(slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
19331	call to vect_debug_details/stats changed from loop to loop_loc.
19332	(slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
19333	(slpeel_tree_peel_loop_to_edge): Likewise.
19334
19335	(vect_analyze_offset_expr): Argument in call to vect_debug_details/stats
19336	changed from NULL to UNKNOWN_LOC.
19337	(vect_get_base_and_offset):
19338	(vect_create_addr_base_for_vector_ref):
19339	(get_vectype_for_scalar_type):
19340	(vect_create_data_ref_ptr):
19341	(vect_init_vector):
19342	(vect_get_vec_def_for_operand):
19343	(vect_finish_stmt_generation):
19344	(vectorizable_assignment):
19345	(vectorizable_operation):
19346	(vectorizable_store):
19347	(vectorizable_load):
19348	(vect_transform_stmt):
19349	(vect_update_ivs_after_vectorizer):
19350	(vect_do_peeling_for_loop_bound):
19351	(vect_do_peeling_for_alignment):
19352	(vect_transform_loop):
19353	(vect_is_simple_use):
19354	(vect_analyze_operations):
19355	(vect_is_simple_iv_evolution):
19356	(vect_analyze_scalar_cycles):
19357	(vect_analyze_data_ref_dependences):
19358	(vect_compute_data_ref_alignment):
19359	(vect_enhance_data_refs_alignment):
19360	(vect_analyze_data_ref_access):
19361	(vect_analyze_data_ref_accesses):
19362	(vect_analyze_pointer_ref_access):
19363	(vect_get_memtag_and_dr):
19364	(vect_analyze_data_refs):
19365	(vect_mark_relevant):
19366	(vect_stmt_relevant_p):
19367	(vect_mark_stmts_to_be_vectorized):
19368	(vect_can_advance_ivs_p):
19369	(vect_get_loop_niters):
19370	(vect_analyze_loop):
19371	(vectorize_loops): Likewise.
19372
19373	(vectorizable_load): Argument in call to vect_debug_details/stats
19374	changed from loop to LOOP_LOC (loop_vinfo).
19375	(vect_transform_loop):
19376	(vect_analyze_operations):
19377	(vect_analyze_scalar_cycles):
19378	(vect_analyze_data_ref_dependence):
19379	(vect_enhance_data_refs_alignment):
19380	(vect_analyze_data_ref_accesses):
19381	(vect_analyze_pointer_ref_access):
19382	(vect_analyze_data_refs):
19383	(vect_analyze_loop): Likewise.
19384
19385	(vect_analyze_loop_form): Argument in call to vect_debug_details/stats
19386	changed from loop to loop_loc.
19387
19388	(vect_enhance_data_refs_alignment): Removed unused variable loop.
19389
193902005-02-03  Leehod Baruch  <leehod@il.ibm.com>
19391	    Dorit Naishlos  <dorit@il.ibm.com>
19392
19393	* tree-vectorizer.c (vect_analyze_data_ref_dependence): Function
19394	declaration added.
19395	(vect_analyze_data_ref_dependences): Likewise.
19396
19397	(vect_is_simple_use): Argument changed from loop structure to
19398	loop_vect_info structure.
19399	(vect_can_advance_ivs_p): Likewise.
19400	(vect_create_index_for_vector_ref): Likewise.
19401	(vect_update_ivs_after_vectorizer): Likewise.
19402	(new_stmt_vec_info): Likewise.
19403
19404	(new_loop_vec_info): Second argument in call to new_stmt_vec_info was
19405	changed from loop to loop_vinfo.
19406	(vect_create_data_ref_ptr): First argument in call to
19407	vect_create_index_for_vector_ref was changed from loop to loop_vinfo.
19408	(vectorizable_assignment): Second argument in call to vect_is_simple_use
19409	was changed from loop to loop_vinfo.
19410	(vectorizable_operation): Likewise.
19411	(vectorizable_store): Likewise.
19412	(vect_mark_stmts_to_be_vectorized): Likewise.
19413	(vect_do_peeling_for_loop_bound): First argument in call to
19414	vect_update_ivs_after_vectorizer was changed from loop to loop_vinfo.
19415	(vect_analyze_operations): Argument in call to vect_can_advance_ivs_p
19416	was changed from loop to loop_vinfo.
19417	(vect_analyze_data_ref_dependences): Third argument in call to
19418	vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.
19419
19420	(vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
19421	(vect_create_data_ref_ptr): Likewise.
19422	(vect_init_vector): Likewise.
19423	(vect_get_vec_def_for_operand): Likewise.
19424	(vectorizable_assignment): Likewise.
19425	(vectorizable_operation): Likewise.
19426	(vectorizable_store): Likewise.
19427	(vectorizable_load): Likewise.
19428	(vect_update_ivs_after_vectorizer): Likewise.
19429	(vect_is_simple_use): Likewise.
19430	(vect_analyze_data_ref_dependence): Likewise.
19431	(vect_analyze_pointer_ref_access): Likewise.
19432	(vect_can_advance_ivs_p): Likewise.
19433
19434	* tree-vectorizer.h: (_loop_vec_info): Definition and macros moved
19435	before _stmt_vec_info.
19436	(_stmt_vec_info): Loop field replaced by loop_vec_info.
19437	(STMT_VINFO_LOOP): Replaced with STMT_VINFO_LOOP_VINFO.
19438	(new_stmt_vec_info): Argument changed from loop structure to
19439	loop_vect_info structure
19440
19441	(vect_analyze_data_ref_dependences): Unnecessary line was removed.
19442	(vect_analyze_offset_expr): Avoid 80 columns overflow.
19443	(vect_create_addr_base_for_vector_ref): Likewise.
19444	(vect_analyze_pointer_ref_access): Likewise.
19445
194462005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
19447
19448	PR tree-opt/19768
19449	* tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
19450	phi flag if the phi is abnormal.
19451
194522005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
19453
19454	PR tree-opt/19736
19455	* tree-ssa.c (replace_immediate_uses): Update the immediate_uses
19456	information for the new statement.
19457
194582005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
19459
19460	PR driver/19117
19461	* gcc.c (main): Include the target in -v output.
19462
194632005-02-03  Alexandre Oliva  <aoliva@redhat.com>
19464
19465	* combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
19466	Do not drop the extend if we'd have to add a paradoxical subreg
19467	later.  Include optabs.h and insn-codes.h.
19468	* Makefile.in (combine.o): Depend on $(OPTABS_H).
19469
194702005-02-02  Roger Sayle  <roger@eyesopen.com>
19471
19472	PR middle-end/19405
19473	* real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
19474	* fold-const.c (const_binop): Avoid constant folding floating
19475	point operations in modes that use composite representations.
19476	* simplify-rtx.c (simplify_binary_operation): Likewise.
19477
194782005-02-02  Geoffrey Keating  <geoffk@apple.com>
19479
19480	* config/rs6000/altivec.md (altivec_dst): Make the first operand
19481	a REG, not a MEM.
19482	(altivec_dstt): Likewise.
19483	(altivec_dstst): Likewise.
19484	(altivec_dststt): Likewise.
19485	* config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
19486	of first operand.
19487
194882005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
19489
19490	* tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
19491	EXPR_LOCUS from orig_cond to the new cond_stmt.
19492	(vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
19493	the new vec_stmt.
19494
194952005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
19496
19497	* tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
19498	standard_iv_increment_position. Remove call to bsi_next
19499	(no need to bump the iterator anymore).
19500	(vect_create_index_for_vector_ref): Call
19501	standard_iv_increment_position. Remove second function argument.
19502	(vect_finish_stmt_generation): Remove call to bsi_next
19503	(no need to bump the iterator anymore).
19504	(vect_create_data_ref_ptr): Remove second argument (bsi) in call
19505	to vect_create_index_for_vector_ref.
19506
195072005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
19508
19509	* tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
19510	phis are used out of the loop.
19511
195122005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
19513
19514	PR c/17807
19515	* c-decl.c (undef_nested_function): New variable.
19516	(pop_scope): Diagnose undefined nested functions.
19517	(finish_function): Don't attempt cgraph processing or genericizing
19518	if current top-level function contained an undefined nested
19519	function.  Reset undef_nested_function at the end of a top-level
19520	function.
19521
195222005-02-02  Zdenek Dvorak  <dvorakz@suse.cz>
19523
19524	* tree.c (build_int_cst_type): Take sign of the value into account
19525	when deciding whether sign extend the value.
19526
195272005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
19528
19529	PR c/18502
19530	* gcc.c (cpp_unique_options): Remove %{trigraphs}.
19531	(cpp_options, cc1_options): Change %{std*&ansi} to
19532	%{std*&ansi&trigraphs}.
19533
195342005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
19535
19536	* cse.c: Update comments.
19537
195382005-02-02  Aldy Hernandez  <aldyh@redhat.com>
19539
19540	* config/rs6000/rs6000.c (rs6000_spe_function_arg): Multi-reg
19541	arguments go on the stack.  Do not put complex doubles in odd/even
19542	pairs.
19543
195442005-02-02  Steven Bosscher  <stevenb@suse.de>
19545
19546	* doc/invoke.texi: Update the options enabled at -O1, -O2,
19547	and -O3.  Update the documentation for -fgcse-sm, -fgcse-las,
19548	-ftree-pre, and -fthread-jumps.
19549
195502005-02-02  Richard Sandiford  <rsandifo@redhat.com>
19551
19552	PR tree-optimization/19578
19553	* tree-flow.h (modified_noreturn_calls): Declare.
19554	(noreturn_call_p): Declare.
19555	* tree-flow-inline.h (noreturn_call_p): New function.
19556	(modify_stmt): Add modified noreturn calls to modified_noreturn_calls.
19557	* tree-cfg.c (modified_noreturn_calls): New variable.
19558	(cleanup_control_flow): Use noreturn_call_p.  Split basic blocks
19559	that contain a mid-block noreturn call.
19560	* tree-ssa.c (delete_tree_ssa): Clear modified_noreturn_calls.
19561
195622005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
19563
19564	* df.c (df_def_record_1, df_uses_record): Don't use
19565	DF_FOR_REGALLOC.
19566	* df.h (DF_FOR_REGALLOC): Remove.
19567
195682005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
19569
19570	PR c/19435
19571	* c-typeck.c (really_start_incremental_init): Reset
19572	constructor_max_index for arrays of incomplete type.
19573
195742005-02-02  Jeff Law  <law@redhat.com>
19575
19576	* gcse.c (struct reg_set): Store the block index where the register
19577	was set rather than the setting insn.
19578	(record_one_set, compute_transp): Corresponding changes.
19579	(pre_insert_copy_insn): Do not call replace_one_set.
19580	(replace_one_set): Remove.
19581
195822005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
19583
19584	PR other/15514
19585	* doc/gcov.texi: Fix typo.
19586
195872005-02-01  Richard Henderson  <rth@redhat.com
19588
19589	PR target/19680
19590	* config/i386/i386.h (MODES_TIEABLE_P): Use ix86_modes_tieable_p.
19591	* config/i386/i386.c (ix86_hard_regno_mode_ok): Change return
19592	type to bool.
19593	(ix86_tieable_integer_mode_p, ix86_modes_tieable_p): New.
19594	* config/i386/i386-protos.h: Update.
19595
195962005-02-01  Steven Bosscher  <stevenb@suse.de>
19597
19598	PR tree-optimization/19217
19599	* tree-cfg.c (verify_expr): Use the data field to see if TP was
19600	seen inside a PHI node.  Do not do the ADDR_EXPR check if it was.
19601	(verify_stmts): Pass (void*)1 as data to verify_expr to signal
19602	that it is walking a PHI node.
19603
196042005-02-01  Joseph S. Myers  <joseph@codesourcery.com>
19605
19606	* doc/extend.texi (Nested Functions): Update.
19607
196082005-02-01  Richard Henderson  <rth@redhat.com>
19609
19610	PR 19696
19611	* optabs.c (expand_copysign_absneg): Export.
19612	* optabs.h (expand_copysign_absneg): Declare.
19613	* config/rs6000/rs6000.md (copysigntf3): New.
19614
196152005-02-01  Diego Novillo  <dnovillo@redhat.com>
19616
19617	PR tree-optimization/19633
19618	* tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
19619	* tree-ssa-alias.c (init_alias_info): Initialize.
19620	(merge_pointed_to_info): Set.
19621	(add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
19622	(dump_points_to_info_for): Show value of pt_null.
19623	(struct count_ptr_d): Declare.
19624	(find_ptr_dereference): Remove.
19625	(ptr_is_dereferenced_by): Remove.
19626	(count_ptr_derefs): New local function.
19627	(count_uses_and_derefs): New local function.
19628	(compute_points_to_and_addr_escape): Call it.  If the number
19629	of dereferences is greater than zero, mark the pointer as
19630	dereferenced.  If there are fewer dereferences than uses of
19631	the pointer, the pointer's value escapes.
19632
196332005-02-01  Diego Novillo  <dnovillo@redhat.com>
19634
19635	PR tree-optimization/19670
19636	* tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
19637	here...
19638	(verify_use): ... set it here, instead.
19639
196402005-02-01  Janis Johnson  <janis187@us.ibm.com>
19641
19642	* doc/sourcebuild.texi (Test directives): Fix formatting.
19643
19644	* doc/sourcebuild.texi (Test directives): Describe selector
19645	expressions.
19646
196472005-02-01  Segher Boessenkool  <segher@kernel.crashing.org>
19648
19649	* config.gcc (powerpc64-*-linux*): Default to -m64 also for
19650	specific 64-bit CPUs.
19651
196522005-02-01  Richard Earnshaw  <rearnsha@arm.com>
19653
19654	PR target/16201
19655	* arm.c (arm_eliminable_register): New function.
19656	(adjacent_mem_locations): Don't allow eliminable registers.  Use
19657	HOST_WIDE_INT for address offsets.
19658	* arm-protos.h (arm_eliminable_register): Add prototype.
19659
196602005-02-01  Steven Bosscher  <stevenb@suse.de>
19661
19662	PR optimization/15242
19663	* params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
19664	* basic-block.h (duplicate_computed_gotos): Add prototype.
19665	* bb-reorder.c (duplicate_computed_gotos): New function to
19666	duplicate sufficiently small blocks ending in a computed jump.
19667	* passes.c (rest_of_compilation): Call duplicate_computed_gotos
19668	if not optimizing for size.
19669	* cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
19670	never do tail merging for blocks ending in a computed jump.
19671	* doc/invoke.texi: Document the max-goto-duplication-insns param.
19672
196732005-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
19674
19675	Patch from Richard Sandiford <rsandifo@redhat.com>
19676	* reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
19677	from inheriting a subreg equivalence with a non-spill register.
19678
19679	* tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.
19680
196812005-02-01  Alexandre Oliva  <aoliva@redhat.com>
19682
19683	* config/frv/frv.c (movcc_fp_destination_operand): New.
19684	(gpr_or_memory_operand): Fix typo in comment.
19685	(gpr_or_memory_operand_with_scratch): New.
19686	* config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
19687	* config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
19688	movcc_fp_destination_operand.
19689	(reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
19690	Legitimize memory addresses using a scratch register.
19691
196922005-01-31  Jeff Law  <law@redhat.com>
19693
19694	* tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
19695	bitmap a sparse bitmap instead of a simple bitmap.
19696	(mark_def_sites_initialize_block):  Corresponding changes.
19697	(ssa_mark_def_sites_initialize_block): Likewise.
19698	(ssa_mark_phi_uses): Likewise.
19699	(mark_def_site, ssa_mark_def_sites): Likewise.
19700	(mark_def_site_blocks): Likewise.
19701	(rewrite_ssa_into_ssa): Likewise.
19702
19703	* tree-ssa-dom.c (record_cond): Pass correct variable type
19704	for last argument to htab_find_slot_with_hash.
19705
19706	* fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
19707	effects when optimizing 0 % X.  Do not try to optimize X % 0.
19708
197092005-01-31  James E. Wilson  <wilson@specifixinc.com>
19710
19711	* config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
19712	1_mmalua.
19713
197142005-02-01  Eric Christopher  <echristo@redhat.com>
19715
19716	* config/mips/mips.c (override_options): Warn if -mint64
19717	is used.
19718	* doc/invoke.texi (MIPS Options): Document that -mint64 is
19719	deprecated.
19720
197212005-02-01  Kazu Hirata  <kazu@cs.umass.edu>
19722
19723	* cse.c (cse_reg_info): Remove hash_next, next, regno.  Add
19724	timestamp.
19725	(cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
19726	REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
19727	cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
19728	(cached_regno): Initialize to INVALID_REGNUM.
19729	(cse_reg_info_table_size,
19730	cse_reg_info_table_first_uninitialized,
19731	cse_reg_info_timestamp): New.
19732	(REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
19733	get_cse_reg_info.
19734	(init_cse_reg_info, get_cse_reg_info_1): New.
19735	(get_cse_reg_info): Cache the last look-up.
19736	(new_basic_block): Update the code to clear mappings from
19737	registers to cse_reg_info entries.
19738	(cse_main): Call init_cse_reg_info.
19739
19740	* cse.c (get_cse_reg_info): Update a comment.
19741
197422005-01-31  Steven Bosscher  <stevenb@suse.de>
19743
19744	PR c/19333
19745	* c-decl.c (start_decl): Do not warn about arrays of elements with
19746	an incomplete type here.
19747	(grokdeclarator): Do it here by making a pedwarn an error.
19748	* c-typeck.c (push_init_level): If there were previous errors with
19749	the constructor type, do not warn about braces for initializers.
19750	(process_init_element): Likewise for excess initializer elements.
19751
197522005-01-31  Kazu Hirata  <kazu@cs.umass.edu>
19753
19754	* cse.c (delete_trivially_dead_insn): Don't iterate.
19755
197562005-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
19757
19758	* config/rs6000/rs6000.md (copysignsf3): New expand.
19759	(copysigndf3): Likewise.
19760
197612005-01-31  Steven Bosscher  <stevenb@suse.de>
19762
19763	* recog.c (constrain_operands): Only look for earlyclobber operand
19764	conflicts if an '&' constraint was seen.
19765
197662005-01-31  Marc Espie <espie@openbsd.org>
19767
19768	* config.gcc: Don't include embedded systems fragment, switches default
19769	debugging format to ELF.
19770	* config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
19771	longer pick it up there.
19772
197732005-01-31  Dale Johannesen  <dalej@apple.com>
19774
19775	* doc/extend.texi (nested functions): Fix linkage description.
19776	Clarify that static is not allowed.
19777
197782005-01-31  Dale Johannesen  <dalej@apple.com>
19779
19780	* config/rs6000/darwin.md (movsf_low_di):  Make work.
19781	(movdf_low_di):  Make work.
19782
197832005-01-31  Dale Johannesen  <dalej@apple.com>
19784
19785	* config/rs6000/darwin-tramp.asm (__trampoline_setup):
19786	Make work for 64 bit.
19787
197882005-01-31  Roger Sayle  <roger@eyesopen.com>
19789	    Dale Johannesen  <dalej@apple.com>
19790
19791	PR middle-end/19650
19792	* fold-const.c (fold_binary_op_with_conditional_arg):
19793	Make types match original operands, before STRIP_NOPS.
19794
197952005-01-31  Alan Modra  <amodra@bigpond.net.au>
19796
19797	* config/rs6000/linux-unwind.h (struct gcc_vregs): New.
19798	(struct gcc_regs): Rename from gcc_pt_regs.  Add more regs.
19799	(struct gcc_sigcontext): Delete.  Merge contents to..
19800	(struct gcc_ucontext): ..here.
19801	(get_sigcontext): Delete.
19802	(get_regs): New function, like get_sigcontext but return regs ptr.
19803	64-bit version finds regs from r1 to support vdso.
19804	(ppc_linux_aux_vector): New function.
19805	(ppc_fallback_frame_state): Modify for get_regs.  Restore fprs
19806	and vector regs.
19807
198082005-01-31  Ira Rosen  <irar@il.ibm.com>
19809
19810	* tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
19811	sizetype.
19812	(vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
19813	redundant fold. Fix misalignment for MINUS_EXPR.
19814	(vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
19815	(vect_analyze_pointer_ref_access): Likewise.
19816	(vect_get_memtag_and_dr): Likewise.
19817
198182005-01-31  Richard Henderson  <rth@redhat.com>
19819
19820	* config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
19821	(absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
19822	absnegdf2_i387, absnegxf2_i387): Likewise.
19823
198242005-01-31  Richard Henderson  <rth@redhat.com>
19825
19826	PR 19696
19827	* optabs.c (expand_copysign_absneg): New.
19828	(expand_copysign_bit): Split out from ...
19829	(expand_copysign): ... here.  Use expand_copysign_absneg.
19830
198312005-01-30  Roger Sayle  <roger@eyesopen.com>
19832
19833	PR middle-end/19697
19834	* config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
19835	constant as the second operand and a register as the third.
19836
198372005-01-31  Danny Smith  <dannysmith@users.sourceforge.net>
19838
19839	PR target/19704
19840	* config/i386/i386.c (ix86_function_ok_for_sibcall):  Also check
19841	that dllimport'd functions do not use all call-clobbered registers
19842	to pass parameters.
19843
198442005-01-30  Richard Henderson  <rth@redhat.com>
19845
19846	PR 19696
19847	* optabs.c (expand_absneg_bit): Split out from expand_unop and
19848	expand_abs_nojump and generalize.  Use operand_subword and
19849	emit_no_conflict_block.  Support large modes.
19850	(expand_abs_nojump): Use it.  Use HONOR_SIGNED_ZEROS to fall
19851	back to maximum.
19852	(expand_unop): Likewise.  Use HONOR_SIGNED_ZEROS to fall back
19853	negation to subtraction.
19854	(expand_copysign): Check that the format has signed zeros.
19855	Use operand_subword and emit_no_conflict_block.  Support large modes.
19856
198572005-01-30  Daniel Berlin  <dberlin@dberlin.org>
19858
19859	Fix PR tree-optimization/19624
19860
19861	* Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
19862	* tree-ssa-pre.c: Add cfgloop.h.
19863	Update comment.
19864	(pre_stats): New member, constified.
19865	(inserted_exprs): New static variable.
19866	(NECESSARY): New macro.
19867	(create_expression_by_pieces): Fold the expression, and
19868	mark it as defaulting to not necessary. Also put in
19869	inserted_exprs.
19870	(fully_constant_expression): New function.
19871	(insert_into_preds_of_block): Modify to not insert phis when we
19872	are playing with induction variables.
19873	Push phis onto the inserted_exprs vector, and mark them as not
19874	necessary by default.
19875	(insert_aux): Call fully_constant_expression on eprime.
19876	If all edges produce the same value, mark it constant.
19877	(mark_operand_necessary): New function.
19878	(remove_dead_inserted_code): New function.
19879	(init_pre): Init loop optimizer to get loop info.
19880	(fini_pre): Free loop_optimizer, and inserted_exprs vec.
19881	(execute_pre): Commit edge inserts, then remove dead code.
19882
198832005-01-30  Richard Henderson  <rth@redhat.com>
19884
19885	* rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
19886	* varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.
19887
198882005-01-30  Richard Henderson  <rth@redhat.com>
19889
19890	PR target/19700
19891	* config/i386/i386.c (ix86_expand_copysign): New.
19892	(ix86_split_copysign_const): New.
19893	(ix86_split_copysign_var): Rename from ix86_split_copysign,
19894	rearrange op1/nmask operands.
19895	* config/i386/i386-protos.h: Update.
19896	* config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
19897	(copysigndf3): Likewise.
19898	(copysignsf3_const, copysigndf3_const): New.
19899	(copysignsf3_var): Rename from copysignsf3, split out splitter
19900	and fix split predicate for X constraint.
19901	(copysigndf3_var): Similarly.
19902
199032005-01-30  Kazu Hirata  <kazu@cs.umass.edu>
19904
19905	* optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
19906	doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
19907	doc/tm.texi, doc/tree-ssa.texi: Update copyright.
19908
199092005-01-29  Richard Henderson  <rth@redhat.com>
19910
19911	PR target/19690
19912	* config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
19913	of # and * in constraints.
19914
199152005-01-29  Richard Henderson  <rth@redhat.com>
19916
19917	PR middle-end/19689
19918	* expr.c (store_field): Don't strip sub-mode cast when the input
19919	data is even smaller.
19920
199212005-01-29  Richard Henderson  <rth@redhat.com>
19922
19923	PR middle-end/19687
19924	* expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
19925	union being empty.
19926
199272005-01-29  Richard Henderson  <rth@redhat.com>
19928
19929	* combine.c (make_field_assignment): Fix argument order
19930	to gen_int_mode.
19931
199322005-01-29  Richard Guenther <richard.guenther@uni-tuebingen.de>
19933
19934	PR tree-optimization/15791
19935	* fold-const.c (extract_array_ref): New function.
19936	(fold): Fold comparisons between &a[i] and &a[j] or
19937	semantically equivalent trees.
19938
199392005-01-29  Jeff Law  <law@redhat.com>
19940
19941	* gcse.c (insert_expr_in_table): Revamp handling of available
19942	and anticipatable occurrence lists to avoid unnecessary list
19943	walking.
19944	(insert_set_in_table): Similarly.
19945
199462005-01-29  Joseph S. Myers  <joseph@codesourcery.com>
19947
19948	* c-common.c (fix_string_type): Just use c_build_qualified_type to
19949	build string type.
19950	(c_build_qualified_type): Build qualified array types with
19951	TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
19952	* c-decl.c (c_make_fname_decl): Build unqualified array type
19953	before qualified type.
19954	(grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
19955	type is qualified, not just if type itself is.  Don't apply
19956	qualifiers to array type when declarator is processed.  Apply
19957	qualifiers to field type whether or not it is an array type.
19958	Don't handle array types specially for applying qualifiers to
19959	variables.
19960	* c-typeck.c (composite_type): Build unqualified element type and
19961	array type when forming composite of array types.
19962	(common_pointer_type, comptypes, comp_target_types,
19963	type_lists_compatible_p, build_indirect_ref, build_array_ref,
19964	convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
19965	types.
19966	(type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
19967	(args2) in variables a1 and a2.
19968
199692005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
19970
19971	* cse.c (n_elements_made, max_elements_made): Remove.
19972	(insert): Don't touch n_elements_made.
19973	(cse_main): Don't touch n_elements_made or max_elements_made.
19974
199752005-01-28  Stephane Carrez  <stcarrez@nerim.fr>
19976
19977	PR target/15384
19978	* config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
19979	configuration part of dp-bit.c to be lost.
19980
199812005-01-28  Roger Sayle  <roger@eyesopen.com>
19982
19983	* expmed.c (expand_mult_highpart_optab): When attempting to use
19984	a non-widening multiplication in a wider mode, the operands need
19985	to be converted (zero or sign extended) to that mode.
19986
199872005-01-28  Ian Lance Taylor  <ian@airs.com>
19988
19989	PR middle-end/16558
19990	PR middle-end/19583
19991	* gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
19992	through if both operands fall through.
19993
199942005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
19995
19996	* cse.c (fold_rtx) <PC>: Don't optimize.
19997
199982005-01-28  Jeff Law  <law@redhat.com>
19999
20000	* fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
20001	(case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.
20002
200032005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
20004
20005	* cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
20006	cse_reg_info_used_list_end): Remove.
20007	(cse_reg_info_list, cse_reg_info_list_free): New.
20008	(get_cse_reg_info): When allocating an instance of
20009	cse_reg_info, add it to the beginning of the cse_reg_info_list
20010	list.  Remove code to maintain cse_reg_info_used_list.
20011	(new_basic_block): Reset the free list to the beginning of
20012	cse_reg_info_list.
20013
200142005-01-28  Richard Sandiford  <rsandifo@redhat.com>
20015
20016	* config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
20017	(frv_init_builtins): Change its prototype to take 4 uhalf arguments.
20018	(frv_expand_mdpackh_builtin): New function.
20019	(frv_expand_builtin): Use it to expand __MDPACKH.
20020	* doc/extend.texi (__MDPACKH): Update documentation.
20021
200222005-01-28  Uros Bizjak  <uros@kss-loka.si>
20023
20024	* config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
20025	SSE_FLOAT_MODE_P for use_sse computation.
20026
200272005-01-28  Ralf Corsepius  <ralf.corsepius@rtems.org>
20028
20029	PR target/19663
20030	* config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.
20031
200322005-01-27  Richard Henderson  <rth@redhat.com>
20033
20034	* builtins.c (expand_builtin_copysign): New.
20035	(expand_builtin): Call it.
20036	* genopinit.c (optabs): Add copysign_optab.
20037	* optabs.c (init_optabs): Initialize it.
20038	(expand_copysign): New.
20039	* optabs.h (OTI_copysign, copysign_optab): New.
20040	(expand_copysign): Declare.
20041
20042	* config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
20043	(copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.
20044
20045	* config/i386/i386.c (ix86_build_signbit_mask): Split from ...
20046	(ix86_expand_fp_absneg_operator): ... here.
20047	(ix86_split_copysign): New.
20048	* config/i386/i386-protos.h: Update.
20049	* config/i386/i386.md (UNSPEC_COPYSIGN): New.
20050	(copysignsf3, copysigndf3): New.
20051
20052	* config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
20053	(copysignsf3, ncopysignsf3): New.
20054	(copysigndf3, ncopysigndf3): New.
20055	(copysignxf3, ncopysignxf3): New.
20056	* config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.
20057
200582005-01-27  Arend Bayer  <arend.bayer@web.de>
20059	    Kazu Hirata  <kazu@cs.umass.edu>
20060
20061	* cse.c: (find_best_addr): Don't call copy_rtx before calling
20062	fold_rtx.  Save cost recomputation if fold_rtx did nothing.
20063	(fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
20064	NULL_RTX.
20065
200662005-01-27  Jeff Law  <law@redhat.com>
20067
20068	* tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
20069	definitions of SSA_NAMEs which are not being rewritten.
20070	(rewrite_ssa_into_ssa): Only initialize the current definition
20071	of an SSA_NAME if that SSA_NAME has been marked for rewriting.
20072	If checking is enabled, assert that SSA_NAME_AUX is clear for all
20073	SSA_NAMEs before returning.
20074
200752005-01-27  Kazu Hirata  <kazu@cs.umass.edu>
20076
20077	* c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
20078	cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
20079	tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
20080	config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
20081	config/mips/iris6.h, config/sh/sh.c: Update copyright.
20082
200832005-01-27  Steven Bosscher  <stevenb@suse.de>
20084
20085	PR middle-end/17278
20086	* opts.c (decode_options): Move flag_thread_jumps from -O1 and
20087	higher to -O2 and higher.  Likewise for tree PRE.
20088	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
20089	and better.
20090
200912005-01-27  Ian Lance Taylor  <ian@airs.com>
20092
20093	PR middle-end/19583
20094	* gimple-low.c (try_catch_may_fallthru): New static function.
20095	(block_may_fallthru): Handle TRY_CATCH_EXPR.
20096	* tree-inline.c (expand_call_inline): Don't warn about reaching
20097	the end of a non-void function being inlined if the function uses
20098	a return slot.
20099
201002005-01-27  Jakub Jelinek  <jakub@redhat.com>
20101
20102	* config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.
20103
20104	PR c/18946
20105	* c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
20106	(pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
20107	(implicitly_declare): Handle error_mark_node.
20108
201092005-01-27  Richard Henderson  <rth@redhat.com>
20110
20111	PR tree-opt/14329
20112	* tree.h (struct tree_decl): Add debug_expr_is_from.
20113	(DECL_DEBUG_EXPR_IS_FROM): New.
20114	(DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
20115	* dwarf2out.c (dwarf2out_var_location): Update to match.
20116	* tree-outof-ssa.c (create_temp): Likewise.
20117	* var-tracking.c (track_expr_p): Likewise.
20118	* tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
20119	* c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
20120	* toplev.c (default_tree_printer): Likewise.
20121
201222005-01-27  Alexandre Oliva  <aoliva@redhat.com>
20123
20124	* config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
20125	GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.
20126
201272005-01-27  Steven Bosscher  <stevenb@suse.de>
20128
20129	* tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
20130	CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
20131	ASM_CLOBBERS): Add tree checks.
20132
20133	* c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
20134	(SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
20135	* c-common.def (SWITCH_STMT): Update to match.
20136	* c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
20137	macros instead of SWITCH_EXPR ones.
20138	* c-dump.c (c_dump_tree): Likewise.
20139	* c-gimplify.c (gimplify_switch_stmt): Likewise.
20140	* c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
20141
20142	* doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.
20143
201442005-01-27  Alan Modra  <amodra@bigpond.net.au>
20145
20146	* unwind-dw2.c (execute_stack_op): Add missing cases for
20147	DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
20148
201492005-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
20150
20151	* config.gcc (Obsolete configurations): Remove 'dummy', add
20152	sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
20153	sparc-*-openbsd*.
20154
201552005-01-26  Diego Novillo  <dnovillo@redhat.com>
20156
20157	PR tree-optimization/19633
20158	* tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
20159	CALL_EXPRs.
20160	(maybe_create_global_var): Do not create .GLOBAL_VAR if there
20161	are no call-clobbered variables.
20162	* tree-outof-ssa.c (check_replaceable): Return false for calls
20163	with side-effects.
20164
201652005-01-26  Ulrich Weigand  <uweigand@de.ibm.com>
20166
20167	* dbxout.c (dbxout_symbol_location): Resolve constant pool references
20168	even for variables with NULL DECL_INITIAL.
20169
201702005-01-26  Stuart Hastings  <stuart@apple.com>
20171
20172	* gimplify.c (shortcut_cond_expr): Re-compute side-effects.
20173
201742005-01-26  Richard Henderson  <rth@redhat.com>
20175
20176	PR middle-end/18008
20177	* c-decl.c (finish_struct): Set DECL_MODE after resetting a
20178	field's type.
20179	* expr.c (store_field): Strip conversions to odd-bit-sized types
20180	if the destination field width matches.
20181
201822005-01-26  Richard Henderson  <rth@redhat.com>
20183
20184	* c-decl.c, expmed.c, expr.c: Revert last change.
20185
201862005-01-26  Richard Henderson  <rth@redhat.com>
20187
20188	PR middle-end/18008
20189	* c-decl.c (finish_struct): Set DECL_MODE after resetting a
20190	field's type.
20191	* expmed.c (store_fixed_bit_field): Create a paradoxical subreg
20192	if we don't need the bits above those present in the current mode.
20193	* expr.c (store_field): Strip conversions to odd-bit-sized types
20194	if the destination field width matches.
20195
201962005-01-26  Richard Sandiford  <rsandifo@redhat.com>
20197
20198	* config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
20199	either -ffast-math or -funsafe-math-optimizations is in use.
20200
202012005-01-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
20202
20203	PR target/19293
20204	PR target/19329
20205	* config/avr/avr.c (notice_update_cc): Only set condition code for
20206	ashrqi3 if shift count > 0.
20207	(out_shift_with_cnt): Handle shift count <= 0 as a no-op.
20208	(ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
20209	ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
20210	count <= 0 as a no-op, and shift count >= width by copying zero
20211	or sign bit to all bits of the result.
20212	* config/avr/avr.md (all shifts): Add alternatives for zero shift
20213	count, with attribute "length" set to 0 and "cc" set to "none".
20214
202152005-01-26  Aldy Hernandez  <aldyh@redhat.com>
20216
20217	* doc/invoke.texi: Document -mTLS.
20218
20219	* testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
20220	* testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
20221	* testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
20222	* testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
20223	* testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
20224	* testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
20225	* testsuite/gcc.target/frv/all-tls-local-exec.c: New.
20226	* testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.
20227
20228	* configure.ac: Check for a TLS capable gas.
20229
20230	* configure: Regenerate.
20231
202322005-01-26  Richard Henderson  <rth@redhat.com>
20233
20234	PR middle-end/18008
20235	* combine.c (make_field_assignment): Simplify store to zero_extract
20236	from a source with an overlapping mask.
20237
202382005-01-26  Aldy Hernandez  <aldyh@redhat.com>
20239
20240	2004-11-11  Eric Christopher  <echristo@redhat.com>
20241
20242	* config/frv/frv.md: Add fr400_integer automaton. Don't
20243	allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
20244	to TYPE_MACC.
20245
202462005-01-26  Steven Bosscher  <stevenb@suse.de>
20247
20248	PR middle-end/16585
20249	* cfgbuild.c (make_edges): Do not clear or set
20250	current_function_has_computed_jump.
20251	* function.h (struct function): Remove the has_computed_jump field.
20252	(current_function_has_computed_jump): Do not define.
20253	* sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
20254	in a computed jump.  Ignore current_function_has_computed_jump.
20255
202562005-01-26  Richard Henderson  <rth@redhat.com>
20257
20258	PR middle-end/19515
20259	* expr.c (categorize_ctor_elements): New argument p_must_clear.
20260	(categorize_ctor_elements_1): Likewise.  Detect a union that isn't
20261	fully initialized.
20262	(mostly_zeros_p): Update for new categorize_ctor_elements argument.
20263	* gimplify.c (gimplify_init_constructor): Likewise.  Only shove
20264	objects into static storage if they have more than one non-zero value.
20265	* tree.h (categorize_ctor_elements): Update decl.
20266
202672005-01-26  Steven Bosscher  <stevenb@suse.de>
20268
20269	PR middle-end/19616
20270	* tree.h (CALL_EXPR_TAILCALL): Add comment.
20271	* calls.c (check_sibcall_argument_overlap_1): Revert the change
20272	to this function from 2004-07-10.
20273	* tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
20274	the current function for tail call optimizations if the address
20275	of one of it its arguments is taken.
20276
202772005-01-26  Kazu Hirata  <kazu@cs.umass.edu>
20278
20279	* cse.c (fold_rtx): Call equiv_constant only when necessary.
20280
202812005-01-26  Bernd Schmidt  <bernd.schmidt@analog.com>
20282
20283	* function.c (expand_function_end): If current_function_calls_alloca,
20284	emit stack restore in a place that is reached when the function falls
20285	through at the end.
20286
202872005-01-26  Alexandre Oliva  <aoliva@redhat.com>
20288
20289	* Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
20290	rule to avoid matching inappropriate suffix rule.
20291
202922005-01-26  Jan Hubicka  <jh@suse.cz>
20293
20294	PR tree-optimization/19241
20295	* tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
20296
202972005-01-26  Hans-Peter Nilsson  <hp@axis.com>
20298
20299	* config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
20300	-lsyssim.  Wrap -lc -lsyssim in --start-group --end-group instead
20301	of doubling.
20302	(STARTFILE_SPEC): Add crti.o, before crtbegin.o.
20303	<sim*>: Always use crt1.o, regardless of N in simN.
20304	<!sim>: Drop support for -pg and -p variants; always use crt0.o.
20305	(ENDFILE_SPEC): Add crtn.o, after crtend.o.
20306	(CRT_CALL_STATIC_FUNCTION): Remove.
20307	* config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
20308	use crt1.o, regardless of N in simN.
20309	<!sim>: Drop support for -pg and -p variants; always use crt0.o.
20310	(LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
20311	(CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
20312	case isystem setting.
20313	(MAX_OFILE_ALIGNMENT): Correct to 32, not 16.
20314
203152005-01-25  Ian Lance Taylor  <ian@airs.com>
20316
20317	* gimple-low.c (block_may_fallthru): Correct handling of
20318	SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.
20319
203202005-01-26  Hans-Peter Nilsson  <hp@axis.com>
20321
20322	* config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
20323	handlers to match indentation; nested under the mtune=* handler.
20324	Similar for mcpu= and march=.
20325
203262005-01-25  Daniel Jacobowitz  <dan@codesourcery.com>
20327
20328	* config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
20329	* config/mips/linux64.h (LIB_SPEC): Likewise.
20330	* config/mn10300/linux.h (LIB_SPEC): Likewise.
20331	* config/sh/linux.h (LIB_SPEC): Likewise.
20332
203332005-01-25  Aldy Hernandez  <aldyh@redhat.com>
20334
20335	* config/frv/frv.c (frv_legitimize_tls_address): New.
20336	(TARGET_HAVE_TLS): Define.
20337	(FRV_SYMBOL_REF_TLS_P): Define.
20338	(frv_override_options): Handle new register classes.
20339	(frv_legitimate_address_p): Reject tls addresses.
20340	(frv_legitimize_address): Handle TLS addresses.
20341	(gen_inlined_tls_plt): New.
20342	(gen_tlsmoff): New.
20343	(frv_legitimize_tls_address): New.
20344	(unspec_got_name): Add TLS entries.
20345	(got12_operand): Add R_FRV_TLSMOFF12 case.
20346	(frv_emit_move): Fixup TLS addresses.
20347	(frv_emit_movsi): Legitimize TLS addresses.
20348
20349	* config/frv/frv.h (MASK_BIG_TLS): New.
20350	(TARGET_BIG_TLS): New.
20351	(HAVE_AS_TLS): Define.
20352	(TARGET_SWITCHES): Add -mTLS and -mtls options.
20353	(enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
20354	(REG_CLASS_NAMES): Same.
20355	(REG_CLASS_CONTENTS): Same.
20356	(CONSTRAINT_LEN): New.
20357	(REG_CLASS_FROM_CONSTRAINT): New.
20358	(PREDICATE_CODES): Add symbolic_operand.
20359
20360	* config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
20361	UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
20362	UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
20363	UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
20364	R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
20365	R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
20366	R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
20367	GR9_REG, GR14_REG, LRREG.
20368	(type): Add load_or_call attribute.
20369	("load_or_call"): New reservation.
20370	("call_gettlsoff"): New.
20371	("tls_indirect_call"): New.
20372	("tls_load_gottlsoff12"): New.
20373	("tlsoff_hilo"): New.
20374	("tls_tlsdesc_ldd"): New.
20375	("tls_tlsoff_ld"): New.
20376	("tls_lddi"): New.
20377
20378	* config/frv/frv-protos.h (symbolic_operand): Protoize.
20379
20380	2005-01-25  Alexandre Oliva  <aoliva@redhat.com>
20381
20382	* config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
20383	* config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
20384	* config/frv/frv.c (TLS_BIAS): Define.
20385	(frv_output_dwarf_dtprel): New.
20386
203872005-01-26  Jakub Jelinek  <jakub@redhat.com>
20388
20389	PR rtl-optimization/19579
20390	* ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
20391	both A and B, see if they don't clobber registers the other expr uses.
20392
203932005-01-25  J"orn Rennecke <joern.rennecke@st.com>
20394
20395	* real.c (do_add): Initialize signalling and canonical members.
20396
20397	* real.c (real_from_integer): Zero out destination.
20398
203992005-01-18  Jan Hubicka  <jh@suse.cz>
20400
20401	PR tree-optimize/19337
20402	* tree-inline.c (initialize_inlined_parameters): Copy
20403	saved_static_chain_decl only.
20404
204052005-01-25  Richard Henderson  <rth@redhat.com>
20406
20407	PR target/19556
20408	PR target/19584
20409	* config/i386/i386.c (x86_inter_unit_moves): Zero.
20410	(ix86_preferred_reload_class): Rewrite fp-constant section, with
20411	80387 enabled, to return a proper subclass.  Return the subset that
20412	overlaps with GENERAL_REGS for PLUS.
20413	* config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.
20414
204152005-01-25  Richard Henderson  <rth@redhat.com>
20416
20417	PR middle-end/19609
20418	* tree-complex.c (expand_complex_div_wide): Use the correct formulae.
20419
204202005-01-25  Roger Sayle  <roger@eyesopen.com>
20421
20422	* expmed.c (choose_multiplier): Change interface to return the
20423	multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
20424	(expand_divmod): Update calls to choose_multiplier.
20425
204262005-01-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
20427
20428	PR middle-end/19330
20429	* expmed.c (extract_bit_field): Use adjust_address instead of
20430	gen_lowpart when op0 is a MEM.
20431
204322005-01-24  Steven Bosscher  <stevenb@suse.de>
20433
20434	* cfgexpand.c (expand_gimple_tailcall): Fix typo.
20435
204362005-01-24  Richard Sandiford  <rsandifo@redhat.com>
20437
20438	* config/mips/irix-csr.c: New file.
20439	* config/mips/t-iris6 (irix-csr.o): New rule to build it.
20440	(EXTRA_MULTILIB_PARTS): Add irix-csr.o.
20441	* config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
20442	executables.
20443
204442005-01-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
20445
20446	PR bootstrap/19364
20447	* config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
20448	sparc/elf.h, add sparc/sp-elf.h.
20449	(sparc-*-rtems*): Likewise.
20450	(sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
20451	tm-dwarf2.h, add sparc/sp-elf.h.
20452	(sparc86x-*-elf): Likewise.
20453	(sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
20454	* config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
20455	TARGET_OS_CPP_BUILTINS.
20456	* config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
20457	* config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
20458	Undefine it.
20459	* config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
20460	* config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
20461	(SWITCH_TAKES_ARG): Likewise.
20462	(LOCAL_LABEL_PREFIX): Likewise.
20463	(ASM_GENERATE_INTERNAL_LABEL): Likewise.
20464	(TARGET_N_FORMAT_TYPES): Delete.
20465	(TARGET_FORMAT_TYPES): Likewise.
20466	(ASM_DECLARE_FUNCTION_SIZE): Likewise.
20467	* config/sparc/elf.h: Delete.
20468	* config/sparc/sp-elf.h: New file.
20469
204702005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
20471
20472	* tree-flow-inline.h (phi_arg_from_edge): Remove.
20473	* tree-flow.h: Remove the corresponding prototype.
20474	* tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
20475	tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.
20476
204772005-01-24  Jakub Jelinek  <jakub@redhat.com>
20478
20479	PR target/17751
20480	* config/rs6000/rs6000.c (rs6000_file_start): Create toc section
20481	for AIX ABI or ELF -fPIC.
20482	(rs6000_emit_load_toc_table): Don't create toc_section here.
20483	(rs6000_xcoff_file_start): Nor here.
20484
204852005-01-24  J"orn Rennecke <joern.rennecke@st.com>
20486
20487	* sh.c (ra.h): Don't #include.
20488	(hard_regs_intersect_p): New function, resurrected from ra.c.
20489
20490	* sh.c: Fix 1996 Copyright.
20491
204922005-01-24  Richard Henderson  <rth@redhat.com>
20493	    Aldy Hernandez  <aldyh@redhat.com>
20494
20495	* regrename.c (note_sets): Handle subregs.
20496
204972005-01-24  Joseph S. Myers  <joseph@codesourcery.com>
20498
20499	PR bootstrap/18058
20500	* genconditions.c (write_header, write_conditions): Elide file if
20501	not GCC >= 3.0.1.
20502
205032005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
20504
20505	* c-opts.c, expmed.c, gengtype.c, tree-complex.c,
20506	config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
20507	Update copyright.
20508
205092005-01-24  Jakub Jelinek  <jakub@redhat.com>
20510
20511	* builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
20512	expand_builtin_printf, expand_builtin_fprintf,
20513	expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
20514	checking against POINTER_TYPE.
20515	(validate_arglist): Handle POINTER_TYPE code by checking
20516	POINTER_TYPE_P.
20517
205182005-01-24  Paolo Bonzini  <bonzini@gnu.org>
20519
20520	* rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
20521	init_rtlanal): New.
20522	(for_each_rtx): Call for_each_rtx_1.
20523	* rtl.h (init_rtlanal): Declare.
20524	* toplev.c (backend_init): Call init_rtlanal.
20525
205262005-01-24  Jakub Jelinek  <jakub@redhat.com>
20527
20528	* flow.c (propagate_one_insn): Formatting.
20529
20530	PR middle-end/19551
20531	* flow.c (libcall_dead_p): Be more conservative if unsure.
20532	If there are any instructions between insn and call, see if they are
20533	all dead before saying the libcall is dead.
20534
205352005-01-24  Uros Bizjak  <uros@kss-loka.si>
20536
20537	* config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
20538	operand constraint for operand 0.
20539
205402005-01-23  Richard Henderson  <rth@redhat.com>
20541
20542	PR 19486
20543	* tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
20544	edges leading to join block.
20545
205462005-01-23  Roger Sayle  <roger@eyesopen.com>
20547
20548	* expmed.c (expand_mult_highpart): Make static.  Change type of
20549	constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
20550	(expand_divmod): Updates calls to expand_mult_highpart by using
20551	gen_int_mode to pass a CONST_INT rtx.
20552	* rtl.h (expand_mult_highpart): Remove prototype.
20553
205542005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
20555
20556	* flow.c (regset_bytes, regset_size): Remove.
20557
20558	* cfganal.c: Fix a reference to Harvey's paper.
20559
205602005-01-23  Steven Bosscher  <stevenb@suse.de>
20561
20562	PR rtl-optimization/19464
20563	* tree-optimize.c (init_tree_optimization_passes): Add one more
20564	copyrename pass just before out-of-ssa.
20565
205662005-01-23  Joseph S. Myers  <joseph@codesourcery.com>
20567
20568	PR bootstrap/18058
20569	* recog.c (recog_memoized): Don't define if GENERATOR_FILE.
20570	* ggc-none.c (ggc_free): Define.
20571
205722005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
20573
20574	* cse.c (max_reg, max_insn_uid): Remove.
20575	(cse_main): Don't access max_reg or max_insn_uid.
20576
20577	* c-common.c (explicit_flag_signed_bitfields,
20578	lang_statement_code_p, lang_expand_function_end): Remove.
20579	* c-common.h: Remove the corresponding declarations.
20580	* c-opts.c (c_common_handle_option): Remove all write access
20581	to explicit_flag_signed_bitfields.
20582
20583	* cgraph.c (cgraph_varpool_n_nodes): Remove.
20584	(cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
20585	* cgraph.h: Remove the corresponding declaration.
20586
20587	* gcse.c (null_pointer_info): Remove.
20588
205892005-01-23  Roger Sayle  <roger@eyesopen.com>
20590	    Eric Botcazou  <ebotcazou@libertysurf.fr>
20591
20592	* combine.c (simplify_logical): Only simplify logical expressions
20593	of the form ior(and(x,y),z) by the inverse distributive law if the
20594	result is cheaper than the original.
20595
205962005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
20597
20598	* alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
20599	fold-const.c, gimplify.c, params.h, tree-data-ref.c,
20600	tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
20601	tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
20602	config/freebsd-spec.h, config/arm/arm.h,
20603	config/h8300/h8300.md, config/i386/i386.md,
20604	config/i386/predicates.md, config/i386/sse.md,
20605	config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
20606	config/vax/vax.md: Fix comment typos.  Follow spelling
20607	conventions.
20608
206092005-01-23  Steven Bosscher  <stevenb@suse.de>
20610
20611	* gengtype.c (walk_type): Produce `not equal to' compares for loop
20612	tests, instead of `less than'.
20613
206142005-01-23  Richard Sandiford  <rsandifo@redhat.com>
20615
20616	* function.c (assign_parm_setup_block): When creating a new stack slot
20617	for a parameter, get its alignment from the parameter's DECL_ALIGN
20618	rather than the type's TYPE_ALIGN.  Make sure that the parameter
20619	is at least word aligned.
20620
206212005-01-22  Roger Sayle  <roger@eyesopen.com>
20622
20623	PR middle-end/19378
20624	* config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
20625
206262005-01-22  Richard Henderson  <rth@redhat.com>
20627
20628	PR target/19506
20629	* config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
20630	in both compare operands.
20631	(movdfcc_1_sse_max): Likewise.
20632	(movsfcc_1_sse): Likewise.  Add earlyclobber for scratch.
20633	(movdfcc_1_sse): Likewise.
20634	* config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
20635	scratch register as needed.
20636
206372005-01-22  Richard Henderson  <rth@redhat.com>
20638
20639	* config/i386/i386.md (smaxsf3): Fix mnemonic typo.
20640
20641	* config/i386/i386.c (ix86_prepare_fp_compare_args): Fix is_sse test.
20642
206432005-01-22  Richard Henderson  <rth@redhat.com>
20644
20645	* genopinit.c (optabs): Use smin/smax for floating point too.
20646	* doc/md.texi: Update to match.  Clarify that floating point
20647	results are undefined for +0/-0 and NaN.
20648	* doc/rtl.texi: Likewise.
20649	* rtl.def (SMIN, SMAX): Likewise
20650	* tree.def (MIN_EXPR, MAX_EXPR): Likewise.
20651
20652	* config/alpha/alpha.md (smaxdf3, smindf3, smaxsf3, sminsf3): Add
20653	leading 's' to the name.
20654	* config/ia64/ia64.md (smaxsf3, sminsf3, smaxdf3, smindf3,
20655	smaxxf3, sminxf3): Likewise.
20656	* config/rs6000/rs6000.md (smaxdf3, smindf3, smaxsf3, sminsf3):
20657	Likewise.
20658
206592005-01-22  Paul Brook  <paul@codesourcery.com>
20660
20661	* config/arm/arm.md: Use "Uy" constraint for wcgr load/stores.
20662
206632005-01-21  Mark Dettinger  <dettinge@de.ibm.com>
20664
20665	* config/s390/s390.c (struct processor_costs): New fields
20666	dlgr, dlr, dr, dsgfr, dsgr.
20667	(z900_cost, z990_cost): Values for new fields.
20668	(s390_rtx_costs): New cases MEM und COMPARE in switch
20669	statement. Modified handling of SIGN_EXTEND, ZERO_EXTEND,
20670	DIV, MOD, UDIV, UMOD.
20671
206722005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
20673
20674	* config/s390/s390.md ("doloop_si64"): Reload input value directly
20675	into the register being decremented.
20676	("doloop_si31", "doloop_di"): Likewise.
20677	("*doloop_si_long"): Adapt pattern.
20678
206792005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
20680
20681	* config/s390/s390.h (HARD_REGNO_NREGS): Fix computation for
20682	access registers.
20683	(CLASS_MAX_NREGS): Likewise.
20684
206852005-01-21  Daniel Berlin  <dberlin@dberlin.org>
20686
20687	* doc/tree-ssa.texi (Statement Operands): Add example for new
20688	must-def macro. Note deprecation of old operands interface.
20689
206902005-01-22  Richard Sandiford  <rsandifo@redhat.com>
20691
20692	PR tree-optimization/19484
20693	* tree-cfg.c (remove_fallthru_edge): New function.
20694	(cleanup_control_flow): Remove fallthru edges from calls that are
20695	now known not to return.
20696
206972005-01-20  Daniel Berlin  <dberlin@dberlin.org>
20698
20699	Fix PR tree-optimization/19038
20700	* tree-ssa-dom.c (cprop_operand): Don't replace loop invaeriant
20701	copies with loop variant ones.
20702
207032005-01-22  Kazu Hirata  <kazu@cs.umass.edu>
20704
20705	* cfganal.c, real.h, reorg.c, timevar.def, tree-ssa-ccp.c,
20706	config/alpha/alpha-protos.h, config/alpha/alpha.h,
20707	config/alpha/alpha.md, config/alpha/predicates.md,
20708	config/sparc/freebsd.h, config/sparc/netbsd-elf.h,
20709	config/sparc/sol2.h: Update copyright.
20710
20711	* tree-cfg.c (remove_forwarder_block_with_phi): Look at the
20712	first label to see if it is a nonlocal label.
20713
207142005-01-22  David Edelsohn  <edelsohn@gnu.org>
20715	    Andrew Pinski  <pinskia@physics.uc.edu>
20716
20717	PR target/19491
20718	* config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
20719	maximum number of GPRs.  Saturate n_fpr at maximum number of FPRs.
20720
207212005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
20722
20723	* config/rs6000/rtems.h: Update copyright.
20724
207252005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
20726
20727	PR target/19548
20728	* config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4.
20729	(CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h).
20730	(SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC.
20731
207322005-01-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
20733
20734	PR c/18809
20735	* c-typeck.c (convert_arguments): Check for error_mark_node.
20736
207372005-01-21  Ian Lance Taylor  <ian@airs.com>
20738
20739	PR tree-optimization/13000
20740	* tree-inline.c: Include "tree-flow.h".
20741	(expand_call_inline): If warn_return_type, warn if non-void inline
20742	function falls through.
20743	* tree-cfg.c (execute_warn_function_return): Don't warn about
20744	control reaching end if TREE_NO_WARNING is set.  Set
20745	TREE_NO_WARNING.
20746	* gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
20747	has been lowered.
20748	* gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
20749	branch if we don't need one.
20750	* c-typeck.c: Include "tree-flow.h"
20751	(c_finish_bc_stmt): Don't add a goto if the current statement
20752	list doesn't fall through to the current point.
20753
207542005-01-21  Roger Sayle  <roger@eyesopen.com>
20755
20756	PR rtl-optimization/576
20757	* real.c (real_arithmetic): Change return type from void to bool
20758	to return an indication that the result may be inexact.
20759	* real.h (real_arithmeric): Update prototype.
20760	* fold-const.c (const_binop):  Don't constant fold floating
20761	point expressions when the user specifies -frounding-math and
20762	the result may depend upon the run-time rounding mode.
20763	(fold_convert_const_real_from_real): Clean-up.
20764	(fold_initializer): Ignore flag_rounding_math for initializers.
20765	* simplify-rtx.c (simplify_binary_operation): Likewise, don't
20766	constant fold FP operations with flag_rounding_math if the
20767	result may depend upon the run-time rounding mode.
20768
207692005-01-21  Tom Tromey  <tromey@redhat.com>
20770
20771	* c-cppbuiltin.c (define__GNUC__): Correct assertion.
20772
207732005-01-21  Kazu Hirata  <kazu@cs.umass.edu>
20774
20775	* tree-cfg.c: Fix comment typos.
20776
207772005-01-21  J"orn Rennecke <joern.rennecke@st.com>
20778
20779	* passes.c (rest_of_handle_flow2): Close / open the flow2 dump file
20780	around the call to rest_of_handle_branch_target_load_optimize.
20781
207822005-01-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
20783
20784	* config.gcc (sparc-*-netbsdelf*): Include dbxelf.h
20785	(sparc64-*-openbsd*): Likewise.
20786	(sparclite-*-elf*): Include tm-dwarf2.h.
20787	(sparc86x-*-elf*): Likewise.
20788	(sparc64-*-elf*): Likewise.
20789	* config/sparc/linux64.h (DWARF2_DEBUGGING_INFO): Delete.
20790	(DBX_DEBUGGING_INFO): Likewise.
20791	* config/sparc/liteelf.h (DWARF2_DEBUGGING_INFO): Likewise.
20792	(PREFERRED_DEBUGGING_TYPE): Likewise.
20793	* config/sparc/netbsd-elf.h (PREFERRED_DEBUGGING_TYPE): Likewise.
20794	* config/sparc/sp64-elf.h (DBX_DEBUGGING_INFO): Likewise.
20795	(PREFERRED_DEBUGGING_TYPE): Likewise.
20796	* config/sparc/sp86x-elf.h (DWARF2_DEBUGGING_INFO): Likewise.
20797	(PREFERRED_DEBUGGING_TYPE): Likewise.
20798	* config/sparc/sparc.h (DBX_DEBUGGING_INFO): Likewise.
20799
208002005-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
20801
20802	PR target/18701
20803	* combine.c (combine_simplify_rtx): Revert change of 2004-12-31.
20804
208052005-01-20  Paul Brook  <paul@codesourcery.com>
20806
20807	* doc/rtl.texi: Document value extension requirements for CONST_INT.
20808
208092005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
20810
20811	* tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
20812	label is first in a sequence of labels.
20813
20814	* tree-cfg.c (tree_verify_flow_info): Fix a typo.
20815
208162005-01-20  Janis Johnson  <janis187@us.ibm.com>
20817	    Giovanni Bajo  <giovannibajo@gcc.gnu.org>
20818
20819	* doc/sourcebuild.texi (Test Directives): New.
20820
208212005-01-20  Roger Sayle  <roger@eyesopen.com>
20822
20823	* real.c (real_floor): Don't leave the result uninitialized when
20824	mode is VOIDMode, but return the unrounded intermediate value.
20825	(real_ceil): Likewise.
20826
208272005-01-20  Paul Brook  <paul@codesourcery.com>
20828
20829	* config/arm/arm.md (insv): Use gen_int_mode.
20830
208312005-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
20832
20833	* config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
20834	* config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
20835	* config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
20836	* config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
20837	* config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
20838
208392005-01-20  Daniel Berlin  <dberlin@dberlin.org>
20840
20841	Fix PR debug/19124
20842	* dwarf2out.c (concat_loc_descriptor): We don't know we can use
20843	fbreg, so we have to assume we can't.
20844	(loc_descriptor_from_tree_1): Ditto.
20845	(containing_function_has_frame_base): New function.
20846	(add_location_or_const_value_attribute): Use it.
20847	Also try to generate a frame_base from a single element location
20848	list.
20849
208502005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
20851
20852	PR tree-optimization/15349
20853	* timevar.def (TV_TREE_MERGE_PHI): New.
20854	* tree-cfg.c (tree_forwarder_block_p): Add a new argument
20855	PHI_WANTED.
20856	(remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
20857	calls to tree_forwarder_block_p.
20858	(remove_forwarder_block_with_phi, merge_phi_nodes,
20859	gate_merge_phi, pass_merge_phi): New.
20860	* tree-optimize.c (init_tree_optimization_passes): Add
20861	pass_merge_phi.
20862	* tree-pass.h: Add an extern for pass_merge_phi;
20863
208642005-01-20  Richard Henderson  <rth@redhat.com>
20865
20866	PR target/19418
20867	* config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
20868	(_mm_castps_pd, _mm_castps_si128): New.
20869	(_mm_castsi128_ps, _mm_castsi128_pd): New.
20870
208712005-01-20  Richard Henderson  <rth@redhat.com>
20872
20873	PR target/19530
20874	* config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
20875	__builtin_ia32_vec_init_v2si.
20876	(_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
20877	* config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
20878	(ix86_init_mmx_sse_builtins): Create it.
20879	(ix86_expand_builtin): Expand it.
20880	(ix86_expand_vector_set): Handle V2SFmode and V2SImode.
20881	* config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
20882	(vec_extractv2si_0, vec_extractv2si_1): New.
20883
208842005-01-20  Richard Henderson  <rth@redhat.com>
20885
20886	PR target/16533
20887	* config/i386/i386.c (ix86_expand_push): New.
20888	* config/i386/mmx.md (push<MMXMODE>1): New.
20889	* config/i386/sse.md (push<SSEMODE>1): New.
20890	* config/i386/i386-protos.h: Update.
20891
208922005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
20893
20894	* params.def, params.h, predict.c, tree-ssa-loop-im.c: Update
20895	copyright.
20896
208972005-01-20  Richard Henderson  <rth@redhat.com>
20898
20899	* rtl.def (CONST_VECTOR): Use RTX_CONST_OBJ.
20900	* rtl.h (CONSTANT_P): Don't special case CONST_VECTOR.
20901
209022005-01-19  Richard Henderson  <rth@redhat.com>
20903
20904	PR target/19350
20905	* config/i386/i386.c (ix86_expand_vector_move_misalign): Convert
20906	to V4SFmode in SSE1 fallback load path.
20907
209082005-01-19  Richard Henderson  <rth@redhat.com>
20909
20910	* config/i386/i386.c (ix86_expand_vector_init_one_var): Fix typo
20911	in QImode expansion to ix86_expand_vector_set.
20912	(ix86_expand_vector_init_general): Fix typo in V8HImode recursive call.
20913
209142005-01-19  Richard Henderson  <rth@redhat.com>
20915
20916	PR target/19511
20917	* config/i386/i386.c (ix86_preferred_reload_class): Return a proper
20918	subclass of the input class.
20919	(ix86_secondary_memory_needed): Always true for cross-MMX classes.
20920	Always true for cross-SSE1 classes.  Rationalize conditionals.
20921	* config/i386/i386.h (SSE_CLASS_P, MMX_CLASS_P): Use straight equality.
20922	* config/i386/i386.md (movsi_1): Add MMX/SSE zeros.  Fix alternatives
20923	for SSE1.  Don't check TARGET_INTER_UNIT_MOVES.
20924	(movdi_2): Add MMX/SSE zeros.
20925	(movdi_1_rex64): Likewise.  Don't check TARGET_INTER_UNIT_MOVES.
20926	(movsf_1): Don't check TARGET_INTER_UNIT_MOVES.
20927	(zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
20928	(movsi_1_nointernunit, movdi_1_rex64_nointerunit): Remove.
20929	(movsf_1_nointerunit, zero_extendsidi2_32_1): Remove.
20930	(zero_extendsidi2_rex64_1): Remove.
20931	(MOV0 peephole): Check GENERAL_REG_P.
20932
209332005-01-19  Richard Henderson  <rth@redhat.com>
20934
20935	PR target/19427
20936	* config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
20937	shufps elements.
20938	(ix86_expand_vector_extract): Likewise.
20939
209402005-01-19  Richard Henderson  <rth@redhat.com>
20941
20942	PR middle-end/19304
20943	* expr.c (emit_move_change_mode): New argument force; use
20944	simplify_gen_subreg if true.
20945	(emit_move_via_alt_mode): Merge into ...
20946	(emit_move_via_integer): ... here.
20947	(emit_move_ccmode): Use emit_move_change_mode directly.
20948
209492005-01-19  Richard Henderson  <rth@redhat.com>
20950
20951	PR target/19518
20952	* config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
20953	(alpha_preferred_reload_class): Handle CONST_VECTOR.
20954	(alpha_emit_set_const_1): Add no_output parameter; don't emit
20955	rtl if true.
20956	(alpha_emit_set_const): Likewise.  Make static.
20957	(alpha_emit_set_long_const): Make static.
20958	(alpha_extract_integer): Split out from alpha_expand_mov.
20959	(alpha_split_const_mov): Likewise.
20960	(alpha_expand_mov): Use them.  Handle CONST_VECTOR.
20961	(alpha_legitimate_constant_p): New.
20962	* config/alpha/alpha-protos.h: Update.
20963	* config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
20964	(LEGITIMATE_CONSTANT_P): Re-implement with a function.
20965	* config/alpha/alpha.md (movsi): Add n alternative.
20966	(movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
20967	(mov<VEC>_fix, mov<VEC>_nofix): Add i alternative.
20968	(splitters for all of the above): Use alpha_split_const_mov.
20969	* config/alpha/predicates.md (non_add_const_operand): New.
20970	(non_zero_const_operand): New.
20971	(input_operand): Use alpha_legitimate_constant_p after reload.
20972
209732005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
20974
20975	PR tree-optimization/19038
20976	* tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): New function.
20977	(add_candidate): Add ivs with increment in latch only if
20978	allow_ip_end_pos_p is true.
20979	(determine_iv_cost): Use empty_block_p.
20980
209812005-01-19  Daniel Berlin  <dberlin@dberlin.org>
20982
20983	* cfganal.c (compute_dominance_frontiers_1): Replace with new algorithm
20984	(compute_dominance_frontiers): Ditto.
20985
209862005-01-19  Ralf Corsepius  <ralf.corsepius@rtems.org>
20987
20988	PR target/19529
20989	* config/sh/t-rtems: New.
20990	* config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.
20991
209922005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
20993
20994	* tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Always subtract
20995	the offset of the selected field.
20996
209972005-01-19  Kazu Hirata  <kazu@cs.umass.edu>
20998
20999	* tree-cfg.c (remove_forwarder_block): Fix the check to
21000	prevent a nonlocal label from appearing in the middle of a
21001	basic block.
21002
210032005-01-19  Hans-Peter Nilsson  <hp@axis.com>
21004
21005	PR rtl-optimization/19462
21006	* reorg.c (find_end_label): Create return insn only if
21007	current_function_epilogue_delay_list is empty.
21008
210092005-01-19  Paolo Bonzini  <bonzini@gnu.org>
21010
21011	* doc/passes.texi: Remove paragraph mentioning new-ra.
21012
210132005-01-19  Jakub Jelinek  <jakub@redhat.com>
21014
21015	PR rtl-optimization/15139
21016	* combine.c: Include params.h.
21017	(count_rtxs): New function.
21018	(record_value_for_reg): If replace_rtx would replace at least
21019	2 occurrences of REG in VALUE and TEM is really large, replace REG with
21020	(clobber (const_int 0)) instead of TEM.
21021	* params.def (PARAM_MAX_LAST_VALUE_RTL): New.
21022	* params.h (MAX_LAST_VALUE_RTL): New.
21023	* Makefile.in (combine.o): Depend on $(PARAMS_H).
21024	* doc/invoke.texi (--param max-last-value-rtl=N): Document.
21025
21026	PR c/17297
21027	* c-typeck.c (digest_init): Only call build_vector if all constructor
21028	elements are *_CST nodes.
21029	* gimplify.c (gimplify_init_constructor): Likewise.
21030
21031	PR middle-end/19164
21032	* c-typeck.c (digest_init): Only call build_vector if inside_init
21033	is a CONSTRUCTOR.
21034
210352005-01-18  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
21036
21037	* toplev.c (init_asm_output): Remove dead #ifdef.
21038
210392005-01-18  Kaz Kojima  <kkojima@gcc.gnu.org>
21040
21041	* config/sh/linux.h (TARGET_C99_FUNCTIONS): Define.
21042
210432005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
21044
21045	* calls.c (expand_call): Check DECL_BUILT_IN_CLASS before
21046	accessing DECL_FUNCTION_CODE.
21047	* dojump.c (do_jump): Likewise.
21048	* gimplify.c (gimplify_call_expr): Likewise.
21049	* predict.c (expr_expected_value): Likewise.
21050	(strip_builtin_expect): Likewise.
21051	* tree-inline.c (estimate_num_insns_1): Likewise.
21052	* tree-ssa-loop-im.c (stmt_cost): Likewise
21053	* fold-const.c (fold): Test for BUILT_IN_NORMAL.
21054	(tree_expr_nonnegative_p): Likewise.
21055
210562005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
21057
21058	* config/sparc/sparc.c (load_pic_register): Emit the appropriate
21059	variant of the load_pcrel_sym pattern.
21060	* config/sparc/sparc.md (P macro): Move to the top.
21061	(load_pcrel_sym): Macroize using P.
21062	(save_register_window): Likewise.
21063
210642005-01-18  Aldy Hernandez  <aldyh@redhat.com>
21065
21066	* config/rs6000/rs6000.md ("sunordered"): Disable for e500.
21067	("sordered"): Same.
21068
210692005-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
21070
21071	PR C/19472
21072	* c-typeck.c (build_asm_expr): Strip nops off
21073	input memory operands.
21074
210752005-01-18  David Edelsohn  <edelsohn@gnu.org>
21076
21077	* config/rs6000/aix43.h (CPLUSPLUS_CPP_SPEC): Delete
21078	_XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, _LARGE_FILE_API.
21079	* config/rs6000/aix51.h (CPLUSPLUS_CPP_SPEC): Same.
21080	* config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Same.
21081
210822005-01-18  Joel Sherrill <joel.sherrill@oarcorp.com>
21083
21084	PR target/19379
21085	* config/i386/i386.c (override_options): If the 80387 is disabled,
21086	then do not return FP values using FP registers.
21087
210882005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
21089
21090	* basic-block.h, c-common.c, c-cppbuiltin.c, c-lang.c,
21091	c-tree.h, cfgbuild.c, cgraph.c, cgraph.h, collect2.c,
21092	combine.c, config.gcc, coverage.h, cse.c, cselib.c,
21093	defaults.h, df.c, dwarf2asm.c, dwarf2out.c, explow.c, expr.c,
21094	flow.c, fold-const.c, gcse.c, ggc-page.c, gimple-low.c,
21095	gimplify.c, ifcvt.c, langhooks-def.h, lcm.c, optabs.h,
21096	output.h, postreload-gcse.c, postreload.c, recog.c,
21097	resource.c, rtl.def, rtlanal.c, sched-deps.c, sched-rgn.c,
21098	targhooks.h, toplev.c, tree-data-ref.c, tree-eh.c,
21099	tree-flow.h, tree-loop-linear.c, tree-mudflap.h, tree-nrv.c,
21100	tree-optimize.c, tree-outof-ssa.c, tree-pass.h,
21101	tree-scalar-evolution.c, tree-ssa-copy.c, tree-ssa-dce.c,
21102	tree-ssa-dse.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c,
21103	tree-ssa-pre.c, tree-ssa.c, tree-vectorizer.c, tree.def,
21104	unwind-dw2-fde-darwin.c, var-tracking.c: Update copyright.
21105
21106	* config/darwin.c, config/darwin.h, config/freebsd-spec.h,
21107	config/alpha/alpha.c, config/arm/vfp.md,
21108	config/i386/emmintrin.h, config/i386/i386-modes.def,
21109	config/i386/i386-protos.h, config/i386/i386.h,
21110	config/i386/pmmintrin.h, config/i386/ppro.md,
21111	config/i386/predicates.md, config/i386/xmmintrin.h,
21112	config/i860/i860.c, config/ia64/ia64-modes.def,
21113	config/ia64/ia64-protos.h, config/ia64/ia64.h,
21114	config/ia64/ia64.md, config/ia64/itanium1.md,
21115	config/ia64/itanium2.md, config/ia64/predicates.md,
21116	config/iq2000/iq2000.h, config/mips/linux64.h,
21117	config/rs6000/aix41.h, config/rs6000/aix43.h,
21118	config/rs6000/aix52.h, config/rs6000/darwin-fallback.c,
21119	config/rs6000/rs6000.c, config/rs6000/rs6000.h,
21120	config/rs6000/spe.md, config/sh/sh.md, config/sparc/linux.h,
21121	config/sparc/linux64.h, config/sparc/litecoff.h,
21122	config/sparc/sp64-elf.h, config/sparc/sparc.c,
21123	config/sparc/sparc.h, config/sparc/sparc.md,
21124	config/sparc/sysv4-only.h: Update copyright.
21125
211262005-01-18  Richard Henderson  <rth@redhat.com>
21127
21128	PR target/19496
21129	* config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.
21130
211312005-01-18  Marc Espie  <espie@openbsd.org>
21132	* config/i386/openbsdelf.h: Typo.
21133
211342005-01-18  Richard Henderson  <rth@redhat.com>
21135
21136	* config/i386/i386.c (ix86_expand_fp_movcc): Remove TARGET_IEEE_FP
21137	special case for sse.
21138	* config/i386/predicates.md (sse_comparison_operator): Likewise.
21139
211402005-01-18  Dorit Naishlos  <dorit@il.ibm.com>
21141
21142	* tree-inline.c (estimate_num_insns_1): Added cases for
21143	ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR.
21144
211452005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
21146
21147	PR rtl-optimization/19296
21148	* combine.c (simplify_comparison): Rewrite the condition under
21149	which a non-paradoxical SUBREG of a PLUS can be lifted when
21150	compared against a constant.
21151
211522005-01-18  Andi Kleen <ak@muc.de>
21153
21154	* c-typeck.c: (convert_for_assignment): Check warn_pointer_sign.
21155	* c.opt (-Wpointer-sign): Add.
21156	* doc/invoke.texi: (-Wpointer-sign): Add.
21157
211582005-01-18  Uros Bizjak  <uros@kss-loka.si>
21159
21160	* config/i386/i386.c (override_options): Revert 2004-11-24 change.
21161	* config/i386/i386.md (fmodsf3, dremsf3, *sinsf2, *cossf2, sincossf3,
21162	*tansf3_1, tansf2, atan2sf3_1, atan2sf3, atansf2, asinsf2, acossf2,
21163	logsf2, log10sf2, log2sf2, log1psf2, logbsf2, ilogbsf2, expsf2,
21164	exp10sf2, exp2sf2, expm1sf2, rintsf2, floorsf2, ceilsf2, btruncsf2,
21165	nearbyintsf2): Disable for TARGET_SSE_MATH.  Leave patterns enabled
21166	for TARGET_MIX_SSE_I387.
21167	(fmoddf3, dremdf3, *sindf2, *sinextendsfdf2, *cosdf2, *cosextendsfdf2,
21168	sincosdf3, *sincosextendsfdf3, *tandf3_1, tandf2, atan2df3_1,
21169	atan2df3, atandf2, asindf2, acosdf2, logdf2, log10df2, log2df2,
21170	log1pdf2, logbdf2, expdf2, exp10df2, exp2df2, expm1df2, rintdf2,
21171	floordf2, ceildf2, btruncdf2, nearbyintdf2): Disable for
21172	(TARGET_SSE2 && TARGET_SSE_MATH).  Leave patterns enabled for
21173	TARGET_MIX_SSE_I387.
21174	(atan2sf3, atan2df3, atan2xf3): Remove register constraints
21175	from expander.
21176
211772005-01-18  Uros Bizjak  <uros@kss-loka.si>
21178
21179	PR target/19424
21180	* config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
21181	Add movaps alternative for xmm reg->reg move.
21182
211832005-01-17  Jeff Law  <law@redhat.com>
21184
21185	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
21186	at the end of the main DOM loop rather than just before DOM exits.
21187
211882005-01-17  Diego Novillo  <dnovillo@redhat.com>
21189
21190	PR tree-optimization/19121
21191	* tree-ssa-alias.c (compute_flow_sensitive_aliasing): When
21192	adding aliases to a name tag, also add them to the pointer's
21193	type tag.
21194	* tree-ssa-copy.c (merge_alias_info): Do not merge flow
21195	sensitive alias info at all.  Only check that the two pointers
21196	have compatible pointed-to sets.
21197	* tree-ssa.c (verify_name_tags): Verify that the alias set of
21198	a pointer's type tag is a superset of the alias set of the
21199	pointer's name tag.
21200
212012005-01-17  James E Wilson  <wilson@specifixinc.com>
21202
21203	PR target/19357
21204	* config/ia64/ia64.md (movxf): Handle general register source.  Adjust
21205	comment to document why.
21206
212072005-01-17  Richard Henderson  <rth@redhat.com>
21208
21209	* config/i386/sse.md (smaxv4sf3_finite, sse_vmsmaxv4sf3_finite,
21210	sminv4sf3_finite, sse_vmsminv4sf3_finite, smaxv2df3_finite,
21211	sse2_vmsmaxv2df3_finite, sminv2df3_finite,
21212	sse2_vmsminv2df3_finite): New.
21213	(smaxv4sf3, sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, smaxv2df3,
21214	sse2_vmsmaxv2df3, sminv2df3, sse2_vmsminv2df3): Remove commutative.
21215	Force op1 into register.
21216
212172005-01-17  Kelley Cook  <kcook@gcc.gnu.org>
21218
21219	* Makefile.in (STAGEMOVESTUFF): Stage all the stamp files to prevent
21220	bubblestrap from always rebuilding build directory.
21221
212222005-01-17  Ulrich Weigand  <uweigand@de.ibm.com>
21223
21224	* config/s390/s390.md ("*clc"): Remove incorrect '='.
21225	("*cmpmem_short"): Likewise.
21226
212272005-01-17  Steven Bosscher  <stevenb@suse.de>
21228
21229	* basic-block.h: Document BB_* flags.
21230	* regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED,
21231	use an sbitmap instead.
21232	* sched-rgn.c (compute_trg_info): Likewise.
21233
212342005-01-17  Richard Sandiford  <rsandifo@redhat.com>
21235
21236	* config.gcc (mips64*-*-linux*): Set the default abi to n32.  Remove
21237	redundant target_cpu_default and extra_parts lines.  Use the default
21238	"from-abi" ISA.
21239	* config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
21240	(SUBTARGET_EXTRA_SPECS): Delete.
21241	(DRIVER_SELF_SPECS): Remove architecture lines.  Set the ABI directly.
21242	(SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
21243	* config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
21244	and "n32" for -mabi=n32.
21245
212462005-01-17  Ian Lance Taylor  <ian@airs.com>
21247
21248	PR c/5675
21249	* c-typeck.c (build_c_cast): Revert patch of 2003-02-16: don't
21250	fold constant variables into initial values.
21251
212522005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
21253
21254	* tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.
21255
21256	* tree-cfg.c (tree_forwarder_block_p): Speed up by walking
21257	through the statements backward.
21258
212592005-01-17  Ian Lance Taylor  <ian@airs.com>
21260
21261	PR middle-end/13127:
21262	* tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on
21263	a variable set to the return value of the inlined function.
21264
212652005-01-17  Mark Dettinger  <dettinge@de.ibm.com>
21266
21267	* rtlanal.c (rtx_cost): Assign cost of 0 to a SUBREG
21268	when modes are tieable.
21269
212702005-01-17  Ranjit Mathew  <rmathew@hotmail.com>
21271
21272	* gthr-posix.h (__gthread_active_p): Use pthread_cancel instead
21273	of pthread_create to find out if threads are enabled.
21274	* gthr-posix95.h (__gthread_active_p): Likewise.
21275
212762005-01-17  Paolo Bonzini  <bonzini@gnu.org>
21277
21278	* common.opt (-fnew-ra): Remove.
21279	* ra*.*: Remove.
21280	* toplev.h (flag_new_regalloc): Remove.
21281	* Makefile.in (ra*.*): Don't mention.
21282	* passes.c (rest_of_handle_new_regalloc): Remove.
21283	(rest_of_handle_combine, rest_of_compilation): Always consider
21284	flag_new_regalloc as false.
21285	* doc/invoke.texi: Don't document -fnew-ra.
21286
212872005-01-17  Paolo Bonzini <bonzini@gnu.org>
21288
21289	* bb-reorder.c (fix_edges_for_rarely_executed_code): Remove
21290	last parameter to reg_scan.
21291	* loop.c (loop_optimize): Likewise.
21292	* passes.c (rest_of_handle_tracer, rest_of_handle_if_conversion,
21293	rest_of_handle_web, rest_of_handle_cfg, rest_of_handle_jump_bypass,
21294	rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
21295	rest_of_handle_gcse, rest_of_handle_loop_optimize,
21296	rest_of_handle_loop2, rest_of_handle_jump2): Likewise.
21297	* regclass.c (reg_scan): Likewise, for the declaration.
21298	* rtl.h (reg_scan): Likewise, for the prototype.
21299
213002005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
21301
21302	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Don't call
21303	mark_dfs_back_edges.
21304
213052005-01-16  Daniel Berlin  <dberlin@dberlin.org>
21306
21307	* tree-ssa-pre.c (add_to_sets): s1 may be NULL.
21308	(compute_avail): Uses don't go in tmp_gen.
21309
213102005-01-16  Steven Bosscher  <stevenb@suse.de>
21311
21312	* ggc-page.c (ggc_alloc_stat): Use __builtin_ctzl instead of a
21313	loop to look for a free slot in a page entry.
21314
213152005-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21316
21317	PR target/16304
21318	* defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
21319	* toplev.c (compile_file): Call process_pending_assemble_output_defs
21320	just before targetm.asm_out.file_end.
21321	* tree.h (process_pending_assemble_output_defs): Declare.
21322	* varasm.c (assemble_output_def, process_pending_assemble_output_defs):
21323	New functions.
21324	(assemble_alias): Defer generation of assembly code for defines when
21325	TARGET_DEFERRED_OUTPUT_DEFS is true.
21326	* config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
21327	* config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
21328	* doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.
21329
213302005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21331
21332	PR target/19336
21333	* pa.c (pa_scalar_mode_supported_p): New function.
21334	(TARGET_SCALAR_MODE_SUPPORTED_P): Define.
21335	* pa.h (MIN_UNITS_PER_WORD): Add comment.
21336
21337	* pa-protos.h (prefetch_operand): Delete.
21338	(prefetch_cc_operand, prefetch_nocc_operand): New declations.
21339	* pa.c (prefetch_operand): Delete.
21340	(prefetch_cc_operand, prefetch_nocc_operand): New functions.
21341	* pa.h (EXTRA_CONSTRAINT): Add `W' constraint.
21342	(PREDICATE_CODES): Delete prefetch_operand.  Add prefetch_cc_operand
21343	and prefetch_nocc_operand.
21344	* pa.md (prefetch): Rework to avoid reload problems handling short
21345	displacements when a cache control completer needs to be provided.
21346	(prefetch_32, prefetch_64): Delete.
21347	(prefetch_cc, prefetch_nocc): New patterns.
21348
213492005-01-15  David Edelsohn  <edelsohn@gnu.org>
21350
21351	* config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.
21352
213532005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
21354
21355	PR ada/19388
21356	* pa.c (pa_asm_output_aligned_common): Warn if specified alignment
21357	exceeds maximum alignment for global common data.
21358	* pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
21359	* som.h (MAX_OFILE_ALIGNMENT): Likewise.
21360
213612004-01-15  Roger Sayle  <roger@eyesopen.com>
21362
21363	* tree-ssa-dom.c (extract_range_from_cond): Correct condition.
21364
213652004-01-15  Roger Sayle  <roger@eyesopen.com>
21366
21367	* harg-reg-set.h (reg_class_names): Prototype global array.
21368	* regclass.c (reg_class_names): Declare here and initialize to
21369	REG_CLASS_NAMES.
21370	(dump_regclass): Remove local declaration of reg_class_names.
21371	(regclass): Likewise.
21372	* cfg.c (dump_flow_info): Likewise.
21373	* ra-debug.c (reg_class_names): Likewise.
21374	* regrename.c (reg_class_names): Likewise.
21375	* reload.c (reg_class_names): Likewise.
21376	* reload1.c (spill_failure): Likewise.
21377	* config/m68hc11/m68hc11.c (reg_class_names): Likewise.
21378
213792005-01-15  Ulrich Weigand  <uweigand@de.ibm.com>
21380
21381	* config/s390/s390.md ("reload_outti"): Remove predicate for
21382	output operand.  Abort if operand is not a MEM.
21383	("reload_outdi", "reload_outdf"): Likewise.
21384
213852005-01-15  Marc Espie  <espie@openbsd.org>
21386
21387	* config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
21388	(i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
21389	* config/openbsd.h:  Fix C++ includes for native configurations.
21390	Add proper OS_CPP_BUILTINS.  Fix libspec for recent OpenBSD.
21391	Add trampoline support.
21392	* config/i386/openbsdelf.h: New.
21393
213942005-01-15  Marc Espie  <espie@openbsd.org>
21395
21396	* collect2.c (main): Explicitly parse -dynamic-linker option.
21397
213982005-01-15  Jakub Jelinek  <jakub@redhat.com>
21399
21400	PR tree-optimization/19060
21401	* tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
21402	Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
21403	(simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
21404	and handle extract_range_from_cond returning false.
21405	* fold-const.c (fold): Optimize comparisons with min/max even for
21406	width > HOST_BITS_PER_WIDE_INT.
21407
214082005-01-15  Ralf Corsepius  <ralf.corsepius@rtems.org>
21409
21410	* config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
21411	* config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS):
21412	Remove little endian multilib variants.
21413	Add mips32 multilib variant.
21414
214152005-01-15  Kazu Hirata  <kazu@cs.umass.edu>
21416
21417	* explow.c (copy_all_reg, stabilize): Remove.
21418	* expr.h: Remove the corresponding prototypes.
21419
21420	* rtlanal.c (regs_set_between_p): Remove.
21421	* rtl.h: Remove the corresponding prototype.
21422
214232005-01-14  David Edelsohn  <edelsohn@gnu.org>
21424
21425	* config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
21426	to rs6000_nonimmediate_operand.
21427	* config/rs6000/rs6000.h (PREDICATE_CODES): Rename
21428	rs6k_nonimmediate_operand to rs6000_nonimmediate_operand.
21429	* config/rs6000/rs6000.md (movsi_internal1): Rename predicate to
21430	rs6000_nonimmediate_operand.
21431	* config/rs6000/spe.md (movdf_e500_double): Rename predicate to
21432	rs6000_nonimmediate_operand.
21433
214342005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
21435
21436	* tree-ssa-alias.c (pass_may_alias): Add TODO_verify_stmts.
21437
214382005-01-14  Aldy Hernandez  <aldyh@redhat.com>
21439
21440	* config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
21441	on e500v2.
21442	(CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2.
21443	(PREDICATE_CODES): Add rs6k_nonimmediate_operand.
21444
21445	* config/rs6000/rs6000.c (invalid_e500_subreg): New.
21446	(rs6k_nonimmediate_operand): New.
21447	(rs6000_legitimate_offset_address_p): Handle DI modes on e500v2
21448	correctly.
21449	(legitimate_lo_sum_address_p): Same.
21450	(rs6000_legitimize_address): Same.
21451	(rs6000_legitimize_reload_address): Same.
21452	(rs6000_legitimate_address): Same.
21453	(spe_build_register_parallel): Pass DF and DC modes in a DI
21454	register.
21455
21456	* config/rs6000/rs6000.md ("*movsi_internal1"): Change predicate
21457	to rs6k_nonimmediate_operand.
21458
21459	* config/rs6000/spe.md ("*frob_df_di"): New.
21460	("*frob_di_df"): New.
21461	("*frob_di_df_2"): New.
21462	("*mov_sidf_e500_subreg0"): New.
21463	("*mov_sidf_e500_subreg4"): New.
21464	("*movdf_e500_double"): Change predicate to
21465	rs6k_nonimmediate_operand.
21466
214672005-01-14  Aldy Hernandez  <aldyh@redhat.com>
21468
21469	* postreload.c (move2add_note_store): Only call
21470	trunc_int_for_mode on scalar integers.
21471
214722005-01-14  Steven Bosscher  <stevenb@suse.de>
21473
21474	* tree-ssa-dce.c (visited_control_parents): New sbitmap to
21475	replace BB_VISITED uses.
21476	(find_obviously_necessary_stmts): Don't clear BB_VISITED.
21477	(propagate_necessity): Check the bitmap instead of BB_VISITED.
21478	(tree_dce_done): Free visited_control_parents.
21479	(perform_tree_ssa_dce): Allocate and clear it.
21480	* tree-ssa-pre.c (compute_antic_aux): Make non-recursive.
21481	(compute_antic): Iterate from here using a DFS.  Use an sbitmap
21482	instead of BB_VISITED.
21483
214842005-01-14  Kazu Hirata  <kazu@cs.umass.edu>
21485
21486	* c-tree.h, coverage.h, langhooks-def.h, optabs.h, output.h,
21487	rtl.h, targhooks.h, tree-flow.h, tree-mudflap.h, tree.h:
21488	Remove unused prototypes.
21489
214902005-01-14  Aldy Hernandez  <aldyh@redhat.com>
21491
21492	* config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE
21493	64-bit register usage.
21494	(spe_func_has_64bit_regs_p): Add FIXME note.
21495
214962005-01-14  Aldy Hernandez  <aldyh@redhat.com>
21497
21498	* config/rs6000/rs6000.c (rs6000_generate_compare): Replace
21499	flag_finite_math_only with flag_unsafe_math_optimizations.
21500
215012005-01-14  J. D. Johnston  <jjohnst@us.ibm.com>
21502
21503	* config/s390/tpf-unwind.h (s390_fallback_frame_state): Correct
21504	end-of-stack check.
21505	(__tpf_eh_return): Copy TPF private stack area from the module
21506	boundary stack frame.  Add check for when module addresses are
21507	equal, but no stub address is found.
21508
215092005-01-14  Richard Earnshaw  <rearnsha@arm.com>
21510
21511	PR target/7525
21512	* arm.h (struct machine_function): Add call_via field.
21513	(thumb_call_via_label): Declare.
21514	* arm.c (thumb_call_via_label): New variable.
21515	(thumb_call_reg_needed): New variable.
21516	(arm_output_function_epilogue): For Thumb code, output any per-function
21517	call-indirect trampolines.
21518	(thumb_call_via_reg): New function.
21519	(arm_file_end): New function.
21520	(TARGET_ASM_FILE_END): Call arm_file_end.
21521	(aof_file_end): Likewise.
21522	* arm-protos.h (thumb_call_via_reg): Declare.
21523	* arm.md (call_reg_thumb, call_value_reg_thumb): Call
21524	thumb_call_via_reg in normal case.
21525
215262005-01-14  Jakub Jelinek  <jakub@redhat.com>
21527
21528	PR middle-end/19084
21529	PR rtl-optimization/19348
21530	* recog.c (peephole2_optimize): Do global life update if some peephole
21531	decides it doesn't need at least one of its inputs and that change
21532	influences liveness at the start of the basic block.
21533
21534	* basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET
21535	arguments instead of 1.
21536
215372005-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
21538
21539	PR middle-end/18820
21540	* varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Return
21541	zero for nested functions needing a static chain or functions
21542	with a non-constant address.
21543
215442005-01-13  Roger Sayle  <roger@eyesopen.com>
21545
21546	* simplify-rtx.c (simplify_binary_operation) <AND>: Optimize
21547	(and (sign_extend X) C) into (zero_extend (and X C)).
21548
215492005-01-13  David O'Brien  <obrien@FreeBSD.org>
21550
21551	* config/freebsd-spec.h:  Make KSE pthread lib logic the default.
21552
215532005-01-13  Richard Henderson  <rth@redhat.com>
21554
21555	PR target/19009
21556	PR target/19250
21557	PR target/19252
21558	* config/i386/i386.md (cmpdf, cmpsf, bunordered, bordered, buneq,
21559	bunge, bungt, bunle, bunlt, bltgt): Enable for TARGET_SSE_MATH,
21560	not just TARGET_SSE.
21561	(cmpfp_i_387): Rename from cmpfp_i.  Move after sse patterns.
21562	(cmpfp_i_mixed): Rename from cmpfp_i_sse; use for TARGET_MIX_SSE_I387.
21563	(cmpfp_i_sse): Rename from cmpfp_i_sse_only; use for TARGET_SSE_MATH.
21564	(cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387): Similarly.
21565	(fp_jcc_1_mixed, fp_jcc_1_sse, fp_jcc_1_387): Similarly.
21566	(fp_jcc_2_mixed, fp_jcc_2_sse, fp_jcc_2_387): Similarly.
21567	(fp_jcc_3_387, fp_jcc_4_387, fp_jcc_5_387, fp_jcc_6_387,
21568	fp_jcc_7_387, fp_jcc_8_387): Rename from fp_jcc_N.
21569	(movdicc_c_rex64): Rename with '*'.
21570	(movsfcc, movdfcc): Add checks for 387 and sse math to condition.
21571	(movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): New.
21572	(movsfcc_1_387): Rename from movsfcc_1.
21573	(movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): New.
21574	(movdfcc_1, movdfcc_1_rex64): Add check for 387.
21575	(sminsf3, smaxsf3, smindf3, smaxdf3): New.
21576	(minsf3, minsf, minsf_nonieee, minsf_sse, mindf3, mindf,
21577	mindf_nonieee, mindf_sse, maxsf3, maxsf, maxsf_nonieee, maxsf_sse,
21578	maxdf3, maxdf, maxdf_nonieee, maxdf_sse, sse_movsfcc, sse_movsfcc_eq,
21579	sse_movdfcc, sse_movdfcc_eq, sse_movsfcc_const0_1,
21580	sse_movsfcc_const0_2, sse_movsfcc_const0_3, sse_movsfcc_const0_4,
21581	sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
21582	sse_movdfcc_const0_4): Remove.
21583	* config/i386/i386.c (ix86_expand_fp_movcc): For TARGET_SSE_MATH,
21584	recognize min/max early.  Update for changed sse cmove patterns.
21585	(ix86_split_sse_movcc): New.
21586	* config/i386/i386-protos.h: Update.
21587
215882005-01-13  Steven Bosscher  <stevenb@suse.de>
21589
21590	* tree-ssa-dse.c (fix_phi_uses): Use SSA operand iterators.
21591	(fix_stmt_v_may_defs): Likewise.
21592
215932005-01-13  Richard Henderson  <rth@redhat.com>
21594
21595	* config/i386/i386.c (ix86_expand_fp_absneg_operator): Use elt_mode
21596	for converting the mask.
21597
215982005-01-13  David Edelsohn  <edelsohn@gnu.org>
21599
21600	* config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE
21601	definition to 600.
21602
216032005-01-13  Richard Henderson  <rth@redhat.com>
21604
21605	* config/i386/i386.c (IX86_BUILTIN_MOVQ, IX86_BUILTIN_LOADD,
21606	IX86_BUILTIN_STORED, IX86_BUILTIN_MOVQ2DQ,
21607	IX86_BUILTIN_MOVDQ2Q): Remove.
21608	(IX86_BUILTIN_VEC_EXT_V4SI): New.
21609	(ix86_init_mmx_sse_builtins, ix86_expand_builtin): Update to match.
21610	(ix86_expand_vector_extract): For V4S[FI], extract element 0 after
21611	shuffling.
21612	* config/i386/sse.md (sse_concatv2sf): Accept zero operand 2.
21613	(sse2_pextrw): Fix immediate constraint.
21614	(sse2_loadq, sse2_loadq_rex64): Remove.
21615	* config/i386/emmintrin.h (_mm_cvtsi128_si32, _mm_cvtsi128_si64x):
21616	Use __builtin_ia32_vec_ext_<size>.
21617	(_mm_cvtsi32_si128, _mm_cvtsi64x_si128): Use _mm_set_epi<size>.
21618
216192005-01-13  Aldy Hernandez  <aldyh@redhat.com>
21620
21621	* function.c (assign_parm_setup_block): Look inside original
21622	entry_parm when inspecting PARALLEL.
21623
216242005-01-13  Ralf Corsepius  <ralf.corsepius@rtems.org>
21625	    Joel Sherrill  <joel@oarcorp.com>
21626
21627	PR target/19399
21628	* gthr-rtems.h (__gthread_recursive_mutex_t): New type.
21629	(__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
21630	rtems_gxx_recursive_mutex_init.
21631	(__gthread_recursive_mutex_lock): New function.
21632	(__gthread_recursive_mutex_trylock): Likewise.
21633	(__gthread_recursive_mutex_unlock): Likewise.
21634
216352005-01-13  Ralf Corsepius <ralf.corsepius@rtems.org>
21636
21637	* config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu.
21638
216392005-01-13  Jan Beulich  <jbeulich@novell.com>
21640
21641	* config/ia64/ia64.md (ashlti3, ashlti3_internal): New.
21642	(ashrti3_internal): Indicate output is early clobber. Generate result
21643	into output rather than first input. Use move for low word of output
21644	if shift count is exactly 64.
21645	(lshrti3_internal): Likewise.
21646
216472005-01-13  Hans-Peter Nilsson  <hp@bitrange.com>
21648
21649	PR target/18329
21650	PR target/18330
21651	* reload1.c (delete_output_reload): Don't delete an output reload
21652	if the pseudo lives longer than a single basic block.  Adjust and
21653	improve wording of comment.
21654
216552005-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
21656
21657	PR target/19334
21658	* config/darwin.c (machopic_select_section): Use TYPE_SIZE_UNIT instead
21659	of TYPE_SIZE where we mean the number of bytes.
21660
216612005-01-12  Aldy Hernandez  <aldyh@redhat.com>
21662
21663	* function.c (assign_parm_setup_block): Relax condition on
21664	multi-register optimization.
21665
216662005-01-12  Nick Clifton  <nickc@redhat.com>
21667
21668	* config/sh/sh.md (udivsi3_sh2a, divsi3_sh2a): Give these patterns
21669	an "in_delay_slot" attribute of "no" to prevent them being used in
21670	delay slots.  This is forbidden because they might generate
21671	exceptions.
21672
216732005-01-12  Alan Modra  <amodra@bigpond.net.au>
21674
21675	PR target/19389
21676	* config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r
21677	with r->Y and Y->r.
21678
216792005-01-12  Nick Clifton  <nickc@redhat.com>
21680
21681	* config/iq2000/iq2000.h (ASM_SPEC): Undefine (to stop -Qy being
21682	passed on to GAS) but do not define, as GAS no longer supports or
21683	needs the -m2000 option.
21684
216852005-01-11  Roger Sayle  <roger@eyesopen.com>
21686
21687	* builtins.c (fold_builtin_fabs): Convert argument to the appropriate
21688	type as args of unprototyped builtins aren't automatically promoted.
21689	(fold_builtin_abs): Likewise.
21690
216912005-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
21692
21693	* Makefile.in: Set a `build-warn' variable.
21694
216952005-01-11  Zdenek Dvorak  <dvorakz@suse.cz>
21696
21697	PR tree-optimization/17949
21698	* tree-ssa-loop-ivopts.c (may_be_unaligned_p): New function.
21699	(find_interesting_uses_address): Use it.
21700
217012005-01-11  Aldy Hernandez  <aldyh@redhat.com>
21702
21703	* regrename.c (kill_value): Handle subreg's that won't simplify.
21704
217052005-01-11  Richard Henderson  <rth@redhat.com>
21706
21707	PR target/13366
21708	* config/i386/i386.h (enum ix86_builtins): Move ...
21709	* config/i386/i386.c: ... here.
21710	(IX86_BUILTIN_MOVDDUP, IX86_BUILTIN_MMX_ZERO, IX86_BUILTIN_PEXTRW,
21711	IX86_BUILTIN_PINSRW, IX86_BUILTIN_LOADAPS, IX86_BUILTIN_LOADSS,
21712	IX86_BUILTIN_STORESS, IX86_BUILTIN_SSE_ZERO, IX86_BUILTIN_PEXTRW128,
21713	IX86_BUILTIN_PINSRW128, IX86_BUILTIN_LOADAPD, IX86_BUILTIN_LOADSD,
21714	IX86_BUILTIN_STOREAPD, IX86_BUILTIN_STORESD,  IX86_BUILTIN_STOREHPD,
21715	IX86_BUILTIN_STORELPD, IX86_BUILTIN_SETPD1, IX86_BUILTIN_SETPD,
21716	IX86_BUILTIN_CLRPD, IX86_BUILTIN_LOADPD1, IX86_BUILTIN_LOADRPD,
21717	IX86_BUILTIN_STOREPD1, IX86_BUILTIN_STORERPD, IX86_BUILTIN_LOADDQA,
21718	IX86_BUILTIN_STOREDQA, IX86_BUILTIN_CLRTI,
21719	IX86_BUILTIN_LOADDDUP): Remove.
21720	(IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI,
21721	IX86_BUILTIN_VEC_INIT_V8QI, IX86_BUILTIN_VEC_EXT_V2DF,
21722	IX86_BUILTIN_VEC_EXT_V2DI, IX86_BUILTIN_VEC_EXT_V4SF,
21723	IX86_BUILTIN_VEC_EXT_V8HI, IX86_BUILTIN_VEC_EXT_V4HI,
21724	IX86_BUILTIN_VEC_SET_V8HI, IX86_BUILTIN_VEC_SET_V4HI): New.
21725	(ix86_init_builtins): Make static.
21726	(ix86_init_mmx_sse_builtins): Update for changed builtins.
21727	(ix86_expand_binop_builtin): Only use ix86_fixup_binary_operands
21728	if all the modes match.  Otherwise, fake it.
21729	(get_element_number, ix86_expand_vec_init_builtin,
21730	ix86_expand_vec_ext_builtin, ix86_expand_vec_set_builtin): New.
21731	(ix86_expand_builtin): Make static.  Update for changed builtins.
21732	(ix86_expand_vector_move_misalign): Use sse2_loadlpd with zero
21733	operand instead of sse2_loadsd.  Cast sse1 fallback to V4SFmode.
21734	(ix86_expand_vector_init_duplicate): New.
21735	(ix86_expand_vector_init_low_nonzero): New.
21736	(ix86_expand_vector_init_one_var, ix86_expand_vector_init_general):
21737	Split out from ix86_expand_vector_init; handle integer modes.
21738	(ix86_expand_vector_init): Use them.
21739	(ix86_expand_vector_set, ix86_expand_vector_extract): New.
21740	* config/i386/i386-protos.h: Update.
21741	* config/i386/predicates.md (reg_or_0_operand): New.
21742	* config/i386/mmx.md (mov<MMXMODEI>_internal): Add 'r' variants.
21743	(movv2sf_internal): Likewise.  And a splitter to match them all.
21744	(vec_dupv2sf, mmx_concatv2sf, vec_setv2sf, vec_extractv2sf,
21745	vec_initv2sf, vec_dupv4hi, vec_dupv2si, mmx_concatv2si, vec_setv2si,
21746	vec_extractv2si, vec_initv2si, vec_setv4hi, vec_extractv4hi,
21747	vec_initv4hi, vec_setv8qi, vec_extractv8qi, vec_initv8qi): New.
21748	(mmx_pinsrw): Fix operand ordering.
21749	* config/i386/sse.md (movv4sf splitter): Use direct pattern,
21750	rather than sse_loadss expander.
21751	(movv2df splitter): Similarly.
21752	(sse_loadss, sse_loadlss): Remove.
21753	(vec_dupv4sf, sse_concatv2sf, sse_concatv4sf, vec_extractv4sf_0): New.
21754	(vec_setv4sf, vec_setv2df): Use ix86_expand_vector_set.
21755	(vec_extractv4sf, vec_extractv2df): Use ix86_expand_vector_extract.
21756	(sse3_movddup): Rename with '*'.
21757	(sse3_movddup splitter): Use gen_rtx_REG instead of gen_lowpart.
21758	(sse2_loadsd): Remove.
21759	(vec_dupv2df_sse3): Rename from sse3_loadddup.
21760	(vec_dupv2df, vec_concatv2df_sse3, vec_concatv2df): New.
21761	(sse2_pinsrw): Fix argument ordering.
21762	(sse2_loadld, sse2_loadq): Add sse1 alternatives.
21763	(sse2_stored): Remove 'r' destination.
21764	(vec_dupv4si, vec_dupv2di, sse2_concatv2si, sse1_concatv2si,
21765	vec_concatv4si_1, vec_concatv2di, vec_setv2di, vec_extractv2di,
21766	vec_initv2di, vec_setv4si, vec_extractv4si, vec_initv4si,
21767	vec_setv8hi, vec_extractv8hi, vec_initv8hi, vec_setv16qi,
21768	vec_extractv16qi, vec_initv16qi): New.
21769
21770	* config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
21771	(_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x,
21772	_mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
21773	constructor form.
21774	(_mm_load_pd, _mm_store_pd): Use plain dereference.
21775	(_mm_load_si128, _mm_store_si128): Likewise.
21776	(_mm_load1_pd): Use _mm_set1_pd.
21777	(_mm_load_sd): Use _mm_set_sd.
21778	(_mm_store_sd, _mm_storeh_pd): Use __builtin_ia32_vec_ext_v2df.
21779	(_mm_store1_pd, _mm_storer_pd): Use _mm_store_pd.
21780	(_mm_set_epi64): Use _mm_set_epi64x.
21781	(_mm_set1_epi64x, _mm_set1_epi64, _mm_set1_epi32, _mm_set_epi16,
21782	_mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
21783	_mm_setr_epi8): Use _mm_set_foo form.
21784	(_mm_loadl_epi64, _mm_movpi64_epi64, _mm_move_epi64): Use _mm_set_epi64.
21785	(_mm_storel_epi64, _mm_movepi64_pi64): Use __builtin_ia32_vec_ext_v2di.
21786	(_mm_extract_epi16): Use __builtin_ia32_vec_ext_v8hi.
21787	(_mm_insert_epi16): Use __builtin_ia32_vec_set_v8hi.
21788	* config/i386/mmintrin.h (_mm_setzero_si64): Use plain cast.
21789	(_mm_set_pi32): Use __builtin_ia32_vec_init_v2si.
21790	(_mm_set_pi16): Use __builtin_ia32_vec_init_v4hi.
21791	(_mm_set_pi8): Use __builtin_ia32_vec_init_v8qi.
21792	(_mm_set1_pi16, _mm_set1_pi8): Use _mm_set_piN variant.
21793	* config/i386/pmmintrin.h (_mm_loaddup_pd): Use _mm_load1_pd.
21794	(_mm_movedup_pd): Use _mm_shuffle_pd.
21795	* config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss,
21796	_mm_set1_ps, _mm_set_ps, _mm_setr_ps): Use constructor form.
21797	(_mm_cvtpi16_ps, _mm_cvtpu16_ps, _mm_cvtpi8_ps, _mm_cvtpu8_ps,
21798	_mm_cvtps_pi8, _mm_cvtpi32x2_ps): Avoid __builtin_ia32_mmx_zero;
21799	Use _mm_setzero_ps.
21800	(_mm_load_ss, _mm_load1_ps): Use _mm_set* form.
21801	(_mm_load_ps, _mm_loadr_ps): Use raw dereference.
21802	(_mm_store_ss): Use __builtin_ia32_vec_ext_v4sf.
21803	(_mm_store_ps): Use raw dereference.
21804	(_mm_store1_ps): Use _mm_storeu_ps.
21805	(_mm_storer_ps): Use _mm_store_ps.
21806	(_mm_extract_pi16): Use __builtin_ia32_vec_ext_v4hi.
21807	(_mm_insert_pi16): Use __builtin_ia32_vec_set_v4hi.
21808
218092005-01-11  Stan Shebs  <shebs@apple.com>
21810
21811	* config/rs6000/rs6000.c (machopic_output_stub): Issue
21812	ldu instead of lwzu if 64-bit -mdynamic-no-pic.
21813
218142005-01-11  Andrew Pinski  <pinskia@physics.uc.edu>
21815
21816	PR target/18761
21817	* config/rs6000/rs6000.c (rs6000_special_round_type_align):
21818	Skip all DECLs except for FIELD_DECLs.
21819
218202005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
21821
21822	* config/s390/s390.c (override_options): Return error if
21823	-mbackchain, -mpacked-stack and -mhard-float are used together.
21824	(s390_va_start): Remove the backchain && packed-stack special case.
21825	(s390_gimplify_va_arg): Likewise.
21826	* doc/invoke.texi: Remove the ABI incompatibility note.
21827
218282005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
21829
21830	* config/s390/s390.c (struct s390_frame_layout): Remove
21831	save_backchain_p.
21832	(s390_frame_info, s390_emit_prologue): Replace occurrences of
21833	save_backchain_p with TARGET_BACKCHAIN.
21834
218352005-01-11  Alan Modra  <amodra@bigpond.net.au>
21836
21837	PR target/18916
21838	* builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
21839	* expr.h (struct locate_and_pad_arg_data): Add "boundary".
21840	* function.c (locate_and_pad_parm): Set new field.
21841	(assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
21842	Tweak where_pad test to include "none".  Always set mem align for
21843	stack_parm.
21844	(assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
21845	not sufficient for type.
21846	(assign_parm_setup_block): If stack_parm is zero on entry, always
21847	make a new stack local.  Block move old stack parm if necessary
21848	to new aligned stack local.
21849	(assign_parm_setup_stack): Use a block move to handle
21850	potentially misaligned entry_parm.
21851	(assign_parms_unsplit_complex): Specify required alignment when
21852	creating stack local.
21853	* calls.c (compute_argument_addresses): Override alignment of stack
21854	arg calculated from its type with the alignment given by
21855	FUNCTION_ARG_BOUNDARY.
21856	(store_one_arg): Likewise.
21857
218582005-01-11  Jan Beulich  <jbeulich@novell.com>
21859
21860	* config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
21861	Change respective itanium_class attribute to ialu.
21862	(shladdp4_internal): New.
21863	* config/ia64/predicates.md (shladd_log2_operand): New.
21864
218652005-01-11  Richard Henderson  <rth@redhat.com>
21866
21867	* expr.c (store_constructor): Use rtvec_alloc instead of
21868	alloca+gen_rtvec_v, and an incorrect number passed to alloca.
21869
218702005-01-11  Kazu Hirata  <kazu@cs.umass.edu>
21871
21872	* config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
21873
218742005-01-11  Alan Modra  <amodra@bigpond.net.au>
21875
21876	* varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
21877	* config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
21878	(TARGET_RWRELOC): Define.
21879	(ia64_rwreloc_section_type_flags): Delete.
21880	(ia64_section_type_flags): New function.
21881	* config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
21882	(TARGET_RWRELOC): Define.
21883
218842005-01-10  David Mosberger  <davidm@hpl.hp.com>
21885
21886	PR target/18987
21887	* config/ia64/ia64.c (process_set): For alloc insn, only call
21888	process_epilogue is !frame_pointer_needed.
21889
218902005-01-10  Roger Sayle  <roger@eyesopen.com>
21891
21892	PR c++/19355
21893	* c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
21894	unary operator and can't be treated as a binary/comparison operator.
21895
218962005-01-10  Richard Henderson  <rth@redhat.com>
21897
21898	* config/i386/i386.c (ix86_function_value): Use type_natural_mode.
21899	(ix86_return_in_memory): Likewise.
21900	(function_arg_advance):  Likewise.  Mirror structure in function_arg
21901	for choosing register to advance.
21902
219032005-01-10  Kazu Hirata  <kazu@cs.umass.edu>
21904
21905	* tree-vectorizer.c, tree.def: Fix comment typos.
21906
219072005-01-10  Mark Dettinger  <dettinge@de.ibm.com>
21908
21909	* config/s390/s390.c (struct processor_costs): 4 new fields:
21910	ddbr, ddr, debr, der.
21911	(s390_rtx_costs): More precise handling of divide instructions.
21912
219132005-01-10  David Edelsohn  <edelsohn@gnu.org>
21914
21915	* config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.
21916
219172005-01-10  Jan Beulich  <jbeulich@novell.com>
21918
21919	* config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
21920	names resulting from -ffunction-sections/-fdata-sections and linkonce
21921	ones.
21922	* varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
21923	based on the section name. Rearrange the section name comparison logic
21924	slightly so that each section name is compared against at most once.
21925
219262005-01-10  Ben Elliston  <bje@au.ibm.com>
21927
21928	* doc/invoke.texi (Code Gen Options): Add PowerPC to the list of
21929	targets for which -fPIC reduces limitations on the GOT size.
21930
219312005-01-09  Falk Hueffner  <falk@debian.org>
21932
21933	* fold-const.c (fold): Also handle EXACT_DIV_EXPR when folding
21934	X/C1 cmpop C2.
21935
219362005-01-09  David Edelsohn  <edelsohn@gnu.org>
21937
21938	PR target/18720
21939	* collect2.c (main): Set aixrtl_flag for -brtl option.
21940	(resolve_lib_name): Search for .so file extension before .a
21941	if aixrtl_flag set.
21942
219432005-01-09  Dorit Naishlos  <dorit@il.ibm.com>
21944
21945	* tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
21946	(vect_analyze_data_refs_alignment): Add dump prints.
21947
219482005-01-09  Ira Rosen  <irar@il.ibm.com>
21949
21950	* tree-vectorizer.c (vect_analyze_offset_expr): Use
21951	expr_invariant_in_loop_p.
21952	Initialize outputs first thing in the function.
21953	(vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
21954	(vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
21955	(vect_analyze_pointer_ref_access): Check that the initial condition of
21956	the access function is loop invariant.
21957
219582005-01-09  Richard Henderson  <rth@redhat.com>
21959
21960	* config/i386/i386.c (bdesc_2arg): Update names for mmx_ prefixes.
21961	(ix86_expand_builtin): Likewise.  Frob MASKMOVQ wrt the input mem
21962	just like MASKMOVDQU.  Return plain zero for MMX_ZERO.
21963	* config/i386/i386.md (MMXMODEI, mov<MMXMODEI>,
21964	mov<MMXMODEI>_internal_rex64, mov<MMXMODEI>_internal, movv2sf,
21965	movv2sf_internal_rex64, movv2sf_internal, MMXMODE,
21966	movmisalign<MMXMODE>, mmx_pmovmskb, mmx_maskmovq, mmx_maskmovq_rex,
21967	sse_movntdi, addv8qi3, addv4hi3, addv2si3, mmx_adddi3, ssaddv8qi3,
21968	ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, subv4hi3, subv2si3,
21969	mmx_subdi3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
21970	mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
21971	sse2_umulsidi3, mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3,
21972	mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pinsrw,
21973	mmx_pextrw, mmx_pshufw, eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3,
21974	gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
21975	ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
21976	mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
21977	mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
21978	mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
21979	eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
21980	pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
21981	pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, pmulhrwv4hi3, pswapdv2si2,
21982	pswapdv2sf2): Move to mmx.md; rename as necessary with leading
21983	mmx_ prefix.
21984	(mmx_clrdi, pavgusb): Remove.
21985	(ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename
21986	with leading sse_ prefix.
21987	* config/i386/sse.md: Receive them.
21988	* config/i386/mmx.md: New file.
21989	(MMXMODE12, MMXMODE24, mmxvecsize): New.
21990	(subrv2sf3): Turn into expander for normal subtraction.
21991	(mmx_addv2sf3, mmx_mulv2sf3, mmx_smaxv2sf3, mmx_sminv2sf3,
21992	mmx_eqv2sf3, mmx_mulv4hi3, mmx_smulv4hi3_highpart,
21993	mmx_umulv4hi3_highpart, mmx_pmaddwd, mmx_pmulhrwv4hi3, sse2_umulsidi3,
21994	mmx_umaxv8qi3, mmx_smaxv4hi3, mmx_uminv8qi3, mmx_sminv4hi3): Mark
21995	commutative; use ix86_binary_operator_ok.
21996	(mmx_add<MMXMODEI>3, mmx_ssadd<MMXMODE12>3, mmx_usadd<MMXMODE12>3,
21997	mmx_sub<MMXMODEI>3, mmx_sssub<MMXMODE12>3, mmx_ussub<MMXMODE12>3
21998	mmx_ashr<MMXMODE24>3, mmx_lshr<MMXMODE23>3, mmx_ashl<MMXMODE24>3
21999	mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3,
22000	mmx_nand<MMXMODEI>3, mmx_ior<MMXMODEI>3, mmx_xor<MMXMODEI>3):
22001	Macroize from existing patterns; use ix86_binary_operator_ok.
22002	(mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
22003	(mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
22004	mmx_punpckhdq, mmx_punpckhdq, mmx_punpckldq): Likewise.  Model
22005	with vec_select+vec_concat.
22006	(mmx_pshufw, mmx_pshufw_1): Likewise.
22007	(mmx_uavgv8qi3): Merge pavgusb.  Model correcty.
22008	(mmx_uavgv4hi3): Model correctly.
22009	* config/i386/mmintrin.h (_mm_and_si64, _mm_andnot_si64, _mm_or_si64,
22010	_mm_xor_si64): Remove casts.
22011
220122005-01-09  Zdenek Dvorak  <dvorakz@suse.cz>
22013
22014	PR tree-optimization/19224
22015	* tree-scalar-evolution.c (get_instantiated_value,
22016	set_instantiated_value): New functions.
22017	(instantiate_parameters_1): Cache the results.
22018	(instantiate_parameters, resolve_mixers): Initialize and free
22019	the cache.
22020
220212005-01-08  David Edelsohn  <edelsohn@gnu.org>
22022
22023	* config/i386/i386.md (addhi_4): Correct reference in comment.
22024	(addqi_4): Same.
22025
220262005-01-08  Richard Henderson  <rth@redhat.com>
22027
22028	* config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
22029	(_mm_cvtsi128_si64x): Likewise.
22030	(_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
22031	_mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
22032	the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
22033	* config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
22034	* config/i386/i386-protos.h: Update.
22035	* config/i386/i386.c (print_operand): Add 'H'.
22036	(ix86_fixup_binary_operands): Split out from ...
22037	(ix86_expand_binary_operator): ... here.
22038	(ix86_fixup_binary_operands_no_copy): New.
22039	(ix86_expand_fp_absneg_operator): Handle vector mode results.
22040	(bdesc_2arg): Update names for sse{,2,3}_ prefixes.
22041	(ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
22042	(safe_vector_operand): Use CONST0_RTX.
22043	(ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
22044	(ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
22045	CODE_FOR_sse2_maskmovdqu.  Special case SSE version of MASKMOVDQU
22046	expansion.  Update names for sse{,2,3}_ prefixes.  Remove *maskncmp*
22047	special cases.
22048	* config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
22049	(IX86_BUILTIN_CMPNGESS): New.
22050	* config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
22051	(attr type): Add sselog1.
22052	(attr unit, attr memory): Handle it.
22053	(movti, movti_internal, movti_rex64): Move near other integer moves.
22054	(movtf, movtf_internal): Move near other fp moves.
22055	(SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
22056	vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
22057	movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal,
22058	movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
22059	sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
22060	sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
22061	sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
22062	mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
22063	rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
22064	sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3,
22065	sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3,
22066	sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3,
22067	vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
22068	smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
22069	cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
22070	cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
22071	vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
22072	vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
22073	sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
22074	sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
22075	cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
22076	cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
22077	cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
22078	cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
22079	ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
22080	subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
22081	smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
22082	sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
22083	sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
22084	sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3,
22085	gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
22086	ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
22087	ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
22088	sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw,
22089	sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
22090	sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
22091	sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq,
22092	sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
22093	sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
22094	sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
22095	mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
22096	addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
22097	movsldup, lddqu, loadddup, movddup): Move to sse.md.  Any with
22098	non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
22099	same time.
22100	(SSEPUSH, push<SSEPUSH>): Remove.
22101	(MMXPUSH, push<MMXPUSH>): Remove.
22102	(sse_movaps, sse_movaps_1, sse_movups): Remove.
22103	(sse2_movapd, sse2_movdqa, sse2_movq): Remove.
22104	(sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
22105	(sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
22106	(maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
22107	(maskncmpv2df3, vmmaskncmpv2df3): Remove.
22108	(ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
22109	(lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
22110	* config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
22111	(athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
22112	* config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
22113	(ppro_sse_log_V4SF_load): Similarly.  Handle sselog1.
22114	(ppro_sse_log_V4SF): Handle sselog1.
22115	* config/i386/predicates.md (const_0_to_1_operand): New.
22116	(const_0_to_255_mul_8_operand): New.
22117	(const_1_to_31_operand): Rename from const_int_1_31_operand.
22118	(const_2_to_3_operand, const_4_to_7_operand): New.
22119	* config/i386/sse.md: New file.
22120	(SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
22121	(sse_movups): Rename from sse_movups_1.
22122	(sse_loadlss): Rename from sse_loadss_1.
22123	(andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
22124	from the name.
22125	(negv4sf2): Use ix86_expand_fp_absneg_operator.
22126	(absv4sf2, negv2df, absv2df): New.
22127	(addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
22128	(subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
22129	iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
22130	smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
22131	umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
22132	(sse3_addsubv4sf3): Model correctly.
22133	sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
22134	sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
22135	(sse_movhlps): Model with vec_select+vec_concat.
22136	(sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup,
22137	sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
22138	sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
22139	sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
22140	sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
22141	sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw,
22142	sse2_pshufhw_1): Likewise.
22143	(neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
22144	(add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
22145	sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
22146	ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
22147	sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
22148	ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.
22149	(addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
22150	sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
22151	mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
22152	sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
22153	sminv8hi3): Mark commutative
22154	operands.  Use ix86_binary_operator_ok.
22155	(sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
22156	sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
22157	sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
22158	sse2_punpcklqdq): Allow operand2 in memory.
22159	(sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
22160	sse2_movsd): Add memory alternatives.
22161	(sse_storelps): Turn expander into an insn; split after reload.
22162	(sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
22163	(sse2_storehpd, sse2_storelpd): Add non-xmm outputs.
22164
221652005-01-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
22166
22167	* configure.ac (DWARF-2 debug_line): Use objdump.
22168	* configure: Regenerate.
22169
221702005-01-08  Jeff Law  <law@redhat.com>
22171	    Diego Novillo  <dnovillo@redhat.com>
22172
22173	PR tree-optimization/18241
22174	* tree-nrv.c (tree_nrv): Ignore volatile return values.
22175	* tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
22176	statements with volatile operands.
22177	* tree-ssa-operands.c (add_stmt_operand): Do add volatile
22178	operands after marking a statement with has_volatile_ops.
22179
221802005-01-08  Roger Sayle  <roger@eyesopen.com>
22181
22182	* tree.c (int_fits_type_p): Always honor integer constant
22183	TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.
22184
221852005-01-08  Roger Sayle  <roger@eyesopen.com>
22186
22187	* ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
22188	the latent bug in rtl_delete_block has been resolved.
22189
221902005-01-08  Richard Sandiford  <rsandifo@redhat.com>
22191
22192	* config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
22193	(MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.
22194
221952005-01-08  Richard Sandiford  <rsandifo@redhat.com>
22196
22197	* config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
22198	library as @multilib_dir@/$(SHLIB_SONAME).
22199
222002005-01-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
22201
22202	* configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
22203	* configure: Regenerate.
22204
222052005-01-07  Jakub Jelinek  <jakub@redhat.com>
22206
22207	* c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
22208	TYPE_MODE.
22209
222102005-01-07  David Edelsohn  <edelsohn@gnu.org>
22211
22212	PR target/13674
22213	* config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
22214	Convert non-word aligned offset address using ld/std into
22215	indirect address.
22216
222172005-01-07  Richard Henderson  <rth@redhat.com>
22218
22219	* config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.
22220
222212005-01-07  Richard SAndiford  <rsandifo@redhat.com>
22222
22223	* tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.
22224
222252005-01-07  Jakub Jelinek  <jakub@redhat.com>
22226
22227	PR tree-optimization/19283
22228	* fold-const.c (fold_widened_comparison): Return NULL if shorter_type
22229	is not shorter than the original type.
22230
22231	PR rtl-optimization/19012
22232	* config/i386/i386.md (addqi_1_slp): Set memory attribute.
22233
22234	PR rtl-optimization/18861
22235	* cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
22236	(FULL_STATE): Define.
22237	(mark_tablejump_edge): New function.
22238	(purge_dead_tablejump_edges): New function.
22239	(find_bb_boundaries): Use it.
22240
22241	PR tree-optimization/18828
22242	* builtins.c (expand_builtin_next_arg): Remove argument and all
22243	the argument checking.
22244	(expand_builtin): Adjust caller.
22245	(expand_builtin_va_start): Likewise.  Remove error for too many
22246	arguments.
22247	(fold_builtin_next_arg): Issue error for too many arguments.
22248	After checking arguments, replace them with magic arguments that
22249	prevent further checking of the args.
22250
222512005-01-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
22252
22253	* pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.
22254
222552005-01-06  Roger Sayle  <roger@eyesopen.com>
22256
22257	PR target/6077
22258	* gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
22259	and %{.S:...} (and their negative variants) to test whether the
22260	input file is assembler or pre-processed-assembler independent of
22261	the actual filename extension.
22262
222632005-01-06  Roger Sayle  <roger@eyesopen.com>
22264
22265	* simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
22266	of sign or zero extended values.
22267
222682005-01-06  Geoffrey Keating  <geoffk@apple.com>
22269
22270	* c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
22271	for IBM long double format correctly.
22272
222732005-01-06  Daniel Berlin <dberlin@dberlin.org>
22274
22275	Fix PR tree-optimization/18792
22276
22277	* tree-data-ref.c (build_classic_dist_vector): Change first_loop
22278	to first_loop_depth, and use loop depth instead of loop number.
22279	(build_classic_dir_vector): Ditto.
22280	(compute_data_dependences_for_loop): Use depth, not loop number.
22281	* tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop
22282	number. Pass in loops, instead of loop numbers.
22283	(gather_interchange_stats): Ditto.
22284	(linear_transform_loops): Ditto.
22285
222862005-01-06  Richard Sandiford  <rsandifo@redhat.com>
22287
22288	PR rtl-opt/13299
22289	* loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
22290	biv_fits_mode_p, extension_within_bounds_p): New functions.
22291	(check_ext_dependent_givs): Use them.
22292
222932005-01-06  Roger Sayle  <roger@eyesopen.com>
22294
22295	* cfgrtl.c (rtl_delete_block): A basic block may be followed by
22296	more than one barrier, in which case we should delete them all.
22297
222982005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
22299
22300	* gcc.c (process_command): Change year in 'gcc --version' to 2005.
22301
223022005-01-05  Daniel Berlin  <dberlin@dberlin.org>
22303
22304	Fix PR middle-end/19286
22305	Fix PR debug/19267
22306	* dwarf2out.c (gen_subprogram_die): If we've already tried to
22307	output this subprogram, simply ignore this attempt to do it again.
22308	(add_abstract_origin_attribute): Don't abort trying to add the abstract
22309	origin attribute if it's not possible.
22310	(gen_block_die): Don't ignore subblocks of "unused" blocks.
22311	(decls_for_scope): Ditto.
22312	* gimple-low.c (mark_blocks_with_used_subblocks): Remove.
22313	(mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
22314
223152005-01-05  Richard Henderson  <rth@redhat.com>
22316
22317	PR target/11327
22318	* config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
22319	(bdesc_2arg): Use it.
22320	(ix86_expand_binop_builtin): Force operands into registers
22321	when optimizing.
22322	(ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
22323	ix86_expand_sse_compare, ix86_expand_sse_comi,
22324	ix86_expand_builtin): Likewise.
22325
223262005-01-05  Richard Henderson  <rth@redhat.com>
22327
22328	* config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
22329	and VEC_SELECT.
22330	* config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
22331	(mulv4hi3): Set itanium_class mmmul.
22332	(fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
22333	(fpack): Rename from fpack_sfsf.
22334
223352005-01-05  Richard Henderson  <rth@redhat.com>
22336
22337	PR rtl-opt/10692
22338	* reload1.c (do_input_reload): Restrict the optimization deleteing
22339	a previous output reload to RELOAD_FOR_INPUT.
22340
223412005-01-05  Steven Bosscher  <stevenb@suse.de>
22342
22343	* combine.c (expand_compound_operation)  <ZERO_EXTRACT>: Add
22344	comment that we fall through after case.
22345	(mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
22346	(distribute_links): Likewise.
22347	* cse.c (cse_insn): Likewise.
22348	* cselib.c (cselib_invalidate_mem): Likewise.
22349	* df.c: Update comments at the top of the file.
22350	(read_modify_subreg_p): Update comments here too.
22351	(df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
22352	* flow.c (mark_set_1): Likewise.
22353	(mark_used_regs): Likewise.
22354	* gcse.c (mems_conflict_for_gcse_p): Likewise.
22355	(canon_list_insert): Likewise.
22356	(mark_set): Likewise.
22357	(try_replace_reg): Likewise.
22358	(store_killed_in_insn): Likewise.
22359	* loop.c (count_one_set): Likewise.
22360	(basic_induction_var): Likewise.
22361	* postreload-gcse.c (find_mem_conflicts): Likewise.
22362	* postreload.c (reload_combine_note_store): Likewise.
22363	(move2add_note_store): Likewise.
22364	* reload.c (find_equiv_reg): Likewise.
22365	(mark_referenced_resources): Likewise.
22366	* rtlanal.c (set_noop_p): Likewise.
22367	(note_stores): Likewise.
22368	(note_uses): Likewise.
22369	* sched-deps.c (sched_analyze_1): Likewise.
22370	* sched-rgn.c (check_live_1): Likewise.
22371	(update_live_1): Likewise.
22372	* config/i860/i860.c: Likewise.
22373
22374	* rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
22375	an lvalue.
22376	(ZERO_EXTRACT): Mention that this one can be an lvalue.
22377
22378	* doc/rtl.texi: Update documentation for bit-fields and SET.
22379
223802005-01-05  Roger Sayle  <roger@eyesopen.com>
22381
22382	* ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
22383
223842005-01-05  Jan Hubicka  <jh@suse.cz>
22385	    Richard Henderson  <rth@redhat.com>
22386
22387	PR target/18910
22388	* config/i386/i386.c (ix86_expand_move): Handle tls symbols
22389	with an offset.
22390
223912005-01-05  Richard Henderson  <rth@redhat.com>
22392
22393	PR target/12902
22394	* config/i386/i386.md (sse_movhps, sse_movlps): Remove.
22395	(sse_shufps): Change operand 3 to const_int_operand.
22396	(sse2_storelps): Fix typo in template.
22397	(sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
22398	* config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
22399	(ix86_expand_builtin): Likewise.
22400
224012005-01-05  Julian Brown  <julian@codesourcery.com>
22402
22403	* config/arm/arm.c (arm_return_in_memory): Treat complex types
22404	as aggregates for AAPCS ABIs.
22405
224062005-01-05  Stan Shebs  <shebs@apple.com>
22407
22408	* unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
22409	Mach-O getters if ppc64.
22410	* config/darwin.c (darwin_asm_output_dwarf_delta): Obey
22411	size argument.
22412	* config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
22413	signed four-byte field for global code case.
22414	(STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
22415
224162005-01-05  Roger Sayle  <roger@eyesopen.com>
22417
22418	PR middle-end/19100
22419	* c-common.c: Include real.h.
22420	(c_common_truthvalue_conversion): Avoid destructively modifying expr.
22421	Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
22422	Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
22423	* Makefile.in (c-common.o): Update dependencies.
22424
224252005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
22426
22427	* c-parse.in (asm_string): Add trailing semicolon.
22428
224292005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
22430
22431	* c-parse.in (asm_string): New.  Don't allow wide strings in
22432	'asm'.
22433	(simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
22434	asm_string instead of STRING.
22435
224362005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
22437
22438	* c-typeck.c (constructor_no_implicit): Remove.
22439	(set_designator, process_init_element): Don't check
22440	constructor_no_implicit.
22441
224422005-01-05  J"orn Rennecke <joern.rennecke@st.com>
22443	    Kaz Kojima  <kkojima@gcc.gnu.org>
22444
22445	PR target/16482
22446	* lcm.c (create_pre_exit): New.
22447	(optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
22448	ENTRY_EXIT_EXTRA to 3.  Use create_pre_exit.
22449
224502004-01-05  Richard Earnshaw  <rearnsha@arm.com>
22451
22452	* arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
22453	-msoft-float in target_float_switch.
22454	* arm.c (arm_override_options): Fix processing of target_float_switch.
22455
224562004-01-05  Richard Earnshaw  <rearnsha@arm.com>
22457
22458	* arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
22459	preferencing.
22460
224612004-01-05  Uros Bizjak  <uros@kss-loka.si>
22462
22463	* doc/invoke.texi (Intel 386 and AMD x86-64 Options):
22464	Replace i387 with 'i386 compiler' in -mfpmath=sse option.
22465
224662005-01-04  Roger Sayle  <roger@eyesopen.com>
22467
22468	* ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
22469	if deleting the then-block allows the test-block to fallthru to the
22470	else-block.
22471
224722005-01-04  Andrew Pinski  <pinskia@physics.uc.edu>
22473
22474	PR c/19152
22475	* c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
22476	after the full declaration if the are in two different TUs.
22477
224782005-01-04  Richard Henderson  <rth@redhat.com>
22479
22480	PR tree-opt/19158
22481	* tree-sra.c (generate_one_element_init): Just
22482	call gimplify_and_add.
22483	(generate_element_init): Record the
22484	new referenced variables and mark them for renaming
22485	and split out to ...
22486	(generate_element_init_1): This.
22487	(scalarize_init): Don't call push_gimplify_context/
22488	pop_gimplify_context.
22489
224902005-01-04  Geoffrey Keating  <geoffk@apple.com>
22491
22492	* toplev.c (get_src_pwd): Handle failure of getpwd().
22493
224942005-01-04  Roger Sayle  <roger@eyesopen.com>
22495
22496	* fold-const.c (fold_single_bit_test): Delete unreachable handling
22497	of TRUTH_NOT_EXPR.
22498	(fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
22499	all the cases handled by it are inverted by invert_truthvalue.
22500
225012005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
22502
22503	* config/sparc/sparc.md (save_register_windowdi): Add missing mode.
22504	(save_register_windowsi): Likewise.
22505
225062005-01-04  Richard Henderson  <rth@redhat.com>
22507
22508	* tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
22509
225102005-01-04  Uros Bizjak  <uros@kss-loka.si>
22511
22512	PR middle-end/17767
22513	* cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
22514	any simplifications of vector mode comparison operators.
22515	* simplify-rtx.c (simplify_relational_operation): Fix variable name.
22516
225172005-01-04  Paolo Bonzini  <bonzini@gnu.org>
22518	    Devang Patel  <dpatel@apple.com>
22519
22520	PR tree-optimization/18308
22521	* tree-if-conv.c (add_to_dst_predicate_list): Gimplify
22522	the operands before creating a new expression.
22523	* dojump.c (do_jump): Make drop_through_label available
22524	for all cases.  Add expansion of COND_EXPR.
22525
225262005-01-04  Ira Rosen  <irar@il.ibm.com>
22527
22528	* tree-vectorizer.c (vect_analyze_offset_expr): Test for
22529	INTEGER_CST instead of TREE_CONSTANT.
22530	(vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
22531	instead of TREE_CONSTANT.
22532	(vect_analyze_pointer_ref_access): Test for INTEGER_CST
22533	instead of TREE_CONSTANT.
22534
225352005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
22536
22537	* tree-eh.c (replace_goto_queue): Return early if the queue is empty.
22538
225392005-01-04  Uros Bizjak  <uros@kss-loka.si>
22540
22541	PR target/19240
22542	* config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
22543	(*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
22544
225452005-01-03  Richard Henderson  <rth@redhat.com>
22546
22547	* fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
22548	(fold_convert_const_int_from_int, fold_convert_const_int_from_real,
22549	fold_convert_const_real_from_real): Split out from ...
22550	(fold_convert_const): ... here.
22551
225522005-01-03  Richard Henderson  <rth@redhat.com>
22553
22554	PR target/19235
22555	* config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
22556	(mov<MMXMODEI>_internal): Likewise.
22557	(movdf_nointeger): Prefer Y while not preferring, but allowing, x.
22558	Add V2SF case; use it for SSE1; don't use TI.
22559	(movdf_integer): Likewise.
22560	(mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.
22561
225622005-01-03  Ira Rosen  <irar@il.ibm.com>
22563
22564	* tree-vectorizer.c (vect_strip_conversions): New function.
22565	(vect_analyze_offset_expr): Call vect_strip_conversions. Add
22566	check for binary class.
22567
225682005-01-03  Daniel Berlin  <dberlin@dberlin.org>
22569
22570	Fix PR debug/17924
22571	Fix PR debug/19191
22572	* dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
22573	is a decl.
22574	* gimple-low.c (mark_blocks_with_used_vars): New function.
22575	(mark_blocks_with_used_subblocks): Ditto.
22576	(mark_used_blocks): Ditto.
22577	(pass_mark_used_blocks): New pass.
22578	* tree-inline.c: Include debug.h.
22579	(expand_call_inline): Call outlining_inline_function here.
22580	* tree-optimize.c (init_tree_optimization_passes): Add
22581	pass_mark_used_blocks.
22582	* tree-pass.h (pass_mark_used_blocks): New.
22583	* Makefile.in (tree-inline.o): Add debug.h dependency.
22584
225852005-01-03  Geoffrey Keating  <geoffk@apple.com>
22586
22587	* config/darwin.c (darwin_handle_weak_import_attribute): Permit
22588	VAR_DECLs to have weak_import attribute.
22589
22590	* config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
22591	'struct ucontext'.
22592
225932004-01-03  Steven Bosscher  <stevenb@suse.de>
22594
22595	* passes.c (rest_of_compilation): Don't run regmove if only
22596	flag_expensive_optimizations, require flag_regmove instead.
22597
225982005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
22599
22600	* config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
22601	register "sparc".
22602	* config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
22603	* config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
22604	* config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
22605	* config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
22606
226072005-01-03  Richard Henderson  <rth@redhat.com>
22608
22609	* config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
22610	(ia64_const_ok_for_letter_p): New.
22611	(ia64_const_double_ok_for_letter_p): New.
22612	(ia64_extra_constraint): New.
22613	(ia64_expand_vecint_compare): New.
22614	(ia64_expand_vcondu_v2si): New.
22615	(ia64_expand_vecint_cmov): New.
22616	(ia64_expand_vecint_minmax): New.
22617	(ia64_print_operand): Add 'v'.
22618	(ia64_preferred_reload_class): New.
22619	(ia64_vector_mode_supported_p): New.
22620	* config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
22621	(PREFERRED_RELOAD_CLASS): Move to function.
22622	(CONST_OK_FOR_LETTER_P): Move to function.
22623	(CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
22624	(CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
22625	(CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
22626	(EXTRA_CONSTRAINT): Move to function.
22627	* config/ia64/ia64.md: Include vect.md.
22628	(itanium_class): Add mmalua.
22629	(type): Handle it.
22630	* config/ia64/itanium1.md (1_mmalua): New.  Add it to bypasses.
22631	(1b_mmalua): New.
22632	* config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
22633	* config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
22634	CONST0_RTX.
22635	(const_int_2bit_operand): New.
22636	(fr_reg_or_0_operand): New.
22637	* config/ia64/ia64-modes.def: Add vector modes.
22638	* config/ia64/ia64-protos.h: Update.
22639	* config/ia64/vect.md: New file.
22640
226412005-01-03  Richard Henderson  <rth@redhat.com>
22642
22643	* simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
22644
226452005-01-03  Uros Bizjak  <uros@kss-loka.si>
22646
22647	PR target/19236
22648	* config/i386/i386.c (log1psf2): Change mode of operands[0,1]
22649	to SFmode.
22650	(log1pdf2): Change mode of operands[0,1] to DFmode.
22651
226522005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
22653
22654	* config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
22655	* config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
22656	* config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
22657	* config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
22658	SPARC_RELAXED_ORDERING.
22659
226602005-01-03  Richard Henderson  <rth@redhat.com>
22661	    Uros Bizjak  <uros@kss-loka.si>
22662
22663	PR target/14631
22664	* config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
22665	IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
22666	* config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
22667	handling.
22668	(*mmx_pinsrw, *sse2_pinsrw): New patterns.
22669	* config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
22670	const_pow2_1_to_128_operand): New predicates.
22671
226722005-01-02  Greg McGary  <greg@mcgary.org>
22673
22674	* tree-mudflap.c (mf_varname_tree): decl_printable_name handles
22675	anonymous decls.
22676	(mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
22677	object.  [ptr_type]: Remove unused variable.
22678	Remember nearest addressable array-element or record-component
22679	when checking bitfield components.  Tolerate empty BIND_EXPR.
22680
226812005-01-01  Richard Henderson  <rth@redhat.com>
22682
22683	* tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
22684	that don't narrow the value.  Fail for other conversions.
22685
226862005-01-01  Richard Henderson  <rth@redhat.com>
22687
22688	PR c/19031
22689	* c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
22690	* c-lang.c (finish_file): Don't do it here.
22691	* objc/objc-act.c (objc_finish_file): Likewise.
22692
22693	* cgraph.c (decl_assembler_name_equal): New.
22694	(cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
22695	(cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
22696	* cgraph.h (struct cgraph_varpool_node): Add next.
22697	(cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
22698	* varasm.c (assemble_alias): Mark the target as needed.
22699
227002005-01-01  Andrew Pinski  <pinskia@physics.uc.edu>
22701
22702	PR middle-end/19221
22703	* function.c (get_arg_pointer_save_area): Use entry_of_function
22704	instead of get_insns.
22705
227062005-01-01  Roger Sayle  <roger@eyesopen.com>
22707	    Andrew Pinski  <pinskia@physics.uc.edu>
22708	    James E. Wilson  <wilson@specifixinc.com>
22709
22710	PR rtl-optimization/12092
22711	* loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
22712	is zero.
22713
227142005-01-01  Roger Sayle  <roger@eyesopen.com>
22715	    Olivier Hainque  <hainque@act-europe.fr>
22716
22717	* tree.c (int_fits_type_p): A narrower type always fits in a
22718	wider one, except for negative values into unsigned types.
22719
227202005-01-01  Roger Sayle  <roger@eyesopen.com>
22721
22722	* tree.c (int_fits_type_p): Compare the result of force_fit_type
22723	with the original constant rather than require TREE_OVERFLOW.
22724
227252005-01-01  Steven Bosscher  <stevenb@suse.de>
22726
22727	PR middle-end/17544
22728	* c-decl.c (finish_function): If compiling C99, annotate the
22729	compiler generated return with the current file name and line 0.
22730	* tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
22731	the source line is greater than 0.
22732	(remove_bb): Likewise.
22733