12008-07-28  Richard Guenther  <rguenther@suse.de>
2
3	Merge with mainline @138201.
4
5	* configure.ac (ACX_PKGVERSION): Update revision merge string.
6	* configure: Regenerate.
7
82008-07-27  Jakub Jelinek  <jakub@redhat.com>
9
10	* omp-low.c (expand_omp_atomic_fetch_op): Fix a merge glitch.
11
122008-07-27  Andrew Pinski  <andrew_pinski@playstation.sony.com>
13
14	* config/spu/spu.c (spu_gimplify_va_arg_expr): Unshare the args
15	and skip trees.
16
172008-07-27  Richard Guenther  <rguenther@suse.de>
18
19	* tree-eh.c (lookup_expr_eh_region): Do not allocate a tree
20	annotation.
21	* tree-dfa.c (create_tree_common_ann): Set eh region to -1.
22	* tree-flow.h (struct tree_ann_common_d): Reorder rn member
23	to pack with type.
24
252008-07-26  Richard Guenther  <rguenther@suse.de>
26
27	Merge with mainline @138159.
28
29	* configure.ac (ACX_PKGVERSION): Update revision merge string.
30	* configure: Regenerate.
31
322008-07-26  Richard Guenther  <rguenther@suse.de>
33
34	* gimple.h (CALL_STMT_CANNOT_INLINE_P): Remove.
35
362008-07-26  Jan Hubicka  <jh@suse.cz>
37
38	* ipa-inline.c (cgraph_decide_inlining_of_small_function): Use
39	gimple_call_set_cannot_inline.
40	(cgraph_decide_inlining): Likewise.
41	(cgraph_decide_inlining_incrementally): Likewise.
42
432008-07-26  Richard Guenther  <rguenther@suse.de>
44
45	Merge with mainline @138092.
46
47	* configure.ac (ACX_PKGVERSION): Update revision merge string.
48	* configure: Regenerate.
49
502008-07-26  Richard Guenther  <rguenther@suse.de>
51
52	Merge with mainline @138091.
53
542008-07-25  Richard Guenther  <rguenther@suse.de>
55
56	* config/ia64/ia64.c (ia64_gimplify_va_arg): Unshare valist
57	before reusing it.
58
592008-07-25  Andreas Krebbel  <krebbel1@de.ibm.com>
60
61	* tree-tailcall.c (process_assignment): Prevent tail call
62	optimization if the modes of the return types don't match.
63
642008-07-24  Aldy Hernandez  <aldyh@redhat.com>
65
66	* tree-inline.c (expand_call_inline): Allow casts in assert.
67
682008-07-24  Richard Guenther  <rguenther@suse.de>
69
70	PR middle-end/36885
71	* tree.c (walk_tree_1): Also walk CHANGE_DYNAMIC_TYPE_EXPR operands.
72	* gimple.c (gss_for_code): GIMPLE_CHANGE_DYNAMIC_TYPE is GSS_WITH_OPS.
73	* gsstruct.def (GSS_CHANGE_DYNAMIC_TYPE): Remove.
74
752008-07-24  Richard Guenther  <rguenther@suse.de>
76
77	* tree-sra.c (sra_walk_expr): Also handle CONVERT_EXPR.
78	(sra_walk_gimple_assign): Correctly detect assigns we can handle.
79	* expr.c (expand_expr_real_1): Pass MOVE_NONTEMPORAL to
80	expand_assignment.
81
822008-07-23  Richard Guenther  <rguenther@suse.de>
83
84	* tree-ssa-dse.c (get_kill_of_stmt_lhs): Tuplify correct.
85	* gimple-pretty-print.c (dump_gimple_label): Dump non-local flag.
86	* tree.h (maybe_fold_stmt_addition): Declare.
87	* tree-ssa-ccp.c (maybe_fold_stmt_addition): Export.
88	(fold_gimple_assign): Return the new rhs instead of modifying the stmt.
89	(fold_stmt): Deal with that.
90	(fold_stmt_inplace): Only replace the rhs of a statement if
91	that has enough operand space to hold the new operands.
92	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Fix
93	POINTER_PLUS_EXPR handling.
94
952008-07-23  Richard Guenther  <rguenther@suse.de>
96
97	* tree-eh.c (record_in_goto_queue): Fix bootstrap with
98	--disable-checking.
99
1002008-07-23  Aldy Hernandez  <aldyh@redhat.com>
101
102	Merge with mainline @138071.
103
104	* configure.ac (ACX_PKGVERSION): Update revision merge string.
105	* configure: Regenerate.
106
1072008-07-23  Richard Guenther  <rguenther@suse.de>
108
109	* tree-eh.c (union treemple): Add tree * member.
110	(find_goto_replacement): Adjust.
111	(replace_goto_queue_cond_clause): Use the address of the
112	individual labels as unique identifier.
113	(replace_goto_queue_1): Use the statement as unique identifier
114	for GIMPLE_GOTO.
115	(record_in_goto_queue): Add checking.
116	(record_in_goto_queue_label): Adjust.
117	(maybe_record_in_goto_queue): Likewise.
118	(do_goto_redirection): Get leh_tf_state.
119	(lower_try_finally_nofallthru): Pass it.
120	(lower_try_finally_onedest): Likewise.
121	(lower_try_finally_copy): Likewise.
122	(lower_try_finally_switch): Likewise.
123
1242008-07-22  Aldy Hernandez  <aldyh@redhat.com>
125	    Jakub Jelinek  <jakub@redhat.com>
126
127	* gimplify.c (gimple_do_not_emit_location_p): New.
128	(gimple_set_do_not_emit_location): New.
129	(annotate_one_with_location): Do not annotate if
130	gimple_do_not_emit_location_p.
131	(gimplify_cond_expr): Do not optimize if the COND_EXPR and
132	GOTO_EXPR have different locations.
133	Do not emit location information for some GIMPLE_COND's.
134
1352008-07-22  Richard Guenther  <rguenther@suse.de>
136
137	* tree-ssa-ccp.c (ccp_fold): Use gimple_expr_type.
138	(fold_gimple_assign): Likewise.
139	* tree-inline.c (remap_gimple_op_r): Do not set TREE_BLOCK on
140	non-statements.  Recurse to copy_tree_body_r with NULL block.
141	(copy_phis_for_bb): Likewise.
142	* tree-cfg.c (move_stmt_op): Do not set TREE_BLOCK on
143	non-statements.
144
1452008-07-22  Diego Novillo  <dnovillo@google.com>
146	    Richard Guenther  <rguenther@suse.de>
147
148	* tree-ssa-dom.c (hashable_expr_equal_p): Do nothing if
149	either TYPE0 or TYPE1 is NULL.
150
1512008-07-21  Diego Novillo  <dnovillo@google.com>
152
153	* tree-ssa-alias-warnings.c (struct gimple_tree_map): New.
154	Change every use of struct tree_map to struct gimple_tree_map.
155	(gimple_tree_map_eq): New.
156	(gimple_tree_map_hash): New.
157	* tree-ssa-ccp.c (evaluate_stmt): Remove stale FIXME note.
158	* gimplify.c (gimplify_expr): Remove stale FIXME note.
159	* tree-ssa-pre.c: Remove stale references to GIMPLE_MODIFY_STMT.
160	* tree-vect-generic.c (expand_vector_operations_1): Change
161	FIXME tuples to NOTE.
162
1632008-07-21  Richard Guenther  <rguenther@suse.de>
164
165	* tree-ssa-phiprop.c (propagate_with_phi): Only look through
166	SSA_NAME copies.
167
1682008-07-21  Richard Guenther  <rguenther@suse.de>
169
170	* gimplify.c (gimplify_init_constructor): Clear TREE_SIDE_EFFECTS
171	on the remaining empty constructor.
172
1732008-07-21  Richard Guenther  <rguenther@suse.de>
174
175	* tree-ssa-ccp.c (fold_gimple_assign): Handle pointer conversions
176	like fold_stmt_r did.
177	* gimple-pretty-print.c (dump_gimple_cond): Place semicolons
178	where trunk did.
179	* tree-inline.c (copy_bb): Do not insert GIMPLE_NOPs.
180
1812008-07-21  Richard Guenther  <rguenther@suse.de>
182
183	PR tree-optimization/36826
184	* tree-ssa-pre.c (eliminate): Do not eliminate in unused
185	statements.
186
1872008-07-20  Richard Guenther  <rguenther@suse.de>
188
189	* gimple.h (gimple_expr_type): The expression type is always
190	the base type of an integral sub-type result type.
191	* tree-eh.c (replace_goto_queue_cond_clause): Copy the sequence
192	before handing it off to gsi_insert_seq_after.
193	* tree-sra.c (insert_edge_copies_seq): Make sure to not keep an
194	uninserted but marked for update sequence.
195
1962008-07-20  Richard Guenther  <rguenther@suse.de>
197
198	* gimple.c (DEFTREECODE): Add REALIGN_LOAD_EXPR.
199
2002008-07-19  Richard Guenther  <rguenther@suse.de>
201
202	* tree-ssa-sccvn.h (get_constant_value_id): Declare.
203	(vn_constant_eq_with_type): Make sure an integral type is
204	never equal to a non-integral type.
205	(vn_hash_constant_with_type): Adjust.
206	* tree-ssa-sccvn.c (get_constant_value_id): New function.
207	* tree-ssa-pre.c (get_expr_value_id): For newly created
208	constant value-ids make sure to add the expression to its
209	expression-set.
210
2112008-07-18  Jakub Jelinek  <jakub@redhat.com>
212
213	* gimple.c (gimple_regimplify_operands): Moved to...
214	* gimplify.c (gimple_regimplify_operands): ... here.  Rework using
215	lower_omp_1 regimplification code, if regimplified LHS of
216	GIMPLE_ASSIGN or GIMPLE_CALL requires simpler RHS, create a temporary.
217	* omp-low.c (gimple_regimplify_operands): Use
218	gimple_regimplify_operands.
219
2202008-07-18  Richard Guenther  <rguenther@suse.de>
221
222	* tree-ssa-reassoc.c (get_rank): For single rhs process its
223	operands.
224
2252008-07-18  Richard Guenther  <rguenther@suse.de>
226
227	* tree-ssa-loop-niter.c (expand_simple_operations): Expand
228	as much as trunk does.
229	* tree-ssa-sccvn.c (simplify_binary_expression): For comparisons
230	always expand the first operand.
231
2322008-07-18  Jakub Jelinek  <jakub@redhat.com>
233
234	* gimple-pretty-print.c (dump_gimple_cond): Print a semicolon if
235	goto or else goto has been printed.
236	(dump_gimple_goto): Print as goto instead of gimple_goto, print
237	a semicolon at the end.
238	(dump_gimple_asm): Print a semicolon at the end.
239
240	* gimplify.c (gimplify_cond_expr): If COND_EXPR has both non-trivial
241	THEN and ELSE statements and the THEN sequence can't fallthru, avoid
242	adding label_cont and jump to it.
243
2442008-07-18  Aldy Hernandez  <aldyh@redhat.com>
245
246	* Makefile.in.  Remove TREE_GIMPLE_H definition.
247	Rename all TREE_GIMPLE_H uses to GIMPLE_H.
248	Depend on tree-iterator.h when necessary.
249	* tree-into-ssa.c: Include gimple.h instead of tree-gimple.h.
250	* tree-complex.c: Same.
251	* cgraphbuild.c: Same.
252	* cgraph.c: Same.
253	* builtins.c: Same.
254	* tree-ssa-sccvn.c: Same.
255	* tree-ssa-copyrename.c: Same.
256	* tree-nomudflap.c: Same.
257	* tree-call-cdce.c: Same.
258	* ipa-pure-const.c: Same.
259	* ipa-utils.c: Same.
260	* tree-ssa-alias.c: Same.
261	* tree-ssa-sink.c: Same.
262	* langhooks.c: Same.
263	* function.c: Same.
264	* ipa-type-escape.c: Same.
265	* tree-affine.c: Same.
266	* c-typeck.c: Same.
267	* tree-dfa.c: Same.
268	* tree-ssa-pre.c: Same.
269	* tree-sra.c: Same.
270	* c-omp.c: Same.
271	* tree-ssa-dce.c: Same.
272	* tree-nested.c: Same.
273	* tree-ssa.c: Same.
274	* tree-inline.c: Same.
275	* tree-iterator.c: Same.
276	* c-gimplify.c: Same.
277	* tree-vect-generic.c: Same.
278	* tree-flow.h: Same.
279	* tree-ssa-structalias.c: Same.
280	* ipa-struct-reorg.c: Same.
281	* tree-ssa-reassoc.c: Same.
282	* config/alpha/alpha.c: Same.
283	* config/s390/s390.c: Same.
284	* config/m32c/m32c.c: Same.
285	* config/spu/spu.c: Same.
286	* config/sparc/sparc.c: Same.
287	* config/i386/i386.c: Same.
288	* config/sh/sh.c: Same.
289	* config/xtensa/xtensa.c: Same.
290	* config/stormy16/stormy16.c: Same.
291	* config/ia64/ia64.c: Same.
292	* config/rs6000/rs6000: Same.
293	* config/mips/mips.c: Same.
294	* varpool.c: Same.
295	* cgraphunit.c: Same.  Include tree-iterator.h
296	* tree-mudflap.c: Same.
297	* gimplify.c: Same.
298	* c-decl.c: Same.
299	* omp-low.c: Same.
300	* c-semantics: Same.
301	* gimple-low.c: Same.
302	* tree-gimple.c: Merge contents into...
303	* gimple.c: ...here.
304	* tree-gimple.h: Merge contents into...
305	* gimple.h: ...here.
306
3072008-07-17  Jakub Jelinek  <jakub@redhat.com>
308
309	* omp-low.c (expand_omp_atomic_pipeline): Call
310	force_gimple_operand_gsi on RHS for IADDR initialization.
311
312	* gimplify.c (gimplify_cond_expr): Push statements in between
313	gimple_push_condition and gimple_pop_condition into a new
314	gimple_seq, append it after gimple_pop_condition cleanups.
315
3162008-07-17  Richard Guenther  <rguenther@suse.de>
317
318	* tree-complex.c (init_dont_simulate_again): Handle
319	{REAL,IMAG}PART_EXPR correctly.
320	* gimple-pretty-print.c (dump_unary_rhs): Dump VIEW_CONVERT_EXPR
321	and ASSERT_EXPR the same way as on trunk.
322	* tree-ssa-dom.c (initialize_hash_element): Do not record
323	the type for single rhs assigns.
324	(hashable_expr_equal_p): Deal with NULL types.
325	(eliminate_redundant_computations): Use print_gimple_expr.
326	* tree-vrp.c (stmt_interesting_for_vrp): Fix builtin call check.
327	(vrp_visit_stmt): Likewise.
328	* tree-ssa-forwprop.c (simplify_gimple_switch): Fix typo.
329
3302008-07-16  Richard Guenther  <rguenther@suse.de>
331
332	PR tree-optimization/36792
333	* tree-ssa-pre.c (get_or_alloc_expr_for): Handle unary
334	expressions inserted by SCCVN.
335	(do_SCCVN_insertion): Adjust comment.
336	(execute_pre): Allow insertion for FRE again.
337
338	* tree-ssa-sccvn.c (simplify_unary_expression): Deal with
339	the GIMPLE_SINGLE_RHS statemens we get.
340	(init_scc_vn): Init VN_INFO->expr to NULL.
341
3422008-07-16  Richard Guenther  <rguenther@suse.de>
343
344	Revert
345	2008-07-16  Richard Guenther  <rguenther@suse.de>
346	* tree-ssa-pre.c (get_constant_for_value_id): Only hand out
347	constants of the correct type.
348	(fully_constant_expression): Pass the required type to
349	get_constant_for_value_id.
350
351	* tree-ssa-sccvn.h (vn_hash_constant_with_type): New function.
352	(vn_constant_eq_with_type): Likewise.
353	* tree-ssa-sccvn.c (vn_constant_eq): Use vn_constant_eq_with_type.
354	(get_or_alloc_constant_value_id): Use vn_hash_constant_with_type.
355	* tree-ssa-pre.c (pre_expr_eq): Use vn_constant_eq_with_type.
356	(pre_expr_hash): Use vn_hash_constant_with_type.
357	(get_representative_for): Use constants as their representative.
358	(fully_constant_expression): Use constant parts in expressions
359	directly.
360
3612008-07-15  Aldy Hernandez  <aldyh@redhat.com>
362
363	* tree-ssa-propagate.c (valid_gimple_expression_p): Remove.
364	* tree-ssa-propagate.h (valid_gimple_expression_p): Remove.
365	* tree-eh.c: Factor out common code in operation_could_trap_p and
366	stmt_could_throw_1_p into...
367	(operation_could_trap_helper_p): New.
368	* gimplify.c (gimplify_expr): Rephrase fixme.
369	* tree-mudflap.c: Remove fixme.
370
3712008-07-17  Jakub Jelinek  <jakub@redhat.com>
372
373	* tree-eh.c (collect_finally_tree): Call collect_finally_tree_1
374	with region as second argument for GIMPLE_TRY_FINALLY's cleanup.
375
376	* gimplify.c (gimplify_expr): Call gimple_try_set_catch_is_cleanup
377	for TRY_CATCH_EXPR.
378
3792008-07-16  Jakub Jelinek  <jakub@redhat.com>
380
381	* tree-gimple.c (is_gimple_reg_rhs): Don't check for CALL_EXPRs
382	with side-effects.
383	* gimple.c (extract_ops_from_tree): Remove assert.
384	* gimplify.c (is_gimple_reg_or_call_rhs): New function.
385	(rhs_predicate_for): Return it instead of is_gimple_reg_rhs.
386	(gimplify_expr): Handle is_gimple_reg_or_call_rhs.
387
388	* tree-ssa-threadedge.c (record_temporary_equivalences_for_stmts,
389	simplify_control_stmt_condition): Pass stmt instead of NULL as second
390	argument to simplify callback.
391
392	* tree-vect-patterns.c (vect_recog_pow_pattern): Don't call
393	gimple_call_set_lhs with lhs of last_stmt.
394	* tree-vect-transform.c (vectorizable_call): Build a new dummy
395	assignment, replace the call with it and move over stmt_info.
396
397	* tree-ssa-loop-niter.c (infer_loop_bounds_from_array): Use
398	is_gimple_assign instead of gimple_code () == GIMPLE_ASSIGN and
399	is_gimple_call instead of gimple_code () == GIMPLE_CALL.
400	* tree-ssa-propagate.c (update_call_from_tree, substitute_and_fold):
401	Likewise.
402	* tree-ssa-sccvn.c (visit_use): Likewise.
403	* tree-eh.c (stmt_could_throw_p): Likewise.
404	* tree-optimize.c (execute_fixup_cfg): Likewise.
405	* omp-low.c (check_omp_nesting_restrictions, scan_omp_1_stmt,
406	optimize_omp_library_calls): Likewise.
407	* tree-ssa-loop-im.c (movement_possibility, stmt_cost,
408	determine_invariantness_stmt): Likewise.
409	* tree-ssa-phiprop.c (phivn_valid_p, phiprop_insert_phi,
410	propagate_with_phi): Likewise.
411	* tree-ssa-ccp.c (get_default_value, surely_varying_stmt_p,
412	ccp_fold_builtin, gimplify_and_update_call_from_tree): Likewise.
413	* ipa-struct-reorg.c (is_result_of_mult, create_general_new_stmt):
414	Likewise.
415	* tree-ssa-coalesce.c (build_ssa_conflict_graph): Likewise.
416	* tree-object-size.c (alloc_object_size, call_object_size,
417	check_for_plus_in_loops): Likewise.
418	* tree-ssa.c (verify_ssa): Likewise.
419	* predict.c (expr_expected_value_1, tree_bb_level_predictions,
420	tree_estimate_probability): Likewise.
421	* tree-cfg.c (verify_stmt): Likewise.
422	* tree-ssa-loop-ch.c (should_duplicate_loop_header_p,
423	copy_loop_headers): Likewise.
424	* tree-ssa-ter.c (is_replaceable_p): Likewise.
425	* ipa-prop.c (ipa_count_arguments, ipa_compute_jump_functions):
426	Likewise.
427	* tree-ssa-dom.c (gimple_assign_unary_useless_conversion_p,
428	record_equivalences_from_stmt, optimize_stmt,
429	get_lhs_or_phi_result): Likewise.
430	* tree-ssa-sink.c (is_hidden_global_store): Likewise.
431	* tree-nrv.c (tree_nrv, execute_return_slot_opt): Likewise.
432	* value-prof.c (gimple_divmod_fixed_value,
433	gimple_mod_pow2, gimple_mod_subtract): Likewise.
434	* tree-predcom.c (name_for_ref, find_looparound_phi,
435	replace_ref_with, remove_name_from_operation): Likewise.
436	* tree-ssa-math-opts.c (is_division_by, execute_cse_reciprocals,
437	execute_cse_sincos, execute_convert_to_rsqrt): Likewise.
438	* tree-complex.c (expand_complex_move, expand_complex_operations_1):
439	Likewise.
440	* tree-outof-ssa.c (identical_copies_p): Likewise.
441	* tree-ssa-pre.c (is_exception_related): Likewise.
442	* tree-sra.c (scalarize_use, scalarize_copy): Likewise.
443	* tree-ssa-alias.c (count_uses_and_derefs, update_alias_info_1,
444	is_escape_site): Likewise.
445	* lambda-code.c (can_put_in_inner_loop,
446	cannot_convert_bb_to_perfect_nest): Likewise.
447	* tree-tailcall.c (find_tail_calls, eliminate_tail_call): Likewise.
448	* ipa-type-escape.c (look_for_casts_stmt, is_cast_from_non_pointer):
449	Likewise.
450	* tree-vect-transform.c (vectorizable_reduction): Likewise.
451	* tree-ssa-threadedge.c (record_temporary_equivalences_from_stmts):
452	Likewise.
453	* tree-ssa-phiopt.c (nt_init_block): Likewise.
454	* tree-ssa-structalias.c (find_func_aliases): Likewise.
455	* tree-ssa-forwprop.c (can_propagate_from,
456	forward_propagate_comparison, simplify_not_neg_expr,
457	simplify_gimple_switch, tree_ssa_forward_propagate_single_use_vars):
458	Likewise.
459	* tree-ssa-dce.c (eliminate_unnecessary_stmts): Likewise.
460	* tree-ssa-dse.c (get_kill_of_stmt_lhs, dse_possible_dead_store_p,
461	dse_optimize_stmt, execute_simple_dse): Likewise.
462	* tree-ssa-loop-ivopts.c (find_interesting_uses_op,
463	find_interesting_uses_stmt, rewrite_use_nonlinear_expr): Likewise.
464	* tree-vrp.c (stmt_overflow_infinity, vrp_stmt_computes_nonzero,
465	register_edge_assert_for_2, register_edge_assert_for,
466	find_assert_locations, check_all_array_refs,
467	remove_range_assertions, stmt_interesting_for_vrp, vrp_visit_stmt,
468	simplify_stmt_using_ranges): Likewise.
469	* tree-ssa-loop-prefetch.c (gather_memory_references): Likewise.
470	* tree-ssa-copy.c (may_propagate_copy_into_stmt,
471	propagate_tree_value_into_stmt): Likewise.
472	* tree-inline.c (copy_bb, expand_call_inline,
473	gimple_expand_calls_inline, fold_marked_statements): Likewise.
474
475	* tree-ssa-copyrename.c (rename_ssa_copies): Use
476	gimple_assign_ssa_name_copy_p.
477
478	* tree-ssa-forwprop.c (forward_propagate_addr_expr_1): Check
479	gimple_assign_rhs_code, type of rhs is TREE_TYPE (lhs), update
480	rhs_code.
481
4822008-07-16  Richard Guenther  <rguenther@suse.de>
483
484	* tree-ssa-pre.c (get_constant_for_value_id): Only hand out
485	constants of the correct type.
486	(fully_constant_expression): Pass the required type to
487	get_constant_for_value_id.
488
4892008-07-15  Aldy Hernandez  <aldyh@redhat.com>
490
491	Merge with mainline @137837.
492
493	* configure.ac (ACX_PKGVERSION): Update revision merge string.
494	* configure: Regenerate.
495
4962008-07-15  Jakub Jelinek  <jakub@redhat.com>
497
498	* common.opt (-fgimple-conversion=): Remove.
499
500	* tree-affine.c (aff_combination_expand): Tuplify.
501	* cfgexpand.c (gimple_assign_rhs_to_tree): Remove prototype.
502	* tree-outof-ssa.c (gimple_assign_rhs_to_tree): Likewise.
503	* tree-gimple.h (gimple_assign_rhs_to_tree): New prototype.
504
5052008-07-15  Aldy Hernandez  <aldyh@redhat.com>
506
507	* tree.h: Remove gimple_unreachable_1 prototype.
508
5092008-07-15  Aldy Hernandez  <aldyh@redhat.com>
510
511	* Makefile.in (gimple-dummy.o): Remove.
512	* gimple-dummy.c: Delete.
513	* tree-ssa-propagate.c (valid_gimple_expression_p): Change
514	gimple_unreachable to gcc_unreachable.
515	* tree-affine.c (aff_combination_expand): Same.
516	* tree-vect-transform.c (vectorizable_call): Same.
517
5182008-07-15  Richard Guenther  <rguenther@suse.de>
519
520	* gimplify.c (gimplify_expr): Gimplify an unused volatile load
521	properly.
522
5232008-07-15  Richard Guenther  <rguenther@suse.de>
524
525	* tree-ssa-pre.c: Tuplify.  Enable FRE and PRE.
526	(execute_pre): Disable SCCVN insertion even for FRE.
527	* tree-ssa-sccvn.h (copy_reference_ops_from_call): Declare.
528	* tree-ssa-sccvn.c (copy_reference_ops_from_call): Export.
529	(vn_get_expr_for): Handle more expression kinds.
530	(visit_reference_op_load): Properly set a value id for
531	inserted names.
532	(simplify_binary_expression): Use valid_gimple_rhs_p instead of
533	valid_gimple_expression_p.
534	(simplify_unary_expression): Likewise.
535	(process_scc): Clear the cached/simplified expressions at the
536	start of the iteration.
537	(free_scc_vn): Do not clear SSA_NAME_VALUE.
538	(run_scc_vn): Remove broken special case in printing VNs.
539	* tree-ssa-propagate.c (valid_gimple_rhs_p): Allow
540	gimple-min-invariants and SSA names.
541
5422008-07-14  Andreas Krebbel  <krebbel1@de.ibm.com>
543
544	* config/s390/s390.c: (s390_gimplify_va_arg) Unshare the args* tree.
545
5462008-07-14  Richard Guenther  <rguenther@suse.de>
547
548	* tree-ssa-math-opts.c (execute_cse_reciprocals): Process
549	SSA_NAME defs of calls.
550	* gimple-pretty-print.c (dump_unary_rhs): Do not prefix
551	CONSTRUCTOR with [constructor].
552
5532008-07-14  Aldy Hernandez  <aldyh@redhat.com>
554
555	* config/alpha/alpha.c (va_list_skip_additions): Change
556	GIMPLE_STMT_OPERAND to TREE_OPERAND.
557
5582008-07-14  Jakub Jelinek  <jakub@redhat.com>
559
560	* tree-vect-transform.c (vect_create_data_ref_ptr): Update comment.
561	* config/s390/s390.c (s390_va_start): Build MODIFY_EXPR instead of
562	GIMPLE_MODIFY_STMT.
563	(s390_gimplify_va_arg): Use gimplify_assign.
564	* config/sh/sh.c (sh_va_start): Build MODIFY_EXPR instead of
565	GIMPLE_MODIFY_STMT.
566	(sh_gimplify_va_arg_expr): Use gimplify_assign.
567	* config/sparc/sparc.c (sparc_gimplify_va_arg): Likewise.
568	* config/spu/spu.c (spu_va_start): Build MODIFY_EXPR instead of
569	GIMPLE_MODIFY_STMT.
570	(spu_gimplify_va_arg_expr): Use gimplify_assign.
571	* config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start):
572	Build MODIFY_EXPR instead of GIMPLE_MODIFY_STMT.
573	(xstormy16_gimplify_va_arg_expr): Likewise.  Use gimplify_assign.
574	* config/xtensa/xtensa.c (xtensa_va_start): Build MODIFY_EXPR
575	instead of GIMPLE_MODIFY_STMT.
576	(xtensa_gimplify_va_arg_expr): Use gimplify_assign.
577
5782008-07-14  Aldy Hernandez  <aldyh@redhat.com>
579
580	* config/alpha/alpha.c (va_list_skip_additions): Rename
581	GIMPLE_MODIFY_STMT to MODIFY_EXPR.
582	(alpha_va_start): Same.
583	(alpha_gimplify_va_arg_1): Use gimplify_assign.
584	(alpha_gimplify_va_arg): Same.
585	* config/frv/frv.c (frv_expand_builtin_va_start): Rename
586	GIMPLE_MODIFY_STMT to MODIFY_EXPR.
587	* config/ia64/ia64.c (ia64_gimplify_va_arg): Use gimplify_assign.
588	* config/alpha/mips.c (mips_va_start): Rename GIMPLE_MODIFY_STMT to
589	MODIFY_EXPR or use gimplify_assign when appropriate.
590	(mips_gimplify_va_arg_expr): Same.
591
5922008-07-14  Aldy Hernandez  <aldyh@redhat.com>
593
594	* config/rs6000/rs6000.c (rs6000_va_start): Change
595	GIMPLE_MODIFY_STMT to MODIFY_EXPR.
596	(rs6000_gimplify_va_arg): Use gimplify_assign.
597	Build GIMPLE_GOTO directly.
598
5992008-07-14  Aldy Hernandez  <aldyh@redhat.com>
600
601	* tree-dump.c (dequeue_and_dump): Remove GIMPLE_MODIFY_STMT case.
602	* tree-ssa-loop-niter.c (simplify_replace_tree): Remove GIMPLE_STMT_P
603	call.
604	* tree-pretty-print.c (dump_generic_node): Remove any references to
605	GIMPLE_MODIFY_STMT, GIMPLE_STMT_P, GIMPLE_TUPLE_P.
606	(op_prio): Same.
607	(op_symbol_code): Same.
608	* java/java-gimplify.c (java_gimplify_expr): Same.
609	(java_gimplify_modify_expr): Same.
610	* java/java-tree.h: Rename GENERIC_NEXT to TREE_CHAIN.
611	* tree-tailcall.c (find_tail_calls): Update comment.
612	* tree.c (tree_code_class_string): Remove "gimple_stmt".
613	(tree_node_kind): Remove "gimple statments".
614	(tree_code_size): Remove tcc_gimple_stmt.
615	(make_node_stat): Same.
616	(copy_node_stat): Remove any references to
617	GIMPLE_MODIFY_STMT, GIMPLE_STMT_P, GIMPLE_TUPLE_P, tcc_gimple_stmt,
618	TS_GIMPLE_STATEMENT, GENERIC_TREE_OPERAND, GENERIC_TREE_TYPE,
619	GIMPLE_TUPLE_HAS_LOCUS_P, GIMPLE_STMT_LOCUS, GIMPLE_STMT_BLOCK,
620	IS_GIMPLE_STMT_CODE_CLASS, GIMPLE_STMT_BLOCK.
621	(expr_align): Same.
622	(tree_node_structure): Same.
623	(build2_stat): Same.
624	(set_expr_locus): Same.
625	(walk_tree_1): Same.
626	(tree_block): Same.
627	(build_gimple_modify_stmt_stat): Remove.
628	(expr_location): Remove.
629	(set_expr_location): Remove.
630	(expr_hash_location): Remove.
631	(expr_locus): Remove.
632	(expr_filename): Remove.
633	(expr_lineno): Remove.
634	(generic_tree_operand): Remove.
635	(generic_tree_type): Remove.
636	* tree.h (tree_code_class): Remove tcc_gimple_stmt.
637	(IS_GIMPLE_STMT_CODE_CLASS): Remove.
638	(struct gimple_stmt): Remove.
639	(GIMPLE_STMT_CHECK): Remove.
640	(TREE_OPERAND_CHECK): Remove GIMPLE_TUPLE_P.
641	(TREE_CHAIN): Same.
642	(GIMPLE_STMT_OPERAND_CHECK): Remove.
643	(GIMPLE_STMT_OPERAND_CHECK): Remove.
644	(GIMPLE_STMT_P): Remove.
645	(GIMPLE_TUPLE_P): Remove.
646	(GIMPLE_TUPLE_HAS_LOCUS_P): Remove.
647	(GENERIC_TREE_OPERAND): Remove.
648	(GENERIC_TREE_TYPE): Remove.
649	(GENERIC_NEXT): Remove.
650	(IS_CONVERT_EXPR_CODE_P): Rename GENERIC_TREE_TYPE to TREE_TYPE.
651	(MOVE_NONTEMPORAL): Remove GIMPLE_MODIFY_STMT_CHECK.
652	Remove GIMPLE_STMT_OPERAND, GIMPLE_STMT_LOCUS, GIMPLE_STMT_BLOCK.
653	(EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_HAS_LOCATION, EXPR_LOCUS,
654	EXPR_FILENAME, EXPR_LINENO): Do ont call functions.
655	(CAN_HAVE_LOCATION_P): Remove GIMPLE_STMT_P.
656	(union tree_node): Remove gstmt.
657	(build_gimple_modify_stmt*): Remove.
658	(expr_location, set_expr_location, expr_has_location,
659	expr_locus, expr_filename, expr_lineno, generic_tree_operand,
660	generic_tree_type): Remove.
661	* tree-scalar-evolution.c (follow_ssa_edge): Update comment.
662	(interpret_condition_phi): Same.
663	* gimple.h (gimplify_assign): New.
664	* builtins.c, fold-const.c, omp-low.c, tree-ssa-dse.c, tree-gimple.c,
665	tree-ssa-math-opts.c, tree-nrv.c, gimple-low.c, dwarf2out.c,
666	expr.c, tree-parloops.c, matrix-reorg.c, c-decl.c, tree-eh.c,
667	c-pretty-print.c, langhooks.c, function.c, tree-affine.c,
668	gimplify.c, tree.def, cfgexpand.c, tree-predcom.c, print-tree.c,
669	tree-ssa-ter.c, tree-ssa.c, tree-inline.c, gimple.c, gimple.h,
670	tree-cfg.c, config/i386/i386.c, stmt.c, tree-ssa-operands.c)
671	Remove any references to
672	GIMPLE_MODIFY_STMT, GIMPLE_STMT_P, GIMPLE_TUPLE_P, tcc_gimple_stmt,
673	TS_GIMPLE_STATEMENT, GENERIC_TREE_OPERAND, GENERIC_TREE_TYPE,
674	GIMPLE_TUPLE_HAS_LOCUS_P, GIMPLE_STMT_LOCUS, GIMPLE_STMT_BLOCK,
675	IS_GIMPLE_STMT_CODE_CLASS, GIMPLE_STMT_BLOCK.
676	Call gimplify_assign or generate a GIMPLE_ASSIGN directly when
677	appropriate.
678
6792008-07-14  Jakub Jelinek  <jakub@redhat.com>
680
681	* cfgexpand.c (gimple_cond_pred_to_tree): New function.
682	(gimple_to_tree) <case GIMPLE_COND>: Use it.
683	(release_stmt_tree): New function.
684	(expand_gimple_cond): Call just gimple_cond_pred_to_tree
685	instead of gimple_to_tree, ggc_free pred before returning.
686	(expand_gimple_tailcall): Call release_stmt_tree.
687	(expand_gimple_basic_block): Call release_stmt_tree instead
688	of ggc_free.
689
690	* gimplify.c (internal_get_tmp_var, gimplify_decl_expr,
691	gimplify_init_ctor_eval, gimplify_target_expr): Call ggc_free
692	on the INIT_EXPR.
693
6942008-07-14  Richard Guenther  <rguenther@suse.de>
695
696	* tree-ssa-ccp.c (ccp_fold): Move ADDR_EXPR handing to
697	GIMPLE_SINGLE_RHS case.
698	* tree-ssa-ifcombine.c (ifcombine_iforif): Fix typo.
699
7002008-07-14  Jakub Jelinek  <jakub@redhat.com>
701
702	* system.h (CONST_CAST2): Avoid using a union for all GCCs <= 4.0.x.
703
7042008-07-12  Diego Novillo  <dnovillo@google.com>
705
706	* tree-loop-distribution.c: Tuplify.
707	* tree-ssa-propagate.c (substitute_and_fold): Remove
708	stale FIXME tuples note.
709
7102008-07-11  Jakub Jelinek  <jakub@redhat.com>
711
712	* tree-dump.c (dump_options): Don't set TDF_RHS_ONLY for -all.
713
714	* omp-low.c (lower_omp_1): Only use rhs_predicate_for if
715	GIMPLE_SINGLE_RHS.
716
717	* tree-vect-analyze.c (vect_determine_vectorization_factor): Handle
718	GIMPLE_CALL with non-NULL lhs.
719	(vect_build_slp_tree): Likewise.  Fix reversed check for references.
720	* tree-vectorizer.c (stmt_vec_info_htab, stmt_vec_info_eq,
721	stmt_vec_info_hash, init_stmt_vec_info_htab,
722	free_stmt_vec_info_htab): Remove.
723	(stmt_vec_info_vec): New variable.
724	(init_stmt_vec_info_vec, free_stmt_vec_info_vec): New functions.
725	(new_loop_vec_info): Clear stmt uid before calling
726	set_vinfo_for_stmt.
727	(vect_is_simple_use): Handle GIMPLE_CALL with non-NULL lhs.
728	(vectorize_loops): Call {init,free}_stmt_vec_info_vec instead of
729	{init,free}_stmt_vec_info_htab.
730	* tree-parloops.c (parallelize_loops): Likewise.
731	* tree-ssa-operands.c (get_expr_operands): Handle VEC_COND_EXPR.
732	* tree-vectorizer.h (stmt_vec_info_htab): Removed.
733	(init_stmt_vec_info_htab, free_stmt_vec_info_htab): Remove
734	prototypes.
735	(stmt_vec_info_vec): New extern decl.
736	(init_stmt_vec_info_vec, free_stmt_vec_info_vec): New prototypes.
737	(vinfo_for_stmt, set_vinfo_for_stmt): Rewritten using stmt uid
738	and vector instead of a hash table.
739	* tree-vect-patterns.c (vect_recog_pow_pattern): Request
740	a GIMPLE_CALL with non-NULL lhs instead of GIMPLE_ASSIGN.
741	(vect_pattern_recog_1): Use is_gimple_call instead of comparing
742	gimple_code with GIMPLE_CALL.
743	* gimple.c (gimple_rhs_class_table): Use GIMPLE_SINGLE_RHS for
744	DOT_PROD_EXPR and VEC_COND_EXPR.
745	* tree-vect-transform.c (vect_get_slp_vect_defs): Use gimple_get_lhs
746	instead of gimple_assign_lhs.
747	(get_initial_def_for_induction): Use build_int_cst even for
748	pointers.  Use POINTER_PLUS_EXPR for POINTER_TYPE_P (scalar_type).
749	(vect_get_vec_def_for_operand): Use is_gimple_call instead of
750	comparing gimple_code with GIMPLE_CALL.
751	(vectorizable_call): Likewise.  Use gimple_call_lhs instead of
752	gimple_assign_lhs.  Build a vector of arguments, use
753	gimple_build_call_vec.
754	(vect_get_vec_def_for_stmt_copy): Use gimple_get_lhs.
755	(vectorizable_live_operation): Handle GIMPLE_SINGLE_RHS operands.
756
7572008-07-11  Doug Kwan  <dougkwan@google.com>
758
759	* gimple-dummy.c (vectorizable_induction, vectorizable_type_promotion,
760	vectorizable_type_demotion, vectorizable_conversion,
761	vectorizable_operation, vectorizable_assignment,
762	vectorizable_load, vectorizable_call, vectorizable_store,
763	vectorizable_condition, vectorizable_reduction,
764	vectorizable_live_operation, vectorizable_function,
765	vect_estimate_min_profitable_iters, vect_model_simple_cost,
766	vect_model_store_cost, vect_model_load_cost, vect_transform_loop):
767	Remove DUMMY_FNs.
768	* tree-ssa-loop.c (gate_tree_vectorize): Reenable vectorizer.
769	* tree-vectorizer.c (vect_is_simple_use): Fix handling of
770	GIMPLE_NOP.
771	* tree-vectorizer.h (vectorizable_load, vectorizable_store,
772	vectorizable_operation, vectorizable_type_promotion,
773	vectorizable_type_demotion, vectorizable_conversion,
774	vectorizable_assignment, vectorizable_call, vectorizable_condition,
775	vectorizable_live_operation, vectorizable_reduction,
776	vectorizable_induction): Adjust prototypes.
777	* tree-vect-transform.c (vectorizable_load, vectorizable_store,
778	vectorizable_operation, vectorizable_type_promotion,
779	vectorizable_type_demotion, vectorizable_conversion,
780	vectorizable_assignment, vectorizable_call, vectorizable_condition,
781	vectorizable_live_operation, vectorizable_reduction,
782	vectorizable_induction, vect_transform_stmt,
783	vect_create_data_ref_ptr, vect_create_addr_base_for_vector_ref,
784	vect_get_vec_def_for_operand, vect_init_vector,
785	vect_finish_stmt_generation, vect_create_epilog_for_reduction,
786	get_initial_def_for_reduction, cost_for_stmt,
787	vect_estimate_min_profitable_iters, vect_model_reduction_cost,
788	vect_cost_strided_group_size, vect_model_load_cost, bump_vector_ptr,
789	vect_get_constant_vectors, vect_get_slp_vect_defs,
790	vect_get_slp_defs, get_initial_def_for_induction,
791	vect_get_vec_def_for_stmt_copy, vect_get_vec_defs,
792	vectorizable_function, vect_gen_widened_results_half,
793	vect_permute_store_chain, vect_setup_realignment,
794	vect_permute_load_chain, vect_transform_strided_load,
795	vect_is_simple_cond, vect_build_loop_niters,
796	vect_generate_tmps_on_preheader, vect_update_ivs_after_vectorizer,
797	vect_do_peeling_for_loop_bound, vect_gen_niters_for_prolog_loop,
798	vect_do_peeling_for_alignment, vect_create_cond_for_align_checks,
799	vect_create_cond_for_alias_checks, vect_loop_versioning,
800	vect_remove_stores, vect_schedule_slp_instance,
801	vect_transform_loop): Tuplify.
802
8032008-07-10  Richard Guenther  <rguenther@suse.de>
804
805	* gimple.h (gimple_assign_ssa_name_copy_p): Declare.
806	(gimple_has_lhs): New function.
807	* gimple.c (gimple_assign_ssa_name_copy_p): New function.
808	* tree-ssa-copy.c (propagate_tree_value_into_stmt): Remove
809	redundant gimple_set_location call.
810	* gimple-iterator.c (gsi_remove): Do not free stmt operands.
811	* tree-ssa-structalias.c (find_func_aliases): Correctly let
812	all things with pointers escape.
813	* tree-pass.h (TDF_RHS_ONLY): New flag.
814	* diagnostic.h (print_gimple_expr): Declare.
815	* gimple-pretty-print.c (print_gimple_expr): New function.
816	(dump_gimple_assign): Dump the RHS as expression if TDF_RHS_ONLY.
817	(dump_gimple_call): Likewise.
818	(dump_gimple_cond): Likewise.
819	* tree-ssa-propagate.c (fold_predicate_in): Use print_gimple_expr.
820	* tree-ssa-sccvn.c (visit_use): Use gimple_has_lhs.
821	Use print_gimple_expr.  Handle tcc_expression correctly.
822
8232008-07-09  Jakub Jelinek  <jakub@redhat.com>
824
825	* gimplify.c (struct gimplify_ctx): Move to tree-gimple.h.
826	(push_gimplify_context): Don't allocate bind_expr_stack,
827	temp_htab nor c itself here.  Add c argument.
828	(pop_gimplify_context): Allow bind_expr_stack being NULL.  Check
829	c->temp_htab instead of optimize whether htab_delete should be called.
830	Don't free c.
831	(gimple_push_bind_expr): Create bind_expr_stack lazily.
832	(lookup_tmp_var): Create temp_htab lazily.
833	(gimplify_scan_omp_clauses, gimplify_omp_parallel, gimplify_omp_task,
834	gimplify_body, force_gimple_operand): Adjust push_gimplify_context
835	callers.
836	* omp-low.c (lower_omp_sections, lower_omp_single, lower_omp_master,
837	lower_omp_ordered, lower_omp_critical, lower_omp_for,
838	create_task_copyfn, lower_omp_taskreg, execute_lower_omp):
839	* tree-ssa-ccp.c (gimplify_and_update_call_from_tree): Likewise.
840	* tree-sra.c (generate_element_init): Likewise.
841	* tree-mudflap.c (execute_mudflap_function_ops,
842	execute_mudflap_function_decls): Likewise.
843	* tree-inline.c (setup_one_parameter, optimize_inline_calls): Likewise.
844	* tree-gimple.h (struct gimplify_ctx): New type.
845	(push_gimplify_context): Adjust prototype.
846
847	* gimple.h (gimple_rhs_class_table): New extern decl.
848	(get_gimple_rhs_class): Change into inline.
849	* gimple.c (get_gimple_rhs_class): Removed.
850	(gimple_rhs_class_table): New variable.
851
8522008-07-09  Doug Kwan  <dougkwan@google.com>
853	    Diego Novillo  <dnovillo@google.com>
854
855	* tree-ssa-ccp.c (fold_stmt_r): Remove gcc_unreachable
856	call from COND_EXPR handler.
857	* tree-if-conv.c: Tuplify.
858	* gimple.c (gimple_could_trap_p_1): Factor out of ...
859	(gimple_could_trap_p): ... here.
860	Call it.
861	(gimple_assign_rhs_could_trap_p): New.
862	* gimple.h (gimple_assign_rhs_could_trap_p): Declare.
863	* tree-ssa-operands.c (get_expr_operands): Handle
864	COND_EXPR.
865
8662008-07-08  Jakub Jelinek  <jakub@redhat.com>
867
868	Merge with mainline @137633.
869
870	* configure.ac (ACX_PKGVERSION): Update revision merge string.
871	* configure: Regenerate.
872
8732008-07-08  Jakub Jelinek  <jakub@redhat.com>
874
875	* tree-cfg.c (remove_useless_stmts_cond): Avoid calling
876	fold_binary.
877
8782008-07-07  Jakub Jelinek  <jakub@redhat.com>
879
880	* gimple-pretty-print.c (dump_gimple_return): Don't print space
881	after return if return has no argument.
882	(dump_gimple_seq): Don't print newline after last statement in
883	the sequence.
884	(dump_gimple_fmt, dump_gimple_try, dump_gimple_omp_for,
885	dump_gimple_omp_single, dump_gimple_omp_sections,
886	dump_gimple_omp_block, dump_gimple_omp_critical,
887	dump_gimple_omp_parallel, dump_gimple_omp_task): Use
888	newline_and_indent after dump_gimple_seq instead of INDENT.
889	(dump_gimple_bind): Likewise.  If there are no bind vars, don't
890	print two newlines before the sequence, just one.
891	* tree-cfg.c (dump_function_to_file): Fix dumping lowered gimple
892	before CFG is built.
893
8942008-07-07  Diego Novillo  <dnovillo@google.com>
895
896	* tree-vrp.c (ssa_name_nonnegative_p): Tuplify.
897	(ssa_name_nonzero_p): Tuplify.
898	(extract_range_from_comparison): Tidy.
899	(vrp_evaluate_conditional_warnv_with_ops): Tidy.
900	(vrp_evaluate_conditional): Change STMT argument to gimple.
901	Update all users.
902	(simplify_stmt_for_jump_threading): Change WITHIN_STMT argument
903	to gimple.
904	Update all users.
905	(identify_jump_threads): Tidy.
906	* tree-tailcall.c (find_tail_calls): Remove stale FIXME note.
907	* tree.c (tree_node_structure): Likewise.
908	* tree.h (struct tree_base): Likewise.
909	(struct gimple_stmt): Likewise.
910	* builtins.c (expand_builtin_memcpy): Likewise.
911	(expand_builtin_memset_args): Likewise.
912	* tree-chrec.h (build_polynomial_chrec): Do not initialize VAL.
913	* tree-ssa-ccp.c (fold_stmt_r): Do not handle COND_EXPR.
914	(fold_stmt): Remove #if 0 code.
915	* tree-ssa-dom.c (EXTRA_DETAILS): Remove.
916	Update all users.
917	(hashable_expr_equal_p): Remove stale FIXME note.
918	(simplify_stmt_for_jump_threading): Convert WITHIN_STMT
919	argument to gimple.  Update all users.
920	* tree-ssa-propagate.c: Include gimple.h
921	(get_rhs): Remove.
922	(set_rhs): Remove.
923	(fold_predicate_in): Tuplify.
924	* Makefile.in (tree-ssa-propagate.o): Add dependency on
925	GIMPLE_H.
926	* tree-ssa-propagate.h (get_rhs, set_rhs): Remove.
927	* tree-parloops.c (create_parallel_loop): Remove FIXME
928	tuples note.
929	* tree-eh.c (lookup_stmt_eh_region): Remove FIXME tuples
930	editorial note.
931	* cfgexpand.c (gimple_to_tree): Likewise.
932	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Tidy.
933	Do not handle GIMPLE_BIND.
934	* tree-inline.c (remap_gimple_op_r): Remove stale FIXME notes.
935	* tree-optimize.c (execute_fixup_cfg): Likewise.
936	* tree-flow.h (struct tree_ann_common_d): Remove stale
937	FIXME tuples notes.
938	(tree_vrp_evaluate_conditional): Change last argument type to
939	gimple.  Update all users.
940	(thread_across_edge): Likewise.
941	* gimple.c (gimple_has_side_effects): If any argument has
942	TREE_SIDE_EFFECTS set, assert that S has volatile operands.
943	(gimple_rhs_has_side_effects): Likewise.
944	* gimple.h (gimple_phi_capacity): Remove stale FIXME tuples note.
945	* tree-cfg.c (group_case_labels): Remove FIXME tuples note.
946	Assert that the new size is smaller than the old size.
947	(remove_useless_stmts_warn_notreached): Remove #if 0 code.
948	(remove_useless_stmts_cond): Remove stale FIXME tuples note.
949	(remove_useless_stmts_1): Likewise.
950	(verify_types_in_gimple_assign): Likewise.
951	* passes.c (init_optimization_passes): Re-enable
952	pass_ipa_increase_alignment.
953	* tree-ssa-threadedge.c
954	(record_temporary_equivalences_from_stmts_at_dest):
955	Change SIMPLIFY to accept two arguments of type gimple.
956	Update all users.
957	(simplify_control_stmt_condition): Likewise.
958	(thread_accross_edge): Likewise.
959	* tree-ssa-operands.c (add_call_clobber_ops): Re-enable
960	calls to ipa_reference_get_not_read_globals and
961	ipa_reference_get_not_written_global.
962
9632008-07-07  Aldy Hernandez  <aldyh@redhat.com>
964
965	* tree-ssa-dom.c: Remove FIXME tuples.
966
9672008-07-07  Aldy Hernandez  <aldyh@redhat.com>
968
969	* tree-cfg.c (verify_types_in_gimple_assign): Remove
970	FIXME tuples.
971
9722008-07-04  Jakub Jelinek  <jakub@redhat.com>
973
974	* cfgexpand.c (gimple_to_tree) <case GIMPLE_CALL>: Copy
975	CALL_EXPR_VA_ARG_PACK.
976
977	* gimple.c (gimple_build_bind): Set gimple_bind_block rather
978	than gimple_block.
979	(gimple_copy) <case GIMPLE_BIND>: Don't unshare gimple_bind_block.
980
981	* gimple.h (GF_ASM_INPUT, GF_ASM_VOLATILE, GF_CALL_CANNOT_INLINE,
982	GF_CALL_FROM_TRUNK, GF_CALL_RETURN_SLOT_OPT, GF_CALL_TAILCALL,
983	GF_CALL_VA_ARG_PACK, GF_OMP_PARALLEL_COMBINED, GF_OMP_RETURN_NOWAIT,
984	GF_OMP_SECTION_LAST, GF_PREDICT_TAKEN): Change from static const ints
985	into enum values.
986	(struct gimple_statement_base): Move subcode after flags to make it
987	16-bit aligned.
988
989	* tree-ssa-structalias.c (find_func_aliases): Handle ADDR_EXPR
990	as GIMPLE_SINGLE_RHS instead of GIMPLE_UNARY_RHS.
991
992	* tree-ssa-operands.c (get_expr_operands): Don't handle
993	OMP_FOR, OMP_PARALLEL, OMP_TASK, OMP_SECTIONS and PREDICT_EXPR
994	here.
995
996	* gimple.def (GIMPLE_PREDICT): New.
997	* gimple.h: Update comment above GF_* flags.
998	(GF_PREDICT_TAKEN): New.
999	(gimple_build_predict): New prototype.
1000	(gimple_predict_predictor, gimple_predict_outcome,
1001	gimple_predict_set_predictor, gimple_predict_set_outcome): New
1002	inlines.
1003	* gimple.c (gss_for_code): Handle GIMPLE_PREDICT.
1004	(gimple_size, walk_gimple_op): Likewise.
1005	(gimple_build_predict): New function.
1006	* gimple-pretty-print.c (dump_gimple_stmt): Handle GIMPLE_PREDICT.
1007	* predict.c (tree_bb_level_predictions): Likewise.
1008	* cfgexpand.c (gimple_to_tree): Likewise.
1009	* tree-inline.c (estimate_num_insns): Likewise.
1010	* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise.
1011	* gimple-low.c (lower_stmt): Likewise.
1012	* tree-cfg.c (verify_types_in_gimple_seq_2): Likewise.
1013	(verify_types_in_gimple_stmt): Likewise.  Don't handle PREDICT_EXPR.
1014	* gimplify.c (gimplify_expr): Gimplify PREDICT_EXPR into
1015	GIMPLE_PREDICT.
1016	* expr.c (expand_expr_real): Don't handle PREDICT_EXPR.
1017
10182008-07-04  Aldy Hernandez  <aldyh@redhat.com>
1019
1020	* tree-ssa-forwprop.c (rhs_to_tree): Remove fixme.
1021	(forward_propagate_into_cond): Add comment.
1022	(forward_propagate_into_gimple_cond): Add comment.
1023	(forward_propagate_addr_expr_1): Enable optimization.
1024
10252008-07-04  David Edelsohn  <edelsohn@gnu.org>
1026
1027	Revert:
1028	* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Unshare t.
1029
1030	* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Unshare reg.
1031
10322008-07-03  David Edelsohn  <edelsohn@gnu.org>
1033
1034	* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Unshare t.
1035
10362008-07-03  Doug Kwan  <dougkwan@google.com>
1037
1038	* gimple-dummy.c (vectorizable_function): New dummy.
1039	(vect_pattern_recog): Remove dummy.
1040	* tree-vectorizer.h (vect_recog_func_ptr): Adjust types for tuples.
1041	* tree-vect-patterns.c (File): Re-enable all code.
1042	(widened_name_p): Tuplify.
1043	(vect_recog_temp_ssa_var): New.
1044	(vect_recog_dot_prod_pattern): Tuplify.
1045	(vect_recog_widen_mult_pattern): Same.
1046	(vect_recog_pow_pattern): Same.
1047	(vect_recog_widen_sum_pattern): Same.
1048 	(vect_pattern_recog_1): Tuplify. Factor out code to create SSA
1049	temporaries to vect_recog_temp_ssa_var.  Remove code for building
1050	assignment statement.
1051	(vect_pattern_recog): Tuplify.
1052
10532008-07-03  Janis Johnson  <janis187@us.ibm.com>
1054            David Edelsohn  <edelsohn@gnu.org>
1055
1056	* config/rs6000/rs6000.c (rs6000_va_start): Unshare valist.
1057	(rs6000_gimplify_va_arg): Unshare valist, reg, addr, ovf.
1058
10592008-07-03  Jakub Jelinek  <jakub@redhat.com>
1060
1061	* tree-inline.c (remap_gimple_op_r): Remap TREE_BLOCK of
1062	expressions.
1063
1064	* tree-switch-conversion.c (gen_inbound_check): Force RHS to be
1065        gimple operand.  Use fold_build* instead of build*.
1066	(build_arrays): Likewise.  Convert RHS to LHS's type.
1067
1068	* tree-switch-conversion.c (struct switch_conv_info): Change
1069	arr_ref_first and arr_ref_last to gimple.
1070	(check_range, check_final_bb, gather_default_values,
1071	build_constructors, build_one_array, build_arrays, gen_def_assign,
1072	fix_phi_nodes, gen_inbound_check, process_switch, do_switchconv):
1073	Tuplify.
1074	(create_temp_arrays): Formatting.
1075
1076	* gimple.h (gimple_try_set_kind): New inline function.
1077	* tree-eh.c (same_handler_p, optimize_double_finally,
1078	refactor_eh_r, refactor_eh): Tuplify.
1079	* passes.c (init_optimization_passes): Reenable pass_refactor_eh.
1080
10812008-07-02  Jakub Jelinek  <jakub@redhat.com>
1082
1083	* tree-parloops.c (struct reduction_info): Change reduc_stmt,
1084	reduc_phi, keep_res and new_phi field types to gimple.
1085	(struct elv_data): Add info field.
1086	(reduction_phi, loop_parallel_p, take_address_of,
1087	initialize_reductions, eliminate_local_variables_stmt,
1088	eliminate_local_variables, expr_invariant_in_region_p,
1089	separate_decls_in_region_name, separate_decls_in_region_stmt,
1090	create_phi_for_local_result, create_call_for_reduction_1,
1091	create_call_for_reduction, create_loads_for_reductions,
1092	create_final_loads_for_reduction, create_stores_for_reduction,
1093	create_loads_and_stores_for_name, separate_decls_in_region,
1094	canonicalize_loop_ivs, transform_to_exit_first_loop,
1095	create_parallel_loop, gen_parallel_loop,
1096	loop_has_vector_phi_nodes, parallelize_loops): Tuplify.
1097	* tree-cfg.c (gimple_duplicate_sese_tail): Tuplify.
1098	(move_block_to_fn): Don't call gsi_next after calling
1099	remove_phi_node.
1100
11012008-07-02  Aldy Hernandez  <aldyh@redhat.com>
1102	    Richard Guenther  <rguenther@suse.de>
1103
1104	* tree-ssa-forwprop.c (can_propagate_from): Exclude loads
1105        from decls explicitly.
1106	(gate_forwprop): Enable.
1107
11082008-07-02  Jakub Jelinek  <jakub@redhat.com>
1109
1110	* tree-vectorizer.h (vinfo_for_stmt): Use htab_find_slot_with_hash.
1111	(set_vinfo_for_stmt): Likewise.  If info is NULL, delete entry from
1112	hash table.
1113	* tree-vectorizer.c (stmt_vec_info_eq, stmt_vec_info_hash): New
1114	functions.
1115	(init_stmt_vec_info_htab): Use them instead of htab_hash_pointer
1116	and htab_eq_pointer.
1117	(free_stmt_vec_info): Free stmt_info only after set_vinfo_for_stmt
1118	call.
1119
1120	Merge with mainline @137346.
1121
1122	* configure.ac (ACX_PKGVERSION): Update revision merge string.
1123	* configure: Regenerate.
1124	* builtins.c (gimple_rewrite_call_expr): Fix -Wc++-compat and/or
1125	-Wcast-qual warnings.
1126	* gimple.c (gimple_alloc_stat, gimple_build_omp_for,
1127	gimple_range_check_failed, gimple_copy): Likewise.
1128	* tree-mudflap.c (mx_xfn_xform_decls): Likewise.
1129	* tree-nested.c (convert_nonlocal_reference_stmt,
1130	convert_local_reference_stmt): Likewise.
1131	* gimple-iterator.c (gsi_insert_before_without_update,
1132	gsi_insert_after_without_update): Likewise.
1133	* tree-ssa-loop-im.c (init_lim_data, get_lim_data,
1134	clear_lim_data): Likewise.
1135	* tree-ssa-sccvn.c (vn_nary_op_insert_stmt): Likewise.
1136	* tree-vrp.c (check_all_array_refs): Likewise.
1137	* value-prof.c (histogram_eq): Likewise.
1138	* cgraphbuild.c (record_reference): Don't handle OMP_PARALLEL
1139	and OMP_TASK here.
1140	(build_cgraph_edges): Handle GIMPLE_OMP_{PARALLEL,TASK}.
1141	* cgraph.c (cgraph_add_new_function): Call gimple_register_cfg_hooks
1142	instead of tree_register_cfg_hooks.
1143	* omp-low.c (finalize_task_copyfn): Ensure the new function's
1144	body is a gimple_seq with just GIMPLE_BIND in it.
1145	(scan_omp_1_stmt): Fix -Wc++-compat and/or -Wcast-qual warnings.
1146	* tree-cfg.c (move_stmt_op, have_similar_memory_accesses_1,
1147	ref_base_address_1): Likewise.
1148	(move_stmt_r): Handle gimple_block updating.
1149	* tree-ssa-alias.c (update_alias_info_1): Tuplify.
1150	(update_alias_info): Likewise.
1151	* tree-switch-conversion.c: Stub out temporarily.
1152
11532008-06-30  Aldy Hernandez  <aldyh@redhat.com>
1154
1155	* tree-ssa-forwprop.c: Remove obsolete comment.
1156	(get_prop_source_stmt): Wrap call to gimple_assign_lhs with a
1157	TREE_TYPE.
1158	(forward_propagate_comparison): Use build2 instead of
1159	fold_binary.
1160
11612008-06-27  Diego Novillo  <dnovillo@google.com>
1162
1163	* cfgexpand.c (gimple_assign_rhs_to_tree): Factor out of ...
1164	(gimple_to_tree): ... here.
1165	Update comments referring to mainline merge.
1166	* tree-ssa-ter.c: Tuplify.
1167	* tree-outof-ssa.c (gimple_assign_rhs_to_tree): Declare.
1168	(replace_use_variable): Call it.
1169	(rewrite_trees): Tuplify.
1170	(remove_ssa_form): Call it.
1171	* gimple.h: Tidy some formatting.
1172	* ipa-struct-reorg.c: Include gimple.h
1173	* Makefile.in (ipa-struct-reorg.o): Add dependency on
1174	GIMPLE_H.
1175
11762008-06-27  Richard Guenther  <rguenther@suse.de>
1177
1178	* tree-ssa-sccvn.c (vn_get_expr_for): New function.
1179	(vuses_to_vec): Tuplify.
1180	(copy_vuses_from_stmt): Likewise.
1181	(vdefs_to_vec): Likewise.
1182	(copy_vdefs_from_stmt): Likewise.
1183	(shared_vuses_from_stmt): Likewise.
1184	(copy_reference_ops_from_call): New function split out from
1185	copy_reference_ops_from_ref.
1186	(create_reference_ops_from_call): New function.
1187	(shared_reference_ops_from_call): Likewise.
1188	(get_def_ref_stmt_vuses): Tuplify.
1189	(vn_reference_lookup): Likewise.
1190	(vn_nary_op_lookup_stmt): New function.
1191	(vn_nary_op_insert_stmt): Likewise.
1192	(vn_phi_lookup): Tuplify.
1193	(vn_phi_insert): Likewise.
1194	(defs_to_varying): Likewise.
1195	(visit_unary_op): Likewise.
1196	(visit_binary_op): Likewise.
1197	(visit_reference_op_call): New function.
1198	(visit_reference_op_load): Tuplify.
1199	(visit_reference_op_store): Likewise.
1200	(visit_phi): Likewise.
1201	(stmt_has_constants): New function.
1202	(simplify_binary_expression): Tuplify.
1203	(simplify_unary_expression): Likewise.
1204	(try_to_simplify): Likewise.
1205	(visit_use): Likewise.
1206	(compare_ops): Likewise.
1207	(DFS): Likewise.
1208	(run_scc_vn): Likewise.
1209	* tree-ssa-sccvn.h (shared_vuses_from_stmt): Adjust prototype.
1210	(copy_vuses_from_stmt): Likewise.
1211	(vn_get_expr_for): Declare.
1212	(vn_nary_op_lookup_stmt): Likewise.
1213	(vn_nary_op_insert_stmt): Likewise.
1214	* tree-dfa.c (get_single_def_stmt): Tuplify.
1215	(get_single_def_stmt_from_phi): Likewise.
1216	(get_single_def_stmt_with_phi): Likewise.
1217	* tree-ssa-pre.c (do_SCCVN_insertion): Use vn_get_expr_for.
1218	(eliminate): Likewise.
1219	(execute_pre): Enable SCCVN.
1220	(gate_fre): Enable.
1221	* tree-flow.h (get_single_def_stmt): Adjust prototype.
1222	(get_single_def_stmt_from_phi): Likewise.
1223	(get_single_def_stmt_with_phi): Likewise.
1224	(vn_lookup_or_add_with_stmt): Likewise.
1225	(vn_lookup_with_stmt): Likewise.
1226	* gimple.c (gimple_fold): Fix.
1227	* tree-vn.c (vn_add): Disable call to add_to_value.
1228	(vn_add_with_vuses): Likewise.
1229	(vn_lookup_with_stmt): Tuplify.
1230	(vn_lookup_or_add_with_stmt): Likewise.
1231
12322008-06-27  Aldy Hernandez  <aldyh@redhat.com>
1233
1234	* gimple.c (gimple_cond_get_ops_from_tree): Handle TRUTH_NOT_EXPR.
1235
12362008-06-25  Diego Novillo  <dnovillo@google.com>
1237
1238	* gimple.h (enum gimple_rhs_class): Move from tree-gimple.h
1239	(struct gimple_statement_base): Change CODE field to 8
1240	bits.
1241	Change SUBCODE field to 16 bits.
1242	(gimple_set_subcode): Move to gimple.c.
1243	(gimple_subcode): Remove.
1244	(gimple_expr_type): Handle GIMPLE_ASSIGN, GIMPLE_CALL and
1245	GIMPLE_COND explicitly.
1246	Move earlier in the file.
1247	(gimple_expr_code): New.
1248	(gimple_omp_subcode): New.
1249	(gimple_omp_set_subcode): New.
1250	(gimple_omp_return_nowait_p): Call gimple_omp_subcode.
1251	(gimple_omp_section_last_p): Likewise.
1252	(gimple_omp_parallel_combined_p): Likewise.
1253	(gimple_assign_rhs_code): New.
1254	(gimple_assign_set_rhs_code): New.
1255	(gimple_assign_cast_p): Call gimple_assign_rhs_code.
1256	Handle VIEW_CONVERT_EXPR.
1257	(gimple_call_tail_p): Access subcode field directly.
1258	(gimple_call_cannot_inline_p): Likewise.
1259	(gimple_call_return_slot_opt_p): Likewise.
1260	(gimple_call_from_thunk_p): Likewise.
1261	(gimple_call_va_arg_pack_p): Likewise.
1262	(gimple_call_copy_flags): Likewise.
1263	(gimple_cond_code): Likewise.
1264	(gimple_cond_set_code): Likewise.
1265	(gimple_cond_make_false): Likewise.
1266	(gimple_cond_make_true): Likewise.
1267	(gimple_asm_volatile_p): Likewise.
1268	(gimple_asm_input_p): Likewise.
1269	(gimple_eh_filter_must_not_throw): Likewise.
1270	(gimple_eh_filter_set_must_not_throw): Likewise.
1271	(gimple_try_kind): Likewise.
1272	(gimple_try_catch_is_cleanup): Likewise.
1273	(gimple_wce_cleanup_eh_only): Likewise.
1274
1275	* tree-vrp.c (simplify_div_or_mod_using_ranges): Call
1276	gimple_assign_set_rhs_code instead of gimple_set_subcode.
1277	(simplify_abs_using_ranges): Likewise.
1278	* tree-complex.c (init_dont_simulate_again): Call
1279	gimple_expr_code instead of gimple_subcode.
1280	(complex_visit_stmt): Likewise.
1281	(expand_complex_move): Call gimple_assign_rhs_code
1282	instead of gimple_subcode.
1283	(expand_complex_operations_1): Likewise.
1284	* value-prof.c (gimple_divmod_fixed_value): Likewise.
1285	(gimple_mod_pow2): Likewise.
1286	(gimple_mod_subtract): Likewise.
1287	(gimple_divmod_values_to_profile): Likewise.
1288	* tree-ssa-alias-warnings.c (find_alias_site_helper):
1289	Call gimple_assign_cast_p.
1290	(already_warned_in_frontend_p): Likewise.
1291	* gimple.def: Add comments warning about code orderings.
1292	* omp-low.c (expand_omp_taskreg): Call gimple_omp_set_subcode.
1293	(expand_omp_atomic_fetch_op): Call gimple_assign_rhs_code.
1294	* tree-gimple.c (get_gimple_rhs_class): Move to gimple.c
1295	(get_gimple_rhs_num_ops): Likewise.
1296	(gimple_assign_rhs_code): Move to gimple.h.
1297	* tree-gimple.h (enum gimple_rhs_class): Move to gimple.h.
1298	* tree-ssa-ccp.c (fold_gimple_assign): Call
1299	gimple_assign_rhs_code instead of gimple_subcode.
1300	* tree-stdarg.c (va_list_counter_bump): Likewise.
1301	(check_all_va_list_escapes): Likewise.
1302	(execute_optimize_stdarg): Likewise.
1303	* tree-ssa-math-opts.c (is_division_by): Likewise.
1304	(replace_reciprocal): Likewise.
1305	(execute_cse_reciprocals): Likewise.
1306	(execute_convert_to_rsqrt): Likewise.
1307	* tree-ssa-dom.c (initialize_hash_element): Likewise.
1308	(simple_iv_increment_p): Likewise.
1309	(gimple_assign_unary_useless_conversion_p): Likewise.
1310	* tree-ssa-alias.c (is_escape_site): Call gimple_assign_cast_p.
1311	* predict.c (expr_expected_value_1): Call gimple_assign_rhs_code
1312	instead of gimple_subcode.
1313	* tree-eh.c (tree_could_trap_p): Call gimple_expr_code
1314	instead of gimple_subcode.
1315	* ipa-type-escape.c (is_array_access_through_pointer_and_index):
1316	Call gimple_assign_rhs_code instead of gimple_subcode.
1317	(check_assign): Likewise.
1318	* gimplify.c (gimplify_omp_parallel): Call gimple_omp_set_subcode
1319	instead of gimple_set_subcode.
1320	* tree-mudflap.c (mf_xform_derefs): Call gimple_assign_rhs_code
1321	instead of gimple_subcode.
1322	* tree-ssa-forwprop.c (get_prop_source_stmt): Likewise.
1323	(can_propagate_from): Likewise.
1324	(remove_prop_source_from_use): Likewise.
1325	(forward_propagate_addr_into_variable_array): Likewise.
1326	* tree-object-size.c (plus_stmt_object_size): Likewise.
1327	(collect_object_sizes_for): Likewise.
1328	(check_for_plus_in_loops_1): Likewise.
1329	(check_for_plus_in_loops): Likewise.
1330	* gimple.c (gimple_set_subcode): Move from gimple.h
1331	(gimple_check_failed): Access subcode field directly.
1332	(gimple_assign_single_p): Call gimple_assign_rhs_code
1333	instead of gimple_subcode.
1334	(gimple_assign_unary_nop_p): Likewise.
1335	(gimple_get_lhs): Change argument type to const_gimple.
1336	(gimple_could_trap_p): Call gimple_assign_rhs_code
1337	instead of gimple_subcode.
1338	(get_gimple_rhs_class): Move from tree-gimple.c.
1339	(get_gimple_rhs_num_ops): Likewise.
1340	* tree-ssa-structalias.c (update_alias_info): Call
1341	gimple_assign_rhs_code instead of gimple_subcode.
1342	(find_func_aliases): Likewise.
1343	* tree-ssa-threadedge.c (record_temporary_equivalences_from_phis):
1344	Likewise.
1345
13462008-06-25  Doug Kwan  <dougkwan@google.com>
1347
1348	* gimple-dummy.c: (vect_free_slp_tree) Remove dummy.
1349	(vect_analyze_loop): Same.
1350	(vectorizable_induction): New dummy.
1351	(vectorizable_type_promotion): Same.
1352	(vectorizable_type_demotion): Same.
1353	(vectorizable_conversion): Same.
1354	(vectorizable_operation): Same.
1355	(vectorizable_assignment): Same.
1356	(vectorizable_load): Same.
1357	(vectorizable_call): Same.
1358	(vectorizable_store): Same.
1359	(vectorizable_condition): Same.
1360	(vectorizable_reduction): Same.
1361	(vectorizable_live_operation): Same.
1362	(vect_estimate_min_profitable_iters): Same.
1363	(vect_model_simple_cost): Same.
1364	(vect_model_store_cost): Same.
1365	(vect_model_load_cost): Same.
1366	(vect_pattern_recog): Same.
1367	* tree-vectorizer.h (struct _stmt_vec_info): Change fields FIRST_DR
1368	and NEXT_DR from tree to gimple type.
1369	(vectorizable_load): Change type of parameter STMT to gimple.
1370	(vectorizable_store): Same.
1371	(vectorizable_operation): Same.
1372	(vectorizable_type_promotion): Same.
1373	(vectorizable_type_demotion): Same.
1374	(vectorizable_conversion): Same.
1375	(vectorizable_assignment): Same.
1376	(vectorizable_function): Same.
1377	(vectorizable_call): Same.
1378	(vectorizable_condition): Same.
1379	(vectorizable_live_operation): Same.
1380	(vectorizable_reduction): Same.
1381	(vectorizable_induction): Same.
1382	* tree-vect-analyze.c (File): Re-enable all previously disabled code.
1383	(vect_determine_vectorization_factor): Tuplify.
1384	(vect_analyze_operations): Same.
1385	(exist_non_indexing_operands_for_use_p): Same.
1386 	(vect_analyze_scalar_cycles_1): Same.
1387	(vect_insert_into_interleaving_chain): Same.
1388 	(vect_same_range_drs): Same.
1389 	(vect_compute_data_ref_alignment): Same.
1390	(vect_verify_datarefs_alignment): Same.
1391 	(vector_alignment_reachable_p): Same.
1392	(vect_enhance_data_refs_alignment): Same.
1393	(vect_analyze_group_access): Same.
1394	(vect_analyze_data_ref_access): Same.
1395	(vect_free_slp_tree): Same.
1396 	(vect_get_and_check_slp_defs): Same.
1397	(vect_build_slp_tree): Same.
1398 	(vect_print_slp_tree): Same.
1399 	(vect_mark_slp_stmts): Same.
1400	(vect_analyze_slp_instance): Same.
1401 	(vect_analyze_slp): Same.
1402 	(vect_detect_hybrid_slp_stmts): Same.
1403	(vect_analyze_data_refs): Same.
1404	(vect_mark_relevant): Same.
1405	(process_use): Same.
1406 	(vect_mark_stmts_to_be_vectorized): Same.
1407	(vect_can_advance_ivs_p): Same.
1408 	(vect_get_loop_niters): Same.
1409 	(vect_analyze_loop_form): Same.
1410
14112008-06-25  Diego Novillo  <dnovillo@google.com>
1412
1413	* tree-vectorizer.c (hash_gimple_stmt): Remove.
1414	(eq_gimple_stmt): Remove.
1415	(init_stmt_vec_info_htab): Use htab_hash_pointer and
1416	htab_eq_pointer for STMT_VEC_INFO_HTAB.
1417
14182008-06-24  Doug Kwan  <dougkwan@google.com>
1419
1420	* gimple-dummy.c (vect_set_verbosity_level): Remove.
1421	(vectorize_loops): Same.
1422	(vect_free_slp_tree): New dummy.
1423	(vect_analyze_loop): Same.
1424	(vect_transform_loop): Same.
1425	* tree-vectorize.c (hashtab.h): New include.
1426	(File): Re-enable all previously commented out code.
1427	(stmt_vec_info_htab): New var.
1428	(rename_variables_in_bb): Tuplify.
1429	(slpeel_update_phis_for_duplicate_loop): Same.
1430	(slpeel_update_phi_nodes_for_guard1): Same.
1431	(slpeel_update_phi_nodes_for_guard2): Same.
1432 	(slpeel_make_loop_iterate_ntimes): Same.
1433	(slpeel_tree_duplicate_loop_to_edge_cfg): Same.
1434 	(slpeel_add_loop_guard): Same.
1435	(slpeel_can_duplicate_loop_p): Same.
1436	(set_prologue_iterations): Same.
1437 	(find_loop_location): Same.
1438	(new_stmt_vec_info): Same.
1439	(hash_gimple_stmt): New function.
1440	(init_stmt_vec_info_htab): New function.
1441	(free_stmt_vec_info_htab): New function.
1442	(free_stmt_vec_info): Replace statement info with hash table entry.
1443	(new_loop_vec_info): Tuplify.
1444	(destroy_loop_vec_info): Same.
1445	(vect_supportable_dr_alignment): Same
1446	(vect_is_simple_use): Same.
1447	(supportable_widening_operation): Same.
1448	(supportable_narrowing_operation): Same.
1449	(report_vec_op): New function. Code factored out from ...
1450	(vect_is_simple_reduction): Call it. Tuplify.
1451	(vectorize_loops): Set up and tear down stmt_vec_info hash table.
1452	* tree-vectorizer.h (struct _slp_tree): Change statement fields
1453	(struct _loop_vec_info): Same.
1454	(struct _stmt_vec_info):
1455	(nested_in_vect_loop): Re-enable.
1456	(init_stmt_vec_info_htab): New prototype.
1457	(free_stmt_vec_info_htab): New prototype.
1458	(vinfo_for_stmt): Use hash table instead of statement info.
1459	(set_stmt_info): Remove.
1460	(set_vinfo_for_stmt): New inline.
1461	(is_pattern_stmt_p): Tuplify.
1462	(vect_is_simple_use): Tuplify prototype.
1463	(vect_is_simple_reduction): Same.
1464	(supportable_widening_operation): Same.
1465	(supportable_narrowing_operation): Same.
1466	(new_stmt_vec_info): Same.
1467	(free_stmt_vec_info): Same.
1468	Makefile.in (tree-vectorize.o): Add HASTAB_H dependency.
1469
14702008-06-22  Andrew Pinski  <pinskia@gmail.com>
1471
1472	* gimple-pretty-print.c (dump_binary_rhs): Print out MIN_EXPR and
1473	MAX_EXPR specially.
1474
14752008-06-20  Doug Kwan  <dougkwan@google.com>
1476
1477	* tree-loop-linear.c (File): Re-enable all previously disabled code.
1478	(gather_interchange_stats): Tuplify.
1479	(linear_transform_loops): Likewise.
1480	* gimple-dummy.c (get_type): Remove unused dummy.
1481	(ipa_add_method): Same.
1482	(ipa_callsite_callee): Same.
1483	(ipa_callsite_compute_count): Same.
1484	(ipa_callsite_compute_param): Same.
1485	(ipa_callsite_param): Same.
1486	(ipa_callsite_param_count): Same.
1487	(ipa_callsite_param_count_set): Same.
1488	(ipa_edges_create): Same.
1489	(ipa_edges_free): Same.
1490	(ipa_free): Same.
1491	(ipa_jf_get_info_type): Same.
1492	(ipa_method_compute_modify): Same.
1493	(ipa_method_compute_tree_map): Same.
1494	(ipa_method_formal_compute_count): Same.
1495	(ipa_method_formal_count): Same.
1496	(ipa_method_formal_count_set): Same.
1497	(ipa_method_get_tree): Same.
1498	(ipa_method_modify_print): Same.
1499	(ipa_method_tree_print): Same.
1500	(ipa_methodlist_init): Same.
1501	(ipa_methodlist_not_empty): Same.
1502	(ipa_node_create): Same.
1503	(ipa_nodes_create): Same.
1504	(ipa_nodes_free): Same.
1505	(ipa_remove_method): Same.
1506	(vec_set_verbosity_level): Same.
1507	* tree-ssa-loop.c (tree_linear_transform): Re-enable.
1508
15092008-06-19  Jan Hubicka  <jh@suse.cz>
1510
1511	* gimple.c (gimple_alloc): Annotate with MEM_STAT_INFO
1512	(gimple_build_with_ops): Likewise.
1513	(gimple_build_assign): Likewise.
1514	(gimple_build_assign_with_ops): Likewise.
1515	* gimple.h (gimple_build_assign, gimple_build_assign_with_ops):
1516	Annotate with MEM_STAT_INFO.
1517
15182008-06-17  Jan Hubicka  <jh@suse.cz>
1519
1520	* config/i386.c (ix86_gimplify_va_arg): Fix sharing issue.
1521
15222008-06-17  Jan Hubicka  <jh@suse.cz>
1523
1524	* gimplify.c (gimplify_modify_expr): Unshare only returned value when
1525	want_value is set instead of copying operands all the time.
1526
15272008-06-17  Diego Novillo  <dnovillo@google.com>
1528
1529	* tree-ssa-loop-niter.c (get_val_for): Fix FIXME note.
1530
15312008-06-17  Steven Bosscher  <stevenb.gcc@gmail.com>
1532
1533	* gimple-dummy.c (canonicalize_induction_variables): Remove dummy.
1534	(remove_empty_loops): Likewise.
1535	(tree_unroll_loops_completely): Likewise.
1536	* tree-ssa-ivcanon.c (tree_num_loop_insns): Replace bsi with gsi.
1537	(create_canonical_iv): Convert to tuples.
1538	(try_unroll_loop_completely): Likewise.
1539	(empty_loop_p): Likewise.
1540	(remove_empty_loop): Likewise.
1541	* tree-ssa-loop.c (tree_ssa_loop_ivcanon): Re-enable.
1542	(tree_ssa_empty_loop): Likewise.
1543	(tree_complete_unroll): Likewise.
1544	(tree_complete_unroll_inner): Likewise.
1545
15462008-06-16  Doug Kwan  <dougkwan@google.com>
1547
1548	* tree-ssa-ifcombine.c (File): Re-enable all previously diabled code.
1549	(bb_no_side_effects_p): Tuplify.
1550	(same_phi_args_p): Likewise.
1551	(get_name_for_bit_test): Likewise.
1552	(operand_precision): New.
1553	(integral_operand_p): New.
1554	(recognize_single_bit_test): Tuplify.
1555	(regcognize_bits_test): Tuplify.
1556	(ifcombine_ifandif): Likewise.
1557	(ifcombine_iforif): Likewise.
1558	(tree_ssa_ifcombine): Likewise.
1559	* passes.c: Re-enable pass_tree_ifcombine.
1560
15612008-06-16  Doug Kwan  <dougkwan@google.com>
1562
1563	* tree-ssa-loop-unswitch.c (File): Re-enable all previously disabled
1564	code.
1565	(tree_may_unswitch_on):  Tuplify.
1566	(simplify_using_entry_checks):  Likewise.
1567	(tree_unswitch_single_loop): Likewise.
1568	* gimple-dummy.c (tree_ssa_unswitch_loops): Remove dummy.
1569	* tree-ssa-loop.c (gate_tree_ssa_loop_unswitch):  Re-enable.
1570
15712008-06-16  Steven Bosscher  <steven@gcc.gnu.org>
1572
1573	* tree-ssa-reassoc.c: Convrt to tuples.
1574
15752008-06-15  Diego Novillo  <dnovillo@google.com>
1576
1577	* tree-ssa-live.c (mark_all_vars_used_1): Mark as used
1578	the TREE_BLOCK of any _EXPR node.
1579
15802008-06-13  Doug Kwan  <dougkwan@google.com>
1581
1582	* tree-mudflap.c (File): Re-enable previously disabled code.
1583	(mf_decl_cache_locals): Tuplify.
1584	(mf_build_check_statement_for): Likewise.
1585	(mf_xform_derefs_1): Re-enable.
1586	(mf_xform_derefs): Tuplify.
1587	(execute_mudflap_function_decls): Likewise.
1588	(mx_register_decls): Tuplify.  Add a new formal parameter for
1589	the location of newly generated statements.  Change function to
1590	return modified gimple sequence instead of of modifying in-place.
1591	(mx_xfn_xform_decls): Tuplify.
1592	(mf_xform_decls): Tuplify.
1593	* passes.c (init_optimization_passes): Re-enable mudflap passes.
1594
15952008-06-13  Jakub Jelinek  <jakub@redhat.com>
1596
1597	Merge with mainline @136757.
1598
1599	* configure.ac (ACX_PKGVERSION): Update revision merge string.
1600	* configure: Regenerate.
1601
16022008-06-13  Doug Kwan  <dougkwan@google.com>
1603
1604	* ipa-reference.c (scan_stmt_for_static_refs): Rename walk_subtrees
1605	parameter to handled_ops_p and correct bug of using walk_tree callback
1606	semantics.
1607	* ipa-pure-const.c (scan_function_stmt): Likewise.
1608	* tree-inline.c (mark_local_labes_stmt): Rename walk_subtrees
1609	parameter to handle_ops_p.
1610	(replace_locals_stmt): Likewise.
1611
16122008-06-10  Steven Bosscher  <steven@gcc.gnu.org>
1613
1614	* passes.c (init_optimization_passes): Re-enable pass_uncprop.
1615	* tree-ssa-uncprop (associate_equivalences_with_edges): Convert
1616	to tuples.
1617	(uncprop_into_successor_phis): Likewise.
1618
16192008-06-09  Diego Novillo  <dnovillo@google.com>
1620
1621	* ipa-cp.c (cgraph_gate_cp): Fix 'FIXME tuples' note.
1622	* cfg.c (compact_blocks): Likewise.
1623	* dominance.c (free_dominance_info): Likewise.
1624	* gimple-low.c (gimple_stmt_may_fallthru): Likewise
1625	* c-gimplify.c (add_block_to_enclosing): Likewise.
1626	* lambda-mat.c: Include tree-flow.h.
1627	* lambda-trans.c: Likewise.
1628	* Makefile.in (lambda-mat.o, lambda-trans.o): Add dependency
1629	on $(TREE_FLOW_H).
1630	* builtins.c (expand_builtin_setjmp_receiver): Remove #if 0 markers.
1631	(fold_call_stmt): Call gimple_call_va_arg_pack_p.
1632	* tree-gimple.h (gimple_bind_expr_stack): Declare.
1633	* cgraphunit.c (update_call_expr): Do not try to access operand 0
1634	of a FUNCTION_DECL.
1635	* tree-ssa-loop-ivopts.c (stmt_invariant_in_loop_p): New.
1636	* tree-flow.h (stmt_invariant_in_loop_p): Declare.
1637	* gimple-dummy.c (remove_iv): Remove.
1638	(gimple_stmt_may_fallthru):
1639	* ipa-type-escape.c (check_tree): Call DECL_P before testing
1640	DECL_INITIAL.
1641	(check_assign): Do not access TREE_OPERAND 0 on the RHS
1642	operand.
1643	* gimplify.c (gimple_bind_expr_stack): New.
1644	* gimple.h (struct gimple_statement_bind): Add more comments
1645	for field BLOCK.
1646	(gimple_cond_set_condition): New.
1647	* gimple.c (gimple_cond_set_condition_from_tree): Call it.
1648	(gimple_copy_no_def_use): Remove.  Update all users.
1649	(gimple_has_side_effects):
1650	(gimple_rhs_has_side_effects):
1651	* passes.c (init_optimization_passes): Enable
1652	pass_release_ssa_names, pass_ipa_type_escape, pass_ipa_pta,
1653	pass_ipa_struct_reorg, pass_record_bounds,
1654	pass_late_warn_uninitialized and pass_rename_ssa_copies.
1655
1656	* lambda-code.c: Tuplify.
1657	* ipa-struct-reorg.c: Tuplify.
1658	* ipa-struct-reorg.h: Tuplify.
1659
16602008-06-09  Jakub Jelinek  <jakub@redhat.com>
1661
1662	* gimplify.c (gimplify_omp_for): Call gimple_omp_for_set_incr
1663	with the RHS of the GIMPLE_MODIFY_STMT instead of the
1664	GIMPLE_MODIFY_STMT itself.
1665	* gimple-pretty-print.c (dump_gimple_omp_for): Adjust for it.
1666	* tree-nested.c (walk_gimple_omp_for): Likewise.
1667	* omp-low.c (extract_omp_for_data, lower_omp_for): Likewise.
1668
16692008-06-09  Aldy Hernandez  <aldyh@redhat.com>
1670
1671	* tree-ssa-forwprop.c (forward_propagate_into_cond): First argument is
1672	a GSI.
1673	(forward_propagate_addr_into_variable_array_index): Accept a GSI
1674	instead of a gimple statement.  Update accordingly.
1675	(forward_propagate_addr_expr_1): Same.
1676	(forward_propagate_addr_expr): Pass a GSI to
1677	forward_propagate_addr_expr_1.
1678	(simplify_not_neg_expr): Argument is a GSI.
1679	Adjust accordingly.
1680	(tree_ssa_forward_propagate_single_use_va): Pass GSI to
1681	simplify_not_neg_expr and forward_propagate_into_cond.
1682
16832008-06-09  Aldy Hernandez  <aldyh@redhat.com>
1684
1685	* tree.h (IS_CONVERT_EXPR_P): New.
1686	(CONVERT_EXPR_P): Use IS_CONVERT_EXPR_P.
1687	* tree-ssa-forwprop.c (get_prop_dest_stmt): Convert to tuples.
1688	(get_prop_source_stmt): Same.
1689	(can_propagate_from): Same.
1690	(remove_prop_source_from_use): Same.
1691	(combine_cond_expr_cond): Same.
1692	(forward_propagate_into_cond): Same.
1693	(tidy_after_forward_propagate_addr): Same.
1694	(forward_propagate_addr_into_variable_array_index): Same.
1695	(forward_propagate_addr_expr_1): Same.
1696	(forward_propagate_addr_expr): Same.
1697	(forward_propagate_comparison): Same.
1698	(simplify_not_neg_expr): Same.
1699	(tree_ssa_forward_propagate_single_use_vars): Same.
1700	(simplify_gimple_switch): Rename from -simplify_switch_expr.
1701	(rhs_to_tree): New.
1702	(forward_propagate_into_gimple_cond): New.
1703	* Makefile.in (tree-ssa-forwprop.o): Depend on GIMPLE_H.
1704	* passes.c (init_optimization_passes): Enable pass_forwprop.
1705
17062008-06-09  Jakub Jelinek  <jakub@redhat.com>
1707
1708	* tree.def (OMP_SECTIONS_SWITCH, OMP_ATOMIC_LOAD, OMP_ATOMIC_STORE):
1709	Removed.
1710	* tree-gimple.c (is_gimple_stmt): Don't handle them.
1711	* gimplify.c (gimplify_expr): Likewise.
1712	* tree-pretty-print.c (dump_generic_node): Likewise.
1713	* tree-ssa-operands.c (get_expr_operands): Likewise.
1714	* expr.c (expand_expr_real_1): Likewise.
1715	* omp-low.c (expand_omp_atomic_pipeline): Adjust comment.
1716
17172008-06-09  Jakub Jelinek  <jakub@redhat.com>
1718
1719	Merge with mainline @136433.
1720
1721	* configure.ac (ACX_PKGVERSION): Update revision merge string.
1722	* configure: Regenerate.
1723
17242008-06-08  Diego Novillo  <dnovillo@google.com>
1725
1726	Merge with mainline @136432.
1727
1728	* configure.ac (ACX_PKGVERSION): Update revision merge string.
1729	* configure: Regenerate.
1730
17312008-06-08  Diego Novillo  <dnovillo@google.com>
1732
1733	* tree-call-cdce.c: Tuplify.
1734
17352008-06-06  Diego Novillo  <dnovillo@google.com>
1736
1737	http://gcc.gnu.org/ml/gcc-patches/2008-06/msg00353.html
1738
1739	* gimple.def: Add a third argument to all GIMPLE codes.
1740	Update all users.
1741	* calls.c (gimple_alloca_call_p): Fix comment.
1742	* system.h (CONST_CAST_GIMPLE): Define.
1743	* gimple.c (gimple_ops_offset_): Declare.  Fill in from
1744	third argument in gimple.def.
1745	(gimple_set_stored_syms, gimple_set_loaded_syms): Move
1746	from tree-ssa-operands.c
1747	(gimple_alloc): Add argument NUM_OPS.  Update all users.
1748	Compute size by adding enough space for NUM_OPS operands.
1749	(gimple_alloc_ops): Remove.  Update all users.
1750	(gimple_assign_set_rhs_from_tree): Change first argument
1751	to gimple_stmt_iterator *.  Update all users.
1752	Allocate a new statement, if there are more operands that
1753	can fit in the old one.
1754	(gimple_assign_set_rhs_with_ops): Likewise.
1755	(gimple_copy): Fix clearing of stores/loads sets in the
1756	copied statement.
1757	* gimple.h (struct gimple_statement_base): Remove fields
1758	UNUSED_1, UNUSED_2, UNUSED_3.
1759	Add fields MODIFIED, HAS_VOLATILE_OPS, REFERENCES_MEMORY_P,
1760	UID and NUM_OPS.
1761	Re-organize existing fields to eliminate holes on 64 bit
1762	hosts.
1763	Update all users.
1764	(struct gimple_statement_with_ops_base): Define.
1765	Factor out struct gimple_statement_with_ops.  Include fields GSBASE,
1766	ADDRESSES_TAKEN, DEF_OPS and USE_OPS.
1767	(struct gimple_statement_with_ops): Include struct
1768	gimple_statement_with_ops_base.
1769	Remove field NUM_OPS.
1770	(struct gimple_statement_with_memory_ops_base): Define.
1771	Factor out of struct gimple_statement_with_memory_ops.
1772	Include fields OPBASE, VDEF_OPS, VUSE_OPS, STORES and
1773	LOADS.
1774	Remove fields HAS_VOLATILE_OPS and REFERENCES_MEMORY_P.
1775	(struct gimple_statement_with_memory_ops): Include
1776	struct gimple_statement_with_memory_ops_base.
1777	(struct gimple_statement_phi): Change size_t fields to
1778	unsigned.  Update all users.
1779	(struct gimple_statement_asm): Include struct
1780	gimple_statement_with_memory_ops_base.
1781	Change fields NI and NO to unsigned char.
1782	Change field NC to short.
1783	Update all users.
1784	Add field OP.
1785	(struct gimple_statement_change_dynamic_type): Remove.
1786	Update all users.
1787	(union gimple_statement_d): Rename field WITH_OPS to GSOPS.
1788	Rename field WITH_MEM_OPS to GSMEM.
1789	Update all users.
1790	(gimple_addresses_taken): New.
1791	(gimple_addresses_taken_ptr): New.
1792	(gimple_set_addresses_taken): New.
1793	(gimple_num_ops): Move earlier.
1794	(gimple_ops): Use gimple_ops_offset_ to compute address
1795	of the operand vector.
1796	(gimple_op): Call gimple_ops.
1797	(gimple_op_ptr): Likewise.
1798	(gimple_set_op): Likewise.
1799	(gimple_switch_num_labels): Call gimple_num_ops.
1800	(gimple_switch_set_num_labels): Call gimple_set_num_ops.
1801	(gimple_switch_set_label): Call gimple_num_ops.
1802	(gimple_return_retval_ptr): Likewise.
1803	(gimple_return_retval): Likewise.
1804	(gimple_set_retval): Likewise.
1805	(gimple_cdt_new_type): Use operand 1.
1806	(gimple_cdt_new_type_ptr): Likewise.
1807	(gimple_cdt_set_new_type): Likewise.
1808	* tree-cfg.c (gimple_block_ends_with_call_p): Use
1809	CONST_CAST_BB.
1810	* tree-ssa-operands.c (gimple_set_stored_syms,
1811	gimple_set_loaded_syms): Declare.
1812	* value-prof.c (gimple_divmod_fixed_value_transform,
1813	gimple_mod_pow2_value_transform,
1814	gimple_mod_subtract_transform): Change argument to
1815	gimple_stmt_iterator *.  Update all users.
1816	* tree-ssa-ccp.c (fold_gimple_assign): Change parameter
1817	to gimple_stmt_iterator *.  Update all users
1818
18192008-06-05  Jakub Jelinek  <jakub@redhat.com>
1820
1821	* gimplify.c (gimplify_modify_expr_to_memcpy): Use gimplify_arg
1822	for gimplification of call arguments.
1823	(gimplify_modify_expr_to_memset): Likewise.
1824
18252008-06-02  Jakub Jelinek  <jakub@redhat.com>
1826
1827	PR tree-optimization/36389
1828	* gimplify.c (gimplify_cond_expr): If one or both branches are
1829	GOTO_EXPRs jumping to LABEL_DECLs, don't create unnecessary
1830	extra LABEL_DECLs and jumps around.
1831	* tree-cfg.c (remove_useless_stmts_cond): Set may_branch also
1832	for GIMPLE_COND stmts.
1833	* tree-eh.c (replace_goto_queue_cond_clause): Set label to
1834	create_artificial_label () rather than LABEL_EXPR.
1835
18362008-05-30  Diego Novillo  <dnovillo@google.com>
1837
1838	* calls.c (gimple_alloca_call_p): Fix detection of
1839	alloca() calls.
1840
18412008-05-30  Diego Novillo  <dnovillo@google.com>
1842
1843	* toplev.c: Include gimple.h.
1844	(dump_memory_report): Call dump_gimple_statistics.
1845	* Makefile.in (toplev.o): Add dependency on GIMPLE_H.
1846	* gimple-low.c (pass_lower_cf): Restore disabled bits.
1847	* tree-dfa.c (pass_referenced_vars): Likewise.
1848	* cfgexpand.c (pass_expand): Likewise.
1849	* tree-outof-ssa.c (pass_del_ssa): Likewise.
1850	* gimple.c (gimple_alloc): Fix non-C99 declaration.
1851	* gimplify.c (gimplify_function_tree): Remove calls to
1852	dump_tree_statistics and dump_gimple_statistics.
1853
18542008-05-30  Jakub Jelinek  <jakub@redhat.com>
1855
1856	* omp-low.c (diagnose_omp_structured_block_errors): Temporarily
1857	switch cfun to DECL_STRUCT_FUNCTION (fndecl).
1858
1859	* omp-low.c (scan_sharing_clauses): Call scan_omp on
1860	OMP_CLAUSE_REDUCTION_GIMPLE_{INIT,MERGE} instead of
1861	scan_omp_op on OMP_CLAUSE_REDUCTION_{INIT,MERGE}.
1862	(lower_rec_input_clauses): Clear
1863	OMP_CLAUSE_REDUCTION_GIMPLE_{INIT,MERGE} instead of
1864	OMP_CLAUSE_REDUCTION_{INIT,MERGE}.  Call lower_omp
1865	on OMP_CLAUSE_REDUCTION_GIMPLE_MERGE before gimple_seq_add_seq
1866	to replace all occurences of placeholder in the seq.
1867	* gimplify.c (gimplify_scan_omp_clauses): Clear
1868	OMP_CLAUSE_REDUCTION_{INIT,MERGE} after gimplifying it.
1869
1870	* tree-nested.c (init_tmp_var_with_call, init_tmp_var, save_tmp_var):
1871	Only set location if not gsi_end_p.
1872	(walk_gimple_omp_for): Avoid adding an empty statement to seq.
1873
1874	* tree-inline.c (remap_gimple_stmt): Remap body of
1875	GIMPLE_OMP_{MASTER,ORDERED,SECTION,SECTIONS,SINGLE}.
1876
18772008-05-28  Andrew Pinski  <pinskia@gmail.com>
1878
1879	* gimple-pretty-print.c (dump_unary_rhs): Handle conversions correctly.
1880	Handle PAREN_EXPR, ABS_EXPR, and NEGATE_EXPR.
1881
18822008-05-29  Jakub Jelinek  <jakub@redhat.com>
1883
1884	* omp-low.c (lower_omp_1): Handle regimplification of GIMPLE_ASM.
1885	Fix GIMPLE_ASSIGN regimplification.
1886	* gimple-pretty-print.c (dump_gimple_omp_sections,
1887	dump_gimple_omp_block, dump_gimple_omp_critical): New functions.
1888	(dump_gimple_omp_parallel): Formatting.
1889	(dump_gimple_stmt): Handle remaining GIMPLE_OMP_* statements.
1890
18912008-05-29  Aldy Hernandez  <aldyh@redhat.com>
1892
1893	* tree-inline.c (remap_gimple_stmt): Handle GIMPLE_OMP_* cases.
1894
18952008-05-29  Aldy Hernandez  <aldyh@redhat.com>
1896
1897	* gimple-pretty-print.c (dump_gimple_stmt): Add cases for
1898	GIMPLE_OMP_MASTER and GIMPLE_OMP_ORDERED.
1899
19002008-05-29  Aldy Hernandez  <aldyh@redhat.com>
1901
1902	* omp-low.c (expand_omp_parallel): Parse an assignment from an
1903	ADDR_EXPR correctly.
1904	* gimple-pretty-print.c (dump_gimple_omp_parallel): Print braces when
1905	appropriate.
1906
19072008-05-29  Jakub Jelinek  <jakub@redhat.com>
1908
1909	* omp-low.c (lower_omp_1): Fix regimplification of GIMPLE_COND and
1910	GIMPLE_CALL.
1911
19122008-05-28  Jakub Jelinek  <jakub@redhat.com>
1913
1914	* gimple.c (gimple_regimplify_operands): Don't call gimple_num_ops
1915	twice.  Write regimplified operand to the correct operand slot.
1916	* gimplify.c (rhs_predicate_for): No longer static.
1917	* tree-gimple.h (rhs_predicate_for): New prototype.
1918	* omp-low.c (lower_omp_1): Don't call gimple_regimplify_operands,
1919	instead forcefully gimplify_expr each operand with the right
1920	predicate.
1921
1922	* gimple.h (gimple_omp_atomic_store_val_ptr,
1923	gimple_omp_atomic_load_lhs_ptr, gimple_omp_atomic_load_rhs_ptr): New
1924	inlines.
1925	* gimple.c (walk_gimple_op): Handle GIMPLE_OMP_ATOMIC_LOAD and
1926	GIMPLE_OMP_ATOMIC_STORE.
1927	* omp-low.c (lower_omp_1): Handle GIMPLE_OMP_ATOMIC_LOAD.
1928
1929	* gimple-pretty-print.c (dump_gimple_omp_for): Don't indent twice
1930	before gimple_omp_body, don't emit extra newline after it.
1931	(dump_gimple_omp_single): Likewise.
1932
19332008-05-27  Aldy Hernandez  <aldyh@redhat.com>
1934
1935	* tree-nested.c (walk_omp_for): Rename to...
1936	(walk_gimple_omp_for): Enable and convert to tuples.
1937	(convert_nonlocal_reference_stmt): Enable call to walk_gimple_omp_for.
1938	(convert_local_reference_stmt): Same.
1939	* gimple.c (walk_gimple_op): Remove fixme note.
1940
19412008-05-27  Diego Novillo  <dnovillo@google.com>
1942
1943	* tree-gimple.c (get_gimple_rhs_class): Handle
1944	POLYNOMIAL_CHREC.
1945	* tree-cfg.c (verify_types_in_gimple_assign): Do not
1946	check every operand against the LHS type for tcc_binary
1947	expressions.
1948
19492008-05-26  Diego Novillo  <dnovillo@google.com>
1950
1951	Merge with mainline @135951.
1952
1953	* configure.ac (ACX_PKGVERSION): Update revision merge string.
1954	* configure: Regenerate.
1955
19562008-05-22  Aldy Hernandez  <aldyh@redhat.com>
1957
1958	* tree-cfg.c (make_edges): Change OMP_SECTION to GIMPLE_OMP_SECTIONS.
1959	Update comments.
1960	(verify_types_in_gimple_stmt): Update comments.
1961	(verify_stmt): Same.
1962
19632008-05-21 Andreas Tobler  <a.tobler@schweiz.org>
1964
1965	* ../configure: Regenerate with the correct autoconf version: 2.59.
1966
19672008-05-21  Aldy Hernandez  <aldyh@redhat.com>
1968
1969	* omp-low.c (lower_reduction_clauses): Generate OMP_ATOMIC_* directly.
1970	Concatenate atomic code correctly.
1971
19722008-05-20  Aldy Hernandez  <aldyh@redhat.com>
1973
1974	* omp-low.c (WALK_SUBSTMTS): New.
1975	(check_combined_parallel): Walk sub-statements.
1976	(diagnose_sb_1): Same.
1977	(diagnose_sb_2): Same.
1978	Handle switch labels and return statements correctly.
1979	* testsuite/gcc.dg/gomp/block-7.c: Adjust for new error message.
1980	* testsuite/gcc.dg/gomp/block-2.c: Same.
1981	* testsuite/gcc.dg/gomp/block-4.c: Same.
1982	* testsuite/gcc.dg/gomp/block-6.c: Same.
1983	* testsuite/gcc.dg/gomp/block-8.c: Same.
1984	* testsuite/gcc.dg/gomp/block-1.c: Same.
1985	* testsuite/gcc.dg/gomp/block-3.c: Same.
1986	* testsuite/gcc.dg/gomp/block-5.c: Same.
1987
19882008-05-20  Aldy Hernandez  <aldyh@redhat.com>
1989
1990	* omp-low.c (lower_omp_single): Append to bind variables.
1991	(lower_omp_master): Same.
1992	(lower_omp_ordered): Same.
1993	(lower_omp_critical): Same.
1994	* gimplify.c (gimplify_modify_expr_to_memcpy): Make sure we are
1995	fully gimplified.
1996	(gimplify_omp_for): Same.
1997	* gimple.h (gimple_bind_set_vars): New.
1998
19992008-05-16  Andreas Tobler  <a.tobler@schweiz.org>
2000
2001	* config/alpha/alpha.c (alpha_gimplify_va_arg): Adjust arguments.
2002	* config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise.
2003	* config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise.
2004	* config/m32c/m32c-protos.h (m32c_gimplify_va_arg_expr): Likewise.
2005	* config/spu/spu.c (spu_gimplify_va_arg_expr): Likewise.
2006	* config/stormy16/stormy16.c (xstormy16_gimplify_va_arg_expr): Likewise.
2007	* config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise.
2008
2009	* config/sparc/sparc.c (sparc_gimplify_va_arg): Adjust arguments.
2010
20112008-05-16  Diego Novillo  <dnovillo@google.com>
2012
2013	* tree-into-ssa.c (rewrite_uses_p): Fix return type.
2014	* tree-vectorizer.h (nested_in_vect_loop_p): Add return value.
2015	* tree-ssa-pre.c (execute_pre): Add return value.
2016
20172008-05-15  Aldy Hernandez  <aldyh@redhat.com>
2018
2019	* config/s390/s390.c (s390_gimplify_va_arg): Adjust for tuples.
2020
20212008-05-15  Diego Novillo  <dnovillo@google.com>
2022
2023	* Makefile.in (STRICT_WARN): Revert to mainline behaviour.
2024	(builtins.o-warn, expr.o-warn, dse.o-warn,
2025	ebitmap.o-warn, lower-subreg.o-warn, tree-chrec.o-warn,
2026	tree-ssa-structalias.o-warn, varasm.o-warn): Remove.
2027	* config/arm/arm.c (arm_return_in_memory): Fix return type.
2028	* config/arm/arm-protos.h (arm_return_in_memory): Likewise.
2029
20302008-05-15  Aldy Hernandez  <aldyh@redhat.com>
2031
2032	* gimplify.c (gimplify_omp_for): Handle a MODIFY_EXPR in
2033	gimple_omp_for_incr.
2034	* cfgexpand.c (gimple_to_tree): Do not die on compile errors.
2035
20362008-05-15  Aldy Hernandez  <aldyh@redhat.com>
2037
2038	* omp-low.c (check_omp_nesting_restrictions): Fetch clauses from for.
2039	(expand_omp_atomic): Parse GIMPLE_OMP_ATOMIC correctly.
2040	(lower_omp_single_simple): Create GIMPLE_COND with both tlabel and
2041	flabel.
2042	(lower_omp_for): Make sure we have a body before look inside.
2043	* gimple-low.c (lower_stmt): Add case for GIMPLE_OMP_SECTIONS_SWITCH.
2044	* gimple-pretty-print.c (dump_gimple_omp_single): New.
2045	(dump_gimple_stmt): Add case for GIMPLE_OMP_SINGLE.
2046	* gimplify.c (gimplify_omp_workshare): Remove fixme.  Enable code.
2047	* gimple.c (gss_for_code): Add case for GIMPLE_OMP_{RETURN,
2048	SECTIONS_SWITCH}.
2049	(gimple_regimplify_operands):  Do not regimplify GIMPLE_ASM
2050	operands.  Do not look inside empty operands.
2051	* gimple.h (is_gimple_omp): Fix typo for GIMPLE_OMP_ATOMIC*.
2052	* tree-cfg.c (make_edges): Rename OMP_SECTION to GIMPLE_OMP_SECTION.
2053
20542008-05-14  Aldy Hernandez  <aldyh@redhat.com>
2055
2056	* omp-low.c (optimize_omp_library_calls): Make sure statement is
2057	a GIMPLE_CALL before we look inside of it.
2058	* tree-cfg.c (move_stmt_op): Exit gracefully.
2059
20602008-05-13  Aldy Hernandez  <aldyh@redhat.com>
2061
2062	* omp-low.c (scan_omp_op): Remove walk_subtrees.  Call walk_tree.
2063	(scan_omp_for): Scan OMP body.
2064	(scan_omp_1_stmt): Set handled_ops_p.
2065	(expand_omp_parallel): Parse ADDR_EXPR correctly.
2066	(diagnose_sb_1): Rename walk_subtrees to handled_ops_p and set
2067	appropriately.
2068	(diagnose_sb_2): Same.
2069	* gimple-pretty-print.c (dump_gimple_omp_for): Print braces around
2070	OMP body.
2071	* tree-inline.c (estimate_num_insns): GIMPLE_OMP_CONTINUE does not
2072	have a body.
2073	* tree-cfg.c (move_stmt_op): Parse move_stmt_d out of data correctly.
2074	(move_stmt_r): Rename walk_subtrees to handled_ops_p and set
2075	appropriately.
2076
20772008-05-12  Diego Novillo  <dnovillo@google.com>
2078
2079	Merge with mainline @135126.
2080
2081	* configure.ac (ACX_PKGVERSION): Update revision merge string.
2082	* configure: Regenerate.
2083
20842008-05-11 Doug Kwan  <dougkwan@google.com>
2085
2086	* gimplify.c (gimple_pop_condition): Clear
2087	conditional_cleanups field after the associated gimple sequence has
2088	been freed implicitly.
2089	(gimplify_cleanup_point_expr): Clear conditional_cleanups field
2090	of gimplfiy_ctxp after resetting the conditions field.
2091	* gimple.h (gimple_call_return_type): Handle REFERENCE_TYPE like
2092	POINTER_TYPE.
2093
20942008-05-10  Kaz Kojima  <kkojima@gcc.gnu.org>
2095
2096	* config/sh/sh.c (sh_gimplify_va_arg_expr): Change pre_p and
2097	post_p types to gimple_seq *.
2098
20992008-05-09  Aldy Hernandez  <aldyh@redhat.com>
2100
2101	* omp-low.c (maybe_catch_exception): Return body when no exceptions.
2102	(gate_lower_omp): Enable pass.
2103	* gimple-low.c (lower_stmt): Add GIMPLE_OMP_ATOMIC_* cases.
2104
21052008-05-08  Aldy Hernandez  <aldyh@redhat.com>
2106
2107	* omp-low.c (extract_omp_for_data): Update comment.
2108	(get_ws_args_for): Same.
2109	(lower_send_shared_vars): Same.
2110	(expand_omp_parallel): Same.
2111	(expand_omp_for_static_nochunk): Same.
2112	(expand_omp_for_static_chunk): Same.
2113	(expand_omp_sections): Same.
2114	(expand_omp_atomic_fetch_op): Same.
2115	(expand_omp_atomic_pipeline): Same.
2116	(build_omp_regions_1): Same.
2117	(lower_omp_for): Same.
2118	(expand_omp_atomic_mutex): Change OMP_ATOMIC_STORE to
2119	GIMPLE_OMP_ATOMIC_STORE.
2120	* gimple-pretty-print.c (dump_gimple_omp_parallel): Print child fn
2121	and data_arg.
2122	* tree-cfg.c (make_edges): Enable commented out code and convert
2123	to tuples.
2124	(replace_by_duplicate_decl): Same.
2125	(replace_ssa_name): Same.
2126	(move_stmt_r): Same.
2127	(move_stmt_op): New.
2128	(mark_virtual_ops_in_bb): Enable and convert to tuples.
2129	(makr_virtual_ops_in_region): Same.
2130	(move_block_to_fn): Convert to tuples.
2131	(find_outermost_region_in_block): Enable and convert to tuples.
2132	(move_sese_region_to_fn): Same.
2133
21342008-05-05  Aldy Hernandez  <aldyh@redhat.com>
2135
2136	* omp-low.c (expand_omp_parallel): Remove fixmes.
2137	(expand_omp_for_static_chunk): Enable and tuplify code.
2138	(expand_omp_sections): Remove fixmes.  Tuplify.
2139	(lower_omp_sections): Same.
2140	(diagnose_sb_0): Remove fixme.
2141	* tree-ssa.c (redirect_edge_var_map_dup): Fix typo in comment.
2142	* gimple.c (gimple_size): Add case for GIMPLE_OMP_SECTIONS_SWITCH.
2143	(gimple_build_omp_sections): New.
2144	* gimple.h (gimple_build_omp_sections_switch): New prototype.
2145
21462008-05-03  Aldy Hernandez  <aldyh@redhat.com>
2147
2148	* omp-low.c (diagnose_sb_0): Tuplify and enable.
2149	(diagnose_sb_1): Same.
2150	(diagnose_sb_2): Same.
2151	(diagnose_omp_structured_block_errors): Tuplify.
2152	* gimple-dummy.c (DUMMY_FN): Remove
2153	diagnose_omp_structured_block_errors.
2154	* c-decl.c (c_gimple_diagnostics_recursively): Remove fixme
2155	and enable call to diagnose_omp_structured_block_errors.
2156	* Makefile.in (GTFILES): Add omp-low.c again.
2157
21582008-05-02  Rafael Espíndola  <espindola@google.com>
2159
2160	* tree-gimple.c (is_gimple_condexpr): Do not allow
2161	trapping comparisons.
2162	* tree-eh.c (tree_could_trap_p): Fix handling of floating
2163	point comparisons.
2164
21652008-05-02  Doug Kwan  <dougkwan@google.com>
2166
2167	* value-prof.c (gimple_divmod_fixed_value): Remove formal parameters
2168	OPERATION, OP1 and OP2 and derive their values from parameter STMT
2169	instead.  Update prototype and caller.
2170	(gimple_mod_pow2): Remove formal parameters OPERATION, OP1 and OP2
2171	and derive their values from parameter STMT instead.  Update prototype
2172	and caller.
2173	(gimple_mod_pow2_value_transform): Remove temporares OP, OP1 and OP2.
2174	Use a new tempory LHS_TYPE to store assignment LHS type.
2175	(gimple_mode_subtract): Remove formal parameters OPERATION, OP1 and OP2
2176	and derive their values from parameter STMT instead.  Update prototype
2177	and caller.  Fix a bug in a call to gimple_build_assign_with_ops.
2178	(gimple_mod_subtract_transform): Remove temporares OP, OP1 and OP2.
2179	Use a new tempory LHS_TYPE to store assignment LHS type.
2180	(gimple_ic, gimple_indirect_call_to_profile): Fix bug in tree-code
2181	tests.
2182	* tree-profile.c (File): Re-enable all previously disabled code.
2183	(tree_gen_edge_profiler): Tuplify.
2184	(prepare_instrumented_value): Ditto.
2185	(tree_gen_interval_profiler): Ditto.
2186	(tree_gen_pow2_profiler): Ditto.
2187	(tree_gen_one_value_profiler): Ditto.
2188	(tree_gen_ic_profiler): Ditto.
2189	(tree_gen_ic_func_profiler): Ditto.
2190	(tree_gen_const_delta_profiler): Re-format formal parameters for
2191	proper alignement.
2192	(tree_gen_average_profiler): Tuplify.
2193	(tree_gen_ior_profiler): Ditto.
2194	(do_tree_profiling): Re-enable previously disabled code.  Remove
2195	FIXME.
2196	(tree_profiling): Ditto.
2197	* gimple.c (gimple_set_bb):  Remove assertion.
2198	* tree-cfg.c (change_bb_for_stmt): Remove.  Redirect callers to
2199	gimple_set_bb.
2200	(gimple_merge_blocks): Call gimple_set_bb instead of
2201	change_bb_for_stmt.
2202	(gimple_split_block): Ditto.
2203	(verify_stmts): Add code to check that label_to_block_map and labels
2204	are consistent.
2205
22062008-04-22  Rafael Espíndola <espindola@google.com>
2207
2208	Merge with mainline @134843.
2209
2210	* configure.ac (ACX_PKGVERSION): Update revision merge string.
2211	* configure: Regenerate.
2212
22132008-05-01  Diego Novillo  <dnovillo@google.com>
2214
2215	http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00053.html
2216
2217	* tree-vrp.c (vrp_visit_phi_node): Cast variable I to int
2218	for printing.
2219	* cgraph.c (cgraph_release_function_body): Only call
2220	gimple_set_body if NODE->DECL has a struct function.
2221	* tree.c (make_node_stat): Do not call gimple_set_body.
2222	* cp/Make-lang.in (cp/semantics.o): Add dependency on
2223	$(GIMPLE_H).
2224	* cp/semantics.c: Include gimple.h
2225	(expand_or_defer_fn): Assert that FN has a gimple body.
2226	* function.h (struct function): Add field GIMPLE_BODY.
2227	* gimple.c (gimple_bodies_vec): Remove.
2228	(gimple_bodies_map): Remove.
2229	(gimple_set_body): Re-write to use GIMPLE_BODY in FN's
2230	function object.
2231	(gimple_body): Likewise.
2232
22332008-05-01  Oleg Ryjkov  <olegr@google.com>
2234
2235	http://gcc.gnu.org/ml/gcc-patches/2008-05/msg00053.html
2236
2237	* tree-eh.c (record_in_goto_queue, record_in_goto_queue_label):
2238	New functions.
2239	(maybe_record_in_goto_queue): Refactored and added support for
2240	recording labels embedded in GIMPLE_CONDs.
2241	(lower_catch, lower_cleanup): Fix 3 typos that were introduced
2242	during the conversion to tuples.
2243	(lower_eh_constructs_2): Call maybe_record_in_goto_queue for
2244	GIMPLE_CONDs.
2245
22462008-05-01  Rafael Espíndola <espindola@google.com>
2247
2248	* gimple-pretty-print.c (dump_gimple_try): Print like trunk does.
2249	(dump_gimple_catch): Print like trunk does.
2250
22512008-05-01  Rafael Espíndola <espindola@google.com>
2252
2253	* passes.c (gimple_verify_flow_info): Enable remaining
2254	pass_rename_ssa_copies passes.
2255
22562008-05-01  Rafael Espíndola <espindola@google.com>
2257
2258	* tree-cfg.c (gimple_verify_flow_info): Handle switches with only the
2259	default label.
2260
22612008-04-30  Doug Kwan  <dougkwan@google.com>
2262
2263	* cfgexpand.c (gimple_to_tree): Change code to annotate EH region
2264	numbers only if numbers are greater than zero.  Also propagate EH
2265	region number to CALL_EXPRs nested in assignments.
2266
22672008-04-29  Doug Kwan  <dougkwan@google.com>
2268
2269	* tree-eh.c (lower_try_finally_dup_block): Call
2270	copy_gimple_seq_and_replace_locals instead of gimple_seq_copy.
2271	(optimize_double_finally): Add a note about replacing unsave_expr_now
2272	with copy_gimple_seq_and_replace_locals.
2273	* tree-inline.c (mark_local_labels_stmt, replace_locals_op,
2274	replace_locals_stmt, copy_gimple_seq_and_replace_locals): New.
2275	* tree-inline.h (copy_gimple_seq_and_replace_locals): New prototype.
2276
22772008-04-29  Rafael Espíndola <espindola@google.com>
2278
2279	* gimple-pretty-print.c (dump_gimple_return): Add missing space.
2280	* tree-ssa-threadedge.c (simplify_control_stmt_condition): Fix type
2281	of variable.
2282
22832008-04-29  Rafael Espíndola <espindola@google.com>
2284
2285	* gimple-pretty-print.c (pp_cfg_jump): add missing ";".
2286
22872008-04-29  Rafael Espíndola <espindola@google.com>
2288
2289	* gimple-pretty-print.c (dump_gimple_assign): print ";" at the end.
2290	(dump_gimple_return):print ";" at the end.
2291	(dump_gimple_call): print ";" at the end.
2292	(dump_gimple_cond): use op_symbol_code instead of tree_code_name.
2293	(pp_cfg_jump): print ";" at the end.
2294
22952008-04-29  Rafael Espíndola <espindola@google.com>
2296
2297	* ipa-cp.c (ipcp_driver): Disable.
2298	* matrix-reorg.c (matrix_reorg): Comment body.
2299	(gate_matrix_reorg): Disable.
2300	* passes.c (init_optimization_passes): Enable first pass_merge_phi,
2301	pass_ipa_cp and pass_ipa_matrix_reorg.
2302
23032008-04-29  Doug Kwan  <dougkwan@google.com>
2304
2305	* tree-eh.c (lower_catch): Fix bug of accessing sub-statements
2306	using gimple_catch_handler.  Fix bug of mixing up GIMPLE_GOTO and
2307	GIMPLE_LABEL in statement building.
2308	(lower_cleanup): Fix bug of mixing up gimple_try_clean and
2309	gimple_try_eval.
2310	(lower_cleanup): Use gimple codes instead of tree codes in switch
2311	statement.
2312	(tree-cfg.c): Add code to generate EH edges of GIMPLE_ASSIGN.
2313
23142008-04-28  Diego Novillo  <dnovillo@google.com>
2315
2316	http://gcc.gnu.org/ml/gcc-patches/2008-04/msg02051.html
2317
2318	* tree-ssa-phiprop.c (phiprop_insert_phi): Remove
2319	OLD_ARG_CODE.  Use TREE_CODE (ARG) instead.
2320	Assert that NEW_VAR is a GIMPLE register.
2321	(propagate_with_phi): Fix test of is_gimple_reg_type for
2322	ARG.
2323	Do not set subcode of USE_STMT to NOP_EXPR.
2324
23252008-04-28  Doug Kwan  <dougkwan@google.com>
2326
2327	* tree-inline.c (remap_gimple_op_r): Remove code to handle RESX_EXPR
2328	region number remapping.
2329	(remap_gimple_stmt): Add code to handle GIMPLE_RESX region number
2330	remapping.
2331
23322008-04-28  Rafael Espíndola <espindola@google.com>
2333
2334	* cfgexpand.c (gimple_to_tree): Add support for switch stmts without
2335	a default label.
2336	* fold-const.c (tree_call_nonnegative_warnv_p): Remove the code
2337	argument.
2338	(tree_invalid_nonnegative_warnv_p): Update call to
2339	tree_call_nonnegative_warnv_p.
2340	* gimple.h (gimple_location_ptr): New.
2341	* tree-flow.h (simplify_stmt_using_ranges): Change signature.
2342	* tree-ssa-propagate.c (substitute_and_fold): Call
2343	simplify_stmt_using_ranges.
2344	* tree-vrp.c (struct assert_locus_d): Tuplify.
2345	(switch_update): Tuplify.
2346	(stmt_overflow_infinity): New.
2347	(gimple_assign_nonnegative_warnv_p): New.
2348	(gimple_call_nonnegative_warnv_p): New.
2349	(gimple_stmt_nonnegative_warnv_p): New.
2350	(gimple_assign_nonzero_warnv_p): New.
2351	(gimple_stmt_nonzero_warnv_p): New.
2352	(vrp_stmt_computes_nonzero): Tuplify.
2353	(extract_range_basic): Tuplify.
2354	(extract_range_from_expr): Tuplify. Rename to
2355	extract_range_from_assignment.
2356	(adjust_range_with_scev): Tuplify.
2357	(vrp_var_may_overflow): Tuplify.
2358	(build_assert_expr_for): Tuplify.
2359	(fp_predicate): Tuplify.
2360	(infer_value_range): Tuplify.
2361	(dump_asserts_for): Tuplify.
2362	(register_new_assert_for): Tuplify.
2363	(register_edge_assert_for_2): Tuplify.
2364	(register_edge_assert_for_1): Tuplify.
2365	(register_edge_assert_for): Tuplify.
2366	(find_conditional_asserts): Tuplify.
2367	(find_switch_asserts): Tuplify.
2368	(find_assert_locations): Tuplify.
2369	(process_assert_insertions_for): Tuplify.
2370	(process_assert_insertions): Tuplify.
2371	(check_array_ref): Tuplify.
2372	(search_for_addr_array): Tuplify.
2373	(check_array_bounds): Tuplify.
2374	(check_all_array_refs): Tuplify.
2375	(remove_range_assertions): Tuplify.
2376	(stmt_interesting_for_vrp): Tuplify.
2377	(vrp_initialize): Tuplify.
2378	(vrp_visit_assignment): Tuplify. Rename to vrp_visit_assignment_or_call.
2379	(vrp_visit_cond_stmt): Tuplify.
2380	(find_case_label_index): Tuplify.
2381	(find_case_label_range): Tuplify.
2382	(vrp_visit_switch_stmt): Tuplify.
2383	(vrp_visit_stmt): Tuplify.
2384	(vrp_visit_phi_node): Tuplify.
2385	(simplify_div_or_mod_using_ranges): Tuplify.
2386	(simplify_abs_using_ranges): Tuplify.
2387	(simplify_cond_using_ranges): Tuplify.
2388	(simplify_switch_using_ranges): Tuplify.
2389	(simplify_stmt_using_ranges): Tuplify.
2390	(simplify_stmt_for_jump_threading): Tuplify.
2391	(identify_jump_threads): Tuplify.
2392	(execute_vrp): Tuplify.
2393	(gate_vrp): Enable.
2394	* tree.h (tree_call_nonnegative_warnv_p): Remove the code argument.
2395
23962008-04-28  Doug Kwan  <dougkwan@google.com>
2397
2398	* cp/cp-gimplify.c (finish_bc_block):  Tuplify.
2399	(build_bc_goto):  Renamed to get_bc_label.  Return a label
2400	only.  Uupdate  callers.
2401	(get_bc_label): New
2402	(gimplify_cp_loop): Tuplify.  Also check COND for error_mark_node
2403	before gimplifying it.
2404	(gimplify_for_stmt): Tuplify.
2405	(gimplify_while_stmt): Tuplify.
2406	(gimplify_for_stmt): Tuplify.
2407	(gimplify_do_stmt): Tuplify.
2408	(gimplify_switch_stmt): Tuplify.
2409	(cp_gimplify_omp_switch_stmt): Add temporary code to pop block
2410	label stack.
2411	(cp_gimplify_expr): Pass pre_p to gimplify_while_stmt,
2412	gimplify_do_stmt and gimplify_switch_stmt.  Tuplify
2413	gimplification of CONTINUE_STMT and BREAK_STMT.
2414
24152008-04-26  Rafael Espíndola <espindola@google.com>
2416
2417	* gimple.c (gimple_build_assign_with_ops): Don't set SSA_NAME_DEF_STMT.
2418	* gimple.h (gimple_assign_set_lhs): Set SSA_NAME_DEF_STMT.
2419	(gimple_call_set_lhs): Set SSA_NAME_DEF_STMT.
2420	* omp-low.c (expand_parallel_call): Don't set SSA_NAME_DEF_STMT if not
2421	needed.
2422	(expand_omp_for_generic): Same.
2423	(expand_omp_for_static_nochunk): Same.
2424	(expand_omp_for_static_chunk): Same.
2425	(expand_omp_sections): Same.
2426	(expand_omp_atomic_mutex): Same.
2427	* predict.c (strip_builtin_expect): Same.
2428	* tree-cfg.c (gimple_merge_blocks): Same.
2429	* tree-inline.c (remap_ssa_name): Same.
2430	(setup_one_parameter): Same.
2431	* tree-predcom.c (replace_ref_with): Same.
2432	(replace_ref_with): Same.
2433	(initialize_root_vars_lm): Same.
2434	(reassociate_to_the_same_stmt): Same.
2435	* tree-scalar-evolution.c (scev_const_prop): Same.
2436	* tree-ssa-loop-im.c (rewrite_reciprocal): Same.
2437	* tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Same.
2438	* tree-ssa-loop-manip.c (create_iv): Same.
2439	* tree-ssa-math-opts.c (execute_cse_sincos_1): Same.
2440	* tree-ssa-phiopt.c (minmax_replacement): Same.
2441	(abs_replacement): Same.
2442
24432008-04-25  Diego Novillo  <dnovillo@google.com>
2444
2445	http://gcc.gnu.org/ml/gcc-patches/2008-04/msg01965.html
2446
2447	* gimplify.c (annotate_all_with_location_after): New.
2448	(gimplify_expr): Call it.
2449
24502008-04-25  Diego Novillo  <dnovillo@google.com>
2451
2452	Merge with mainline @134692.
2453
2454	* configure.ac (ACX_PKGVERSION): Update revision merge string.
2455	* configure: Regenerate.
2456
24572008-04-25  Doug Kwan  <dougkwan@google.com>
2458
2459	* tree-inline.c (expand_call_inline):  Save old call statement
2460	and use it to look up correct EH region.
2461
24622008-04-24  Doug Kwan  <dougkwan@google.com>
2463
2464	* Makefile.in (STRICT_WARN): Remove -Wno-format and
2465	-Wno-missing-format-attribute.
2466	* gimplify.c (gimple_pop_condition): Remove redundant and incorrect
2467	gimple_seq_free.
2468	(gimplify_init_ctor_eval_range): Add a fall-through label for
2469	GIMPLE_COND statement.
2470
24712008-04-25  Rafael Espíndola <espindola@google.com>
2472
2473	* tree-ssa-dom.c (avail_expr_eq): Return false if the hashes don't
2474	match.
2475
24762008-04-24  Oleg Ryjkov  <olegr@google.com>
2477
2478	* gimplify.c (gimplify_expr): Fix the assertion that verifies validity
2479	of parameters.
2480	* tree-inline.c (estimate_num_insns): Handle
2481	GIMPLE_CHANGE_DYNAMIC_TYPE.
2482	* tree-cfg.c (verify_types_in_gimple_stmt): Likewise.
2483
24842008-04-24  Rafael Espíndola <espindola@google.com>
2485
2486	* tree-ssa-dom.c (initialize_hash_element): Fix the type of the code
2487	variable.
2488
24892008-04-23  Rafael Espíndola <espindola@google.com>
2490
2491	* omp-low.c (gate_lower_omp): Return 0.
2492	* passes.c (init_optimization_passes): Enable all passes whose
2493	corresponding dump options are used in the testsuite.
2494	* tree-loop-distribution.c (tree_loop_distribution): Comment body.
2495	(gate_tree_loop_distribution): Return 0.
2496	* tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
2497	Comment body.
2498	(gate_forwprop): Return 0.
2499	* tree-ssa-loop.c (gate_tree_ssa_loop_unswitch): Return 0.
2500	(gate_tree_vectorize): Return 0.
2501	(gate_tree_ssa_loop_ivcanon): Return 0.
2502	(tree_ssa_empty_loop): Return 0.
2503	(gate_tree_complete_unroll): Return 0.
2504	* tree-ssa-pre.c (gate_fre): Return 0.
2505	* tree-ssa-reassoc.c (execute_reassoc): Comment body.
2506	(gate_tree_ssa_reassoc): Return 0.
2507	* tree-stdarg.c (gate_optimize_stdarg): Return 0.
2508	(execute_optimize_stdarg): Comment body.
2509	* tree-vrp.c (execute_vrp): Comment body.
2510	(gate_vrp): Return 0.
2511
25122008-04-22  Aldy Hernandez  <aldyh@redhat.com>
2513
2514	* omp-low.c (lower_omp_parallel): Add new argument to
2515	gimple_omp_parallel_set_combined_p.
2516	(lower_omp_1): Remove debugging code.
2517	* gimple.h (gimple_omp_parallel_combined_p): Add new argument.
2518
25192008-04-22  Rafael Espíndola <espindola@google.com>
2520
2521	Merge with mainline @134552.
2522
2523	* configure.ac (ACX_PKGVERSION): Update revision merge string.
2524	* configure: Regenerate.
2525
25262008-04-21  Doug Kwan  <dougkwan@google.com>
2527
2528	* tree-ssa-phiopt.c (FILE): Uncomment all previously disabled code.
2529	(tree_ssa_phiopt): Remove FIXME and re-enable code.
2530	(tree_ssa_cs_elim): Remove FIXME and re-enable code.
2531	(tree_ssa_phiopt_worker): Tuplify.
2532	(replace_phi_edge_with_variable): Tuplify.
2533	(conditional_replacement): Tuplify and simplify optimization logic.
2534	Construct a boolean tree and let fold and force_gimple_operand_gsi
2535	do optimization and code genaration.
2536	(value_replacement): Tuplify.
2537	(minmax_replacement): Tuplify.
2538	(abs_replacement): Tuplify.
2539	(nt_init_block): Tuplify.
2540	(cond_store_replacement): Tuplify.
2541	* gimple.h (gimple_seq_singleton_p): Fix empty sequence bug.
2542	* passes.c (init_optimization_passes): Re-enable pass_cselim
2543	and pass_phiopt.
2544
25452008-04-21  Diego Novillo  <dnovillo@google.com>
2546
2547	* tree.c (make_node_stat): Clear gimple_body() for newly
2548	created FUNCTION_DECLs.
2549	* tree-gimple.c (rhs_predicate_for): Move to gimplify.c.
2550	* tree-gimple.h (rhs_predicate_for): Remove declaration.
2551	* gimple-pretty-print.c (dump_gimple_assign): Add support
2552	for showing volatile operands.
2553	(dump_gimple_call): Likewise.
2554	Add support for showing __builtin_va_arg_pack, static
2555	chains, return slot optimized and tail calls.
2556	(dump_gimple_phi): Remove code to print memory symbols.
2557	* gimplify.c (is_gimple_formal_tmp_or_call_rhs): New.
2558	(is_gimple_mem_or_call_rhs): New.
2559	(rhs_predicate_for): Call them.
2560	(internal_get_tmp_var): Use is_gimple_formal_tmp_or_call_rhs as
2561	the gimplification predicate.
2562	Use the last statement in *PRE_P to get the temporary to
2563	be updated when in SSA form.
2564	(gimplify_bind_expr): Clear out *EXPR_P before returning.
2565	(gimplify_call_expr): Do not build a GIMPLE_CALL if
2566	WANT_VALUE is true.
2567	Call gimple_build_call_from_tree if WANT_VALUE is false.
2568	Remove local variable ARGS.
2569	(gimplify_modify_expr): If after gimplification *FROM_P
2570	is a CALL_EXPR, create a GIMPLE_CALL instead of a
2571	GIMPLE_ASSIGN.
2572	Document why the gimplification of the RHS should accept
2573	CALL_EXPRs.
2574	(gimplify_expr): Document where the generated statement
2575	is stored.
2576	Accept is_gimple_formal_tmp_or_call_rhs and
2577	is_gimple_mem_or_call_rhs as gimplification predicates.
2578	When gimplifying statements, clear out *EXPR_P before
2579	returning.
2580	When generating an rvalue, call is_gimple_formal_tmp_or_call_rhs
2581	to test *EXPR_P.
2582	* tree-dfa.c (mark_symbols_for_renaming): Remove
2583	ATTRIBUTE_UNUSED.
2584	* tree-flow.h (stmt_references_memory_p): Remove.
2585	* gimple.c (gimple_build_call_from_tree): New.
2586	* gimple.h (struct gimple_statement_with_memory_ops): Add
2587	bitfield references_memory_p.
2588	(gimple_build_call_from_tree): Declare.
2589	(gimple_references_memory_p): Rename from
2590	stmt_references_memory_p.  Move here.  Update all users.
2591	(gimple_set_references_memory): New.
2592	(gimple_assign_set_rhs1): When the assignment has more
2593	than one operand on the RHS, assert that the operands are
2594	gimple values.
2595	(gimple_assign_set_rhs2): Assert that the operand is a
2596	gimple value.
2597	(gimple_call_set_return_slot_opt): Fix mask clearing.
2598	(gimple_call_set_from_thunk): Likewise.
2599	(gimple_call_set_va_arg_pack): Likewise.
2600	* tree-cfg.c (dump_function_to_file): Do not indent when
2601	doing a GIMPLE dump.
2602	* tree-ssa-operands.c (add_virtual_operand): Call
2603	gimple_set_references_memory.
2604	(get_addr_dereference_operands): Likewise.
2605	(get_tmr_operands): Likewise.
2606	(maybe_add_call_clobbered_vops): Likewise.
2607	(get_asm_expr_operands): Likewise.
2608	(parse_ssa_operands): Likewise.
2609	(build_ssa_operands): Likewise.
2610	(stmt_references_memory_p): Remove.
2611
26122008-04-21  Rafael Espíndola <espindola@google.com>
2613
2614	Cherry pick http://gcc.gnu.org/ml/gcc-patches/2008-04/msg01213.html
2615
2616	* params.def (PARAM_MAX_FIELDS_FOR_FIELD_SENSITIVE): Set default
2617	to zero, thus disable creation of SFTs.
2618	* gcc.dg/tree-ssa/salias-1.c: Remove.
2619	* gcc.dg/tree-ssa/pr26421.c: Adjust pattern.
2620	* gcc.dg/tree-ssa/alias-15.c: Likewise.
2621	* gcc.dg/tree-ssa/ssa-lim-3.c: Run at -O2.
2622
26232008-04-20  Zdenek Dvorak  <ook@ucw.cz>
2624
2625	* passes.c (init_optimization_passes): Enable pass_dce_loop.
2626
26272008-04-20  Zdenek Dvorak  <ook@ucw.cz>
2628
2629	* tree-data-ref.c (split_constant_offset_1): Use POINTER_PLUS_EXPR
2630	for pointer addition.
2631	(split_constant_offset): Set VAR to EXP before conversions are
2632	stripped, when no offset is removed.  Handle chrec_dont_know.
2633	* tree-predcom.c: Tuplified.
2634	* passes.c (init_optimization_passes): Enable pass_predcom.
2635
26362008-04-18  Aldy Hernandez  <aldyh@redhat.com>
2637
2638	* omp-low.c (lower_rec_input_clauses): Remove fixme and
2639	ATTRIBUTE_UNUSED.
2640	(lower_lastprivate_clauses): Same.
2641	(lower_reduction_clauses): Same.
2642	(lower_copyprivate_clauses): Same.
2643	(lower_send_clauses): Same.
2644	(lower_send_shared_vars): Same.
2645	(maybe_catch_exception): Convert to tuples.
2646	(lower_omp_sections): Same.
2647	(lower_omp_single_simple): Same.
2648	(lower_omp_single_copy): Same.
2649	(lower_omp_single): Same.
2650	(lower_omp_master): Same.
2651	(lower_omp_ordered): Same.
2652	(lower_omp_critical): Same.
2653	(lower_omp_for_lastprivate): Same.
2654	(lower_omp_for): Same.
2655	(check_combined_parallel): Same.
2656	(lower_omp_parallel): Same.
2657	(lower_omp_1): Same.
2658	(execute_lower_omp): Enable.
2659	* gimple-dummy.c: Remove dummy functions for lower_omp_*.
2660	* gimple-low.c (lower_omp_directive): Convert to tuples.
2661	(lower_stmt): Remove fixme.
2662	* gimple.h (gimple_seq_alloc_with_stmt): New.
2663	(gimple_omp_section_set_last): New.
2664	(gimple_omp_parallel_set_combined_p): New.
2665	(gimple_bind_add_stmt): New.
2666	(gimple_bind_add_seq): New.
2667	* tree-cfg.c (verify_node_sharing): Fix typo in comment.
2668
26692008-04-17  Oleg Ryjkov  <olegr@google.com>
2670
2671	* Reverting forwprop patch.
2672
2673	2008-04-16  Oleg Ryjkov  <olegr@google.com>
2674
2675		* tree-ssa-forwprop.c (get_prop_dest_stmtm get_prop_source_stmt,
2676		can_propagate_from, remove_prop_source_from_use,
2677		tidy_after_forward_propagate_addr,
2678		forward_propagate_addr_into_variable_array_index,
2679		forward_propagate_addr_expr_1, forward_propagate_addr_expr,
2680		forward_propagate_comparison, simplify_not_neg_expr,
2681		simplify_switch_expr,
2682		tree_ssa_forward_propagate_single_use_variables): Tuplified.
2683		(forward_propagate_into_cond): Tuplified and moved some functionality
2684		into forward_propagate_into_cond_gimple.
2685		(rhs_to_tree, forward_propagate_into_cond_gimple): New functions.
2686		* passes.c (init_optimization_passes): Enabled pass_forwprop.
2687		* tree-cfg.c (find_taken_edge_cond_expr): Fixed comment.
2688
26892008-04-16  Oleg Ryjkov  <olegr@google.com>
2690
2691	* tree-ssa-forwprop.c (get_prop_dest_stmtm get_prop_source_stmt,
2692	can_propagate_from, remove_prop_source_from_use,
2693	tidy_after_forward_propagate_addr,
2694	forward_propagate_addr_into_variable_array_index,
2695	forward_propagate_addr_expr_1, forward_propagate_addr_expr,
2696	forward_propagate_comparison, simplify_not_neg_expr,
2697	simplify_switch_expr,
2698	tree_ssa_forward_propagate_single_use_variables): Tuplified.
2699	(forward_propagate_into_cond): Tuplified and moved some functionality
2700	into forward_propagate_into_cond_gimple.
2701	(rhs_to_tree, forward_propagate_into_cond_gimple): New functions.
2702	* passes.c (init_optimization_passes): Enabled pass_forwprop.
2703	* tree-cfg.c (find_taken_edge_cond_expr): Fixed comment.
2704
27052008-04-16  Doug Kwan  <dougkwan@google.com>
2706
2707	* Makefile.in (STRICT_WARN): Disable -Wmissing-format-attribute
2708	and -Wformat temporarily for bootstrapping.
2709	* lambda-code.c (invariant_in_loop_and_outer_loops): Comment out
2710	to avoid defined-and-not-used warning.
2711	* tree-cfg.c (gather_blocks_in_sese_region): Comment out to avoid
2712	defined-and-not-used warning.
2713
27142008-04-16  Doug Kwan  <dougkwan@google.com>
2715
2716	* Makefile.in (GTFILES): Add back ipa-reference.h and ipa-reference.c.
2717	* gimple-dummy.c (memory_identifier_string): Remove.
2718	* ipa-cp.c (constant_val_insert): Tuplify.
2719	* ipa-prop.c (File): Uncomment all previously disabled code.
2720	(ipa_method_modify_stmt): Tuplify.
2721	(ipa_method_compute_modify): Tuplify.
2722	(ipa_callsite_tree): Renamed to ipa_callsite_stmt.  Update callers.
2723	(ipa_callsite_stmt): New.
2724	(ipa_callsite_compute_count): Tuplify.
2725	(ipa_callsite_compute_param): Tuplify.
2726	* ipa-reference.c (File): Uncomment all previously disabled code.
2727	(get_asm_stmt_operands): Tuplify.
2728	(check_call): Tuplify.  Also add code to handle assignment of
2729	returned value.
2730	(scan_for_static_refs): Remove.  Tuplify body and split into two
2731	new functions scan_stmt_for_static_refs and scan_op_for_static_refs.
2732	Update callers.
2733	(scan_stmt_for_static_refs): New.  Split from scan_for_static_refs.
2734	(scan_op_for_static_refs): New.  Split from scan_for_static_refs.
2735	(analyze_variable): Update walk_tree call.
2736	(analyze_function): Tuplify.
2737	* passes.c (init_optimization_passes): Re-enable pass_ipa_reference.
2738	* tree-flow.h (struct function_ann_d): Uncomment field
2739	ipa_reference_vars_info.
2740
27412008-04-15  Doug Kwan  <dougkwan@google.com>
2742
2743	* tree-eh.c (operation_could_trap_p): Fix filtering logic.
2744
27452008-04-15  Bill Maddox  <maddox@google.com>
2746
2747	* tree-ssa-dom.c: (degenerate_phi_result, remove_stmt_or_phi,
2748	get_rhs_or_phi_arg, get_lhs_or_phi_result, propagate_rhs_into_lhs,
2749	eliminate_const_or_copy, eliminate_degenerate_phis_1,
2750	eliminate_degenerate_phis): Convert to tuples.
2751	* passes.c (init_optimization_passes): Enable pass_phi_only_cprop.
2752
27532008-04-15  Oleg Ryjkov  <olegr@google.com>
2754
2755	* tree-ssa-dom.c (record_const_or_copy): Moving a variable declaration to
2756	the top of a block.
2757
27582008-04-15  Doug Kwan  <dougkwan@google.com>
2759
2760	* tree-ssa-sink.c (File): Uncomment all previously disabled code.
2761	(find_bb_for_arg): Tuplify.
2762	(all_immediate_uses_sample_place): Tuplify.
2763	(nearest_common_dominator_of_uses): Tuplify.
2764	(statement_sink_location): Tuplify.  Remove parameter tobb and update
2765	caller.
2766	(sink_code_in_bb): Tuplify.
2767	* passes.c (init_optimization_passes): Re-enable pass_sink_code.
2768
27692008-04-14  Bill Maddox  <maddox@google.com>
2770
2771	* tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edge,
2772	create_edge_and_update_destination_phis, redirection_block_p):
2773	Convert to tuples.
2774	* tree.c (iterative_hash_exprs_commutative): New function.
2775	* tree.h (iterative_hash_exprs_commutative): Declare.
2776	* tree-ssa_dom.c (enum expr_kind, struct hashable_expr,
2777	struct cond_equivalence): New types.
2778	(struct edge_info): Use struct cond_equivalence.
2779	(avail_exprs_stack): Stack of expr_hash_elt*, not expressions.
2780	(stmts_to_rescan): Use type gimple for statements.
2781	(struct expr_hash_elt): Represent statement RHS with hashable_expr,
2782	not a tree.  Add unique stamp to each entry for efficient and reliable
2783	element removal.
2784	(struct eq_expr_value): Delete unused type.
2785	(initialize_hash_element): Convert to tuples.  Now applies
2786	only to statements.
2787	(initialize_expr_from_cond, initialize_hash_element_from_expr):
2788	New functions.  Replace former functionality of initialize_hash_element
2789	for conditions presented as trees.
2790	(hashable_expr_equal_p, iterative_hash_hashable_expr): New functions.
2791	(print_expr_hash_elt): New function.
2792	(free_expr_hash_elt): New function.
2793	(tree_ssa_dominator_optimize): Convert to tuples
2794	(canonicalize_comparison): Convert to tuples.
2795	(remove_local_expressions_from_table): Use new avail_exprs_stack
2796	representation.  Add optional extra diagnostic details.
2797	(simplify_stmt_for_jump_threading, dom_thread_across_edge,
2798	dom_opt_finalize_block): Convert to tuples.
2799	(record_cond, build_and_record_new_cond): Convert to tuples.
2800	Use new hashable_expr type.  Extra diagnostic details.
2801	(record_const_or_copy_1): Extra diagnostic details.
2802	(record_const_or_copy): Add assertion.
2803	(simple_iv_increment_p, cprop_into_successor_phis, record_edge_info):
2804	Convert to tuples.
2805	(eliminate_redundant_computations): Convert to tuples.
2806	Additional diagnostic details.
2807	(gimple_assign_unary_useless_conversion_p): New function.
2808	(record_equivalences_from_statement): Convert to tuples.
2809	Additional diagnostic details.
2810	(cprop_operand, cprop_into_stmt): Convert to tuples.
2811	(optimize_stmt): Convert to tuples.
2812	(lookup_avail_expr): Use hashable_expr.  Additional diagnostic details.
2813	(avail_expr_hash, avail_expr_eq): Use hashable_expr.
2814	* tree-ssa-copy.c (may_propagate_copy_into_stmt,
2815	propagate_tree_value_into_stmt): New functions.
2816	* tree-flow.h: (may_propagate_copy_into_stmt,
2817	propagate_tree_value_into_stmt): Declare.
2818	(thread_across_edge): Change declaration of callback to accept a
2819	gimple statement.
2820	* gimple.c (gimple_call_flags): Declare argument as a constant.
2821	(gimple_has_side_effects): Declare argument as a constant.
2822	Examine function arguments for side-effects.
2823	(gimple_rhs_has_side_effects): New function.
2824	* gimple.h (gimple_call_flags): Declare argument as a constant.
2825	(gimple_has_side_effects): Declare argument as a constant.
2826	(gimple_rhs_has_side_effects): Declare new function.
2827	(is_gimple_assign): New inline function.
2828	(gimple_switch_index_ptr): New function.
2829	* passes.c (init_optimization_passes): Enable pass_dominator.
2830	* tree-ssa_threadedge.c (potentially_threadable_block,
2831	lhs_of_dominating_assert, record_temporary_equivalences_from_phis):
2832	Convert to tuples.
2833	(fold_assignment_stmt): New function.
2834	(record_temporary_equivalences_from_stmts_at_dest,
2835	simplify_control_stmt_condition, thread_across_edge): Convert to tuples.
2836
28372008-04-14  Doug Kwan  <dougkwan@google.com>
2838
2839	* c-typeck.c (convert_for_assignment): Call c_common_unsigned_type
2840
28412008-04-14  Doug Kwan  <dougkwan@google.com>
2842
2843	* gimple-iterator.c (gsi_move_to_bb_end): Use gsi_last_bb
2844	instead of calling both gsi_last and bb_seq.
2845	* passes.c (init_optimization_passes): Re-eanble second tail-recursion
2846	pass.
2847
28482008-04-14  Doug Kwan  <dougkwan@google.com>
2849
2850	* tree-nrv.c (dest_safe_for_nrv_p):  Uncomment.
2851 	(execute_return_slot_opt): Tuplify.
2852	* passes.c (init_optimization_passes): Re-enable pass_return_slot.
2853
28542008-04-14  Aldy Hernandez  <aldyh@redhat.com>
2855
2856	* tree-cfg.c (gimple_can_merge_blocks_p): Fix typo.
2857	* omp-low.c (maybe_lookup_ctx): Uncomment and set ATTRIBUTE_UNUSED.
2858	(lower_lastprivate_clauses): Same.
2859	(lower_reduction_clauses): Same.
2860	(lower_send_clauses): Same.
2861	(expand_omp_for_generic): Uncomment and convert for tuples.
2862	(expand_omp_for): Remove fixme.
2863	(expand_omp_sections): Same.
2864	(lower_omp_parallel): Partially convert for tuples.
2865	(lower_omp_regimplify_p): Rename from lower_omp_2.
2866	(lower_omp_1): Convert for tuples.
2867	(lower_omp): Same.
2868	(gimple-dummy.c): Add lower_omp_parallel, lower_omp_for,
2869	lower_omp_sections, lower_omp_single, lower_omp_master,
2870	lower_omp_ordered, lower_omp_critical.
2871
28722008-04-13  Diego Novillo  <dnovillo@google.com>
2873
2874	* tree-cfg.c (need_fake_edge_p): Initialize CALL_FLAGS.
2875
28762008-04-12  Rafael Espíndola <espindola@google.com>
2877
2878	Merge with mainline @134237.
2879
2880	* configure.ac (ACX_PKGVERSION): Update revision merge string.
2881	* configure: Regenerate.
2882
28832008-04-13  Rafael Espíndola <espindola@google.com>
2884
2885	* config/extensions.m4: Add. Was missing from previous merge.
2886
28872008-04-12  Rafael Espíndola <espindola@google.com>
2888
2889	Merge with mainline @133860.
2890
2891	* configure.ac (ACX_PKGVERSION): Update revision merge string.
2892	* configure: Regenerate.
2893
28942008-04-11  Oleg Ryjkov  <olegr@google.com>
2895
2896	* tree-sra.c (scalarize_use): Moving a variable declaration to
2897	the top of a block.
2898
28992008-04-11  Oleg Ryjkov  <olegr@google.com>
2900
2901	* tree-sra.c (insert_edge_copies_seq): Removed unused variable.
2902
29032008-04-11  Oleg Ryjkov  <olegr@google.com>
2904
2905	* tree-sra.c (sra_build_assignment): Tuplified.
2906	(mark_all_v_defs): Removed.
2907	(mark_all_v_defs_seq, mark_all_v_defs_stmt): New functions.
2908	(sra_walk_expr): Tuplified.
2909	(sra_walk_tree_list): Removed.
2910	(sra_walk_call_expr, sra_walk_gimple_asm,
2911	sra_walk_gimple_modifY_stmt, ): Tuplified and renamed.
2912	(sra_walk_gimple_call, sra_walk_gimple_asm,
2913	sra_walk_gimple_assign): New names for tuplified functions.
2914	(sra_walk_function, find_candidates_for_sra, scan_use, scan_copy,
2915	scan_ldst, instantiate_element, decide_instantiations,
2916	mark_all_v_defs_1, sra_build_assignment, sra_build_bf_assignment,
2917	sra_build_elt_assignment, generate_copy_inout,
2918	generate_element_copy, generate_element_zero,
2919	generate_one_element_init, generate_element_init_1): Tuplified.
2920	(insert_edge_copies): Removed.
2921	(insert_edge_copies_seq): New function.
2922	(sra_insert_before, sra_insert_after, sra_replace,
2923	sra_explode_bitfield_assignment, sra_sync_for_bitfield_assignment,
2924	scalarize_use, scalarize_copy, scalarize_init, mark_no_trap,
2925	scalarize_ldst, scalarize_parms, scalarize_function): Tuplified.
2926	(tree_sra, tree_sra_early): Enabled
2927	(sra_init_cache): Removed extra space.
2928	* tree-flow.h (insert_edge_copies_seq): New declaration.
2929	* gimple.h (gimple_asm_input_op_ptr, gimple_asm_output_op_ptr,
2930	gimple_return_retval_ptr): New functions.
2931	* passes.c (init_optimization_passes): Enabled pass_sra,
2932	pass_early_sra.
2933
29342008-04-11  Doug Kwan  <dougkwan@google.com>
2935
2936	* ipa-pure-const.c (get_asm_expr_operands): Tuplify.
2937	(get_asm_expr_operands): Tuplify.
2938	(check_call): Tuplify. Add code to handle return value assignment.
2939 	(scan_function): Remove. Original code is tuplified and split into
2940	two new functions scan_function_op and scan_function_stmt.
2941	(scan_function_op): New function.
2942	(scan_function_stmt): New function.
2943	(analyze_function): Tuplify and re-enable previously disabled code.
2944	* passes.c (init_optimization_passes): Re-enable pass_ipa_pure_const.
2945
29462008-04-11 Oleg Ryjkov  <olegr@google.com>
2947
2948	* builtins.c (fold_call_stmt): Return the proper value.
2949	* tree-ssa-ccp.c (maybe_fold_stmt_addition): Modify arguments to
2950	allow this function to be called on a GIMPLE_ASSIGN.
2951	(fold_stmt_r): Update the call to maybe_fold_stmt_addition.
2952	(fold_gimple_assign): Manually call maybe_fold_stmt_addition to
2953	fold a POINTER_PLUS_EXPR.
2954
29552008-04-11  Doug Kwan  <dougkwan@google.com>
2956
2957	* tree-ssa-phiprop.c (File): Uncomment all previously disabled code.
2958	(struct phiprop_d): Change type of vop_stmt to gimple.
2959	(phivn_valid_p): Tuplify.
2960	(phiprop_insert_phi): Tuplify.
2961	(propagate_with_phi): Tuplify.
2962	(tree_ssa_phiprop_1): Tuplify.
2963	(tree_ssa_phiprop): Tuplify.
2964	* passes.c (init_optimization_passes): Re-enable pass_phiprop.
2965
29662008-04-11  Rafael Espíndola <espindola@google.com>
2967
2968	* tree-ssa-math-opts.c (execute_cse_sincos_1): fix warning.
2969
29702008-04-10  Diego Novillo  <dnovillo@google.com>
2971
2972	http://gcc.gnu.org/ml/gcc-patches/2008-04/msg00913.html
2973
2974	* ipa-inline.c (cgraph_clone_inlined_nodes): Change uses
2975	of DECL_SAVED_TREE with gimple_body.
2976	(cgraph_decide_inlining_incrementally): Likewise.
2977	* gimple-iterator.c (gsi_insert_seq_before_without_update):
2978	Do nothing if SEQ is NULL.
2979	(gsi_insert_seq_after_without_update): Likewise.
2980	* tree-ssa-live.c (mark_all_vars_used_1): Do not handle
2981	EXPR trees.
2982	(remove_unused_locals): Mark the gimple_block of every
2983	statement as used.
2984	* tree-inline.c (remap_gimple_stmt): Forward declare.
2985	(remap_decls): Tidy comments.
2986	(remap_gimple_seq): New.
2987	(copy_gimple_bind): New.
2988	(remap_gimple_stmt): Call it.
2989	Handle High GIMPLE statements.
2990	(copy_bb): Regimplify operands on COPY_GSI instead of
2991	GSI.
2992	(copy_cfg_body): Tidy.
2993	(copy_generic_body): Remove unused function.
2994	(clone_body): Tuplify.
2995	* c-common.c (c_warn_unused_result): Remove assertion for
2996	FUNCTION_TYPE.
2997	* gimple.c (gimple_seq_copy): Rename from
2998	gimple_seq_deep_copy.  Update all users.
2999	(walk_gimple_stmt): Assert that STMT has no substatements
3000	in the default case.
3001	(gimple_copy_1): Merge into gimple_copy.
3002	(gimple_copy): Always do deep copying.
3003	Handle statements with substatements.
3004	(gimple_shallow_copy): Remove unused function.
3005	(gimple_deep_copy): Remove.  Update all users.
3006	* gimple.h: Tidy comments and structure fields
3007	everywhere.
3008	(gimple_has_substatements): New.
3009	(walk_stmt_fn): Change last argument to struct walk_stmt_info *.
3010	Update all users.
3011
30122008-04-10 Oleg Ryjkov  <olegr@google.com>
3013
3014	* tree.h (struct tree_base): Added a new flag default_def_flag.
3015	(SSA_NAME_IS_DEFAULT_DEF): Changed to use the new flag.
3016
30172008-04-08  Doug Kwan  <dougkwan@google.com>
3018
3019	* gimplify.c (gimple_push_cleanup): Initialize cleanup_stmts to NULL.
3020
30212008-04-08  Doug Kwan  <dougkwan@google.com>
3022
3023	* tree-tailcall.c (struct tailcall): Remove call_block and replace
3024	call_bsi by call_gsi.
3025	(independent_of_stmt_p): Change type of parameter 'at' to GIMPLE and
3026	change all tree using code to GIMPLE using equivalent.
3027	Remove parameter block_stmt_iterator type parameter bsi with
3028	gimple_stmt_iterator type parameter gsi. Replace uses of bsi with
3029	that of gsi in function body as appropriate.
3030	(process_assignment):  Remove parameter 'ass' and change type of
3031	parameter 'stmt' to GIMPLE.  Change all tree using code to GIMPLE
3032	using equivalent.
3033	(propagate_through_phis, eliminate_tail_call, optimize_tail_call):
3034	Change all tree using code to GIMPLE using equivalent.
3035	(find_tail_calls): Change all tree using code to GIMPLE using
3036	equivalent.  Remove code that handles GIMPLE_MODIFY_STMT containing
3037	a CALL_EXPR.
3038	(add_successor_phi_arg, adjust_return_value_with_ops,
3039	update_accumulator_with_ops, adjust_accumulator_values,
3040	create_tailcall_accumulator): New functions from refactoring of
3041	duplicated logic.
3042	(adjust_accumulator_values, adjust_return_value): Refactor.
3043	(tree_optimize_tail_calls_1): Refactor and change all tree using code
3044	to GIMPLE using equivalent.  Remove code to reverse phi list.
3045	* passes.c (init_optimization_passes):  Re-enable pass_tail_recursion
3046	and pass_tail_calls.
3047
30482008-04-04  Doug Kwan  <dougkwan@google.com>
3049
3050	* tree-ssa-math-opts.c (struct occurrence): Change field type of
3051	recip_def_stmt to gimple.
3052	(is_division_by): Tuplify.
3053	(insert_reciprocals): Tuplify.
3054	(replace_reciprocals): Tuplify.
3055	(execute_cse_reciprocals_1): Tuplify.
3056	(execute_cse_reciprocals): Tuplify.
3057	(maybe_record_sincos): Use vector of gimples instead of vector of
3058	trees.
3059	(execute_cse_sincos_1): Tuplify.  When adjusting recorded old call
3060	sites, generate new gimple assign statements and remove old gimple
3061	call statements.
3062	(execute_cse_sincos): Tuplify.
3063	(execute_convert_to_rsqrt): Tuplify.
3064	* passes.c (init_optimization_passes): Enable pass_cse_sincos,
3065	pass_cse_reciprocals and pass_convert_to_rsqrt.
3066
30672008-04-04  Aldy Hernandez  <aldyh@redhat.com>
3068
3069	* omp-low.c (gimple_build_cond_empty): New.
3070	(expand_parallel_call): Convert COND_EXPR to GIMPLE_COND.
3071	(expand_omp_for_generic): Same.
3072	(expand_omp_for_static_nochunk): Same.
3073	(expand_omp_for_static_chunk): Same.
3074	(expand_omp_atomic_pipeline): Same.
3075
30762008-04-04  Diego Novillo  <dnovillo@google.com>
3077
3078	http://gcc.gnu.org/ml/gcc-patches/2008-04/msg00413.html
3079
3080	* tree-ssa-loop-im.c (movement_possibility): Return
3081	MOVE_IMPOSSIBLE if that statement makes no assignment.
3082	* tree-complex.c (get_component_ssa_name): Fix comment.
3083	(set_component_ssa_name): Assert that COMP's definition
3084	is LAST.
3085	* cgraph.c (cgraph_update_edges_for_call_stmt): Tuplify.
3086	(dump_cgraph_node): Likewise.
3087	* tree.c (auto_var_in_fn_p): Fix comment.
3088	* cgraphunit.c (verify_cgraph_node): Remove tuples hack
3089	that avoided verifying nodes.
3090	* gimple-pretty-print.c (dump_gimple_asm): Show the
3091	volatile flag.
3092
3093	* gimple-dummy.c (optimize_inline_calls): Remove.
3094	(tree_function_versioning): Remove.
3095	(tree_versionalbe_function_p): Remove.
3096	* ipa-inline.c (cgraph_clone_inlined_bodies): Re-format.
3097	(cgraph_decide_inlining): Re-format.
3098	(cgraph_decide_inlining_incrementally): Re-format.
3099	(pass_ipa_inline): Re-format.
3100	* gimplify.c (gimplify_call_expr): Carry all the
3101	CALL_EXPR flags to the newly created GIMPLE_CALL.
3102	(gimplify_asm_expr): Carry ASM_VOLATILE_P and ASM_INPUT_P
3103	over to the new GIMPLE_ASM.
3104	* tree-dfa.c (find_new_referenced_vars): Change argument
3105	to gimple.  Update all callers.
3106	* cfgexpand.c (set_expr_location_r): New private.
3107	(gimple_to_tree): Call it.
3108	Set ASM_VOLATILE_P and ASM_INPUT_P for ASM_EXPRs.
3109	Carry flags from GIMPLE_CALL for CALL_EXPRs.
3110	Set TREE_BLOCK on the newly created expression.
3111	* tree-inline.c: Tuplify.
3112	* tree-inline.h: Tuplify.
3113	* tree-optimize.c (execute_fixup_cfg): Tuplify.
3114	* gimple.c (gimple_build_call_vec): Change second
3115	argument type to VEC(tree, heap).  Update all callers.
3116	(gimple_build_assign_with_ops): If the LHS is an
3117	SSA_NAME, set SSA_NAME_DEF_STMT on it.
3118	(walk_gimple_seq): Change return type to gimple.  Update
3119	all users.
3120	If walk_gimple_stmt returned a value, store it in
3121	WI->CALLBACK_RESULT.
3122	(walk_gimple_op): Walk gimple_call_chain_ptr() and
3123	gimple_call_fn_ptr() for GIMPLE_CALL.
3124	(walk_gimple_stmt): Add new local HANDLED_OPS.
3125	If callback_stmt() sets HANDLED_OPS, return its return
3126	value.
3127	If any call to walk_gimple_seq returns a non-NULL value,
3128	return WI->CALLBACK_RESULT.
3129	(gimple_copy_1): New function.
3130	(gimple_deep_copy): Rename from gimple_copy.  Update all
3131	users.
3132	Call gimple_copy_1.
3133	(gimple_shallow_copy): New.
3134	(gimple_regimplify_operands): New.
3135	* gimple.h (GF_ASM_INPUT): Define.
3136	(GF_ASM_VOLATILE): Define.
3137	(GF_CALL_CANNOT_INLINE): Define.
3138	(GF_CALL_FROM_THUNK): Define.
3139	(GF_CALL_RETURN_SLOT_OPT): Define.
3140	(GF_CALL_VA_ARG_PACK): Define.
3141	(gimple_stmt_iterator): Move earlier in the file.
3142	(gimple_omp_return_nowait_p): Fix return expression.
3143	(gimple_omp_section_last_p): Likewise.
3144	(gimple_omp_parallel_combined_p): Likewise.
3145	(gimple_call_noreturn_p): Likewise.
3146	(gimple_call_nothrow_p): Likewise.
3147	(gimple_asm_volatile_p): Likewise.
3148	(gimple_try_catch_is_cleanup): Likewise.
3149	(gimple_assign_set_rhs1): assert that RHS is a gimple
3150	operand.
3151	(is_gimple_call): New.  Change all users that tested
3152	gimple_code() == GIMPLE_CALL.
3153	(gimple_call_fn_ptr): New.
3154	(gimple_call_chain_ptr): New.
3155	(gimple_call_set_chain): Accept NULL values for CHAIN.
3156	(gimple_call_set_tail): Add bool argument specifying the
3157	value of the flag.  Update all users.
3158	(gimple_asm_set_volatile): Likewise.
3159	(gimple_call_set_cannot_inline): Rename from
3160	gimple_call_mark_uninlinable.  Add bool argument
3161	specifying the value of the flag.  Update all users.
3162	(gimple_call_set_return_slot_opt): New.
3163	(gimple_call_return_slot_opt_p): New.
3164	(gimple_call_set_from_thunk): New.
3165	(gimple_call_from_thunk_p): New.
3166	(gimple_call_va_arg_pack_p): New.
3167	(gimple_call_copy_flags): New.
3168	(gimple_asm_set_input): New.
3169	(gimple_asm_input_p): New.
3170	(gimple_asm_clear_volatile): Remove.
3171	(walk_stmt_fn): Add second argument bool *.  Update all
3172	users.
3173	(struct walk_stmt_info): Add new field callback_result.
3174	* tree-cfg.c (gimple_split_block): Tuplify.
3175	(gimple_block_ends_with_condjump_p): Tuplify.
3176	(need_fake_edge_p): Tuplify.
3177	(gimple_flow_call_edges_add): Tuplify.
3178	(gimple_purge_dead_abnormal_call_edges): Tuplify.
3179	(gimple_purge_dead_eh_edges): Remove ATTRIBUTE_UNUSED.
3180	(gimple_cfg_hooks): Add gimple_block_ends_with_condjump_p
3181	and gimple_flow_call_edges_add
3182	* passes.c (init_optimization_passes): Enable
3183	pass_cleanup_cfg, pass_inline_parameters,
3184	pass_ipa_inline and pass_apply_inline.
3185	(execute_todo): Re-enable check for TODO_update_ssa_any
3186	if need_ssa_update_p() returns true.
3187	* tree-ssa-operands.c (ssa_operands_active): Return false
3188	if cfun is NULL.
3189
3190
31912008-04-04  Rafael Espíndola <espindola@google.com>
3192
3193	Merge with mainline @133632.
3194
3195	* configure.ac (ACX_PKGVERSION): Update revision merge string.
3196	* configure: Regenerate.
3197
31982008-04-04  Rafael Espíndola <espindola@google.com>
3199
3200	Merge with mainline @133631.
3201
3202	* configure.ac (ACX_PKGVERSION): Update revision merge string.
3203	* configure: Regenerate.
3204
32052008-04-04  Rafael Espíndola <espindola@google.com>
3206
3207	Merge with mainline @133630.
3208
3209	* configure.ac (ACX_PKGVERSION): Update revision merge string.
3210	* configure: Regenerate.
3211
32122008-04-03  Aldy Hernandez  <aldyh@redhat.com>
3213
3214	* omp-low.c (expand_omp_sections): Use
3215	gimple_omp_sections_control.
3216	(lower_omp_sections): Same.
3217	* gimplify.c (gimplify_omp_workshare): Adjust OMP clauses before
3218	creating gimple tuple.
3219	Add gimple tuple to sequence.
3220	Set OMP_SECTIONS_CONTROL in newly created tuple.
3221	* gimple.h (gimple_statement_omp_sections): Add control.
3222	(gimple_omp_sections_control): New.
3223	(gimple_omp_sections_control_ptr): New.
3224	(gimple_omp_sections_set_control): New.
3225
32262008-04-03  Oleg Ryjkov  <olegr@google.com>
3227
3228	* tree-nested.c (convert_nl_goto_receiver): Changed to hadle gimple
3229	statements instead of trees.
3230	(lower_nested_functions): Pass convert_nl_goto_receiver as the first
3231	parameter to walk_all_functions.
3232
32332008-04-03  Rafael Espíndola <espindola@google.com>
3234
3235	Merge with mainline @133624.
3236
3237	* configure.ac (ACX_PKGVERSION): Update revision merge string.
3238	* configure: Regenerate.
3239
32402008-04-03  Rafael Espíndola <espindola@google.com>
3241
3242	Merge with mainline @133612.
3243
3244	* configure.ac (ACX_PKGVERSION): Update revision merge string.
3245	* configure: Regenerate.
3246
32472008-04-03  Aldy Hernandez  <aldyh@redhat.com>
3248
3249	* tree-pretty-print.c (dump_generic_node): Remove
3250	OMP_{RETURN,CONTINUE} cases.
3251	* tree.h (OMP_RETURN_NOWAIT): Remove.
3252	* omp-low.c (dump_omp_region): Rename OMP_{CONTINUE,RETURN} to
3253	GIMPLE_OMP_{CONTINUE,RETURN}.
3254	(expand_omp_for_generic): Handle new arguments to
3255	GIMPLE_OMP_CONTINUE.
3256	(expand_omp_for_static_nochunk): Same.
3257	(expand_omp_for_static_chunk): Same.
3258	(expand_omp_sections): Same.
3259	(expand_omp): Rename all OMP_* to GIMPLE_OMP_*.
3260	(lower_omp_sections): Rename OMP_CONTINUE to GIMPLE_OMP_CONTINUE.
3261	(lower_omp_for): Same.
3262	* tree-gimple.c (is_gimple_stmt): Remove OMP_{RETURN,CONTINUE}
3263	cases.
3264	* gsstruct.def: Add GSS_OMP_CONTINUE.
3265	* gimple-pretty-print.c (dump_gimple_omp_continue): New.
3266	(dump_gimple_omp_return): New.
3267	(dump_gimple_stmt): Add cases for GIMPLE_OMP_{CONTINUE,RETURN}.
3268	* gimplify.c (gimplify_expr): Remove cases for
3269	OMP_{CONTINUE,RETURN}.
3270	* tree.def (DEFTREECODE): Remove OMP_{RETURN,CONTINUE}.
3271	* tree-cfgcleanup.c (cleanup_omp_return): Rename
3272	OMP_SECTIONS_SWITCH to GIMPLE_OMP_SECTIONS_SWITCH.
3273	* gimple.c (gss_for_code): GIMPLE_OMP_RETURN returns GSS_BASE.
3274	GIMPLE_OMP_CONTINUE return GSS_OMP_CONTINUE.
3275	(gimple_size): Adjust size of GIMPLE_OMP_{RETURN,CONTINUE}.
3276	(gimple_build_omp_continue): Change arguments.
3277	(walk_gimple_op): Walk GIMPLE_OMP_CONTINUE operands.
3278	(walk_gimple_stmt): Remove GIMPLE_OMP_CONTINUE case.
3279	* gimple.h (struct gimple_statement_omp_continue): New.
3280	(union gimple_statement_d): Add gimple_omp_continue.
3281	(gimple_build_omp_continue): Change argument types in prototype.
3282	(gimple_omp_return_set_nowait): Rename OMP_RETURN to
3283	GIMPLE_OMP_RETURN.
3284	(gimple_omp_continue_control_def): New.
3285	(gimple_omp_continue_control_def_ptr): New.
3286	(gimple_omp_continue_set_control_def): New.
3287	(gimple_omp_continue_control_use): New.
3288	(gimple_omp_continue_control_use_ptr): New.
3289	(gimple_omp_continue_set_control_use): New.
3290	* tree-cfg.c (make_edges): Rename OMP_ to GIMPLE_OMP_.
3291	(gimple_redirect_edge_and_branch): Same.
3292	* tree-ssa-operands.c (get_expr_operands): Remove OMP_CONTINUE
3293	case.
3294
32952008-04-02  Doug Kwan  <dougkwan@google.com>
3296
3297	* tree-complex.c (expand_complex_comparison): Set condition code
3298	correctly for the NE_EXPR case.
3299	* cfgexpand.c (gimple_to_tree): Generate assignment to return value
3300	if necessary.
3301
33022008-04-02  Rafael Espíndola <espindola@google.com>
3303
3304	Merge with mainline @133597.
3305
3306	* configure.ac (ACX_PKGVERSION): Update revision merge string.
3307	* configure: Regenerate.
3308
33092008-04-02  Rafael Espíndola <espindola@google.com>
3310
3311	Merge with mainline @133527.
3312
3313	* configure.ac (ACX_PKGVERSION): Update revision merge string.
3314	* configure: Regenerate.
3315
33162008-04-02  Rafael Espíndola <espindola@google.com>
3317
3318	Merge with mainline @133519.
3319
3320	* configure.ac (ACX_PKGVERSION): Update revision merge string.
3321	* configure: Regenerate.
3322
33232008-04-02  Rafael Espíndola <espindola@google.com>
3324
3325	Merge with mainline @133453.
3326
3327	* configure.ac (ACX_PKGVERSION): Update revision merge string.
3328	* configure: Regenerate.
3329
33302008-04-01  Doug Kwan  <dougkwan@google.com>
3331	    Bill Maddox  <maddox@google.com>.
3332
3333	* value-prof.c (interesting_stringop_to_profile_p) Call
3334	validate_gimple_arglist instead of validate_arglist.
3335	* tree.h (validate_arglist): New declaration.
3336	* builtins.c (expand_builtin_setjmp_receiver, expand_builtin_longjmp,
3337	expand_builtin_nonlocal_goto, expand_builtin_nonlocal_goto,
3338	expand_builtin_update_setjmp_buf, expand_builtin_prefetch,
3339	expand_builtin_apply, expand_builtin_return, expand_builtin_mathfn,
3340	expand_builtin_mathfn_2, expand_builtin_mathfn_3,
3341	expand_builtin_interclass_mathfn, expand_builtin_sincos,
3342	expand_builtin_cexpi, expand_builtin_int_roundingfn,
3343	expand_builtin_int_roundingfn_2, expand_builtin_pow,
3344	expand_builtin_powi, expand_builtin_strlen, expand_builtin_strlen,
3345	expand_builtin_strstr, expand_builtin_strchr, expand_builtin_strrchr,
3346	expand_builtin_memcpy, expand_builtin_memcpy,
3347	expand_builtin_mempcpy_args, expand_builtin_bcopy, expand_movstr,
3348	expand_builtin_stpcpy, expand_builtin_strncpy, builtin_memset_gen_str,
3349	expand_builtin_bzero, expand_builtin_memchr, expand_builtin_memcmp,
3350	expand_builtin_strcmp, expand_builtin_strncmp, expand_builtin_strcat,
3351	expand_builtin_strncat, expand_builtin_strspn, expand_builtin_alloca,
3352	expand_builtin_bswap, expand_builtin_unop, expand_builtin_fputs,
3353	expand_builtin_fabs, expand_builtin_copysign,
3354	expand_builtin___clear_cache, expand_builtin_init_trampoline,
3355	expand_builtin_adjust_trampoline, expand_builtin_signbit,
3356	expand_builtin, validate_arg, expand_builtin_object_size,
3357	expand_builtin_object_size, expand_builtin_memory_chk) Re-enable code
3358	previously disabled for GIMPLE.
3359	(expand_builtin_memcpy, expand_builtin_memset_args): Re-enable code
3360	previously disabled for GIMPLE.  Look up tree attribute for original
3361	GIMPLE statement.
3362	(validate_arglist): Use old interface of tree node instead of GIMPLE
3363	statement.
3364	(validate_gimple_arglist):  New function.
3365	* cfgexpand.c (gimple_to_tree): Set GIMPLE statement tree attribute
3366	for builtin function calls.
3367	* tree-flow.h (struct tree_ann_common_d): New field stmt.
3368	* gimple.h (validate_gimple_arglist): New declaration.
3369	(validate_arglist): Moved to tree.h.
3370
33712008-03-31  Oleg Ryjkov  <olegr@google.com>
3372
3373	* gimplify.c (gimplify_switch_expr): Verify the return value from
3374	gimplify_expr.
3375
33762008-03-31  Rafael Espíndola <espindola@google.com>
3377
3378	Merge with mainline @133452.
3379
3380	* configure.ac (ACX_PKGVERSION): Update revision merge string.
3381	* configure: Regenerate.
3382
33832008-03-31  Rafael Espíndola <espindola@google.com>
3384
3385	Merge with mainline @133440.
3386
3387	* configure.ac (ACX_PKGVERSION): Update revision merge string.
3388	* configure: Regenerate.
3389
33902008-03-31  Rafael Espíndola <espindola@google.com>
3391
3392	Merge with mainline @133423.
3393
3394	* configure.ac (ACX_PKGVERSION): Update revision merge string.
3395	* configure: Regenerate.
3396
33972008-03-30  Rafael Espíndola <espindola@google.com>
3398
3399	Merge with mainline @133342.
3400
3401	* configure.ac (ACX_PKGVERSION): Update revision merge string.
3402	* configure: Regenerate.
3403
34042008-03-28  Rafael Espíndola <espindola@google.com>
3405
3406	Merge with mainline @133341.
3407
3408	* configure.ac (ACX_PKGVERSION): Update revision merge string.
3409	* configure: Regenerate.
3410
34112008-03-28  Oleg Ryjkov  <olegr@google.com>
3412
3413	* tree-eh.c (replace_goto_queue_1): Do a deep copy of the replacement
3414	sequence.
3415	(maybe_record_in_goto_queue): Set is_label flag when recording
3416	GIMPLE_GOTOs.
3417	(do_return_redirection, do_return_redirection): Changed to set
3418	cont_stmt.
3419	(lower_try_finally_onedest): Fix the code that assumes that gotos
3420	themselves(instead of the labels) are recorded in the goto_queue.
3421	(lower_try_finally_copy): Likewise.
3422	(lower_try_finally_switch): Likewise, also fix the VEC_* operations.
3423	* gimple.h (gimple_build_switch): Fixed comment.
3424
34252008-03-28  Doug Kwan  <dougkwan@google.com>
3426
3427	* omp-low.c (expand_omp_sections): Fix build breakage due to an
3428	uninitialized variable.
3429
34302008-03-28  Rafael Espíndola <espindola@google.com>
3431
3432	Merge with mainline @133315.
3433
3434	* configure.ac (ACX_PKGVERSION): Update revision merge string.
3435	* configure: Regenerate.
3436
34372008-03-28  Diego Novillo  <dnovillo@google.com>
3438
3439	* omp-low.c (expand_omp_for_static_chunk): Initialize
3440	V_MAIN and V_BACK.
3441	(expand_omp_for): Initialize VIN.
3442
34432008-03-28  Rafael Espíndola <espindola@google.com>
3444
3445	Merge with mainline @133313.
3446
3447	* configure.ac (ACX_PKGVERSION): Update revision merge string.
3448	* configure: Regenerate.
3449
34502008-03-27  Doug Kwan  <dougkwan@google.com>
3451
3452	* c-decl.c (merge_decls): Also copy gimple bodies of decls.
3453	* gimplify.c (gimplify_call_expr): Do not exit early when
3454	gimplifying __builtin_va_start().
3455
34562008-03-27  Oleg Ryjkov  <olegr@google.com>
3457
3458	* gimple.c (walk_gimple_op): Add a check for assignments with more
3459	than one operand on the LHS.
3460
34612008-03-27  Aldy Hernandez  <aldyh@redhat.com>
3462
3463	* tree.c (empty_body_p): Remove.
3464	* tree.h (empty_body_p): Remove prototype.
3465	* omp-low.c (struct omp_context): Convert to tuples.
3466	(struct omp_context): Comment and convert to tuples.
3467	(scan_omp_op): New.
3468	(is_parallel_ctx): Convert to tuples.
3469	(extract_omp_for_data): Same.
3470	(workshare_safe_to_combine_p): Same.
3471	(get_ws_args_for): Same.
3472	(determine_parallel_type): Same.
3473	(use_pointer_for_field): Same.
3474	(dump_omp_region): Same.
3475	(debug_all_omp_regions): Same.
3476	(new_omp_region): Same.
3477	(new_omp_context): Same.
3478	(scan_sharing_clauses): Same.
3479	(create_omp_child_function): Same.
3480	(scan_omp_parallel): Same.
3481	(scan_omp_for): Same.
3482	(scan_omp_sections): Same.
3483	(scan_omp_single): Same.
3484	(check_omp_nesting_restrictions): Same.
3485	(scan_omp_1_op): New.
3486	(scan_omp_1_stmt): Rename from scan_omp_1.  Rewrite for tuples.
3487	(scan_omp): Convert to tuples.
3488	(build_omp_barrier): Same.
3489	(maybe_lookup_ctx): Same.
3490	(lower_rec_input_clauses): Same.
3491	(lower_lastprivate_clauses): Same.
3492	(lower_reduction_clauses): Same.
3493	(lower_copyprivate_clauses): Same.
3494	(lower_send_clauses): Same.
3495	(lower_send_shared_vars): Same.
3496	(expand_parallel_call): Same.
3497	(remove_exit_barrier): Same.
3498	(remove_exit_barriers): Same.
3499	(optimize_omp_library_calls): Same.
3500	(expand_omp_parallel): Same.
3501	(expand_omp_for_generic): Comment out, and convert to tuples.
3502	(expand_omp_for_static_nochunk): Convert to tuples.
3503	(expand_omp_for_static_chunk): Same.
3504	(expand_omp_for): Same.
3505	(expand_omp_sections): Same.
3506	(expand_omp_synch): Same.
3507	(expand_omp_atomic_fetch_op): Same.
3508	(expand_omp_atomic_pipeline): Same.
3509	(expand_omp_atomic_mutex): Same.
3510	(expand_omp_atomic): Same.
3511	(expand_omp): Same.
3512	(build_omp_regions_1): Same.
3513	(execute_expand_omp): Enable.
3514	(execute_lower_omp): Enable and convert to tuples.
3515	* gimple-dummy.c (omp_reduction_init): Remove.
3516	* tree-flow.h (struct omp_region): Convert 'type' to tuples.
3517	(new_omp_region): Adjust prototype for tuples.
3518	* gimple.c (empty_stmt_p): New.
3519	(empty_body_p): New.
3520	* gimple.h (empty_body_p): New prototype.
3521	(gimple_has_location): Remove fixmes.
3522	* tree-cfg.c (gimple_block_label): Remove ATTRIBUTE_UNUSED.
3523
35242008-03-27  Rafael Espíndola <espindola@google.com>
3525
3526	Merge with mainline @133311.
3527
3528	* configure.ac (ACX_PKGVERSION): Update revision merge string.
3529	* configure: Regenerate.
3530
35312008-03-27  Rafael Espíndola <espindola@google.com>
3532
3533	* gcc/tree-nested.c (save_tmp_var): Use gsi_insert_after_without_update
3534	instead of gsi_insert_after.
3535
35362008-03-26 Jakub Staszak <kuba@et.pl>
3537
3538	* gimple.h (gimple_uid, gimple_set_uid): Defined.
3539	(gimple_statement_base): Field UID added.
3540	* tree-ssa-dse.c (execute_simple_dse): #if 0 removed, bitmap_empty_p
3541	condition added. (memory_ssa_name_same, memory_address_same,
3542	get_kill_of_stmt_lhs, dse_possible_dead_store_p, dse_optimize_stmt,
3543	dse_record_phis, dse_finalize_block, tree_ssa_dse): Tuplified.
3544	* passes.c (init_optimization_passes): pass_simple_dse and pass_dse
3545	enabled.
3546	* testsuite/gcc.dg/tree-ssa/ssa-dse-10.c: {dg-final} changed.
3547	* testsuite/gcc.dg/tree-ssa/pr30375.c: {dg-final} changed.
3548
35492008-03-26  Rafael Espíndola <espindola@google.com>
3550	* gcc/tree-ssa-operands.c (ssa_operands_active): Assert that cfun is
3551	not NULL.
3552	* gcc/tree-nested.c (init_tmp_var): Use
3553	gsi_insert_before_without_update instead of gsi_insert_before.
3554
35552008-03-25  Rafael Espíndola <espindola@google.com>
3556
3557	Merge with mainline @133309.
3558
3559	* configure.ac (ACX_PKGVERSION): Update revision merge string.
3560	* configure: Regenerate.
3561
35622008-03-25  Rafael Espíndola <espindola@google.com>
3563
3564	Merge with mainline @133306.
3565
3566	* configure.ac (ACX_PKGVERSION): Update revision merge string.
3567	* configure: Regenerate.
3568
35692008-03-25  Bill Maddox  <maddox@google.com>
3570
3571	* tree-ssa-dom.c (loop_depth_of_name): Tuplify.
3572	* tree-ssa-copy.c (stmt_may_generate_copy,
3573	copy_prop_visit_assignment, copy_prop_visi_cond_stmt,
3574	copy_prop_visit_stmt, copy_prop_visit_phi_node,
3575	init_copy_prop, execute_copy_prop): Tuplify.
3576	* passes.c (init_optimization_passes):
3577	Enable pass_copy_prop.
3578
35792008-03-25  Rafael Espíndola <espindola@google.com>
3580
3581	Merge with mainline @133257.
3582
3583	* configure.ac (ACX_PKGVERSION): Update revision merge string.
3584	* configure: Regenerate.
3585
35862008-03-25  Oleg Ryjkov  <olegr@google.com>
3587
3588	* gimple.c (gimple_build_bind): Added a new parameter - the
3589	containing block.
3590	* gimple.h (gimple_build_bind): Changed the header accordingly.
3591	* gimplify.c (gimplify_bind_expr, gimplify_function_tree): Updated
3592	the callers of gimple_build_bind.
3593	(gimplify_body): Updated the call to gimple_build_bind and moved
3594	the copying of block information into gimplify_bind_expr.
3595
35962008-03-25  Rafael Espíndola <espindola@google.com>
3597
3598	Merge with mainline @133255.
3599
3600	* configure.ac (ACX_PKGVERSION): Update revision merge string.
3601	* configure: Regenerate.
3602
36032008-03-25  Rafael Espíndola <espindola@google.com>
3604
3605	Merge with mainline @133251.
3606
3607	* configure.ac (ACX_PKGVERSION): Update revision merge string.
3608	* configure: Regenerate.
3609
36102008-03-25  Rafael Espíndola <espindola@google.com>
3611
3612	Merge with mainline @133250.
3613
3614	* configure.ac (ACX_PKGVERSION): Update revision merge string.
3615	* configure: Regenerate.
3616
36172008-03-24  Rafael Espíndola <espindola@google.com>
3618
3619	Merge with mainline @133246.
3620
3621	* configure.ac (ACX_PKGVERSION): Update revision merge string.
3622	* configure: Regenerate.
3623
36242008-03-24  Rafael Espíndola <espindola@google.com>
3625
3626	Merge with mainline @133222.
3627
3628	* configure.ac (ACX_PKGVERSION): Update revision merge string.
3629	* configure: Regenerate.
3630
36312008-03-24  Andrew Pinski  <pinskia@gmail.com>
3632
3633	* passes.c (init_optimization_passes): Enable pass_split_crit_edges.
3634
36352008-03-24  Rafael Espíndola <espindola@google.com>
3636
3637	Merge with mainline @133169.
3638
3639	* configure.ac (ACX_PKGVERSION): Update revision merge string.
3640	* configure: Regenerate.
3641
36422008-03-21  Rafael Espíndola <espindola@google.com>
3643
3644	Merge with mainline @133168.
3645
3646	* configure.ac (ACX_PKGVERSION): Update revision merge string.
3647	* configure: Regenerate.
3648
36492008-03-21  Rafael Espíndola <espindola@google.com>
3650
3651	Merge with mainline @133167.
3652
3653	* configure.ac (ACX_PKGVERSION): Update revision merge string.
3654	* configure: Regenerate.
3655
36562008-03-20  Oleg Ryjkov  <olegr@google.com>
3657
3658	* tree-eh.c (lower_try_finally): Correctly set the lowered sequence.
3659
36602008-03-20  Jakub Staszak  <kuba@et.pl>
3661            Oleg Ryjkov  <olegr@google.com>
3662
3663	* tree-ssa-sink.c (is_hidden_global_store): Tuplified.
3664	* tree-ssa-dce.c (mark_stmt_necessary, mark_operand_necessary,
3665	mark_stmt_if_obviously_necessary,
3666	mark_control_dependent_edges_necessary,
3667	find_obviously_necessary_stmts, propagate_necessity,
3668	remove_dead_phis, eliminate_unnecessary_stmts, tree_dce_init,
3669	tree_dce_done): Tuplified.
3670	* tree-flow.h (is_hidden_global_store): Tuplified the declaration.
3671	* passes.c (init_optimization_passes): Enabled pass_dce and
3672	pass_cd_dce.
3673
36742008-03-20  Oleg Ryjkov <olegr@google.com>
3675
3676	* tree-complex.c (init_dont_simulate_again, complex_visit_stmt,
3677	update_complex_components, expand_complex_operations_1): Consider
3678	GIMPLE_CALLs with a lhs, not only GIMPLE_ASSIGNs.
3679	* gimplify.c (get_tmp_var_for): Removed.
3680	(gimplify_call_expr): Remove call to get_tmp_var_for, set
3681	gimple_register on a new lhs in some cases.
3682
36832008-03-20  Rafael Espíndola <espindola@google.com>
3684
3685	Merge with mainline @133162.
3686
3687	* configure.ac (ACX_PKGVERSION): Update revision merge string.
3688	* configure: Regenerate.
3689
36902008-03-20  Rafael Espíndola <espindola@google.com>
3691
3692	Merge with mainline @133161.
3693
3694	* configure.ac (ACX_PKGVERSION): Update revision merge string.
3695	* configure: Regenerate.
3696
36972008-03-20  Rafael Espíndola <espindola@google.com>
3698
3699	Merge with mainline @133140.
3700
3701	* configure.ac (ACX_PKGVERSION): Update revision merge string.
3702	* configure: Regenerate.
3703
37042008-03-20  Rafael Espíndola <espindola@google.com>
3705
3706	Merge with mainline @133138.
3707
3708	* configure.ac (ACX_PKGVERSION): Update revision merge string.
3709	* configure: Regenerate.
3710
37112008-03-18  Bill Maddox  <maddox@google.com>
3712
3713	* builtins.c (fold_builtin_object_size):
3714	Enable call to compute_builtin_object_size, previously
3715	stubbed out awaiting tuplification.
3716	* tree-ssa-ccp.c (valid_gimple_rhs_p, valid_gimple_call_p,
3717	move_ssa_defining_stmt_for_defs, update_call_from_tree):
3718	Deleted, moved to tree-ssa-propagate.c.
3719	(get_maxval_strlen): Use gimple_assign_single_p.
3720	Handle assignment with unary NOP correctly.
3721	* tree-ssa-propagate.c (valid_gimple_rhs_p, valid_gimple_call_p,
3722	move_ssa_defining_stmt_for_defs, update_call_from_tree):
3723	Moved here from tree-ssa-ccp.c.
3724	* tree-ssa-propagate.h (valid_gimple_rhs_p, valid_gimple_call_p,
3725	move_ssa_defining_stmt_for_defs, update_call_from_tree): Declared.
3726	* gimple-dummy.c (compute_builtin_object_size): Removed dummy.
3727	* tree_object_size.c (addr_object_size, alloc_object_size)
3728	Tuplified.
3729	(pass_through_call, compute_builtin_object_size): Tuplified.
3730	(expr_object_size): Tuplified.  Some cases broken out.
3731	(plus_expr_object_size): Deleted.
3732	(call_object_size, unknown_object_size, plus_stmt_object_size):
3733	New functions.  Handle cases broken out from expr_object_size.
3734	(cond_expr_object_size): Fix comment.
3735	(collect_object_sizes_for): Tuplify.
3736	(check_for_plus_in_loops_1, check_for_plus_in_loops): Tuplify.
3737	(compute_object_sizes): Tuplify.
3738	* gimple.c (gimple_assign_single_p, gimple_assign_unary_nop_p):
3739	New functions.
3740	* gimple.h (gimple_assign_single_p, gimple_assign_unary_nop_p):
3741	Declare.
3742	* passes.c (init_optimization_passes): Enable pass_object_sizes.
3743
37442008-03-18  Diego Novillo  <dnovillo@google.com>
3745            Oleg Ryjkov  <olegr@google.com>
3746
3747	* gimplify.c (gimplify_body): Copy the block information from
3748	the tree function body to gimple function body.
3749	(gimplify_function_tree): Correctly wrap the function body
3750	into the try/finally block if creating one.
3751	* gimple.c (gimple_seq_has_side_effects): Removed.
3752	* gimple.h (gimple_seq_has_side_effects): Removed declaration.
3753	* tree-cfg.c (remove_useless_stmts_tf, remove_useless_stmts_tc):
3754	Modified to use gimple_seq_empty_p instead of
3755	gimple_seq_has_side_effects.
3756
37572008-03-18  Aldy Hernandez  <aldyh@redhat.com>
3758
3759	* gimple.c (walk_gimple_stmt): Collapse common code.
3760	Add case for GIMPLE_WITH_CLEANUP_EXPR.
3761
37622008-03-17  Zdenek Dvorak  <ook@ucw.cz>
3763
3764	* gimple-iterator.c (gsi_for_stmt): Use gsi_start_phis.
3765	(gsi_start_phis): New function.
3766	* gimple.h (gsi_start_phis): Declare.
3767	* tree-into-ssa.c (initialize_flags_in_bb, rewrite_initialize_block,
3768	rewrite_add_phi_arguments, rewrite_update_init_block,
3769	prepare_block_for_update): Use gsi_start_phis.
3770	* tree-complex.c (init_dont_simulate_again, update_phi_components):
3771	Ditto.
3772	* tree-ssa-loop-manip.c (find_uses_to_rename_bb,
3773	verify_loop_closed_ssa, split_loop_exit_edge,
3774	tree_transform_and_unroll_loop): Ditto.
3775	* tree-scalar-evolution.c (loop_closed_phi_def,
3776	analyze_scalar_evolution_for_all_loop_phi_nodes, scev_const_prop):
3777	Ditto.
3778	* tree-phinodes.c (reserve_phi_args_for_new_edge, remove_phi_args):
3779	Ditto.
3780	* tree-ssa-copyrename.c (rename_ssa_copies): Ditto.
3781	* tree-ssa-ccp.c (ccp_initialize): Ditto.
3782	* tree-ssa-loop-ivopts.c (find_bivs, mark_bivs,
3783	find_interesting_uses_outside, find_interesting_uses,
3784	determine_set_costs): Ditto.
3785	* tree-ssa-propagate.c (simulate_block, ssa_prop_init,
3786	substitute_and_fold): Ditto.
3787	* tree-ssa-alias.c (dump_points_to_info, create_structure_vars): Ditto.
3788	* gimple-pretty-print.c (dump_phi_nodes): Ditto.
3789	* tree-data-ref.c (stmts_from_loop): Ditto.
3790	* tree-ssa-coalesce.c (build_ssa_conflict_graph,
3791	create_outofssa_var_map, coalesce_partitions): Ditto.
3792	* tree-dfa.c (collect_dfa_stats): Ditto.
3793	* tree-cfgcleanup.c (phi_alternatives_equal, remove_forwarder_block,
3794	remove_forwarder_block_with_phi, merge_phi_nodes): Ditto.
3795	* tree-ssa-live.c (remove_unused_locals, calculate_live_on_exit,
3796	verify_live_on_entry): Ditto.
3797	* tree-ssa.c (ssa_redirect_edge, flush_pending_stmts, verify_ssa,
3798	execute_late_warn_uninitialized, execute_update_addresses_taken):
3799	Ditto.
3800	* tree-outof-ssa.c (eliminate_build, eliminate_virtual_phis,
3801	rewrite_trees, remove_ssa_form, insert_backedge_copies):
3802	Ditto.
3803	* cfgloop.c (find_subloop_latch_edge_by_ivs): Ditto.
3804	* tree-ssa-structalias.c (compute_points_to_sets, ipa_pta_execute):
3805	Ditto.
3806	* tree-cfg.c (remove_phi_nodes_and_edges_for_unreachable_block,
3807	reinstall_phi_args, verify_stmts, gimple_make_forwarder_block,
3808	add_phi_args_after_copy_edge, gimple_lv_adjust_loop_header_phi):
3809	Ditto.
3810
38112008-03-16  Zdenek Dvorak  <ook@ucw.cz>
3812
3813	* tree-ssa-loop-ivopts.c: Tuplify.
3814	* gimple-dummy.c (multiplier_allowed_in_address_p, multiply_by_cost,
3815	tree_ssa_iv_optimize): Removed.
3816	* tree-ssa-phiopt.c (empty_block_p): Tuplify.
3817	* gimple.h (gimple_cond_lhs_ptr, gimple_cond_rhs_ptr): New.
3818	* passes.c (init_optimization_passes): Enable pass_iv_optimize.
3819
3820	* gimplify.c (gimplify_omp_workshare, gimplify_expr): Avoid using
3821	uninitialized sequence.
3822
38232008-03-13  Bill Maddox  <maddox@google.com>
3824
3825	* tree.h (fold_call_stmt, gimple_fold_builtin_snprintf_chk):
3826	Declare new functions.
3827	* builtins.c (fold_builtin_object_size): Disable call to
3828	compute_builtin_object_size, which has not been converted.
3829	(gimple_rewrite_call_expr, gimple_fold_builtin_sprintf_chk,
3830	gimple_fold_builtin_snprintf_chk, gimple_fold_builtin_varargs,
3831	fold_call_stmt): New functions.
3832	* tree-chrec.h (build_polynomial_chrec): Silence uninitialized
3833	variable warning.
3834	* tree-ssa-ccp.c (likely_value): Recognize additional cases
3835	of constant values.
3836	(surely_varying_stmt_p): Note that return statements are not
3837	interesting to CCP as they no longer contain assignments.
3838	(ccp_fold): Add missing spaces.
3839	(valid_gimple_call_p): New function.
3840	(get_maxval_strlen): Don't trip over unary operator.
3841	(ccp_fold_builtin): Use fold_call_stmt and
3842	gimple_fold_builtin_snprintf_chk.  Enable disabled
3843	call now that target has been converted for tuples.
3844	Add missing spaces.
3845	(move_ssa_defining_stmt_for_defs): New function.
3846	(update_call_from_tree): New function.
3847	(fold_gimple_call): Use update_call_from_tree.
3848	(fold_stmt_inplace): Assert that operand folding tree
3849	walk goes to completion, i.e., does not return non-null.
3850	(optimize_stack_restore, optimize_stdarg_builtin):
3851	Convert to tuples
3852	(convert_to_gimple_builtin): Removed.
3853	(gimplify_and_update_call_from_tree): New function.
3854	Replaces convert_to_gimple_builtin.
3855	(execute_fold_all_builtins): Convert to tuples.
3856	* tree-ssa-propagate.c (replace_uses_in): Removed
3857	replaced_address argument.  Made function static.
3858	(replace_vuses_in): Removed replaced_address argument.
3859	(substitute_and_fold): Removed replaced_address boolean,
3860	which was set but never examined.
3861	* tree-ssa-propagate.h (replace_uses_in): Removed declaration.
3862	* gimple-iterator.c (update_modified_stmt): Moved to
3863	head of file to avoid a forward declaration.
3864	(update_modified_stmts): New function.
3865	(gsi_insert_seq_before_without_update,
3866	gsi_insert_before_without_update,
3867	gsi_insert_seq_after_without_update,
3868	gsi_insert_after_without_update): New functions.
3869	(gsi_insert_before, gsi_insert_seq_before,
3870	gsi_insert_after, gsi_insert_seq_after): Call the
3871	_without_update variants.
3872	* gimplify.c (gimplify_seq_add_stmt, gimplify_seq_add_seq):
3873	New functions.
3874	(gimple_pop_condition, gimplify_return_expr, gimplify_loop_expr,
3875	gimplify_switch_expr, gimplify_case_label_expr,
3876	gimplify_self_mod_expr, gimplify_call_expr,
3877	gimplify_modify_expr_to_memcpy, gimplify_modify_expr_to_memset,
3878	gimplify_init_ctor_eval_range, gimpllify_modify_expr_complex_part,
3879	gimplify_modify_expr, gimplify_asm_expr, gimplify_cleanup_point_expr,
3880	gimple_push_cleanup, gimplify_omp_parallel, gimplify_omp_atomic,
3881	gimplify_expr, gimplify_body, gimplify_function_tree): When adding
3882	to statement sequences in the gimplifier, do not update operands.
3883	* tree-dfa.c (find_new_referenced_vars): Convert to tuples.
3884	* tree-flow.h (find_new_referenced_vars): Declare with new signature.
3885	* gimple.h (gimple_return_set_retval): Fix argument validation.
3886	(gsi_insert_seq_before_without_update,
3887	gsi_insert_before_without_update,
3888	gsi_insert_seq_after_without_update,
3889	gsi_insert_after_without_update): Declare new functions.
3890	* gimple.c (gimple_build_return): Rely on gimple_return_set_retval
3891	to perform argument validation.
3892	* passes.c (init_optimization_passes): Enable pass_fold_builtins.
3893
38942008-03-13  Oleg Ryjkov  <olegr@google.com>
3895
3896	* tree-cfg.c (gimplify_val): Removed.
3897	(gimplify_build1, gimplify_build2, gimplify_build3): Use
3898	force_gimple_operand_gsi instead of gimplify_val.
3899	* tree-complex.c (extract_component): Use force_gimple_operand_gsi
3900	instead of gimplify_val.
3901	* tree-vect-generic.c (expand_vector_parallel): Ditto.
3902
39032008-03-13  Diego Novillo  <dnovillo@google.com>
3904	    Oleg Ryjkov  <olegr@google.com>
3905
3906	* tree-ssa-operands.c (get_expr_operands): Handle FILTER_EXPR and
3907	EXC_PTR_EXPR.
3908
39092008-03-12  Diego Novillo  <dnovillo@google.com>
3910	    Oleg Ryjkov  <olegr@google.com>
3911
3912	* cfgexpand.c (gimple_to_tree): Record the correct type when
3913	converting GIMPLE_CALL.
3914
39152008-03-12  Zdenek Dvorak  <ook@ucw.cz>
3916
3917	* tree-ssa-loop-im.c (stmt_cost, rewrite_bittest,
3918	determine_invariantness_stmt, gather_mem_refs_stmt):
3919	Use gimple_assign_rhs_code.
3920	* cfgexpand.c (gimple_to_tree): Ditto.
3921	* tree-inline.c (estimate_num_insns): Ditto.
3922	* tree-vect-generic.c (expand_vector_operations_1): Ditto.
3923	* tree-ssa-ccp.c (likely_value, ccp_fold, evaluate_stmt,
3924	* gimple.c (gimple_fold, gimple_assign_set_rhs_with_ops): Ditto.
3925	* tree-ssa-structalias.c (handle_ptr_arith): Ditto.
3926	fold_gimple_assign): Ditto.
3927	* value-prof.c (gimple_divmod_fixed_value_transform): Ditto.
3928	* tree-ssa-loop-ch.c (copy_loop_headers): Ditto.
3929	* tree-ssa-propagate.c (stmt_makes_single_load,
3930	substitute_and_fold): Ditto.
3931	* tree-ssa-loop-niter.c (chain_of_csts_start): Exclude memory loads.
3932	(get_val_for): Assert that the statement is an assignment.
3933	(derive_constant_upper_bound_assign,
3934	expand_simple_operations): Use gimple_assign_rhs_code.
3935	* tree-ssa-loop-manip.c (create_iv, ip_normal_pos,
3936	standard_iv_increment_position, determine_exit_conditions,
3937	tree_transform_and_unroll_loop): Tuplify.
3938	* tree-scalar-evolution.c (interpret_expr): Fail for chrecs.
3939	(interpret_gimple_assign, follow_ssa_edge_in_rhs): Use
3940	gimple_assign_rhs_code.
3941	* tree-gimple.c (gimple_assign_rhs_code): New function.
3942	* tree-gimple.h (gimple_assign_rhs_code): Declare.
3943	* tree-ssa-loop-ivopts.c (single_dom_exit): Enable.
3944	* gimple-dummy.c (compute_data_dependences_for_loop, dump_ddrs,
3945	free_data_refs, free_dependence_relations,
3946	gimple_duplicate_loop_to_header_edge, tree_ssa_prefetch_arrays,
3947	estimated_loop_iterations_int): Removed.
3948	* tree-ssa-loop-ivcanon.c (tree_num_loop_insns): Tuplify.
3949	* predict.c, tree-data-ref.c, tree-ssa-loop-prefetch.c: Tuplify.
3950	* tree-data-ref.h (struct data_reference, struct rdg_vertex): Change
3951	the type of stmt to gimple.
3952	(get_references_in_stmt, create_data_ref, rdg_vertex_for_stmt,
3953	stores_from_loop, remove_similar_memory_refs,
3954	have_similar_memory_accesses): Declaration changed.
3955	* gimple-iterator.c (gsi_insert_seq_on_edge_immediate): New.
3956	* gimple-pretty-print.c (dump_gimple_assign): Dump nontemporal
3957	move.  Use gimple_assign_rhs_code.
3958	(dump_unary_rhs, dump_binary_rhs): Use gimple_assign_rhs_code.
3959	* gimplify.c (gimplify_modify_expr): Set lhs of the assignment to
3960	the new SSA name.
3961	* tree-ssa-coalesce.c (build_ssa_conflict_graph,
3962	create_outofssa_var_map): Use gimple_assign_copy_p.
3963	* tree-predcom.c (mark_virtual_ops_for_renaming): Enable.
3964	* tree-inline.c (estimate_num_insns): Use gimple_assign_rhs_code.
3965	* tree-flow.h (mark_virtual_ops_for_renaming): Declaration changed.
3966	* gimple.h (struct gimple_statement_base): Change unused_4 flag
3967	to nontemporal_move flag.
3968	(gimple_assign_nontemporal_move_p, gimple_assign_set_nontemporal_move):
3969	New functions.
3970	(gsi_insert_seq_on_edge_immediate): Declare.
3971	(gimple_assign_rhs2): Return NULL if the statement does not have two
3972	operands.
3973	(gimple_assign_subcode): Removed.
3974	* tree-cfg.c (verify_types_in_gimple_assign): Use
3975	gimple_assign_rhs_code.
3976	(gimple_lv_adjust_loop_header_phi, gimple_lv_add_condition_to_bb):
3977	Tuplify.
3978	(gimple_cfg_hooks): Enable lv_add_condition_to_bb and
3979	lv_adjust_loop_header_phi hooks.
3980	* passes.c (init_optimization_passes): Enable pass_profile,
3981	pass_check_data_deps and pass_loop_prefetch.
3982
39832008-03-11  Diego Novillo <dnovillo@google.com>
3984
3985	* tree-ssa-operands.h: Added declaration of add_to_addressable_set.
3986	* tree-ssa-operands.h (add_to_addressable_set): New function.
3987	(gimple_add_to_addresses_taken): Moved most of the logic to
3988	add_addressable_set.
3989	* tree-ssa-structalias.c (update_alias_info): Record the variables
3990	whose address is taken inside a phi node.
3991
39922008-03-11  Aldy Hernandez  <aldyh@redhat.com>
3993
3994	* tree-phinodes.c (allocate_phi_node): Update for tuples.
3995	* gimplify.c (gimplify_function_tree): Dump memory stats.
3996	* gimple.c:  Declare gimple_alloc_counts, gimple_alloc_sizes,
3997	and gimple_alloc_kind_names.
3998	(gimple_alloc): Gather statistics for tuples.
3999	(gimple_build_asm_1): Same.
4000	(gimple_seq_alloc): Same.
4001	(dump_gimple_statistics): New.
4002	* gimple.h: Define gimple_alloc_kind.
4003	(gimple_alloc_kind): New.
4004	(dump_gimple_statistics): Protoize.
4005	* tree-ssa-copy.c (replace_exp_1): Mark for_propagation as unused
4006	(merged from mainline).
4007
40082008-03-11  Diego Novillo  <dnovillo@google.com>
4009
4010	Merge with mainline @133081.
4011
4012	* configure.ac (ACX_PKGVERSION): Update revision merge string.
4013	* configure: Regenerate.
4014
40152008-03-06  Diego Novillo  <dnovillo@google.com>
4016
4017	Merge with mainline @132948
4018
4019	* configure.ac (ACX_PKGVERSION): Update revision merge string.
4020	* configure: Regenerate.
4021
40222008-03-06  Diego Novillo  <dnovillo@google.com>
4023
4024	* config/rs6000/rs6000.c (rs6000_alloc_sdmode_stack_slot):
4025	Call walk_gimple_op.
4026	* tree-complex.c (expand_complex_div_wide): Call
4027	split_block with STMT.
4028
40292008-03-06  Diego Novillo  <dnovillo@google.com>
4030
4031	* gimple.h (struct gimple_statement_base): Rename field
4032	'locus' to 'location'.  Update all users.
4033	(gimple_location): Rename from gimple_locus.  Update all
4034	users.
4035	(gimple_set_location): Rename from gimple_set_locus.
4036	Update all users.
4037	(gimple_has_location): Rename from gimple_location_empty_p.
4038	Change sign of return value.  Update all users.
4039	* gimplify.c (tree_annotate_all_with_location): Rename
4040	from tree_annotate_all_with_locus.
4041	(annotate_all_with_location): Rename from
4042	annotate_all_with_locus.
4043
40442008-03-05  Diego Novillo  <dnovillo@google.com>
4045
4046	* gimple.c (gimple_set_lhs): Remove return keywords.
4047
40482008-03-05  David Daney  <ddaney@avtrex.com>
4049
4050	* builtins.c (expand_builtin___clear_cache): Disable call to
4051	validate_arglist.
4052	* config/mips/mips.c (mips_gimplify_va_arg_expr): Tuplify.
4053
40542008-03-05  Bill Maddox  <maddox@google.com>
4055
4056	* tree-ssa-ccp.c (dump_lattice_value, debug_lattice_value):
4057	Re-enable functions #if'd out.
4058	(test_default_value, likely_value, surely_varying_stmt_p,
4059	ccp_initialize, ccp_visit_phi_node, ccp_fold, evaluate_stmt,
4060	visit_assignment, visit_cond_stmt, ccp_visit_stmt):
4061	Convert to tuples.
4062	(fold_gimple_call):  Don't trip over call that simplifies to
4063	another call, not a constant.
4064	* tree-ssa-propagate.c (ssa_prop_init): Initialize in-worklist
4065	flag for phi nodes as well as statements.
4066	(valid_gimple_expression_p): Add fixme comment to remove this.
4067	function.  It currently has static uses, but asserts when called.
4068	(stmt_makes_single_load, stmt_makes_single_store):
4069	Convert to tuples
4070	(replace_phi_args_in): Convert to tuples.  Fix typo in comment.
4071	* gimple.c (gimple_copy_no_def_use, gimple_get_lhs,
4072	gimple_set_lhs): New function.
4073	* gimple.h (gimple_copy_no_def_use, gimple_get_lhs,
4074	gimple_set_lhs): Declare new function.
4075	* tree-cfg.c (replace_uses_by): Add comment regarding empty
4076	operands.
4077	* passes.c (init_optimization_passes): Enable pass_ccp and
4078	pass_store_ccp.
4079
40802008-03-05  David Daney  <ddaney@avtrex.com>
4081
4082	* tree-phinodes.c (allocate_phi_node): Fix syntax errors from
4083	previous commit.
4084
40852008-03-05  Rafael Espíndola  <espindola@google.com>
4086
4087	* tree-phinodes.c (allocate_phi_node): free free_phinodes[bucket]
4088	if empty.
4089
40902008-03-05  Diego Novillo  <dnovillo@google.com>
4091
4092	http://gcc.gnu.org/ml/gcc/2008-03/msg00256.html
4093
4094	* fold-const.c (tree_binary_nonnegative_warnv_p): Fix
4095	invalid C90 declaration.
4096	(tree_single_nonnegative_warnv_p): Likewise.
4097	* gimplify.c (gimplify_bind_expr): Likewise.
4098	(gimplify_return_expr): Likewise.
4099
41002008-03-04  Zdenek Dvorak  <ook@ucw.cz>
4101
4102	* tree-ssa-loop-niter.c, tree-scalar-evolution.c: Tuplified.
4103	* tree-ssa-loop-manip.c (split_loop_exit_edge): Ditto.
4104	* tree-chrec.c (chrec_fold_plus, chrec_apply, chrec_convert_1,
4105	convert_affine_scev, chrec_convert_rhs, chrec_convert,
4106	chrec_convert_aggressive): Pass statements as gimple.
4107	* tree-scalar-evolution.h (get_loop_exit_condition, simple_iv):
4108	Type changed.
4109	* tree-chrec.h (chrec_convert, chrec_convert_rhs): Ditto.
4110	* tree-ssa-loop-ivopts.c (abnormal_ssa_name_p,
4111	idx_contains_abnormal_ssa_name_p, contains_abnormal_ssa_name_p,
4112	expr_invariant_in_loop_p, tree_int_cst_sign_bit): Enabled.
4113	* gimple-dummy.c (chrec_dont_know, chrec_known, chrec_not_analyzed_yet,
4114	analyze_scalar_evolution, chrec_contains_symbols_defined_in_loop,
4115	estimate_numbers_of_iterations, expr_invariant_in_loop_p,
4116	free_numbers_of_iterations_estimates,
4117	free_numbers_of_iterations_estimates_loop, get_loop_exit_condition,
4118	instantiate_parameters, nowrap_type_p. scev_const_prop. scev_finalize,
4119	scev_initialize, scev_probably_wraps_p, scev_reset,
4120	tree_int_cst_sign_bit, number_of_iterations_exit, loop_niter_by_eval,
4121	substitute_in_loop_info): Removed.
4122	* tree-ssa-loop.c (tree_loop_optimizer_init): Merged into...
4123	(tree_ssa_loop_init): ... here.  Enable scev_initialize call.
4124	(tree_ssa_loop_done): Enable scev finalization.
4125	* gimple-iterator.c (gsi_insert_seq_nodes_before): Allow inserting
4126	at the end of basic block.
4127	(gsi_for_stmt): Handle phi nodes.
4128	* cfgloop.h (struct nb_iter_bound): Change type of stmt field to gimple.
4129	* tree-flow.h (scev_probably_wraps_p, convert_affine_scev,
4130	stmt_dominates_stmt_p): Types changed.
4131	* Makefile.in (gt-tree-scalar-evolution.h): Enable.
4132	* gimple.c (extract_ops_from_tree): Export.
4133	(gimple_copy): Do not share bitmaps.
4134	* gimple.h (extract_ops_from_tree): Declare.
4135	(gimple_call_set_lhs): Allow lhs to be NULL.
4136	* tree-cfg.c (add_phi_args_after_copy_edge,
4137	add_phi_args_after_copy_bb): Tuplify.
4138	* passes.c (init_optimization_passes): Enable pass_ch, pass_scev_cprop.
4139
41402008-03-04  Oleg Ryjkov  <olegr@google.com>
4141
4142	* tree-ssa-dse.c (execute_simple_dse): Commented out.
4143	* passes.c (init_optimization_passes): Disabling pass_simple_dse.
4144
41452008-03-04  Bill Maddox  <maddox@google.com>
4146
4147	* tree-cfg.c (remove_useless_stmts_1):
4148	Correctly distinguish try-catch and try-finally.
4149
41502008-03-04  Oleg Ryjkov  <olegr@google.com>
4151
4152	* tree-ssa-dse.c (execute_simple_dse): Tuplified.
4153	* gimplify.c (gimplify_return_expr): Copy the NO_WARNING flag
4154	to the newly created expr from the tree.
4155	* tree-cfg.c (gimplify_build1): Tuplified.
4156	* passes.c (init_optimization_passes): Enabled
4157	pass_warn_function_return, pass_update_address_taken,
4158	pass_simple_dse and pass_build_alias passes.
4159
41602008-03-04  Rafael Espíndola  <espindola@google.com>
4161
4162	* fold-const.c (tree_simple_nonnegative_warnv_p): New.
4163	(tree_unary_nonnegative_warnv_p): New.
4164	(tree_binary_nonnegative_warnv_p): New.
4165	(tree_single_nonnegative_warnv_p): New.
4166	(tree_invalid_nonnegative_warnv_p): New.
4167	(tree_expr_nonnegative_warnv_p): Redefine in term of the new functions.
4168
41692008-03-04  Aldy Hernandez  <aldyh@redhat.com>
4170
4171	* gimple.c (walk_gimple_seq): Do not set wi->gsi.
4172	(walk_gimple_stmt): Set wi->gsi.
4173	* tree-cfg.c (verify_stmt): Use walk_gimple_op instead of
4174	walk_gimple_stmt.
4175	(verify_stmts): Same.
4176
41772008-03-04  Diego Novillo  <dnovillo@google.com>
4178
4179	http://gcc.gnu.org/ml/gcc-patches/2008-03/msg00219.html
4180
4181	* expr.c (expand_expr_real): Call lookup_expr_eh_region.
4182	* tree-eh.c (lookup_stmt_eh_region_fn):
4183	(lookup_stmt_eh_region): Fix comment.
4184	(lookup_expr_eh_region): Handle missing cfun and missing
4185	EH table.
4186	(record_in_finally_tree): Fix comment.
4187	(collect_finally_tree_1): Remove handler for
4188	GIMPLE_SWITCH.
4189	(maybe_record_in_goto_queue): Remove local variable
4190	NEW_IS_LABEL.
4191	Record GIMPLE_GOTOs instead of their label.
4192	(verify_norecord_switch_expr): Retrieve the CASE_LABEL
4193	from the case label expression.
4194	(do_return_redirection): Change sign of assertion.
4195	(lower_try_finally_onedest): Assert that
4196	TF->GOTO_QUEUE[0] contains a GIMPLE statement.
4197	(lower_try_finally_copy): Assert that Q contains a GIMPLE
4198	statement.
4199	(lower_try_finally_switch): Build a new GIMPLE label for
4200	CONT_STMT.
4201	(mark_eh_edge): Tuplify.
4202	(verify_eh_edges): Tuplify.
4203	(tree_can_throw_external): Remove unused function.
4204	(optimize_double_finally): Remove #if 0.
4205	* gimple-pretty-print.c (GIMPLE_NIY): Tidy.
4206	(dump_gimple_resx): Fix format string for
4207	dump_gimple_fmt.
4208	* gimplify.c (gimplify_cleanup_point_expr): Initialize
4209	BODY_SEQUENCE.
4210	* calls.c (emit_call_1): Remove ATTRIBUTE_UNUSED markers.
4211	* cfgexpand.c (gimple_to_tree) <GIMPLE_NOP>: Assign new
4212	expression to T.
4213	<GIMPLE_RESX>: Handle.
4214	Always assign the value from lookup_stmt_eh_region to
4215	ANN->RN.
4216	* tree-cfg.c (start_recording_case_labels):
4217	(recording_case_labels_p): Re-enable.
4218	(get_cases_for_edge): Likewise.
4219	(gimple_verify_flow_info): Re-enable call to
4220	verify_eh_edges.
4221	(gimple_redirect_edge_and_branch): Re-enable handling of
4222	GIMPLE_SWITCH.
4223	(gimple_block_ends_with_call_p): Tuplify.
4224	(struct gimple_cfg_hooks): Enable block_ends_with_call_p
4225	callback.
4226
42272008-03-04  Rafael Espíndola  <espindola@google.com>
4228
4229	* fold-const.c (tree_unary_nonzero_warnv_p): New.
4230	(tree_binary_nonzero_warnv_p): New.
4231	(tree_single_nonzero_warnv_p): New.
4232	(tree_expr_nonzero_warnv_p): Redefine using the new functions.
4233
42342008-03-04  Aldy Hernandez  <aldyh@redhat.com>
4235
4236	* gimple.c (walk_gimple_op): Update comment.
4237	(walk_gimple_stmt): Same.
4238
42392008-03-03  Aldy Hernandez  <aldyh@redhat.com>
4240
4241	* cgraphbuild.c (build_cgraph_edges): Use walk_gimple_op instead of
4242	walk_gimple_stmt.
4243	* tree-ssa-alias-warnings.c (find_references_in_function): Same.
4244	* tree-ssa-ccp.c (fold_stmt): Change walk_gimple_stmt call to
4245	walk_gimple_op.
4246	* tree-nrv.c (tree_nrv): Same.
4247	* tree-ssa-alias.c (count_uses_and_derefs): Same.
4248	* cfgexpand.c (discover_nonconstant_array_refs_r): Same.
4249	* tree-nested.c (convert_nonlocal_reference_stmt): Make first
4250	argument a GSI.
4251	(convert_local_reference_op): Same.
4252	(convert_nl_goto_reference): Same.
4253	(convert_tramp_reference_stmt): Same.
4254	(convert_gimple_call): Same.
4255	* tree-inline.c (inline_forbidden_p_stmt): Same.
4256	* tree-ssa.c (execute_early_warn_uninitialized): Change
4257	walk_gimple_stmt call to walk_gimple_op.
4258	* gimple.c (walk_gimple_seq): Pass GSI to walk_gimple_stmt.
4259	(walk_gimple_stmt): Move operand walking code to...
4260	(walk_gimple_op): ...here.
4261	(walk_gimple_stmt): First argument is now a GSI.
4262	* gimple.h: Change walk_stmt_fn argument to a GSI.
4263	(walk_gimple_stmt): Make first argument is a GSI.
4264	(walk_gimple_op): New prototype.
4265	* tree-cfg.c (verify_stmt): Change argument to a GSI.  Adjust
4266	accordingly.
4267
42682008-02-29  Zdenek Dvorak  <ook@ucw.cz>
4269
4270	* tree-ssa-alias.c (is_escape_site): Detect pure/const functions
4271	correctly.
4272
42732008-02-28  Zdenek Dvorak  <ook@ucw.cz>
4274
4275	* tree-ssa-loop-im.c: Tuplify.
4276	* tree-ssa-loop-manip.c (add_exit_phis_edge, find_uses_to_rename_stmt,
4277	find_uses_to_rename_bb, check_loop_closed_ssa_use,
4278	check_loop_closed_ssa_stmt, verify_loop_closed_ssa): Ditto.
4279	* gimple-dummy.c (rewrite_into_loop_closed_ssa, tree_ssa_lim,
4280	verify_loop_closed_ssa, replace_exp): Removed.
4281	* tree-ssa-loop.c (tree_ssa_loop_init, tree_ssa_loop_done): Comment
4282	out scev initialization and finalization.
4283	* gimple-iterator.c (gsi_remove): Rename remove_eh_info to
4284	remove_permanently.  Do not free operands if remove_permanently
4285	is false.
4286	(gimple_find_edge_insert_loc): Use gsi_last_bb.
4287	* tree-eh.c (operation_could_trap_p): Factored out of ...
4288	(tree_could_trap_p): ... here.
4289	* tree-ssa-copy.c (replace_exp): Enable.
4290	* tree-flow.h (movement_possibility): Declaration changed.
4291	(operation_could_trap_p): Declare.
4292	* Makefile.in (tree-ssa-loop-im.o): Add pointer-set.h dependency.
4293	(gimple.o): Add FLAGS_H dependency.
4294	* gimple.c: Include flags.h.
4295	(gimple_could_trap_p): New function.
4296	* gimple.h (gimple_could_trap_p): Declare.
4297	* tree-cfg.c (replace_uses_by): Check that op is not null.
4298	* passes.c (init_optimization_passes): Enable pass_lim.
4299
43002008-02-28  Rafael Espíndola  <espindola@google.com>
4301
4302	* tree-outof-ssa.c (insert_backedge_copies): Don't build
4303	uninitialized assignment.
4304
43052008-02-28  Rafael Espíndola  <espindola@google.com>
4306
4307	* tree-dfa.c (dump_dfa_stats): cast dfa_stats.max_num_phi_args to long.
4308
43092008-02-26  Diego Novillo  <dnovillo@google.com>
4310
4311	* tree-ssa-copyrename.c (rename_ssa_copies): Do not mix
4312	declarations with code.
4313	* tree-ssa-coalesce.c (create_outofssa_var_map): Likewise.
4314	* tree-dfa.c (dump_dfa_stats): Use %ld for
4315	dfa_stats.max_num_phi_args.
4316
43172008-02-26  Bill Maddox  <maddox@google.com>
4318
4319	* tree-ssa-ccp.c (maybe_fold_stmt_addition):
4320	Reinstated this function for tuples as-is.
4321	(valid_gimple_rhs_p): New function.  Mostly lifted from
4322	valid_gimple_epxression_p, which is likely obsolete.
4323	(fold_stmt_r): Reinstated commented-out cases for
4324	tuples. Replaced call to obsolete function set_rhs.
4325	(get_maxval_strlen): Convert to tuples.
4326	(ccp_fold_builtin): Partial conversion to tuples.
4327	(fold_gimple_assign): New function.
4328	(fold_gimple_cond): New function.
4329	(fold_gimple_call): New function.
4330	(fold_stmt): Convert to tuples.
4331	(fold_stmt_inplace): Convert to tuples.
4332	* tree-ssa-propagate.c (substitute_and_fold):
4333	Update call to fold_stmt for revised argument signature.
4334	* gimple-dummy.c (fold_stmt): Removed dummy definition.
4335	* gimplify.c (gimplify_call_expr): Removed obsolete
4336	manipulation of TREE_NOTHROW flag.
4337	* cfgexpand.c (gimple_to_tree): Set nothrow flag
4338	of call expression based on call statement flags.
4339	Handle GIMPLE_NOP statement.
4340	* tree-flow.h (notice_special_calls, fold_stmt):
4341	Update prototypes for tuples.
4342	* gimple.c (gimple_cond_set_condition_from_tree):
4343	New function.
4344	(gimple_seq_has_side_effects): New function.
4345	* gimple.h (gimple_cond_set_condition_from_tree,
4346	gimple_seq_has_side_effects): New prototypes.
4347	(gimple_call_nothrow_p): New function.
4348	(gsi_stmt_ptr): Add comment regarding usage of this
4349	function vs. gsi_replace.
4350	* tree-cfg.c (struct rus_data): Convert to tuples.
4351	(remove_useless_stmts_1, remove_useless_stmts_warn_notreached,
4352	remove_useless_stmts_cond, remove_useless_stmts_tf,
4353	remove_useless_stmts_tc, remove_useless_stmts_goto,
4354	remove_useless_stmts_label, notice_special_calls,
4355	remove_useless_stmts): Convert to tuples.
4356	(update_call_expr_flags): Removed.
4357	* passes.c (init_optimization_passes): Enable
4358	pass_remove_useless_stmts.
4359
43602008-02-25  Bill Maddox  <maddox@google.com>
4361
4362	* tree-into-ssa.c (rewrite_initialize_block):
4363	Avoid declaration following statement in block.
4364	* tree-nrv.c (tree_nrv):
4365	Avoid declaration following statement in block.
4366	* tree-eh.c (collect_finally_tree): Fix typo in comment.
4367	Avoid cast to union type.
4368	(replace_goto_queue_cond_clause, replace_goto_queue_1,
4369	maybe_record_in_goto_queue, verify_norecord_switch_expr,
4370	lower_try_finally_fallthru_label): Avoid cast to union type.
4371	* fortran/Make-lang.in: Add -Wno-missing-format-attribute
4372	to fortran-warn options to avoid conflict with -Wno-format.
4373	* gimplify.c (gimplify_switch_expr):  Change assignment
4374	to initialiation.
4375	(gimplify_case_label_expr): Avoid declaration following
4376	statement in block.
4377	* tree-ssa-coalesce.c (create_outofssa_var_map): Avoid
4378	declaration following statement in block.
4379	* tree-ssa.c (ssa_redirect_edge, flush_pending_stmts):
4380	Avoid declaration following statements in block.
4381	* Makefile.in: Add -Wno-missing-format-attribute
4382	to builtins.o-warn and expr.o-warn options to avoid conflict
4383	with -Wno-format.  Removed fortran/*-warn options, -Wno-format
4384	and -Wno-uninitialized, which belong in fortran/Make-lang.in,
4385	and are applied to all fortran files there.
4386
43872008-02-25  Oleg Ryjkov  <olegr@google.com>
4388
4389	http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01236.html
4390
4391	* tree-ssa-copyrename.c: Include gimple.h
4392	Tuplify.
4393	* tree-ssa.c (warn_uninit): Pass &LOCUS to warning().
4394	* passes.c (init_optimization_passes): Enable
4395	pass_early_warn_uninitialized, pass_rebuild_cgraph_edges
4396	and pass_early_inline.
4397
43982008-02-25  Diego Novillo  <dnovillo@google.com>
4399
4400	* Makefile.in (tree-ssa-copyrename.o): Add dependency on
4401	gimple.h.
4402
44032008-02-25  Diego Novillo  <dnovillo@google.com>
4404
4405	* tree-cfgcleanup.c (tree_forwarder_block_p): Revert
4406	previous change.
4407
44082008-02-25  Diego Novillo  <dnovillo@google.com>
4409
4410	http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01217.html
4411
4412	* tree-ssa-alias-warnings.c: Tuplify.
4413	* cgraphunit.c (cgraph_process_new_functions): Remove
4414	calls to gimple_unreachable.
4415	(cgraph_expand_function): Likewise.
4416	* omp-low.c (execute_expand_omp): Return 0 after call to
4417	gimple_unreachable.
4418	* tree-scalar-evolution.c (scev_const_prop): Likewise.
4419	(execute_lower_omp): Likewise.
4420	* tree-ssa-dse.c (execute_simple_dse): Likewise.
4421	* tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
4422	(eliminate_degenerate_phis): Likewise.
4423	* tree-ssa-propagate.c (get_rhs): Likewise.
4424	(valid_gimple_expression_p): Likewise.
4425	(set_rhs): Likewise.
4426	(fold_predicate_in): Likewise.
4427	* tree-nrv.c (execute_return_slot_opt): Likewise.
4428	* predict.c (tree_estimate_probability): Likewise.
4429	* tree-parloops.c (parallelize_loops): Likewise.
4430	* tree-if-conv.c (main_tree_if_conversion): Likewise.
4431	* tree-ssa-phiopt.c (tree_ssa_phiopt): Likewise.
4432	(tree_ssa_cs_elim): Likewise.
4433	* tree-sra.c (tree_sra): Likewise.
4434	(tree_sra_early): Likewise.
4435	* tree-predcom.c (tree_predictive_commoning): Likewise.
4436	* tree-ssa-copy.c (execute_copy_prop): Likewise.
4437	* lambda-code.c (gcc_loop_to_lambda_loop): Likewise.
4438	(perfect_nest_p): Likewise.
4439	(can_convert_to_perfect_nest): Likewise.
4440	(perfect_nestify): Likewise.
4441	* tree-optimize.c (execute_fixup_cfg): Likewise.
4442	* tree-object-size.c (compute_object_sizes): Likewise.
4443	* tree-cfg.c (remove_useless_stmts): Likewise.
4444	(gimple_duplicate_sese_tail): Likewise.
4445	(move_sese_region_to_fn): Likewise.
4446	(gimple_purge_dead_abnormal_call_edges): Likewise.
4447	(execute_warn_function_return): Likewise.
4448	* value-prof.c (gimple_histogram_value): Remove calls to
4449	gimple_unreachable.
4450	(gimple_stringop_fixed_value): Likewise.
4451	* tree-flow-inline.h (op_iter_next_use): Likewise.
4452	* tree-dfa.c (dump_variable): Likewise.
4453	* tree-ssa-copy.c (may_propagate_copy): Likewise.
4454	(may_propagate_copy_into_asm): Likewise.
4455	(merge_alias_info): Likewise.
4456	(replace_exp_1): Likewise.
4457	* tree-ssa.c (delete_tree_ssa): Likewise.
4458	* tree-cfg.c (make_edges): Likewise.
4459	(remove_useless_stmts): Likewise.
4460	(gimple_duplicate_sese_tail): Likewise.
4461	(move_sese_region_to_fn): Likewise.
4462	(gimple_purge_dead_abnormal_call_edges): Likewise.
4463	(execute_warn_function_return): Likewise.
4464	* passes.c (finish_optimization_passes): Likewise.
4465	(init_optimization_passes): Likewise.
4466	* tree-ssa-operands.c (add_call_clobber_ops): Likewise.
4467	* tree-eh.c (lookup_expr_eh_region): New.
4468	(tree_can_throw_external): Return false after call to
4469	gimple_unreachable.
4470	(maybe_clean_or_replace_eh_stmt): Re-enable.
4471	Call stmt_could_throw_p.
4472	* expr.c (expand_expr_real): Call lookup_expr_eh_region.
4473	* profile.c: Tuplify.
4474	* calls.c: Include tree-flow.h.
4475	(emit_call_1): Call lookup_expr_eh_region.
4476	(expand_call): Likewise.
4477	* cfgexpand.c (gimple_to_tree): Call SET_EXPR_LOCATION on
4478	generated expression tree T.
4479	Set EH region number on T's annotation.
4480	* common.opt (fgimple-conversion=): Add RejectNegative
4481	and Joined attributes.
4482	* tree-inline.c (unsave_r): Abort if *TP is a
4483	STATEMENT_LIST.
4484	(unsave_expr_now): Re-enable.
4485	* tree-flow.h (struct tree_ann_common_d): Add field RN.
4486	* Makefile.in (builtins.o-warn): Add -Wno-format.
4487	(expr.o-warn): Likewise.
4488	(fortran/check.o-warn): Likewise.
4489	(fortran/interface.o-warn): Likewise.
4490	(fortran/resolve.o-warn): Likewise.
4491	(fortran/simplify.o-warn): Likewise.
4492	(fortran/target-memory.o-warn): Likewise.
4493	(calls.o): Add dependency on tree-flow.h
4494	* gimple.c (gimple_build_asm_1): Call ggc_alloc_string to
4495	copy STRING.
4496	* gimple.h (gimple_filename): New.
4497	(gimple_lineno): New.
4498	* passes.c (init_optimization_passes): Disable
4499	pass_remove_useless_stmts pass_mudflap_1,
4500	pass_warn_function_return and pass_lower_omp.
4501	* config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Tuplify.
4502	(rs6000_alloc_sdmode_stack_slot): Likewise.
4503	* tree-cfgcleanup.c (tree_forwarder_block_p): Fix test
4504	for PHI_WANTED.
4505
45062008-02-25  Rafael Espíndola  <espindola@google.com>
4507
4508	* tree-cfgcleanup.c (tree_forwarder_block_p): fix thinko.
4509
45102008-02-24  Rafael Espíndola  <espindola@google.com>
4511
4512	* gimple-iterator.c (gsi_split_seq_before): Don't abort if at the
4513	beginning.
4514
45152008-02-23  Diego Novillo  <dnovillo@google.com>
4516
4517	http://gcc.gnu.org/ml/gcc-patches/2008-02/msg01025.html
4518
4519	* gimplify.c (gimplify_one_sizepos): Call gimplify_expr with
4520	STMT_P.
4521
45222008-02-22  Zdenek Dvorak  <ook@ucw.cz>
4523
4524	* gimple.c (gimple_assign_copy_p): Do not consider unary operations
4525	to be copies.
4526
45272008-02-22  Diego Novillo  <dnovillo@google.com>
4528
4529	* Makefile.in (fortran/parse.o-warn,
4530	fortran/simplify.o-warn): New.
4531
45322008-02-22  Diego Novillo  <dnovillo@google.com>
4533
4534	http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00961.html
4535
4536	Revert
4537
4538	2008-02-20  Zdenek Dvorak  <ook@ucw.cz>
4539
4540		* tree-tailcall.c: Tuplify.
4541		* gimplify.c (force_gimple_operand): Remove ATTRIBUTE_UNUSED.
4542		* gimple.c (gimple_assign_copy_p): Do not
4543		consider unary operations to be copies.
4544		(copy_or_nop_cast_stmt_rhs): New.
4545		* gimple.h (copy_or_nop_cast_stmt_rhs): Declare.
4546
45472008-02-21  Rafael Espíndola  <espindola@google.com>
4548
4549	* gimple.h (gimple_cond_true_p): Define.
4550	(gimple_cond_false_p): Define.
4551	(gimple_cond_single_var_p): Define.
4552
45532008-02-21  Rafael Espíndola  <espindola@google.com>
4554
4555	* tree-tailcall.c (adjust_accumulator_values): Check that a phi was
4556	found.
4557
45582008-02-21  Rafael Espíndola  <espindola@google.com>
4559
4560	* tree-tailcall.c (adjust_accumulator_values): Initialize phi.
4561
45622008-02-20  Zdenek Dvorak  <ook@ucw.cz>
4563
4564	* tree-tailcall.c: Tuplify.
4565	* gimplify.c (force_gimple_operand): Remove ATTRIBUTE_UNUSED.
4566	* gimple.c (gimple_assign_copy_p): Do not consider unary operations
4567	to be copies.
4568	(copy_or_nop_cast_stmt_rhs): New.
4569	* gimple.h (copy_or_nop_cast_stmt_rhs): Declare.
4570
45712008-02-20  Oleg Ryjkov  <olegr@google.com>
4572
4573	* gimplify.c (gimplify_expr): Save locus into the right
4574	sequence.
4575
45762008-02-20  Rafael Espíndola  <espindola@google.com>
4577
4578	* passes.c (init_optimization_passes): Enable pass_mark_used_blocks
4579	and pass_cleanup_cfg_post_optimizing.
4580	* tree-optimize.c (execute_cleanup_cfg_post_optimizing): call cleanup_tree_cfg.
4581
45822008-02-20  Rafael Espíndola  <espindola@google.com>
4583
4584	* passes.c (init_optimization_passes):  Enable pass_nrv.
4585	* tree-nrv.c (finalize_nrv_r): data is now a walk_stmt_info.
4586	(tree_nrv): port to gimple.
4587
45882008-02-19  Oleg Ryjkov  <olegr@google.com>
4589
4590	* gimple-pretty-print.c: Introduce support for TDF_RAW
4591	flag.
4592	(dump_gimple_fmt): New function.
4593	(dump_gimple_assign, dump_gimple_return): Update to print
4594	RAW gimple.
4595	(dump_gimple_call_args): New function.
4596	(dump_gimple_call, dump_gimple_switch, dump_gimple_cond,
4597	dump_gimple_label, dump_gimple_bind, dump_gimple_try):
4598	Update to print RAW gimple.
4599	(dump_gimple_catch, dump_gimple_eh_filter,
4600	dump_gimple_resx): New functions.
4601	(dump_gimple_omp_for, dump_gimple_asm, dump_gimple_phi):
4602	Update to print RAW gimple.
4603	(dump_gimple_omp_parallel, dump_gimple_omp_atomic_load,
4604	dump_gimple_omp_atomic_store): New, code moved from
4605	dump_gimple_stmt, then added support to print RAW gimple.
4606	(gimple_dump_stmt): Some code refactored into helper
4607	subroutines.
4608	* tree-cfg.c(dump_function_to_file): Print RAW gimple when
4609	TDF_RAW is set.
4610
46112008-02-19  Diego Novillo  <dnovillo@google.com>
4612
4613	http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00793.html
4614
4615	* tree-complex.c (expand_complex_div_wide): Call gsi_bb.
4616	* tree.h (std_gimplify_va_arg_expr): Change gimple_seq
4617	arguments to gimple_seq *.
4618	Update all users.
4619	(gimplify_parameters): Change return type to gimple_seq.
4620	Update all users.
4621	* target.h (struct gcc_target)<gimplify_va_arg_expr>:
4622	Change gimple_seq arguments to gimple_seq *.
4623	Update all users.
4624	* tree-phinodes.c (free_phinodes): Convert to VEC.
4625	Update all users.
4626	* omp-low.c (lower_rec_input_clauses): Change gimple_seq
4627	arguments to gimple_seq *.  Update all users.
4628	(lower_reduction_clauses): Convert sub_list to
4629	gimple_seq.
4630	(lower_regimplify): Convert PRE to gimple_seq.
4631	(lower_regimplify): Call gimple_seq_insert_before instead
4632	of tsi_link_before.
4633	* tree-gimple.h (get_initialized_tmp_var,
4634	get_formal_tmp_var, gimplify_expr, gimplify_type_sizes,
4635	gimplify_one_sizepos, gimplify_stmt, gimplify_and_add,
4636	gimplify_va_arg_expr): Change gimple_seq arguments to
4637	gimple_seq *.  Update all users.
4638	* gimple-iterator.c: Include value-prof.h.
4639	(gsi_link_seq_before): Remove.  Update all users.
4640	(gsi_link_seq_after): Remove.  Update all users.
4641	(gsi_link_after): Remove.  Update all users.
4642	(gsi_link_before): Remove.  Update all users.
4643	(update_bb_for_stmts): New.
4644	(gsi_insert_seq_nodes_before): New.
4645	(gsi_insert_seq_nodes_after): New.
4646	(gsi_insert_seq_before): Re-write.  Call
4647	gsi_insert_seq_nodes_before.
4648	(gsi_insert_seq_after): Re-write.  Call
4649	gsi_insert_seq_nodes_after.
4650	(gsi_replace): Re-enable EH updating.
4651	(update_modified_stmt): Move earlier in the file.
4652	(gsi_insert_after): Re-write.  Call
4653	gsi_insert_seq_nodes_after.
4654	(gsi_insert_before): Re-write.  Call
4655	gsi_insert_seq_nodes_before.
4656	(gsi_remove): Move from gimple.h.  Re-write.
4657	* langhooks.h (struct lang_hooks): Change gimple_seq
4658	arguments for gimplify_expr to gimple_seq *.
4659	Update all users.
4660	* coretypes.h (struct gimple_seq_d): Rename from struct
4661	gimple_sequence.  Update all users.
4662	(struct gimple_seq_node_d): New.
4663	(gimple_seq_node): New.
4664	(const_gimple_seq_node): New.
4665	* tree-flow.h (force_gimple_operand): Change gimple_seq
4666	argument to gimple_seq *.  Update all users.
4667	* c-common.h (c_gimplify_expr): Change gimple_seq
4668	argument to gimple_seq *.  Update all users.
4669	* Makefile.in (build):
4670	* gimple.c (gimple_seq_cache): New.
4671	(gimple_seq_alloc): Take sequences from gimple_seq_cache,
4672	if possible.
4673	(gimple_seq_free): New.
4674	(gimple_seq_add_stmt): Rename from gimple_seq_add.
4675	Change gimple_seq argument to gimple_seq *.  Update all users.
4676	(gimple_seq_add_seq): Rename from gimple_seq_append.
4677	Update all users.
4678	(gimple_remove): Remove.  Update all users.
4679	(gimple_seq_reverse): Remove unused function.
4680	(gimple_set_bb): Only update block-to-labels map if
4681	CFUN->CFG exists.
4682	* gimple.h (struct gimple_seq_node_d): New.
4683	(struct gimple_seq_d): Change fields 'first' and 'last'
4684	to type gimple_seq_node.  Update all users.
4685	Add field 'next_free'.
4686	(gimple_seq_first): Change return type to
4687	gimple_seq_node.  Update all users.
4688	(gimple_seq_first_stmt): New.
4689	(gimple_seq_last): Change return type to gimple_seq_node.
4690	Update all users.
4691	(gimple_seq_last_stmt): New.
4692	(gimple_seq_set_first): Change second argument to type
4693	gimple_seq_node.  Update all users.
4694	(gimple_seq_set_last): Change second argument to type
4695	gimple_seq_node.  Update all users.
4696	(gimple_seq_init): Remove.  Update all users.
4697	(struct gimple_statement_base): Remove field 'next' and
4698	'prev'.  Update all users.
4699	(struct gimple_statement_omp): Change fields of type
4700	struct gimple_sequence to type gimple_seq.  Update all
4701	users.
4702	(struct gimple_statement_bind): Likewise.
4703	(struct gimple_statement_catch): Likewise.
4704	(struct gimple_statement_eh_filter): Likewise.
4705	(struct gimple_statement_try): Likewise.
4706	(struct gimple_statement_wce): Likewise.
4707	(struct gimple_statement_omp_for): Likewise.
4708	(gimple_set_prev): Remove.  Update all users.
4709	(gimple_set_next): Remove.  Update all users.
4710	(gimple_next): Remove.  Update all users.
4711	(gimple_prev): Remove.  Update all users.
4712	(gimple_seq_bb): New.
4713	(gimple_catch_handler_ptr): New.
4714	(gimple_stmt_iterator): Remove field 'stmt'.
4715	Add field 'ptr'.  Update all users.
4716	(gsi_remove): Move to gimple-iterator.c
4717	* tree-cfg.c (pass_build_cfg): Re-enable PROP_gimple_leh.
4718	* Makefile.in (builtins.o-warn, expr.o-warn, dse.o-warn,
4719	ebitmap.o-warn, lower-subreg.o-warn, tree-chrec.o-warn):
4720	Change -Wno-error to -Wno-uninitialized.
4721
47222008-02-19  Rafael Espíndola  <espindola@google.com>
4723
4724	* tree-eh.c (collect_finally_tree): handle GIMPLE_SWITCH.
4725
47262008-02-19  Aldy Hernandez  <aldyh@redhat.com>
4727
4728	* gimple.h (gimple_cond_invert): Remove prototype.
4729	(update_stmt_if_modified): Fix typo in comment.
4730	* gimple.c (walk_gimple_asm): Fix typo in comment.
4731
47322008-02-13  Bill Maddox  <maddox@google.com>
4733
4734	* tree-inline.c (estimate_operator_cost):
4735	Removed operators superseded by tuplified statement forms.
4736	Small cosmetic reordering of a few switch cases.
4737
47382008-02-13  Oleg Ryjkov  <olegr@google.com>
4739
4740	* tree.h: New function declaration.
4741	* gimple-dummy.c (tree_inlinable_function_p): Removed.
4742	* ipa-inline.c (compute_inline_parameters): Removed
4743	gcc_unreachable ().
4744	* calls.c (gimple_alloca_call_p): New function.
4745	* tree-inline.c (inline_forbidden_p_1): Split in two and removed.
4746	(inline_forbidden_p_op, inline_forbidden_p_stmt): New functions.
4747	(inline_forbidden_p): Tuplified.
4748	(estimate_operator_cost): Added missing cases.
4749	* passes.c (init_optimization_passes): Enabled pass_inline_parameters,
4750	pass_ipa_function_and_variable_visibility, pass_ipa_early_inline,
4751	pass_inline_parameters, pass_rebuild_cgraph_edges passes.
4752
47532008-02-13  Diego Novillo  <dnovillo@google.com>
4754
4755	http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00459.html
4756
4757	* gimple.def (GIMPLE_TRY): Tidy comment.
4758	* gimple-pretty-print.c (dump_gimple_stmt): Handle TDF_VOPS and
4759	TDF_MEMSYMS.
4760
47612008-02-13  Diego Novillo  <dnovillo@google.com>
4762
4763	http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00455.html
4764
4765	* tree-complex.c (update_complex_components): Handle
4766	GIMPLE_CALL and GIMPLE_ASSIGN.
4767	(expand_complex_libcall): Set SSA_NAME_DEF_STMT on LHS.
4768	* tree-ssa-operands.c (maybe_add_call_clobbered_vops):
4769	Rename from get_call_expr_operands.  Update all users.
4770	Convert to handle GIMPLE_CALL instead of CALL_EXPR.
4771	(get_modify_stmt_operands): Remove.  Update all users.
4772	(get_expr_operands): Do not handle CALL_EXPR, COND_EXPR,
4773	VEC_COND_EXPR, GIMPLE_MODIFY_STMT, BLOCK, EXC_PTR_EXPR
4774	and FILTER_EXPR.
4775	(parse_ssa_operands): Call maybe_add_call_clobbered_vops
4776	after parsing operands if STMT is a GIMPLE_CALL.
4777
47782008-02-12  Zdenek Dvorak  <ook@ucw.cz>
4779	    Bill Maddox  <maddox@google.com>
4780
4781	http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00429.html
4782
4783	* tree-inline.h (estimate_num_insns_fn): Declare.
4784	* cgraphunit.c (cgraph_process_new_functions):
4785	Use estimate_num_insns_fn.
4786	* ipa-inline.c (compute_inline_parameters): Ditto.
4787	* gimple-dummy.c (estimate_move_cost, estimate_num_insns):
4788	Removed.
4789	* tree-inline.c (struct eni_data, estimate_num_insns_1):
4790	Removed.
4791	(estimate_num_insns): Rewritten.
4792	(operation_cost, estimate_num_insns_fn): New functions.
4793	* gimple.c (gimple_copy): Unshare operands.  Update
4794	operand caches.
4795	* gimple.h (gimple_set_no_warning): New.
4796	(gimple_cond_set_true_label, gimple_cond_set_false_label):
4797	Allow setting the label to NULL.
4798	* tree-ssa-operands.c (copy_virtual_operands): Handle statements
4799	without virtual operands.
4800
48012008-02-12  Zdenek Dvorak  <ook@ucw.cz>
4802
4803	http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00429.html
4804
4805	* tree-into-ssa.c (update_ssa): Remove ATTRIBUTE_UNUSED.
4806	* tree-ssa-loop-ch.c: Tuplified.
4807	* gimple-iterator.c (gsi_commit_one_edge_insert): Ditto.
4808	* tree-cfg.c (gimple_redirect_edge_and_branch,
4809	gimple_try_redirect_by_replacing_jump, gimple_merge_blocks,
4810	gimple_block_label, gimple_redirect_edge_and_branch_force,
4811	gimple_duplicate_bb): Ditto.
4812	(make_cond_expr_edges): Remove the labels.
4813	(cleanup_dead_labels): Handle conditions without labels.
4814	(gimple_make_forwarder_block): Do not reverse the list
4815	of phi nodes.
4816	(gimple_duplicate_sese_region): Enable ssa updates.
4817	(gimple_cfg_hooks): Enable edge redirection and bb duplication.
4818	* gimple-pretty-print.c (dump_gimple_cond): Do not dump
4819	branches if labels are null.
4820	(dump_implicit_edges): Dump implicit GIMPLE_COND edges.
4821
48222008-02-12  Diego Novillo  <dnovillo@google.com>
4823
4824	http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00429.html
4825
4826	* tree-vrp.c (range_includes_zero_p): Partially re-enable.
4827	(ssa_name_nonnegative_p): Partially re-enable.
4828	(ssa_name_nonzero_p): Likewise.
4829	* gimple-dummy.c (ssa_name_nonzero_p): Remove.
4830	(ssa_name_nonnegative_p): Remove.
4831	* tree-cfg.c (gimple_split_block): Convert to tuples.
4832
48332008-02-12  Aldy Hernandez  <aldyh@redhat.com>
4834
4835	Merge with mainline @132177
4836
4837	* configure.ac (ACX_PKGVERSION): Update revision merge string.
4838	* configure: Regenerate.
4839
48402008-02-08  Diego Novillo  <dnovillo@google.com>
4841
4842	http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00273.html
4843
4844	* gimplify.c (gimplify_call_expr): Remove code to set
4845	TREE_SIDE_EFFECTS.
4846	* gimple.c (gimple_has_side_effects): New.
4847	* gimple.h (gimple_has_side_effects): Declare.
4848	* tree-cfg.c (stmt_can_make_abnormal_goto): Call.
4849
48502008-02-07  Diego Novillo  <dnovillo@google.com>
4851
4852	* gimple.h (gimple_call_num_args): Rename from
4853	gimple_call_nargs.  Update all users.
4854
48552008-02-07  Aldy Hernandez  <aldyh@redhat.com>
4856
4857	* gimplify.c: Remove various FIXMEs that have been resolved.
4858
48592008-02-06  Aldy Hernandez  <aldyh@redhat.com>
4860
4861	* gimple.def: Add GIMPLE_OMP_ATOMIC_{LOAD,STORE} entires.
4862	* gsstruct.def: Add GSS_OMP_ATOMIC_{LOAD,STORE} entries.
4863	* gimple-pretty-print.c (dump_gimple_stmt): Add case for
4864	GIMPLE_OMP_ATOMIC_{LOAD,STORE}.
4865	* gimplify.c (gimplify_omp_atomic): Enable and convert to tuples.
4866	* tree.def: Add FIXME notes.
4867	* gimple.c (gss_for_code): Add cases for
4868	GIMPLE_OMP_ATOMIC_{LOAD,STORE}.
4869	(gimple_size): Same.
4870	(gimple_build_omp_atomic_load): New.
4871	(gimple_build_omp_atomic_store): New.
4872	* gimple.h (struct gimple_statement_omp_atomic_{load,store}): New.
4873	(union gimple_statement_d): Add gimple_omp_atomic_{load,store}.
4874	(gimple_omp_atomic_store_set_val): New.
4875	(gimple_omp_atomic_store_val): New.
4876	(gimple_omp_atomic_load_set_lhs): New.
4877	(gimple_omp_atomic_load_lhs): New.
4878	(gimple_omp_atomic_load_set_rhs): New.
4879	(gimple_omp_atomic_load_rhs): New.
4880	* tree-cfg.c (verify_types_in_gimple_seq_2): Add cases for
4881	GIMPLE_OMP_ATOMIC_{LOAD,STORE}.
4882
48832008-02-05  Diego Novillo  <dnovillo@google.com>
4884
4885	http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00161.html
4886
4887	* gimple-iterator.c (gsi_split_seq_after): Change
4888	argument type to gimple_stmt_iterator.  Update all users.
4889	(gsi_for_stmt): Return gimple_stmt_iterator.  Update all users.
4890	(gimple_find_edge_insert_loc): Change GSI argument to
4891	gimple_stmt_iterator.  Update all users.
4892	* gimple.c (gimple_seq_deep_copy): Change argument to gimple_seq.
4893	Update all users.
4894	* gimple.h (gsi_alloc): Remove.  Update all users.
4895	(gsi_start): Return gimple_stmt_iterator.  Update all users.
4896	(gsi_start_bb): Likewise.
4897	(gsi_last): Likewise.
4898	(gsi_last_bb): Likewise.
4899	(gsi_end_p): Change argument to gimple_stmt_iterator.
4900	Update all users.
4901	(gsi_one_before_end_p): Likewise.
4902	(gsi_stmt): Likewise.
4903	(gsi_bb): Likewise.
4904	(gsi_seq): Likewise.
4905	(gsi_split_seq_after): Likewise.
4906	(gsi_for_stmt): Likewise.
4907	(gsi_after_labels): Return gimple_stmt_iterator.  Update all users.
4908
49092008-02-05  Aldy Hernandez  <aldyh@redhat.com>
4910
4911	* gimple-pretty-print.c (dump_gimple_stmt): Print clauses for
4912	GIMPLE_OMP_PARALLEL.
4913	Handle GIMPLE_OMP_FOR.
4914	(dump_gimple_omp_for): New.
4915	* tree-pretty-print.c (dump_omp_clauses): Remove static.
4916	* diagnostic.h (dump_omp_clauses): Add prototype.
4917	* gimplify.c (gimplify_omp_for): Convert to tuples and enable.
4918	(gimplify_omp_workshare): Same.
4919	(gimplify_expr) [OMP_MASTER, OMP_ORDERED, OMP_CRITICAL]: Same.
4920
49212008-02-04  Oleg Ryjkov <olegr@google.com>
4922
4923	* tree-gimple.c (get_gimple_rhs_class): Handle
4924	FILTER_EXPR.
4925	* tree-eh.c (union treemple): Declare.
4926	Convert to tuples.
4927	* except.c:
4928	* except.h (lang_protect_cleanup_actions): Change return
4929	type to 'gimple'.  Update all users.
4930	* tree-inline.c (count_insns_seq): New.
4931	* tree-inline.h (count_insns_seq): Declare.
4932	* gimple.c (gimple_seq_deep_copy): New.
4933	* gimple.h (gimple_seq_deep_copy): Declare.
4934	(gimple_singleton_p): New.
4935	* passes.c (init_optimization_passes): Enable
4936	pass_lower_eh.
4937
49382008-02-02  Aldy Hernandez  <aldyh@redhat.com>
4939
4940	* tree.h (OMP_CLAUSE_REDUCTION_GIMPLE_INIT): New.
4941	(OMP_CLAUSE_REDUCTION_GIMPLE_MERGE): New.
4942	(struct tree_omp_clause): Add gimple_reduction_{init,merge} fields.
4943	* gimplify.c (gimplify_scan_omp_clauses): Gimplify reduction
4944	init/merge fields into separate sequences.
4945	(gimplify_and_add): Use gimplify_expr directly.
4946	* omp-low.c (lower_rec_input_clauses): Extract reduction info from
4947	gimple tuples in structure.
4948	(lower_reduction_clauses): Same.
4949
49502008-02-01  Diego Novillo  <dnovillo@google.com>
4951
4952	http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00036.html
4953
4954	* tree-complex.c (expand_complex_comparison): Set the RHS
4955	of the new comparison to boolean_true_node.
4956	* gimplify.c (gimplify_call_expr): Fix creation of new
4957	GIMPLE_CALL.  Create the vector of arguments in the same
4958	order as the original expression.
4959
49602008-02-01  Diego Novillo  <dnovillo@google.com>
4961
4962	http://gcc.gnu.org/ml/gcc-patches/2008-02/msg00032.html
4963
4964	* tree-pas.h (struct tree_opt_pass): Remove field
4965	WORKS_WITH_TUPLES_P.  Adjust all users.
4966	* opts.c (decode_options): Force -O0.
4967	* cfgexpand.c (gimple_to_tree): Handle GIMPLE_RETURN,
4968	GIMPLE_ASM, GIMPLE_CALL and GIMPLE_SWITCH.
4969	Show unrecognized tuple when failing.
4970	(expand_gimple_basic_block): Do not use
4971	gimple_stmt_iterator to go through the statements in BB.
4972	Handle GIMPLE_CALL instead of CALL_EXPR.
4973	(gimple_expand_cfg): Rename from tree_expand_cfg.  Update
4974	all users.
4975	Remove PROP_gimple_leh.
4976	* gimple.c (walk_gimple_seq): Guard against WI == NULL.
4977	* tree-cfg.c (execute_warn_function_return): Move #if 0
4978	markers.
4979	* passes.c (init_optimization_passes): Adjust #if 0
4980	markers to execute pass_expand.
4981	Guard more passes under #if 0.
4982
49832008-02-01  Rafael Espíndola  <espindola@google.com>
4984
4985	* passes.c (init_optimization_passes): Enable pass_del_ssa.
4986
4987	* tree-outof-ssa.c (insert_copy_on_edge): Port to tuples.
4988	(eliminate_build): Likewise.
4989	(eliminate_virtual_phis): Likewise.
4990	(rewrite_trees): Likewise. Remove stmt_ann_t ann.
4991	(stmt_list): Changed from tree to gimple_seq.
4992	(identical_copies_p): Port to tuples.
4993	(identical_stmt_lists_p): Likewise.
4994	(init_analyze_edges_for_bb): Likewise.
4995	(fini_analyze_edges_for_bb): Likewise.
4996	(process_single_block_loop_latch): Likewise.
4997	(analyze_edges_for_bb): LIkewise.
4998	(remove_ssa_form): Likewise.
4999	(insert_backedge_copies):
5000	(rewrite_out_of_ssa):Likewise.
5001	(pass_del_ssa): flip works_with_tuples_p. Don't require PROP_alias.
5002
5003	* tree-ssa-coalesce.c (build_ssa_conflict_graph): Port to tuples.
5004	(abnormal_corrupt): Port to tuples.
5005	(fail_abnormal_edge_coalesce): Port to tuples.
5006	(create_outofssa_var_map):Port to tuples.
5007	(coalesce_partitions): Port to tuples.
5008
50092008-02-01  Rafael Espíndola  <espindola@google.com>
5010
5011	* tree-ssa-operands.c (free_stmt_operands): Only free
5012	with_ops.addresses_taken if stmt has ops.
5013
50142008-01-31  Rafael Espíndola  <espindola@google.com>
5015
5016	* tree-optimize.c (pass_free_cfg_annotations): Flip
5017	works_with_tuples_p.
5018	* passes.c (init_optimization_passes): Enable
5019	pass_free_cfg_annotations.
5020
50212008-01-30  Diego Novillo  <dnovillo@google.com>
5022
5023	http://gcc.gnu.org/ml/gcc-patches/2008-01/msg01461.html
5024
5025	* tree-into-ssa.c (compute_global_livein): Initialize
5026	PHI with call to gsi_stmt.
5027	(rewrite_update_init_block): Likewise.
5028	* tree-complex.c (expand_complex_comparison): Initialize
5029	TYPE.
5030	(expand_complex_operations_1): Initialize BR and BI.
5031	* ebitmap.h (ebitmap_iter_init): Initialize OURN.
5032	* Makefile.in (dse.o-warn, ebitmap.o-warn,
5033	lower-subreg.o-warn, tree-chrec.o-warn, varasm.o-warn):
5034	New.
5035
50362008-01-30  Rafael Espíndola  <espindola@google.com>
5037
5038	* gimplify.c (gimplify_scan_omp_clauses): Comment out
5039	pop_gimplify_context calls
5040
50412008-01-30  Rafael Espíndola  <espindola@google.com>
5042
5043	* gimple.h (gsi_after_labels): Add.
5044
50452008-01-30  Rafael Espíndola  <espindola@google.com>
5046
5047	* Makefile.in (tree-complex.o): Uncomment gt-tree-vect-generic.h.
5048	(GTFILES): Add tree-vect-generic.c.
5049	* passes.c (init_optimization_passes): Enable pass_lower_vector.
5050	* tree-vect-generic.c: uncomment all the file.
5051	(elem_op_func): Use gimple_stmt_iterator instead of
5052	block_stmt_iterator.
5053	(tree_vec_extract): Likewise. Rename bsi to gsi.
5054	(do_unop): Likewise.
5055	(do_binop): Likewise.
5056	(do_plus_minus): Likewise.
5057	(do_negate): Likewise.
5058	(expand_vector_piecewise): Likewise.
5059	(expand_vector_parallel): Likewise.
5060	(expand_vector_addition): Likewise.
5061	(expand_vector_operation): Likewise. Remove "tree rhs" param. Add
5062	"gimple assign" param. Use gimple_assign_rhs1|2 instead of
5063	TREE_OPERAND.
5064	(expand_vector_operations_1): Use gimple_stmt_iterator instead of
5065	block_stmt_iterator. Rename bsi to gsi. Use gsi_stmt instead of
5066	bsi_stmt. Use gimple_assign_* instead of GIMPLE_STMT_OPERAND. Use
5067	gimple_assign_set_rhs_from_tree instead of setting *p_rhs.
5068	(gate_expand_vector_operations): Use gimple_stmt_iterator instead
5069	of block_stmt_iterator. Use gsi_* instead of bsi_*
5070	(pass_lower_vector): flip works_with_tuples_p
5071	(pass_lower_vector_ssa) flip works_with_tuples_
5072
50732008-01-29  Rafael Espíndola  <espindola@google.com>
5074
5075	http://gcc.gnu.org/ml/gcc-patches/2008-01/msg01434.html
5076
5077	* gimple.c (gimple_assign_set_rhs_with_ops): Fix
5078	allocation of operand vector.
5079
50802008-01-29  Diego Novillo  <dnovillo@google.com>
5081
5082	http://gcc.gnu.org/ml/gcc-patches/2008-01/msg01434.html
5083
5084	* tree-into-ssa.c (prepare_block_for_update): Initialize
5085	PHI.
5086	* tree.c (build_gimple_modify_stmt): Fix documentation.
5087
5088	* tree-complex.c: Convert to tuples.
5089	(pass_lower_complex_O0): Re-enable.
5090
5091	* ipa-cp.c (constant_val_insert): Disable.
5092	* tree-gimple.c (get_gimple_rhs_class): Handle SSA_NAME.
5093
5094	* tree-ssa-propagate.c: Fix documentation to refer to
5095	prop_simulate_again_p.
5096	(add_ssa_edge): Call prop_simulate_again_p.
5097	(simulate_stmt): Likewise.
5098	(simulate_block): Fix loop iterating over PHI nodes.
5099	* tree-ssa-propagate.h (prop_set_simulate_again): New.
5100	(prop_simulate_again_p): New.
5101	* gimple-iterator.c (gsi_insert_seq_after): Re-write to
5102	avoid use of gimple_stmt_iterator.
5103	(gimple_find_edge_insert_loc): Move from tree-cfg.c.
5104	Re-enable.
5105	(gsi_commit_edge_inserts): Likewise.
5106	(gsi_commit_one_edge_insert): Likewise.
5107	(gsi_insert_on_edge): Likewise.
5108	(gsi_insert_on_edge_immediate): Likewise.
5109	(gsi_insert_seq_on_edge): New.
5110	* gimplify.c (gimplify_cond_expr): Call
5111	gimple_cond_get_ops_from_tree.
5112	* tree-optimize.c (pass_all_optimizations): Enable.
5113	* gimple.c (gimple_cond_get_ops_from_tree): New.
5114	(gimple_build_cond_from_tree): New.
5115	* basic-block.h (struct edge_def): Replace field
5116	edge_def_insns.t with gimple_seq edge_def_insns.g.
5117	Update all users.
5118	* gimple.h (gimple_stmt_iterator):
5119	* tree-cfg.c (change_bb_for_stmt):
5120	* passes.c (init_optimization_passes): Move #if0 around
5121	to disable passes in groups instead of individually.
5122	(execute_function_todo): Re-enable call to update_ssa.
5123
51242008-01-25  Aldy Hernandez  <aldyh@redhat.com>
5125
5126	* gimple-pretty-print.c (dump_gimple_stmt): Handle
5127	GIMPLE_OMP_PARALLEL.
5128	* gimplify.c (pop_gimplify_context): Add comment.
5129	(gimplify_and_return_first): New.
5130	(gimplify_scan_omp_clauses): Remove unused 'gs'.
5131	Remove #if 0.
5132	(gimplify_omp_parallel): Convert to tuples.
5133	(gimplify_omp_workshare): Remove redundant retval.
5134	(gimplify_expr): Adapt to lack of retval for gimplify_omp_variable and
5135	gimplify_omp_workshare.
5136	Abort on OMP_ATOMIC_{LOAD,STORE} case.
5137
51382008-01-21  Diego Novillo  <dnovillo@google.com>
5139
5140	Merge with mainline @131695
5141
5142	* configure.ac (ACX_PKGVERSION): Update revision merge
5143	string.
5144	* configure: Regenerate.
5145
51462008-01-15  Diego Novillo  <dnovillo@google.com>
5147
5148	http://gcc.gnu.org/ml/gcc-patches/2008-01/msg00674.html
5149
5150	* tree-into-ssa.c (mark_def_sites): Force operand scan.
5151	* gimple.def (GIMPLE_ASSIGN): Move into section of
5152	statements with memory operands.
5153	* gimple-dummy.c (remove_unused_locals): Remove.
5154	* tree-flow-inline.h (noreturn_call_p,
5155	mark_stmt_modified, update_stmt, update_stmt_if_modified,
5156	stmt_modified_p): Remove.
5157	* tree-ssa-live.c: Convert to tuples.
5158	* gimple.c (gimple_set_modified): Replace
5159	mark_stmt_modified.  Update all callers.
5160	(gimple_remove): Call free_stmt_operands.
5161	* gimple.h: Include tree-ssa-operands.h
5162	Move extern function declarations earlier in the file.
5163	(GIMPLE_CHECK2): Remove.
5164	(GIMPLE_RANGE_CHECK): Remove.
5165	(struct gimple_statement_with_ops): Fix GTY markers.
5166	(struct gimple_statement_with_memory_ops): Likewise.
5167	(gimple_modified_p): Replace stmt_modifed_p.  Update all
5168	users.
5169	(update_stmt): Move from tree-flow-inline.h.  Update all
5170	users.
5171	(update_stmt_if_modified): Likewise.
5172	(gimple_has_ops): Use range GIMPLE_COND ... GIMPLE_RETURN
5173	(gimple_has_mem_ops): Use range GIMPLE_ASSIGN ... GIMPLE_RETURN
5174	(gimple_num_ops): Call gimple_has_ops.
5175	(gimple_ops): Likewise.
5176	(gimple_op): Likewise.
5177	(gimple_op_ptr): Likewise.
5178	(gimple_set_op): Likewise.
5179	(gimple_set_addresses_taken): Remove.  Update all users.
5180	(gimple_add_to_addresses_taken): Likewise.
5181	(gimple_call_noreturn_p): Replace noreturn_call_p.
5182	Update all users.
5183	(gimple_phi_arg): Assert that INDEX is smaller than
5184	CAPACITY.
5185	* passes.c (init_optimization_passes): Enable
5186	pass_referenced_vars, pass_reset_cc_flags and pass_build_ssa.
5187	* tree-ssa-operands.c (gimple_set_stored_syms): Do not
5188	free the STORES field if SYMS is empty.
5189	(gimple_set_loaded_syms): Likewise.
5190	(finalize_ssa_stmt_operands): Only call
5191	finalize_ssa_vdefs and finalize_ssa_vuses if STMT has
5192	memory operands.
5193	(get_expr_operands): Handle CASE_LABEL_EXPR.
5194	(free_stmt_operands): Free bitmaps ADDRESSES_TAKEN,
5195	STORES and LOADS.
5196	(gimple_add_to_addresses_taken): Rename from
5197	add_to_addressable_set.
5198
51992008-01-14  Aldy Hernandez  <aldyh@redhat.com>
5200
5201	* tree-dfa.c (dump_dfa_stats): Add %z modifier to size_t argument.
5202
52032008-01-11  Andrew MacLeod  <amacleod@redhat.com>
5204	    Diego Novillo  <dnovillo@google.com>
5205
5206	http://gcc.gnu.org/ml/gcc-patches/2008-01/msg00493.html
5207
5208	* tree.h (struct ssa_use_operand_d): Replace field STMT
5209	with a union field LOC containing the fields STMT and
5210	SSA_NAME.
5211	Update all users.
5212	* tree-flow.h (struct immediate_use_iterator_d): Document
5213	how immediate use iteration works.
5214
52152008-01-10  Diego Novillo  <dnovillo@google.com>
5216
5217	http://gcc.gnu.org/ml/gcc-patches/2008-01/msg00444.html
5218
5219	* Makefile.in (tree-complex.o): Remove gt-tree-vect-generic.h
5220
52212008-01-10  Diego Novillo  <dnovillo@google.com>
5222
5223	http://gcc.gnu.org/ml/gcc-patches/2008-01/msg00436.html
5224
5225	* tree-ssa-operands.h (PHI_RESULT_PTR): Call
5226	gimple_phi_result_ptr.
5227	(PHI_ARG_DEF_PTR): Call gimple_phi_arg_imm_use_ptr.
5228	(free_ssa_operands): Remove.
5229	(copy_virtual_operands, create_ssa_artificial_load_stmt,
5230	add_to_addressable_set, discard_stmt_changes,
5231	FOR_EACH_PHI_OR_STMT_USE, FOR_EACH_PHI_OR_STMT_DEF): Convert
5232	to use 'gimple'.
5233	* tree-into-ssa.c: Convert to use 'gimple'.
5234	(rewrite_uses_p): New.  Use instead of REWRITE_THIS_STMT.
5235	(set_rewrite_uses): New.  Use instead of REWRITE_THIS_STMT.
5236	(register_defs_p): New.  Use instead of
5237	REGISTER_DEFS_IN_THIS_STMT.
5238	(set_register_defs): New.  Use instead of
5239	REGISTER_DEFS_IN_THIS_STMT.
5240	(REWRITE_THIS_STMT): Remove.
5241	(REGISTER_DEFS_IN_THIS_STMT): Remove.
5242	* tree-pretty-print.c (dump_vops): Remove.  Update all
5243	users.
5244	(dump_generic_node): Do not handle PHI_NODE.
5245	* tree.c (tree_node_kind): Remove "phi_nodes" entry.
5246	(tree_code_size): Do not handle PHI_NODE.
5247	(tree_size): Likewise.
5248	(make_node_stat): Likewise.
5249	(tree_node_structure): Likewise.
5250	(phi_node_elt_check_failed): Remove.
5251	* tree.h (PHI_NODE_ELT_CHECK): Remove.
5252	(PHI_RESULT_TREE): Remove.
5253	(PHI_ARG_DEF_TREE): Remove.
5254	(PHI_CHAIN): Remove.
5255	(PHI_NUM_ARGS): Remove.
5256	(PHI_ARG_CAPACITY): Remove.
5257	(PHI_ARG_ELT): Remove.
5258	(PHI_ARG_EDGE): Remove.
5259	(PHI_BB): Remove.
5260	(PHI_ARG_IMM_USE_NODE): Remove.
5261	(struct tree_phi_node): Remove.
5262	(union tree_node): Remove field 'phi'.
5263	(release_phi_node): Change argument to gimple.
5264	(duplicate_ssa_name): Change second argument to gimple.
5265	(swap_tree_operands): Remove.
5266	(enum tree_node_kind): Remove phi_kind entry.
5267	* tree-phinodes.c: Convert to use gimple.
5268	* tree-gimple.c (is_gimple_stmt): Do not handle PHI_NODE.
5269	* cgraphunit.c (cgraph_process_new_functions): Call
5270	gimple_unreachable to mark unconverted sections.
5271	(verify_cgraph_node): Do not ICE if THIS_CFUN is NULL.
5272	Convert statement verification to use gimple.
5273	(cgraph_expand_function): Call gimple_unreachable to mark
5274	unconverted sections.
5275	* tree-ssa-propagate.c: Convert to use gimple.
5276	(STMT_IN_SSA_EDGE_WORKLIST): Use flag GF_PLF_1 as marker.
5277	(DONT_SIMULATE_AGAIN): Remove.  Use gimple_visited.
5278	* gimple-dummy.c: Remove converted functions.
5279	* tree-ssa-alias.c (may_be_aliased): Re-enable.
5280	* tree-flow-inline.h (gimple_phi_arg_imm_use_ptr): Rename
5281	from get_phi_arg_def_ptr.
5282	(bsi_start, bsi_after_labels, bsi_last, bsi_end_p,
5283	bsi_next, bsi_prev, bsi_stmt, bsi_stmt_ptr): Remove.
5284	* tree.def (PHI_NODE): Remove.  Update most users.
5285	* tree-dfa.c: Convert to use gimple.
5286	* common.opt (fgimple-conversion): Default to 0.
5287	* tree-ssa.c: Convert to use gimple.
5288	* tree-optimize.c (pass_early_local_passes,
5289	pass_all_early_optimization, pass_init_datastructures):
5290	Enable.
5291	* tree-flow.h (tree_ann_type): Remove STMT_ANN.  Update
5292	all users.
5293	(struct stmt_ann_d): Remove.  Update all users.
5294	* Makefile.in (GIMPLE_H): Add tree-ssa-operands.h.
5295	(tree-ssa-copy.o, tree-phi-nodes.o, tree-complex.o):
5296	Re-enable.
5297	* gimple.h (enum plf_mask): Define.
5298	(GF_NO_WARNING): Remove
5299	(bb_seq): Return NULL if BB->il.gimple is NULL.
5300	(struct gimple_statement_base): Add bitfields no_warning,
5301	visited, unused_1, unused_2, unused_3, unused_4 and plf.
5302	(gimple_flags, gimple_set_flags, gimple_add_flag):
5303	Remove.  Update all users.
5304	(gimple_set_visited): New.
5305	(gimple_visited_p): New.
5306	(gimple_set_plf): New.
5307	(gimple_plf): New.
5308	(gimple_has_volatile_ops): New.
5309	(gimple_set_has_volatile_ops): New.
5310	(gimple_addresses_taken): New.
5311	(gimple_set_addresses_taken): New.
5312	(gimple_add_to_addresses_taken): New.
5313	(gimple_phi_result_ptr): New.
5314	(gsi_stmt_ptr): New.
5315	(gsi_bb): New.
5316	(gsi_seq): New.
5317	* tree-cfg.c (execute_build_cfg): Do not call
5318	gimple_set_body after building the CFG.
5319	(pass_build_cfg): Do not require PROP_gimple_leh.
5320	(gimplify_val): Convert to gimple.
5321	* passes.c (init_optimization_passes): Disable all of
5322	pass_all_early_optimizations.
5323	* tree-ssanames.c: Convert to gimple.
5324	* tree-ssa-operands.c: Convert to gimple.
5325	(gimple_set_stored_syms): New.
5326	(gimple_set_loaded_syms): New.
5327
53282008-01-03  Diego Novillo  <dnovillo@google.com>
5329
5330	Merge with mainline @131303
5331
5332	* configure.ac (ACX_PKGVERSION): Update revision merge
5333	string.
5334	* configure: Regenerate.
5335
53362007-12-20  Diego Novillo  <dnovillo@google.com>
5337
5338	* Makefile.in (builtins.o-warn, expr.o-warn): Add
5339	-Wno-error.
5340
53412007-12-05  Diego Novillo  <dnovillo@google.com>
5342
5343	http://gcc.gnu.org/ml/gcc-patches/2007-12/msg00221.html
5344
5345	* gimple.c (walk_gimple_asm): Guard against WI being
5346	NULL.
5347	(walk_gimple_stmt): Likewise.
5348
53492007-12-05  Diego Novillo  <dnovillo@google.com>
5350
5351	http://gcc.gnu.org/ml/gcc-patches/2007-12/msg00216.html
5352
5353	* tree.h (gimple_unreachable_1): Declare.
5354	(gimple_unreachable): Define.
5355	Replace calls to gcc_unreachable with gimple_unreachable
5356	in unconverted code.
5357	* gimple-dummy.c (gimple_unreachable_1): New function.
5358	* common.opt (fgimple-only): Remove.
5359	(fgimple-conversion): Define.
5360	* Makefile.in (STRICT_WARN): Add -Wno-return-type.
5361
53622007-11-30  Diego Novillo  <dnovillo@google.com>
5363
5364	Merge with mainline @130470
5365
5366	* configure.ac (ACX_PKGVERSION): Update revision merge
5367	string.
5368	* configure: Regenerate.
5369	* tree-inline.c (copy_decl_no_change,
5370	copy_decl_for_dup_finish): Re-enable.
5371
53722007-11-26  Aldy Hernandez  <aldyh@redhat.com>
5373
5374	* gimple.h (gimple_bind_block): Update comment.
5375
53762007-11-19  Diego Novillo  <dnovillo@google.com>
5377
5378	Merge with mainline @130291.
5379
5380	* configure.ac (ACX_PKGVERSION): Update revision merge string.
5381	* configure: Regenerate.
5382
53832007-11-19  Diego Novillo  <dnovillo@google.com>
5384
5385	* tree-flow-inline.h (get_lineno): Call IS_LOCATION_EMPTY
5386	and LOCATION_LINE instead of accessing location fields
5387	directly.
5388	* gimple-low.c (lower_function_body): Use
5389	UNKNOWN_LOCATION instead of unknown_location.
5390
53912007-11-16  Diego Novillo  <dnovillo@google.com>
5392
5393	* cgraph.c (cgraph_create_edge): Call gimple_body
5394	instead of DECL_SAVED_TREE.
5395	(dump_cgraph_node): Likewise.
5396	* cgraphunit.c (verify_cgraph_node): Likewise.
5397	(cgraph_analyze_functions): Likewise.
5398	(cgraph_mark_functions_to_output): Likewise.
5399	(cgraph_optimize): Likewise.
5400	* tree-eh.c (lower_eh_constructs): Add notes for future
5401	changes to calls to DECL_SAVED_TREE.
5402	(refactor_eh_r): Likewise.
5403	* cfgexpand.c (gimple_to_tree): New function.
5404	(maybe_dump_rtl_for_gimple_stmt): Rename from
5405	maybe_dump_rtl_for_tree_stmt.  Convert to tuples.
5406	(label_rtx_for_bb): Convert to tuples.
5407	(expand_gimple_cond): Rename from
5408	expand_gimple_cond_expr.  Convert to tuples.
5409	(expand_gimple_tailcall): Convert to tuples.
5410	(expand_gimple_basic_block): Convert to tuples.
5411	(discover_nonconstant_array_refs_r): Convert to tuples.
5412	(discover_nonconstant_array_refs): Convert to tuples.
5413	* tree-mudflap.c (execute_mudflap_function_decls): Add
5414	deprecation comment for DECL_SAVED_TREE call.
5415	* tree-inline.c (copy_generic_body): Call gimple_body
5416	instead of DECL_SAVED_TREE.
5417	(inlinable_function_p): Likewise.
5418	(clone_body): Add deprecation comment for DECL_SAVED_TREE
5419	call.
5420	* tree-cfg.c (remove_useless_stmts_bind): Call
5421	gimple_body instead of DECL_SAVED_TREE.
5422	(remove_useless_stmts): Likewise.
5423
54242007-11-10  Aldy Hernandez  <aldyh@redhat.com>
5425
5426	* tree-cfg.c (verify_types_in_gimple_call): OBJ_TYPE_REF are allowed
5427	as function types.
5428
5429	[objc]
5430	* objc-act.c (objc_gimplify_expr): Change pre and post to sequences.
5431	* objc-act.h (objc_gimplify_expr): Change prototype accordingly.
5432
5433	[testsuite]
5434	* lib/objc.exp: Set -I regardless of libobjc.
5435
54362007-11-10  Aldy Hernandez  <aldyh@redhat.com>
5437
5438	* tree-gimple.h (tree_annotate_all_with_locus): New.
5439	* gimple-dummy.c: Add omp_reduction_init and
5440	diagnose_omp_structured_block_errors.
5441	* gimplify.c (tree_should_carry_locus_p): New.
5442	(tree_annotate_one_with_locus): New.
5443	(tree_annotate_all_with_locus): New.
5444
54452007-11-08  Diego Novillo  <dnovillo@google.com>
5446
5447	Merge with mainline @129982
5448
5449	* configure.ac (ACX_PKGVERSION): Update revision merge string.
5450	* configure: Regenerate.
5451
54522007-11-01  Diego Novillo  <dnovillo@google.com>
5453
5454	* cgraphbuild.c (initialize_inline_failed): Re-enable.
5455	(build_cgraph_edges): Adapt to use tuples.
5456	(pass_build_cgraph): Re-enable.
5457	(rebuild_cgraph_edges): Adapt to use tuples.
5458	* cgraph.c (cgraph_release_function_body): Also NULLify the
5459	gimple body.
5460	(debug_cgraph_node): New.
5461	(debug_cgraph): New.
5462	* cgraph.h (struct cgraph_edge): Change field CALL_STMT to
5463	type gimple.  Update all users.
5464	* cgraphunit.c (cgraph_analyze_functions): If DECL does not
5465	have a struct function entry, discard it.
5466	* gimple.h (GF_CALL_CANNOT_INLINE): New.
5467	(gimple_call_lhs_ptr): New.
5468	(gimple_call_mark_uninlinable): New.
5469	(gimple_call_cannot_inline_p): New.
5470	(struct walk_stmt_info): Add field PSET.
5471
54722007-11-01  Diego Novillo  <dnovillo@google.com>
5473
5474	* tree-optimize.c (tree_rest_of_compilation): Call
5475	gimple_set_body to remove the body if not inlining.
5476	* gimple.c (walk_gimple_stmt): Update documentation.
5477	Pass WI->PSET to every call to walk_tree.
5478
54792007-11-01  Diego Novillo  <dnovillo@google.com>
5480
5481	* langhooks.h (struct lang_hooks_for_callgraph): Remove third
5482	argument from function pointer ANALYZE_EXPR.  Update all
5483	users.
5484
54852007-10-30  Diego Novillo  <dnovillo@google.com>
5486
5487	* gimple.c (gimple_build_omp_return): Call
5488	gimple_omp_return_set_nowait if needed.
5489	* gimple.h (GIMPLE_CHECK, GIMPLE_CHECK2, GIMPLE_RANGE_CHECK):
5490	Move earlier in the file.
5491	(GF_NO_WARNING): Change to static const unsigned.
5492	(GF_CALL_TAILCALL): New.
5493	(GF_OMP_PARALLEL_COMBINED): Rename from
5494	OMP_PARALLEL_COMBINED_FLAG.  Change to static const unsigned.
5495	Update all users.
5496	(GF_OMP_RETURN_NOWAIT): Rename from OMP_RETURN_NOWAIT_FLAG.
5497	Change to static const unsigned.
5498	Update all users.
5499	(GF_OMP_SECTION_LAST): Rename from OMP_SECTION_LAST_FLAG.
5500	Change to static const unsigned.
5501	Update all users.
5502	(gimple_omp_return_set_nowait): New.
5503	(gimple_call_set_tail): New.
5504	(gimple_call_tail_p): New.
5505
55062007-10-30  Aldy Hernandez  <aldyh@redhat.com>
5507
5508	* gimplify.c (get_tmp_var_for): Remove reference to IS_FORMAL in
5509	opening comment.
5510	(gimplify_return_expr): Return GS_ERROR if we have errored.
5511	(gimplify_statement_list): Handle case where voidify_wrapper returns a
5512	temporary.
5513	(gimplify_call_expr): Return gracefully on error.
5514	(gimplify_cond_expr): Same.
5515	* gimple.h (gimple_call_return_type): Do not error on methods.
5516
55172007-10-29  Diego Novillo  <dnovillo@google.com>
5518	    Tom Tromey  <tromey@redhat.com>
5519
5520	* gimple.h (gimple_locus): Update comment.
5521	(gimple_set_locus): Likewise.
5522	(gimple_locus_empty_p): Add support for mapped locations.
5523
55242007-10-29  Diego Novillo  <dnovillo@google.com>
5525
5526	* tree-optimize.c (execute_cleanup_cfg_pre_ipa): Re-enable.
5527	* gimple.c (walk_gimple_asm): Tidy comment.
5528
55292007-10-29  Aldy Hernandez  <aldyh@redhat.com>
5530
5531	* tree-gimple.h (build_gimple_eh_filter_tree): Remove.
5532	* gimplify.c (build_gimple_eh_filter_tree): Move from here...
5533	* cp/cp-gimplify.c: ...to here.
5534	(cp_gimplify_init_expr): Convert to tuples.
5535	(gimplify_must_not_throw_expr): Make function return a
5536	gimplify_status and convert to tuples.
5537	(cp_gimplify_expr): Convert MUST_NOT_THROW_EXPR, INIT_EXPR, and
5538	USING_STMT to tuples.
5539
55402007-10-28  Aldy Hernandez  <aldyh@redhat.com>
5541
5542	* gimplify.c (gimplify_body): Make work when body contains more than
5543	a GIMPLE_BIND statement.
5544
55452007-10-26  Diego Novillo  <dnovillo@google.com>
5546
5547	Merge with mainline @129659.
5548
5549	* configure.ac (ACX_PKGVERSION): Update revision merge string.
5550	* configure: Regenerate.
5551
55522007-10-26  Diego Novillo  <dnovillo@google.com>
5553
5554	* gimple-low.c (lower_builtin_setjmp): Pass ARG to first
5555	call to gimple_build_call.
5556
55572007-10-17  Aldy Hernandez  <aldyh@redhat.com>
5558
5559	* tree-gimple.c (get_gimple_rhs_class): Add case for EXC_PTR_EXPR.
5560	* gimplify.c (gimple_conditional_context): Enable.
5561	(gimplify_cleanup_point_expr): Enable.  Adjust for tuples.
5562	(gimple_push_cleanup): Enable.
5563	(gimplify_target_expr): Do not gimplify TARGET_EXPR_CLEANUP before
5564	calling gimple_push_cleanup.
5565	(gimplify_expr): Rename `try' to `try_'.
5566	Enable CLEANUP_POINT_EXPR case.
5567	Gimplify CATCH_EXPR and EH_FILTER_EXPR cases correctly.
5568
55692007-10-17  Aldy Hernandez  <aldyh@redhat.com>
5570
5571	* gimple.c (gimple_size): Handle GIMPLE_WITH_CLEANUP_EXPR.
5572	* gimple.h (struct gimple_statement_catch): Make handler a structure,
5573	not a pointer.
5574	(struct gimple_statement_eh_filter): Make failure a structure, not a
5575	pointer.
5576	document EH_FILTER_MUST_NOT_THROW subcode flag.
5577	(gimple_catch_handler): Handler is now a struct.
5578	(gimple_catch_set_handler): Same.
5579	(gimple_eh_filter_failure): Failure is now a struct.
5580	(gimple_eh_filter_set_failure): Same.
5581	(gimple_eh_filter_must_not_throw): New.
5582	(gimple_eh_filter_set_must_not_throw): New.
5583	(gsi_next): Update comment.
5584	(gsi_prev): Same.
5585	* tree-cfg.c (verify_types_in_gimple_seq_2): Handle GIMPLE_EH_FILTER.
5586
55872007-10-18  Diego Novillo  <dnovillo@google.com>
5588
5589	* gimple-iterator.c (gsi_delink): Remove.
5590	* gimple.h (gsi_delink): Remove.
5591
55922007-10-17  Diego Novillo  <dnovillo@google.com>
5593
5594	* coretypes.h (const_gimple_seq): New typedef.
5595	* gimple.h (gimple_seq_first): Constify argument.
5596	(gimple_seq_last): Likewise.
5597	(gimple_seq_copy): Likewise.
5598	(gimple_seq_empty_p): Likewise.
5599	(gimple_set_prev): Rename from set_gimple_prev.
5600	Update all users.
5601	(gimple_set_next): Rename from set_gimple_next.
5602	Update all users.
5603	(gimple_set_flags): Rename from set_gimple_flags.
5604	Update all users.
5605	(gimple_add_flag): Rename from add_gimple_flag.
5606	Update all users.
5607	(gimple_set_subcode): Rename from set_gimple_subcode.
5608	Update all users.
5609	(gimple_set_block): Rename from set_gimple_block.
5610	Update all users.
5611	(gimple_set_locus): Rename from set_gimple_locus.
5612	Update all users.
5613	(gimple_locus_empty_p): Constify argument.
5614	(gimple_has_ops): Likewise.
5615	(gimple_has_mem_ops): Likewise.
5616	(gimple_def_ops): Likewise.
5617	(gimple_set_def_ops): Rename from set_gimple_def_ops.
5618	Update all users.
5619	(gimple_use_ops): Constify argument.
5620	(gimple_set_use_ops): Rename from set_gimple_use_ops.
5621	Update all users.
5622	(gimple_vuse_ops): Constify argument.
5623	(gimple_set_vuse_ops): Rename from set_gimple_vuse_ops.
5624	Update all users.
5625	(gimple_vdef_ops): Constify argument.
5626	(gimple_set_vdef_ops): Rename from set_gimple_vdef_ops.
5627	Update all users.
5628	(gimple_loaded_syms): Constify argument.
5629	(gimple_stored_syms): Constify argument.
5630	(gimple_modified): Constify argument.
5631	(gimple_set_modified): Rename from set_gimple_modified.
5632	Update all users.
5633	(gimple_omp_return_nowait_p): Constify argument.
5634	(gimple_omp_section_last_p): Constify argument.
5635	(gimple_omp_parallel_combined_p): Constify argument.
5636	(gimple_build_return): Rename from build_gimple_return.
5637	Update all users.
5638	(gimple_build_assign): Rename from build_gimple_assign.
5639	Update all users.
5640	(gimple_build_assign_with_ops): Rename from
5641	build_gimple_assign_with_ops.
5642	Update all users.
5643	(gimple_build_call_vec): Rename from build_gimple_call_vec.
5644	Update all users.
5645	(gimple_build_call): Rename from build_gimple_call.
5646	Update all users.
5647	(gimple_build_cond): Rename from build_gimple_cond.
5648	Update all users.
5649	(gimple_build_label): Rename from build_gimple_label.
5650	Update all users.
5651	(gimple_build_goto): Rename from build_gimple_goto.
5652	Update all users.
5653	(gimple_build_nop): Rename from build_gimple_nop.
5654	Update all users.
5655	(gimple_build_asm): Rename from build_gimple_asm.
5656	Update all users.
5657	(gimple_build_asm_vec): Rename from build_gimple_asm_vec.
5658	Update all users.
5659	(gimple_build_catch): Rename from build_gimple_catch.
5660	Update all users.
5661	(gimple_build_eh_filter): Rename from build_gimple_eh_filter.
5662	Update all users.
5663	(gimple_build_try): Rename from build_gimple_try.
5664	Update all users.
5665	(gimple_build_wce): Rename from build_gimple_wce.
5666	Update all users.
5667	(gimple_build_resx): Rename from build_gimple_resx.
5668	Update all users.
5669	(gimple_build_switch): Rename from build_gimple_switch.
5670	Update all users.
5671	(gimple_build_switch_vec): Rename from
5672	build_gimple_switch_vec.  Update all users.
5673	(gimple_build_omp_parallel): Rename from
5674	build_gimple_omp_parallel.  Update all users.
5675	(gimple_build_omp_for): Rename from build_gimple_omp_for.
5676	Update all users.
5677	(gimple_build_omp_critical): Rename from
5678	build_gimple_omp_critical.
5679	Update all users.
5680	(gimple_build_omp_section): Rename from
5681	build_gimple_omp_section.  Update all users.
5682	(gimple_build_omp_continue): Rename from
5683	build_gimple_omp_continue.  Update all users.
5684	(gimple_build_omp_master): Rename from
5685	build_gimple_omp_master.  Update all users.
5686	(gimple_build_omp_ordered): Rename from
5687	build_gimple_omp_ordered.  Update all users.
5688	(gimple_build_omp_sections): Rename from
5689	build_gimple_omp_sections.  Update all users.
5690	(gimple_build_omp_single): Rename from
5691	build_gimple_omp_single.  Update all users.
5692	(gimple_set_body): Rename from set_gimple_body.  Update all
5693	users.
5694	(gimple_set_bb): Rename from set_gimple_bb.  Update all users.
5695	(is_gimple_operand): Constify argument.
5696	(gimple_ops): Likewise.
5697	(gimple_op_ptr): Likewise.
5698	(gimple_call_lhs): Likewise.
5699	(gimple_call_return_type): Likewise.
5700	(gimple_call_chain): Likewise.
5701	(gimple_call_arg_ptr): Likewise.
5702	(gimple_cond_true_label): Likewise.
5703	(gimple_bind_vars): Likewise.
5704	(gimple_bind_set_body): Likewise.
5705	(gimple_bind_block): Likewise.
5706	(gimple_asm_ninputs): Likewise.
5707	(gimple_asm_noutputs): Likewise.
5708	(gimple_asm_nclobbers): Likewise.
5709	(gimple_asm_input_op): Likewise.
5710	(gimple_asm_output_op): Likewise.
5711	(gimple_asm_clobber_op): Likewise.
5712	(gimple_asm_string): Likewise.
5713	(gimple_asm_volatile_p): Likewise.
5714	(gimple_catch_types): Likewise.
5715	(gimple_catch_handler): Likewise.
5716	(gimple_eh_filter_types): Likewise.
5717	(gimple_eh_filter_failure): Likewise.
5718	(gimple_try_kind): Likewise.
5719	(gimple_try_set_eval): Likewise.
5720	(gimple_try_set_cleanup): Likewise.
5721	(gimple_wce_set_cleanup): Likewise.
5722	(gimple_wce_cleanup_eh_only): Likewise.
5723	(gimple_phi_capacity): Likewise.
5724	(gimple_phi_num_args): Likewise.
5725	(gimple_phi_result): Likewise.
5726	(gimple_resx_region): Likewise.
5727	(gimple_switch_num_labels): Likewise.
5728	(gimple_switch_label): Likewise.
5729	(gimple_switch_default_label): Likewise.
5730	(gimple_omp_set_body): Likewise.
5731	(gimple_omp_critical_name): Likewise.
5732	(gimple_omp_for_clauses): Likewise.
5733	(gimple_omp_for_index): Likewise.
5734	(gimple_omp_for_initial): Likewise.
5735	(gimple_omp_for_final): Likewise.
5736	(gimple_omp_for_incr): Likewise.
5737	(gimple_omp_for_set_pre_body): Likewise.
5738	(gimple_omp_parallel_clauses): Likewise.
5739	(gimple_omp_parallel_child_fn): Likewise.
5740	(gimple_omp_parallel_data_arg): Likewise.
5741	(gimple_omp_single_clauses): Likewise.
5742	(gimple_omp_sections_clauses): Likewise.
5743	(gimple_omp_for_cond): Likewise.
5744	(gimple_return_retval): Likewise.
5745	(is_gimple_omp): Likewise.
5746	(gimple_nop_p): Likewise.
5747	(gimple_expr_type): Likewise.
5748
57492007-10-17  Diego Novillo  <dnovillo@google.com>
5750
5751	* tree-ssa-loop-manip.c (gimple_duplicate_loop_to_header_edge): Rename
5752	from tree_duplicate_loop_to_header_edge.
5753	Update all users.
5754	* value-prof.c: Convert and enable all functions in the file.
5755	(gimple_divmod_fixed_value): Rename from
5756	tree_divmod_fixed_value.
5757	(gimple_mod_pow2): Rename from tree_mod_pow2.
5758	(gimple_mod_subtract): Rename from tree_mod_subtract.
5759	(gimple_divmod_fixed_value_transform): Rename from
5760	tree_divmod_fixed_value_transform.
5761	(gimple_mod_pow2_value_transform): Rename from
5762	tree_mod_pow2_value_transform.
5763	(gimple_mod_subtract_transform): Rename from
5764	tree_mod_subtract_transform.
5765	(gimple_stringops_transform): Rename from tree_stringops_transform.
5766	(gimple_ic_transform): Rename from tree_ic_transform.
5767	Update all users.
5768	* value-prof.h (gimple_register_value_prof_hooks): Rename from
5769	tree_register_value_prof_hooks.  Update all users.
5770	* tree.h (OMP_DIRECTIVE_P): Remove.  Update all users.
5771	(validate_arglist): Move to gimple.h.
5772	* builtins.c: (validate_arglist): Change first argument to
5773	const_gimple.  Disable most callers.
5774	* gimple.def: Document all GIMPLE codes.
5775	* tree-gimple.c (is_gimple_operand): New.
5776	(get_gimple_rhs_class)<ADDR_EXPR>: Accept as a
5777	GIMPLE_SINGLE_RHS.
5778	<WITH_SIZE_EXPR>: Likewise.
5779	(get_gimple_rhs_num_ops): New.
5780	(is_gimple_call_addr): Tidy.
5781	* tree-gimple.h (get_gimple_rhs_num_ops): Declare.
5782	* gimple-dummy.c (free_histograms, stringop_block_profile):
5783	Remove.
5784	* gimple-low.c (lower_function_body): Tidy.
5785	* predict.c (gimple_predicted_by_p): Rename from
5786	tree_predicted_by_p.  Update all users.
5787	(gimple_predict_edge): Rename from tree_predict_edge.  Update
5788	all users.
5789	* gimple-iterator.c (gsi_link_seq_after): Update documentation.
5790	(gsi_link_after): Likewise.
5791	* tree-eh.c (stmt_could_throw_1_p): New.
5792	(stmt_could_throw_p): New.
5793	* gimple-pretty-print.c (dump_unary_rhs): Print ADDR_EXPR as
5794	a single operand.
5795	(dump_gimple_switch): Support NULL case labels.
5796	(dump_gimple_asm): Dump outputs first.
5797	* gimplify.c (compare_case_labels): Make the default label
5798	sort first.
5799	(sort_case_labels): Do not special case the default label.
5800	(gimplify_init_ctor_eval): Gimplify initializer expressions.
5801	(gimplify_modify_expr): Unshare the operands before setting
5802	them on the new GIMPLE_ASSIGN statement.
5803	(gimplify_asm_expr): NULLify the chain on operands before
5804	putting them on the input/output vectors.
5805	* tree-cfgcleanup.c: Convert and enable CFG cleanup functions.
5806	(cleanup_control_expr_graph): Call gimple_fold.
5807	* tree-flow.h (gimple_block_label): Rename from
5808	tree_block_label.  Update all users.
5809	(gimple_duplicate_sese_region): Rename from
5810	tree_duplicate_sese_region.  Update all users.
5811	(gimple_duplicate_sese_tail): Rename from
5812	tree_duplicate_sese_tail.  Update all users.
5813	(gimple_purge_dead_abnormal_call_edges): Rename from
5814	tree_purge_dead_abnormal_call_edges.  Update all users.
5815	(gimple_purge_all_dead_eh_edges): Rename from
5816	tree_purge_all_dead_eh_edges.  Update all users.
5817	(stmt_could_throw_p): Declare.
5818	(add_stmt_to_eh_region_fn): Move from except.h.
5819	(remove_stmt_from_eh_region_fn): Likewise.
5820	(lookup_stmt_eh_region_fn): Likewise.
5821	(lookup_stmt_eh_region): Likewise.
5822	(verify_eh_edges): Likewise.
5823	* Makefile.in (GIMPLE_H): Add dependencies on GGC_H, TM_H and
5824	TARGET_H.
5825	(ipa-inline.o): Add dependency on TREE_FLOW_H.
5826	(out_object_file): Add dependency on TREE_GIMPLE_H.
5827	* gimple.c (gimple_set_code): Rename from set_gimple_code.
5828	(gimple_size): New.
5829	(gimple_alloc): New.
5830	(gimple_alloc_ops): New.
5831	(build_gimple_with_ops): Call them.
5832	(build_gimple_return): Only call gimple_return_set_retval if
5833	RETVAL is not NULL.
5834	(build_gimple_call): Validate argument FN.
5835	(extract_ops_from_tree): New.
5836	(build_gimple_assign_with_ops): New.
5837	(build_gimple_assign): Call them.
5838	(build_gimple_nop):  Call gimple_alloc.
5839	(build_gimple_bind): Likewise.
5840	(build_gimple_asm_1): Tidy.
5841	(build_gimple_asm_vec): Tidy.
5842	(build_gimple_asm): Tidy.
5843	(build_gimple_catch): Call gimple_alloc.
5844	(build_gimple_eh_filter): Likewise.
5845	(build_gimple_try): Likewise.
5846	(build_gimple_wce): Likewise.
5847	(build_gimple_phi): Remove.
5848	(build_gimple_resx): Call gimple_alloc.
5849	(build_gimple_switch_1): Tidy.
5850	(build_gimple_switch): Tidy.
5851	(build_gimple_omp_critical): Call gimple_alloc.
5852	(build_gimple_omp_for): Likewise.
5853	(build_gimple_omp_parallel): Likewise.
5854	(build_gimple_omp_section): Likewise.
5855	(build_gimple_omp_master): Likewise.
5856	(build_gimple_omp_continue): Likewise.
5857	(build_gimple_omp_ordered): Likewise.
5858	(build_gimple_omp_return): Likewise.
5859	(build_gimple_omp_sections): Likewise.
5860	(build_gimple_omp_single): Likewise.
5861	(gimple_check_failed): Change GS to const_gimple.  Update all
5862	users.
5863	(gimple_range_check_failed): Likewise.
5864	(walk_gimple_seq): Change return type to tree.  Update all
5865	users.
5866	If the call to walk_gimple_stmt returns non-NULL,
5867	return it immediately.
5868	(walk_gimple_asm): Change return type to tree.  Update all
5869	users.
5870	If the call to walk_tree returns non-NULL, return it.
5871	(walk_gimple_stmt): Likewise.
5872	(gimple_fold): New.
5873	(gimple_assign_set_rhs_from_tree): New.
5874	(gimple_assign_set_rhs_with_ops): New.
5875	(gimple_copy): New.
5876	* basic-block.h (gimple_predicted_by_p): Rename from
5877	tree_predicted_by_p.  Update all users.
5878	(gimple_predict_edge): Rename from tree_predict_edge.  Update
5879	all users.
5880	* gimple.h: Add documentation to all inline functions.
5881	(gimple_seq_first): Return NULL if S is NULL.
5882	(gimple_seq_last): Likewise.
5883	(GF_ASM_VOLATILE): Define.
5884	(GF_NO_WARNING): Rename from GIMPLE_NO_WARNING.  Update all
5885	users.
5886	(build_gimple_assign_with_ops): Declare.
5887	(build_gimple_asm): Change unsigned arguments to size_t.
5888	Update all users.
5889	(build_gimple_switch): Likewise.
5890	(build_gimple_phi): Remove.
5891	(validate_arglist): Declare.
5892	(gimple_fold): Declare.
5893	(gimple_assign_set_rhs_from_tree): Declare.
5894	(gimple_assign_set_rhs_with_ops): Declare.
5895	(gimple_copy): Declare.
5896	(is_gimple_operand): Declare.
5897	(gimple_num_ops): Change argument to const_gimple.
5898	Return 0 if GS is not one of the statements that has tree
5899	operands.
5900	(gimple_ops): New.
5901	(gimple_op): Change argument to const_gimple.
5902	If GS is not a statement that has tree operands, return NULL.
5903	(gimple_op_ptr): Likewise.
5904	(gimple_assign_subcode): Change argument to const_gimple.
5905	(gimple_assign_operand): Remove.  Update all users.
5906	(gimple_assign_set_operand): Remove.  Update all users.
5907	(gimple_assign_lhs): Change argument type to const_gimple.
5908	(gimple_assign_rhs1): Likewise.
5909	(gimple_assign_rhs2): Likewise.
5910	(gimple_assign_set_rhs1): Assert that RHS is a valid operand.
5911	(gimple_assign_set_rhs2): Likewise.
5912	(gimple_call_lhs): Call gimple_op.
5913	(gimple_call_set_lhs): Assert that LHS is a valid operand.
5914	Call gimple_set_op.
5915	(gimple_call_set_fn): New.
5916	(gimple_call_fndecl): Change argument type to const_gimple.
5917	Call gimple_call_fn.
5918	(gimple_call_chain): Call gimple_op.
5919	(gimple_call_set_chain): Assert that CHAIN is valid.
5920	Call gimple_set_op.
5921	(gimple_call_nargs): Change argument to const_gimple.
5922	Call gimple_op.
5923	(gimple_call_arg_ptr): Call gimple_op_ptr.
5924	(gimple_call_set_arg): Assert that ARG is valid.
5925	Call gimple_set_op.
5926	(gimple_cond_code): Change argument to const_gimple.
5927	(gimple_cond_lhs): Change argument to const_gimple.
5928	(gimple_cond_set_lhs): Assert that the operand is valid.
5929	Call gimple_set_op.
5930	(gimple_cond_rhs): Change argument to const_gimple.
5931	Call gimple_op.
5932	(gimple_cond_true_label): Call gimple_op.
5933	(gimple_cond_false_label): Likewise.
5934	(gimple_label_label): Likewise.
5935	(gimple_cond_set_true_label): Assert that the operand is
5936	valid.
5937	Call gimple_set_op.
5938	(gimple_cond_set_false_label): Likewise.
5939	(gimple_goto_dest): Change argument to const_gimple.
5940	Call gimple_set_op.
5941	(gimple_goto_set_dest): Assert that the operand is valid.
5942	Call gimple_set_op.
5943	(gimple_asm_ninputs): Change return type to size_t.  Update
5944	all users.
5945	(gimple_asm_noutputs): Likewise.
5946	(gimple_asm_nclobbers): Rename from gimple_asm_nclobbered.
5947	Change return type to size_t.
5948	Update all users.
5949	(gimple_asm_set_input_op): Assert that the argument is
5950	valid.
5951	(gimple_asm_set_output_op): Likewise.
5952	(gimple_asm_set_clobber_op): Likewise.
5953	(gimple_asm_volatile_p): New.
5954	(gimple_asm_set_volatile): New.
5955	(gimple_asm_clear_volatile): New.
5956	(gimple_phi_set_capacity): Remove.
5957	(gimple_phi_set_nargs): Remove.
5958	(gimple_expr_type): New.
5959	(struct walk_stmt_info): Remove fields want_bind_expr and
5960	want_return_expr.  Update all users.
5961	* tree-cfg.c: Convert all functions for CFG cleanup and
5962	verification.
5963	(gimple_redirect_edge_and_branch): Rename from
5964	tree_redirect_edge_and_branch.
5965	(gimple_try_redirect_by_replacing_jump): Rename from
5966	tree_try_redirect_by_replacing_jump.
5967	(gimple_verify_flow_info): Rename from tree_verify_flow_info.
5968	(gimple_make_forwarder_block): Rename from
5969	tree_make_forwarder_block.
5970	(gimple_cfg2vcg): Rename from tree_cfg2vcg.
5971	(gimple_merge_blocks): Rename from tree_merge_blocks.
5972	(gimple_can_merge_blocks_p): Rename from tree_merge_blocks_p.
5973	(gimple_can_remove_branch_p): Rename from tree_can_remove_branch_p.
5974	(gimple_redirect_edge_and_branch): Rename from
5975	tree_redirect_edge_and_branch.
5976	(gimple_move_block_after): Rename from tree_move_block_after.
5977	(gimple_predict_edge): Rename from tree_predict_edge.
5978	(gimple_predicted_by_p): Rename from tree_predicted_by_p.
5979	(gimple_duplicate_bb): Rename from tree_duplicate_bb.
5980	(gimple_can_duplicate_bb_p): Rename from tree_can_duplicate_bb_p.
5981	(gimple_split_edge): Rename from tree_split_edge.
5982	(gimple_make_forwarder_block): Rename from tree_make_forwarder_block.
5983	(gimple_block_ends_with_call_p): Rename from
5984	tree_block_ends_with_call_p.
5985	(gimple_block_ends_with_condjump_p): Rename from
5986	tree_block_ends_with_condjump_p.
5987	(gimple_flow_call_edges_add): Rename from
5988	tree_flow_call_edges_add.
5989	(gimple_execute_on_growing_pred): Rename from
5990	tree_execute_on_growing_pred.
5991	(gimple_execute_on_shrinking_pred): Rename from
5992	tree_execute_on_shrinking_pred.
5993	(gimple_duplicate_loop_to_header_edge): Rename from
5994	tree_duplicate_loop_to_header_edge.
5995	(gimple_lv_add_condition_to_bb): Rename from
5996	tree_lv_add_condition_to_bb.
5997	(gimple_lv_adjust_loop_header_phi): Rename from
5998	tree_lv_adjust_loop_header_phi.
5999	(struct pass_build_cfg): Enable TODO_verify_stmts and
6000	TODO_cleanup_cfg.
6001	* passes.c (execute_function_todo): Enable call to
6002	cleanup_tree_cfg.
6003
60042007-10-17  Aldy Hernandez  <aldyh@redhat.com>
6005
6006	* gimple.def: Add GIMPLE_WITH_CLEANUP_EXPR.
6007	* gsstruct.def: Add GSS_WCE.
6008	* gimple-iterator.c (gsi_delink): New.
6009	(gsi_split_seq_*): Update comment.
6010	* gimple.c (gss_for_code): Handle GIMPLE_WCE.  Adjust whitespace.
6011	(build_gimple_wce): New.
6012	* gimple.h (struct gimple_statement_wce): New.
6013	(union gimple_statement_d): Add gimple_wce.
6014	(build_gimple_wce): Protoize.
6015	(gimple_wce_cleanup): New.
6016	(gimple_wce_set_cleanup): New.
6017	(gimple_wce_cleanup_eh_only): New.
6018	(gimple_wce_set_cleanup_eh_only): New.
6019	(gsi_delink): Protoize.
6020
60212007-10-12  Aldy Hernandez  <aldyh@redhat.com>
6022
6023	* Makefile.in (GIMPLE_H): Depend on TARGET_H.
6024	* gimple.h (gsi_alloc): New.
6025	(_ALLOC_GSI): Remove.
6026	Replace _ALLOC_GSI uses by gsi_alloc.
6027
60282007-10-12  Aldy Hernandez  <aldyh@redhat.com>
6029
6030	* gimple.h (_ALLOC_GSI): New.
6031	Use it throughout when allocating a new gimple_stmt_iterator.
6032
60332007-10-11  Aldy Hernandez  <aldyh@redhat.com>
6034
6035	Merge with mainline @129233.
6036
6037	* configure.ac (ACX_PKGVERSION): Update revision merge string.
6038	* configure: Regenerate.
6039
60402007-10-11  Aldy Hernandez  <aldyh@redhat.com>
6041
6042	* cfg.c: Include tree-flow.h.
6043	(remove_edge_raw): Call redirect_edge_var_map_clear.
6044	(redirect_edge_succ_nodup): Call redirect_edge_var_map_dup.
6045	* tree-flow-inline.h (redirect_edge_var_map_def): New.
6046	(redirect_edge_var_map_result): New.
6047	* tree-cfgcleanup.c (remove_forwarder_block_with_phi): Replace
6048	PENDING_STMT use with redirect_edge_var_map_*.
6049	* tree-ssa.c (edge_var_maps): New definition.
6050	(redirect_edge_var_map_add): New.
6051	(redirect_edge_var_map_clear): New.
6052	(redirect_edge_var_map_dup): New.
6053	(redirect_edge_var_map_vector): New.
6054	(redirect_edge_var_map_destroy): New.
6055	(ssa_redirect_edge): Replace PENDING_STMT use with
6056	redirect_edge_var_map_*.
6057	(flush_pending_stmts): Same.
6058	(delete_tree_ssa): Destroy edge var map.
6059	* tree-flow.h (struct _edge_var_map): New.
6060	Define edge_var_map vector type.
6061	Declare redirect_edge_var_map_* prototypes.
6062	* Makefile.in (cfg.o): Depend on TREE_FLOW_H.
6063	* tree-cfg.c (reinstall_phi_args): Replace
6064	PENDING_STMT use with redirect_edge_var_map_*.
6065
60662007-10-02  Diego Novillo  <dnovillo@google.com>
6067
6068	Merge with mainline @128957.
6069
6070	* configure.ac (ACX_PKGVERSION): Update revision merge string.
6071	* configure: Regenerate.
6072
60732007-09-24  Diego Novillo  <dnovillo@google.com>
6074
6075	Merge with mainline @128708.
6076
6077	* configure.ac (ACX_PKGVERSION): Update revision merge string.
6078	* configure: Regenerate.
6079
60802007-09-24  Diego Novillo  <dnovillo@google.com>
6081
6082	* gimple.h (gimple_code): Change argument type to
6083	const_gimple.
6084	(gimple_flags): Likewise.
6085	(gimple_subcode): Likewise.
6086	(gimple_next): Likewise.
6087	(gimple_prev): Likewise.
6088	(gimple_bb): Likewise.
6089	(gimple_block): Likewise.
6090	(gimple_locus): Likewise.
6091
60922007-09-15  Diego Novillo  <dnovillo@google.com>
6093
6094	* gimple-iterator.c (gsi_replace): Call gsi_insert_before and
6095	gsi_remove to do the replacement.
6096	(gsi_insert_before): Take the basic block from the iterator.
6097	(gsi_insert_after): Likewise.
6098	* gimple-iterator.h: Move inside gimple.h.
6099	* tree-eh.c (make_eh_edge, make_eh_edges): Enable.
6100	* gimple-pretty-print.c (dump_gimple_seq, dump_gimple_cond,
6101	dump_gimple_bind, dump_gimple_try): Do not handle TDF_DETAILS.
6102	(dump_gimple_switch): Fix display of case labels.
6103	(dump_gimple_stmt): Handle TDF_DIAGNOSTIC.
6104	(pp_cfg_jump): New.
6105	(dump_implicit_edges): New.
6106	(gimple_dump_bb_buff): Call it.
6107	* domwalk.c (walk_dominator_tree):
6108	* gimplify.c (gimplify_switch_expr): Fix generation of
6109	GIMPLE_SWITCH labels.
6110	(gimplify_case_label_expr): Emit a label for CASE_LABEL
6111	instead of the CASE_LABEL_EXPR.
6112	* Makefile.in (GIMPLE_H): Add dependency on BASIC_BLOCK_H.
6113	* gimple.c (walk_gimple_stmt): Reverse meaning of return value
6114	of CALLBACK_STMT.  Update all users.
6115	Walk sub-statements of statements with bodies.
6116	* gimple.h (GCC_GIMPLE_H): Rename from GCC_GIMPLE_IR_H.
6117	Include vec.h, tm.h, hard-reg-set.h and basic-block.h.
6118	(bb_seq, set_bb_seq): Move from tree-flow-inline.h
6119	(gimple_label_set_label): Do not allow CASE_LABEL_EXPR.
6120	(gsi_start_bb): New.  Update all users that were calling
6121	gsi_start (bb_seq ()).
6122	(struct gimple_stmt_iterator): Add field 'bb'.
6123	* tree-cfg.c (build_gimple_cfg): Enable.
6124	(create_bb): Create a new sequence if the given one is NULL.
6125	(make_gimple_switch_edges): Rename from make_switch_expr_edges.
6126	Update all users.
6127	(cleanup_dead_labels): Fix handling of GIMPLE_SWITCH.
6128	(group_case_labels): Likewise.
6129	(verify_types_in_gimple_stmt): Do not allow CASE_LABEL_EXPR in
6130	a GIMPLE_LABEL.
6131
61322007-09-13  Diego Novillo  <dnovillo@google.com>
6133
6134	* tree-pretty-print.c (dump_symbols, dump_generic_bb,
6135	dump_bb_header, dump_bb_end, dump_phi_nodes, pp_cfg_jump,
6136	dump_implicit_edges, dump_generic_bb_buff): Remove.
6137	* value-prof.c (histogram_eq): Enable.
6138	(dump_histograms_for_stmt): Adapt to tuples.
6139	* value-prof.h (struct):
6140	* cfghooks.h (struct cfg_hooks)<dump_bb>: Add int argument.
6141	Update all users.
6142	* gimple-dummy.c (gimple_remove_stmt_histograms,
6143	remove_stmt_from_eh_region): Remove.
6144	* gimple-iterator.h (gsi_start): Support NULL sequences.
6145	* tree-eh.c (add_stmt_to_eh_region): Enable.
6146	(remove_stmt_from_eh_region): Enable.
6147	(lookup_stmt_eh_region): Enable.
6148	(tree_could_throw_p): Enable.
6149	(stmt_can_throw_internal): Enable.
6150	* gimple-pretty-print.c: Include value-prof.h
6151	(dump_gimple_cond): Do not insert a newline initially.
6152	(dump_gimple_bind): Likewise.
6153	(dump_gimple_try): Likewise.
6154	(dump_gimple_asm): Likewise.
6155	(dump_symbols): Move from tree-pretty-print.c
6156	(dump_gimple_phi): New.
6157	(dump_gimple_stmt): Call it..
6158	(dump_bb_header): Move from tree-pretty-print.c
6159	(dump_bb_end): Likewise.
6160	(dump_phi_nodes): Likewise.
6161	(gimple_dump_bb_buff): New.
6162	(gimple_dump_bb): New.
6163	* Makefile.in (gimple-pretty-print.o): Add dependency
6164	value-prof.h
6165	* tree-cfg.c (fold_cond_expr_cond): Handle cases where
6166	fold_binary returns NULL.
6167	(make_cond_expr_edges): Take locus from the first statement of
6168	the destination blocks.
6169	(tree_dump_bb): Remove.
6170	(gimple_debug_bb): Rename from debug_tree_bb.
6171	Update all users.
6172	(gimple_debug_bb_n): Rename from debug_tree_bb_n.
6173	Update all users.
6174	(gimple_debug_cfg): Rename from debug_tree_cfg.
6175	Update all users.
6176	(gimple_dump_cfg): Rename from dump_tree_cfg.
6177	Update all users.
6178	(is_ctrl_altering_stmt): Call gimple_call_flags to determine
6179	whether the function is const/pure.
6180	* tree-ssa-operands.c (stmt_references_memory_p): Enable.
6181
61822007-09-11  Diego Novillo  <dnovillo@google.com>
6183
6184	* tree.h (struct tree_ssa_name): Add field def_stmt.
6185	(SSA_NAME_DEF_STMT): Return it.
6186	* tree-phinodes.c (create_phi_node): Return gimple.
6187	Update all callers.
6188	(add_phi_args): Change PHI argument to gimple.  Update all
6189	callers.
6190	(remove_phi_node): Call gimple_remove.
6191	(phi_reverse): Remove.  Update all users.
6192	* tree-ssa-alias-warnings.c: Disable.
6193	* input.h (IS_LOCATION_EMPTY): Fix comparison of LOCATION_LINE.
6194	* fold-const.c: Include gimple.h.
6195	(fold_undefer_overflow_warnings): Change type of argument STMT to
6196	gimple.  Update all users.
6197	* cfghooks.h (struct cfg_hooks)<can_merge_blocks_p>: Change
6198	arguments to basic_block.  Update all users.
6199	* tree-gimple.c (get_gimple_rhs_class): Change argument to
6200	enum tree_code.  Update all users.  Move calls to
6201	is_gimple_lvalue and is gimple_val...
6202	(is_gimple_formal_tmp_rhs): ... here.
6203	* tree-ssa-ccp.c (fold_stmt_r): Enable.
6204	(fold_stmt): Enable.
6205	(fold_stmt_inplace): Enable.  Adapt to tuples.
6206	* ipa-pure-const.c (analyze_function): Disable.
6207	* tree-ssa-propagate.c (get_rhs): Adapt to tuples.  Update all
6208	users.
6209	* gimple-dummy.c (ssa_operands_active): Remove dummy function.
6210	(remove_stmt_from_eh_region, create_phi_node, add_phi_arg,
6211	substitute_in_loop_info, release_defs, push_stmt_changes,
6212	pop_stmt_changes, replace_exp): Add dummy functions.
6213	* predict.c: Disable.
6214	* gimple-iterator.c: Include tm.h and tree-flow.h
6215	(gsi_delink): Remove.  Update all users.
6216	(update_modified_stmt): Move from tree-cfg.c.
6217	(gsi_insert_before): New.
6218	(gsi_insert_seq_before): New.
6219	(gsi_insert_after): New.
6220	(gsi_insert_seq_after): New.
6221	(gsi_for_stmt): New.
6222	(gsi_move_after): New.
6223	(gsi_move_before): New.
6224	(gsi_move_to_bb_end): New.
6225	* gimple-iterator.h (gsi_remove): New.
6226	* tree-eh.c (add_stmt_to_eh_region_fn): Add comment
6227	(add_stmt_to_eh_region): Likewise.
6228	(remove_stmt_from_eh_region_fn): Likewise.
6229	(remove_stmt_from_eh_region): Likewise.
6230	(lookup_stmt_eh_region_fn): Likewise.
6231	(lookup_stmt_eh_region): Likewise.
6232	(tree_could_throw_p): Likewise.
6233	(stmt_can_throw_internal): Likewise.
6234	(tree_can_throw_external): Likewise.
6235	* gimple-pretty-print.c (op_gimple_cond): Remove.  Update all
6236	users.
6237	* tree-affine.c (tree_to_aff_combination_expand): Disable.
6238	* tree-flow-inline.h (op_iter_init_vdef): Call gimple_code
6239	instead of TREE_CODE.
6240	* gimplify.c (gimplify_cond_expr): Use enum tree_code instead
6241	of enum gimple_cond as the subcode for GIMPLE_COND.
6242	Do not switch around the conditional when the then clause is empty.
6243	(tree_to_gimple_tuple): Remove.  Update all users.
6244	(gimplify_omp_for):
6245	(force_gimple_operand_gsi): Rename from force_gimple_operand_bsi.  Update all users.
6246	* tree-dfa.c (find_referenced_vars): Disable.
6247	(collect_dfa_stats): Likewise.
6248	(collect_dfa_stats_r): Likewise.
6249	* cfgexpand.c: Disable.
6250	* tree-mudflap.c: Disable.
6251	* print-tree.c: Include diagnostic.h.
6252	(print_node): Call print_gimple_stmt when printing SSA_NAMEs.
6253	* lambda-code.c: Disable.
6254	* tree-profile.c (tree_init_edge_profiler): Disable.
6255	(tree_gen_edge_profiler): Disable.
6256	* tree-flow.h (block_stmt_iterator): Remove.  Update all users.
6257	(const_block_stmt_iterator): Likewise.
6258	* Makefile.in (print-tree.o): Add dependency on $(DIAGNOSTIC_H).
6259	(gimple-iterator.o): Add dependency on $(TREE_FLOW_H) and
6260	value-prof.h.
6261	(gimple.o): Likewise.
6262	(fold-const.o): Add dependency on $(GIMPLE_H).
6263	* gimple.c: Include tm.h, hard-reg-set.h, basic-block.h,
6264	tree-flow.h and value-prof.h.
6265	(build_gimple_with_ops): Do not allocate operands if NUM_OPS == 0.
6266	(build_gimple_return): Remove argument RESULT_DECL_P.  Update
6267	all users.
6268	(build_gimple_cond): Use enum tree_code instead of enum
6269	gimple_cond as the subcode.  Update all users.
6270	(gimple_cond_invert): Remove.  Update all users.
6271	(walk_gimple_seq): Add arguments CALLBACK_STMT and
6272	CALLBACK_OP.  Update all users.
6273	(walk_gimple_asm): Likewise.
6274	(walk_gimple_stmt): Likewise.
6275	(gimple_remove): New.
6276	(gimple_seq_reverse): New.
6277	(set_gimple_bb): New.
6278	* gimple.h (gimple_statement_base): Split field 'flags' into
6279	fields 'subcode' and 'flags'.  Update all users.
6280	(gimple_statement_with_ops): Rename field 'base' to
6281	'gsbase'.  Update all users.
6282	(gimple_statement_omp): Likewise.
6283	(gimple_statement_bind): Likewise.
6284	(gimple_statement_catch): Likewise.
6285	(gimple_statement_eh_filter): Likewise.
6286	(gimple_statement_phi): Likewise.
6287	(gimple_statement_resx): Likewise.
6288	(gimple_statement_try): Likewise.
6289	(gimple_statement_omp_parallel): Likewise.
6290	(enum gimple_cond): Remove.  Update all users.
6291	(GIMPLE_NO_WARNING): Define.
6292	(set_gimple_flags): Assert that FLAGS fits in 8 bits.
6293	(add_gimple_flag): Likewise.
6294	(set_gimple_subcode): New.  Use instead of set_gimple_flags
6295	everywhere.
6296	(gimple_subcode): New.  Use instead of gimple_flags
6297	everywhere.
6298	(gimple_no_warning_p): New.
6299	(gimple_cond_set_code): New.
6300	(gimple_cond_make_false): New.
6301	(gimple_cond_make_true): New.
6302	(gimple_phi_num_args): Rename from gimple_phi_nargs.  Update
6303	all users.
6304	* tree-cfg.c (build_gimple_cfg): Return immediately.
6305	(set_bb_for_stmt): Remove.  Move functionality to
6306	set_gimple_bb.  Update all users.
6307	(factor_computed_gotos):
6308	(bsi_for_stmt): Remove.
6309	(bsi_insert_before): Remove.
6310	(bsi_insert_seq_before): Remove.
6311	(bsi_insert_after): Remove.
6312	(bsi_insert_seq_after): Remove.
6313	(bsi_remove): Remove.
6314	(bsi_move_after): Remove.
6315	(bsi_move_before): Remove.
6316	(bsi_move_to_bb_end): Remove.
6317	(bsi_replace): Remove.
6318	(tree_verify_flow_info): Adapt to tuples.
6319	(tree_make_forwarder_block): Likewise.
6320	(tree_try_redirect_by_replacing_jump): Likewise.
6321	(tree_redirect_edge_and_branch): Likewise.
6322	(tree_purge_dead_eh_edges): Likewise.
6323	(gimple_cfg_hooks): Enable some hooks.
6324	* tree-ssanames.c (make_ssa_name): Change type of STMT to
6325	gimple.  Update all users.
6326	* tree-ssa-operands.c (ssa_operands_active): Enable.
6327
63282007-08-31  Diego Novillo  <dnovillo@google.com>
6329
6330	* tree-gimple.c (is_gimple_addressable): Tidy.
6331	* Makefile.in (tree-ssa-structalias.o): Disable dependency on
6332	GTY header file.
6333	(tree-ssa-propagate.o): Likewise.
6334	(tree-phinodes.o): Likewise.
6335	(tree-scalar-evolution.o): Likewise.
6336	(tree-vect-generic.o): Likewise.
6337	* gimple.h (struct gimple_statement_phi): Change type of
6338	fields 'capacity' and 'nargs' to size_t.
6339	Update all users.
6340	* tree-cfg.c (verify_gimple_unary_expr): Remove.  Update all
6341	users.
6342	(verify_gimple_binary_expr): Remove.  Update all users.
6343	(verify_types_in_gimple_min_lval): Rename from
6344	verify_gimple_min_lval.
6345	(verify_types_in_gimple_reference): Rename from
6346	verify_gimple_reference.
6347	(verify_gimple_tree_expr): Remove.
6348	Move checks to verify_types_in_gimple_assign.
6349	(verify_types_in_gimple_call): Rename from verify_gimple_call.
6350	(verify_types_in_gimple_cond): Rename from verify_gimple_cond.
6351	(verify_types_in_gimple_assign): Rename from verify_gimple_assign.
6352	(verify_types_in_gimple_switch): Rename from verify_gimple_switch.
6353	(verify_types_in_gimple_phi): New.
6354	verify_types_in_gimple_return): Rename from
6355	verify_gimple_return.
6356	(verify_types_in_gimple_stmt): Rename from verify_gimple_stmt.
6357	(verify_types_in_gimple_seq): Rename from verify_gimple_seq.
6358
63592007-08-30  Chris Matthews  <chrismatthews@google.com>
6360	    Diego Novillo  <dnovillo@google.com>
6361
6362	* gimplify.c (gimplify_body): Call verify_gimple_seq if
6363	ENABLE_TYPES_CHECKING is set.
6364	* gimple.h (is_gimple_omp): New.
6365	* tree-cfg.c (verify_gimple_tree_expr): Rename from
6366	verify_gimple_expr.
6367	Verify tree nodes that should disappear after conversion to
6368	GIMPLE.
6369	Do not handle COND_EXPR, CALL_EXPR.
6370	(verify_gimple_modify_stmt): Remove.
6371	(verify_gimple_call): New.
6372	(verify_gimple_cond): New.
6373	(verify_gimple_assign): New.
6374	(verify_gimple_return): New.
6375	(verify_gimple_switch): New.
6376	(verify_gimple_stmt):  Change input argument to type gimple.
6377	Call new verifiers.
6378	(verify_gimple_seq): Rename from verify_gimple_1.
6379
63802007-08-30  Diego Novillo  <dnovillo@google.com>
6381
6382	* gimple-low.c (gimple_try_catch_may_fallthru): Call
6383	gimple_code instead of gimple_flags.
6384	* gimple.c (set_gimple_body): Use gimple_seq instead of gimple
6385	when accessing vector gimple_bodies_vec.
6386	(gimple_body): Likewise.
6387	(gimple_assign_copy_p): New.
6388	* gimple.h (enum gimple_try_kind): New.
6389	(GIMPLE_TRY_CATCH): Move inside enum gimple_try_kind.
6390	(GIMPLE_TRY_FINALLY): Likewise.
6391	(gimple_assign_copy_p): Declare.
6392	(gimple_assign_rhs_code): New.
6393	Update callers that used to call gimple_flags.
6394	(gimple_cond_code): New.
6395	Update callers that used to call gimple_flags.
6396	(gimple_try_kind): New.
6397	(gimple_nop_p): Tidy comment.
6398	* gimple-pretty-print.c (dump_unary_rhs): New.
6399	(dump_gimple_assign): Call it.
6400
64012007-08-30  Diego Novillo  <dnovillo@google.com>
6402
6403	* gimplify.c (gimplify_cond_expr): When gimplifying a ?: call
6404	gimplify_stmt with the expression just built instead of the
6405	original expression.
6406	Use the correct labels when calling build_gimple_cond.
6407
6408
64092007-08-30  Diego Novillo  <dnovillo@google.com>
6410
6411	* tree-vrp.c: Disable.
6412	* tree-loop-linear.c: Disable.
6413	* tree-into-ssa.c: Disable.
6414	* tree-ssa-loop-im.c: Disable.
6415	* tree-complex.c: Disable.
6416	* cgraphbuild.c: Disable most functions.
6417	* tree-ssa-threadupdate.c: Disable.
6418	* tree-ssa-loop-niter.c: Disable.
6419	* tree-pretty-print.c: Disable.
6420	* tree-ssa-loop-unswitch.c: Disable.
6421	* tree-ssa-loop-manip.c: Disable.
6422	* value-prof.c: Disable.
6423	* tree-tailcall.c: Disable.
6424	* tree-ssa-loop-ch.c: Disable.
6425	* tree-scalar-evolution.c: Disable.
6426	* tree-phinodes.c: Disable.
6427	* omp-low.c: Disable.
6428	* tree-ssa-dse.c: Disable.
6429	* ipa-reference.c: Disable.
6430	* tree-ssa-uncprop.c: Disable.
6431	* tree-ssa-sccvn.c: Disable.
6432	* cgraphunit.c (verify_cgraph_node): Disable basic block traversal.
6433	* tree-ssa-copyrename.c: Disable.
6434	* tree-ssa-ccp.c: Disable most functions.
6435	* tree-ssa-loop-ivopts.c: Disable.
6436	* tree-stdarg.c: Disable.
6437	* tree-ssa-math-opts.c: Disable.
6438	* tree-ssa-dom.c: Disable most functions.
6439	* tree-nrv.c: Disable.
6440	* tree-ssa-propagate.c: Disable.
6441	* gimple-dummy.c: New file.
6442	* tree-ssa-alias.c: Disable most functions.
6443	* tree-ssa-sink.c: Disable.
6444	* expr.c (expand_expr_real): Disable call to
6445	lookup_stmt_eh_region.
6446	* tree-ssa-loop-ivcanon.c: Disable.
6447	* predict.c (strip_builtin_expect): Disable.
6448	(tree_predict_by_opcode): Disable.
6449	(return_prediction): Disable.
6450	(apply_return_prediction): Disable.
6451	(tree_bb_level_predictions): Disable.
6452	(tree_estimate_probability): Disable.
6453	(predict_paths_leading_to): Disable.
6454	* gimple-iterator.c (gsi_replace): Mark unused arguments with
6455	ATTRIBUTE_UNUSED.
6456	* tree-ssa-ifcombine.c: Disable.
6457	* matrix-reorg.c: Disable.
6458	* c-decl.c (c_gimple_diagnostics_recursively): Disable call to
6459	diagnose_omp_structured_block_errors.
6460	* tree-eh.c: Disable most functions.
6461	* tree-vectorizer.c: Disable.
6462	* tree-vectorizer.h (nested_in_vect_loop_p): Disable.
6463	* ipa-type-escape.c: Disable.
6464	* tree-if-conv.c: Disable.
6465	* profile.c: Disable.
6466	* tree-data-ref.c: Disable.
6467	* tree-flow-inline.h (bsi_start): Set bsi.gsi to NULL if the
6468	block is invalid.
6469	(bsi_last): Likewise.
6470	(op_iter_next_use): Disable call to PHI_ARG_DEF_PTR.
6471	* tree-vect-analyze.c: Disable.
6472	* gimplify.c (gimple_conditional_context): Disable.
6473	(gimple_push_cleanup): Disable.
6474	(gimplify_omp_parallel): Disable calls to
6475	push_gimplify_context and pop_gimplify_context.
6476	* tree-ssa-phiopt.c: Disable.
6477	* calls.c (emit_call_1): Disable calls to lookup_stmt_eh_region.
6478	(expand_call): Likewise.
6479	(emit_library_call_value_1): Initialize low_to_save and
6480	high_to_save.
6481	* tree-ssa-coalesce.c: Disable.
6482	* tree-dfa.c (make_rename_temp): Disable call to
6483	mark_sym_for_renaming.
6484	(find_new_referenced_vars_1): Likewise.
6485	(collect_dfa_stats): Disable CFG iteration.
6486	(collect_dfa_stats_r): Disable.
6487	(mark_symbols_for_renaming): Disable.
6488	* cfgexpand.c (maybe_dump_rtl_for_tree_stmt): Disable.
6489	(label_rtx_for_bb): Disable.
6490	(expand_gimple_cond_expr): Disable.
6491	(expand_gimple_tailcall): Disable.
6492	(expand_gimple_basic_block): Disable.
6493	* tree-cfgcleanup.c: Disable.
6494	* tree-ssa-pre.c: Disable.
6495	* tree-ssa-live.c: Disable.
6496	* tree-sra.c: Disable most functions..
6497	* tree-predcom.c: Disable.
6498	* tree-mudflap.c: Disable.
6499	* ipa-prop.c: Disable.
6500	* tree-ssa-copy.c (may_propagate_copy): Disable.
6501	(propagate_value): Disable.
6502	(execute_copy_prop): Disable.
6503	(do_copy_prop): Disable.
6504	(store_copy_prop): Disable.
6505	* tree-ssa-forwprop.c: Disable.
6506	* tree-ssa-dce.c: Disable.
6507	* tree-vect-patterns.c: Disable.
6508	* tree-ssa-ter.c: Disable.
6509	* tree-ssa.c: Disable.
6510	* lambda-code.c: Disable.
6511	* tree-ssa-loop-prefetch.c: Disable.
6512	* tree-inline.c: Disable most functions.
6513	* tree-optimize.c (execute_fixup_cfg_pre_ipa): Disable.
6514	(execute_fixup_cfg): Disable.
6515	(execute_cleanup_cfg_post_optimizing): Disable.
6516	(execute_fixup_cfg): Disable.
6517	* tree-vect-transform.c: Disable.
6518	* tree-object-size.c: Disable.
6519	* tree-outof-ssa.c: Disable.
6520	* cfgloop.c (find_subloop_latch_edge_by_profile): Disable.
6521	(find_subloop_latch_edge_by_ivs): Disable.
6522	* tree-profile.c: Disable most functions.
6523	* c-gimplify.c (add_block_to_enclosing): Disable.
6524	* tree-vect-generic.c: Disable.
6525	* tree-flow.h (struct function_ann_d): Disable field
6526	reference_vars_info.
6527	* Makefile.in: Force -Werror even during stage 1.
6528	(OBJS-common): Add gimple-dummy.o.
6529	(GTFILES): Remove tree-scalar-evolution.c,
6530	tree-ssa-propagate.c, tree-vect-generic.c,
6531	tree-ssa-structalias.h, tree-ssa-structalias.c,
6532	ipa-reference.h, omp-low.c, tree-phinodes.c, ipa-reference.c
6533	* tree-ssa-structalias.c: Disable.
6534	* tree-cfg.c: Disable most functions.
6535	* passes.c (finish_optimization_passes): Disable call to
6536	end_branch_prob.
6537	(init_optimization_passes): Disable the registration of
6538	several passes.
6539	(execute_function_todo): Disable calls to update_ssa and
6540	need_ssa_update_p.
6541	* tree-ssa-reassoc.c: Disable.
6542	* tree-ssanames.c: Disable.
6543	* tree-ssa-threadedge.c: Disable.
6544	* tree-ssa-operands.c: Disable.
6545
65462007-08-29  Aldy Hernandez  <aldyh@redhat.com>
6547
6548	* tree-ssa-operands.h (pop_stmt_changes, push_stmt_changes):
6549	Argument is gimple.
6550	(struct ssa_operand_iterator_d): Member phi_stmt is gimple.
6551	* value-prof.c (gimple_add_histogram_value): Adjust for tuples.
6552	(gimple_duplicate_stmt_histograms): Same.
6553	* value-prof.h (gimple_add_histogram_value): Same.
6554	(gimple_duplicate_stmt_histograms): Same.
6555	* tree-flow-inline.h (clear_and_done_ssa_iter): Same.
6556	(op_iter_init): Same.
6557	(op_iter_init_phiuse): Same.
6558	* tree-flow.h (stmt_references_memory_p): Same.
6559	* tree-cfg.c (tree_can_merge_blocks_p): Same.
6560	(remove_bb): Same.
6561	(find_taken_edge): Same.
6562	(tree_cfg2vcg): Same.
6563	(first_stmt): Same.
6564	(last_stmt): Same.
6565	(bsi_move_after): Same.
6566	(bsi_move_before): Same.
6567	(tree_find_edge_insert_loc): Same.
6568	Remove code handling a GIMPLE_MODIFY_STMT inside a RETURN_EXPR.
6569	(delete_tree_cfg_annotations): Remove code to remove annotations.
6570	* tree-ssa-operands.c (struct scb_d): Stmt_p is a gimple *.
6571	(push_stmt_changes): Adjust for tuples.
6572	(mark_difference_for_renaming): Same.
6573	(pop_stmt_changes): Same.
6574	(stmt_references_memory_p): Same.
6575
65762007-08-29  Aldy Hernandez  <aldyh@redhat.com>
6577
6578	* tree-ssa-operands.h: Remove DEF_OPS, USE_OPS, VUSE_OPS,
6579	VDEF_OPS, LOADED_SYMS, STORED_SYMS.
6580	* tree-pretty-print.c (dump_generic_node): Adjust accordingly.
6581	(dump_vops): use gimple_v*_ops.  Adjust accordingly.
6582	* gimple.def: Add to comment.
6583	* tree-ssa-alias.c (create_structure_vars): Adjust for tuples.
6584	* tree-flow-inline.h (op_iter_init): Make stmt gimple.  Use
6585	gimple_*_ops functions.
6586	(op_iter_init_use): Make stmt gimple.
6587	(op_iter_init_def): Same.
6588	(op_iter_init_vdef): Same.
6589	(single_ssa_tree_operand): Same.
6590	(single_ssa_use_operand): Same.
6591	(single_ssa_def_operand): Same.
6592	(zero_ssa_operands): Same.
6593	(num_ssa_operands): Same.
6594	(compare_ssa_operands_equal): Make stmt[12] gimple.
6595	(link_use_stmts_after): Adjust for tuples.
6596	* tree-ssa-structalias.c (update_alias_info): Use
6597	gimple_stored_syms and gimple_loaded_syms.
6598	* gimple.h (gimple_has_mem_ops): New.
6599	(gimple_def_ops): New.
6600	(set_gimple_def_ops): New.
6601	(gimple_use_ops): New.
6602	(set_gimple_use_ops): New.
6603	(gimple_vuse_ops): New.
6604	(set_gimple_vuse_ops): New.
6605	(gimple_vdef_ops): New.
6606	(set_gimple_vdef_ops): New.
6607	(gimple_loaded_syms): New.
6608	(gimple_stored_syms): New.
6609	* tree-ssa-operands.c (finalize_ssa_defs): Adjust for tuples.
6610	(copy_virtual_operands): Same.
6611	(swap_tree_operands): Same.
6612
66132007-08-28  Aldy Hernandez  <aldyh@redhat.com>
6614
6615	* Revert the parts of Kaveh's constification patch.that duplicate
6616	API calls.
6617
66182007-08-27  Diego Novillo  <dnovillo@google.com>
6619
6620	Merge with mainline @127831.
6621
6622	* configure.ac (ACX_PKGVERSION): Update revision merge string.
6623	* configure: Regenerate.
6624
66252007-08-25  Diego Novillo  <dnovillo@google.com>
6626
6627	* tree.c (build_gimple_modify_stmt_stat): Add depecrate note.
6628	* omp-low.c (scan_omp_1): Disable.
6629	(scan_omp): Likewise.
6630	(lower_omp_for): Likewise.
6631	(lower_omp_parallel): Likewise.
6632	(lower_omp_1): Likewise.
6633	(lower_omp): Likewise.
6634	(diagnose_sb_1): Likewise.
6635	(diagnose_sb_2): Likewise.
6636	(diagnose_omp_structured_block_errors): Likewise.
6637	* tree-gimple.h (_TREE_GIMPLE_H): Rename from _TREE_SIMPLE_H.
6638	(gimplify_body): Return the new GIMPLE body.
6639	(struct walk_stmt_info): Move to gimple.h.
6640	* gimple-low.c (lower_function_body): Assert that the function
6641	body is a single GIMPLE_BIND statement.
6642	Create a new gimple sequence to lower the existing body.
6643	Replace the function body with the new lowered sequence.
6644	(pass_lower_cf): Enable GIMPLE lowering.
6645	(lower_omp_directive): Disable.
6646	(lower_stmt): Do not call lower_omp_directive.
6647	(gimple_stmt_may_fallthru): Factor out of ...
6648	(gimple_seq_may_fallthru): ... here.
6649	* gimple-iterator.c (gsi_replace): New.
6650	* gimple-iterator.h (gsi_replace): Declare.
6651	* gimple-pretty-print.c: Do not include gimple-iterator.h
6652	* gimplify.c (gimplify_asm_expr): Tidy.
6653	Store the whole TREE_LIST node in the inputs and outputs vectors.
6654	(gimple_push_cleanup): Disable completely.
6655	(gimplify_body): Return a GIMPLE_BIND holding the gimplified
6656	body.
6657	Update all users.
6658	(gimplify_function_tree): Create a GIMPLE sequence to hold
6659	the gimplified body.
6660	* tree-flow.h (gimple_stmt_may_fallthru): Declare.
6661	* Makefile.in (GIMPLE_H): Add gimple-iterator.h.
6662
66632007-08-25  Diego Novillo  <dnovillo@google.com>
6664
6665	* tree-nested.c: Re-implement to use GIMPLE tuples.
6666	(init_tmp_var_with_call): New.
6667	(init_tmp_var): Adapt to GIMPLE tuples.
6668	(save_tmp_var): Likewise.
6669	(convert_nl_goto_receiver): Likewise.
6670	(finalize_nesting_tree_1): Likewise.
6671	(gsi_gimplify_val): Likewise.
6672	Rename from tsi_gimplify_val.  Update all users.
6673	(walk_asm_expr): Remove.
6674	(walk_stmts): Remove.
6675	(walk_body): Call walk_gimple_seq.
6676	Add new argument callback_op.  Update all users.
6677	(walk_function): Add argument callback_op.  Update all users.
6678	(convert_nonlocal_reference_op): Rename from
6679	convert_nonlocal_omp_reference.  Update all users.
6680	(convert_nonlocal_reference_stmt): New.  Handle GIMPLE
6681	statements that used to be tree nodes.
6682	(convert_local_reference_op): Rename from
6683	convert_local_reference.  Update all users.
6684	(convert_local_reference_stmt): New.  Handle GIMPLE statements
6685	that used to be tree nodes.
6686	(convert_nl_goto_reference): Convert to walk_stmt_fn callback.
6687	Update all users.
6688	(convert_tramp_reference_op): Rename from
6689	convert_tramp_reference.  Update all users.
6690	(convert_tramp_reference_stmt): New.  Handle GIMPLE statements
6691	that used to be tree nodes.
6692	(convert_gimple_call): Rename from convert_call_expr.  Convert
6693	to be a walk_stmt_fn callback.
6694	* gimple.c (gimple_seq_add): Rename from gimple_add.  Update
6695	all users.
6696	(walk_gimple_seq): Rename from walk_seq_ops.  Update all
6697	users.
6698	(walk_gimple_stmt): Rename from walk_tuple_ops.  Update all
6699	users.
6700	Use two callback functions one for statements and another for
6701	operands.  If either is NULL do not invoke it.
6702	Allow callbacks to replace operands.
6703	(WALKIT): Remove.
6704	(walk_gimple_asm): New.
6705	* gimple.h: Include ggc.h
6706	(gimple_seq_alloc): New.  Use everywhere a GIMPLE sequence is
6707	allocated.
6708	(gimple_op_ptr): New.
6709	(gimple_call_arg_ptr): New.
6710	(gimple_catch_types_ptr): New.
6711	(gimple_eh_filter_types_ptr): New.
6712	(gimple_omp_critical_name_ptr): New.
6713	(gimple_omp_for_clauses_ptr): New.
6714	(gimple_omp_for_index_ptr): New.
6715	(gimple_omp_for_initial_ptr): New.
6716	(gimple_omp_for_final_ptr): New.
6717	(gimple_omp_for_incr_ptr): New.
6718	(gimple_omp_parallel_clauses_ptr): New.
6719	(gimple_omp_parallel_child_fn_ptr): New.
6720	(gimple_omp_parallel_data_arg_ptr): New.
6721	(gimple_omp_single_clauses_ptr): New.
6722	(gimple_omp_sections_clauses_ptr): New.
6723	(walk_stmt_fn): New type.
6724	(struct walk_stmt_info): Move from tree-gimple.h.
6725	Rename field callback to callback_op.
6726	Add new field callback_stmt.
6727	Replace field tsi with gsi of type gimple_stmt_iterator.
6728	(walk_gimple_seq): Declare.
6729	(walk_gimple_stmt): Declare.
6730	* tree-cfg.c (execute_build_cfg): Do not call
6731	build_gimple_cfg.
6732	(pass_build_cfg): Enable.
6733	Disable TODO_verify_stmts and TODO_cleanup_cfg.
6734
67352007-08-22  Aldy Hernandez  <aldyh@redhat.com>
6736
6737	* tree-phinodes.c (reserve_phi_args_for_new_edge): Comment out
6738	call to phi_nodes_ptr.
6739	(remove_phi_node): Same.
6740	* tree-flow-inline.h (get_lineno): Work with empty statements or
6741	empty locations.
6742	(phi_nodes_ptr): Remove.
6743	(phi_arg_index_from_use): Adjust for tuples.
6744	(bsi_stmt_ptr): Add ATTRIBUTE_UNUSED.
6745	(op_iter_init): Remove assertion.
6746	(next_imm_use_stmt): Change NULL_TREE to NULL.
6747	* tree-dfa.c (mark_symbols_for_renaming): Adjust for tuples.
6748	* tree-flow.h: Remove bb_for_stmt prototype.
6749	(mark_symbols_for_renaming): Make argument gimple.
6750
67512007-08-22  Aldy Hernandez  <aldyh@redhat.com>
6752
6753	Change all instances of bb_for_stmt to gimple_bb throughout.
6754
6755	* gimple.h (gimple_omp_parallel_combined_p): New.
6756	* tree-ssa-operands.h (update_stmt_operands): Argument is now
6757	gimple.
6758	* tree-ssa-threadupdate.c (rederiction_block_p): Use gimple_nop_p
6759	instead of IS_EMPTY_STMT.
6760	* tree-ssa-loop-niter.c: Disable use of COND_EXPR_COND.
6761	* tree-pretty-print.c (dump_bb_header): Adjust for tuples.
6762	* cgraph.c (cgraph_add_new_function): Rename
6763	tree_register_cfg_hooks to gimple_register_cfg_hooks.
6764	* value-prof.c (set_histogram_value): Stmt type is now gimple.
6765	(gimple_histogram_value): Same.
6766	(gimple_remove_histogram_value): Same.
6767	(gimple_remove_stmt_histograms): Same.
6768	* tree.h (struct ssa_use_operand_d): Same.
6769	* value-prof.h (struct histogram_value_t): Same.
6770	Change gimple_*histogram* prototypes to use gimple instead of
6771	tree.
6772	* ipa-cp.c (ipcp_insert_stage): Rename tree_register_cfg_hooks to
6773	gimple_register_cfg_hooks.
6774	* cfghooks.c (gimple_register_cfg_hooks): Rename from
6775	tree_register_cfg_hooks.  Initialize cfg_hooks to gimple_cfg_hooks.
6776	(current_ir_type): Rename tree_cfg_hooks to gimple_cfg_hooks.
6777	* input.h (IS_LOCATION_EMPTY): New.
6778	* cfghooks.h: Rename tree_cfg_hooks to gimple_cfg_hooks.  Rename
6779	tree_register_cfg_hooks to gimple_register_cfg_hooks.
6780	* omp-low.c (determine_parallel_type): Adjust for tuples.
6781	(expand_omp_parallel): Rename bb_stmt_list to bb_seq.
6782	(expand_omp_for_generic): Call gimple_omp_return_nowait_p.
6783	(expand_omp_for_static_nochunk): Same.
6784	(expand_omp_sections): Call gimple_omp_section_last_p.
6785	(expand_omp_single): Comment out call to find_omp_clause.
6786	Call gimple_omp_return_nowait_p.
6787	* cgraphunit.c: Rename tree_register_cfg_hooks to
6788	gimple_register_cfg_hooks.
6789	* tree-ssa-propagate.c: Comment out non working code.
6790	* matrix-reorg.c (matrix_reorg): Rename tree_register_cfg_hooks to
6791	gimple_register_cfg_hooks.
6792	* tree-eh.c (add_stmt_to_eh_region_fn): Change `t' type to gimple.
6793	Adjust accordingly.
6794	(add_stmt_to_eh_region): Same.
6795	(remove_stmt_from_eh_region_fn): Same.
6796	(remove_stmt_from_eh_region): Same.
6797	(lookup_stmt_eh_region_fn): Same.
6798	(lookup_stmt_eh_region): Same.
6799	(make_eh_edges): Adjust for tuples.
6800	(stmt_can_throw_internal): Rename from tree_can_throw_internal.
6801	Adjust for tuples.
6802	(maybe_clean_or_replace_eh_stmt): Arg types are now gimple.
6803	* tree-vectorizer.c: Rename tree_register_cfg_hooks to
6804	gimple_register_cfg_hooks.
6805	* tree-if-conv.c (combine_blocks): Adjust for tuples.
6806	* profile.c (branch_prob): Same.
6807	* tree-flow-inline.h (bb_for_stmt): Remove.
6808	(get_lineno): Adjust for tuples.
6809	(noreturn_call_p): Same.
6810	(mark_stmt_modified): Same.
6811	(update_stmt): Same.
6812	(update_stmt_if_modified): Same.
6813	(stmt_modified_p): Same.
6814	(link_imm_use_stmt): Same.
6815	(relink_imm_use_stmt): Same.
6816	(single_imm_use): Same.
6817	(gimple_phi_arg_def): New.
6818	(gimple_phi_arg_edge): New.
6819	(phi_nodes): Adjust for tuples.
6820	(phi_nodes_ptr): Same.
6821	(set_phi_nodes): Same.
6822	(bb_seq): Rename from bb_stmt_list and adjust for tuples.
6823	(set_bb_seq): Rename from set_bb_stmt_list and adjust for tuples.
6824	(bsi_start): Adjust for tuples.
6825	(bsi_after_labels): Adjust for tuples.
6826	(bsi_last): Same.
6827	(bsi_next): Same.
6828	(bsi_prev): Same.
6829	(bsi_stmt): Same.
6830	(bsi_stmt_ptr): Same.
6831	(loop_containing_stmt): Same.
6832	(delink_stmt_imm_use): Same.
6833	(first_imm_use_stmt): Same.
6834	(next_imm_use_stmt): Same.
6835	* gimplify.c (force_gimple_operand_bsi): Same.
6836	* coretypes.h (const_gimple): New.
6837	* tree-ssa-phiopt.c (empty_block_p): Call gimple_nop_p.
6838	(conditional_replacement): Comment out COND_EXPR_COND.
6839	(value_replacement): Comment out COND_EXPR_COND.
6840	(minmax_replacement): Same.
6841	(abs_replacement): Same.
6842	* except.h (*eh_region*): Change trees to gimple.
6843	(struct throw_stmt_node): Change stmt type to gimple.
6844	* cfgexpand.c (label_rtx_for_bb): Adjust for tuples.
6845	(expand_gimple_cond_expr): Same.
6846	(expand_gimple_basic_block): Same.
6847	* tree-cfgcleanup.c (split_bbs_on_noreturn_calls): Same.
6848	* tree-ssa-pre.c (realify_fake_stores): Comment out non working
6849	code.
6850	* tree-ssa-forwprop.c (propagate_with_phi): Rename
6851	tree_can_throw_internal stmt_can_throw_internal.
6852	* tree-inline.c (copy_edges_for_bb): Rename
6853	tree_can_throw_internal to stmt_can_throw_internal.
6854	(initialize_cfun): Same.
6855	(copy_cfg_body): Same.
6856	(gimple_expand_calls_inline): Same.
6857	(make_nonlocal_label_edges): Rename tree_can_make_abnormal_goto to
6858	stmt_can_make_abnormal_goto.
6859	* tree-optimize.c (tree_lowering_passes): Rename
6860	tree_register_cfg_hooks to gimple_register_cfg_hooks.
6861	(tree_rest_of_compilation): Same.
6862	* tree-flow.h (struct gimple_df): Make modified_noreturn_calls a
6863	vector of gimple types.
6864	Adjust prototypes for tuples.
6865	(struct block_stmt_iterator): Make iterator a gimple iterator.
6866	(enum bsi_iterator_update): Remove BSI_CHAIN_START and
6867	BSI_CHAIN_END.
6868	* Makefile.in (tree-cfg.o): Depend on GIMPLE_H.
6869	(GTFILES): Move gimple.[hc] entries before tree-flow.h.
6870	* basic-block.h (struct edge_def): Make goto_locus of type
6871	location_t.
6872	(union basic_block_il_dependent): Adjust for tuples.
6873	(gimple_bb_info): Rename from tree_bb_info.  Adjust for tuples.
6874	* tree-cfg.c: Include gimple.h.
6875	Adjust prototypes for tuples.
6876	(build_gimple_cfg): Rename from build_tree_cfg.  Adjust for
6877	tuples.
6878	(execute_build_cfg): Rename build_tree_cfg call to
6879	build_gimple_cfg.
6880	(factor_computed_gotos): Adjust for tuples.
6881	(make_blocks): Same.
6882	(create_bb): Same.
6883	(fold_cond_expr_cond): Same.
6884	(make_edges): Same.
6885	(make_cond_expr_edges): Same.
6886	(make_switch_expr_edges): Same.
6887	(make_goto_expr_edges): Same.
6888	(cleanup_dead_labels): Same.
6889	(group_case_labels): Same.
6890	(tree_can_merge_blocks_p): Same.
6891	(replace_uses_by): Same.
6892	(tree_merge_blocks): Same.
6893	(is_ctrl): Same.
6894	(is_ctrl_altering_stmt): Same.
6895	(computed_goto_p): Same.
6896	(simple_goto_p): Same.
6897	(stmt_can_make_abnormal_goto): Rename from
6898	tree_can_make_abnormal_goto.
6899	Adjust for tuples.
6900	(stmt_starts_bb_p): Adjust for tuples.
6901	(stmt_ends_bb_p): Same.
6902	(first_stmt): Same.
6903	(last_stmt): Same.
6904	(last_and_only_stmt): Same.
6905	(set_bb_for_stmt): Same.
6906	(change_bb_for_stmt): Same.
6907	(bsi_for_stmt): Same.
6908	(update_modified_stmt): Rename from update_modified_stmts.
6909	Adjust for tuples.
6910	Handle only one statement.
6911	(bsi_insert_before): Adjust for tuples.
6912	(bsi_insert_after): Same.
6913	(bsi_insert_seq_before): New.
6914	(bsi_insert_seq_after): New.
6915	(bsi_remove): Ajust for tuples.
6916	(bsi_replace): Same.
6917	(verify_stmt): Same.
6918	(gimple_split_block): Rename from tree_split_block.
6919	Adjust for tuples.
6920	(tree_purge_dead_abnormal_call_edges): Adjust for tuples.
6921	(tree_cfg_hooks): Same.
6922	* tree-ssa-operands.c (update_stmt_operands): Same.
6923
69242007-08-22  Aldy Hernandez  <aldyh@redhat.com>
6925
6926	* Makefile.in (TREE_GIMPLE_H): Depend on GIMPLE_H.
6927	* gimple-iterator.h: Do not include gimple.h.
6928	* gimple.h (OMP_SECTION_LAST_FLAG): New.
6929	(gimple_omp_return_nowait_p): New.
6930	(gimple_omp_section_last_p): New.
6931	(gimple_switch_set_num_labels): New.
6932	(gimple_nop_p): New.
6933
69342007-08-17  Aldy Hernandez  <aldyh@redhat.com>
6935
6936	Revert this change:
6937
6938	2007-08-14  Aldy Hernandez  <aldyh@redhat.com>
6939
6940	* gimple.c (gimple_call_flags): Make sure this is a GIMPLE_CALL.
6941
69422007-08-14  Aldy Hernandez  <aldyh@redhat.com>
6943
6944	* gimple-iterator.c (gsi_split_seq_after): New.
6945	(gsi_split_seq_before): New.
6946	* gimple-iterator.h: Prototype above two functions.
6947
69482007-08-14  Aldy Hernandez  <aldyh@redhat.com>
6949
6950	* gimple.h (gimple_has_ops): New.
6951	(gimple_modified): New.
6952	(set_gimple_modified): New.
6953	(gimple_switch_default_label): Call gimple_switch_label.
6954	(gimple_switch_set_default_label): Call gimple_switch_set_label.
6955
69562007-08-14  Aldy Hernandez  <aldyh@redhat.com>
6957
6958	* gimple.c (gimple_call_flags): Make sure this is a GIMPLE_CALL.
6959
69602007-08-14  Diego Novillo  <dnovillo@google.com>
6961
6962	Merge with mainline @127480.
6963
6964	* version.c (VERSUFFIX): Update.
6965
69662007-08-09  Diego Novillo  <dnovillo@google.com>
6967
6968	* gimple-low.c: Document conversion to Low GIMPLE.
6969	* Makefile.in (gimple.o): Add dependency on gt-gimple.h
6970	(GTFILES): Add gimple.c.
6971	* gimple.c (gimple_bodies_vec): New.
6972	(gimple_bodies_map): Rename from gimple_bodies.
6973	(gss_for_code): Return GSS_ASM for GIMPLE_ASM.
6974	(walk_tuple_ops): Handle GSS_ASM like GSS_WITH_OPS.
6975	(set_gimple_body): Push body into gimple_bodies_vec and create
6976	a mapping to array index in gimple_bodies_map.
6977	(gimple_body): Corresponding changes to use gimple_bodies_map
6978	and gimple_bodies_vec.
6979	* gimple.h: Create VEC templates for gimple_seq.
6980
69812007-08-08  Aldy Hernandez  <aldy@quesejoda.com>
6982
6983	* gimple-low.c (struct return_statements_t): Declare.
6984	(struct lower_data): Make return_statements a vector.
6985	(lower_function_body): Adjust for tuples.
6986	(pass_lower_cf): Add PROP_gimple_any to properties_required.
6987	(lower_sequence): Rename from lower_stmt_body.
6988	Adjust for tuples.
6989	(lower_omp_directive): Adjust for tuples.
6990	(lower_stmt): Same.
6991	(lower_gimple_bind): Rename from lower_bind_expr.
6992	Adjust for tuples.
6993	(gimple_try_catch_may_fallthru): New.
6994	(gimple_seq_may_fallthru): New.
6995	(lower_gimple_return): Rename from lower_return_expr and adjust
6996	for tuples.
6997	(lower_builtin_setjmp): Adjust for tuples.
6998	* gimple-iterator.c: New.
6999	* gimple-iterator.h: Include gimple.h.
7000	(enum gsi_iterator_update): Declare.
7001	(gsi_link_seq_before): New prototype.
7002	(gsi_link_before): Same.
7003	(gsi_link_seq_after): Same.
7004	(gsi_link_after): Same.
7005	(gsi_delink): Same.
7006	* gimplify.c (gimplify_body): Comment out verify_gimple_1 call.
7007	* tree-flow.h (gimple_seq_may_fallthru): New prototype.
7008	* Makefile.in (OBJS-common): Add gimple-iterator.o.
7009	(gimple-iterator.o): New.
7010	(gimple-pretty-print.o): Do not depend on gimple-iterator.h.
7011	* gimple.c (set_gimple_prev): Move to gimple.h.
7012	(set_gimple_next): Same.
7013	(gimple_call_flags): New.
7014	* gimple.h (struct gimple_sequence): Add GTY marker.
7015	(struct gimple_statement_bind): Add block field.
7016	(set_gimple_prev): New.
7017	(set_gimple_next): New.
7018	(gimple_call_flags): Protoize.
7019	(gimple_call_fndecl): New.
7020	(gimple_bind_block): New.
7021	(gimple_bind_set_block): New.
7022
7023
70242007-08-08  Diego Novillo  <dnovillo@google.com>
7025
7026	* gimple.h (GIMPLE_CHECK, GIMPLE_CHECK2, GIMPLE_RANGE_CHECK):
7027	Do not return the checked statement.  Update all users.
7028	Enable on compilers other than GCC.
7029
70302007-08-07  Chris Matthews  <chrismatthews@google.com>
7031
7032	* gimple_iterator.h (gsi_start): Changed to produce a pointer instead of
7033	struct.  Updated clients.
7034	(gsi_last): Same.
7035	(gsi_end_p): Changed to operate on a pointer instead of struct.  Updated
7036	clients.
7037	(gsi_one_before_end_p): Same.
7038	(gsi_next): Same.
7039	(gsi_prev): Same.
7040	(gsi_stmt): Same.
7041
70422007-08-07  Diego Novillo  <dnovillo@google.com>
7043
7044	Merge with mainline @127277.
7045
7046	* version.c (VERSUFFIX): Update.
7047
70482007-08-07  Diego Novillo  <dnovillo@google.com>
7049
7050	* gimple.h (gimple_call_return): New.
7051	* gimplify.c (get_tmp_var_for): Call it.
7052
70532007-08-02  Chris Matthews  <chrismatthews@google.com>
7054
7055	* gimplify.c (gimplify_asm_expr): Created new gimple tuple.
7056	* gimple-pretty-printer.c (dump_gimple_asm): Added function to dump a
7057	GIMPLE_ASM statement.
7058	(dump_gimple_stmt): Updated to use the dump_gimple_asm function.
7059	* gimple.c (gss_for_code): Made asm statements return as with_mem_ops.
7060	(build_gimple_with_ops): Asm statements are added as a specal case for
7061	allocation because they have extra fields that are not
7062	allocated correctly in the current generic op allocator.
7063	(build_gimple_asm_1): Added a helper function to setup the basics of a
7064	GIMPLE_ASM tuple.
7065	(build_gimple_asm_vec): Create a GIMPLE_ASM tuple from vector arguments.
7066	(build_gimple_asm): Changed to call the new helper function.
7067
70682007-08-03  Diego Novillo  <dnovillo@google.com>
7069
7070	* gimple-pretty-print.c (INDENT): Tidy.
7071	(dump_binary_rhs): New.
7072	(dump_gimple_assign): Call it.
7073	* gimplify.c (gimplify_modify_expr_complex_part): If the value
7074	is not interesting, nullify *EXPR_P.
7075	(gimplify_body): Do not add the sequence to the GIMPLE_BIND more
7076	than once.
7077
70782007-08-01  Diego Novillo  <dnovillo@google.com>
7079
7080	* gimplify.c (gimplify_switch_expr): Remove switch_body_seq_.
7081	Change switch_body_seq to struct gimple_sequence.
7082	Adjust all uses.
7083	Call gimplify_stmt instead of gimplify_statement_list
7084	(gimplify_to_stmt_list): Remove.
7085	Update all users.
7086	* tree-mudflap.c: Include gimple.h
7087	(mf_decl_cache_locals): Convert to emit GIMPLE.
7088	(mf_build_check_statement_for): Add FIXME and unreachable
7089	markers to convert to GIMPLE.
7090	* Makefile.in (tree-mudflap.o): Depend on $(GIMPLE_H).
7091	* config/i386/i386.c (ix86_gimplify_va_arg): Adapt to emit
7092	GIMPLE.
7093
70942007-08-01  Diego Novillo  <dnovillo@google.com>
7095
7096	* gimplify.c (gimplify_switch_expr): Do not call sort_case_labels
7097	if there are no labels other than 'default'.
7098	* gimple.h (gimple_num_ops, gimple_op, gimple_set_op): Use
7099	result of GIMPLE_RANGE_CHECK call.
7100
71012007-08-01  Diego Novillo  <dnovillo@google.com>
7102
7103	* DEV-PHASE: Revert to mainline version.
7104	* version.c (VERSUFFIX): Add branch name and revision number
7105	of latest mainline merge.
7106
71072007-07-31  Diego Novillo  <dnovillo@google.com>
7108
7109	Mainline merge (@127100).
7110	* DEV-PHASE: Updated.
7111
71122007-07-31  Diego Novillo  <dnovillo@google.com>
7113
7114	* dominance.c (free_dominance_info): If there is no CFG,
7115	do nothing.
7116	* cfg.c (compact_blocks): Likewise.
7117
71182007-07-30  Diego Novillo  <dnovillo@google.com>
7119
7120	* gimplify.c (get_tmp_var_for): When creating a new temporary
7121	for a GIMPLE_CALL, use the type returned by the function call
7122	instead of the type of the function decl.
7123	* gimple.c (build_gimple_return): Accept NULL and RESULT_DECL
7124	return values.
7125
71262007-07-30  Diego Novillo  <dnovillo@google.com>
7127
7128	* gimplify.c (gimplify_init_constructor): If both sides
7129	of the constructor are in GIMPLE form but the assignment
7130	has not been emitted, emit it.
7131
71322007-07-28  Diego Novillo  <dnovillo@google.com>
7133
7134	* gimplify.c (gimplify_return_expr): Do not create a MODIFY_EXPR
7135	as return argument
7136	* gimple.c (build_gimple_return): Assert that the returned value
7137	is a GIMPLE value.
7138
71392007-07-27  Diego Novillo  <dnovillo@google.com>
7140
7141	* tree-gimple.c (get_gimple_rhs_class): New.
7142	(is_gimple_formal_tmp_rhs): Call it.
7143	* tree-gimple.h (enum gimple_rhs_class): New.
7144	* gimple-iterator.h (gsi_next): Assert that there is nothing
7145	beyond the end of the sequence.
7146	(gsi_prev): Assert that there is nothing before the start of
7147	the sequence.
7148	* gimplify.c (gimplify_switch_expr): Tidy creation of default label.
7149	(gimplify_expr): Fix concatenation of internal sequences to PRE_P.
7150	* gimple.c (get_num_ops_for): Remove.  Update users.
7151	(build_gimple_assign): Call get_gimple_rhs_class to determine
7152	how many operands to allocate.
7153	(gimple_add): Assert that GS does not have previous or next
7154	statements.
7155	(gimple_seq_append): Move from gimple.h.
7156
71572007-07-27  Aldy Hernandez  <aldy@quesejoda.com>
7158
7159	* cgraph.c: Fix line wrap.
7160	* cgraph.h: Same.
7161	* tree-pass.h (struct tree_opt_pass): Add works_with_tuples_p
7162	field.
7163	* cgraphunit.c (cgraph_analyze_functions): Remove check for
7164	DECL_SAVED_TREE.
7165	(cgraph_expand_function): Comment out TREE_ASM_WRITTEN assertion.
7166	* tree-optimize.c (tree_lowering_passes): Comment out call to
7167	compact_blocks.
7168	* passes.c (execute_one_pass): Return if pass has not been
7169	converted to tuples.
7170	* tree-vrp.c, regrename.c, fwprop.c, tree-into-ssa.c,
7171	tree-complex.c, see.c, cgraphbuild.c, tracer.c, cgraph.c,
7172	postreload-gcse.c, postreload.c, tree-ssa-loop-ch.c,
7173	tree-tailcall.c, tree-pass.h, ipa-cp.c, final.c, omp-low.c,
7174	tree-ssa-dse.c, ipa-reference.c, tree-ssa-uncprop.c,
7175	auto-inc-dec.c, reorg.c, tree-ssa-copyrename.c, tree-ssa-ccp.c,
7176	df-core.c, mode-switching.c, tree-nomudflap.c, modulo-sched.c,
7177	ipa-pure-const.c, cse.c, web.c, tree-stdarg.c,
7178	tree-ssa-math-opts.c, tree-ssa-dom.c, tree-nrv.c,
7179	tree-ssa-alias.c, loop-init.c, gimple-low.c, tree-ssa-sink.c,
7180	ipa-inline.c, global.c, jump.c, ifcvt.c, predict.c,
7181	tree-ssa-loop.c, recog.c, dse.c, tree-ssa-ifcombine.c,
7182	matrix-reorg.c, c-decl.c, tree-eh.c, regmove.c, local-alloc.c,
7183	function.c, tree-vectorizer.c, gcse.c, ipa-type-escape.c,
7184	tree-if-conv.c, init-regs.c, ipa.c, tree-ssa-phiopt.c,
7185	rtl-factoring.c, lower-subreg.c, bt-load.c, tree-dfa.c except.c,
7186	emit-rtl.c, cfgexpand.c, tree-cfgcleanup.c, cfgcleanup.c,
7187	tree-ssa-pre.c, tree-sra.c, tree-mudflap.c, tree-ssa-copy.c,
7188	cfglayout.c, tree-ssa-forwprop.c, tree-ssa-dce.c, tree-ssa.c,
7189	regclass.c, integrate.c, tree-optimize.c, tree-object-size.c,
7190	combine.c, tree-outof-ssa.c, bb-reorder.c, stack-ptr-mod.c,
7191	var-tracking.c, tree-profile.c, tree-vect-generic.c, reg-stack.c,
7192	sched-rgn.c, tree-ssa-structalias.c, tree-cfg.c, passes.c,
7193	tree-ssa-reassoc.c, combine-stack-adj.c, cfgrtl.c, dce.c,
7194	tree-ssanames.c: Set works_with_tuples_p field to 0.
7195
71962007-07-25  Diego Novillo  <dnovillo@google.com>
7197
7198	* gimple.c: Use ENABLE_GIMPLE_CHECKING instead of
7199	ENABLE_TREE_CHECKING.
7200	(set_gimple_code): New.
7201	(set_gimple_prev): New.
7202	(set_gimple_next): New.
7203	* gimple.h: Use ENABLE_GIMPLE_CHECKING instead of
7204	ENABLE_TREE_CHECKING.
7205	(gimple_code): Inline function replacement for GIMPLE_CODE.
7206	(gimple_flags): Inline function replacement for GIMPLE_SUBCODE_FLAGS.
7207	(gimple_next): Inline function replacement for GIMPLE_NEXT.
7208	(gimple_prev): Inline function replacement for GIMPLE_PREV.
7209	(gimple_locus): Inline function replacement for GIMPLE_LOCUS.
7210	(gimple_locus_empty_p): Inline function replacement for
7211	GIMPLE_LOCUS_EMPTY_P.
7212	(struct gimple_statement_base): Rename field 'subcode_flags'
7213	to 'flags'.
7214	(set_gimple_flags): New.
7215	(gimple_bb): New.
7216	(set_gimple_bb): New.
7217	(set_gimple_block): New.
7218	(set_gimple_locus): New.
7219	(add_gimple_flag): Rename from gimple_add_subcode_flag.
7220
72212007-07-25  Diego Novillo  <dnovillo@google.com>
7222
7223	* tree-gimple.h (build_gimple_eh_filter_tree): Rename from
7224	gimple_build_eh_filter_tree.
7225	* gimple.h (build_gimple_return): Rename from gimple_build_return.
7226	(build_gimple_assign): Rename from gimple_build_assign.
7227	(build_gimple_call_vec): Rename from gimple_build_call_vec.
7228	(build_gimple_call): Rename from gimple_build_call.
7229	(build_gimple_label): Rename from gimple_build_label.
7230	(build_gimple_goto): Rename from gimple_build_goto.
7231	(build_gimple_nop): Rename from gimple_build_nop.
7232	(build_gimple_bind): Rename from gimple_build_bind.
7233	(build_gimple_asm): Rename from gimple_build_asm.
7234	(build_gimple_catch): Rename from gimple_build_catch.
7235	(build_gimple_eh_filter): Rename from gimple_build_eh_filter.
7236	(build_gimple_try): Rename from gimple_build_try.
7237	(build_gimple_phi): Rename from gimple_build_phi.
7238	(build_gimple_resx): Rename from gimple_build_resx.
7239	(build_gimple_switch): Rename from gimple_build_switch.
7240	(build_gimple_switch_vec): Rename from gimple_build_switch_vec.
7241	(build_gimple_omp_parallel): Rename from gimple_build_omp_parallel.
7242	(build_gimple_omp_for): Rename from gimple_build_omp_for.
7243	(build_gimple_omp_critical): Rename from gimple_build_omp_critical.
7244	(build_gimple_omp_section): Rename from gimple_build_omp_section.
7245	(build_gimple_omp_continue): Rename from gimple_build_omp_continue.
7246	(build_gimple_omp_master): Rename from gimple_build_omp_master.
7247	(build_gimple_omp_return): Rename from gimple_build_omp_return.
7248	(build_gimple_omp_ordered): Rename from gimple_build_omp_ordered.
7249	(build_gimple_omp_sections): Rename from gimple_build_omp_sections.
7250	(build_gimple_omp_single): Rename from gimple_build_omp_single.
7251	Update all users.
7252
72532007-07-24  Chris Matthews  <chrismatthews@google.com>
7254
7255	* configure.ac: Added support for ENABLE_GIMPLE_CHECKING and the
7256	--enable-checking=gimple flag.
7257	* config.in: Same.
7258	* configure: Regenerated.
7259	* gimplify.c (cpt_same_type): Same.
7260	(gimple_push_condition): Same.
7261	(gimplify_addr_expr): Same.
7262	(gimplify_expr): Same.
7263	(gimplify_body): Same.
7264	(check_pointer_types_r): Same.
7265
72662007-07-24  Diego Novillo  <dnovillo@google.com>
7267
7268	* gimple.def: Re-organize codes that take tree operands so
7269	they are consecutive.
7270	* gsstruct.def (GSS_LABEL, GSS_ASSIGN_BINARY, GSS_ASSIGN_UNARY_REG,
7271	GSS_ASSIGN_UNARY_MEM, GSS_COND, GSS_GOTO, GSS_SWITCH, GSS_CALL,
7272	GSS_RETURN): Remove.  Update al users.
7273	* gimple.c (gss_for_code): New.
7274	(gimple_statement_structure): Call it.
7275	(get_num_ops_for): New.
7276	(gimple_build_with_ops): New.
7277	(gimple_build_return, gimple_build_call_1, gimple_build_assign,
7278	gimple_build_cond, gimple_build_label, gimple_build_goto,
7279	gimple_build_switch_1, ): Call it.
7280	(gss_for_assign): Remove.  Update all users.
7281	(gimple_check_failed): Do not assume that subcode is a valid tree
7282	code.
7283	(gimple_range_check_failed): New.
7284	(walk_tuple_ops): Implement in terms of gimple_num_ops and
7285	gimple_op when dealing with GSS_WITH_OPS and GSS_WITH_MEM_OPS
7286	statements.
7287	* gimple.h (struct gimple_statement_with_ops): Add fields 'num_ops'
7288	and 'op'.
7289	(struct gimple_statement_label, gimple_statement_assign_binary,
7290	gimple_statement_assign_unary_reg, gimple_statement_assign_unary_mem,
7291	gimple_statement_cond, gimple_statement_goto, gimple_statement_switch,
7292	gimple_statement_call, gimple_statement_return): Remove.
7293	Update all users.
7294	(gimple_range_check_failed): Declare.
7295	(GIMPLE_RANGE_CHECK): Define.
7296	(gimple_num_ops): New.
7297	(gimple_op): New.
7298	(gimple_set_op): New.
7299	(gimple_assign_rhs1): Rename from gimple_assign_binary_rhs1.
7300	(gimple_assign_set_rhs1): Rename from gimple_assign_binary_set_rhs1.
7301	(gimple_assign_rhs2): Rename from gimple_assign_binary_rhs2.
7302	(gimple_assign_set_rhs2): Rename from gimple_assign_binary_set_rhs2.
7303	(gimple_assign_unary_rhs): Remove.  Update all users.
7304	(gimple_assign_unary_set_rhs): Likewise.
7305	(gimple_switch_num_labels): Rename from gimple_switch_nlabels.
7306	(gimple_call_fn, gimple_call_lhs, gimple_call_chain,
7307	gimple_call_set_chain, gimple_call_nargs, gimple_call_arg,
7308	gimple_call_set_arg, gimple_cond_lhs, gimple_cond_set_lhs,
7309	gimple_cond_rhs, gimple_cond_set_rhs, gimple_cond_true_label,
7310	gimple_cond_false_label, gimple_cond_set_true_label,
7311	gimple_cond_set_false_label, gimple_label_label,
7312	gimple_label_set_label, gimple_goto_dest,
7313	gimple_goto_set_dest, gimple_asm_input_op,
7314	gimple_asm_set_input_op, gimple_asm_output_op,
7315	gimple_asm_set_output_op, gimple_asm_clobber_op,
7316	gimple_asm_set_clobber_op, gimple_switch_num_labels,
7317	gimple_switch_index, gimple_switch_set_index,
7318	gimple_switch_default_label, gimple_switch_set_default_label,
7319	gimple_switch_label, gimple_switch_set_label,
7320	gimple_return_retval, gimple_return_set_retval): Implement
7321	using the array of operands in field 'with_ops'.
7322	(gimple_asm_set_ninputs, gimple_asm_set_noutputs,
7323	gimple_asm_set_nclobbered, gimple_asm_set_string): Remove.
7324	Update all users.
7325
7326
73272007-07-24  Aldy Hernandez  <aldyh@redhat.com>
7328
7329	* tree.c (get_callee_fndecl): Revert previous change.
7330	* gimplify.c (gimplify_call_expr): Use result from
7331	get_callee_fndecl if available.
7332	* c-common.c (c_warn_unused_result): Do not use
7333	get_callee_fndecl.
7334	Add assertion.
7335
73362007-07-24  Diego Novillo  <dnovillo@google.com>
7337
7338	Merge with mainline (@126872)
7339
73402007-07-23  Aldy Hernandez  <aldyh@redhat.com>
7341
7342	* tree.c (get_callee_fndecl): Work when only the CALL_EXPR_FN has
7343	been passed.
7344	* c-common.c (c_warn_unused_result): Use get_callee_fndecl.
7345
73462007-07-23  Aldy Hernandez  <aldyh@redhat.com>
7347
7348	* c-decl.c: Include gimple.h.
7349	(c_gimple_diagnostics_recursively): Call c_warn_unused_result with
7350	tuplified body.
7351	Exit if -fgimple-only.
7352	* gimplify.c (gimplify_call_expr): Call gimple_build_call_vec with
7353	the correct callee.
7354	* c-gimplify.c (c_genericize): Remove exit.
7355	* c-common.c: Include gimple.h.
7356	(c_warn_unused_result): Tuplify.
7357	* c-common.h (c_warn_unused_result): Protoize.
7358	* Makefile.in (c-decl.o): Depend on GIMPLE_H.
7359	(c-common.o): Same.
7360	* gimple.c (gimple_build_catch): Handler is a sequence.
7361	Adjust accordingly.
7362	(gimple_build_eh_filter): Failure is a sequence.
7363	Adjust accordingly.
7364	(walk_tuple_ops): case GIMPLE_CATCH: Walk handler as a sequence.
7365	case GIMPLE_EH_FILTER: Walkder failure as a sequence.
7366	* gimple.h (gimple_statement_catch): Make handler a sequence.
7367	(gimple_statement_eh_filter): Make failure a sequence.
7368	(gimple_build_catch): Make second argument a sequence.
7369	(gimple_build_eh_filter): Same.
7370	(gimple_catch_handler): Return a sequence.
7371	(gimple_catch_set_handler): Make second argument a sequence.
7372	(gimple_eh_filter_failure): Return a sequence.
7373	(gimple_eh_filter_set_failture): Make second argument a sequence.
7374
73752007-07-20  Aldy Hernandez  <aldyh@redhat.com>
7376
7377	* gimplify.c (gimplify_return_expr): Handle an empty ret_expr
7378	gracefully.
7379
73802007-07-19  Aldy Hernandez  <aldyh@redhat.com>
7381
7382	* testsuite/gcc.dg/gimple/instrument.c: New.
7383	* gimplify.c (gimplify_function_tree): Generate tuples for function
7384	instrumentation.
7385
73862007-07-18  Aldy Hernandez  <aldyh@redhat.com>
7387
7388	* gimplify.c (gimple_add_tmp_var): Remove abort.  Add comment.
7389
73902007-07-18  Aldy Hernandez  <aldyh@redhat.com>
7391
7392	* gimplify.c (gimple_add_tmp_var): Remove abort.  Add comment.
7393
73942007-07-18  Aldy Hernandez  <aldyh@redhat.com>
7395
7396	* gimplify.c (gimplify_and_add): Remove unecessary temporary sequence.
7397	Remove fixme.  Add comment.
7398	(gimplify_loop_expr): Tuplefy.
7399	(gimplify_bind_expr): Streamline GIMPLE_TRY_FINALLY tuple.
7400	(gimplify_expr): Tuplefy TRY_*_EXPR cases.
7401	* gimple.c: Fix some spacing.
7402	(gimple_build_try, gimple_omp_build_*): Handle empty sequences.
7403	(gimple_push): Remove.
7404	* gimple.h (gimple_push): Remove.
7405
74062007-07-18  Aldy Hernandez  <aldyh@redhat.com>
7407
7408	* tree-gimple.h (declare_vars): Update arguments.
7409	* gimplify.c (pop_gimplify_context): Enable call to declare_vars.
7410	(declare_vars): Convert to use tuples.
7411	(gimple_add_tmp_var): Same.
7412	* gimple.h (GIMPLE_BLOCK): New.
7413
74142007-07-17  Chris Matthews  <chrismatthews@google.com>
7415
7416	* gimplify.c (gs_build_eh_filter): Renamed to gs_build_eh_filter_tree
7417	to avoid name conflict.
7418	* gimple-pretty-print.c: Renamed to debug_gs_* to debug_gimple_*.
7419	Updated all users.
7420	* gimple.h: Renamed all functions with GS and gs prefixes to GIMPLE and
7421	gimple, and updated users.
7422	Renamed gs_seq_* functions to gimple_seq_*. Updated all users.
7423	* gimple.def: Definitions changed to from GS_* to GIMPLE_*.
7424
74252007-07-16  Chris Matthews  <chrismatthews@google.com>
7426
7427	* gimple.c (gs_build_switch): Changed nlabels to represent total number
7428	of labels including the default.
7429	(gs_build_switch_1): Same.
7430	(walk_tuple_ops): Same.
7431	* gimple-pretty-print.c (dump_gs_switch): Same.
7432
74332007-07-16  Aldy Hernandez  <aldyh@redhat.com>
7434
7435	* gimplify.c (gimplify_ctx): Rename current_bind_expr_seq to
7436	bind_expr_stack and make it a vector.
7437	(push_gimplify_context): Adjust bind_expr_stack for vectors.
7438	(pop_gimplify_context): Same.
7439	(gimple_push_bind_expr): Same.
7440	(gimple_pop_bind_expr): Same.
7441	(gimple_current_bind_expr): Same.
7442	(get_tmp_var_for): Use ``code''.
7443	(gimplify_bind_expr): Remove comment.
7444	(gimplify_case_label_expr): Add whitespace.
7445	* gimple.c (gs_pop): Remove.
7446	* gimple.h: Define vectors of a gimple type.
7447	(gs_pop): Remove prototype.
7448	* Makefile.in (GIMPLE_H): Add vec.h.
7449
74502007-07-15  Diego Novillo  <dnovillo@google.com>
7451
7452	* gimple.c: Rename from gimple-ir.c.
7453	Update all users.
7454	* gimple.h: Rename from gimple-ir.h.
7455	Update all users.
7456
74572007-07-15  Diego Novillo  <dnovillo@google.com>
7458
7459	* gimple-ir.c (gimple_statement_structure): Remove code
7460	after gcc_unreachable call.
7461	* gimplify.c (get_tmp_var_for): New.
7462	(gimplify_call_expr): Call it.
7463
74642007-07-14  Aldy Hernandez  <aldyh@redhat.com>
7465
7466	* testsuite/gcc.dg/gimple/with_size_expr.c: Check for GS_TRY.
7467	* Makefile.in (gimple-ir.o): Add diagnostic.h dependency.
7468	* gimple-pretty-print.c (dump_gs_call): Dump LHS if available.
7469	(dump_gs_try): New.
7470	(dump_gimple_stmt): Add case for GS_TRY.
7471	* gimple-ir.c.  Include diagnostic.h.
7472	(gs_build_try): Cleanup and eval are sequences.
7473	Remove catch_p and finally_p arguments.  Add catch_finally argument.
7474	(gs_omp_build_critical): Body is a gs_seq.
7475	(gs_omp_build_parallel): Same.
7476	(gs_omp_build_section): Same.
7477	(gs_omp_build_master): Same.
7478	(gs_omp_build_continue): Same.
7479	(gs_omp_build_ordered): Same.
7480	(gs_omp_build_sections): Same.
7481	(gs_omp_build_single): Same.
7482	(gs_omp_build_for): Body and pre_body is a gs_seq.
7483	(gs_push): New.
7484	(gs_pop): New.
7485	(walk_tuple_ops): Walk GS_TRY tuples eval and cleanups correctly.
7486	Dump tuple before we ICE.
7487	* gimple-ir.h (gs_seq_copy): New.
7488	(struct gimple_statement_try): Eval and cleanups are gs_seq's.
7489	(gs_bind_set_body): Use gs_seq_copy.
7490	(gs_try_eval): Return address of eval.
7491	(gs_try_cleanup): Return address of cleanup.
7492	(gs_try_set_eval): Use gs_seq_copy.
7493	(gs_try_set_cleanup): Same.
7494	(gs_omp_set_body): Same.
7495	(gs_omp_for_set_pre_body): Same.
7496	* gimplify.c (struct gimplify_ctx): Rename current_bind_expr to
7497	current_bind_expr_seq, and make it a sequence.
7498	(pop_gimplify_context): Adjust for current_bind_expr_seq.
7499	(gimple_push_bind_expr): Same.
7500	(gimple_pop_bind_expr): Same.
7501	(gimple_current_bind_expr): Same.
7502	(build_stack_save_restore): Generate tuples.
7503	(gimplify_bind_expr): Same.
7504
75052007-07-13  Diego Novillo  <dnovillo@google.com>
7506
7507	* gimple-ir.c (gs_add): Swap arguments.
7508	Update all users.
7509	* gimple-ir.h (gs_seq_append): Likewise.
7510
75112007-07-12  Diego Novillo  <dnovillo@google.com>
7512
7513	* tree.c (create_artificial_label): Move from gimplify.c
7514	(get_name): Likewise.
7515	* tree.h (create_artificial_label, get_name): Move
7516	declarations earlier in the file.
7517	* diagnostic.h (dump_gimple_stmt, print_gimple_stmt,
7518	dump_gimple_seq): Rearrange.
7519	* tree-gimple.h (gimplify_function_tree): Move from tree.h.
7520	* gimple-pretty-print.c (do_niy): Tidy.
7521	(maybe_init_pretty_print): Add comment.
7522	(newline_and_indent): Likewise.
7523	Remove "gimpleir: " prefix.
7524	(debug_gimple_stmt): Add comment.
7525	(dump_gs_seq): Remove.
7526	(dump_gimple_seq): Add argument SPC.
7527	Update all users.
7528	If FLAGS contains TDF_DETAILS, emit "gimpleir:" prefix.
7529	(dump_gs_cond): If FLAGS contains TDF_DETAILS, emit
7530	"gimpleir:" prefix.
7531	(dump_gs_bind): Likewise.
7532	* function.h (struct function): Remove field 'gimplified'.
7533	* gimple-ir.c (gimple_bodies): New private variable.
7534	(set_gimple_body): New.
7535	(gimple_body): New.
7536	* gimple-ir.h: Include pointer-set.h.
7537	Add comment before data structure definitons.
7538	(set_gimple_body): Declare.
7539	(gimple_body): Declare.
7540	* gimplify.c (create_artificial_label): Move to tree.c
7541	(get_name): Likewise.
7542	(gimplify_function_tree): Change return type to void.
7543	Call set_gimple_body after gimplification and nullify
7544	DECL_SAVED_TREE.
7545	Update all callers.
7546	* common.opt (fgimple-only): New option.
7547	* tree-optimize.c (tree_rest_of_compilation): Do not nullify
7548	DECL_SAVED_TREE.
7549	* c-gimplify.c (c_genericize): Restore gimplification logic to
7550	mainline version.
7551	If -fgimple-only was given, exit.
7552	* Makefile.in (GIMPLE_IR_H): Add pointer-set.h
7553	* tree-cfg.c (execute_build_cfg): Nullify GIMPLE body after
7554	building the CFG.
7555	(dump_function_to_file): If DECL_SAVED_TREE is NULL dump the
7556	GIMPLE body of the function.
7557
75582007-07-12  Diego Novillo  <dnovillo@google.com>
7559
7560	* omp-low.c (lower_regimplify): Use a local GIMPLE sequence to
7561	hold the result from gimplification.
7562	* tree-gimple.c (is_gimple_min_val): Reformat.
7563	* tree-gimple.h (enum fallback_t): Document values.
7564	(gimplify_expr): Remove IS_STATEMENT argument.
7565	Update all users.
7566	* langhooks.c (lhd_gimplify_expr): Likewise.
7567	* gimplify.c (gimplify_statement_list): If a temporary
7568	was returned from voidify_wrapper_expr abort to mark the failure.
7569	(gimplify_expr): Remove argument IS_STATEMENT.
7570	Update all users.
7571	Assert that FALLBACK is used with the appropriate GIMPLE_TEST_F
7572	Restore logic to use internal queue.
7573	Do not abort if on return from gimplify_call_expr, *EXPR_P has
7574	a CALL_EXPR.
7575
75762007-07-12  Aldy Hernandez  <aldyh@redhat.com>
7577
7578	* gimple-ir.c (gs_build_switch_1): Allocate one less tree.
7579	(gs_build_switch_1): Offset labels by one.
7580	(gs_switch_label): Same.
7581	(gs_switch_set_label): Same.
7582
75832007-07-12  Aldy Hernandez  <aldyh@redhat.com>
7584
7585	* gimple-ir.c (walk_seq_ops): Rename from walk_tree_seq.
7586	(walk_tuple_ops): Rename from walk_tree_tuple.
7587	* gimple-ir.h, gimplify.c, gimple-ir.c: Rename all calls to
7588	walk_tree_seq and walk_tree_tuple accordingly.
7589
75902007-07-12  Aldy Hernandez  <aldyh@redhat.com>
7591
7592	* gimple-ir.c (gs_build_switch_1): Fix spacing.
7593	Allocate one more tree.
7594	(gs_build_switch): Set labels starting at 1.
7595	(walk_tree_seq): New.
7596	(walk_tree_tuple): New.
7597	* gimple-ir.h: Add prototypes for walk_tree_tuple and walk_tree_seq.
7598	* gimplify.c (check_pointer_types_r): Uncomment.
7599	(gimplify_body): Walk gimple sequence with check_pointer_types_r.
7600
76012007-07-11  Chris Matthews  <chrismatthews@google.com>
7602
7603	* tree-pretty-print.c (dump_generic_node): Removed space before default
7604	label colon.
7605	* tree.h (sort_case_labels): Moved to gimple-ir.h.
7606	* gimplify.c (sort_case_labels): Changed to a vector instead of tree
7607	vector.
7608	(gimplify_switch_expr): Initial implementation with tuples.
7609	(gimplify_expr): Changed gimplify_case_label_expr parameter.
7610	(gimplify_case_label_expr): Added a gs_seq parameter, and put cases in
7611	that.
7612	(dump_gimple_stmt): Removed semicolon.
7613	(dump_gs_label):  Refactored from dump_gimple_expr.
7614	(dump_gs_switch): Added.
7615	(gs_build_switch_vec): Added.
7616	* gimple-ir.c (gs_build_switch_1): Added.
7617	(gs_build_switch): Refactored to use gs_build_switch_1.
7618	(gs_build_switch_vec): Added.
7619	* gs_switch.c: New test case.
7620	* gs_switch1.c: New test case.
7621	* gs_switch2.c: New test case.
7622
76232007-07-05  Aldy Hernandez  <aldyh@redhat.com>
7624
7625	* gimple-pretty-print.c (dump_gimple_stmt): Alphabetize cases.
7626	Add case for GS_NOP.
7627	* gimplify.c (gimplify_body): Handle null bodies.
7628	Use GS_CODE instead of GS_SUBCODE_FLAGS.
7629
76302007-07-05  Aldy Hernandez  <aldyh@redhat.com>
7631
7632	* testsuite/gcc.dg/gimple/with_size_expr.c: Clean up dump.
7633	* testsuite/gcc.dg/gimple/gs_bind.c: Clean up dump.
7634	* gimplify.c (struct gimplify_ctx): Make current_bind_expr a tuple.
7635	(pop_gimplify_context): Accept gimple.
7636	Comment out call to declare_vars.
7637	(gimple_current_bind_expr): Return gimple.
7638	(unshare_all_trees): Remove.
7639	(gimplify_self_mod_expr): Remove comment.
7640	(gimplify_cleanup_point_expr): Correct typo in call to gs_seq_init.
7641	(gimplify_body): Remove body local.
7642	Build GS_BIND tuples when needed.
7643	Do not call unshare_all_trees.
7644	Call pop_gimplify_context with appropriate argument.
7645	Comment out call to walk_tree.
7646	* tree-pretty-print.c (print_declaration): Remove static.
7647	* diagnostic.h (print_declaration): Prototype.
7648	* tree-gimple.h (pop_gimplify_context): Accept gimple tuple.
7649	(gimple_current_bind_expr): Return tuple.
7650	* gimple-pretty-print.c (dump_gs_seq): New.
7651	(dump_gs_bind): New.
7652	(dump_gimple_stmt): Add case for GS_BIND.  Print semi-colons after
7653	each statement.
7654
76552007-06-29  Aldy Hernandez  <aldyh@redhat.com>
7656
7657	* gimplify.c (gimple_push_condition): Enable.  Call gs_seq_init with
7658	address.
7659	(gimplify_cond_expr): Push and pop conditions.  Use other GS_COND
7660	predicates when appropriate
7661
76622007-06-28  Aldy Hernandez  <aldyh@redhat.com>
7663
7664	* testsuite/gcc.dg/gimple/gs_goto.c: New.
7665	* testsuite/gcc.dg/gimple/gs_cond.c: New.
7666	* tree-gimple.h (gimplify_stmt): Return bool.
7667	* gimple-pretty-print.c (INDENT): New.
7668	(newline_and_indent): New.
7669	(op_gs_cond): New.
7670	(dump_gs_cond): New.
7671	(dump_gimple_stmt): New.
7672	* gimple-ir.c (gs_cond_invert): New.
7673	* gimple-ir.h (enum gs_cond): Add comment.
7674	(gs_cond_invert): Protoize.
7675	* gimplify.c (gimplify_cond_expr): Rewrite for tuples.
7676	(gimplify_stmt): Return true if we added a statement to the queue.
7677	(gimplify_expr): Enable gimplify_cond_expr.
7678	Build tuples for GOTO_EXPRs and LABEL_EXPRs.
7679
76802007-06-27  Aldy Hernandez  <aldyh@redhat.com>
7681
7682	* gimple-ir.h (gs_seq_last): Return last statement.
7683	* testsuite/gcc.dg/gimple/compound_expr.c: Add checks.
7684	* testsuite/gcc.dg/gimple/gs_call.c: Same.
7685	* testsuite/gcc.dg/gimple/constructors.c: Same.
7686	* testsuite/gcc.dg/gimple/gs_assign.c: Same.
7687
76882007-06-27  Aldy Hernandez  <aldyh@redhat.com>
7689
7690	Put this patch back in.
7691
7692	2007-06-22  Aldy Hernandez  <aldyh@redhat.com>
7693
7694	* gimplify.c (gimplify_modify_expr): Return after a successful
7695	call to gimplify_modify_expr_rhs.
7696
76972007-06-26  Aldy Hernandez  <aldyh@redhat.com>
7698
7699	* testsuite/gcc.dg/gimple/gimple.exp: Pass -fdump-tree-gimple-details
7700	* testsuite/gcc.dg/gimple/compound_expr.c: Add dg-final.
7701	* testsuite/gcc.dg/gimple/gs_return.c: Same.
7702	* tree.h (gimplify_function_tree): Add return value.
7703	* diagnostic.h (debug_c_tree): Move under tree-pretty-print.c section.
7704	(dump_gimple_seq): New.
7705	to tests.
7706	* gimple-pretty-print.c (dump_gimple_seq): New.
7707	* gimplify.c (gimplify_function_tree): Add return value.
7708	Remove debug call and exit.
7709	Comment out non-working code.
7710	* c-gimplify.c (c_genericize): Dump gimple IR.  Exit.
7711
77122007-06-26  Diego Novillo  <dnovillo@google.com>
7713
7714	* gimple-ir.c (gs_build_call_1): Fix formatting.
7715
77162007-06-26  Diego Novillo  <dnovillo@google.com>
7717
7718	* gimple-pretty-print.c (dump_gs_assign, dump_gs_return,
7719	dump_gs_call): New functions.
7720	(dump_gimple_stmt): Call them.
7721	* gimple-ir.c (gs_build_call_1): Factor out of gs_build_call.
7722	(gs_build_call): Call it.
7723	(gs_build_call_vec): New function.
7724	* gimple-ir.h (struct gimple_statement_call): Change type of
7725	field 'nargs' to size_t.  Update all users.
7726	(gs_build_call_vec): Declare.
7727	(gs_call_set_fn): Remove.
7728	(gs_call_set_nargs): Remove.
7729	* gimplify.c: Include "vec.h"
7730	(gimplify_return_expr): Fix formatting
7731	(gimplify_call_expr): Call gs_build_call_vec.
7732	(gimplify_expr): Do not try to test if NULL expressions
7733	are in GIMPLE form.
7734	(gimplify_function_tree): Do not call debug_gimple_seq.
7735	* Makefile.in (gimplify.o): Include vec.h
7736
77372007-06-25  Chris Matthews  <chrismatthews@google.com>
7738
7739	* gimplify.c (gimple_current_bind_expr): Changed to work with gs_seq
7740	accessors
7741	(gimplify_and_add): Same.
7742	(annotate_all_with_locus): Same.
7743	(gimplify_self_mod_expr): Same.
7744	(gimplify_cleanup_point_expr): Same.
7745	(gimplify_expr): Same.
7746	(gimplify_body): Same.
7747	(force_gimple_operand): Same.
7748	(gimplify_init_ctor_eval_range): Added GS_ prefix.
7749	* gimple-iterator.h (gsi_last): Changed to gs_seq accessors.  Changed
7750	gimple_stmt_iterator to use a gimple instead of gimple *.
7751	(gsi_one_before_end_p): Same.
7752	(gsi_start): Same.
7753	* gimple-ir.h (gs_cond): Prepended GS_ to names.
7754	(gs_seq_first): Replaced macro.
7755	(gs_seq_last): Same.
7756	(gs_seq_set_first): Same.
7757	(gs_seq_set_last): Same.
7758	(gs_seq_init): Same.
7759	(gs_seq_empty_p): Same.
7760	(gs_assign_operand) Changed opno to be a size_t to match set.
7761	(gs_bind_body): Changed to use gs_seq.
7762	(gs_bind_set_body): Changed to use gs_seq, and gs_seq_set_first, and last.
7763	(gs_asm_ninputs): Renamed.
7764	(gs_asm_noutputs): Renamed.
7765	(gs_asm_nclobbered): Renamed.
7766	(gs_asm_set_ninputs): Renamed.
7767	(gs_asm_set_noutputs): Renamed.
7768	(gs_asm_set_nclobbered): Renamed.
7769	(gs_asm_set_input_op): Renamed.
7770	(gs_asm_input_op): Renamed.
7771	(gs_asm_set_output_op): Renamed.
7772	(gs_asm_output_op): Renamed.
7773	(gs_omp_body): Changed to use gs_seq.
7774	(gs_omp_set_body): Changed to use gs_seq accessors.
7775	(gs_omp_for_pre_body): Changed to use gs_seq.
7776	(gs_omp_for_set_pre_body): Changed to use gs_seq accessors.
7777	(gs_seq_append): Changed to use gs_seq accessors.
7778	* gimple-ir.c (gs_add): Same.
7779	(gs_build_asm): Changed argument names to match accessors, and changed
7780	functions to new accessor names.
7781	(gs_build_cond): Reformatted.
7782	(gs_build_phi): Same.
7783	(gs_build_try): Renamed args to try_p and catch_p.
7784	(gs_build_omp_return): Change to correct arguments, and added a subcode
7785	flag.
7786	* function.c (gimplify-oaraneters): Changed to gs_seq accessors.
7787
77882007-06-22  Aldy Hernandez  <aldyh@redhat.com>
7789
7790	* gimplify.c (gimplify_modify_expr): Return after a successful
7791	call to gimplify_modify_expr_rhs.
7792
77932007-06-21  Aldy Hernandez  <aldyh@redhat.com>
7794
7795	* gimple-ir.h (gs_assign_binary_rhs1): Add assertion for
7796	GSS_ASSIGN_BINARY.
7797	(gs_assign_binary_set_rhs1): Same.
7798	(gs_assign_binary_rhs2): Same.
7799	(gs_assign_binary_set_rhs2): Same.
7800	(gs_assign_unary_rhs): Same.
7801	(gs_assign_unary_set_rhs): Same.
7802
78032007-06-21  Aldy Hernandez  <aldyh@redhat.com>
7804
7805	* gcc.dg/gimple/gimple.exp: New.
7806	* gcc.dg/gimple/compound_expr.c: New.
7807	* gcc.dg/gimple/with_size_expr.c: New.
7808	* gcc.dg/gimple/compound_expr.c: New.
7809	* gcc.dg/gimple/gs_call.c: New.
7810	* gcc.dg/gimple/constructors.c: New.
7811	* gcc.dg/gimple/gs_return.c: New.
7812	* gcc.dg/gimple/gs_assign.c: New.
7813
78142007-06-21  Aldy Hernandez  <aldyh@redhat.com>
7815
7816	* gimple-ir.c (gs_build_cond): Change order of arguments.  Make labels
7817	of type tree.
7818	(gs_build_asm): Fix formatting.
7819	* gimple-ir.h (gimple_statement_cond): Make labels of type tree.
7820	(gs_build_cond): Change order and type of arguments.
7821	(gs_build_asm): Fix formatting.
7822	(gs_omp_build_for): Same.
7823	(gs_assign_binary_rhs1): Remove assert.
7824	(gs_assign_binary_set_rhs1): Same.
7825	(gs_assign_binary_rhs2): Same.
7826	(gs_assign_binary_set_rhs2): Same.
7827	(gs_assign_unary_rhs): Same.
7828	(gs_cond_true_label): Return a tree.
7829	(gs_cond_set_true_label): Make label a tree.
7830	(gs_cond_set_false_label): Make label a tree.
7831	(gs_cond_false_label): Return a tree.
7832	* gimplify.c (gimplify_init_ctor_eval_range): Build tuples.
7833	(gimplify_init_ctor_eval): Same.
7834	(gimplify_init_constructor): Enable.  Adjust for tuples.
7835	(gimplify_modify_expr_rhs): Uncomment call to
7836	gimplify_init_constructor.
7837
78382007-06-21  Diego Novillo  <dnovillo@google.com>
7839
7840	* gimple.def: Rename from gs.def.
7841	Adjust all users.
7842
78432007-06-21  Diego Novillo  <dnovillo@google.com>
7844
7845	* tree-pretty-print.c (pred_symbol_code, do_gs_niy,
7846	debug_gimple_stmt, debug_gimple_seq, print_gimple_stmt,
7847	dump_gimple_stmt): Move to gimple-pretty-print.c
7848	* diagnostic.h: Add comment for functions in gimple-pretty-print.c
7849	* gimple-pretty-print.c: New file.
7850	* gimple-ir.c (gs_build_return): Fix spacing.
7851	(gs_build_assign): Likewise.
7852	* gimple-ir.h: Fix spacing.
7853	(gs_assign_set_operand): Change OPNO to size_t.
7854	Add assertions for OPNO's value.
7855	(gs_assign_lhs): Rename from gs_assign_operand_lhs.
7856	(gs_assign_binary_rhs1): Rename from gs_assign_operand_rhs.
7857	Assert that GS is GSS_ASSIGN_BINARY
7858	(gs_assign_binary_set_rhs1): Rename from gs_assign_set_rhs.
7859	Assert that GS is GSS_ASSIGN_BINARY.
7860	(gs_assign_binary_set_rhs2): Rename from gs_assign_set_rhs2.
7861	Assert that GS is GSS_ASSIGN_BINARY.
7862	(gs_assign_unary_rhs): New.
7863	(gs_assign_unary_set_rhs): New.
7864	(gs_call_fn, gs_call_lhs, gs_call_chain, gs_call_arg,
7865	gs_cond_lhs, gs_cond_rhs, gs_label_label, gs_goto_dest,
7866	gs_bind_vars, gs_asm_in_op, gs_asm_out_op, gs_asm_clobber_op,
7867	gs_catch_types, gs_catch_handler, gs_eh_filter_types,
7868	gs_eh_filter_failure, gs_try_eval, gs_try_cleanup,
7869	gs_phi_result, gs_switch_index, gs_switch_default_label,
7870	gs_switch_label,gs_omp_critical_name, gs_omp_for_clauses,
7871	gs_omp_for_index, gs_omp_for_initial, gs_omp_for_final,
7872	gs_omp_for_incr, gs_omp_parallel_clauses,
7873	gs_omp_parallel_child_fn, gs_omp_parallel_data_arg,
7874	gs_omp_single_clauses, gs_omp_sections_clauses,
7875	gs_return_retval): Change return type to 'tree'.
7876	* Makefile.in (OBJS-common): Add gimple-pretty-print.o.
7877	(gimple-pretty-print.o): New rule.
7878
78792007-06-20  Aldy Hernandez  <aldyh@redhat.com>
7880
7881	* tree-pretty-print.c (dump_gimple_stmt): Change pred_symbol_code
7882	to op_symbol_code.
7883
78842007-06-19  Aldy Hernandez  <aldyh@redhat.com>
7885
7886	* gimplify.c (gimplify_modify_expr_rhs): Enable.  Adjust for tuples.
7887	(gimplify_modify_expr): Call gimplify_modify_expr_rhs.
7888	(gimplify_compound_expr): Enable.  Adjust for tuples.  Remove comment
7889	that no longer applies.
7890	(gimplify_expr): Enable call to gimplify_compound_expr.
7891
78922007-06-18  Chris Matthews  <chrismatthews@google.com>
7893
7894	* Makefile.in (GTFILES): Added gimeple-ir.h.
7895
7896	* gimple-ir.c (gs_build_return, gs_build_call, gs_build_assign):
7897	Changed to use new accessors.
7898	(gs_build_cond, gs_build_label, gs_build_goto,
7899	gs_build_nop, gs_build_bind gs_build_asm, gs_build_catch,
7900	gs_build_eh_filter, gs_build_try, gs_build_phi,
7901	gs_build_resx, gs_build_switch, gs_omp_build_critical,
7902	gs_omp_build_for, gs_omp_build_parallel,
7903	gs_omp_build_section, gs_omp_build_master,
7904	gs_omp_build_ordered, gs_omp_continue,
7905	gs_omp_build_ordered, gs_omp_build_return,
7906	gs_omp_build_sections, gs_omp_build_single): New
7907	functions.
7908
7909	* gimple-ir.h (struct gimple_statement_switch): Changed
7910	default label to be in labels[0].
7911
7912	(struct gimple_statement_asm): Corrected the allocation
7913	length.
7914
7915	(enum gs_cond): New enum.
7916	(gs_assign_set_operand): Changed to work with new accessors.
7917	(gs_assign_operand_lhs, gs_assign_operand_rhs,
7918	gs_assign_operand_set_lhs, gs_assign_set_rhs,
7919	gs_assign_operand_rhs2, gs_assign_set_rhs2, gs_call_fn,
7920	gs_call_set_fn, gs_call_lhs, gs_call_set_lhs,
7921	gs_call_chain, gs_call_set_chain, gs_call_nargs,
7922	gs_call_set_nargs, gs_call_arg, gs_call_set_arg,
7923	gs_cond_lhs, gs_cond_set_lhs, gs_cond_rhs,
7924	gs_cond_set_rhs, gs_cond_true_label,
7925	gs_cond_set_true_label, gs_cond_set_false_label,
7926	gs_cond_false_label, gs_label_label, gs_label_set_label,
7927	gs_goto_dest, gs_goto_set_dest, gs_bind_vars,
7928	gs_bind_set_vars, gs_bind_body, gs_bind_set_body,
7929	gs_asm_ni, gs_asm_set_ni, gs_asm_no, gs_asm_set_no,
7930	gs_asm_nc, gs_asm_set_nc, gs_asm_in_op, gs_asm_set_in_op,
7931	gs_asm_out_op, gs_asm_set_out_op, gs_asm_clobber_op,
7932	gs_asm_set_clobber_op, gs_asm_string, gs_asm_set_string,
7933	gs_catch_types, gs_catch_handler, gs_catch_set_types,
7934	gs_catch_set_handler, gs_eh_filter_types,
7935	gs_eh_filter_failure, gs_eh_filter_set_types,
7936	gs_eh_filter_set_failure, gs_try_eval, gs_try_cleanup,
7937	gs_try_set_eval, gs_try_set_cleanup, gs_phi_capacity,
7938	gs_phi_set_capacity, gs_phi_nargs, gs_phi_set_nargs,
7939	gs_phi_result, gs_phi_set_result, gs_phi_arg,
7940	gs_phi_set_arg, gs_resx_region, gs_resx_set_region,
7941	gs_switch_nlabels, gs_switch_set_nlabels,
7942	gs_switch_index, gs_switch_set_index,
7943	gs_switch_default_label, gs_switch_set_default_label,
7944	gs_switch_label, gs_switch_set_label, gs_omp_body,
7945	gs_omp_set_body, gs_omp_critical_name,
7946	gs_omp_critical_set_name, gs_omp_for_clauses,
7947	gs_omp_for_set_clauses, gs_omp_for_index,
7948	gs_omp_for_set_index, gs_omp_for_initial,
7949	gs_omp_for_set_initial, gs_omp_for_final,
7950	gs_omp_for_set_final, gs_omp_for_incr,
7951	gs_omp_for_set_incr, gs_omp_for_pre_body,
7952	gs_omp_for_set_pre_body, gs_omp_parallel_clauses,
7953	gs_omp_parallel_set_clauses, gs_omp_parallel_child_fn,
7954	gs_omp_parallel_set_child_fn, gs_omp_parallel_data_arg,
7955	gs_omp_parallel_set_data_arg, gs_omp_single_clauses,
7956	gs_omp_single_set_clauses, gs_omp_sections_clauses,
7957	gs_omp_sections_set_clauses, gs_assign_omp_for_cond,
7958	gs_omp_for_cond gs_return_set_retval,
7959	gs_add_subcode_flag): New accessor functions.
7960	(gs_return_retval): Renamed gs_return_operand_retval to match accessor
7961	conventions.
7962
79632007-05-31  Aldy Hernandez  <aldyh@redhat.com>
7964
7965	* gimple-ir.c (gs_build_call): New.
7966	* gimple-ir.h (GS_CALL_LHS): New.
7967	(GS_CALL_FN): New.
7968	(GS_CALL_CHAIN): New.
7969	(GS_CALL_NARGS): New.
7970	(GS_CALL_ARG): New.
7971	(gs_call_lhs): New.
7972	(gs_call_fn): New.
7973	(gs_call_chain): New.
7974	(gs_call_nargs): New.
7975	(gs_call_arg): New.
7976	* gimplify.c (gimplify_modify_expr_to_memcpy): Enable and rewrite for
7977	tuples.
7978	(gimplify_modify_expr_to_memset): Same.
7979	(gimplify_statement_list): Same.
7980	(gimplify_expr): Enable STATEMENT_LIST case.
7981
79822007-05-29  Aldy Hernandez  <aldyh@redhat.com>
7983
7984	Merged revisions 124007-125166 from mainline.
7985
79862007-05-23  Aldy Hernandez  <aldyh@redhat.com>
7987
7988	* builtins.c (std_gimplify_va_arg_expr): Add argument to gimplify_expr.
7989	Remove seq argument.
7990	(gimplify_va_arg_expr): Same.
7991	* tree-gimple.h: Same.
7992	* langhooks.c (lhd_gimplify_expr): Change pre_p and post_p types to
7993	sequences.
7994	* langhooks-def.h (lhd_gimplify_expr): Change
7995	* langhooks.h (struct lang_hooks): Remove argument.
7996	* gimplify.c (internal_get_tmp_var): Adjust calls to gimplify_expr
7997	for new arguments.
7998	(gimplify_switch_expr): Same.
7999	(gimplify_var_or_parm_decl): Same.
8000	(gimplify_compound_lval): Same.
8001	(gimplify_self_mod_expr): Same.
8002	(gimplify_arg): Same.
8003	(gimplify_call_expr): Same.
8004	(gimplify_init_ctor_preeval): Same.
8005	(gimplify_init_constructor): Same.
8006	(gimplify_modify_expr_rhs): Same.
8007	(gimplify_modify_expr): Same.
8008	(gimplify_save_expr): Same.
8009	(gimplify_addr_expr): Same.
8010	(gimplify_asm_expr): Same.
8011	(gimplify_target_expr): Same.
8012	(omp_check_private): Same.
8013	(gimplify_scan_omp_clauses): Same.
8014	(gimplify_omp_parallel): Same.
8015	(gimplify_omp_for): Same.
8016	(goa_stabilize_expr): Same.
8017	(gimplify_omp_atomic): Same.
8018	(gimplify_one_sizepos): Same.
8019	(force_gimple_operand): Same.
8020	(gimplify_expr): Remove seq_p argument.  Add new is_statement
8021	argument.  Adjust accordingly.  Make seq_p required.
8022
80232007-05-07  Aldy Hernandez  <aldyh@redhat.com>
8024
8025	* function.c (gimplify_parameters): Use new GS_SEQ_INIT definition.
8026	* gimple-ir.h (GS_SEQ_INIT): Do not use C99 constructs.
8027	* gimplify.c: Disable non working code throughout.
8028	Pass additional call to gimplify_expr throughout.
8029	(gimplify_ctx): Make conditional_cleanups a sequence.
8030	(gimple_push_condition): Use GS_SEQ_EMPTY_P.
8031	(gimple_pop_condition): Adapt for sequences.
8032	(gimplify_and_add): Use gs_seq_append regardless of side effects.
8033	(internal_get_tmp_var): Use sequences.
8034	(get_formal_tmp_var): Same.
8035	(get_initialized_tmp_var): Same.
8036	(annotate_one_with_locus): Change GS_LOCUS to GS_LOCUS_EMPTY_P.
8037	(gimplify_bind_expr): Use sequences.
8038	Change append_to_statement_list to gimplify_and_add.
8039	(gimplify_return_expr): Add gimplified code to pre_p.
8040	(gimplify_decl_expr): New seq_p parameter.
8041	(gimplify_loop_expr): Adapt for sequences.
8042	Use gimplify_and_add instead of append_to_statement_list.
8043	(gimplify_switch_expr): Same.
8044	(gimplify_compound_lval): Use sequences.
8045	(gimplify_self_mod_expr): Same.
8046	Use gs_seq_append instead of append_to_statement_list.
8047	(gimplify_arg): Use sequences.
8048	(gimplify_call_expr): Same.
8049	(gimplify_cond_expr): Use sequences.
8050	(gimplify_init_ctor_preeval): Use sequences.
8051	(gimplify_init_ctor_eval_range): Same.
8052	Use gimplify_and_add instead of append_to_statement_list.
8053	(gimplify_init_ctor_eval): Use sequences.
8054	(gimplify_init_constructor): Same.
8055	Remove one call to append_to_statement_list.
8056	(gimplify_modify_expr_rhs): Use sequences.
8057	(gimplify_modify_expr_complex_part): Use sequences.
8058	Remove call to tree_to_gimple_tuple.
8059	Build GS_ASSIGN tuple.
8060	(gimplify_modify_expr): Use new argument.  Use sequences.
8061	Do not call append_to_statement_list.
8062	Build GS_ASSIGN tuple.
8063	Do not call tree_to_gimple_tuple.
8064	Set *expr_p to NULL when we do not want the value.
8065	(gimplify_compound_expr): Use sequences.
8066	(gimplify_save_expr): Same.
8067	(gimplify_addr_expr): Same.
8068	(gimplify_asm_expr): Same.
8069	(gimplify_cleanup_point_expr): Same.
8070	(gimple_push_cleanup): Same.
8071	Build GS_ASSIGN tuples.
8072	(gimplify_target_expr): Use sequences.
8073	(gimplify_scan_omp_clauses): Same.
8074	Add argument to gimplify_stmt calls.
8075	(gimplify_omp_parallel): Same.
8076	(gimplify_omp_for): Use sequences.
8077	(gimplify_omp_workshare): Same.
8078	(goa_stabilize_expr): Same.
8079	(gimplify_omp_atomic_pipeline): Same.
8080	(gimplify_omp_atomic_mutex): Same.
8081	(gimplify_omp_atomic): Same.
8082	(gimplify_expr): Same.
8083	Call GS_SEQ_INIT with argument.
8084	Use new seq_p argument.
8085	Do not call tree_to_gimple_tuple.
8086	Pass additional argument to gimplify_decl_expr.
8087	Do not pass seq_p argument to gimplify_return_expr.
8088	Call gs_seq_append instead of append_to_statement_list.
8089	Check that all statements have been converted to tuples.
8090	Make pre_p and seq_p sequences coexist.
8091	(gimplify_type_sizes): Use sequences.
8092	(gimplify_one_sizepos): Same.
8093	(gimplify_body): Make parm_stmts a sequence.
8094	Add argument to seq_p.
8095	(gimplify_function_tree): Call debug_gimple_seq.
8096	(force_gimple_operand): Use sequences.
8097	(force_gimple_operand_bsi): Use sequences.
8098
80992007-05-04  Aldy Hernandez  <aldyh@redhat.com>
8100
8101	* omp-low.c (build_omp_barrier): Adjust arguments for sequences.
8102	(lower_rec_input_clauses): Disable non working code.
8103	(lower_regimplify): Pass additional argument to gimplify_expr.
8104	* tree-mudflap.c (mx_register_decls): Disable non working code.
8105	* tree-inline.c (copy_bb): Disable non working code.
8106	(setup_one_parameter): Same.
8107	* tree-cfg.c (make_edges): Same.
8108
81092007-05-04  Aldy Hernandez  <aldyh@redhat.com>
8110
8111	* tree-gimple.h (get_initialized_tmp_var): Adjust prototype
8112	for sequences.
8113	(get_formal_tmp_var): Same.
8114	(gimplify_type_sizes): Same.
8115	(gimplify_one_sizepos): Same.
8116	(gimplify_stmt): Same.
8117	(gimplify_and_add): Same.
8118	(gimplify_va_arg_expr): Same.
8119	* langhooks.h (lang_hooks): Same.
8120	* function.c (gimplify_parm_type): Adjust for sequences.
8121	(gimplify_parameters): Same.
8122	* c-gimplify.c (gimplify_compound_literal_expr): Same.
8123	(c_gimplify_expr): Same.
8124	* tree-flow.h (force_gimple_operand): Same.
8125	* c-common.h (c_gimplify_expr): Adjust prototype for sequences.
8126	* config/i386/i386.c (ix86_gimplify_va_arg): Adjust for sequences.
8127	Change call to append_to_statement_list to gimplify_and_add.
8128	Add parameter to gimplify_expr.
8129
81302007-05-04  Aldy Hernandez  <aldyh@redhat.com>
8131
8132	* gimple-ir.c (gs_code_name): Constify.
8133	(gs_build_assign): New.
8134	(gimple_statement_structure): Abstract code out to...
8135	(gss_for_assign): ...here.
8136	(gs_add): Set the last item correctly.
8137	* gimple-ir.h (GS_LOCUS_EMPTY_P): New.
8138	(GS_SEQ_INIT): Add a cast.
8139	(gimple_statement_base): Make code a gs_code enum.
8140	(gimple_statement_with_ops): Remove address_taken.
8141	(GS_ASSIGN_BINARY_LHS): New.
8142	(GS_ASSIGN_BINARY_RHS1): New.
8143	(GS_ASSIGN_BINARY_RHS2): New.
8144	(GS_ASSIGN_UNARY_REG_LHS): New.
8145	(GS_ASSIGN_UNARY_REG_RHS): New.
8146	(GS_ASSIGN_UNARY_MEM_LHS): New.
8147	(GS_ASSIGN_UNARY_MEM_RHS): New.
8148	(gs_seq_append): New.
8149	Move gs_seq typedef to...
8150	* coretypes.h: ...here.
8151	* gimple-iterator.h (gsi_stmt_ptr): Add FIXME note.
8152
81532007-05-04  Aldy Hernandez  <aldyh@redhat.com>
8154
8155	* tree.h (std_gimplify_va_arg_expr): Change tree * to a sequence
8156	in prototype.
8157	(gimplify_parameters): Return a sequence.
8158	* target.h (gimplify_va_arg_expr): Change tree * to a sequence.
8159	* builtins.c (std_gimplify_va_arg_expr): Same.
8160	Pass additional argument to gimplify_expr.
8161	(gimplify_va_arg_expr): Change tree * to a sequence.
8162	Change append_to_statement_list call to gimplify_and_add.
8163	Pass additional argument to gimplify_expr calls.
8164
81652007-05-04  Aldy Hernandez  <aldyh@redhat.com>
8166
8167	* tree-pretty-print.c (do_gs_niy): New.
8168	(debug_gimple_stmt): New.
8169	(debug_gimple_seq): New.
8170	(print_gimple_stmt): New.
8171	(dump_gimple_stmt): New.
8172	* diagnostic.h: Add prototypes for dump_gimple_stmt,
8173	print_gimple_stmt, debug_gimple_stmt, debug_gimple_seq.
8174
81752007-04-26  Aldy Hernandez  <aldyh@redhat.com>
8176
8177	* tree-gimple.h (annotate_all_with_locus): First argument is now a
8178	sequence.
8179	* gimple-ir.h (GS_LOCUS): New.
8180	(gimple_statement_base): Locus is of type location_t.
8181	* gimplify.c (internal_get_tmp_var): Use sequences.
8182	(should_carry_locus_p): Adjust for gimple ir.
8183	(annotate_one_with_locus): Same.
8184	(annotate_all_with_locus): Same.
8185	(gimplify_stmt): Adjust for sequences.
8186	(gimplify_expr): Same.
8187
81882007-04-25  Aldy Hernandez  <aldyh@redhat.com>
8189
8190	* gimple-ir.h (GS_SEQ_EMPTY_P): New.
8191	Move gs_build_return, gs_add, and gimple_statement_structure
8192	prototypes.
8193	(gs_assign_operand): Fix typos in gss.
8194	Include gimple-iterator.h.
8195	* Makefile.in (GIMPLE_IR_H): Add gimple-iterator.h.
8196	(TREE_GIMPLE_H): Same.
8197
81982007-04-25  Aldy Hernandez  <aldyh@redhat.com>
8199
8200	* gimple-iterator.h (gsi_one_before_end_p): Use GS_SEQ_LAST.
8201
82022007-04-25  Aldy Hernandez  <aldyh@redhat.com>
8203
8204	* gimple-iterator.h: New file.
8205
82062007-04-23  Aldy Hernandez  <aldyh@redhat.com>
8207
8208	* gimple-ir.c: New file.
8209	* gimple-ir.h: New file.
8210	* gsstruct.def: New file.
8211	* gs.def: New file.
8212	* gengtype.c (open_base_files): Add gimple-ir.h.
8213	* tree-gimple.h: Include gimple-ir.h.
8214	Add sequence to gimplify_expr and gimplify_body prototypes.
8215	* gimplify.c: Include gimple-ir.h.
8216	(gimplify_and_add): Adjust for gimple IR.
8217	(gimplify_return_expr): Same.
8218	(gimplify_stmt): Add seq_p argument.
8219	(gimplify_expr): Add seq_p sequence and adjust accordingly.
8220	(gimplify_body): Same.
8221	* coretypes.h: Add gimple_statement_d and gimple definitions.
8222	* Makefile.in (GIMPLE_IR_H): New.
8223	(TREE_GIMPLE_H): Add gimple-ir.h.
8224	(OBJS-common): Add gimple-ir.o.
8225	(gimplify.o): Add GIMPLE_IR_H.
8226	(gimple-ir.o): New.
8227	(build/gencheck.o): Add gs.def.
8228
8229Local Variables:
8230mode: change-log
8231End:
8232
8233
8234Copyright (C) 2007-2008 Free Software Foundation, Inc.
8235
8236Copying and distribution of this file, with or without modification,
8237are permitted in any medium without royalty provided the copyright
8238notice and this notice are preserved.
8239